From 70189e1567ba5d1d53dfc75968f2e4fc96915d03 Mon Sep 17 00:00:00 2001 From: Jeremy Rand Date: Sun, 21 Oct 2018 14:29:18 -0400 Subject: [PATCH] Use the volatile keyword with all inline assembly to make sure the optimizer does not discard any of it. --- .../UserInterfaceState.xcuserstate | Bin 32554 -> 33695 bytes CurtaSim/curtaUI.c | 8 ++--- CurtaSim/joystick.c | 28 +++++++++--------- CurtaSim/make/V2Make.scpt | Bin 4900 -> 4900 bytes 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/CurtaSim.xcodeproj/project.xcworkspace/xcuserdata/jrand.xcuserdatad/UserInterfaceState.xcuserstate b/CurtaSim.xcodeproj/project.xcworkspace/xcuserdata/jrand.xcuserdatad/UserInterfaceState.xcuserstate index bcb53cbf277c6c7b9e31140de2c01e122715add8..e87d6c7a2f65cffc6502369027cdb3cd03a35753 100644 GIT binary patch delta 15892 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 Yg6bvJw(K_rp)F$}iuqUOf~sEmKfNm8egFUf diff --git a/CurtaSim/curtaUI.c b/CurtaSim/curtaUI.c index 44d3295..a690340 100644 --- a/CurtaSim/curtaUI.c +++ b/CurtaSim/curtaUI.c @@ -74,7 +74,7 @@ static char displayBuffer[] = static void playSound(int8_t freq, int8_t duration) { while (duration > 0) { - asm ("STA %w", 0xc030); + asm volatile ("STA %w", 0xc030); while (freq > 0) { freq--; } @@ -365,13 +365,13 @@ static tAction getNextAction(void) void textMode(void) { clrscr(); - asm ("STA %w", 0xc051); + asm volatile ("STA %w", 0xc051); } void graphicsMode(void) { - asm ("STA %w", 0xc050); + asm volatile ("STA %w", 0xc050); } @@ -479,7 +479,7 @@ void redrawUI(void) } // Mixed text and graphics mode - asm ("STA %w", 0xc053); + asm volatile ("STA %w", 0xc053); printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"); printState(); } diff --git a/CurtaSim/joystick.c b/CurtaSim/joystick.c index b83d615..76d52d0 100644 --- a/CurtaSim/joystick.c +++ b/CurtaSim/joystick.c @@ -30,11 +30,11 @@ static uint8_t joystickTemp; static bool isButtonPressed(int8_t buttonNum) { if (buttonNum) { - __asm__("LDA %w", BTN1); - __asm__("STA %v", joystickTemp); + __asm__ volatile("LDA %w", BTN1); + __asm__ volatile("STA %v", joystickTemp); } else { - __asm__("LDA %w", BTN0); - __asm__("STA %v", joystickTemp); + __asm__ volatile("LDA %w", BTN0); + __asm__ volatile("STA %v", joystickTemp); } return ((joystickTemp > 127) ? true : false); } @@ -42,22 +42,22 @@ static bool isButtonPressed(int8_t buttonNum) static uint8_t joystickLeftRight(void) { - __asm__("BIT %w", ROM_SWITCH); - __asm__("LDX #0"); - __asm__("JSR %w", PREAD); - __asm__("STY %v", joystickTemp); - __asm__("BIT %w", RAM_SWITCH); + __asm__ volatile("BIT %w", ROM_SWITCH); + __asm__ volatile("LDX #0"); + __asm__ volatile("JSR %w", PREAD); + __asm__ volatile("STY %v", joystickTemp); + __asm__ volatile("BIT %w", RAM_SWITCH); return joystickTemp; } static uint8_t joystickUpDown(void) { - __asm__("BIT %w", ROM_SWITCH); - __asm__("LDX #1"); - __asm__("JSR %w", PREAD); - __asm__("STY %v", joystickTemp); - __asm__("BIT %w", RAM_SWITCH); + __asm__ volatile("BIT %w", ROM_SWITCH); + __asm__ volatile("LDX #1"); + __asm__ volatile("JSR %w", PREAD); + __asm__ volatile("STY %v", joystickTemp); + __asm__ volatile("BIT %w", RAM_SWITCH); return joystickTemp; } diff --git a/CurtaSim/make/V2Make.scpt b/CurtaSim/make/V2Make.scpt index cea04a6ea59d685a43538bed29c0c978aa4dde1a..66dcbbbc2488c1621f812f0f77adc9e0860f0861 100644 GIT binary patch delta 194 zcma)#Jqp555QL|&Ol-Y?q+1C4^0NV(w|TqPmiFH0T_Fb$JVk0R?$<4Wm5H2@6CSxvC-0(GMVzqIaO~jSBAj9w#X5LIl2ZDh9E-@(vTws ZE$C4~Q!EO`8qP>{Zy$f1zHZ0&;RD`cC?Eg; delta 194 zcmZ3YwnS}%6OXuorK6#_o0*}mp|gpRu8FCmrLKjcvB~5}o|7s#Fjz7;G8i(LGq^FB0cl+zc4jbPFaokn7)*h3mOz#TP}CU6*9G!iz$(mu as*QncGX?`7=`#5wZwgVCZVu$T%mM)LEG6pz