gameSave and gameLoad added to access left dual port RAM only use with pinball machine off

main
Tim Gopaul 1 year ago
parent d4aa2c749c
commit 0aa0656d0d
  1. 2
      CommandLine.h
  2. 18
      PinBallMemoryPort20230205.ino

@ -1,5 +1,5 @@
/***************************************************************************** /*****************************************************************************
2023-01-18 Tim Gopaul add command BusyFaultCount to report how many Busy interrupts were generated since last reboot 2023-01-18 Tim Gopaul add command BusyFaultCount to report how many Busy interrupts were generated since last reboot
2023-01-11/12 Tim Gopaul Removed getHexLineFromSerialPort.. use the main parsing code get command 2023-01-11/12 Tim Gopaul Removed getHexLineFromSerialPort.. use the main parsing code get command
2023-01-11 Tim Gopaul added call to make commands case insensitive. 2023-01-11 Tim Gopaul added call to make commands case insensitive.
2023-01-08 Tim Gopaul - add load command to read in Hex format string and place in RAM memory 2023-01-08 Tim Gopaul - add load command to read in Hex format string and place in RAM memory

@ -1,6 +1,7 @@
// Protospace is running code version PinBallMemoryPort20230201 // Protospace is running code version PinBallMemoryPort20230201
// The next version of code starts dated 2023 02 05 // The next version of code starts dated 2023 02 05
// //
// 2023-02-19 Tim Gopaul, gameSave and gameLoad added to access game Ram.. only to be used when Pinball machine is powered off
// 2023-02-18 Tim Gopaul, trouble getting PCINT30 working. changed to interrup Pin = PIN_PD2 which gives digitalPinToInterrupt(interruptPin) as 0 // 2023-02-18 Tim Gopaul, trouble getting PCINT30 working. changed to interrup Pin = PIN_PD2 which gives digitalPinToInterrupt(interruptPin) as 0
// 2023-02-14 Tim Gopaul, attach an interrupt low edge to pin 20 PD6 PCINT30 // 2023-02-14 Tim Gopaul, attach an interrupt low edge to pin 20 PD6 PCINT30
// connect interrupt to _BusyRight to indicate the Pinball live memory was issued a wait.. which likey corrupted game ram // connect interrupt to _BusyRight to indicate the Pinball live memory was issued a wait.. which likey corrupted game ram
@ -130,7 +131,7 @@ int helpText(){
Serial.printf(">* Compile Date: %s\n", __DATE__ ); Serial.printf(">* Compile Date: %s\n", __DATE__ );
Serial.printf(">* Compile Time: %s\n", __TIME__ ); Serial.printf(">* Compile Time: %s\n", __TIME__ );
Serial.println(">* *"); Serial.println(">* *");
Serial.println(">* Untility program to read RAM *"); Serial.println(">* Utility to read Pinball RAM *");
Serial.println(">* Tim Gopaul for Protospace *"); Serial.println(">* Tim Gopaul for Protospace *");
Serial.println(">* *"); Serial.println(">* *");
Serial.println(">* Enter numbers as baseTen,or *"); Serial.println(">* Enter numbers as baseTen,or *");
@ -151,12 +152,17 @@ int helpText(){
Serial.println(">* game commands work directly *"); Serial.println(">* game commands work directly *");
Serial.println(">* Game RAM. *"); Serial.println(">* Game RAM. *");
Serial.println(">* Use only when pinball off *"); Serial.println(">* Use only when pinball off *");
Serial.println(">* *"); Serial.println(">* *");
Serial.println(">* Use game commands for direct access*");
Serial.println(">* to the live game Ram when Pinball *");
Serial.println(">* is powered off. *");
Serial.println(">* gameRead address *"); Serial.println(">* gameRead address *");
Serial.println(">* gameWrite address databyte *"); Serial.println(">* gameWrite address databyte *");
Serial.println(">* gameDump start count *"); Serial.println(">* gameDump start count *");
Serial.println(">* *"); Serial.println(">* gameSave startAddress count *");
Serial.println(">* gameLoad Intelhex record line *");
Serial.println(">* *");
Serial.println(">* *"); Serial.println(">* *");
Serial.println(">* Enter numbers as decimal or *"); Serial.println(">* Enter numbers as decimal or *");
Serial.println(">* 0xNN 0X55 for HEX *"); Serial.println(">* 0xNN 0X55 for HEX *");
@ -746,13 +752,13 @@ void testMemory(unsigned int addrStart, unsigned int addrCount, int testLoops) {
void BusyFaultWarning(){ void BusyFaultWarning(){
BusyStateIRQ = LOW; BusyStateIRQ = LOW;
++BusyFaultCount; ++BusyFaultCount;
BusyFaultAddress = (((PORTC & B0000111) << 8 ) + PORTA); BusyFaultAddress = (((PORTC & B0000111) << 8 ) | PORTA);
} }
void ShadowFaultWarning(){ void ShadowFaultWarning(){
ShadowStateIRQ = LOW; ShadowStateIRQ = LOW;
++ShadowFaultCount; ++ShadowFaultCount;
ShadowFaultAddress = (((PORTC & B0000111) << 8 ) + PORTA); ShadowFaultAddress = (((PORTC & B0000111) << 8 ) | PORTA);
} }
// ***** setup ***** ----------------------------------------------- // ***** setup ***** -----------------------------------------------

Loading…
Cancel
Save