From 8416086294cca57104a537c6c5886d0162baf73c Mon Sep 17 00:00:00 2001 From: Jesper Gravgaard Date: Tue, 2 Jan 2024 19:21:16 +0100 Subject: [PATCH] Updated test programs use of CIA_INTERRUPT_CLEAR. --- src/test/kc/bitmap-plot-0.c | 2 +- src/test/kc/bitmap-plot-1.c | 2 +- src/test/kc/bitmap-plot-2.c | 2 +- .../kc/complex/borderline_pacman/pacman.c | 2 +- .../new_30_years_low_resolution.c | 2 +- .../part1-happynewyear.c | 2 +- .../part2-swingplex.c | 2 +- .../kc/examples/c64/irq/irq-hyperscreen.c | 2 +- src/test/kc/examples/c64/music/music_irq.c | 2 +- .../kc/examples/c64/nmisamples/nmisamples.c | 2 +- src/test/kc/examples/mega65/banked-music.c | 2 +- src/test/kc/examples/mega65/raster65.c | 2 +- src/test/kc/irq-hardware-clobber-jsr.c | 2 +- src/test/kc/irq-hardware-clobber.c | 4 +-- src/test/kc/irq-hardware-stack.c | 4 +-- src/test/kc/irq-hardware.c | 4 +-- src/test/kc/irq-idx-problem.c | 2 +- src/test/kc/irq-kernel.c | 4 +-- src/test/kc/irq-local-var-overlap-problem.c | 4 +-- src/test/kc/irq-raster.c | 4 +-- src/test/kc/irq-volatile-bool-problem.c | 4 +-- .../multiplexer-irq/simple-multiplexer-irq.c | 2 +- src/test/ref/bitmap-plot-0.asm | 6 ++-- src/test/ref/bitmap-plot-0.cfg | 2 +- src/test/ref/bitmap-plot-0.log | 26 ++++++++--------- src/test/ref/bitmap-plot-0.sym | 2 +- .../ref/examples/c64/irq/irq-hyperscreen.asm | 6 ++-- .../ref/examples/c64/irq/irq-hyperscreen.cfg | 2 +- .../ref/examples/c64/irq/irq-hyperscreen.log | 24 ++++++++-------- .../ref/examples/c64/irq/irq-hyperscreen.sym | 2 +- src/test/ref/examples/c64/music/music_irq.asm | 6 ++-- src/test/ref/examples/c64/music/music_irq.cfg | 2 +- src/test/ref/examples/c64/music/music_irq.log | 24 ++++++++-------- src/test/ref/examples/c64/music/music_irq.sym | 2 +- .../examples/c64/nmisamples/nmisamples.asm | 6 ++-- .../examples/c64/nmisamples/nmisamples.cfg | 2 +- .../examples/c64/nmisamples/nmisamples.log | 24 ++++++++-------- .../examples/c64/nmisamples/nmisamples.sym | 2 +- src/test/ref/examples/mega65/banked-music.asm | 6 ++-- src/test/ref/examples/mega65/banked-music.cfg | 2 +- src/test/ref/examples/mega65/banked-music.log | 26 ++++++++--------- src/test/ref/examples/mega65/banked-music.sym | 2 +- src/test/ref/examples/mega65/raster65.asm | 6 ++-- src/test/ref/examples/mega65/raster65.cfg | 2 +- src/test/ref/examples/mega65/raster65.log | 26 ++++++++--------- src/test/ref/examples/mega65/raster65.sym | 2 +- src/test/ref/irq-hardware-clobber-jsr.asm | 6 ++-- src/test/ref/irq-hardware-clobber-jsr.cfg | 2 +- src/test/ref/irq-hardware-clobber-jsr.log | 24 ++++++++-------- src/test/ref/irq-hardware-clobber-jsr.sym | 2 +- src/test/ref/irq-hardware-clobber.asm | 6 ++-- src/test/ref/irq-hardware-clobber.cfg | 2 +- src/test/ref/irq-hardware-clobber.log | 24 ++++++++-------- src/test/ref/irq-hardware-clobber.sym | 2 +- src/test/ref/irq-hardware-stack.asm | 6 ++-- src/test/ref/irq-hardware-stack.cfg | 2 +- src/test/ref/irq-hardware-stack.log | 24 ++++++++-------- src/test/ref/irq-hardware-stack.sym | 2 +- src/test/ref/irq-hardware.asm | 6 ++-- src/test/ref/irq-hardware.cfg | 2 +- src/test/ref/irq-hardware.log | 24 ++++++++-------- src/test/ref/irq-hardware.sym | 2 +- src/test/ref/irq-idx-problem.asm | 6 ++-- src/test/ref/irq-idx-problem.cfg | 2 +- src/test/ref/irq-idx-problem.log | 26 ++++++++--------- src/test/ref/irq-idx-problem.sym | 2 +- src/test/ref/irq-kernel.asm | 6 ++-- src/test/ref/irq-kernel.cfg | 2 +- src/test/ref/irq-kernel.log | 24 ++++++++-------- src/test/ref/irq-kernel.sym | 2 +- .../ref/irq-local-var-overlap-problem.asm | 6 ++-- .../ref/irq-local-var-overlap-problem.cfg | 6 ++-- .../ref/irq-local-var-overlap-problem.log | 26 ++++++++--------- .../ref/irq-local-var-overlap-problem.sym | 2 +- src/test/ref/irq-raster.asm | 6 ++-- src/test/ref/irq-raster.cfg | 2 +- src/test/ref/irq-raster.log | 24 ++++++++-------- src/test/ref/irq-raster.sym | 2 +- src/test/ref/irq-volatile-bool-problem.asm | 6 ++-- src/test/ref/irq-volatile-bool-problem.cfg | 2 +- src/test/ref/irq-volatile-bool-problem.log | 24 ++++++++-------- src/test/ref/irq-volatile-bool-problem.sym | 2 +- .../simple-multiplexer-irq.asm | 6 ++-- .../simple-multiplexer-irq.cfg | 2 +- .../simple-multiplexer-irq.log | 28 +++++++++---------- .../simple-multiplexer-irq.sym | 2 +- 86 files changed, 310 insertions(+), 310 deletions(-) diff --git a/src/test/kc/bitmap-plot-0.c b/src/test/kc/bitmap-plot-0.c index b1d08ec4b..00a345e00 100644 --- a/src/test/kc/bitmap-plot-0.c +++ b/src/test/kc/bitmap-plot-0.c @@ -38,7 +38,7 @@ void init_irq() { *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK; *PROCPORT = PROCPORT_RAM_IO; // Disable CIA 1 Timer IRQ - CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR; + CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR_ALL; // Set raster line to $100 *VICII_CONTROL1 |=$80; *RASTER = $00; diff --git a/src/test/kc/bitmap-plot-1.c b/src/test/kc/bitmap-plot-1.c index dc855e923..985fe4448 100644 --- a/src/test/kc/bitmap-plot-1.c +++ b/src/test/kc/bitmap-plot-1.c @@ -45,7 +45,7 @@ void init_irq() { *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK; *PROCPORT = PROCPORT_RAM_IO; // Disable CIA 1 Timer IRQ - CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR; + CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR_ALL; // Set raster line to $100 *VICII_CONTROL1 |=$80; *RASTER = $00; diff --git a/src/test/kc/bitmap-plot-2.c b/src/test/kc/bitmap-plot-2.c index 13769479f..1de0e1e14 100644 --- a/src/test/kc/bitmap-plot-2.c +++ b/src/test/kc/bitmap-plot-2.c @@ -54,7 +54,7 @@ void init_irq() { *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK; *PROCPORT = PROCPORT_RAM_IO; // Disable CIA 1 Timer IRQ - CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR; + CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR_ALL; // Set raster line to $100 *VICII_CONTROL1 |=$80; *RASTER = $00; diff --git a/src/test/kc/complex/borderline_pacman/pacman.c b/src/test/kc/complex/borderline_pacman/pacman.c index ee752eac3..2f8de3349 100644 --- a/src/test/kc/complex/borderline_pacman/pacman.c +++ b/src/test/kc/complex/borderline_pacman/pacman.c @@ -203,7 +203,7 @@ void splash_run() { // Stop kernel IRQ SEI(); // Disable CIA 1 Timer IRQ - CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR; + CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR_ALL; // Disable kernal & basic & IO *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK; *PROCPORT = PROCPORT_RAM_ALL; diff --git a/src/test/kc/complex/new_30_years_low_resolution/new_30_years_low_resolution.c b/src/test/kc/complex/new_30_years_low_resolution/new_30_years_low_resolution.c index 28d16a89b..dafcee561 100644 --- a/src/test/kc/complex/new_30_years_low_resolution/new_30_years_low_resolution.c +++ b/src/test/kc/complex/new_30_years_low_resolution/new_30_years_low_resolution.c @@ -78,7 +78,7 @@ void demo_init() { *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK; *PROCPORT = PROCPORT_RAM_IO; // Disable CIA 1 Timer IRQ - CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR; + CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR_ALL; // Acknowledge any timer IRQ asm { lda CIA1_INTERRUPT } // Acknowledge any VIC IRQ diff --git a/src/test/kc/complex/new_30_years_low_resolution/part1-happynewyear.c b/src/test/kc/complex/new_30_years_low_resolution/part1-happynewyear.c index 895ea60df..7ed57f3a8 100644 --- a/src/test/kc/complex/new_30_years_low_resolution/part1-happynewyear.c +++ b/src/test/kc/complex/new_30_years_low_resolution/part1-happynewyear.c @@ -122,7 +122,7 @@ void part1_run() { *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK; *PROCPORT = PROCPORT_RAM_IO; // Disable CIA 1 Timer IRQ - CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR; + CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR_ALL; // Acknowledge any timer IRQ asm { lda CIA1_INTERRUPT } // Acknowledge any VIC IRQ diff --git a/src/test/kc/complex/new_30_years_low_resolution/part2-swingplex.c b/src/test/kc/complex/new_30_years_low_resolution/part2-swingplex.c index 52cb5e7b9..df2e6ef62 100644 --- a/src/test/kc/complex/new_30_years_low_resolution/part2-swingplex.c +++ b/src/test/kc/complex/new_30_years_low_resolution/part2-swingplex.c @@ -295,7 +295,7 @@ void part2_run() { // Enable & initialize sprites *SPRITES_ENABLE = 0xff; // Disable CIA 1 Timer IRQ - CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR; + CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR_ALL; // Acknowledge any timer IRQ asm { lda CIA1_INTERRUPT } // Acknowledge any VIC IRQ diff --git a/src/test/kc/examples/c64/irq/irq-hyperscreen.c b/src/test/kc/examples/c64/irq/irq-hyperscreen.c index a3d8ee8b0..a93de854e 100644 --- a/src/test/kc/examples/c64/irq/irq-hyperscreen.c +++ b/src/test/kc/examples/c64/irq/irq-hyperscreen.c @@ -7,7 +7,7 @@ void main() { *GHOST_BYTE = 0; asm { sei } // Disable CIA 1 Timer IRQ - CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR; + CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR_ALL; // Set raster line to 0xfa VICII->CONTROL1 &= 0x7f; VICII->RASTER = 0xfa; diff --git a/src/test/kc/examples/c64/music/music_irq.c b/src/test/kc/examples/c64/music/music_irq.c index e49b69f15..6fe2382f2 100755 --- a/src/test/kc/examples/c64/music/music_irq.c +++ b/src/test/kc/examples/c64/music/music_irq.c @@ -18,7 +18,7 @@ void main() { asm { sei } (*musicInit)(); // Disable CIA 1 Timer IRQ - CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR; + CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR_ALL; // Set raster line to $fd VICII->CONTROL1 &=$7f; VICII->RASTER = $fd; diff --git a/src/test/kc/examples/c64/nmisamples/nmisamples.c b/src/test/kc/examples/c64/nmisamples/nmisamples.c index aeef1ce65..53a7bfb57 100644 --- a/src/test/kc/examples/c64/nmisamples/nmisamples.c +++ b/src/test/kc/examples/c64/nmisamples/nmisamples.c @@ -24,7 +24,7 @@ void main() { sta $d412 } asm { sei } - CIA2->INTERRUPT = CIA_INTERRUPT_CLEAR; + CIA2->INTERRUPT = CIA_INTERRUPT_CLEAR_ALL; *KERNEL_NMI = &nmi; CIA2->TIMER_A = 0x88; // speed CIA2->INTERRUPT = 0x81; diff --git a/src/test/kc/examples/mega65/banked-music.c b/src/test/kc/examples/mega65/banked-music.c index bc914283c..3134c1f97 100644 --- a/src/test/kc/examples/mega65/banked-music.c +++ b/src/test/kc/examples/mega65/banked-music.c @@ -36,7 +36,7 @@ void main() { // Set up raster interrupts C64 style // Disable CIA 1 Timer IRQ - CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR; + CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR_ALL; // Set raster line to 0xff VICII->RASTER = 0xff; VICII->CONTROL1 &= 0x7f; diff --git a/src/test/kc/examples/mega65/raster65.c b/src/test/kc/examples/mega65/raster65.c index 9dc68f3ac..89863ff17 100644 --- a/src/test/kc/examples/mega65/raster65.c +++ b/src/test/kc/examples/mega65/raster65.c @@ -73,7 +73,7 @@ void main() { // Set up raster interrupts C64 style asm { sei } // Disable CIA 1 Timer IRQ - CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR; + CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR_ALL; // Set raster line to 0x16 VICII->RASTER = IRQ_Y; VICII->CONTROL1 &= 0x7f; diff --git a/src/test/kc/irq-hardware-clobber-jsr.c b/src/test/kc/irq-hardware-clobber-jsr.c index 722b67d25..c4d9de30d 100644 --- a/src/test/kc/irq-hardware-clobber-jsr.c +++ b/src/test/kc/irq-hardware-clobber-jsr.c @@ -7,7 +7,7 @@ void main() { *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK; *PROCPORT = PROCPORT_RAM_IO; // Disable CIA 1 Timer IRQ - CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR; + CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR_ALL; // Set raster line to $100 *VICII_CONTROL1 |=$80; *RASTER = $00; diff --git a/src/test/kc/irq-hardware-clobber.c b/src/test/kc/irq-hardware-clobber.c index 49a33bfb3..9c97dbb62 100644 --- a/src/test/kc/irq-hardware-clobber.c +++ b/src/test/kc/irq-hardware-clobber.c @@ -17,7 +17,7 @@ const byte WHITE = 1; const byte BLACK = 0; byte* const CIA1_INTERRUPT = (byte*)$dc0d; -const byte CIA_INTERRUPT_CLEAR = $7f; +const byte CIA_INTERRUPT_CLEAR_ALL = $7f; // Processor port data direction register byte* const PROCPORT_DDR = (byte*)$00; @@ -36,7 +36,7 @@ void main() { *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK; *PROCPORT = PROCPORT_RAM_IO; // Disable CIA 1 Timer IRQ - *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR; + *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL; // Set raster line to $100 *VICII_CONTROL1 |=$80; *RASTER = $00; diff --git a/src/test/kc/irq-hardware-stack.c b/src/test/kc/irq-hardware-stack.c index 84548ec91..793282630 100644 --- a/src/test/kc/irq-hardware-stack.c +++ b/src/test/kc/irq-hardware-stack.c @@ -19,7 +19,7 @@ const byte WHITE = 1; const byte BLACK = 0; byte* const CIA1_INTERRUPT = (byte*)$dc0d; -const byte CIA_INTERRUPT_CLEAR = $7f; +const byte CIA_INTERRUPT_CLEAR_ALL = $7f; // Processor port data direction register byte* const PROCPORT_DDR = (byte*)$00; @@ -38,7 +38,7 @@ void main() { *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK; *PROCPORT = PROCPORT_RAM_IO; // Disable CIA 1 Timer IRQ - *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR; + *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL; // Set raster line to $100 *VICII_CONTROL1 |=$80; *RASTER = $00; diff --git a/src/test/kc/irq-hardware.c b/src/test/kc/irq-hardware.c index 4bdd7eb2b..c915b00cd 100644 --- a/src/test/kc/irq-hardware.c +++ b/src/test/kc/irq-hardware.c @@ -17,7 +17,7 @@ const byte WHITE = 1; const byte BLACK = 0; byte* const CIA1_INTERRUPT = (byte*)$dc0d; -const byte CIA_INTERRUPT_CLEAR = $7f; +const byte CIA_INTERRUPT_CLEAR_ALL = $7f; // Processor port data direction register byte* const PROCPORT_DDR = (byte*)$00; @@ -36,7 +36,7 @@ void main() { *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK; *PROCPORT = PROCPORT_RAM_IO; // Disable CIA 1 Timer IRQ - *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR; + *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL; // Set raster line to $100 *VICII_CONTROL1 |=$80; *RASTER = $00; diff --git a/src/test/kc/irq-idx-problem.c b/src/test/kc/irq-idx-problem.c index a5d6453f0..438085a45 100644 --- a/src/test/kc/irq-idx-problem.c +++ b/src/test/kc/irq-idx-problem.c @@ -6,7 +6,7 @@ byte* const SCREEN = (byte*)$400; void main() { asm { sei } // Disable CIA 1 Timer IRQ - CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR; + CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR_ALL; // Set raster line to $60 *VICII_CONTROL1 &=$7f; *RASTER = $60; diff --git a/src/test/kc/irq-kernel.c b/src/test/kc/irq-kernel.c index 04e4b4df0..2e3b41bbd 100644 --- a/src/test/kc/irq-kernel.c +++ b/src/test/kc/irq-kernel.c @@ -15,12 +15,12 @@ const byte WHITE = 1; const byte BLACK = 0; byte* const CIA1_INTERRUPT = (byte*)$dc0d; -const byte CIA_INTERRUPT_CLEAR = $7f; +const byte CIA_INTERRUPT_CLEAR_ALL = $7f; void main() { asm { sei } // Disable CIA 1 Timer IRQ - *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR; + *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL; // Set raster line to $100 *VICII_CONTROL1 |=$80; *RASTER = $00; diff --git a/src/test/kc/irq-local-var-overlap-problem.c b/src/test/kc/irq-local-var-overlap-problem.c index 22f33bfeb..cfa1e219d 100644 --- a/src/test/kc/irq-local-var-overlap-problem.c +++ b/src/test/kc/irq-local-var-overlap-problem.c @@ -11,13 +11,13 @@ byte* const BG_COLOR = (byte*)$d020; byte* const FGCOL = (byte*)$d021; byte* const CIA1_INTERRUPT = (byte*)$dc0d; -const byte CIA_INTERRUPT_CLEAR = $7f; +const byte CIA_INTERRUPT_CLEAR_ALL = $7f; void main() { asm { sei } // Disable CIA 1 Timer IRQ - *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR; + *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL; // Set raster line to $0fd *VICII_CONTROL1 &=$7f; *RASTER = $fd; diff --git a/src/test/kc/irq-raster.c b/src/test/kc/irq-raster.c index 418121609..007bad556 100644 --- a/src/test/kc/irq-raster.c +++ b/src/test/kc/irq-raster.c @@ -16,12 +16,12 @@ const byte WHITE = 1; const byte BLACK = 0; byte* const CIA1_INTERRUPT = (byte*)$dc0d; -const byte CIA_INTERRUPT_CLEAR = $7f; +const byte CIA_INTERRUPT_CLEAR_ALL = $7f; void main() { asm { sei } // Disable CIA 1 Timer IRQ - *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR; + *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL; // Set raster line to $100 *VICII_CONTROL1 |=$80; *RASTER = $00; diff --git a/src/test/kc/irq-volatile-bool-problem.c b/src/test/kc/irq-volatile-bool-problem.c index f75315769..62edb75fb 100644 --- a/src/test/kc/irq-volatile-bool-problem.c +++ b/src/test/kc/irq-volatile-bool-problem.c @@ -11,13 +11,13 @@ const byte IRQ_RASTER = %00000001; byte* const BG_COLOR = (byte*)$d020; byte* const CIA1_INTERRUPT = (byte*)$dc0d; -const byte CIA_INTERRUPT_CLEAR = $7f; +const byte CIA_INTERRUPT_CLEAR_ALL = $7f; void main() { asm { sei } // Disable CIA 1 Timer IRQ - *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR; + *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL; // Set raster line to $0fd *VICII_CONTROL1 &=$7f; *RASTER = $fd; diff --git a/src/test/kc/multiplexer-irq/simple-multiplexer-irq.c b/src/test/kc/multiplexer-irq/simple-multiplexer-irq.c index fe326b5f7..40809816c 100644 --- a/src/test/kc/multiplexer-irq/simple-multiplexer-irq.c +++ b/src/test/kc/multiplexer-irq/simple-multiplexer-irq.c @@ -40,7 +40,7 @@ void init() { } // enable the interrupt asm { sei } - CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR; + CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR_ALL; *IRQ_ENABLE = IRQ_RASTER; *IRQ_STATUS = IRQ_RASTER; *KERNEL_IRQ = &plex_irq; diff --git a/src/test/ref/bitmap-plot-0.asm b/src/test/ref/bitmap-plot-0.asm index e95df8d3c..34bb5ce37 100644 --- a/src/test/ref/bitmap-plot-0.asm +++ b/src/test/ref/bitmap-plot-0.asm @@ -15,7 +15,7 @@ .segment Basic :BasicUpstart(__start) /// Value that disables all CIA interrupts when stored to the CIA Interrupt registers - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f /// $D011 Control Register #1 Bit#5: BMM Turn Bitmap Mode on/off .const VICII_BMM = $20 /// $D011 Control Register #1 Bit#4: DEN Switch VIC-II output on/off @@ -298,9 +298,9 @@ init_irq: { // *PROCPORT = PROCPORT_RAM_IO lda #PROCPORT_RAM_IO sta.z PROCPORT - // CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR + // CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR_ALL // Disable CIA 1 Timer IRQ - lda #CIA_INTERRUPT_CLEAR + lda #CIA_INTERRUPT_CLEAR_ALL sta CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT // *VICII_CONTROL1 |=$80 // Set raster line to $100 diff --git a/src/test/ref/bitmap-plot-0.cfg b/src/test/ref/bitmap-plot-0.cfg index a5e63d007..5b685c7ef 100644 --- a/src/test/ref/bitmap-plot-0.cfg +++ b/src/test/ref/bitmap-plot-0.cfg @@ -146,7 +146,7 @@ init_irq: scope:[init_irq] from main::@7 asm { sei } [62] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [63] *PROCPORT = PROCPORT_RAM_IO - [64] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + [64] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL [65] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 [66] *RASTER = 0 [67] *IRQ_ENABLE = IRQ_RASTER diff --git a/src/test/ref/bitmap-plot-0.log b/src/test/ref/bitmap-plot-0.log index e7b35cb04..d19b09e02 100644 --- a/src/test/ref/bitmap-plot-0.log +++ b/src/test/ref/bitmap-plot-0.log @@ -333,7 +333,7 @@ init_irq: scope:[init_irq] from main::@7 asm { sei } *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK *PROCPORT = PROCPORT_RAM_IO - *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL *VICII_CONTROL1 = *VICII_CONTROL1 | $80 *RASTER = 0 *IRQ_ENABLE = IRQ_RASTER @@ -394,7 +394,7 @@ __constant char * const BG_COLOR = (char *)$d021 __constant char *BITMAP = (char *)$2000 __constant const char BLACK = 0 __constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *)$dc00 -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant char * const D011 = (char *)$d011 __constant char * const D018 = (char *)$d018 __constant void (** const HARDWARE_IRQ)() = (void (**)())$fffe @@ -1272,7 +1272,7 @@ init_irq: scope:[init_irq] from main::@7 asm { sei } [62] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [63] *PROCPORT = PROCPORT_RAM_IO - [64] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + [64] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL [65] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 [66] *RASTER = 0 [67] *IRQ_ENABLE = IRQ_RASTER @@ -1493,7 +1493,7 @@ Statement [51] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (unsigned int)$28*8 Removing always clobbered register reg byte a as potential for zp[1]:9 [ bitmap_init::y#2 bitmap_init::y#1 ] Statement [62] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [ ] ( main:3::init_irq:18 [ frame_cnt ] { } ) always clobbers reg byte a Statement [63] *PROCPORT = PROCPORT_RAM_IO [ ] ( main:3::init_irq:18 [ frame_cnt ] { } ) always clobbers reg byte a -Statement [64] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( main:3::init_irq:18 [ frame_cnt ] { } ) always clobbers reg byte a +Statement [64] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL [ ] ( main:3::init_irq:18 [ frame_cnt ] { } ) always clobbers reg byte a Statement [65] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 [ ] ( main:3::init_irq:18 [ frame_cnt ] { } ) always clobbers reg byte a Statement [66] *RASTER = 0 [ ] ( main:3::init_irq:18 [ frame_cnt ] { } ) always clobbers reg byte a Statement [67] *IRQ_ENABLE = IRQ_RASTER [ ] ( main:3::init_irq:18 [ frame_cnt ] { } ) always clobbers reg byte a @@ -1533,7 +1533,7 @@ Statement [44] bitmap_init::$7 = bitmap_init::y#2 & 7 [ bitmap_init::y#2 bitmap_ Statement [51] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (unsigned int)$28*8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( main:3::bitmap_init:12 [ frame_cnt bitmap_init::y#2 bitmap_init::yoffs#1 ] { } ) always clobbers reg byte a Statement [62] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [ ] ( main:3::init_irq:18 [ frame_cnt ] { } ) always clobbers reg byte a Statement [63] *PROCPORT = PROCPORT_RAM_IO [ ] ( main:3::init_irq:18 [ frame_cnt ] { } ) always clobbers reg byte a -Statement [64] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( main:3::init_irq:18 [ frame_cnt ] { } ) always clobbers reg byte a +Statement [64] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL [ ] ( main:3::init_irq:18 [ frame_cnt ] { } ) always clobbers reg byte a Statement [65] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 [ ] ( main:3::init_irq:18 [ frame_cnt ] { } ) always clobbers reg byte a Statement [66] *RASTER = 0 [ ] ( main:3::init_irq:18 [ frame_cnt ] { } ) always clobbers reg byte a Statement [67] *IRQ_ENABLE = IRQ_RASTER [ ] ( main:3::init_irq:18 [ frame_cnt ] { } ) always clobbers reg byte a @@ -1649,7 +1649,7 @@ ASSEMBLER BEFORE OPTIMIZATION :BasicUpstart(__start) // Global Constants & labels /// Value that disables all CIA interrupts when stored to the CIA Interrupt registers - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f /// $D011 Control Register #1 Bit#5: BMM Turn Bitmap Mode on/off .const VICII_BMM = $20 /// $D011 Control Register #1 Bit#4: DEN Switch VIC-II output on/off @@ -2101,9 +2101,9 @@ init_irq: { // [63] *PROCPORT = PROCPORT_RAM_IO -- _deref_pbuc1=vbuc2 lda #PROCPORT_RAM_IO sta.z PROCPORT - // [64] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // [64] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ - lda #CIA_INTERRUPT_CLEAR + lda #CIA_INTERRUPT_CLEAR_ALL sta CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT // [65] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 // Set raster line to $100 @@ -2344,7 +2344,7 @@ __constant char * const BG_COLOR = (char *) 53281 __constant char *BITMAP = (char *) 8192 __constant const char BLACK = 0 __constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320 -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant char * const D011 = (char *) 53265 __constant char * const D018 = (char *) 53272 __constant void (** const HARDWARE_IRQ)() = (void (**)()) 65534 @@ -2485,7 +2485,7 @@ Score: 3198 :BasicUpstart(__start) // Global Constants & labels /// Value that disables all CIA interrupts when stored to the CIA Interrupt registers - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f /// $D011 Control Register #1 Bit#5: BMM Turn Bitmap Mode on/off .const VICII_BMM = $20 /// $D011 Control Register #1 Bit#4: DEN Switch VIC-II output on/off @@ -2900,10 +2900,10 @@ init_irq: { // [63] *PROCPORT = PROCPORT_RAM_IO -- _deref_pbuc1=vbuc2 lda #PROCPORT_RAM_IO sta.z PROCPORT - // CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR - // [64] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR_ALL + // [64] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ - lda #CIA_INTERRUPT_CLEAR + lda #CIA_INTERRUPT_CLEAR_ALL sta CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT // *VICII_CONTROL1 |=$80 // [65] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 diff --git a/src/test/ref/bitmap-plot-0.sym b/src/test/ref/bitmap-plot-0.sym index 3ff67b009..e60bd81d7 100644 --- a/src/test/ref/bitmap-plot-0.sym +++ b/src/test/ref/bitmap-plot-0.sym @@ -2,7 +2,7 @@ __constant char * const BG_COLOR = (char *) 53281 __constant char *BITMAP = (char *) 8192 __constant const char BLACK = 0 __constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320 -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant char * const D011 = (char *) 53265 __constant char * const D018 = (char *) 53272 __constant void (** const HARDWARE_IRQ)() = (void (**)()) 65534 diff --git a/src/test/ref/examples/c64/irq/irq-hyperscreen.asm b/src/test/ref/examples/c64/irq/irq-hyperscreen.asm index 59d1b9817..dfcdc71d6 100644 --- a/src/test/ref/examples/c64/irq/irq-hyperscreen.asm +++ b/src/test/ref/examples/c64/irq/irq-hyperscreen.asm @@ -14,7 +14,7 @@ .segment Basic :BasicUpstart(main) /// Value that disables all CIA interrupts when stored to the CIA Interrupt registers - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f /// $D011 Control Register #1 Bit#3: RSEL Switch betweem 25 or 24 visible rows /// RSEL| Display window height | First line | Last line /// ----+--------------------------+-------------+---------- @@ -123,9 +123,9 @@ main: { sta GHOST_BYTE // asm sei - // CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR + // CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR_ALL // Disable CIA 1 Timer IRQ - lda #CIA_INTERRUPT_CLEAR + lda #CIA_INTERRUPT_CLEAR_ALL sta CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT // VICII->CONTROL1 &= 0x7f // Set raster line to 0xfa diff --git a/src/test/ref/examples/c64/irq/irq-hyperscreen.cfg b/src/test/ref/examples/c64/irq/irq-hyperscreen.cfg index c46fe5bdb..0ea8237ec 100644 --- a/src/test/ref/examples/c64/irq/irq-hyperscreen.cfg +++ b/src/test/ref/examples/c64/irq/irq-hyperscreen.cfg @@ -29,7 +29,7 @@ void main() main: scope:[main] from [14] *GHOST_BYTE = 0 asm { sei } - [16] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + [16] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL [17] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f [18] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fa [19] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER diff --git a/src/test/ref/examples/c64/irq/irq-hyperscreen.log b/src/test/ref/examples/c64/irq/irq-hyperscreen.log index 880195bf6..a777929ff 100644 --- a/src/test/ref/examples/c64/irq/irq-hyperscreen.log +++ b/src/test/ref/examples/c64/irq/irq-hyperscreen.log @@ -8,7 +8,7 @@ void main() main: scope:[main] from __start *GHOST_BYTE = 0 asm { sei } - *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fa *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER @@ -61,7 +61,7 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA __constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *)$dc00 -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant char * const GHOST_BYTE = (char *)$3fff __constant void (** const HARDWARE_IRQ)() = (void (**)())$fffe __constant const char IRQ_RASTER = 1 @@ -164,7 +164,7 @@ void main() main: scope:[main] from [14] *GHOST_BYTE = 0 asm { sei } - [16] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + [16] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL [17] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f [18] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fa [19] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER @@ -201,7 +201,7 @@ Statement [11] *HARDWARE_IRQ = &irq_bottom_2 [ ] ( [ ] { } ) always clobbers r Statement [12] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = RED [ ] ( [ ] { } ) always clobbers reg byte a Statement [13] return [ ] ( [ ] { } ) always clobbers reg byte a reg byte x reg byte y Statement [14] *GHOST_BYTE = 0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [16] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( [ ] { } ) always clobbers reg byte a +Statement [16] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL [ ] ( [ ] { } ) always clobbers reg byte a Statement [17] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f [ ] ( [ ] { } ) always clobbers reg byte a Statement [18] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fa [ ] ( [ ] { } ) always clobbers reg byte a Statement [19] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a @@ -248,7 +248,7 @@ ASSEMBLER BEFORE OPTIMIZATION :BasicUpstart(main) // Global Constants & labels /// Value that disables all CIA interrupts when stored to the CIA Interrupt registers - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f /// $D011 Control Register #1 Bit#3: RSEL Switch betweem 25 or 24 visible rows /// RSEL| Display window height | First line | Last line /// ----+--------------------------+-------------+---------- @@ -370,9 +370,9 @@ main: { sta GHOST_BYTE // asm { sei } sei - // [16] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // [16] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ - lda #CIA_INTERRUPT_CLEAR + lda #CIA_INTERRUPT_CLEAR_ALL sta CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT // [17] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 // Set raster line to 0xfa @@ -425,7 +425,7 @@ Succesful ASM optimization Pass5RedundantLabelElimination FINAL SYMBOL TABLE __constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320 -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant char * const GHOST_BYTE = (char *) 16383 __constant void (** const HARDWARE_IRQ)() = (void (**)()) 65534 __constant const char IRQ_RASTER = 1 @@ -471,7 +471,7 @@ Score: 422 :BasicUpstart(main) // Global Constants & labels /// Value that disables all CIA interrupts when stored to the CIA Interrupt registers - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f /// $D011 Control Register #1 Bit#3: RSEL Switch betweem 25 or 24 visible rows /// RSEL| Display window height | First line | Last line /// ----+--------------------------+-------------+---------- @@ -605,10 +605,10 @@ main: { // asm // asm { sei } sei - // CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR - // [16] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR_ALL + // [16] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ - lda #CIA_INTERRUPT_CLEAR + lda #CIA_INTERRUPT_CLEAR_ALL sta CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT // VICII->CONTROL1 &= 0x7f // [17] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 diff --git a/src/test/ref/examples/c64/irq/irq-hyperscreen.sym b/src/test/ref/examples/c64/irq/irq-hyperscreen.sym index 184713a9f..afb397ce6 100644 --- a/src/test/ref/examples/c64/irq/irq-hyperscreen.sym +++ b/src/test/ref/examples/c64/irq/irq-hyperscreen.sym @@ -1,5 +1,5 @@ __constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320 -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant char * const GHOST_BYTE = (char *) 16383 __constant void (** const HARDWARE_IRQ)() = (void (**)()) 65534 __constant const char IRQ_RASTER = 1 diff --git a/src/test/ref/examples/c64/music/music_irq.asm b/src/test/ref/examples/c64/music/music_irq.asm index aea64f70f..5f1f63dcd 100644 --- a/src/test/ref/examples/c64/music/music_irq.asm +++ b/src/test/ref/examples/c64/music/music_irq.asm @@ -14,7 +14,7 @@ .segment Basic :BasicUpstart(main) /// Value that disables all CIA interrupts when stored to the CIA Interrupt registers - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f /// VICII IRQ Status/Enable Raster // @see #IRQ_ENABLE #IRQ_STATUS /// 0 | RST| Reaching a certain raster line. The line is specified by writing @@ -62,9 +62,9 @@ main: { sei // (*musicInit)() jsr musicInit - // CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR + // CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR_ALL // Disable CIA 1 Timer IRQ - lda #CIA_INTERRUPT_CLEAR + lda #CIA_INTERRUPT_CLEAR_ALL sta CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT // VICII->CONTROL1 &=$7f // Set raster line to $fd diff --git a/src/test/ref/examples/c64/music/music_irq.cfg b/src/test/ref/examples/c64/music/music_irq.cfg index 00dc15fad..3d051a3e8 100644 --- a/src/test/ref/examples/c64/music/music_irq.cfg +++ b/src/test/ref/examples/c64/music/music_irq.cfg @@ -18,7 +18,7 @@ main: scope:[main] from [6] callexecute *musicInit to:main::@1 main::@1: scope:[main] from main - [7] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + [7] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL [8] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f [9] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fd [10] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER diff --git a/src/test/ref/examples/c64/music/music_irq.log b/src/test/ref/examples/c64/music/music_irq.log index e8dad7597..3390fc38d 100644 --- a/src/test/ref/examples/c64/music/music_irq.log +++ b/src/test/ref/examples/c64/music/music_irq.log @@ -12,7 +12,7 @@ main: scope:[main] from __start::@1 callexecute *musicInit to:main::@1 main::@1: scope:[main] from main - *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fd *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER @@ -52,7 +52,7 @@ __start::@return: scope:[__start] from __start::@2 SYMBOL TABLE SSA __constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *)$dc00 -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant const char IRQ_RASTER = 1 __constant void (** const KERNEL_IRQ)() = (void (**)())$314 __constant char MUSIC[] = kickasm {{ .const music = LoadSid("toiletrensdyr.sid") @@ -125,7 +125,7 @@ main: scope:[main] from [6] callexecute *musicInit to:main::@1 main::@1: scope:[main] from main - [7] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + [7] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL [8] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f [9] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fd [10] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER @@ -147,7 +147,7 @@ REGISTER UPLIFT POTENTIAL REGISTERS Statement [1] callexecute *musicPlay [ ] ( [ ] { } ) always clobbers reg byte a reg byte x reg byte y Statement [2] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a Statement [6] callexecute *musicInit [ ] ( [ ] { } ) always clobbers reg byte a reg byte x reg byte y -Statement [7] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( [ ] { } ) always clobbers reg byte a +Statement [7] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL [ ] ( [ ] { } ) always clobbers reg byte a Statement [8] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f [ ] ( [ ] { } ) always clobbers reg byte a Statement [9] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fd [ ] ( [ ] { } ) always clobbers reg byte a Statement [10] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a @@ -188,7 +188,7 @@ ASSEMBLER BEFORE OPTIMIZATION :BasicUpstart(main) // Global Constants & labels /// Value that disables all CIA interrupts when stored to the CIA Interrupt registers - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f /// VICII IRQ Status/Enable Raster // @see #IRQ_ENABLE #IRQ_STATUS /// 0 | RST| Reaching a certain raster line. The line is specified by writing @@ -249,9 +249,9 @@ main: { jmp __b1 // main::@1 __b1: - // [7] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // [7] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ - lda #CIA_INTERRUPT_CLEAR + lda #CIA_INTERRUPT_CLEAR_ALL sta CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT // [8] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 // Set raster line to $fd @@ -302,7 +302,7 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE __constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320 -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant const char IRQ_RASTER = 1 __constant void (** const KERNEL_IRQ)() = (void (**)()) 788 __constant char MUSIC[] = kickasm {{ .const music = LoadSid("toiletrensdyr.sid") @@ -344,7 +344,7 @@ Score: 110 :BasicUpstart(main) // Global Constants & labels /// Value that disables all CIA interrupts when stored to the CIA Interrupt registers - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f /// VICII IRQ Status/Enable Raster // @see #IRQ_ENABLE #IRQ_STATUS /// 0 | RST| Reaching a certain raster line. The line is specified by writing @@ -406,10 +406,10 @@ main: { // [6] callexecute *musicInit -- call__deref_pprc1 jsr musicInit // main::@1 - // CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR - // [7] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR_ALL + // [7] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ - lda #CIA_INTERRUPT_CLEAR + lda #CIA_INTERRUPT_CLEAR_ALL sta CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT // VICII->CONTROL1 &=$7f // [8] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 diff --git a/src/test/ref/examples/c64/music/music_irq.sym b/src/test/ref/examples/c64/music/music_irq.sym index bb6ae98e1..f7d1623d8 100644 --- a/src/test/ref/examples/c64/music/music_irq.sym +++ b/src/test/ref/examples/c64/music/music_irq.sym @@ -1,5 +1,5 @@ __constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320 -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant const char IRQ_RASTER = 1 __constant void (** const KERNEL_IRQ)() = (void (**)()) 788 __constant char MUSIC[] = kickasm {{ .const music = LoadSid("toiletrensdyr.sid") diff --git a/src/test/ref/examples/c64/nmisamples/nmisamples.asm b/src/test/ref/examples/c64/nmisamples/nmisamples.asm index 6c6012367..9efd59870 100644 --- a/src/test/ref/examples/c64/nmisamples/nmisamples.asm +++ b/src/test/ref/examples/c64/nmisamples/nmisamples.asm @@ -10,7 +10,7 @@ .segment Basic :BasicUpstart(__start) /// Value that disables all CIA interrupts when stored to the CIA Interrupt registers - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f .const SAMPLE_SIZE = $6100 .const OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d .const OFFSET_STRUCT_MOS6526_CIA_TIMER_A = 4 @@ -124,8 +124,8 @@ main: { sta $d40b sta $d412 sei - // CIA2->INTERRUPT = CIA_INTERRUPT_CLEAR - lda #CIA_INTERRUPT_CLEAR + // CIA2->INTERRUPT = CIA_INTERRUPT_CLEAR_ALL + lda #CIA_INTERRUPT_CLEAR_ALL sta CIA2+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT // *KERNEL_NMI = &nmi lda #INTERRUPT = CIA_INTERRUPT_CLEAR - // [25] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 - lda #CIA_INTERRUPT_CLEAR + // CIA2->INTERRUPT = CIA_INTERRUPT_CLEAR_ALL + // [25] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL -- _deref_pbuc1=vbuc2 + lda #CIA_INTERRUPT_CLEAR_ALL sta CIA2+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT // *KERNEL_NMI = &nmi // [26] *KERNEL_NMI = &nmi -- _deref_qprc1=pprc2 diff --git a/src/test/ref/examples/c64/nmisamples/nmisamples.sym b/src/test/ref/examples/c64/nmisamples/nmisamples.sym index a1bcbcb76..25a1d289c 100644 --- a/src/test/ref/examples/c64/nmisamples/nmisamples.sym +++ b/src/test/ref/examples/c64/nmisamples/nmisamples.sym @@ -1,6 +1,6 @@ __constant struct MOS6526_CIA * const CIA2 = (struct MOS6526_CIA *) 56576 __constant char * const CIA2_INTERRUPT = (char *) 56589 -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant void (** const KERNEL_NMI)() = (void (**)()) 792 __constant char OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d __constant char OFFSET_STRUCT_MOS6526_CIA_TIMER_A = 4 diff --git a/src/test/ref/examples/mega65/banked-music.asm b/src/test/ref/examples/mega65/banked-music.asm index 1c0679edf..aedaf0113 100644 --- a/src/test/ref/examples/mega65/banked-music.asm +++ b/src/test/ref/examples/mega65/banked-music.asm @@ -17,7 +17,7 @@ .text toIntString(main) // NNNN .byte $00, $00, $00 // /// Value that disables all CIA interrupts when stored to the CIA Interrupt registers - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f /// VICII IRQ Status/Enable Raster // @see #IRQ_ENABLE #IRQ_STATUS /// 0 | RST| Reaching a certain raster line. The line is specified by writing @@ -179,10 +179,10 @@ main: { sta.z memoryRemap.lowerPageOffset sta.z memoryRemap.lowerPageOffset+1 jsr memoryRemap - // CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR + // CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR_ALL // Set up raster interrupts C64 style // Disable CIA 1 Timer IRQ - ldz #CIA_INTERRUPT_CLEAR + ldz #CIA_INTERRUPT_CLEAR_ALL stz CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT // VICII->RASTER = 0xff // Set raster line to 0xff diff --git a/src/test/ref/examples/mega65/banked-music.cfg b/src/test/ref/examples/mega65/banked-music.cfg index c039fc9a4..c1f7ff2c1 100644 --- a/src/test/ref/examples/mega65/banked-music.cfg +++ b/src/test/ref/examples/mega65/banked-music.cfg @@ -54,7 +54,7 @@ main::@1: scope:[main] from main::@7 [26] call memoryRemap to:main::@8 main::@8: scope:[main] from main::@1 - [27] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + [27] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL [28] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $ff [29] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f [30] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER diff --git a/src/test/ref/examples/mega65/banked-music.log b/src/test/ref/examples/mega65/banked-music.log index 483f214bb..161d5b469 100644 --- a/src/test/ref/examples/mega65/banked-music.log +++ b/src/test/ref/examples/mega65/banked-music.log @@ -170,7 +170,7 @@ main::@1: scope:[main] from main::@7 call memoryRemap to:main::@8 main::@8: scope:[main] from main::@1 - *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $ff *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER @@ -248,7 +248,7 @@ __start::@return: scope:[__start] from __start::@2 SYMBOL TABLE SSA __constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *)$dc00 -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant char * const DEFAULT_SCREEN = (char *)$800 __constant struct F018_DMAGIC * const DMA = (struct F018_DMAGIC *)$d700 __constant const char DMA_COMMAND_COPY = 0 @@ -717,7 +717,7 @@ main::@1: scope:[main] from main::@7 [26] call memoryRemap to:main::@8 main::@8: scope:[main] from main::@1 - [27] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + [27] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL [28] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $ff [29] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f [30] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER @@ -901,7 +901,7 @@ Statement [18] *PROCPORT = PROCPORT_RAM_IO [ memcpy_dma_command4 ] ( [ memcpy_d Statement [19] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = 1 [ memcpy_dma_command4 ] ( [ memcpy_dma_command4 ] { } ) always clobbers reg byte z Statement asm { lda#0 } always clobbers reg byte a Statement [24] callexecute *musicInit [ ] ( [ ] { } ) always clobbers reg byte a reg byte x reg byte y reg byte z -Statement [27] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( [ ] { } ) always clobbers reg byte z +Statement [27] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL [ ] ( [ ] { } ) always clobbers reg byte z Statement [28] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $ff [ ] ( [ ] { } ) always clobbers reg byte z Statement [29] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f [ ] ( [ ] { } ) always clobbers reg byte a Statement [30] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte z @@ -943,7 +943,7 @@ Statement [18] *PROCPORT = PROCPORT_RAM_IO [ memcpy_dma_command4 ] ( [ memcpy_d Statement [19] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = 1 [ memcpy_dma_command4 ] ( [ memcpy_dma_command4 ] { } ) always clobbers reg byte z Statement asm { lda#0 } always clobbers reg byte a Statement [24] callexecute *musicInit [ ] ( [ ] { } ) always clobbers reg byte a reg byte x reg byte y reg byte z -Statement [27] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( [ ] { } ) always clobbers reg byte z +Statement [27] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL [ ] ( [ ] { } ) always clobbers reg byte z Statement [28] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $ff [ ] ( [ ] { } ) always clobbers reg byte z Statement [29] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f [ ] ( [ ] { } ) always clobbers reg byte a Statement [30] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte z @@ -1065,7 +1065,7 @@ ASSEMBLER BEFORE OPTIMIZATION .byte $00, $00, $00 // // Global Constants & labels /// Value that disables all CIA interrupts when stored to the CIA Interrupt registers - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f /// VICII IRQ Status/Enable Raster // @see #IRQ_ENABLE #IRQ_STATUS /// 0 | RST| Reaching a certain raster line. The line is specified by writing @@ -1299,10 +1299,10 @@ main: { jmp __b8 // main::@8 __b8: - // [27] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // [27] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL -- _deref_pbuc1=vbuc2 // Set up raster interrupts C64 style // Disable CIA 1 Timer IRQ - ldz #CIA_INTERRUPT_CLEAR + ldz #CIA_INTERRUPT_CLEAR_ALL stz CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT // [28] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $ff -- _deref_pbuc1=vbuc2 // Set raster line to 0xff @@ -1633,7 +1633,7 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE __constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320 -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant char * const DEFAULT_SCREEN = (char *) 2048 __constant struct F018_DMAGIC * const DMA = (struct F018_DMAGIC *) 55040 __constant const char DMA_COMMAND_COPY = 0 @@ -1769,7 +1769,7 @@ Score: 3045 .byte $00, $00, $00 // // Global Constants & labels /// Value that disables all CIA interrupts when stored to the CIA Interrupt registers - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f /// VICII IRQ Status/Enable Raster // @see #IRQ_ENABLE #IRQ_STATUS /// 0 | RST| Reaching a certain raster line. The line is specified by writing @@ -1987,11 +1987,11 @@ main: { sta.z memoryRemap.lowerPageOffset+1 jsr memoryRemap // main::@8 - // CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR - // [27] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR_ALL + // [27] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL -- _deref_pbuc1=vbuc2 // Set up raster interrupts C64 style // Disable CIA 1 Timer IRQ - ldz #CIA_INTERRUPT_CLEAR + ldz #CIA_INTERRUPT_CLEAR_ALL stz CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT // VICII->RASTER = 0xff // [28] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $ff -- _deref_pbuc1=vbuc2 diff --git a/src/test/ref/examples/mega65/banked-music.sym b/src/test/ref/examples/mega65/banked-music.sym index 364910ce8..ab084ac01 100644 --- a/src/test/ref/examples/mega65/banked-music.sym +++ b/src/test/ref/examples/mega65/banked-music.sym @@ -1,5 +1,5 @@ __constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320 -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant char * const DEFAULT_SCREEN = (char *) 2048 __constant struct F018_DMAGIC * const DMA = (struct F018_DMAGIC *) 55040 __constant const char DMA_COMMAND_COPY = 0 diff --git a/src/test/ref/examples/mega65/raster65.asm b/src/test/ref/examples/mega65/raster65.asm index cb36dc5d4..db68af7f1 100644 --- a/src/test/ref/examples/mega65/raster65.asm +++ b/src/test/ref/examples/mega65/raster65.asm @@ -18,7 +18,7 @@ .segment Basic :BasicUpstart(__start) /// Value that disables all CIA interrupts when stored to the CIA Interrupt registers - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f /// VICII IRQ Status/Enable Raster // @see #IRQ_ENABLE #IRQ_STATUS /// 0 | RST| Reaching a certain raster line. The line is specified by writing @@ -508,9 +508,9 @@ main: { // asm // Set up raster interrupts C64 style sei - // CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR + // CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR_ALL // Disable CIA 1 Timer IRQ - ldz #CIA_INTERRUPT_CLEAR + ldz #CIA_INTERRUPT_CLEAR_ALL stz CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT // VICII->RASTER = IRQ_Y // Set raster line to 0x16 diff --git a/src/test/ref/examples/mega65/raster65.cfg b/src/test/ref/examples/mega65/raster65.cfg index 21ec9389c..eb0e09f43 100644 --- a/src/test/ref/examples/mega65/raster65.cfg +++ b/src/test/ref/examples/mega65/raster65.cfg @@ -245,7 +245,7 @@ main::@6: scope:[main] from main::@4 main::@6 to:main::@7 main::@7: scope:[main] from main::@6 asm { sei } - [130] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + [130] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL [131] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = IRQ_Y [132] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f [133] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER diff --git a/src/test/ref/examples/mega65/raster65.log b/src/test/ref/examples/mega65/raster65.log index a3be84bda..ff6523c3a 100644 --- a/src/test/ref/examples/mega65/raster65.log +++ b/src/test/ref/examples/mega65/raster65.log @@ -133,7 +133,7 @@ main::@8: scope:[main] from main::@7 main::@8 to:main::@9 main::@9: scope:[main] from main::@8 asm { sei } - *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = IRQ_Y *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER @@ -460,7 +460,7 @@ __start::@return: scope:[__start] from __start::@2 SYMBOL TABLE SSA __constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *)$dc00 -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant char * const COLORRAM = (char *)$d800 __constant char * const DEFAULT_SCREEN = (char *)$400 __constant char GREETING[] = " DOUBLEFLASH ADTBM SY2002 TAYGER SERIOUSLY LIBI IN PARADIZE LGB BLUEWAYSW SAUSAGE BIT SHIFTER INDIOCOLIFA GRUMPYNINJA 0-LIMITS CHEVERON DR. COMMODORE " @@ -1559,7 +1559,7 @@ main::@6: scope:[main] from main::@4 main::@6 to:main::@7 main::@7: scope:[main] from main::@6 asm { sei } - [130] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + [130] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL [131] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = IRQ_Y [132] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f [133] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER @@ -1867,7 +1867,7 @@ Statement [124] PALETTE_RED[main::i#2] = PAL_RED[main::i#2] [ main::i#2 ] ( main Removing always clobbered register reg byte a as potential for zp[1]:7 [ main::i#2 main::i#1 ] Statement [125] PALETTE_GREEN[main::i#2] = PAL_GREEN[main::i#2] [ main::i#2 ] ( main:7 [ main::i#2 ] { } ) always clobbers reg byte a Statement [126] PALETTE_BLUE[main::i#2] = PAL_BLUE[main::i#2] [ main::i#2 ] ( main:7 [ main::i#2 ] { } ) always clobbers reg byte a -Statement [130] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( main:7 [ ] { } ) always clobbers reg byte z +Statement [130] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL [ ] ( main:7 [ ] { } ) always clobbers reg byte z Statement [131] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = IRQ_Y [ ] ( main:7 [ ] { } ) always clobbers reg byte z Statement [132] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f [ ] ( main:7 [ ] { } ) always clobbers reg byte a Statement [133] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER [ ] ( main:7 [ ] { } ) always clobbers reg byte z @@ -1925,7 +1925,7 @@ Statement [116] callexecute *songInit [ ] ( main:7 [ ] { } ) always clobbers r Statement [124] PALETTE_RED[main::i#2] = PAL_RED[main::i#2] [ main::i#2 ] ( main:7 [ main::i#2 ] { } ) always clobbers reg byte a Statement [125] PALETTE_GREEN[main::i#2] = PAL_GREEN[main::i#2] [ main::i#2 ] ( main:7 [ main::i#2 ] { } ) always clobbers reg byte a Statement [126] PALETTE_BLUE[main::i#2] = PAL_BLUE[main::i#2] [ main::i#2 ] ( main:7 [ main::i#2 ] { } ) always clobbers reg byte a -Statement [130] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( main:7 [ ] { } ) always clobbers reg byte z +Statement [130] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL [ ] ( main:7 [ ] { } ) always clobbers reg byte z Statement [131] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = IRQ_Y [ ] ( main:7 [ ] { } ) always clobbers reg byte z Statement [132] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f [ ] ( main:7 [ ] { } ) always clobbers reg byte a Statement [133] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER [ ] ( main:7 [ ] { } ) always clobbers reg byte z @@ -2090,7 +2090,7 @@ ASSEMBLER BEFORE OPTIMIZATION :BasicUpstart(__start) // Global Constants & labels /// Value that disables all CIA interrupts when stored to the CIA Interrupt registers - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f /// VICII IRQ Status/Enable Raster // @see #IRQ_ENABLE #IRQ_STATUS /// 0 | RST| Reaching a certain raster line. The line is specified by writing @@ -2803,9 +2803,9 @@ main: { // asm { sei } // Set up raster interrupts C64 style sei - // [130] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // [130] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ - ldz #CIA_INTERRUPT_CLEAR + ldz #CIA_INTERRUPT_CLEAR_ALL stz CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT // [131] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = IRQ_Y -- _deref_pbuc1=vbuc2 // Set raster line to 0x16 @@ -3073,7 +3073,7 @@ Fixing long branch [162] bne __b20 to beq FINAL SYMBOL TABLE __constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320 -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant char * const COLORRAM = (char *) 55296 __constant char * const DEFAULT_SCREEN = (char *) 1024 __constant char GREETING[] = " DOUBLEFLASH ADTBM SY2002 TAYGER SERIOUSLY LIBI IN PARADIZE LGB BLUEWAYSW SAUSAGE BIT SHIFTER INDIOCOLIFA GRUMPYNINJA 0-LIMITS CHEVERON DR. COMMODORE " @@ -3293,7 +3293,7 @@ Score: 10519 :BasicUpstart(__start) // Global Constants & labels /// Value that disables all CIA interrupts when stored to the CIA Interrupt registers - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f /// VICII IRQ Status/Enable Raster // @see #IRQ_ENABLE #IRQ_STATUS /// 0 | RST| Reaching a certain raster line. The line is specified by writing @@ -4017,10 +4017,10 @@ main: { // asm { sei } // Set up raster interrupts C64 style sei - // CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR - // [130] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR_ALL + // [130] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ - ldz #CIA_INTERRUPT_CLEAR + ldz #CIA_INTERRUPT_CLEAR_ALL stz CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT // VICII->RASTER = IRQ_Y // [131] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = IRQ_Y -- _deref_pbuc1=vbuc2 diff --git a/src/test/ref/examples/mega65/raster65.sym b/src/test/ref/examples/mega65/raster65.sym index 5cf863223..a9629038c 100644 --- a/src/test/ref/examples/mega65/raster65.sym +++ b/src/test/ref/examples/mega65/raster65.sym @@ -1,5 +1,5 @@ __constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320 -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant char * const COLORRAM = (char *) 55296 __constant char * const DEFAULT_SCREEN = (char *) 1024 __constant char GREETING[] = " DOUBLEFLASH ADTBM SY2002 TAYGER SERIOUSLY LIBI IN PARADIZE LGB BLUEWAYSW SAUSAGE BIT SHIFTER INDIOCOLIFA GRUMPYNINJA 0-LIMITS CHEVERON DR. COMMODORE " diff --git a/src/test/ref/irq-hardware-clobber-jsr.asm b/src/test/ref/irq-hardware-clobber-jsr.asm index 524ca302d..1354a96db 100644 --- a/src/test/ref/irq-hardware-clobber-jsr.asm +++ b/src/test/ref/irq-hardware-clobber-jsr.asm @@ -14,7 +14,7 @@ .segment Basic :BasicUpstart(main) /// Value that disables all CIA interrupts when stored to the CIA Interrupt registers - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f /// VICII IRQ Status/Enable Raster // @see #IRQ_ENABLE #IRQ_STATUS /// 0 | RST| Reaching a certain raster line. The line is specified by writing @@ -83,9 +83,9 @@ main: { // *PROCPORT = PROCPORT_RAM_IO lda #PROCPORT_RAM_IO sta.z PROCPORT - // CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR + // CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR_ALL // Disable CIA 1 Timer IRQ - lda #CIA_INTERRUPT_CLEAR + lda #CIA_INTERRUPT_CLEAR_ALL sta CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT // *VICII_CONTROL1 |=$80 // Set raster line to $100 diff --git a/src/test/ref/irq-hardware-clobber-jsr.cfg b/src/test/ref/irq-hardware-clobber-jsr.cfg index 025bf27c4..d3b6689da 100644 --- a/src/test/ref/irq-hardware-clobber-jsr.cfg +++ b/src/test/ref/irq-hardware-clobber-jsr.cfg @@ -13,7 +13,7 @@ main: scope:[main] from asm { sei } [4] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [5] *PROCPORT = PROCPORT_RAM_IO - [6] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + [6] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL [7] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 [8] *RASTER = 0 [9] *IRQ_ENABLE = IRQ_RASTER diff --git a/src/test/ref/irq-hardware-clobber-jsr.log b/src/test/ref/irq-hardware-clobber-jsr.log index c4418d11e..e5702e28d 100644 --- a/src/test/ref/irq-hardware-clobber-jsr.log +++ b/src/test/ref/irq-hardware-clobber-jsr.log @@ -8,7 +8,7 @@ main: scope:[main] from __start asm { sei } *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK *PROCPORT = PROCPORT_RAM_IO - *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL *VICII_CONTROL1 = *VICII_CONTROL1 | $80 *RASTER = 0 *IRQ_ENABLE = IRQ_RASTER @@ -60,7 +60,7 @@ __constant char * const BG_COLOR = (char *)$d021 __constant const char BLACK = 0 __constant char * const BORDER_COLOR = (char *)$d020 __constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *)$dc00 -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant void (** const HARDWARE_IRQ)() = (void (**)())$fffe __constant char * const IRQ_ENABLE = (char *)$d01a __constant const char IRQ_RASTER = 1 @@ -137,7 +137,7 @@ main: scope:[main] from asm { sei } [4] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [5] *PROCPORT = PROCPORT_RAM_IO - [6] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + [6] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL [7] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 [8] *RASTER = 0 [9] *IRQ_ENABLE = IRQ_RASTER @@ -170,7 +170,7 @@ REGISTER UPLIFT POTENTIAL REGISTERS Statement [2] return [ ] ( [ ] { } ) always clobbers reg byte a reg byte x reg byte y Statement [4] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [ ] ( [ ] { } ) always clobbers reg byte a Statement [5] *PROCPORT = PROCPORT_RAM_IO [ ] ( [ ] { } ) always clobbers reg byte a -Statement [6] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( [ ] { } ) always clobbers reg byte a +Statement [6] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL [ ] ( [ ] { } ) always clobbers reg byte a Statement [7] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 [ ] ( [ ] { } ) always clobbers reg byte a Statement [8] *RASTER = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [9] *IRQ_ENABLE = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a @@ -217,7 +217,7 @@ ASSEMBLER BEFORE OPTIMIZATION :BasicUpstart(main) // Global Constants & labels /// Value that disables all CIA interrupts when stored to the CIA Interrupt registers - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f /// VICII IRQ Status/Enable Raster // @see #IRQ_ENABLE #IRQ_STATUS /// 0 | RST| Reaching a certain raster line. The line is specified by writing @@ -293,9 +293,9 @@ main: { // [5] *PROCPORT = PROCPORT_RAM_IO -- _deref_pbuc1=vbuc2 lda #PROCPORT_RAM_IO sta.z PROCPORT - // [6] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // [6] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ - lda #CIA_INTERRUPT_CLEAR + lda #CIA_INTERRUPT_CLEAR_ALL sta CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT // [7] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 // Set raster line to $100 @@ -359,7 +359,7 @@ __constant char * const BG_COLOR = (char *) 53281 __constant const char BLACK = 0 __constant char * const BORDER_COLOR = (char *) 53280 __constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320 -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant void (** const HARDWARE_IRQ)() = (void (**)()) 65534 __constant char * const IRQ_ENABLE = (char *) 53274 __constant const char IRQ_RASTER = 1 @@ -400,7 +400,7 @@ Score: 294 :BasicUpstart(main) // Global Constants & labels /// Value that disables all CIA interrupts when stored to the CIA Interrupt registers - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f /// VICII IRQ Status/Enable Raster // @see #IRQ_ENABLE #IRQ_STATUS /// 0 | RST| Reaching a certain raster line. The line is specified by writing @@ -479,10 +479,10 @@ main: { // [5] *PROCPORT = PROCPORT_RAM_IO -- _deref_pbuc1=vbuc2 lda #PROCPORT_RAM_IO sta.z PROCPORT - // CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR - // [6] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR_ALL + // [6] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ - lda #CIA_INTERRUPT_CLEAR + lda #CIA_INTERRUPT_CLEAR_ALL sta CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT // *VICII_CONTROL1 |=$80 // [7] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 diff --git a/src/test/ref/irq-hardware-clobber-jsr.sym b/src/test/ref/irq-hardware-clobber-jsr.sym index e61325d70..5a11becbf 100644 --- a/src/test/ref/irq-hardware-clobber-jsr.sym +++ b/src/test/ref/irq-hardware-clobber-jsr.sym @@ -2,7 +2,7 @@ __constant char * const BG_COLOR = (char *) 53281 __constant const char BLACK = 0 __constant char * const BORDER_COLOR = (char *) 53280 __constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320 -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant void (** const HARDWARE_IRQ)() = (void (**)()) 65534 __constant char * const IRQ_ENABLE = (char *) 53274 __constant const char IRQ_RASTER = 1 diff --git a/src/test/ref/irq-hardware-clobber.asm b/src/test/ref/irq-hardware-clobber.asm index 4cf99fe3a..2583d8566 100644 --- a/src/test/ref/irq-hardware-clobber.asm +++ b/src/test/ref/irq-hardware-clobber.asm @@ -10,7 +10,7 @@ .const IRQ_RASTER = 1 .const WHITE = 1 .const BLACK = 0 - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f // Mask for PROCESSOR_PORT_DDR which allows only memory configuration to be written .const PROCPORT_DDR_MEMORY_MASK = 7 // RAM in $A000, $E000 I/O in $D000 @@ -57,9 +57,9 @@ main: { // *PROCPORT = PROCPORT_RAM_IO lda #PROCPORT_RAM_IO sta.z PROCPORT - // *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR + // *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL // Disable CIA 1 Timer IRQ - lda #CIA_INTERRUPT_CLEAR + lda #CIA_INTERRUPT_CLEAR_ALL sta CIA1_INTERRUPT // *VICII_CONTROL1 |=$80 // Set raster line to $100 diff --git a/src/test/ref/irq-hardware-clobber.cfg b/src/test/ref/irq-hardware-clobber.cfg index 5d2c7f04d..4a030980e 100644 --- a/src/test/ref/irq-hardware-clobber.cfg +++ b/src/test/ref/irq-hardware-clobber.cfg @@ -14,7 +14,7 @@ main: scope:[main] from asm { sei } [5] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [6] *PROCPORT = PROCPORT_RAM_IO - [7] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR + [7] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL [8] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 [9] *RASTER = 0 [10] *IRQ_ENABLE = IRQ_RASTER diff --git a/src/test/ref/irq-hardware-clobber.log b/src/test/ref/irq-hardware-clobber.log index e3b821c3e..4448e5eeb 100644 --- a/src/test/ref/irq-hardware-clobber.log +++ b/src/test/ref/irq-hardware-clobber.log @@ -7,7 +7,7 @@ main: scope:[main] from __start asm { sei } *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK *PROCPORT = PROCPORT_RAM_IO - *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR + *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL *VICII_CONTROL1 = *VICII_CONTROL1 | $80 *RASTER = 0 *IRQ_ENABLE = IRQ_RASTER @@ -48,7 +48,7 @@ SYMBOL TABLE SSA __constant char * const BG_COLOR = (char *)$d020 __constant const char BLACK = 0 __constant char * const CIA1_INTERRUPT = (char *)$dc0d -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant char * const FGCOL = (char *)$d021 __constant void (** const HARDWARE_IRQ)() = (void (**)())$fffe __constant char * const IRQ_ENABLE = (char *)$d01a @@ -120,7 +120,7 @@ main: scope:[main] from asm { sei } [5] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [6] *PROCPORT = PROCPORT_RAM_IO - [7] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR + [7] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL [8] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 [9] *RASTER = 0 [10] *IRQ_ENABLE = IRQ_RASTER @@ -145,7 +145,7 @@ Statement [2] *IRQ_STATUS = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byt Statement [3] return [ ] ( [ ] { } ) always clobbers reg byte a reg byte x reg byte y Statement [5] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [ ] ( [ ] { } ) always clobbers reg byte a Statement [6] *PROCPORT = PROCPORT_RAM_IO [ ] ( [ ] { } ) always clobbers reg byte a -Statement [7] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR [ ] ( [ ] { } ) always clobbers reg byte a +Statement [7] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL [ ] ( [ ] { } ) always clobbers reg byte a Statement [8] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 [ ] ( [ ] { } ) always clobbers reg byte a Statement [9] *RASTER = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [10] *IRQ_ENABLE = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a @@ -177,7 +177,7 @@ ASSEMBLER BEFORE OPTIMIZATION .const IRQ_RASTER = 1 .const WHITE = 1 .const BLACK = 0 - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f // Mask for PROCESSOR_PORT_DDR which allows only memory configuration to be written .const PROCPORT_DDR_MEMORY_MASK = 7 // RAM in $A000, $E000 I/O in $D000 @@ -231,9 +231,9 @@ main: { // [6] *PROCPORT = PROCPORT_RAM_IO -- _deref_pbuc1=vbuc2 lda #PROCPORT_RAM_IO sta.z PROCPORT - // [7] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // [7] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ - lda #CIA_INTERRUPT_CLEAR + lda #CIA_INTERRUPT_CLEAR_ALL sta CIA1_INTERRUPT // [8] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 // Set raster line to $100 @@ -275,7 +275,7 @@ FINAL SYMBOL TABLE __constant char * const BG_COLOR = (char *) 53280 __constant const char BLACK = 0 __constant char * const CIA1_INTERRUPT = (char *) 56333 -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant char * const FGCOL = (char *) 53281 __constant void (** const HARDWARE_IRQ)() = (void (**)()) 65534 __constant char * const IRQ_ENABLE = (char *) 53274 @@ -311,7 +311,7 @@ Score: 282 .const IRQ_RASTER = 1 .const WHITE = 1 .const BLACK = 0 - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f // Mask for PROCESSOR_PORT_DDR which allows only memory configuration to be written .const PROCPORT_DDR_MEMORY_MASK = 7 // RAM in $A000, $E000 I/O in $D000 @@ -370,10 +370,10 @@ main: { // [6] *PROCPORT = PROCPORT_RAM_IO -- _deref_pbuc1=vbuc2 lda #PROCPORT_RAM_IO sta.z PROCPORT - // *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR - // [7] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL + // [7] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ - lda #CIA_INTERRUPT_CLEAR + lda #CIA_INTERRUPT_CLEAR_ALL sta CIA1_INTERRUPT // *VICII_CONTROL1 |=$80 // [8] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 diff --git a/src/test/ref/irq-hardware-clobber.sym b/src/test/ref/irq-hardware-clobber.sym index 6c8ad6a58..d0da459db 100644 --- a/src/test/ref/irq-hardware-clobber.sym +++ b/src/test/ref/irq-hardware-clobber.sym @@ -1,7 +1,7 @@ __constant char * const BG_COLOR = (char *) 53280 __constant const char BLACK = 0 __constant char * const CIA1_INTERRUPT = (char *) 56333 -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant char * const FGCOL = (char *) 53281 __constant void (** const HARDWARE_IRQ)() = (void (**)()) 65534 __constant char * const IRQ_ENABLE = (char *) 53274 diff --git a/src/test/ref/irq-hardware-stack.asm b/src/test/ref/irq-hardware-stack.asm index e5d9ce921..d649c1195 100644 --- a/src/test/ref/irq-hardware-stack.asm +++ b/src/test/ref/irq-hardware-stack.asm @@ -11,7 +11,7 @@ .const IRQ_RASTER = 1 .const WHITE = 1 .const BLACK = 0 - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f // Mask for PROCESSOR_PORT_DDR which allows only memory configuration to be written .const PROCPORT_DDR_MEMORY_MASK = 7 // RAM in $A000, $E000 I/O in $D000 @@ -65,9 +65,9 @@ main: { // *PROCPORT = PROCPORT_RAM_IO lda #PROCPORT_RAM_IO sta.z PROCPORT - // *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR + // *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL // Disable CIA 1 Timer IRQ - lda #CIA_INTERRUPT_CLEAR + lda #CIA_INTERRUPT_CLEAR_ALL sta CIA1_INTERRUPT // *VICII_CONTROL1 |=$80 // Set raster line to $100 diff --git a/src/test/ref/irq-hardware-stack.cfg b/src/test/ref/irq-hardware-stack.cfg index bbf756a01..1bd5e8f39 100644 --- a/src/test/ref/irq-hardware-stack.cfg +++ b/src/test/ref/irq-hardware-stack.cfg @@ -14,7 +14,7 @@ main: scope:[main] from asm { sei } [5] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [6] *PROCPORT = PROCPORT_RAM_IO - [7] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR + [7] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL [8] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 [9] *RASTER = 0 [10] *IRQ_ENABLE = IRQ_RASTER diff --git a/src/test/ref/irq-hardware-stack.log b/src/test/ref/irq-hardware-stack.log index bf48ae26d..c4d3dbcb7 100644 --- a/src/test/ref/irq-hardware-stack.log +++ b/src/test/ref/irq-hardware-stack.log @@ -7,7 +7,7 @@ main: scope:[main] from __start asm { sei } *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK *PROCPORT = PROCPORT_RAM_IO - *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR + *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL *VICII_CONTROL1 = *VICII_CONTROL1 | $80 *RASTER = 0 *IRQ_ENABLE = IRQ_RASTER @@ -48,7 +48,7 @@ SYMBOL TABLE SSA __constant char * const BG_COLOR = (char *)$d020 __constant const char BLACK = 0 __constant char * const CIA1_INTERRUPT = (char *)$dc0d -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant char * const FGCOL = (char *)$d021 __constant void (** const HARDWARE_IRQ)() = (void (**)())$fffe __constant char * const IRQ_ENABLE = (char *)$d01a @@ -120,7 +120,7 @@ main: scope:[main] from asm { sei } [5] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [6] *PROCPORT = PROCPORT_RAM_IO - [7] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR + [7] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL [8] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 [9] *RASTER = 0 [10] *IRQ_ENABLE = IRQ_RASTER @@ -145,7 +145,7 @@ Statement [2] *IRQ_STATUS = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byt Statement [3] return [ ] ( [ ] { } ) always clobbers reg byte a reg byte x reg byte y Statement [5] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [ ] ( [ ] { } ) always clobbers reg byte a Statement [6] *PROCPORT = PROCPORT_RAM_IO [ ] ( [ ] { } ) always clobbers reg byte a -Statement [7] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR [ ] ( [ ] { } ) always clobbers reg byte a +Statement [7] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL [ ] ( [ ] { } ) always clobbers reg byte a Statement [8] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 [ ] ( [ ] { } ) always clobbers reg byte a Statement [9] *RASTER = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [10] *IRQ_ENABLE = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a @@ -177,7 +177,7 @@ ASSEMBLER BEFORE OPTIMIZATION .const IRQ_RASTER = 1 .const WHITE = 1 .const BLACK = 0 - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f // Mask for PROCESSOR_PORT_DDR which allows only memory configuration to be written .const PROCPORT_DDR_MEMORY_MASK = 7 // RAM in $A000, $E000 I/O in $D000 @@ -238,9 +238,9 @@ main: { // [6] *PROCPORT = PROCPORT_RAM_IO -- _deref_pbuc1=vbuc2 lda #PROCPORT_RAM_IO sta.z PROCPORT - // [7] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // [7] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ - lda #CIA_INTERRUPT_CLEAR + lda #CIA_INTERRUPT_CLEAR_ALL sta CIA1_INTERRUPT // [8] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 // Set raster line to $100 @@ -282,7 +282,7 @@ FINAL SYMBOL TABLE __constant char * const BG_COLOR = (char *) 53280 __constant const char BLACK = 0 __constant char * const CIA1_INTERRUPT = (char *) 56333 -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant char * const FGCOL = (char *) 53281 __constant void (** const HARDWARE_IRQ)() = (void (**)()) 65534 __constant char * const IRQ_ENABLE = (char *) 53274 @@ -319,7 +319,7 @@ Score: 512 .const IRQ_RASTER = 1 .const WHITE = 1 .const BLACK = 0 - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f // Mask for PROCESSOR_PORT_DDR which allows only memory configuration to be written .const PROCPORT_DDR_MEMORY_MASK = 7 // RAM in $A000, $E000 I/O in $D000 @@ -385,10 +385,10 @@ main: { // [6] *PROCPORT = PROCPORT_RAM_IO -- _deref_pbuc1=vbuc2 lda #PROCPORT_RAM_IO sta.z PROCPORT - // *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR - // [7] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL + // [7] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ - lda #CIA_INTERRUPT_CLEAR + lda #CIA_INTERRUPT_CLEAR_ALL sta CIA1_INTERRUPT // *VICII_CONTROL1 |=$80 // [8] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 diff --git a/src/test/ref/irq-hardware-stack.sym b/src/test/ref/irq-hardware-stack.sym index a05c1e0cd..4ec4bdeea 100644 --- a/src/test/ref/irq-hardware-stack.sym +++ b/src/test/ref/irq-hardware-stack.sym @@ -1,7 +1,7 @@ __constant char * const BG_COLOR = (char *) 53280 __constant const char BLACK = 0 __constant char * const CIA1_INTERRUPT = (char *) 56333 -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant char * const FGCOL = (char *) 53281 __constant void (** const HARDWARE_IRQ)() = (void (**)()) 65534 __constant char * const IRQ_ENABLE = (char *) 53274 diff --git a/src/test/ref/irq-hardware.asm b/src/test/ref/irq-hardware.asm index b668ad190..c178a967b 100644 --- a/src/test/ref/irq-hardware.asm +++ b/src/test/ref/irq-hardware.asm @@ -10,7 +10,7 @@ .const IRQ_RASTER = 1 .const WHITE = 1 .const BLACK = 0 - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f // Mask for PROCESSOR_PORT_DDR which allows only memory configuration to be written .const PROCPORT_DDR_MEMORY_MASK = 7 // RAM in $A000, $E000 I/O in $D000 @@ -63,9 +63,9 @@ main: { // *PROCPORT = PROCPORT_RAM_IO lda #PROCPORT_RAM_IO sta.z PROCPORT - // *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR + // *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL // Disable CIA 1 Timer IRQ - lda #CIA_INTERRUPT_CLEAR + lda #CIA_INTERRUPT_CLEAR_ALL sta CIA1_INTERRUPT // *VICII_CONTROL1 |=$80 // Set raster line to $100 diff --git a/src/test/ref/irq-hardware.cfg b/src/test/ref/irq-hardware.cfg index bbf756a01..1bd5e8f39 100644 --- a/src/test/ref/irq-hardware.cfg +++ b/src/test/ref/irq-hardware.cfg @@ -14,7 +14,7 @@ main: scope:[main] from asm { sei } [5] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [6] *PROCPORT = PROCPORT_RAM_IO - [7] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR + [7] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL [8] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 [9] *RASTER = 0 [10] *IRQ_ENABLE = IRQ_RASTER diff --git a/src/test/ref/irq-hardware.log b/src/test/ref/irq-hardware.log index f0b76753c..ec9cfd55a 100644 --- a/src/test/ref/irq-hardware.log +++ b/src/test/ref/irq-hardware.log @@ -7,7 +7,7 @@ main: scope:[main] from __start asm { sei } *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK *PROCPORT = PROCPORT_RAM_IO - *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR + *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL *VICII_CONTROL1 = *VICII_CONTROL1 | $80 *RASTER = 0 *IRQ_ENABLE = IRQ_RASTER @@ -48,7 +48,7 @@ SYMBOL TABLE SSA __constant char * const BG_COLOR = (char *)$d020 __constant const char BLACK = 0 __constant char * const CIA1_INTERRUPT = (char *)$dc0d -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant char * const FGCOL = (char *)$d021 __constant void (** const HARDWARE_IRQ)() = (void (**)())$fffe __constant char * const IRQ_ENABLE = (char *)$d01a @@ -120,7 +120,7 @@ main: scope:[main] from asm { sei } [5] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [6] *PROCPORT = PROCPORT_RAM_IO - [7] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR + [7] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL [8] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 [9] *RASTER = 0 [10] *IRQ_ENABLE = IRQ_RASTER @@ -145,7 +145,7 @@ Statement [2] *IRQ_STATUS = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byt Statement [3] return [ ] ( [ ] { } ) always clobbers reg byte a reg byte x reg byte y Statement [5] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [ ] ( [ ] { } ) always clobbers reg byte a Statement [6] *PROCPORT = PROCPORT_RAM_IO [ ] ( [ ] { } ) always clobbers reg byte a -Statement [7] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR [ ] ( [ ] { } ) always clobbers reg byte a +Statement [7] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL [ ] ( [ ] { } ) always clobbers reg byte a Statement [8] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 [ ] ( [ ] { } ) always clobbers reg byte a Statement [9] *RASTER = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [10] *IRQ_ENABLE = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a @@ -176,7 +176,7 @@ ASSEMBLER BEFORE OPTIMIZATION .const IRQ_RASTER = 1 .const WHITE = 1 .const BLACK = 0 - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f // Mask for PROCESSOR_PORT_DDR which allows only memory configuration to be written .const PROCPORT_DDR_MEMORY_MASK = 7 // RAM in $A000, $E000 I/O in $D000 @@ -236,9 +236,9 @@ main: { // [6] *PROCPORT = PROCPORT_RAM_IO -- _deref_pbuc1=vbuc2 lda #PROCPORT_RAM_IO sta.z PROCPORT - // [7] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // [7] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ - lda #CIA_INTERRUPT_CLEAR + lda #CIA_INTERRUPT_CLEAR_ALL sta CIA1_INTERRUPT // [8] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 // Set raster line to $100 @@ -280,7 +280,7 @@ FINAL SYMBOL TABLE __constant char * const BG_COLOR = (char *) 53280 __constant const char BLACK = 0 __constant char * const CIA1_INTERRUPT = (char *) 56333 -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant char * const FGCOL = (char *) 53281 __constant void (** const HARDWARE_IRQ)() = (void (**)()) 65534 __constant char * const IRQ_ENABLE = (char *) 53274 @@ -316,7 +316,7 @@ Score: 402 .const IRQ_RASTER = 1 .const WHITE = 1 .const BLACK = 0 - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f // Mask for PROCESSOR_PORT_DDR which allows only memory configuration to be written .const PROCPORT_DDR_MEMORY_MASK = 7 // RAM in $A000, $E000 I/O in $D000 @@ -381,10 +381,10 @@ main: { // [6] *PROCPORT = PROCPORT_RAM_IO -- _deref_pbuc1=vbuc2 lda #PROCPORT_RAM_IO sta.z PROCPORT - // *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR - // [7] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL + // [7] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ - lda #CIA_INTERRUPT_CLEAR + lda #CIA_INTERRUPT_CLEAR_ALL sta CIA1_INTERRUPT // *VICII_CONTROL1 |=$80 // [8] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 diff --git a/src/test/ref/irq-hardware.sym b/src/test/ref/irq-hardware.sym index a05c1e0cd..4ec4bdeea 100644 --- a/src/test/ref/irq-hardware.sym +++ b/src/test/ref/irq-hardware.sym @@ -1,7 +1,7 @@ __constant char * const BG_COLOR = (char *) 53280 __constant const char BLACK = 0 __constant char * const CIA1_INTERRUPT = (char *) 56333 -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant char * const FGCOL = (char *) 53281 __constant void (** const HARDWARE_IRQ)() = (void (**)()) 65534 __constant char * const IRQ_ENABLE = (char *) 53274 diff --git a/src/test/ref/irq-idx-problem.asm b/src/test/ref/irq-idx-problem.asm index d7a5582b3..dd551b43a 100644 --- a/src/test/ref/irq-idx-problem.asm +++ b/src/test/ref/irq-idx-problem.asm @@ -14,7 +14,7 @@ .segment Basic :BasicUpstart(__start) /// Value that disables all CIA interrupts when stored to the CIA Interrupt registers - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f /// VICII IRQ Status/Enable Raster // @see #IRQ_ENABLE #IRQ_STATUS /// 0 | RST| Reaching a certain raster line. The line is specified by writing @@ -106,9 +106,9 @@ table_driven_irq: { main: { // asm sei - // CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR + // CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR_ALL // Disable CIA 1 Timer IRQ - lda #CIA_INTERRUPT_CLEAR + lda #CIA_INTERRUPT_CLEAR_ALL sta CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT // *VICII_CONTROL1 &=$7f // Set raster line to $60 diff --git a/src/test/ref/irq-idx-problem.cfg b/src/test/ref/irq-idx-problem.cfg index e66a37faa..608d569e2 100644 --- a/src/test/ref/irq-idx-problem.cfg +++ b/src/test/ref/irq-idx-problem.cfg @@ -48,7 +48,7 @@ table_driven_irq::@2: scope:[table_driven_irq] from table_driven_irq::@1 void main() main: scope:[main] from __start::@1 asm { sei } - [19] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + [19] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL [20] *VICII_CONTROL1 = *VICII_CONTROL1 & $7f [21] *RASTER = $60 [22] *IRQ_ENABLE = IRQ_RASTER diff --git a/src/test/ref/irq-idx-problem.log b/src/test/ref/irq-idx-problem.log index 2b82b1652..2eaee3c37 100644 --- a/src/test/ref/irq-idx-problem.log +++ b/src/test/ref/irq-idx-problem.log @@ -7,7 +7,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 asm { sei } - *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL *VICII_CONTROL1 = *VICII_CONTROL1 & $7f *RASTER = $60 *IRQ_ENABLE = IRQ_RASTER @@ -82,7 +82,7 @@ __start::@return: scope:[__start] from __start::@2 SYMBOL TABLE SSA __constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *)$dc00 -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant char IRQ_CHANGE_IDX[] = { $20, $21, IRQ_CHANGE_NEXT, $20, $21, IRQ_CHANGE_NEXT, $20, $21, IRQ_CHANGE_NEXT, $20, $21, IRQ_CHANGE_NEXT } __constant const char IRQ_CHANGE_NEXT = $7f __constant char IRQ_CHANGE_VAL[] = { $b, $b, $63, 0, 0, $80, 7, 7, $83, 0, 0, $60 } @@ -248,7 +248,7 @@ table_driven_irq::@2: scope:[table_driven_irq] from table_driven_irq::@1 void main() main: scope:[main] from __start::@1 asm { sei } - [19] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + [19] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL [20] *VICII_CONTROL1 = *VICII_CONTROL1 & $7f [21] *RASTER = $60 [22] *IRQ_ENABLE = IRQ_RASTER @@ -292,7 +292,7 @@ Removing always clobbered register reg byte a as potential for zp[1]:3 [ table_d Statement [14] irq_idx = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [16] (SCREEN+-VICII_SIZE+$3f8)[table_driven_irq::idx#0] = table_driven_irq::val#0 [ irq_idx ] ( [ irq_idx ] { } ) always clobbers reg byte a Statement [17] VICII_BASE[table_driven_irq::idx#0] = table_driven_irq::val#0 [ irq_idx ] ( [ irq_idx ] { } ) always clobbers reg byte a -Statement [19] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( main:3 [ ] { } ) always clobbers reg byte a +Statement [19] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL [ ] ( main:3 [ ] { } ) always clobbers reg byte a Statement [20] *VICII_CONTROL1 = *VICII_CONTROL1 & $7f [ ] ( main:3 [ ] { } ) always clobbers reg byte a Statement [21] *RASTER = $60 [ ] ( main:3 [ ] { } ) always clobbers reg byte a Statement [22] *IRQ_ENABLE = IRQ_RASTER [ ] ( main:3 [ ] { } ) always clobbers reg byte a @@ -305,7 +305,7 @@ Statement [11] *IRQ_STATUS = IRQ_RASTER [ table_driven_irq::val#0 ] ( [ table_d Statement [14] irq_idx = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [16] (SCREEN+-VICII_SIZE+$3f8)[table_driven_irq::idx#0] = table_driven_irq::val#0 [ irq_idx ] ( [ irq_idx ] { } ) always clobbers reg byte a Statement [17] VICII_BASE[table_driven_irq::idx#0] = table_driven_irq::val#0 [ irq_idx ] ( [ irq_idx ] { } ) always clobbers reg byte a -Statement [19] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( main:3 [ ] { } ) always clobbers reg byte a +Statement [19] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL [ ] ( main:3 [ ] { } ) always clobbers reg byte a Statement [20] *VICII_CONTROL1 = *VICII_CONTROL1 & $7f [ ] ( main:3 [ ] { } ) always clobbers reg byte a Statement [21] *RASTER = $60 [ ] ( main:3 [ ] { } ) always clobbers reg byte a Statement [22] *IRQ_ENABLE = IRQ_RASTER [ ] ( main:3 [ ] { } ) always clobbers reg byte a @@ -355,7 +355,7 @@ ASSEMBLER BEFORE OPTIMIZATION :BasicUpstart(__start) // Global Constants & labels /// Value that disables all CIA interrupts when stored to the CIA Interrupt registers - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f /// VICII IRQ Status/Enable Raster // @see #IRQ_ENABLE #IRQ_STATUS /// 0 | RST| Reaching a certain raster line. The line is specified by writing @@ -480,9 +480,9 @@ table_driven_irq: { main: { // asm { sei } sei - // [19] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // [19] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ - lda #CIA_INTERRUPT_CLEAR + lda #CIA_INTERRUPT_CLEAR_ALL sta CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT // [20] *VICII_CONTROL1 = *VICII_CONTROL1 & $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 // Set raster line to $60 @@ -551,7 +551,7 @@ Fixing long branch [75] bcs $ea81 to bcc FINAL SYMBOL TABLE __constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320 -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant char IRQ_CHANGE_IDX[] = { $20, $21, IRQ_CHANGE_NEXT, $20, $21, IRQ_CHANGE_NEXT, $20, $21, IRQ_CHANGE_NEXT, $20, $21, IRQ_CHANGE_NEXT } __constant const char IRQ_CHANGE_NEXT = $7f __constant char IRQ_CHANGE_VAL[] = { $b, $b, $63, 0, 0, $80, 7, 7, $83, 0, 0, $60 } @@ -601,7 +601,7 @@ Score: 625 :BasicUpstart(__start) // Global Constants & labels /// Value that disables all CIA interrupts when stored to the CIA Interrupt registers - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f /// VICII IRQ Status/Enable Raster // @see #IRQ_ENABLE #IRQ_STATUS /// 0 | RST| Reaching a certain raster line. The line is specified by writing @@ -725,10 +725,10 @@ main: { // asm // asm { sei } sei - // CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR - // [19] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR_ALL + // [19] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ - lda #CIA_INTERRUPT_CLEAR + lda #CIA_INTERRUPT_CLEAR_ALL sta CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT // *VICII_CONTROL1 &=$7f // [20] *VICII_CONTROL1 = *VICII_CONTROL1 & $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 diff --git a/src/test/ref/irq-idx-problem.sym b/src/test/ref/irq-idx-problem.sym index 043239453..7010a4bce 100644 --- a/src/test/ref/irq-idx-problem.sym +++ b/src/test/ref/irq-idx-problem.sym @@ -1,5 +1,5 @@ __constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320 -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant char IRQ_CHANGE_IDX[] = { $20, $21, IRQ_CHANGE_NEXT, $20, $21, IRQ_CHANGE_NEXT, $20, $21, IRQ_CHANGE_NEXT, $20, $21, IRQ_CHANGE_NEXT } __constant const char IRQ_CHANGE_NEXT = $7f __constant char IRQ_CHANGE_VAL[] = { $b, $b, $63, 0, 0, $80, 7, 7, $83, 0, 0, $60 } diff --git a/src/test/ref/irq-kernel.asm b/src/test/ref/irq-kernel.asm index 294b71500..712877d99 100644 --- a/src/test/ref/irq-kernel.asm +++ b/src/test/ref/irq-kernel.asm @@ -10,7 +10,7 @@ .const IRQ_RASTER = 1 .const WHITE = 1 .const BLACK = 0 - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f .label KERNEL_IRQ = $314 .label RASTER = $d012 .label VICII_CONTROL1 = $d011 @@ -37,9 +37,9 @@ irq: { main: { // asm sei - // *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR + // *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL // Disable CIA 1 Timer IRQ - lda #CIA_INTERRUPT_CLEAR + lda #CIA_INTERRUPT_CLEAR_ALL sta CIA1_INTERRUPT // *VICII_CONTROL1 |=$80 // Set raster line to $100 diff --git a/src/test/ref/irq-kernel.cfg b/src/test/ref/irq-kernel.cfg index e9dc1c68d..df469f1cc 100644 --- a/src/test/ref/irq-kernel.cfg +++ b/src/test/ref/irq-kernel.cfg @@ -12,7 +12,7 @@ irq::@return: scope:[irq] from irq void main() main: scope:[main] from asm { sei } - [5] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR + [5] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL [6] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 [7] *RASTER = 0 [8] *IRQ_ENABLE = IRQ_RASTER diff --git a/src/test/ref/irq-kernel.log b/src/test/ref/irq-kernel.log index 89ea66fe9..fd477a519 100644 --- a/src/test/ref/irq-kernel.log +++ b/src/test/ref/irq-kernel.log @@ -5,7 +5,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start asm { sei } - *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR + *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL *VICII_CONTROL1 = *VICII_CONTROL1 | $80 *RASTER = 0 *IRQ_ENABLE = IRQ_RASTER @@ -40,7 +40,7 @@ SYMBOL TABLE SSA __constant char * const BG_COLOR = (char *)$d020 __constant const char BLACK = 0 __constant char * const CIA1_INTERRUPT = (char *)$dc0d -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant char * const IRQ_ENABLE = (char *)$d01a __constant const char IRQ_RASTER = 1 __constant char * const IRQ_STATUS = (char *)$d019 @@ -95,7 +95,7 @@ irq::@return: scope:[irq] from irq void main() main: scope:[main] from asm { sei } - [5] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR + [5] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL [6] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 [7] *RASTER = 0 [8] *IRQ_ENABLE = IRQ_RASTER @@ -117,7 +117,7 @@ REGISTER UPLIFT POTENTIAL REGISTERS Statement [0] *BG_COLOR = WHITE [ ] ( [ ] { } ) always clobbers reg byte a Statement [1] *BG_COLOR = BLACK [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] *IRQ_STATUS = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a -Statement [5] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR [ ] ( [ ] { } ) always clobbers reg byte a +Statement [5] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL [ ] ( [ ] { } ) always clobbers reg byte a Statement [6] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 [ ] ( [ ] { } ) always clobbers reg byte a Statement [7] *RASTER = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [8] *IRQ_ENABLE = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a @@ -148,7 +148,7 @@ ASSEMBLER BEFORE OPTIMIZATION .const IRQ_RASTER = 1 .const WHITE = 1 .const BLACK = 0 - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f .label KERNEL_IRQ = $314 .label RASTER = $d012 .label VICII_CONTROL1 = $d011 @@ -182,9 +182,9 @@ irq: { main: { // asm { sei } sei - // [5] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // [5] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ - lda #CIA_INTERRUPT_CLEAR + lda #CIA_INTERRUPT_CLEAR_ALL sta CIA1_INTERRUPT // [6] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 // Set raster line to $100 @@ -226,7 +226,7 @@ FINAL SYMBOL TABLE __constant char * const BG_COLOR = (char *) 53280 __constant const char BLACK = 0 __constant char * const CIA1_INTERRUPT = (char *) 56333 -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant char * const IRQ_ENABLE = (char *) 53274 __constant const char IRQ_RASTER = 1 __constant char * const IRQ_STATUS = (char *) 53273 @@ -257,7 +257,7 @@ Score: 98 .const IRQ_RASTER = 1 .const WHITE = 1 .const BLACK = 0 - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f .label KERNEL_IRQ = $314 .label RASTER = $d012 .label VICII_CONTROL1 = $d011 @@ -294,10 +294,10 @@ main: { // asm // asm { sei } sei - // *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR - // [5] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL + // [5] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ - lda #CIA_INTERRUPT_CLEAR + lda #CIA_INTERRUPT_CLEAR_ALL sta CIA1_INTERRUPT // *VICII_CONTROL1 |=$80 // [6] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 diff --git a/src/test/ref/irq-kernel.sym b/src/test/ref/irq-kernel.sym index 6dcf44b6c..2a36c23b4 100644 --- a/src/test/ref/irq-kernel.sym +++ b/src/test/ref/irq-kernel.sym @@ -1,7 +1,7 @@ __constant char * const BG_COLOR = (char *) 53280 __constant const char BLACK = 0 __constant char * const CIA1_INTERRUPT = (char *) 56333 -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant char * const IRQ_ENABLE = (char *) 53274 __constant const char IRQ_RASTER = 1 __constant char * const IRQ_STATUS = (char *) 53273 diff --git a/src/test/ref/irq-local-var-overlap-problem.asm b/src/test/ref/irq-local-var-overlap-problem.asm index 3d813df86..981db3c5f 100644 --- a/src/test/ref/irq-local-var-overlap-problem.asm +++ b/src/test/ref/irq-local-var-overlap-problem.asm @@ -8,7 +8,7 @@ .segment Basic :BasicUpstart(main) .const IRQ_RASTER = 1 - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f .label KERNEL_IRQ = $314 .label RASTER = $d012 .label VICII_CONTROL1 = $d011 @@ -71,9 +71,9 @@ main: { .label i = 7 // asm sei - // *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR + // *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL // Disable CIA 1 Timer IRQ - lda #CIA_INTERRUPT_CLEAR + lda #CIA_INTERRUPT_CLEAR_ALL sta CIA1_INTERRUPT // *VICII_CONTROL1 &=$7f // Set raster line to $0fd diff --git a/src/test/ref/irq-local-var-overlap-problem.cfg b/src/test/ref/irq-local-var-overlap-problem.cfg index f6d4a0f7a..d219c5886 100644 --- a/src/test/ref/irq-local-var-overlap-problem.cfg +++ b/src/test/ref/irq-local-var-overlap-problem.cfg @@ -14,7 +14,7 @@ irq::@3: scope:[irq] from irq::@2 irq::@7 [4] irq::$2 = irq::i#7 + irq::j#4 [5] irq::$3 = irq::$2 + irq::k#2 [6] *FGCOL = irq::$3 - [7] call sub_irq + [7] call sub_irq to:irq::@7 irq::@7: scope:[irq] from irq::@3 [8] irq::k#1 = ++ irq::k#2 @@ -39,7 +39,7 @@ irq::@return: scope:[irq] from irq::@6 void main() main: scope:[main] from asm { sei } - [18] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR + [18] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL [19] *VICII_CONTROL1 = *VICII_CONTROL1 & $7f [20] *RASTER = $fd [21] *IRQ_ENABLE = IRQ_RASTER @@ -57,7 +57,7 @@ main::@3: scope:[main] from main::@2 main::@6 [27] main::$0 = main::i#7 + main::j#4 [28] main::$1 = main::$0 + main::k#2 [29] *FGCOL = main::$1 - [30] call sub_main + [30] call sub_main to:main::@6 main::@6: scope:[main] from main::@3 [31] main::k#1 = ++ main::k#2 diff --git a/src/test/ref/irq-local-var-overlap-problem.log b/src/test/ref/irq-local-var-overlap-problem.log index 9c669ff2f..51b72bf2c 100644 --- a/src/test/ref/irq-local-var-overlap-problem.log +++ b/src/test/ref/irq-local-var-overlap-problem.log @@ -5,7 +5,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start asm { sei } - *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR + *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL *VICII_CONTROL1 = *VICII_CONTROL1 & $7f *RASTER = $fd *IRQ_ENABLE = IRQ_RASTER @@ -208,7 +208,7 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA __constant char * const BG_COLOR = (char *)$d020 __constant char * const CIA1_INTERRUPT = (char *)$dc0d -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant char * const FGCOL = (char *)$d021 __constant char * const IRQ_ENABLE = (char *)$d01a __constant const char IRQ_RASTER = 1 @@ -587,7 +587,7 @@ irq::@return: scope:[irq] from irq::@6 void main() main: scope:[main] from asm { sei } - [18] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR + [18] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL [19] *VICII_CONTROL1 = *VICII_CONTROL1 & $7f [20] *RASTER = $fd [21] *IRQ_ENABLE = IRQ_RASTER @@ -803,7 +803,7 @@ Removing always clobbered register reg byte a as potential for zp[1]:20 [ irq::j Removing always clobbered register reg byte a as potential for zp[1]:16 [ irq::k#2 irq::k#1 ] Statement [5] irq::$3 = irq::$2 + irq::k#2 [ irq::i#7 irq::j#4 irq::k#2 irq::$3 ] ( [ irq::i#7 irq::j#4 irq::k#2 irq::$3 ] { } ) always clobbers reg byte a Statement [14] *IRQ_STATUS = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a -Statement [18] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR [ ] ( [ ] { } ) always clobbers reg byte a +Statement [18] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL [ ] ( [ ] { } ) always clobbers reg byte a Statement [19] *VICII_CONTROL1 = *VICII_CONTROL1 & $7f [ ] ( [ ] { } ) always clobbers reg byte a Statement [20] *RASTER = $fd [ ] ( [ ] { } ) always clobbers reg byte a Statement [21] *IRQ_ENABLE = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a @@ -826,7 +826,7 @@ Statement [57] sub_main::$1 = sub_main::$0 + sub_main::k#2 [ sub_main::i#6 sub_m Statement [4] irq::$2 = irq::i#7 + irq::j#4 [ irq::i#7 irq::j#4 irq::k#2 irq::$2 ] ( [ irq::i#7 irq::j#4 irq::k#2 irq::$2 ] { } ) always clobbers reg byte a Statement [5] irq::$3 = irq::$2 + irq::k#2 [ irq::i#7 irq::j#4 irq::k#2 irq::$3 ] ( [ irq::i#7 irq::j#4 irq::k#2 irq::$3 ] { } ) always clobbers reg byte a Statement [14] *IRQ_STATUS = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a -Statement [18] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR [ ] ( [ ] { } ) always clobbers reg byte a +Statement [18] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL [ ] ( [ ] { } ) always clobbers reg byte a Statement [19] *VICII_CONTROL1 = *VICII_CONTROL1 & $7f [ ] ( [ ] { } ) always clobbers reg byte a Statement [20] *RASTER = $fd [ ] ( [ ] { } ) always clobbers reg byte a Statement [21] *IRQ_ENABLE = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a @@ -913,7 +913,7 @@ ASSEMBLER BEFORE OPTIMIZATION :BasicUpstart(main) // Global Constants & labels .const IRQ_RASTER = 1 - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f .label KERNEL_IRQ = $314 .label RASTER = $d012 .label VICII_CONTROL1 = $d011 @@ -1029,9 +1029,9 @@ main: { .label i = 7 // asm { sei } sei - // [18] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // [18] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ - lda #CIA_INTERRUPT_CLEAR + lda #CIA_INTERRUPT_CLEAR_ALL sta CIA1_INTERRUPT // [19] *VICII_CONTROL1 = *VICII_CONTROL1 & $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 // Set raster line to $0fd @@ -1402,7 +1402,7 @@ Succesful ASM optimization Pass5UnreachableCodeElimination FINAL SYMBOL TABLE __constant char * const BG_COLOR = (char *) 53280 __constant char * const CIA1_INTERRUPT = (char *) 56333 -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant char * const FGCOL = (char *) 53281 __constant char * const IRQ_ENABLE = (char *) 53274 __constant const char IRQ_RASTER = 1 @@ -1497,7 +1497,7 @@ Score: 314173671 :BasicUpstart(main) // Global Constants & labels .const IRQ_RASTER = 1 - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f .label KERNEL_IRQ = $314 .label RASTER = $d012 .label VICII_CONTROL1 = $d011 @@ -1600,10 +1600,10 @@ main: { // asm // asm { sei } sei - // *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR - // [18] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL + // [18] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ - lda #CIA_INTERRUPT_CLEAR + lda #CIA_INTERRUPT_CLEAR_ALL sta CIA1_INTERRUPT // *VICII_CONTROL1 &=$7f // [19] *VICII_CONTROL1 = *VICII_CONTROL1 & $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 diff --git a/src/test/ref/irq-local-var-overlap-problem.sym b/src/test/ref/irq-local-var-overlap-problem.sym index 094ca215a..fa5d837c6 100644 --- a/src/test/ref/irq-local-var-overlap-problem.sym +++ b/src/test/ref/irq-local-var-overlap-problem.sym @@ -1,6 +1,6 @@ __constant char * const BG_COLOR = (char *) 53280 __constant char * const CIA1_INTERRUPT = (char *) 56333 -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant char * const FGCOL = (char *) 53281 __constant char * const IRQ_ENABLE = (char *) 53274 __constant const char IRQ_RASTER = 1 diff --git a/src/test/ref/irq-raster.asm b/src/test/ref/irq-raster.asm index ab86788b6..8dcd0c5c1 100644 --- a/src/test/ref/irq-raster.asm +++ b/src/test/ref/irq-raster.asm @@ -10,7 +10,7 @@ .const IRQ_RASTER = 1 .const WHITE = 1 .const BLACK = 0 - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f .label KERNEL_IRQ = $314 .label RASTER = $d012 .label VICII_CONTROL1 = $d011 @@ -37,9 +37,9 @@ irq: { main: { // asm sei - // *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR + // *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL // Disable CIA 1 Timer IRQ - lda #CIA_INTERRUPT_CLEAR + lda #CIA_INTERRUPT_CLEAR_ALL sta CIA1_INTERRUPT // *VICII_CONTROL1 |=$80 // Set raster line to $100 diff --git a/src/test/ref/irq-raster.cfg b/src/test/ref/irq-raster.cfg index a8cd08b19..0a388f7ec 100644 --- a/src/test/ref/irq-raster.cfg +++ b/src/test/ref/irq-raster.cfg @@ -12,7 +12,7 @@ irq::@return: scope:[irq] from irq void main() main: scope:[main] from asm { sei } - [5] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR + [5] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL [6] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 [7] *RASTER = 0 [8] *IRQ_ENABLE = IRQ_RASTER diff --git a/src/test/ref/irq-raster.log b/src/test/ref/irq-raster.log index 2472af974..e9546b955 100644 --- a/src/test/ref/irq-raster.log +++ b/src/test/ref/irq-raster.log @@ -5,7 +5,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start asm { sei } - *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR + *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL *VICII_CONTROL1 = *VICII_CONTROL1 | $80 *RASTER = 0 *IRQ_ENABLE = IRQ_RASTER @@ -40,7 +40,7 @@ SYMBOL TABLE SSA __constant char * const BG_COLOR = (char *)$d020 __constant const char BLACK = 0 __constant char * const CIA1_INTERRUPT = (char *)$dc0d -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant char * const IRQ_ENABLE = (char *)$d01a __constant const char IRQ_RASTER = 1 __constant char * const IRQ_STATUS = (char *)$d019 @@ -95,7 +95,7 @@ irq::@return: scope:[irq] from irq void main() main: scope:[main] from asm { sei } - [5] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR + [5] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL [6] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 [7] *RASTER = 0 [8] *IRQ_ENABLE = IRQ_RASTER @@ -117,7 +117,7 @@ REGISTER UPLIFT POTENTIAL REGISTERS Statement [0] *BG_COLOR = WHITE [ ] ( [ ] { } ) always clobbers reg byte a Statement [1] *BG_COLOR = BLACK [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] *IRQ_STATUS = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a -Statement [5] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR [ ] ( [ ] { } ) always clobbers reg byte a +Statement [5] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL [ ] ( [ ] { } ) always clobbers reg byte a Statement [6] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 [ ] ( [ ] { } ) always clobbers reg byte a Statement [7] *RASTER = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [8] *IRQ_ENABLE = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a @@ -148,7 +148,7 @@ ASSEMBLER BEFORE OPTIMIZATION .const IRQ_RASTER = 1 .const WHITE = 1 .const BLACK = 0 - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f .label KERNEL_IRQ = $314 .label RASTER = $d012 .label VICII_CONTROL1 = $d011 @@ -182,9 +182,9 @@ irq: { main: { // asm { sei } sei - // [5] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // [5] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ - lda #CIA_INTERRUPT_CLEAR + lda #CIA_INTERRUPT_CLEAR_ALL sta CIA1_INTERRUPT // [6] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 // Set raster line to $100 @@ -226,7 +226,7 @@ FINAL SYMBOL TABLE __constant char * const BG_COLOR = (char *) 53280 __constant const char BLACK = 0 __constant char * const CIA1_INTERRUPT = (char *) 56333 -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant char * const IRQ_ENABLE = (char *) 53274 __constant const char IRQ_RASTER = 1 __constant char * const IRQ_STATUS = (char *) 53273 @@ -257,7 +257,7 @@ Score: 98 .const IRQ_RASTER = 1 .const WHITE = 1 .const BLACK = 0 - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f .label KERNEL_IRQ = $314 .label RASTER = $d012 .label VICII_CONTROL1 = $d011 @@ -294,10 +294,10 @@ main: { // asm // asm { sei } sei - // *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR - // [5] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL + // [5] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ - lda #CIA_INTERRUPT_CLEAR + lda #CIA_INTERRUPT_CLEAR_ALL sta CIA1_INTERRUPT // *VICII_CONTROL1 |=$80 // [6] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 diff --git a/src/test/ref/irq-raster.sym b/src/test/ref/irq-raster.sym index dd2634456..afa897151 100644 --- a/src/test/ref/irq-raster.sym +++ b/src/test/ref/irq-raster.sym @@ -1,7 +1,7 @@ __constant char * const BG_COLOR = (char *) 53280 __constant const char BLACK = 0 __constant char * const CIA1_INTERRUPT = (char *) 56333 -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant char * const IRQ_ENABLE = (char *) 53274 __constant const char IRQ_RASTER = 1 __constant char * const IRQ_STATUS = (char *) 53273 diff --git a/src/test/ref/irq-volatile-bool-problem.asm b/src/test/ref/irq-volatile-bool-problem.asm index 54b9fd85c..3fea60535 100644 --- a/src/test/ref/irq-volatile-bool-problem.asm +++ b/src/test/ref/irq-volatile-bool-problem.asm @@ -9,7 +9,7 @@ .segment Basic :BasicUpstart(main) .const IRQ_RASTER = 1 - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f .label KERNEL_IRQ = $314 .label RASTER = $d012 .label VICII_CONTROL1 = $d011 @@ -35,9 +35,9 @@ irq: { main: { // asm sei - // *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR + // *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL // Disable CIA 1 Timer IRQ - lda #CIA_INTERRUPT_CLEAR + lda #CIA_INTERRUPT_CLEAR_ALL sta CIA1_INTERRUPT // *VICII_CONTROL1 &=$7f // Set raster line to $0fd diff --git a/src/test/ref/irq-volatile-bool-problem.cfg b/src/test/ref/irq-volatile-bool-problem.cfg index 989b15daa..05f1f1318 100644 --- a/src/test/ref/irq-volatile-bool-problem.cfg +++ b/src/test/ref/irq-volatile-bool-problem.cfg @@ -18,7 +18,7 @@ irq::@return: scope:[irq] from irq::@1 void main() main: scope:[main] from asm { sei } - [7] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR + [7] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL [8] *VICII_CONTROL1 = *VICII_CONTROL1 & $7f [9] *RASTER = $fd [10] *IRQ_ENABLE = IRQ_RASTER diff --git a/src/test/ref/irq-volatile-bool-problem.log b/src/test/ref/irq-volatile-bool-problem.log index fd64313a6..3866eaa2f 100644 --- a/src/test/ref/irq-volatile-bool-problem.log +++ b/src/test/ref/irq-volatile-bool-problem.log @@ -7,7 +7,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 asm { sei } - *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR + *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL *VICII_CONTROL1 = *VICII_CONTROL1 & $7f *RASTER = $fd *IRQ_ENABLE = IRQ_RASTER @@ -62,7 +62,7 @@ __start::@return: scope:[__start] from __start::@2 SYMBOL TABLE SSA __constant char * const BG_COLOR = (char *)$d020 __constant char * const CIA1_INTERRUPT = (char *)$dc0d -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant char * const IRQ_ENABLE = (char *)$d01a __constant const char IRQ_RASTER = 1 __constant char * const IRQ_STATUS = (char *)$d019 @@ -161,7 +161,7 @@ irq::@return: scope:[irq] from irq::@1 void main() main: scope:[main] from asm { sei } - [7] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR + [7] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL [8] *VICII_CONTROL1 = *VICII_CONTROL1 & $7f [9] *RASTER = $fd [10] *IRQ_ENABLE = IRQ_RASTER @@ -185,7 +185,7 @@ Complete equivalence classes REGISTER UPLIFT POTENTIAL REGISTERS Statement [1] *IRQ_STATUS = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] if(*RASTER<$32+1) goto irq::@1 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [7] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR [ ] ( [ ] { } ) always clobbers reg byte a +Statement [7] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL [ ] ( [ ] { } ) always clobbers reg byte a Statement [8] *VICII_CONTROL1 = *VICII_CONTROL1 & $7f [ ] ( [ ] { } ) always clobbers reg byte a Statement [9] *RASTER = $fd [ ] ( [ ] { } ) always clobbers reg byte a Statement [10] *IRQ_ENABLE = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a @@ -216,7 +216,7 @@ ASSEMBLER BEFORE OPTIMIZATION :BasicUpstart(main) // Global Constants & labels .const IRQ_RASTER = 1 - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f .label KERNEL_IRQ = $314 .label RASTER = $d012 .label VICII_CONTROL1 = $d011 @@ -258,9 +258,9 @@ irq: { main: { // asm { sei } sei - // [7] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // [7] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ - lda #CIA_INTERRUPT_CLEAR + lda #CIA_INTERRUPT_CLEAR_ALL sta CIA1_INTERRUPT // [8] *VICII_CONTROL1 = *VICII_CONTROL1 & $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 // Set raster line to $0fd @@ -320,7 +320,7 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE __constant char * const BG_COLOR = (char *) 53280 __constant char * const CIA1_INTERRUPT = (char *) 56333 -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant char * const IRQ_ENABLE = (char *) 53274 __constant const char IRQ_RASTER = 1 __constant char * const IRQ_STATUS = (char *) 53273 @@ -349,7 +349,7 @@ Score: 978 :BasicUpstart(main) // Global Constants & labels .const IRQ_RASTER = 1 - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f .label KERNEL_IRQ = $314 .label RASTER = $d012 .label VICII_CONTROL1 = $d011 @@ -389,10 +389,10 @@ main: { // asm // asm { sei } sei - // *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR - // [7] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL + // [7] *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR_ALL -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ - lda #CIA_INTERRUPT_CLEAR + lda #CIA_INTERRUPT_CLEAR_ALL sta CIA1_INTERRUPT // *VICII_CONTROL1 &=$7f // [8] *VICII_CONTROL1 = *VICII_CONTROL1 & $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 diff --git a/src/test/ref/irq-volatile-bool-problem.sym b/src/test/ref/irq-volatile-bool-problem.sym index a40b10902..0f41e19c0 100644 --- a/src/test/ref/irq-volatile-bool-problem.sym +++ b/src/test/ref/irq-volatile-bool-problem.sym @@ -1,6 +1,6 @@ __constant char * const BG_COLOR = (char *) 53280 __constant char * const CIA1_INTERRUPT = (char *) 56333 -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant char * const IRQ_ENABLE = (char *) 53274 __constant const char IRQ_RASTER = 1 __constant char * const IRQ_STATUS = (char *) 53273 diff --git a/src/test/ref/multiplexer-irq/simple-multiplexer-irq.asm b/src/test/ref/multiplexer-irq/simple-multiplexer-irq.asm index 7887dc3fc..448115b84 100644 --- a/src/test/ref/multiplexer-irq/simple-multiplexer-irq.asm +++ b/src/test/ref/multiplexer-irq/simple-multiplexer-irq.asm @@ -14,7 +14,7 @@ .segment Basic :BasicUpstart(__start) /// Value that disables all CIA interrupts when stored to the CIA Interrupt registers - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f /// $D011 Control Register #1 Bit#4: DEN Switch VIC-II output on/off .const VICII_DEN = $10 /// $D011 Control Register #1 Bit#3: RSEL Switch betweem 25 or 24 visible rows @@ -312,8 +312,8 @@ init: { // asm // enable the interrupt sei - // CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR - lda #CIA_INTERRUPT_CLEAR + // CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR_ALL + lda #CIA_INTERRUPT_CLEAR_ALL sta CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT // *IRQ_ENABLE = IRQ_RASTER lda #IRQ_RASTER diff --git a/src/test/ref/multiplexer-irq/simple-multiplexer-irq.cfg b/src/test/ref/multiplexer-irq/simple-multiplexer-irq.cfg index efb17ff97..974bd4e0e 100644 --- a/src/test/ref/multiplexer-irq/simple-multiplexer-irq.cfg +++ b/src/test/ref/multiplexer-irq/simple-multiplexer-irq.cfg @@ -139,7 +139,7 @@ init::@3: scope:[init] from init::@2 init::@3 to:init::@4 init::@4: scope:[init] from init::@3 asm { sei } - [71] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + [71] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL [72] *IRQ_ENABLE = IRQ_RASTER [73] *IRQ_STATUS = IRQ_RASTER [74] *KERNEL_IRQ = &plex_irq diff --git a/src/test/ref/multiplexer-irq/simple-multiplexer-irq.log b/src/test/ref/multiplexer-irq/simple-multiplexer-irq.log index 831d483e7..ccdb97a9b 100644 --- a/src/test/ref/multiplexer-irq/simple-multiplexer-irq.log +++ b/src/test/ref/multiplexer-irq/simple-multiplexer-irq.log @@ -199,7 +199,7 @@ init::@3: scope:[init] from init::@2 init::@3 to:init::@4 init::@4: scope:[init] from init::@3 asm { sei } - *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL *IRQ_ENABLE = IRQ_RASTER *IRQ_STATUS = IRQ_RASTER *KERNEL_IRQ = &plex_irq @@ -328,7 +328,7 @@ __start::@return: scope:[__start] from __start::@2 SYMBOL TABLE SSA __constant char * const BORDER_COLOR = (char *)$d020 __constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *)$dc00 -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant char * const D011 = (char *)$d011 __constant const char GREEN = 5 __constant char * const IRQ_ENABLE = (char *)$d01a @@ -1038,7 +1038,7 @@ init::@3: scope:[init] from init::@2 init::@3 to:init::@4 init::@4: scope:[init] from init::@3 asm { sei } - [71] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + [71] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL [72] *IRQ_ENABLE = IRQ_RASTER [73] *IRQ_STATUS = IRQ_RASTER [74] *KERNEL_IRQ = &plex_irq @@ -1370,7 +1370,7 @@ Statement [62] init::xp#1 = init::xp#2 + 9 [ init::sx#2 init::xp#1 ] ( main:8::i Statement [65] *SPRITES_ENABLE = $ff [ ] ( main:8::init:27 [ framedone ] { } ) always clobbers reg byte a Statement [67] SPRITES_COLOR[init::ss#2] = GREEN [ init::ss#2 ] ( main:8::init:27 [ framedone init::ss#2 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:11 [ init::ss#2 init::ss#1 ] -Statement [71] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( main:8::init:27 [ framedone ] { } ) always clobbers reg byte a +Statement [71] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL [ ] ( main:8::init:27 [ framedone ] { } ) always clobbers reg byte a Statement [72] *IRQ_ENABLE = IRQ_RASTER [ ] ( main:8::init:27 [ framedone ] { } ) always clobbers reg byte a Statement [73] *IRQ_STATUS = IRQ_RASTER [ ] ( main:8::init:27 [ framedone ] { } ) always clobbers reg byte a Statement [74] *KERNEL_IRQ = &plex_irq [ ] ( main:8::init:27 [ framedone ] { } ) always clobbers reg byte a @@ -1435,7 +1435,7 @@ Statement [61] PLEX_XPOS[init::$3] = init::xp#2 [ init::sx#2 init::xp#2 ] ( main Statement [62] init::xp#1 = init::xp#2 + 9 [ init::sx#2 init::xp#1 ] ( main:8::init:27 [ framedone init::sx#2 init::xp#1 ] { } ) always clobbers reg byte a Statement [65] *SPRITES_ENABLE = $ff [ ] ( main:8::init:27 [ framedone ] { } ) always clobbers reg byte a Statement [67] SPRITES_COLOR[init::ss#2] = GREEN [ init::ss#2 ] ( main:8::init:27 [ framedone init::ss#2 ] { } ) always clobbers reg byte a -Statement [71] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( main:8::init:27 [ framedone ] { } ) always clobbers reg byte a +Statement [71] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL [ ] ( main:8::init:27 [ framedone ] { } ) always clobbers reg byte a Statement [72] *IRQ_ENABLE = IRQ_RASTER [ ] ( main:8::init:27 [ framedone ] { } ) always clobbers reg byte a Statement [73] *IRQ_STATUS = IRQ_RASTER [ ] ( main:8::init:27 [ framedone ] { } ) always clobbers reg byte a Statement [74] *KERNEL_IRQ = &plex_irq [ ] ( main:8::init:27 [ framedone ] { } ) always clobbers reg byte a @@ -1492,7 +1492,7 @@ Statement [61] PLEX_XPOS[init::$3] = init::xp#2 [ init::sx#2 init::xp#2 ] ( main Statement [62] init::xp#1 = init::xp#2 + 9 [ init::sx#2 init::xp#1 ] ( main:8::init:27 [ framedone init::sx#2 init::xp#1 ] { } ) always clobbers reg byte a Statement [65] *SPRITES_ENABLE = $ff [ ] ( main:8::init:27 [ framedone ] { } ) always clobbers reg byte a Statement [67] SPRITES_COLOR[init::ss#2] = GREEN [ init::ss#2 ] ( main:8::init:27 [ framedone init::ss#2 ] { } ) always clobbers reg byte a -Statement [71] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( main:8::init:27 [ framedone ] { } ) always clobbers reg byte a +Statement [71] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL [ ] ( main:8::init:27 [ framedone ] { } ) always clobbers reg byte a Statement [72] *IRQ_ENABLE = IRQ_RASTER [ ] ( main:8::init:27 [ framedone ] { } ) always clobbers reg byte a Statement [73] *IRQ_STATUS = IRQ_RASTER [ ] ( main:8::init:27 [ framedone ] { } ) always clobbers reg byte a Statement [74] *KERNEL_IRQ = &plex_irq [ ] ( main:8::init:27 [ framedone ] { } ) always clobbers reg byte a @@ -1654,7 +1654,7 @@ ASSEMBLER BEFORE OPTIMIZATION :BasicUpstart(__start) // Global Constants & labels /// Value that disables all CIA interrupts when stored to the CIA Interrupt registers - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f /// $D011 Control Register #1 Bit#4: DEN Switch VIC-II output on/off .const VICII_DEN = $10 /// $D011 Control Register #1 Bit#3: RSEL Switch betweem 25 or 24 visible rows @@ -2058,8 +2058,8 @@ init: { // asm { sei } // enable the interrupt sei - // [71] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 - lda #CIA_INTERRUPT_CLEAR + // [71] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL -- _deref_pbuc1=vbuc2 + lda #CIA_INTERRUPT_CLEAR_ALL sta CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT // [72] *IRQ_ENABLE = IRQ_RASTER -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER @@ -2487,7 +2487,7 @@ Succesful ASM optimization Pass5UnnecesaryLoadElimination FINAL SYMBOL TABLE __constant char * const BORDER_COLOR = (char *) 53280 __constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320 -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant char * const D011 = (char *) 53265 __constant const char GREEN = 5 __constant char * const IRQ_ENABLE = (char *) 53274 @@ -2651,7 +2651,7 @@ Score: 43652 :BasicUpstart(__start) // Global Constants & labels /// Value that disables all CIA interrupts when stored to the CIA Interrupt registers - .const CIA_INTERRUPT_CLEAR = $7f + .const CIA_INTERRUPT_CLEAR_ALL = $7f /// $D011 Control Register #1 Bit#4: DEN Switch VIC-II output on/off .const VICII_DEN = $10 /// $D011 Control Register #1 Bit#3: RSEL Switch betweem 25 or 24 visible rows @@ -3061,9 +3061,9 @@ init: { // asm { sei } // enable the interrupt sei - // CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR - // [71] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 - lda #CIA_INTERRUPT_CLEAR + // CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR_ALL + // [71] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR_ALL -- _deref_pbuc1=vbuc2 + lda #CIA_INTERRUPT_CLEAR_ALL sta CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT // *IRQ_ENABLE = IRQ_RASTER // [72] *IRQ_ENABLE = IRQ_RASTER -- _deref_pbuc1=vbuc2 diff --git a/src/test/ref/multiplexer-irq/simple-multiplexer-irq.sym b/src/test/ref/multiplexer-irq/simple-multiplexer-irq.sym index c07337618..144c621c0 100644 --- a/src/test/ref/multiplexer-irq/simple-multiplexer-irq.sym +++ b/src/test/ref/multiplexer-irq/simple-multiplexer-irq.sym @@ -1,6 +1,6 @@ __constant char * const BORDER_COLOR = (char *) 53280 __constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320 -__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char CIA_INTERRUPT_CLEAR_ALL = $7f __constant char * const D011 = (char *) 53265 __constant const char GREEN = 5 __constant char * const IRQ_ENABLE = (char *) 53274