Compare commits

..

2 Commits

Author SHA1 Message Date
0xmac
04f0fe2c7b Added option to execute command when resetting CPU 2025-01-24 10:38:08 +01:00
0xmac
dc23e8d7ed Fixed X register overflow 2025-01-24 10:37:46 +01:00
3 changed files with 13 additions and 2 deletions

View File

@ -9,6 +9,7 @@ extern uint8_t showHelp;
extern uint8_t displayMmap; extern uint8_t displayMmap;
extern uint8_t documentReload; extern uint8_t documentReload;
extern char *reloadExecute;
extern uint32_t renderMemory[]; extern uint32_t renderMemory[];
extern int openFile(); extern int openFile();
@ -27,8 +28,8 @@ void pollEvents(){
while (SDL_PollEvent(&event)){ while (SDL_PollEvent(&event)){
switch(event.type){ switch(event.type){
case SDL_QUIT: case SDL_QUIT:
printf("Exited.\n");
exit(0); exit(0);
break;
case SDL_KEYDOWN: case SDL_KEYDOWN:
switch (event.key.keysym.scancode){ switch (event.key.keysym.scancode){
@ -49,8 +50,16 @@ void pollEvents(){
break; break;
case SDL_SCANCODE_F5: /* CPU Reset */ case SDL_SCANCODE_F5: /* CPU Reset */
if (reloadExecute[0]) {
if (system(reloadExecute)){
printf("Shell command failed!\n");
goto skip;
}
}
if (documentReload) openFile(); if (documentReload) openFile();
resetSystem(); resetSystem();
skip:
break; break;
case SDL_SCANCODE_F6: /* Scale -- */ case SDL_SCANCODE_F6: /* Scale -- */

View File

@ -40,6 +40,7 @@ unsigned long tickTrigger = 0;
char debugString[512]; char debugString[512];
char snapshotFile[32]; char snapshotFile[32];
char *reloadExecute;
char *inputFile; char *inputFile;
int openFile(){ int openFile(){
@ -78,6 +79,7 @@ void fetchArgs(int argc, char *argv[]){
//else if (!strcmp(argv[i], "--snapshot")) snapshotFile = &argv[i]; //else if (!strcmp(argv[i], "--snapshot")) snapshotFile = &argv[i];
else if (!strcmp(argv[i], "--fps")) FPS = atoi(argv[++i]); else if (!strcmp(argv[i], "--fps")) FPS = atoi(argv[++i]);
else if (!strcmp(argv[i], "--enable-reload")) documentReload = 1; else if (!strcmp(argv[i], "--enable-reload")) documentReload = 1;
else if (!strcmp(argv[i], "--reload-execute")) reloadExecute = argv[++i];
else { else {
inputFile = argv[i]; inputFile = argv[i];
if (openFile()){ if (openFile()){

View File

@ -57,7 +57,7 @@ void write6502(uint16_t address, uint8_t value){
case VIDADDRS ... VIDADDRS + PAGESIZE: case VIDADDRS ... VIDADDRS + PAGESIZE:
switch ((address - VIDADDRS) % 4){ switch ((address - VIDADDRS) % 4){
case 0: /* Video X Register */ case 0: /* Video X Register */
videoX = value; videoX = value & 0b01111111;
break; break;
case 1: /* Video Y Register */ case 1: /* Video Y Register */
videoY = value; videoY = value;