From 74cf2775f182b7a423db24fb9f7d6dce7fd424a1 Mon Sep 17 00:00:00 2001 From: Jeremy Rand Date: Sun, 21 Oct 2018 14:26:19 -0400 Subject: [PATCH] Use the volatile keyword with all inline assembly to make sure the optimizer doesn't remove it. --- .../UserInterfaceState.xcuserstate | Bin 33879 -> 35172 bytes apple2048/Makefile | 2 +- apple2048/make/V2Make.scpt | Bin 4906 -> 4906 bytes apple2048/ui.c | 2 +- 4 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apple2048.xcodeproj/project.xcworkspace/xcuserdata/jrand.xcuserdatad/UserInterfaceState.xcuserstate b/apple2048.xcodeproj/project.xcworkspace/xcuserdata/jrand.xcuserdatad/UserInterfaceState.xcuserstate index f4d78521e33251ab9d059a9038ff12cca6e0097a..0f138389fcaa26364faabf739c4595b241c96ae8 100644 GIT binary patch delta 16603 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 delta 15640 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 delta 194 zcmZ3bwn}Y-6OXvFv7?2dnW?d^g^96|u8EnenXZL_rP1U_o|7s#Kygzb ZZO-5V)NRb*GWjHL3Q?AB4&=MZ0s#I)CL90& diff --git a/apple2048/ui.c b/apple2048/ui.c index 289368f..da7102b 100644 --- a/apple2048/ui.c +++ b/apple2048/ui.c @@ -33,7 +33,7 @@ void playSound(int8_t freq, int16_t duration) return; while (duration > 0) { - asm ("STA %w", 0xc030); + asm volatile ("STA %w", 0xc030); while (freq > 0) { freq--; }