1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2025-04-08 14:37:40 +00:00

Moved interrrupt registers into c64.kc

This commit is contained in:
Jesper Gravgaard 2018-08-11 12:04:52 +02:00
parent 39e7ce3df1
commit 75a8749db4
25 changed files with 2713 additions and 1233 deletions

View File

@ -55,6 +55,13 @@ const byte VIC_CSEL = %00001000;
const byte* D018 = $d018;
const byte* VIC_MEMORY = $d018;
const byte* IRQ_STATUS = $d019;
const byte* IRQ_ENABLE = $d01a;
const byte IRQ_RASTER = %00000001;
const byte IRQ_COLLISION_BG = %00000010;
const byte IRQ_COLLISION_SPRITE = %00000100;
const byte IRQ_LIGHTPEN = %00001000;
const byte* COLS = $d800;
// CIA#1 Port A: keyboard matrix columns and joystick #2
@ -65,6 +72,10 @@ const byte* CIA1_PORT_B = $dc01;
const byte* CIA1_PORT_A_DDR = $dc02;
// CIA #1 Port B data direction register.
const byte* CIA1_PORT_B_DDR = $dc03;
// CIA#1 Interrupt Status & Control Register
const byte* CIA1_INTERRUPT = $dc0d;
// Value that disables all CIA interrupts when stored to the CIA Interrupt registers
const byte CIA_INTERRUPT_CLEAR = $7f;
// CIA#2 Port A: Serial bus, RS-232, VIC memory bank
const byte* CIA2_PORT_A = $dd00;
@ -74,6 +85,14 @@ const byte* CIA2_PORT_B = $dd01;
const byte* CIA2_PORT_A_DDR = $dd02;
// CIA #2 Port B data direction register.
const byte* CIA2_PORT_B_DDR = $dd03;
// CIA#2 Interrupt Status & Control Register
const byte* CIA2_INTERRUPT = $dd0d;
// The vector used when the KERNAL serves IRQ interrupts
const void()** KERNEL_IRQ = $0314;
// The vector used when the HARDWARE serves IRQ interrupts
const void()** HARDWARE_IRQ = $fffe;
const byte BLACK = $0;
const byte WHITE = $1;

View File

@ -1,33 +1,5 @@
// A minimal working raster hardware IRQ with clobber-based register savings
const void()** KERNEL_IRQ = $0314;
const void()** HARDWARE_IRQ = $fffe;
const byte* RASTER = $d012;
const byte* VIC_CONTROL = $d011;
const byte* IRQ_STATUS = $d019;
const byte* IRQ_ENABLE = $d01a;
const byte IRQ_RASTER = %00000001;
const byte IRQ_COLLISION_BG = %00000010;
const byte IRQ_COLLISION_SPRITE = %00000100;
const byte IRQ_LIGHTPEN = %00001000;
const byte* BGCOL = $d020;
const byte* FGCOL = $d021;
const byte WHITE = 1;
const byte BLACK = 0;
const byte* CIA1_INTERRUPT = $dc0d;
const byte CIA_INTERRUPT_CLEAR = $7f;
// Processor port data direction register
const byte* PROCPORT_DDR = $00;
// Mask for PROCESSOR_PORT_DDR which allows only memory configuration to be written
const byte PROCPORT_DDR_MEMORY_MASK = %00000111;
// Processor Port Register controlling RAM/ROM configuration and the datasette
const byte* PROCPORT = $01;
// RAM in $A000, $E000 I/O in $D000
const byte PROCPORT_RAM_IO = %00110101;
// RAM in $A000, $E000 CHAR ROM in $D000
import "c64"
void main() {
asm { sei }
@ -45,7 +17,7 @@ void main() {
*HARDWARE_IRQ = &irq;
asm { cli }
while(true) {
(*FGCOL)++;
(*BORDERCOL)++;
}
}

View File

@ -93,6 +93,13 @@ const byte VIC_CSEL = %00001000;
const byte* D018 = $d018;
const byte* VIC_MEMORY = $d018;
const byte* IRQ_STATUS = $d019;
const byte* IRQ_ENABLE = $d01a;
const byte IRQ_RASTER = %00000001;
const byte IRQ_COLLISION_BG = %00000010;
const byte IRQ_COLLISION_SPRITE = %00000100;
const byte IRQ_LIGHTPEN = %00001000;
const byte* COLS = $d800;
// CIA#1 Port A: keyboard matrix columns and joystick #2
@ -103,6 +110,10 @@ const byte* CIA1_PORT_B = $dc01;
const byte* CIA1_PORT_A_DDR = $dc02;
// CIA #1 Port B data direction register.
const byte* CIA1_PORT_B_DDR = $dc03;
// CIA#1 Interrupt Status & Control Register
const byte* CIA1_INTERRUPT = $dc0d;
// Value that disables all CIA interrupts when stored to the CIA Interrupt registers
const byte CIA_INTERRUPT_CLEAR = $7f;
// CIA#2 Port A: Serial bus, RS-232, VIC memory bank
const byte* CIA2_PORT_A = $dd00;
@ -112,6 +123,14 @@ const byte* CIA2_PORT_B = $dd01;
const byte* CIA2_PORT_A_DDR = $dd02;
// CIA #2 Port B data direction register.
const byte* CIA2_PORT_B_DDR = $dd03;
// CIA#2 Interrupt Status & Control Register
const byte* CIA2_INTERRUPT = $dd0d;
// The vector used when the KERNAL serves IRQ interrupts
const void()** KERNEL_IRQ = $0314;
// The vector used when the HARDWARE serves IRQ interrupts
const void()** HARDWARE_IRQ = $fffe;
const byte BLACK = $0;
const byte WHITE = $1;
@ -335,14 +354,17 @@ SYMBOLS
(byte*) BORDERCOL
(byte) BROWN
(byte*) CHARGEN
(byte*) CIA1_INTERRUPT
(byte*) CIA1_PORT_A
(byte*) CIA1_PORT_A_DDR
(byte*) CIA1_PORT_B
(byte*) CIA1_PORT_B_DDR
(byte*) CIA2_INTERRUPT
(byte*) CIA2_PORT_A
(byte*) CIA2_PORT_A_DDR
(byte*) CIA2_PORT_B
(byte*) CIA2_PORT_B_DDR
(byte) CIA_INTERRUPT_CLEAR
(byte*) COLS
(byte) CYAN
(byte*) D011
@ -351,6 +373,14 @@ SYMBOLS
(byte) DARK_GREY
(byte) GREEN
(byte) GREY
(void()**) HARDWARE_IRQ
(byte) IRQ_COLLISION_BG
(byte) IRQ_COLLISION_SPRITE
(byte*) IRQ_ENABLE
(byte) IRQ_LIGHTPEN
(byte) IRQ_RASTER
(byte*) IRQ_STATUS
(void()**) KERNEL_IRQ
(byte) LIGHT_BLUE
(byte) LIGHT_GREEN
(byte) LIGHT_GREY
@ -679,15 +709,21 @@ Promoting word/dword/signed dword to byte* in VIC_CONTROL2 ← ((byte*)) 53270
Promoting word/dword/signed dword to byte* in D016 ← ((byte*)) 53270
Promoting word/dword/signed dword to byte* in D018 ← ((byte*)) 53272
Promoting word/dword/signed dword to byte* in VIC_MEMORY ← ((byte*)) 53272
Promoting word/dword/signed dword to byte* in IRQ_STATUS ← ((byte*)) 53273
Promoting word/dword/signed dword to byte* in IRQ_ENABLE ← ((byte*)) 53274
Promoting word/dword/signed dword to byte* in COLS ← ((byte*)) 55296
Promoting word/dword/signed dword to byte* in CIA1_PORT_A ← ((byte*)) 56320
Promoting word/dword/signed dword to byte* in CIA1_PORT_B ← ((byte*)) 56321
Promoting word/dword/signed dword to byte* in CIA1_PORT_A_DDR ← ((byte*)) 56322
Promoting word/dword/signed dword to byte* in CIA1_PORT_B_DDR ← ((byte*)) 56323
Promoting word/dword/signed dword to byte* in CIA1_INTERRUPT ← ((byte*)) 56333
Promoting word/dword/signed dword to byte* in CIA2_PORT_A ← ((byte*)) 56576
Promoting word/dword/signed dword to byte* in CIA2_PORT_B ← ((byte*)) 56577
Promoting word/dword/signed dword to byte* in CIA2_PORT_A_DDR ← ((byte*)) 56578
Promoting word/dword/signed dword to byte* in CIA2_PORT_B_DDR ← ((byte*)) 56579
Promoting word/dword/signed dword to byte* in CIA2_INTERRUPT ← ((byte*)) 56589
Promoting word/signed word/dword/signed dword to void()** in KERNEL_IRQ ← ((void()**)) 788
Promoting word/dword/signed dword to void()** in HARDWARE_IRQ ← ((void()**)) 65534
Promoting byte/signed byte/word/signed word/dword/signed dword to byte* in bitmap_init::yoffs ← ((byte*)) 0
Promoting word to byte* in bitmap_plot::plotter ← ((byte*)) bitmap_plot::$0
Promoting word/signed word/dword/signed dword to byte* in SCREEN ← ((byte*)) 1024
@ -734,15 +770,26 @@ INITIAL CONTROL FLOW GRAPH
(byte) VIC_CSEL ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte*) D018 ← ((byte*)) (word/dword/signed dword) 53272
(byte*) VIC_MEMORY ← ((byte*)) (word/dword/signed dword) 53272
(byte*) IRQ_STATUS ← ((byte*)) (word/dword/signed dword) 53273
(byte*) IRQ_ENABLE ← ((byte*)) (word/dword/signed dword) 53274
(byte) IRQ_RASTER ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) IRQ_COLLISION_BG ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) IRQ_COLLISION_SPRITE ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) IRQ_LIGHTPEN ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
(byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
(byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
(byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
(byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
(byte*) CIA1_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56333
(byte) CIA_INTERRUPT_CLEAR ← (byte/signed byte/word/signed word/dword/signed dword) 127
(byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
(byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
(byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
(byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
(byte*) CIA2_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56589
(void()**) KERNEL_IRQ ← ((void()**)) (word/signed word/dword/signed dword) 788
(void()**) HARDWARE_IRQ ← ((void()**)) (word/dword/signed dword) 65534
(byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
@ -1236,31 +1283,42 @@ Eliminating unused variable (byte*) D016 and assignment [35] (byte*) D016 ← ((
Eliminating unused variable (byte) VIC_MCM and assignment [36] (byte) VIC_MCM ← (byte/signed byte/word/signed word/dword/signed dword) 16
Eliminating unused variable (byte) VIC_CSEL and assignment [37] (byte) VIC_CSEL ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte*) D018 and assignment [38] (byte*) D018 ← ((byte*)) (word/dword/signed dword) 53272
Eliminating unused variable (byte*) COLS and assignment [40] (byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
Eliminating unused variable (byte*) CIA1_PORT_A and assignment [41] (byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
Eliminating unused variable (byte*) CIA1_PORT_B and assignment [42] (byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
Eliminating unused variable (byte*) CIA1_PORT_A_DDR and assignment [43] (byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
Eliminating unused variable (byte*) CIA1_PORT_B_DDR and assignment [44] (byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
Eliminating unused variable (byte*) CIA2_PORT_A and assignment [45] (byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
Eliminating unused variable (byte*) CIA2_PORT_B and assignment [46] (byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
Eliminating unused variable (byte*) CIA2_PORT_A_DDR and assignment [47] (byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
Eliminating unused variable (byte*) CIA2_PORT_B_DDR and assignment [48] (byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
Eliminating unused variable (byte) BLACK and assignment [49] (byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) WHITE and assignment [50] (byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) RED and assignment [51] (byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) CYAN and assignment [52] (byte) CYAN ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) PURPLE and assignment [53] (byte) PURPLE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) GREEN and assignment [54] (byte) GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) BLUE and assignment [55] (byte) BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) YELLOW and assignment [56] (byte) YELLOW ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) ORANGE and assignment [57] (byte) ORANGE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) BROWN and assignment [58] (byte) BROWN ← (byte/signed byte/word/signed word/dword/signed dword) 9
Eliminating unused variable (byte) PINK and assignment [59] (byte) PINK ← (byte/signed byte/word/signed word/dword/signed dword) 10
Eliminating unused variable (byte) DARK_GREY and assignment [60] (byte) DARK_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 11
Eliminating unused variable (byte) GREY and assignment [61] (byte) GREY ← (byte/signed byte/word/signed word/dword/signed dword) 12
Eliminating unused variable (byte) LIGHT_GREEN and assignment [62] (byte) LIGHT_GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 13
Eliminating unused variable (byte) LIGHT_BLUE and assignment [63] (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 14
Eliminating unused variable (byte) LIGHT_GREY and assignment [64] (byte) LIGHT_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable (byte*) IRQ_STATUS and assignment [40] (byte*) IRQ_STATUS ← ((byte*)) (word/dword/signed dword) 53273
Eliminating unused variable (byte*) IRQ_ENABLE and assignment [41] (byte*) IRQ_ENABLE ← ((byte*)) (word/dword/signed dword) 53274
Eliminating unused variable (byte) IRQ_RASTER and assignment [42] (byte) IRQ_RASTER ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) IRQ_COLLISION_BG and assignment [43] (byte) IRQ_COLLISION_BG ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) IRQ_COLLISION_SPRITE and assignment [44] (byte) IRQ_COLLISION_SPRITE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) IRQ_LIGHTPEN and assignment [45] (byte) IRQ_LIGHTPEN ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte*) COLS and assignment [46] (byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
Eliminating unused variable (byte*) CIA1_PORT_A and assignment [47] (byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
Eliminating unused variable (byte*) CIA1_PORT_B and assignment [48] (byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
Eliminating unused variable (byte*) CIA1_PORT_A_DDR and assignment [49] (byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
Eliminating unused variable (byte*) CIA1_PORT_B_DDR and assignment [50] (byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
Eliminating unused variable (byte*) CIA1_INTERRUPT and assignment [51] (byte*) CIA1_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56333
Eliminating unused variable (byte) CIA_INTERRUPT_CLEAR and assignment [52] (byte) CIA_INTERRUPT_CLEAR ← (byte/signed byte/word/signed word/dword/signed dword) 127
Eliminating unused variable (byte*) CIA2_PORT_A and assignment [53] (byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
Eliminating unused variable (byte*) CIA2_PORT_B and assignment [54] (byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
Eliminating unused variable (byte*) CIA2_PORT_A_DDR and assignment [55] (byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
Eliminating unused variable (byte*) CIA2_PORT_B_DDR and assignment [56] (byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
Eliminating unused variable (byte*) CIA2_INTERRUPT and assignment [57] (byte*) CIA2_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56589
Eliminating unused variable (void()**) KERNEL_IRQ and assignment [58] (void()**) KERNEL_IRQ ← ((void()**)) (word/signed word/dword/signed dword) 788
Eliminating unused variable (void()**) HARDWARE_IRQ and assignment [59] (void()**) HARDWARE_IRQ ← ((void()**)) (word/dword/signed dword) 65534
Eliminating unused variable (byte) BLACK and assignment [60] (byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) WHITE and assignment [61] (byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) RED and assignment [62] (byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) CYAN and assignment [63] (byte) CYAN ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) PURPLE and assignment [64] (byte) PURPLE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) GREEN and assignment [65] (byte) GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) BLUE and assignment [66] (byte) BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) YELLOW and assignment [67] (byte) YELLOW ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) ORANGE and assignment [68] (byte) ORANGE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) BROWN and assignment [69] (byte) BROWN ← (byte/signed byte/word/signed word/dword/signed dword) 9
Eliminating unused variable (byte) PINK and assignment [70] (byte) PINK ← (byte/signed byte/word/signed word/dword/signed dword) 10
Eliminating unused variable (byte) DARK_GREY and assignment [71] (byte) DARK_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 11
Eliminating unused variable (byte) GREY and assignment [72] (byte) GREY ← (byte/signed byte/word/signed word/dword/signed dword) 12
Eliminating unused variable (byte) LIGHT_GREEN and assignment [73] (byte) LIGHT_GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 13
Eliminating unused variable (byte) LIGHT_BLUE and assignment [74] (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 14
Eliminating unused variable (byte) LIGHT_GREY and assignment [75] (byte) LIGHT_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable - keeping the call (void~) bitmap_line::$6
Eliminating unused variable - keeping the call (void~) bitmap_line::$5
Eliminating unused variable - keeping the call (void~) bitmap_line::$10

View File

@ -365,6 +365,13 @@ const byte VIC_CSEL = %00001000;
const byte* D018 = $d018;
const byte* VIC_MEMORY = $d018;
const byte* IRQ_STATUS = $d019;
const byte* IRQ_ENABLE = $d01a;
const byte IRQ_RASTER = %00000001;
const byte IRQ_COLLISION_BG = %00000010;
const byte IRQ_COLLISION_SPRITE = %00000100;
const byte IRQ_LIGHTPEN = %00001000;
const byte* COLS = $d800;
// CIA#1 Port A: keyboard matrix columns and joystick #2
@ -375,6 +382,10 @@ const byte* CIA1_PORT_B = $dc01;
const byte* CIA1_PORT_A_DDR = $dc02;
// CIA #1 Port B data direction register.
const byte* CIA1_PORT_B_DDR = $dc03;
// CIA#1 Interrupt Status & Control Register
const byte* CIA1_INTERRUPT = $dc0d;
// Value that disables all CIA interrupts when stored to the CIA Interrupt registers
const byte CIA_INTERRUPT_CLEAR = $7f;
// CIA#2 Port A: Serial bus, RS-232, VIC memory bank
const byte* CIA2_PORT_A = $dd00;
@ -384,6 +395,14 @@ const byte* CIA2_PORT_B = $dd01;
const byte* CIA2_PORT_A_DDR = $dd02;
// CIA #2 Port B data direction register.
const byte* CIA2_PORT_B_DDR = $dd03;
// CIA#2 Interrupt Status & Control Register
const byte* CIA2_INTERRUPT = $dd0d;
// The vector used when the KERNAL serves IRQ interrupts
const void()** KERNEL_IRQ = $0314;
// The vector used when the HARDWARE serves IRQ interrupts
const void()** HARDWARE_IRQ = $fffe;
const byte BLACK = $0;
const byte WHITE = $1;
@ -447,14 +466,17 @@ SYMBOLS
(byte) BROWN
(byte*) CHARGEN
(byte*) CHARSET8
(byte*) CIA1_INTERRUPT
(byte*) CIA1_PORT_A
(byte*) CIA1_PORT_A_DDR
(byte*) CIA1_PORT_B
(byte*) CIA1_PORT_B_DDR
(byte*) CIA2_INTERRUPT
(byte*) CIA2_PORT_A
(byte*) CIA2_PORT_A_DDR
(byte*) CIA2_PORT_B
(byte*) CIA2_PORT_B_DDR
(byte) CIA_INTERRUPT_CLEAR
(byte*) COLS
(byte) CYAN
(byte*) D011
@ -558,6 +580,14 @@ SYMBOLS
(byte*) DTV_SPRITE_BANK
(byte) GREEN
(byte) GREY
(void()**) HARDWARE_IRQ
(byte) IRQ_COLLISION_BG
(byte) IRQ_COLLISION_SPRITE
(byte*) IRQ_ENABLE
(byte) IRQ_LIGHTPEN
(byte) IRQ_RASTER
(byte*) IRQ_STATUS
(void()**) KERNEL_IRQ
(byte) LIGHT_BLUE
(byte) LIGHT_GREEN
(byte) LIGHT_GREY
@ -769,15 +799,21 @@ Promoting word/dword/signed dword to byte* in VIC_CONTROL2 ← ((byte*)) 53270
Promoting word/dword/signed dword to byte* in D016 ← ((byte*)) 53270
Promoting word/dword/signed dword to byte* in D018 ← ((byte*)) 53272
Promoting word/dword/signed dword to byte* in VIC_MEMORY ← ((byte*)) 53272
Promoting word/dword/signed dword to byte* in IRQ_STATUS ← ((byte*)) 53273
Promoting word/dword/signed dword to byte* in IRQ_ENABLE ← ((byte*)) 53274
Promoting word/dword/signed dword to byte* in COLS ← ((byte*)) 55296
Promoting word/dword/signed dword to byte* in CIA1_PORT_A ← ((byte*)) 56320
Promoting word/dword/signed dword to byte* in CIA1_PORT_B ← ((byte*)) 56321
Promoting word/dword/signed dword to byte* in CIA1_PORT_A_DDR ← ((byte*)) 56322
Promoting word/dword/signed dword to byte* in CIA1_PORT_B_DDR ← ((byte*)) 56323
Promoting word/dword/signed dword to byte* in CIA1_INTERRUPT ← ((byte*)) 56333
Promoting word/dword/signed dword to byte* in CIA2_PORT_A ← ((byte*)) 56576
Promoting word/dword/signed dword to byte* in CIA2_PORT_B ← ((byte*)) 56577
Promoting word/dword/signed dword to byte* in CIA2_PORT_A_DDR ← ((byte*)) 56578
Promoting word/dword/signed dword to byte* in CIA2_PORT_B_DDR ← ((byte*)) 56579
Promoting word/dword/signed dword to byte* in CIA2_INTERRUPT ← ((byte*)) 56589
Promoting word/signed word/dword/signed dword to void()** in KERNEL_IRQ ← ((void()**)) 788
Promoting word/dword/signed dword to void()** in HARDWARE_IRQ ← ((void()**)) 65534
Promoting word/dword/signed dword to byte* in DTV_FEATURE ← ((byte*)) 53311
Promoting word/dword/signed dword to byte* in DTV_CONTROL ← ((byte*)) 53308
Promoting word/dword/signed dword to byte* in DTV_PALETTE ← ((byte*)) 53760
@ -874,15 +910,26 @@ INITIAL CONTROL FLOW GRAPH
(byte) VIC_CSEL ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte*) D018 ← ((byte*)) (word/dword/signed dword) 53272
(byte*) VIC_MEMORY ← ((byte*)) (word/dword/signed dword) 53272
(byte*) IRQ_STATUS ← ((byte*)) (word/dword/signed dword) 53273
(byte*) IRQ_ENABLE ← ((byte*)) (word/dword/signed dword) 53274
(byte) IRQ_RASTER ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) IRQ_COLLISION_BG ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) IRQ_COLLISION_SPRITE ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) IRQ_LIGHTPEN ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
(byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
(byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
(byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
(byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
(byte*) CIA1_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56333
(byte) CIA_INTERRUPT_CLEAR ← (byte/signed byte/word/signed word/dword/signed dword) 127
(byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
(byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
(byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
(byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
(byte*) CIA2_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56589
(void()**) KERNEL_IRQ ← ((void()**)) (word/signed word/dword/signed dword) 788
(void()**) HARDWARE_IRQ ← ((void()**)) (word/dword/signed dword) 65534
(byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
@ -1300,104 +1347,115 @@ Eliminating unused variable (byte) VIC_RST8 and assignment [29] (byte) VIC_RST8
Eliminating unused variable (byte) VIC_BMM and assignment [31] (byte) VIC_BMM ← (byte/signed byte/word/signed word/dword/signed dword) 32
Eliminating unused variable (byte*) D016 and assignment [35] (byte*) D016 ← ((byte*)) (word/dword/signed dword) 53270
Eliminating unused variable (byte*) D018 and assignment [38] (byte*) D018 ← ((byte*)) (word/dword/signed dword) 53272
Eliminating unused variable (byte*) COLS and assignment [40] (byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
Eliminating unused variable (byte*) CIA1_PORT_A and assignment [41] (byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
Eliminating unused variable (byte*) CIA1_PORT_B and assignment [42] (byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
Eliminating unused variable (byte*) CIA1_PORT_A_DDR and assignment [43] (byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
Eliminating unused variable (byte*) CIA1_PORT_B_DDR and assignment [44] (byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
Eliminating unused variable (byte*) CIA2_PORT_B and assignment [46] (byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
Eliminating unused variable (byte*) CIA2_PORT_B_DDR and assignment [48] (byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
Eliminating unused variable (byte) BLACK and assignment [49] (byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) WHITE and assignment [50] (byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) RED and assignment [51] (byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) CYAN and assignment [52] (byte) CYAN ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) PURPLE and assignment [53] (byte) PURPLE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) GREEN and assignment [54] (byte) GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) BLUE and assignment [55] (byte) BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) YELLOW and assignment [56] (byte) YELLOW ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) ORANGE and assignment [57] (byte) ORANGE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) BROWN and assignment [58] (byte) BROWN ← (byte/signed byte/word/signed word/dword/signed dword) 9
Eliminating unused variable (byte) PINK and assignment [59] (byte) PINK ← (byte/signed byte/word/signed word/dword/signed dword) 10
Eliminating unused variable (byte) DARK_GREY and assignment [60] (byte) DARK_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 11
Eliminating unused variable (byte) GREY and assignment [61] (byte) GREY ← (byte/signed byte/word/signed word/dword/signed dword) 12
Eliminating unused variable (byte) LIGHT_GREEN and assignment [62] (byte) LIGHT_GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 13
Eliminating unused variable (byte) LIGHT_BLUE and assignment [63] (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 14
Eliminating unused variable (byte) LIGHT_GREY and assignment [64] (byte) LIGHT_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable (byte) DTV_FEATURE_DISABLE_TIL_RESET and assignment [67] (byte) DTV_FEATURE_DISABLE_TIL_RESET ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BORDER_OFF and assignment [70] (byte) DTV_BORDER_OFF ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_OVERSCAN and assignment [72] (byte) DTV_OVERSCAN ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) DTV_COLORRAM_OFF and assignment [73] (byte) DTV_COLORRAM_OFF ← (byte/signed byte/word/signed word/dword/signed dword) 16
Eliminating unused variable (byte[16]) DTV_PALETTE_DEFAULT and assignment [77] (byte[16]) DTV_PALETTE_DEFAULT ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 54, (byte/word/signed word/dword/signed dword) 190, (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/word/signed word/dword/signed dword) 219, (byte/word/signed word/dword/signed dword) 134, (byte/word/signed word/dword/signed dword) 255, (byte/signed byte/word/signed word/dword/signed dword) 41, (byte/signed byte/word/signed word/dword/signed dword) 38, (byte/signed byte/word/signed word/dword/signed dword) 59, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 154, (byte/signed byte/word/signed word/dword/signed dword) 10 }
Eliminating unused variable (byte*) DTV_SPRITE_BANK and assignment [90] (byte*) DTV_SPRITE_BANK ← ((byte*)) (word/dword/signed dword) 53325
Eliminating unused variable (byte*) DTV_COLOR_BANK_LO and assignment [91] (byte*) DTV_COLOR_BANK_LO ← ((byte*)) (word/dword/signed dword) 53302
Eliminating unused variable (byte*) DTV_COLOR_BANK_HI and assignment [92] (byte*) DTV_COLOR_BANK_HI ← ((byte*)) (word/dword/signed dword) 53303
Eliminating unused variable (dword) DTV_COLOR_BANK_DEFAULT and assignment [93] (dword) DTV_COLOR_BANK_DEFAULT ← (dword/signed dword) 120832
Eliminating unused variable (byte*) DTV_GRAPHICS_VIC_BANK and assignment [94] (byte*) DTV_GRAPHICS_VIC_BANK ← ((byte*)) (word/dword/signed dword) 53309
Eliminating unused variable (byte*) DTV_GRAPHICS_HICOL_BANK and assignment [95] (byte*) DTV_GRAPHICS_HICOL_BANK ← ((byte*)) (word/dword/signed dword) 53310
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_LO and assignment [100] (byte*) DTV_BLITTER_SRCA_LO ← ((byte*)) (word/dword/signed dword) 54048
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_MI and assignment [101] (byte*) DTV_BLITTER_SRCA_MI ← ((byte*)) (word/dword/signed dword) 54049
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_HI and assignment [102] (byte*) DTV_BLITTER_SRCA_HI ← ((byte*)) (word/dword/signed dword) 54050
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_MOD_LO and assignment [103] (byte*) DTV_BLITTER_SRCA_MOD_LO ← ((byte*)) (word/dword/signed dword) 54051
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_MOD_HI and assignment [104] (byte*) DTV_BLITTER_SRCA_MOD_HI ← ((byte*)) (word/dword/signed dword) 54052
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_LIN_LO and assignment [105] (byte*) DTV_BLITTER_SRCA_LIN_LO ← ((byte*)) (word/dword/signed dword) 54053
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_LIN_HI and assignment [106] (byte*) DTV_BLITTER_SRCA_LIN_HI ← ((byte*)) (word/dword/signed dword) 54054
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_STEP and assignment [107] (byte*) DTV_BLITTER_SRCA_STEP ← ((byte*)) (word/dword/signed dword) 54055
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_LO and assignment [108] (byte*) DTV_BLITTER_SRCB_LO ← ((byte*)) (word/dword/signed dword) 54056
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_MI and assignment [109] (byte*) DTV_BLITTER_SRCB_MI ← ((byte*)) (word/dword/signed dword) 54057
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_HI and assignment [110] (byte*) DTV_BLITTER_SRCB_HI ← ((byte*)) (word/dword/signed dword) 54058
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_MOD_LO and assignment [111] (byte*) DTV_BLITTER_SRCB_MOD_LO ← ((byte*)) (word/dword/signed dword) 54059
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_MOD_HI and assignment [112] (byte*) DTV_BLITTER_SRCB_MOD_HI ← ((byte*)) (word/dword/signed dword) 54060
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_LIN_LO and assignment [113] (byte*) DTV_BLITTER_SRCB_LIN_LO ← ((byte*)) (word/dword/signed dword) 54061
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_LIN_HI and assignment [114] (byte*) DTV_BLITTER_SRCB_LIN_HI ← ((byte*)) (word/dword/signed dword) 54062
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_STEP and assignment [115] (byte*) DTV_BLITTER_SRCB_STEP ← ((byte*)) (word/dword/signed dword) 54063
Eliminating unused variable (byte*) DTV_BLITTER_DEST_LO and assignment [116] (byte*) DTV_BLITTER_DEST_LO ← ((byte*)) (word/dword/signed dword) 54064
Eliminating unused variable (byte*) DTV_BLITTER_DEST_MI and assignment [117] (byte*) DTV_BLITTER_DEST_MI ← ((byte*)) (word/dword/signed dword) 54065
Eliminating unused variable (byte*) DTV_BLITTER_DEST_HI and assignment [118] (byte*) DTV_BLITTER_DEST_HI ← ((byte*)) (word/dword/signed dword) 54066
Eliminating unused variable (byte*) DTV_BLITTER_DEST_MOD_LO and assignment [119] (byte*) DTV_BLITTER_DEST_MOD_LO ← ((byte*)) (word/dword/signed dword) 54067
Eliminating unused variable (byte*) DTV_BLITTER_DEST_MOD_HI and assignment [120] (byte*) DTV_BLITTER_DEST_MOD_HI ← ((byte*)) (word/dword/signed dword) 54068
Eliminating unused variable (byte*) DTV_BLITTER_DEST_LIN_LO and assignment [121] (byte*) DTV_BLITTER_DEST_LIN_LO ← ((byte*)) (word/dword/signed dword) 54069
Eliminating unused variable (byte*) DTV_BLITTER_DEST_LIN_HI and assignment [122] (byte*) DTV_BLITTER_DEST_LIN_HI ← ((byte*)) (word/dword/signed dword) 54070
Eliminating unused variable (byte*) DTV_BLITTER_DEST_STEP and assignment [123] (byte*) DTV_BLITTER_DEST_STEP ← ((byte*)) (word/dword/signed dword) 54071
Eliminating unused variable (byte*) DTV_BLITTER_LEN_LO and assignment [124] (byte*) DTV_BLITTER_LEN_LO ← ((byte*)) (word/dword/signed dword) 54072
Eliminating unused variable (byte*) DTV_BLITTER_LEN_HI and assignment [125] (byte*) DTV_BLITTER_LEN_HI ← ((byte*)) (word/dword/signed dword) 54073
Eliminating unused variable (byte*) DTV_BLITTER_CONTROL and assignment [126] (byte*) DTV_BLITTER_CONTROL ← ((byte*)) (word/dword/signed dword) 54074
Eliminating unused variable (byte) DTV_BLIT_FORCE_START and assignment [127] (byte) DTV_BLIT_FORCE_START ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_SRCA_FWD and assignment [128] (byte) DTV_BLIT_SRCA_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_SRCB_FWD and assignment [129] (byte) DTV_BLIT_SRCB_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_DEST_FWD and assignment [130] (byte) DTV_BLIT_DEST_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) DTV_BLIT_VIC_IRQ and assignment [131] (byte) DTV_BLIT_VIC_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 16
Eliminating unused variable (byte) DTV_BLIT_CIA_IRQ and assignment [132] (byte) DTV_BLIT_CIA_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 32
Eliminating unused variable (byte) DTV_BLIT_VBLANK and assignment [133] (byte) DTV_BLIT_VBLANK ← (byte/signed byte/word/signed word/dword/signed dword) 64
Eliminating unused variable (byte) DTV_BLIT_IRQ_EN and assignment [134] (byte) DTV_BLIT_IRQ_EN ← (byte/word/signed word/dword/signed dword) 128
Eliminating unused variable (byte*) DTV_BLITTER_TRANSPARANCY and assignment [135] (byte*) DTV_BLITTER_TRANSPARANCY ← ((byte*)) (word/dword/signed dword) 54075
Eliminating unused variable (byte) DTV_BLIT_DISABLE_B and assignment [136] (byte) DTV_BLIT_DISABLE_B ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_WRITE_TRANSPARENT and assignment [137] (byte) DTV_BLIT_WRITE_TRANSPARENT ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_WRITE_NONTRANSPARENT and assignment [138] (byte) DTV_BLIT_WRITE_NONTRANSPARENT ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_TRANSPARANCY_NONE and assignment [139] (byte) DTV_BLIT_TRANSPARANCY_NONE ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte*) DTV_BLITTER_ALU and assignment [140] (byte*) DTV_BLITTER_ALU ← ((byte*)) (word/dword/signed dword) 54078
Eliminating unused variable (byte) DTV_BLIT_SHIFT0 and assignment [141] (byte) DTV_BLIT_SHIFT0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) DTV_BLIT_SHIFT1 and assignment [142] (byte) DTV_BLIT_SHIFT1 ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_SHIFT2 and assignment [143] (byte) DTV_BLIT_SHIFT2 ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_SHIFT3 and assignment [144] (byte) DTV_BLIT_SHIFT3 ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) DTV_BLIT_SHIFT4 and assignment [145] (byte) DTV_BLIT_SHIFT4 ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_SHIFT5 and assignment [146] (byte) DTV_BLIT_SHIFT5 ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) DTV_BLIT_SHIFT6 and assignment [147] (byte) DTV_BLIT_SHIFT6 ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) DTV_BLIT_SHIFT7 and assignment [148] (byte) DTV_BLIT_SHIFT7 ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) DTV_BLIT_AND and assignment [149] (byte) DTV_BLIT_AND ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) DTV_BLIT_NAND and assignment [150] (byte) DTV_BLIT_NAND ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) DTV_BLIT_NOR and assignment [151] (byte) DTV_BLIT_NOR ← (byte/signed byte/word/signed word/dword/signed dword) 16
Eliminating unused variable (byte) DTV_BLIT_OR and assignment [152] (byte) DTV_BLIT_OR ← (byte/signed byte/word/signed word/dword/signed dword) 24
Eliminating unused variable (byte) DTV_BLIT_XOR and assignment [153] (byte) DTV_BLIT_XOR ← (byte/signed byte/word/signed word/dword/signed dword) 32
Eliminating unused variable (byte) DTV_BLIT_XNOR and assignment [154] (byte) DTV_BLIT_XNOR ← (byte/signed byte/word/signed word/dword/signed dword) 40
Eliminating unused variable (byte) DTV_BLIT_ADD and assignment [155] (byte) DTV_BLIT_ADD ← (byte/signed byte/word/signed word/dword/signed dword) 48
Eliminating unused variable (byte) DTV_BLIT_SUB and assignment [156] (byte) DTV_BLIT_SUB ← (byte/signed byte/word/signed word/dword/signed dword) 56
Eliminating unused variable (byte*) DTV_BLITTER_CONTROL2 and assignment [157] (byte*) DTV_BLITTER_CONTROL2 ← ((byte*)) (word/dword/signed dword) 54079
Eliminating unused variable (byte) DTV_BLIT_CLEAR_IRQ and assignment [158] (byte) DTV_BLIT_CLEAR_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_SRCA_CONT and assignment [159] (byte) DTV_BLIT_SRCA_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_SRCB_CONT and assignment [160] (byte) DTV_BLIT_SRCB_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_DEST_CONT and assignment [161] (byte) DTV_BLIT_DEST_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) DTV_BLIT_STATUS_BUSY and assignment [162] (byte) DTV_BLIT_STATUS_BUSY ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_STATUS_IRQ and assignment [163] (byte) DTV_BLIT_STATUS_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte*) IRQ_STATUS and assignment [40] (byte*) IRQ_STATUS ← ((byte*)) (word/dword/signed dword) 53273
Eliminating unused variable (byte*) IRQ_ENABLE and assignment [41] (byte*) IRQ_ENABLE ← ((byte*)) (word/dword/signed dword) 53274
Eliminating unused variable (byte) IRQ_RASTER and assignment [42] (byte) IRQ_RASTER ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) IRQ_COLLISION_BG and assignment [43] (byte) IRQ_COLLISION_BG ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) IRQ_COLLISION_SPRITE and assignment [44] (byte) IRQ_COLLISION_SPRITE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) IRQ_LIGHTPEN and assignment [45] (byte) IRQ_LIGHTPEN ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte*) COLS and assignment [46] (byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
Eliminating unused variable (byte*) CIA1_PORT_A and assignment [47] (byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
Eliminating unused variable (byte*) CIA1_PORT_B and assignment [48] (byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
Eliminating unused variable (byte*) CIA1_PORT_A_DDR and assignment [49] (byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
Eliminating unused variable (byte*) CIA1_PORT_B_DDR and assignment [50] (byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
Eliminating unused variable (byte*) CIA1_INTERRUPT and assignment [51] (byte*) CIA1_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56333
Eliminating unused variable (byte) CIA_INTERRUPT_CLEAR and assignment [52] (byte) CIA_INTERRUPT_CLEAR ← (byte/signed byte/word/signed word/dword/signed dword) 127
Eliminating unused variable (byte*) CIA2_PORT_B and assignment [54] (byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
Eliminating unused variable (byte*) CIA2_PORT_B_DDR and assignment [56] (byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
Eliminating unused variable (byte*) CIA2_INTERRUPT and assignment [57] (byte*) CIA2_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56589
Eliminating unused variable (void()**) KERNEL_IRQ and assignment [58] (void()**) KERNEL_IRQ ← ((void()**)) (word/signed word/dword/signed dword) 788
Eliminating unused variable (void()**) HARDWARE_IRQ and assignment [59] (void()**) HARDWARE_IRQ ← ((void()**)) (word/dword/signed dword) 65534
Eliminating unused variable (byte) BLACK and assignment [60] (byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) WHITE and assignment [61] (byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) RED and assignment [62] (byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) CYAN and assignment [63] (byte) CYAN ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) PURPLE and assignment [64] (byte) PURPLE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) GREEN and assignment [65] (byte) GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) BLUE and assignment [66] (byte) BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) YELLOW and assignment [67] (byte) YELLOW ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) ORANGE and assignment [68] (byte) ORANGE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) BROWN and assignment [69] (byte) BROWN ← (byte/signed byte/word/signed word/dword/signed dword) 9
Eliminating unused variable (byte) PINK and assignment [70] (byte) PINK ← (byte/signed byte/word/signed word/dword/signed dword) 10
Eliminating unused variable (byte) DARK_GREY and assignment [71] (byte) DARK_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 11
Eliminating unused variable (byte) GREY and assignment [72] (byte) GREY ← (byte/signed byte/word/signed word/dword/signed dword) 12
Eliminating unused variable (byte) LIGHT_GREEN and assignment [73] (byte) LIGHT_GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 13
Eliminating unused variable (byte) LIGHT_BLUE and assignment [74] (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 14
Eliminating unused variable (byte) LIGHT_GREY and assignment [75] (byte) LIGHT_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable (byte) DTV_FEATURE_DISABLE_TIL_RESET and assignment [78] (byte) DTV_FEATURE_DISABLE_TIL_RESET ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BORDER_OFF and assignment [81] (byte) DTV_BORDER_OFF ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_OVERSCAN and assignment [83] (byte) DTV_OVERSCAN ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) DTV_COLORRAM_OFF and assignment [84] (byte) DTV_COLORRAM_OFF ← (byte/signed byte/word/signed word/dword/signed dword) 16
Eliminating unused variable (byte[16]) DTV_PALETTE_DEFAULT and assignment [88] (byte[16]) DTV_PALETTE_DEFAULT ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 54, (byte/word/signed word/dword/signed dword) 190, (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/word/signed word/dword/signed dword) 219, (byte/word/signed word/dword/signed dword) 134, (byte/word/signed word/dword/signed dword) 255, (byte/signed byte/word/signed word/dword/signed dword) 41, (byte/signed byte/word/signed word/dword/signed dword) 38, (byte/signed byte/word/signed word/dword/signed dword) 59, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 154, (byte/signed byte/word/signed word/dword/signed dword) 10 }
Eliminating unused variable (byte*) DTV_SPRITE_BANK and assignment [101] (byte*) DTV_SPRITE_BANK ← ((byte*)) (word/dword/signed dword) 53325
Eliminating unused variable (byte*) DTV_COLOR_BANK_LO and assignment [102] (byte*) DTV_COLOR_BANK_LO ← ((byte*)) (word/dword/signed dword) 53302
Eliminating unused variable (byte*) DTV_COLOR_BANK_HI and assignment [103] (byte*) DTV_COLOR_BANK_HI ← ((byte*)) (word/dword/signed dword) 53303
Eliminating unused variable (dword) DTV_COLOR_BANK_DEFAULT and assignment [104] (dword) DTV_COLOR_BANK_DEFAULT ← (dword/signed dword) 120832
Eliminating unused variable (byte*) DTV_GRAPHICS_VIC_BANK and assignment [105] (byte*) DTV_GRAPHICS_VIC_BANK ← ((byte*)) (word/dword/signed dword) 53309
Eliminating unused variable (byte*) DTV_GRAPHICS_HICOL_BANK and assignment [106] (byte*) DTV_GRAPHICS_HICOL_BANK ← ((byte*)) (word/dword/signed dword) 53310
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_LO and assignment [111] (byte*) DTV_BLITTER_SRCA_LO ← ((byte*)) (word/dword/signed dword) 54048
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_MI and assignment [112] (byte*) DTV_BLITTER_SRCA_MI ← ((byte*)) (word/dword/signed dword) 54049
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_HI and assignment [113] (byte*) DTV_BLITTER_SRCA_HI ← ((byte*)) (word/dword/signed dword) 54050
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_MOD_LO and assignment [114] (byte*) DTV_BLITTER_SRCA_MOD_LO ← ((byte*)) (word/dword/signed dword) 54051
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_MOD_HI and assignment [115] (byte*) DTV_BLITTER_SRCA_MOD_HI ← ((byte*)) (word/dword/signed dword) 54052
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_LIN_LO and assignment [116] (byte*) DTV_BLITTER_SRCA_LIN_LO ← ((byte*)) (word/dword/signed dword) 54053
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_LIN_HI and assignment [117] (byte*) DTV_BLITTER_SRCA_LIN_HI ← ((byte*)) (word/dword/signed dword) 54054
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_STEP and assignment [118] (byte*) DTV_BLITTER_SRCA_STEP ← ((byte*)) (word/dword/signed dword) 54055
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_LO and assignment [119] (byte*) DTV_BLITTER_SRCB_LO ← ((byte*)) (word/dword/signed dword) 54056
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_MI and assignment [120] (byte*) DTV_BLITTER_SRCB_MI ← ((byte*)) (word/dword/signed dword) 54057
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_HI and assignment [121] (byte*) DTV_BLITTER_SRCB_HI ← ((byte*)) (word/dword/signed dword) 54058
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_MOD_LO and assignment [122] (byte*) DTV_BLITTER_SRCB_MOD_LO ← ((byte*)) (word/dword/signed dword) 54059
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_MOD_HI and assignment [123] (byte*) DTV_BLITTER_SRCB_MOD_HI ← ((byte*)) (word/dword/signed dword) 54060
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_LIN_LO and assignment [124] (byte*) DTV_BLITTER_SRCB_LIN_LO ← ((byte*)) (word/dword/signed dword) 54061
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_LIN_HI and assignment [125] (byte*) DTV_BLITTER_SRCB_LIN_HI ← ((byte*)) (word/dword/signed dword) 54062
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_STEP and assignment [126] (byte*) DTV_BLITTER_SRCB_STEP ← ((byte*)) (word/dword/signed dword) 54063
Eliminating unused variable (byte*) DTV_BLITTER_DEST_LO and assignment [127] (byte*) DTV_BLITTER_DEST_LO ← ((byte*)) (word/dword/signed dword) 54064
Eliminating unused variable (byte*) DTV_BLITTER_DEST_MI and assignment [128] (byte*) DTV_BLITTER_DEST_MI ← ((byte*)) (word/dword/signed dword) 54065
Eliminating unused variable (byte*) DTV_BLITTER_DEST_HI and assignment [129] (byte*) DTV_BLITTER_DEST_HI ← ((byte*)) (word/dword/signed dword) 54066
Eliminating unused variable (byte*) DTV_BLITTER_DEST_MOD_LO and assignment [130] (byte*) DTV_BLITTER_DEST_MOD_LO ← ((byte*)) (word/dword/signed dword) 54067
Eliminating unused variable (byte*) DTV_BLITTER_DEST_MOD_HI and assignment [131] (byte*) DTV_BLITTER_DEST_MOD_HI ← ((byte*)) (word/dword/signed dword) 54068
Eliminating unused variable (byte*) DTV_BLITTER_DEST_LIN_LO and assignment [132] (byte*) DTV_BLITTER_DEST_LIN_LO ← ((byte*)) (word/dword/signed dword) 54069
Eliminating unused variable (byte*) DTV_BLITTER_DEST_LIN_HI and assignment [133] (byte*) DTV_BLITTER_DEST_LIN_HI ← ((byte*)) (word/dword/signed dword) 54070
Eliminating unused variable (byte*) DTV_BLITTER_DEST_STEP and assignment [134] (byte*) DTV_BLITTER_DEST_STEP ← ((byte*)) (word/dword/signed dword) 54071
Eliminating unused variable (byte*) DTV_BLITTER_LEN_LO and assignment [135] (byte*) DTV_BLITTER_LEN_LO ← ((byte*)) (word/dword/signed dword) 54072
Eliminating unused variable (byte*) DTV_BLITTER_LEN_HI and assignment [136] (byte*) DTV_BLITTER_LEN_HI ← ((byte*)) (word/dword/signed dword) 54073
Eliminating unused variable (byte*) DTV_BLITTER_CONTROL and assignment [137] (byte*) DTV_BLITTER_CONTROL ← ((byte*)) (word/dword/signed dword) 54074
Eliminating unused variable (byte) DTV_BLIT_FORCE_START and assignment [138] (byte) DTV_BLIT_FORCE_START ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_SRCA_FWD and assignment [139] (byte) DTV_BLIT_SRCA_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_SRCB_FWD and assignment [140] (byte) DTV_BLIT_SRCB_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_DEST_FWD and assignment [141] (byte) DTV_BLIT_DEST_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) DTV_BLIT_VIC_IRQ and assignment [142] (byte) DTV_BLIT_VIC_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 16
Eliminating unused variable (byte) DTV_BLIT_CIA_IRQ and assignment [143] (byte) DTV_BLIT_CIA_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 32
Eliminating unused variable (byte) DTV_BLIT_VBLANK and assignment [144] (byte) DTV_BLIT_VBLANK ← (byte/signed byte/word/signed word/dword/signed dword) 64
Eliminating unused variable (byte) DTV_BLIT_IRQ_EN and assignment [145] (byte) DTV_BLIT_IRQ_EN ← (byte/word/signed word/dword/signed dword) 128
Eliminating unused variable (byte*) DTV_BLITTER_TRANSPARANCY and assignment [146] (byte*) DTV_BLITTER_TRANSPARANCY ← ((byte*)) (word/dword/signed dword) 54075
Eliminating unused variable (byte) DTV_BLIT_DISABLE_B and assignment [147] (byte) DTV_BLIT_DISABLE_B ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_WRITE_TRANSPARENT and assignment [148] (byte) DTV_BLIT_WRITE_TRANSPARENT ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_WRITE_NONTRANSPARENT and assignment [149] (byte) DTV_BLIT_WRITE_NONTRANSPARENT ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_TRANSPARANCY_NONE and assignment [150] (byte) DTV_BLIT_TRANSPARANCY_NONE ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte*) DTV_BLITTER_ALU and assignment [151] (byte*) DTV_BLITTER_ALU ← ((byte*)) (word/dword/signed dword) 54078
Eliminating unused variable (byte) DTV_BLIT_SHIFT0 and assignment [152] (byte) DTV_BLIT_SHIFT0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) DTV_BLIT_SHIFT1 and assignment [153] (byte) DTV_BLIT_SHIFT1 ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_SHIFT2 and assignment [154] (byte) DTV_BLIT_SHIFT2 ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_SHIFT3 and assignment [155] (byte) DTV_BLIT_SHIFT3 ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) DTV_BLIT_SHIFT4 and assignment [156] (byte) DTV_BLIT_SHIFT4 ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_SHIFT5 and assignment [157] (byte) DTV_BLIT_SHIFT5 ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) DTV_BLIT_SHIFT6 and assignment [158] (byte) DTV_BLIT_SHIFT6 ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) DTV_BLIT_SHIFT7 and assignment [159] (byte) DTV_BLIT_SHIFT7 ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) DTV_BLIT_AND and assignment [160] (byte) DTV_BLIT_AND ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) DTV_BLIT_NAND and assignment [161] (byte) DTV_BLIT_NAND ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) DTV_BLIT_NOR and assignment [162] (byte) DTV_BLIT_NOR ← (byte/signed byte/word/signed word/dword/signed dword) 16
Eliminating unused variable (byte) DTV_BLIT_OR and assignment [163] (byte) DTV_BLIT_OR ← (byte/signed byte/word/signed word/dword/signed dword) 24
Eliminating unused variable (byte) DTV_BLIT_XOR and assignment [164] (byte) DTV_BLIT_XOR ← (byte/signed byte/word/signed word/dword/signed dword) 32
Eliminating unused variable (byte) DTV_BLIT_XNOR and assignment [165] (byte) DTV_BLIT_XNOR ← (byte/signed byte/word/signed word/dword/signed dword) 40
Eliminating unused variable (byte) DTV_BLIT_ADD and assignment [166] (byte) DTV_BLIT_ADD ← (byte/signed byte/word/signed word/dword/signed dword) 48
Eliminating unused variable (byte) DTV_BLIT_SUB and assignment [167] (byte) DTV_BLIT_SUB ← (byte/signed byte/word/signed word/dword/signed dword) 56
Eliminating unused variable (byte*) DTV_BLITTER_CONTROL2 and assignment [168] (byte*) DTV_BLITTER_CONTROL2 ← ((byte*)) (word/dword/signed dword) 54079
Eliminating unused variable (byte) DTV_BLIT_CLEAR_IRQ and assignment [169] (byte) DTV_BLIT_CLEAR_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_SRCA_CONT and assignment [170] (byte) DTV_BLIT_SRCA_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_SRCB_CONT and assignment [171] (byte) DTV_BLIT_SRCB_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_DEST_CONT and assignment [172] (byte) DTV_BLIT_DEST_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) DTV_BLIT_STATUS_BUSY and assignment [173] (byte) DTV_BLIT_STATUS_BUSY ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_STATUS_IRQ and assignment [174] (byte) DTV_BLIT_STATUS_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable - keeping the call (void~) main::$0
Eliminating unused variable - keeping the call (void~) gfx_init::$0
Eliminating unused variable - keeping the call (void~) gfx_init::$1

View File

@ -332,6 +332,13 @@ const byte VIC_CSEL = %00001000;
const byte* D018 = $d018;
const byte* VIC_MEMORY = $d018;
const byte* IRQ_STATUS = $d019;
const byte* IRQ_ENABLE = $d01a;
const byte IRQ_RASTER = %00000001;
const byte IRQ_COLLISION_BG = %00000010;
const byte IRQ_COLLISION_SPRITE = %00000100;
const byte IRQ_LIGHTPEN = %00001000;
const byte* COLS = $d800;
// CIA#1 Port A: keyboard matrix columns and joystick #2
@ -342,6 +349,10 @@ const byte* CIA1_PORT_B = $dc01;
const byte* CIA1_PORT_A_DDR = $dc02;
// CIA #1 Port B data direction register.
const byte* CIA1_PORT_B_DDR = $dc03;
// CIA#1 Interrupt Status & Control Register
const byte* CIA1_INTERRUPT = $dc0d;
// Value that disables all CIA interrupts when stored to the CIA Interrupt registers
const byte CIA_INTERRUPT_CLEAR = $7f;
// CIA#2 Port A: Serial bus, RS-232, VIC memory bank
const byte* CIA2_PORT_A = $dd00;
@ -351,6 +362,14 @@ const byte* CIA2_PORT_B = $dd01;
const byte* CIA2_PORT_A_DDR = $dd02;
// CIA #2 Port B data direction register.
const byte* CIA2_PORT_B_DDR = $dd03;
// CIA#2 Interrupt Status & Control Register
const byte* CIA2_INTERRUPT = $dd0d;
// The vector used when the KERNAL serves IRQ interrupts
const void()** KERNEL_IRQ = $0314;
// The vector used when the HARDWARE serves IRQ interrupts
const void()** HARDWARE_IRQ = $fffe;
const byte BLACK = $0;
const byte WHITE = $1;
@ -410,14 +429,17 @@ SYMBOLS
(byte) BROWN
(byte*) CHARGEN
(byte*) CHUNKY
(byte*) CIA1_INTERRUPT
(byte*) CIA1_PORT_A
(byte*) CIA1_PORT_A_DDR
(byte*) CIA1_PORT_B
(byte*) CIA1_PORT_B_DDR
(byte*) CIA2_INTERRUPT
(byte*) CIA2_PORT_A
(byte*) CIA2_PORT_A_DDR
(byte*) CIA2_PORT_B
(byte*) CIA2_PORT_B_DDR
(byte) CIA_INTERRUPT_CLEAR
(byte*) COLS
(byte) CYAN
(byte*) D011
@ -521,6 +543,14 @@ SYMBOLS
(byte*) DTV_SPRITE_BANK
(byte) GREEN
(byte) GREY
(void()**) HARDWARE_IRQ
(byte) IRQ_COLLISION_BG
(byte) IRQ_COLLISION_SPRITE
(byte*) IRQ_ENABLE
(byte) IRQ_LIGHTPEN
(byte) IRQ_RASTER
(byte*) IRQ_STATUS
(void()**) KERNEL_IRQ
(byte) LIGHT_BLUE
(byte) LIGHT_GREEN
(byte) LIGHT_GREY
@ -701,15 +731,21 @@ Promoting word/dword/signed dword to byte* in VIC_CONTROL2 ← ((byte*)) 53270
Promoting word/dword/signed dword to byte* in D016 ← ((byte*)) 53270
Promoting word/dword/signed dword to byte* in D018 ← ((byte*)) 53272
Promoting word/dword/signed dword to byte* in VIC_MEMORY ← ((byte*)) 53272
Promoting word/dword/signed dword to byte* in IRQ_STATUS ← ((byte*)) 53273
Promoting word/dword/signed dword to byte* in IRQ_ENABLE ← ((byte*)) 53274
Promoting word/dword/signed dword to byte* in COLS ← ((byte*)) 55296
Promoting word/dword/signed dword to byte* in CIA1_PORT_A ← ((byte*)) 56320
Promoting word/dword/signed dword to byte* in CIA1_PORT_B ← ((byte*)) 56321
Promoting word/dword/signed dword to byte* in CIA1_PORT_A_DDR ← ((byte*)) 56322
Promoting word/dword/signed dword to byte* in CIA1_PORT_B_DDR ← ((byte*)) 56323
Promoting word/dword/signed dword to byte* in CIA1_INTERRUPT ← ((byte*)) 56333
Promoting word/dword/signed dword to byte* in CIA2_PORT_A ← ((byte*)) 56576
Promoting word/dword/signed dword to byte* in CIA2_PORT_B ← ((byte*)) 56577
Promoting word/dword/signed dword to byte* in CIA2_PORT_A_DDR ← ((byte*)) 56578
Promoting word/dword/signed dword to byte* in CIA2_PORT_B_DDR ← ((byte*)) 56579
Promoting word/dword/signed dword to byte* in CIA2_INTERRUPT ← ((byte*)) 56589
Promoting word/signed word/dword/signed dword to void()** in KERNEL_IRQ ← ((void()**)) 788
Promoting word/dword/signed dword to void()** in HARDWARE_IRQ ← ((void()**)) 65534
Promoting word/dword/signed dword to byte* in DTV_FEATURE ← ((byte*)) 53311
Promoting word/dword/signed dword to byte* in DTV_CONTROL ← ((byte*)) 53308
Promoting word/dword/signed dword to byte* in DTV_PALETTE ← ((byte*)) 53760
@ -806,15 +842,26 @@ INITIAL CONTROL FLOW GRAPH
(byte) VIC_CSEL ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte*) D018 ← ((byte*)) (word/dword/signed dword) 53272
(byte*) VIC_MEMORY ← ((byte*)) (word/dword/signed dword) 53272
(byte*) IRQ_STATUS ← ((byte*)) (word/dword/signed dword) 53273
(byte*) IRQ_ENABLE ← ((byte*)) (word/dword/signed dword) 53274
(byte) IRQ_RASTER ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) IRQ_COLLISION_BG ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) IRQ_COLLISION_SPRITE ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) IRQ_LIGHTPEN ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
(byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
(byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
(byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
(byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
(byte*) CIA1_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56333
(byte) CIA_INTERRUPT_CLEAR ← (byte/signed byte/word/signed word/dword/signed dword) 127
(byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
(byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
(byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
(byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
(byte*) CIA2_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56589
(void()**) KERNEL_IRQ ← ((void()**)) (word/signed word/dword/signed dword) 788
(void()**) HARDWARE_IRQ ← ((void()**)) (word/dword/signed dword) 65534
(byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
@ -1169,109 +1216,120 @@ Eliminating unused variable (byte) VIC_RST8 and assignment [29] (byte) VIC_RST8
Eliminating unused variable (byte) VIC_BMM and assignment [31] (byte) VIC_BMM ← (byte/signed byte/word/signed word/dword/signed dword) 32
Eliminating unused variable (byte*) D016 and assignment [35] (byte*) D016 ← ((byte*)) (word/dword/signed dword) 53270
Eliminating unused variable (byte*) D018 and assignment [38] (byte*) D018 ← ((byte*)) (word/dword/signed dword) 53272
Eliminating unused variable (byte*) COLS and assignment [40] (byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
Eliminating unused variable (byte*) CIA1_PORT_A and assignment [41] (byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
Eliminating unused variable (byte*) CIA1_PORT_B and assignment [42] (byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
Eliminating unused variable (byte*) CIA1_PORT_A_DDR and assignment [43] (byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
Eliminating unused variable (byte*) CIA1_PORT_B_DDR and assignment [44] (byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
Eliminating unused variable (byte*) CIA2_PORT_B and assignment [46] (byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
Eliminating unused variable (byte*) CIA2_PORT_B_DDR and assignment [48] (byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
Eliminating unused variable (byte) BLACK and assignment [49] (byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) WHITE and assignment [50] (byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) RED and assignment [51] (byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) CYAN and assignment [52] (byte) CYAN ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) PURPLE and assignment [53] (byte) PURPLE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) GREEN and assignment [54] (byte) GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) BLUE and assignment [55] (byte) BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) YELLOW and assignment [56] (byte) YELLOW ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) ORANGE and assignment [57] (byte) ORANGE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) BROWN and assignment [58] (byte) BROWN ← (byte/signed byte/word/signed word/dword/signed dword) 9
Eliminating unused variable (byte) PINK and assignment [59] (byte) PINK ← (byte/signed byte/word/signed word/dword/signed dword) 10
Eliminating unused variable (byte) DARK_GREY and assignment [60] (byte) DARK_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 11
Eliminating unused variable (byte) GREY and assignment [61] (byte) GREY ← (byte/signed byte/word/signed word/dword/signed dword) 12
Eliminating unused variable (byte) LIGHT_GREEN and assignment [62] (byte) LIGHT_GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 13
Eliminating unused variable (byte) LIGHT_BLUE and assignment [63] (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 14
Eliminating unused variable (byte) LIGHT_GREY and assignment [64] (byte) LIGHT_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable (byte) DTV_FEATURE_DISABLE_TIL_RESET and assignment [67] (byte) DTV_FEATURE_DISABLE_TIL_RESET ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BORDER_OFF and assignment [70] (byte) DTV_BORDER_OFF ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_OVERSCAN and assignment [72] (byte) DTV_OVERSCAN ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte[16]) DTV_PALETTE_DEFAULT and assignment [77] (byte[16]) DTV_PALETTE_DEFAULT ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 54, (byte/word/signed word/dword/signed dword) 190, (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/word/signed word/dword/signed dword) 219, (byte/word/signed word/dword/signed dword) 134, (byte/word/signed word/dword/signed dword) 255, (byte/signed byte/word/signed word/dword/signed dword) 41, (byte/signed byte/word/signed word/dword/signed dword) 38, (byte/signed byte/word/signed word/dword/signed dword) 59, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 154, (byte/signed byte/word/signed word/dword/signed dword) 10 }
Eliminating unused variable (byte*) DTV_PLANEA_START_LO and assignment [78] (byte*) DTV_PLANEA_START_LO ← ((byte*)) (word/dword/signed dword) 53306
Eliminating unused variable (byte*) DTV_PLANEA_START_MI and assignment [79] (byte*) DTV_PLANEA_START_MI ← ((byte*)) (word/dword/signed dword) 53307
Eliminating unused variable (byte*) DTV_PLANEA_START_HI and assignment [80] (byte*) DTV_PLANEA_START_HI ← ((byte*)) (word/dword/signed dword) 53317
Eliminating unused variable (byte*) DTV_PLANEA_STEP and assignment [81] (byte*) DTV_PLANEA_STEP ← ((byte*)) (word/dword/signed dword) 53318
Eliminating unused variable (byte*) DTV_PLANEA_MODULO_LO and assignment [82] (byte*) DTV_PLANEA_MODULO_LO ← ((byte*)) (word/dword/signed dword) 53304
Eliminating unused variable (byte*) DTV_PLANEA_MODULO_HI and assignment [83] (byte*) DTV_PLANEA_MODULO_HI ← ((byte*)) (word/dword/signed dword) 53305
Eliminating unused variable (byte*) DTV_SPRITE_BANK and assignment [90] (byte*) DTV_SPRITE_BANK ← ((byte*)) (word/dword/signed dword) 53325
Eliminating unused variable (byte*) DTV_COLOR_BANK_LO and assignment [91] (byte*) DTV_COLOR_BANK_LO ← ((byte*)) (word/dword/signed dword) 53302
Eliminating unused variable (byte*) DTV_COLOR_BANK_HI and assignment [92] (byte*) DTV_COLOR_BANK_HI ← ((byte*)) (word/dword/signed dword) 53303
Eliminating unused variable (dword) DTV_COLOR_BANK_DEFAULT and assignment [93] (dword) DTV_COLOR_BANK_DEFAULT ← (dword/signed dword) 120832
Eliminating unused variable (byte*) DTV_GRAPHICS_VIC_BANK and assignment [94] (byte*) DTV_GRAPHICS_VIC_BANK ← ((byte*)) (word/dword/signed dword) 53309
Eliminating unused variable (byte*) DTV_GRAPHICS_HICOL_BANK and assignment [95] (byte*) DTV_GRAPHICS_HICOL_BANK ← ((byte*)) (word/dword/signed dword) 53310
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_LO and assignment [100] (byte*) DTV_BLITTER_SRCA_LO ← ((byte*)) (word/dword/signed dword) 54048
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_MI and assignment [101] (byte*) DTV_BLITTER_SRCA_MI ← ((byte*)) (word/dword/signed dword) 54049
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_HI and assignment [102] (byte*) DTV_BLITTER_SRCA_HI ← ((byte*)) (word/dword/signed dword) 54050
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_MOD_LO and assignment [103] (byte*) DTV_BLITTER_SRCA_MOD_LO ← ((byte*)) (word/dword/signed dword) 54051
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_MOD_HI and assignment [104] (byte*) DTV_BLITTER_SRCA_MOD_HI ← ((byte*)) (word/dword/signed dword) 54052
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_LIN_LO and assignment [105] (byte*) DTV_BLITTER_SRCA_LIN_LO ← ((byte*)) (word/dword/signed dword) 54053
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_LIN_HI and assignment [106] (byte*) DTV_BLITTER_SRCA_LIN_HI ← ((byte*)) (word/dword/signed dword) 54054
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_STEP and assignment [107] (byte*) DTV_BLITTER_SRCA_STEP ← ((byte*)) (word/dword/signed dword) 54055
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_LO and assignment [108] (byte*) DTV_BLITTER_SRCB_LO ← ((byte*)) (word/dword/signed dword) 54056
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_MI and assignment [109] (byte*) DTV_BLITTER_SRCB_MI ← ((byte*)) (word/dword/signed dword) 54057
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_HI and assignment [110] (byte*) DTV_BLITTER_SRCB_HI ← ((byte*)) (word/dword/signed dword) 54058
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_MOD_LO and assignment [111] (byte*) DTV_BLITTER_SRCB_MOD_LO ← ((byte*)) (word/dword/signed dword) 54059
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_MOD_HI and assignment [112] (byte*) DTV_BLITTER_SRCB_MOD_HI ← ((byte*)) (word/dword/signed dword) 54060
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_LIN_LO and assignment [113] (byte*) DTV_BLITTER_SRCB_LIN_LO ← ((byte*)) (word/dword/signed dword) 54061
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_LIN_HI and assignment [114] (byte*) DTV_BLITTER_SRCB_LIN_HI ← ((byte*)) (word/dword/signed dword) 54062
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_STEP and assignment [115] (byte*) DTV_BLITTER_SRCB_STEP ← ((byte*)) (word/dword/signed dword) 54063
Eliminating unused variable (byte*) DTV_BLITTER_DEST_LO and assignment [116] (byte*) DTV_BLITTER_DEST_LO ← ((byte*)) (word/dword/signed dword) 54064
Eliminating unused variable (byte*) DTV_BLITTER_DEST_MI and assignment [117] (byte*) DTV_BLITTER_DEST_MI ← ((byte*)) (word/dword/signed dword) 54065
Eliminating unused variable (byte*) DTV_BLITTER_DEST_HI and assignment [118] (byte*) DTV_BLITTER_DEST_HI ← ((byte*)) (word/dword/signed dword) 54066
Eliminating unused variable (byte*) DTV_BLITTER_DEST_MOD_LO and assignment [119] (byte*) DTV_BLITTER_DEST_MOD_LO ← ((byte*)) (word/dword/signed dword) 54067
Eliminating unused variable (byte*) DTV_BLITTER_DEST_MOD_HI and assignment [120] (byte*) DTV_BLITTER_DEST_MOD_HI ← ((byte*)) (word/dword/signed dword) 54068
Eliminating unused variable (byte*) DTV_BLITTER_DEST_LIN_LO and assignment [121] (byte*) DTV_BLITTER_DEST_LIN_LO ← ((byte*)) (word/dword/signed dword) 54069
Eliminating unused variable (byte*) DTV_BLITTER_DEST_LIN_HI and assignment [122] (byte*) DTV_BLITTER_DEST_LIN_HI ← ((byte*)) (word/dword/signed dword) 54070
Eliminating unused variable (byte*) DTV_BLITTER_DEST_STEP and assignment [123] (byte*) DTV_BLITTER_DEST_STEP ← ((byte*)) (word/dword/signed dword) 54071
Eliminating unused variable (byte*) DTV_BLITTER_LEN_LO and assignment [124] (byte*) DTV_BLITTER_LEN_LO ← ((byte*)) (word/dword/signed dword) 54072
Eliminating unused variable (byte*) DTV_BLITTER_LEN_HI and assignment [125] (byte*) DTV_BLITTER_LEN_HI ← ((byte*)) (word/dword/signed dword) 54073
Eliminating unused variable (byte*) DTV_BLITTER_CONTROL and assignment [126] (byte*) DTV_BLITTER_CONTROL ← ((byte*)) (word/dword/signed dword) 54074
Eliminating unused variable (byte) DTV_BLIT_FORCE_START and assignment [127] (byte) DTV_BLIT_FORCE_START ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_SRCA_FWD and assignment [128] (byte) DTV_BLIT_SRCA_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_SRCB_FWD and assignment [129] (byte) DTV_BLIT_SRCB_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_DEST_FWD and assignment [130] (byte) DTV_BLIT_DEST_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) DTV_BLIT_VIC_IRQ and assignment [131] (byte) DTV_BLIT_VIC_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 16
Eliminating unused variable (byte) DTV_BLIT_CIA_IRQ and assignment [132] (byte) DTV_BLIT_CIA_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 32
Eliminating unused variable (byte) DTV_BLIT_VBLANK and assignment [133] (byte) DTV_BLIT_VBLANK ← (byte/signed byte/word/signed word/dword/signed dword) 64
Eliminating unused variable (byte) DTV_BLIT_IRQ_EN and assignment [134] (byte) DTV_BLIT_IRQ_EN ← (byte/word/signed word/dword/signed dword) 128
Eliminating unused variable (byte*) DTV_BLITTER_TRANSPARANCY and assignment [135] (byte*) DTV_BLITTER_TRANSPARANCY ← ((byte*)) (word/dword/signed dword) 54075
Eliminating unused variable (byte) DTV_BLIT_DISABLE_B and assignment [136] (byte) DTV_BLIT_DISABLE_B ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_WRITE_TRANSPARENT and assignment [137] (byte) DTV_BLIT_WRITE_TRANSPARENT ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_WRITE_NONTRANSPARENT and assignment [138] (byte) DTV_BLIT_WRITE_NONTRANSPARENT ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_TRANSPARANCY_NONE and assignment [139] (byte) DTV_BLIT_TRANSPARANCY_NONE ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte*) DTV_BLITTER_ALU and assignment [140] (byte*) DTV_BLITTER_ALU ← ((byte*)) (word/dword/signed dword) 54078
Eliminating unused variable (byte) DTV_BLIT_SHIFT0 and assignment [141] (byte) DTV_BLIT_SHIFT0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) DTV_BLIT_SHIFT1 and assignment [142] (byte) DTV_BLIT_SHIFT1 ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_SHIFT2 and assignment [143] (byte) DTV_BLIT_SHIFT2 ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_SHIFT3 and assignment [144] (byte) DTV_BLIT_SHIFT3 ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) DTV_BLIT_SHIFT4 and assignment [145] (byte) DTV_BLIT_SHIFT4 ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_SHIFT5 and assignment [146] (byte) DTV_BLIT_SHIFT5 ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) DTV_BLIT_SHIFT6 and assignment [147] (byte) DTV_BLIT_SHIFT6 ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) DTV_BLIT_SHIFT7 and assignment [148] (byte) DTV_BLIT_SHIFT7 ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) DTV_BLIT_AND and assignment [149] (byte) DTV_BLIT_AND ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) DTV_BLIT_NAND and assignment [150] (byte) DTV_BLIT_NAND ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) DTV_BLIT_NOR and assignment [151] (byte) DTV_BLIT_NOR ← (byte/signed byte/word/signed word/dword/signed dword) 16
Eliminating unused variable (byte) DTV_BLIT_OR and assignment [152] (byte) DTV_BLIT_OR ← (byte/signed byte/word/signed word/dword/signed dword) 24
Eliminating unused variable (byte) DTV_BLIT_XOR and assignment [153] (byte) DTV_BLIT_XOR ← (byte/signed byte/word/signed word/dword/signed dword) 32
Eliminating unused variable (byte) DTV_BLIT_XNOR and assignment [154] (byte) DTV_BLIT_XNOR ← (byte/signed byte/word/signed word/dword/signed dword) 40
Eliminating unused variable (byte) DTV_BLIT_ADD and assignment [155] (byte) DTV_BLIT_ADD ← (byte/signed byte/word/signed word/dword/signed dword) 48
Eliminating unused variable (byte) DTV_BLIT_SUB and assignment [156] (byte) DTV_BLIT_SUB ← (byte/signed byte/word/signed word/dword/signed dword) 56
Eliminating unused variable (byte*) DTV_BLITTER_CONTROL2 and assignment [157] (byte*) DTV_BLITTER_CONTROL2 ← ((byte*)) (word/dword/signed dword) 54079
Eliminating unused variable (byte) DTV_BLIT_CLEAR_IRQ and assignment [158] (byte) DTV_BLIT_CLEAR_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_SRCA_CONT and assignment [159] (byte) DTV_BLIT_SRCA_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_SRCB_CONT and assignment [160] (byte) DTV_BLIT_SRCB_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_DEST_CONT and assignment [161] (byte) DTV_BLIT_DEST_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) DTV_BLIT_STATUS_BUSY and assignment [162] (byte) DTV_BLIT_STATUS_BUSY ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_STATUS_IRQ and assignment [163] (byte) DTV_BLIT_STATUS_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte*) IRQ_STATUS and assignment [40] (byte*) IRQ_STATUS ← ((byte*)) (word/dword/signed dword) 53273
Eliminating unused variable (byte*) IRQ_ENABLE and assignment [41] (byte*) IRQ_ENABLE ← ((byte*)) (word/dword/signed dword) 53274
Eliminating unused variable (byte) IRQ_RASTER and assignment [42] (byte) IRQ_RASTER ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) IRQ_COLLISION_BG and assignment [43] (byte) IRQ_COLLISION_BG ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) IRQ_COLLISION_SPRITE and assignment [44] (byte) IRQ_COLLISION_SPRITE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) IRQ_LIGHTPEN and assignment [45] (byte) IRQ_LIGHTPEN ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte*) COLS and assignment [46] (byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
Eliminating unused variable (byte*) CIA1_PORT_A and assignment [47] (byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
Eliminating unused variable (byte*) CIA1_PORT_B and assignment [48] (byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
Eliminating unused variable (byte*) CIA1_PORT_A_DDR and assignment [49] (byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
Eliminating unused variable (byte*) CIA1_PORT_B_DDR and assignment [50] (byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
Eliminating unused variable (byte*) CIA1_INTERRUPT and assignment [51] (byte*) CIA1_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56333
Eliminating unused variable (byte) CIA_INTERRUPT_CLEAR and assignment [52] (byte) CIA_INTERRUPT_CLEAR ← (byte/signed byte/word/signed word/dword/signed dword) 127
Eliminating unused variable (byte*) CIA2_PORT_B and assignment [54] (byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
Eliminating unused variable (byte*) CIA2_PORT_B_DDR and assignment [56] (byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
Eliminating unused variable (byte*) CIA2_INTERRUPT and assignment [57] (byte*) CIA2_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56589
Eliminating unused variable (void()**) KERNEL_IRQ and assignment [58] (void()**) KERNEL_IRQ ← ((void()**)) (word/signed word/dword/signed dword) 788
Eliminating unused variable (void()**) HARDWARE_IRQ and assignment [59] (void()**) HARDWARE_IRQ ← ((void()**)) (word/dword/signed dword) 65534
Eliminating unused variable (byte) BLACK and assignment [60] (byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) WHITE and assignment [61] (byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) RED and assignment [62] (byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) CYAN and assignment [63] (byte) CYAN ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) PURPLE and assignment [64] (byte) PURPLE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) GREEN and assignment [65] (byte) GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) BLUE and assignment [66] (byte) BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) YELLOW and assignment [67] (byte) YELLOW ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) ORANGE and assignment [68] (byte) ORANGE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) BROWN and assignment [69] (byte) BROWN ← (byte/signed byte/word/signed word/dword/signed dword) 9
Eliminating unused variable (byte) PINK and assignment [70] (byte) PINK ← (byte/signed byte/word/signed word/dword/signed dword) 10
Eliminating unused variable (byte) DARK_GREY and assignment [71] (byte) DARK_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 11
Eliminating unused variable (byte) GREY and assignment [72] (byte) GREY ← (byte/signed byte/word/signed word/dword/signed dword) 12
Eliminating unused variable (byte) LIGHT_GREEN and assignment [73] (byte) LIGHT_GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 13
Eliminating unused variable (byte) LIGHT_BLUE and assignment [74] (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 14
Eliminating unused variable (byte) LIGHT_GREY and assignment [75] (byte) LIGHT_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable (byte) DTV_FEATURE_DISABLE_TIL_RESET and assignment [78] (byte) DTV_FEATURE_DISABLE_TIL_RESET ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BORDER_OFF and assignment [81] (byte) DTV_BORDER_OFF ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_OVERSCAN and assignment [83] (byte) DTV_OVERSCAN ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte[16]) DTV_PALETTE_DEFAULT and assignment [88] (byte[16]) DTV_PALETTE_DEFAULT ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 54, (byte/word/signed word/dword/signed dword) 190, (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/word/signed word/dword/signed dword) 219, (byte/word/signed word/dword/signed dword) 134, (byte/word/signed word/dword/signed dword) 255, (byte/signed byte/word/signed word/dword/signed dword) 41, (byte/signed byte/word/signed word/dword/signed dword) 38, (byte/signed byte/word/signed word/dword/signed dword) 59, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 154, (byte/signed byte/word/signed word/dword/signed dword) 10 }
Eliminating unused variable (byte*) DTV_PLANEA_START_LO and assignment [89] (byte*) DTV_PLANEA_START_LO ← ((byte*)) (word/dword/signed dword) 53306
Eliminating unused variable (byte*) DTV_PLANEA_START_MI and assignment [90] (byte*) DTV_PLANEA_START_MI ← ((byte*)) (word/dword/signed dword) 53307
Eliminating unused variable (byte*) DTV_PLANEA_START_HI and assignment [91] (byte*) DTV_PLANEA_START_HI ← ((byte*)) (word/dword/signed dword) 53317
Eliminating unused variable (byte*) DTV_PLANEA_STEP and assignment [92] (byte*) DTV_PLANEA_STEP ← ((byte*)) (word/dword/signed dword) 53318
Eliminating unused variable (byte*) DTV_PLANEA_MODULO_LO and assignment [93] (byte*) DTV_PLANEA_MODULO_LO ← ((byte*)) (word/dword/signed dword) 53304
Eliminating unused variable (byte*) DTV_PLANEA_MODULO_HI and assignment [94] (byte*) DTV_PLANEA_MODULO_HI ← ((byte*)) (word/dword/signed dword) 53305
Eliminating unused variable (byte*) DTV_SPRITE_BANK and assignment [101] (byte*) DTV_SPRITE_BANK ← ((byte*)) (word/dword/signed dword) 53325
Eliminating unused variable (byte*) DTV_COLOR_BANK_LO and assignment [102] (byte*) DTV_COLOR_BANK_LO ← ((byte*)) (word/dword/signed dword) 53302
Eliminating unused variable (byte*) DTV_COLOR_BANK_HI and assignment [103] (byte*) DTV_COLOR_BANK_HI ← ((byte*)) (word/dword/signed dword) 53303
Eliminating unused variable (dword) DTV_COLOR_BANK_DEFAULT and assignment [104] (dword) DTV_COLOR_BANK_DEFAULT ← (dword/signed dword) 120832
Eliminating unused variable (byte*) DTV_GRAPHICS_VIC_BANK and assignment [105] (byte*) DTV_GRAPHICS_VIC_BANK ← ((byte*)) (word/dword/signed dword) 53309
Eliminating unused variable (byte*) DTV_GRAPHICS_HICOL_BANK and assignment [106] (byte*) DTV_GRAPHICS_HICOL_BANK ← ((byte*)) (word/dword/signed dword) 53310
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_LO and assignment [111] (byte*) DTV_BLITTER_SRCA_LO ← ((byte*)) (word/dword/signed dword) 54048
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_MI and assignment [112] (byte*) DTV_BLITTER_SRCA_MI ← ((byte*)) (word/dword/signed dword) 54049
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_HI and assignment [113] (byte*) DTV_BLITTER_SRCA_HI ← ((byte*)) (word/dword/signed dword) 54050
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_MOD_LO and assignment [114] (byte*) DTV_BLITTER_SRCA_MOD_LO ← ((byte*)) (word/dword/signed dword) 54051
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_MOD_HI and assignment [115] (byte*) DTV_BLITTER_SRCA_MOD_HI ← ((byte*)) (word/dword/signed dword) 54052
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_LIN_LO and assignment [116] (byte*) DTV_BLITTER_SRCA_LIN_LO ← ((byte*)) (word/dword/signed dword) 54053
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_LIN_HI and assignment [117] (byte*) DTV_BLITTER_SRCA_LIN_HI ← ((byte*)) (word/dword/signed dword) 54054
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_STEP and assignment [118] (byte*) DTV_BLITTER_SRCA_STEP ← ((byte*)) (word/dword/signed dword) 54055
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_LO and assignment [119] (byte*) DTV_BLITTER_SRCB_LO ← ((byte*)) (word/dword/signed dword) 54056
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_MI and assignment [120] (byte*) DTV_BLITTER_SRCB_MI ← ((byte*)) (word/dword/signed dword) 54057
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_HI and assignment [121] (byte*) DTV_BLITTER_SRCB_HI ← ((byte*)) (word/dword/signed dword) 54058
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_MOD_LO and assignment [122] (byte*) DTV_BLITTER_SRCB_MOD_LO ← ((byte*)) (word/dword/signed dword) 54059
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_MOD_HI and assignment [123] (byte*) DTV_BLITTER_SRCB_MOD_HI ← ((byte*)) (word/dword/signed dword) 54060
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_LIN_LO and assignment [124] (byte*) DTV_BLITTER_SRCB_LIN_LO ← ((byte*)) (word/dword/signed dword) 54061
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_LIN_HI and assignment [125] (byte*) DTV_BLITTER_SRCB_LIN_HI ← ((byte*)) (word/dword/signed dword) 54062
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_STEP and assignment [126] (byte*) DTV_BLITTER_SRCB_STEP ← ((byte*)) (word/dword/signed dword) 54063
Eliminating unused variable (byte*) DTV_BLITTER_DEST_LO and assignment [127] (byte*) DTV_BLITTER_DEST_LO ← ((byte*)) (word/dword/signed dword) 54064
Eliminating unused variable (byte*) DTV_BLITTER_DEST_MI and assignment [128] (byte*) DTV_BLITTER_DEST_MI ← ((byte*)) (word/dword/signed dword) 54065
Eliminating unused variable (byte*) DTV_BLITTER_DEST_HI and assignment [129] (byte*) DTV_BLITTER_DEST_HI ← ((byte*)) (word/dword/signed dword) 54066
Eliminating unused variable (byte*) DTV_BLITTER_DEST_MOD_LO and assignment [130] (byte*) DTV_BLITTER_DEST_MOD_LO ← ((byte*)) (word/dword/signed dword) 54067
Eliminating unused variable (byte*) DTV_BLITTER_DEST_MOD_HI and assignment [131] (byte*) DTV_BLITTER_DEST_MOD_HI ← ((byte*)) (word/dword/signed dword) 54068
Eliminating unused variable (byte*) DTV_BLITTER_DEST_LIN_LO and assignment [132] (byte*) DTV_BLITTER_DEST_LIN_LO ← ((byte*)) (word/dword/signed dword) 54069
Eliminating unused variable (byte*) DTV_BLITTER_DEST_LIN_HI and assignment [133] (byte*) DTV_BLITTER_DEST_LIN_HI ← ((byte*)) (word/dword/signed dword) 54070
Eliminating unused variable (byte*) DTV_BLITTER_DEST_STEP and assignment [134] (byte*) DTV_BLITTER_DEST_STEP ← ((byte*)) (word/dword/signed dword) 54071
Eliminating unused variable (byte*) DTV_BLITTER_LEN_LO and assignment [135] (byte*) DTV_BLITTER_LEN_LO ← ((byte*)) (word/dword/signed dword) 54072
Eliminating unused variable (byte*) DTV_BLITTER_LEN_HI and assignment [136] (byte*) DTV_BLITTER_LEN_HI ← ((byte*)) (word/dword/signed dword) 54073
Eliminating unused variable (byte*) DTV_BLITTER_CONTROL and assignment [137] (byte*) DTV_BLITTER_CONTROL ← ((byte*)) (word/dword/signed dword) 54074
Eliminating unused variable (byte) DTV_BLIT_FORCE_START and assignment [138] (byte) DTV_BLIT_FORCE_START ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_SRCA_FWD and assignment [139] (byte) DTV_BLIT_SRCA_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_SRCB_FWD and assignment [140] (byte) DTV_BLIT_SRCB_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_DEST_FWD and assignment [141] (byte) DTV_BLIT_DEST_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) DTV_BLIT_VIC_IRQ and assignment [142] (byte) DTV_BLIT_VIC_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 16
Eliminating unused variable (byte) DTV_BLIT_CIA_IRQ and assignment [143] (byte) DTV_BLIT_CIA_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 32
Eliminating unused variable (byte) DTV_BLIT_VBLANK and assignment [144] (byte) DTV_BLIT_VBLANK ← (byte/signed byte/word/signed word/dword/signed dword) 64
Eliminating unused variable (byte) DTV_BLIT_IRQ_EN and assignment [145] (byte) DTV_BLIT_IRQ_EN ← (byte/word/signed word/dword/signed dword) 128
Eliminating unused variable (byte*) DTV_BLITTER_TRANSPARANCY and assignment [146] (byte*) DTV_BLITTER_TRANSPARANCY ← ((byte*)) (word/dword/signed dword) 54075
Eliminating unused variable (byte) DTV_BLIT_DISABLE_B and assignment [147] (byte) DTV_BLIT_DISABLE_B ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_WRITE_TRANSPARENT and assignment [148] (byte) DTV_BLIT_WRITE_TRANSPARENT ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_WRITE_NONTRANSPARENT and assignment [149] (byte) DTV_BLIT_WRITE_NONTRANSPARENT ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_TRANSPARANCY_NONE and assignment [150] (byte) DTV_BLIT_TRANSPARANCY_NONE ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte*) DTV_BLITTER_ALU and assignment [151] (byte*) DTV_BLITTER_ALU ← ((byte*)) (word/dword/signed dword) 54078
Eliminating unused variable (byte) DTV_BLIT_SHIFT0 and assignment [152] (byte) DTV_BLIT_SHIFT0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) DTV_BLIT_SHIFT1 and assignment [153] (byte) DTV_BLIT_SHIFT1 ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_SHIFT2 and assignment [154] (byte) DTV_BLIT_SHIFT2 ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_SHIFT3 and assignment [155] (byte) DTV_BLIT_SHIFT3 ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) DTV_BLIT_SHIFT4 and assignment [156] (byte) DTV_BLIT_SHIFT4 ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_SHIFT5 and assignment [157] (byte) DTV_BLIT_SHIFT5 ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) DTV_BLIT_SHIFT6 and assignment [158] (byte) DTV_BLIT_SHIFT6 ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) DTV_BLIT_SHIFT7 and assignment [159] (byte) DTV_BLIT_SHIFT7 ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) DTV_BLIT_AND and assignment [160] (byte) DTV_BLIT_AND ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) DTV_BLIT_NAND and assignment [161] (byte) DTV_BLIT_NAND ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) DTV_BLIT_NOR and assignment [162] (byte) DTV_BLIT_NOR ← (byte/signed byte/word/signed word/dword/signed dword) 16
Eliminating unused variable (byte) DTV_BLIT_OR and assignment [163] (byte) DTV_BLIT_OR ← (byte/signed byte/word/signed word/dword/signed dword) 24
Eliminating unused variable (byte) DTV_BLIT_XOR and assignment [164] (byte) DTV_BLIT_XOR ← (byte/signed byte/word/signed word/dword/signed dword) 32
Eliminating unused variable (byte) DTV_BLIT_XNOR and assignment [165] (byte) DTV_BLIT_XNOR ← (byte/signed byte/word/signed word/dword/signed dword) 40
Eliminating unused variable (byte) DTV_BLIT_ADD and assignment [166] (byte) DTV_BLIT_ADD ← (byte/signed byte/word/signed word/dword/signed dword) 48
Eliminating unused variable (byte) DTV_BLIT_SUB and assignment [167] (byte) DTV_BLIT_SUB ← (byte/signed byte/word/signed word/dword/signed dword) 56
Eliminating unused variable (byte*) DTV_BLITTER_CONTROL2 and assignment [168] (byte*) DTV_BLITTER_CONTROL2 ← ((byte*)) (word/dword/signed dword) 54079
Eliminating unused variable (byte) DTV_BLIT_CLEAR_IRQ and assignment [169] (byte) DTV_BLIT_CLEAR_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_SRCA_CONT and assignment [170] (byte) DTV_BLIT_SRCA_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_SRCB_CONT and assignment [171] (byte) DTV_BLIT_SRCB_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_DEST_CONT and assignment [172] (byte) DTV_BLIT_DEST_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) DTV_BLIT_STATUS_BUSY and assignment [173] (byte) DTV_BLIT_STATUS_BUSY ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_STATUS_IRQ and assignment [174] (byte) DTV_BLIT_STATUS_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable - keeping the call (void~) main::$0
Eliminating unused variable - keeping the call (void~) gfx_init_chunky::$2
Eliminating unused variable - keeping the call (void~) gfx_init_chunky::$5

View File

@ -307,6 +307,13 @@ const byte VIC_CSEL = %00001000;
const byte* D018 = $d018;
const byte* VIC_MEMORY = $d018;
const byte* IRQ_STATUS = $d019;
const byte* IRQ_ENABLE = $d01a;
const byte IRQ_RASTER = %00000001;
const byte IRQ_COLLISION_BG = %00000010;
const byte IRQ_COLLISION_SPRITE = %00000100;
const byte IRQ_LIGHTPEN = %00001000;
const byte* COLS = $d800;
// CIA#1 Port A: keyboard matrix columns and joystick #2
@ -317,6 +324,10 @@ const byte* CIA1_PORT_B = $dc01;
const byte* CIA1_PORT_A_DDR = $dc02;
// CIA #1 Port B data direction register.
const byte* CIA1_PORT_B_DDR = $dc03;
// CIA#1 Interrupt Status & Control Register
const byte* CIA1_INTERRUPT = $dc0d;
// Value that disables all CIA interrupts when stored to the CIA Interrupt registers
const byte CIA_INTERRUPT_CLEAR = $7f;
// CIA#2 Port A: Serial bus, RS-232, VIC memory bank
const byte* CIA2_PORT_A = $dd00;
@ -326,6 +337,14 @@ const byte* CIA2_PORT_B = $dd01;
const byte* CIA2_PORT_A_DDR = $dd02;
// CIA #2 Port B data direction register.
const byte* CIA2_PORT_B_DDR = $dd03;
// CIA#2 Interrupt Status & Control Register
const byte* CIA2_INTERRUPT = $dd0d;
// The vector used when the KERNAL serves IRQ interrupts
const void()** KERNEL_IRQ = $0314;
// The vector used when the HARDWARE serves IRQ interrupts
const void()** HARDWARE_IRQ = $fffe;
const byte BLACK = $0;
const byte WHITE = $1;
@ -380,14 +399,17 @@ SYMBOLS
(byte*) BORDERCOL
(byte) BROWN
(byte*) CHARGEN
(byte*) CIA1_INTERRUPT
(byte*) CIA1_PORT_A
(byte*) CIA1_PORT_A_DDR
(byte*) CIA1_PORT_B
(byte*) CIA1_PORT_B_DDR
(byte*) CIA2_INTERRUPT
(byte*) CIA2_PORT_A
(byte*) CIA2_PORT_A_DDR
(byte*) CIA2_PORT_B
(byte*) CIA2_PORT_B_DDR
(byte) CIA_INTERRUPT_CLEAR
(byte*) COLS
(byte) CYAN
(byte*) D011
@ -491,6 +513,14 @@ SYMBOLS
(byte*) DTV_SPRITE_BANK
(byte) GREEN
(byte) GREY
(void()**) HARDWARE_IRQ
(byte) IRQ_COLLISION_BG
(byte) IRQ_COLLISION_SPRITE
(byte*) IRQ_ENABLE
(byte) IRQ_LIGHTPEN
(byte) IRQ_RASTER
(byte*) IRQ_STATUS
(void()**) KERNEL_IRQ
(byte) LIGHT_BLUE
(byte) LIGHT_GREEN
(byte) LIGHT_GREY
@ -622,15 +652,21 @@ Promoting word/dword/signed dword to byte* in VIC_CONTROL2 ← ((byte*)) 53270
Promoting word/dword/signed dword to byte* in D016 ← ((byte*)) 53270
Promoting word/dword/signed dword to byte* in D018 ← ((byte*)) 53272
Promoting word/dword/signed dword to byte* in VIC_MEMORY ← ((byte*)) 53272
Promoting word/dword/signed dword to byte* in IRQ_STATUS ← ((byte*)) 53273
Promoting word/dword/signed dword to byte* in IRQ_ENABLE ← ((byte*)) 53274
Promoting word/dword/signed dword to byte* in COLS ← ((byte*)) 55296
Promoting word/dword/signed dword to byte* in CIA1_PORT_A ← ((byte*)) 56320
Promoting word/dword/signed dword to byte* in CIA1_PORT_B ← ((byte*)) 56321
Promoting word/dword/signed dword to byte* in CIA1_PORT_A_DDR ← ((byte*)) 56322
Promoting word/dword/signed dword to byte* in CIA1_PORT_B_DDR ← ((byte*)) 56323
Promoting word/dword/signed dword to byte* in CIA1_INTERRUPT ← ((byte*)) 56333
Promoting word/dword/signed dword to byte* in CIA2_PORT_A ← ((byte*)) 56576
Promoting word/dword/signed dword to byte* in CIA2_PORT_B ← ((byte*)) 56577
Promoting word/dword/signed dword to byte* in CIA2_PORT_A_DDR ← ((byte*)) 56578
Promoting word/dword/signed dword to byte* in CIA2_PORT_B_DDR ← ((byte*)) 56579
Promoting word/dword/signed dword to byte* in CIA2_INTERRUPT ← ((byte*)) 56589
Promoting word/signed word/dword/signed dword to void()** in KERNEL_IRQ ← ((void()**)) 788
Promoting word/dword/signed dword to void()** in HARDWARE_IRQ ← ((void()**)) 65534
Promoting word/dword/signed dword to byte* in DTV_FEATURE ← ((byte*)) 53311
Promoting word/dword/signed dword to byte* in DTV_CONTROL ← ((byte*)) 53308
Promoting word/dword/signed dword to byte* in DTV_PALETTE ← ((byte*)) 53760
@ -725,15 +761,26 @@ INITIAL CONTROL FLOW GRAPH
(byte) VIC_CSEL ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte*) D018 ← ((byte*)) (word/dword/signed dword) 53272
(byte*) VIC_MEMORY ← ((byte*)) (word/dword/signed dword) 53272
(byte*) IRQ_STATUS ← ((byte*)) (word/dword/signed dword) 53273
(byte*) IRQ_ENABLE ← ((byte*)) (word/dword/signed dword) 53274
(byte) IRQ_RASTER ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) IRQ_COLLISION_BG ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) IRQ_COLLISION_SPRITE ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) IRQ_LIGHTPEN ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
(byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
(byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
(byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
(byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
(byte*) CIA1_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56333
(byte) CIA_INTERRUPT_CLEAR ← (byte/signed byte/word/signed word/dword/signed dword) 127
(byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
(byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
(byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
(byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
(byte*) CIA2_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56589
(void()**) KERNEL_IRQ ← ((void()**)) (word/signed word/dword/signed dword) 788
(void()**) HARDWARE_IRQ ← ((void()**)) (word/dword/signed dword) 65534
(byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
@ -1026,85 +1073,96 @@ Eliminating unused variable (byte) VIC_MCM and assignment [36] (byte) VIC_MCM
Eliminating unused variable (byte) VIC_CSEL and assignment [37] (byte) VIC_CSEL ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte*) D018 and assignment [38] (byte*) D018 ← ((byte*)) (word/dword/signed dword) 53272
Eliminating unused variable (byte*) VIC_MEMORY and assignment [39] (byte*) VIC_MEMORY ← ((byte*)) (word/dword/signed dword) 53272
Eliminating unused variable (byte*) COLS and assignment [40] (byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
Eliminating unused variable (byte*) CIA1_PORT_A and assignment [41] (byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
Eliminating unused variable (byte*) CIA1_PORT_B and assignment [42] (byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
Eliminating unused variable (byte*) CIA1_PORT_A_DDR and assignment [43] (byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
Eliminating unused variable (byte*) CIA1_PORT_B_DDR and assignment [44] (byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
Eliminating unused variable (byte*) CIA2_PORT_A and assignment [45] (byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
Eliminating unused variable (byte*) CIA2_PORT_B and assignment [46] (byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
Eliminating unused variable (byte*) CIA2_PORT_A_DDR and assignment [47] (byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
Eliminating unused variable (byte*) CIA2_PORT_B_DDR and assignment [48] (byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
Eliminating unused variable (byte) BLACK and assignment [49] (byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) WHITE and assignment [50] (byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) RED and assignment [51] (byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) CYAN and assignment [52] (byte) CYAN ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) PURPLE and assignment [53] (byte) PURPLE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) GREEN and assignment [54] (byte) GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) BLUE and assignment [55] (byte) BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) YELLOW and assignment [56] (byte) YELLOW ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) ORANGE and assignment [57] (byte) ORANGE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) BROWN and assignment [58] (byte) BROWN ← (byte/signed byte/word/signed word/dword/signed dword) 9
Eliminating unused variable (byte) PINK and assignment [59] (byte) PINK ← (byte/signed byte/word/signed word/dword/signed dword) 10
Eliminating unused variable (byte) DARK_GREY and assignment [60] (byte) DARK_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 11
Eliminating unused variable (byte) GREY and assignment [61] (byte) GREY ← (byte/signed byte/word/signed word/dword/signed dword) 12
Eliminating unused variable (byte) LIGHT_GREEN and assignment [62] (byte) LIGHT_GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 13
Eliminating unused variable (byte) LIGHT_BLUE and assignment [63] (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 14
Eliminating unused variable (byte) LIGHT_GREY and assignment [64] (byte) LIGHT_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable (byte) DTV_FEATURE_DISABLE_TIL_RESET and assignment [67] (byte) DTV_FEATURE_DISABLE_TIL_RESET ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte*) DTV_CONTROL and assignment [68] (byte*) DTV_CONTROL ← ((byte*)) (word/dword/signed dword) 53308
Eliminating unused variable (byte) DTV_LINEAR and assignment [69] (byte) DTV_LINEAR ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BORDER_OFF and assignment [70] (byte) DTV_BORDER_OFF ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_HIGHCOLOR and assignment [71] (byte) DTV_HIGHCOLOR ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_OVERSCAN and assignment [72] (byte) DTV_OVERSCAN ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) DTV_COLORRAM_OFF and assignment [73] (byte) DTV_COLORRAM_OFF ← (byte/signed byte/word/signed word/dword/signed dword) 16
Eliminating unused variable (byte) DTV_BADLINE_OFF and assignment [74] (byte) DTV_BADLINE_OFF ← (byte/signed byte/word/signed word/dword/signed dword) 32
Eliminating unused variable (byte) DTV_CHUNKY and assignment [75] (byte) DTV_CHUNKY ← (byte/signed byte/word/signed word/dword/signed dword) 64
Eliminating unused variable (byte*) DTV_PALETTE and assignment [76] (byte*) DTV_PALETTE ← ((byte*)) (word/dword/signed dword) 53760
Eliminating unused variable (byte[16]) DTV_PALETTE_DEFAULT and assignment [77] (byte[16]) DTV_PALETTE_DEFAULT ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 54, (byte/word/signed word/dword/signed dword) 190, (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/word/signed word/dword/signed dword) 219, (byte/word/signed word/dword/signed dword) 134, (byte/word/signed word/dword/signed dword) 255, (byte/signed byte/word/signed word/dword/signed dword) 41, (byte/signed byte/word/signed word/dword/signed dword) 38, (byte/signed byte/word/signed word/dword/signed dword) 59, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 154, (byte/signed byte/word/signed word/dword/signed dword) 10 }
Eliminating unused variable (byte*) DTV_PLANEA_START_LO and assignment [78] (byte*) DTV_PLANEA_START_LO ← ((byte*)) (word/dword/signed dword) 53306
Eliminating unused variable (byte*) DTV_PLANEA_START_MI and assignment [79] (byte*) DTV_PLANEA_START_MI ← ((byte*)) (word/dword/signed dword) 53307
Eliminating unused variable (byte*) DTV_PLANEA_START_HI and assignment [80] (byte*) DTV_PLANEA_START_HI ← ((byte*)) (word/dword/signed dword) 53317
Eliminating unused variable (byte*) DTV_PLANEA_STEP and assignment [81] (byte*) DTV_PLANEA_STEP ← ((byte*)) (word/dword/signed dword) 53318
Eliminating unused variable (byte*) DTV_PLANEA_MODULO_LO and assignment [82] (byte*) DTV_PLANEA_MODULO_LO ← ((byte*)) (word/dword/signed dword) 53304
Eliminating unused variable (byte*) DTV_PLANEA_MODULO_HI and assignment [83] (byte*) DTV_PLANEA_MODULO_HI ← ((byte*)) (word/dword/signed dword) 53305
Eliminating unused variable (byte*) DTV_PLANEB_START_LO and assignment [84] (byte*) DTV_PLANEB_START_LO ← ((byte*)) (word/dword/signed dword) 53321
Eliminating unused variable (byte*) DTV_PLANEB_START_MI and assignment [85] (byte*) DTV_PLANEB_START_MI ← ((byte*)) (word/dword/signed dword) 53322
Eliminating unused variable (byte*) DTV_PLANEB_START_HI and assignment [86] (byte*) DTV_PLANEB_START_HI ← ((byte*)) (word/dword/signed dword) 53323
Eliminating unused variable (byte*) DTV_PLANEB_STEP and assignment [87] (byte*) DTV_PLANEB_STEP ← ((byte*)) (word/dword/signed dword) 53324
Eliminating unused variable (byte*) DTV_PLANEB_MODULO_LO and assignment [88] (byte*) DTV_PLANEB_MODULO_LO ← ((byte*)) (word/dword/signed dword) 53319
Eliminating unused variable (byte*) DTV_PLANEB_MODULO_HI and assignment [89] (byte*) DTV_PLANEB_MODULO_HI ← ((byte*)) (word/dword/signed dword) 53320
Eliminating unused variable (byte*) DTV_SPRITE_BANK and assignment [90] (byte*) DTV_SPRITE_BANK ← ((byte*)) (word/dword/signed dword) 53325
Eliminating unused variable (byte*) DTV_COLOR_BANK_LO and assignment [91] (byte*) DTV_COLOR_BANK_LO ← ((byte*)) (word/dword/signed dword) 53302
Eliminating unused variable (byte*) DTV_COLOR_BANK_HI and assignment [92] (byte*) DTV_COLOR_BANK_HI ← ((byte*)) (word/dword/signed dword) 53303
Eliminating unused variable (dword) DTV_COLOR_BANK_DEFAULT and assignment [93] (dword) DTV_COLOR_BANK_DEFAULT ← (dword/signed dword) 120832
Eliminating unused variable (byte*) DTV_GRAPHICS_VIC_BANK and assignment [94] (byte*) DTV_GRAPHICS_VIC_BANK ← ((byte*)) (word/dword/signed dword) 53309
Eliminating unused variable (byte*) DTV_GRAPHICS_HICOL_BANK and assignment [95] (byte*) DTV_GRAPHICS_HICOL_BANK ← ((byte*)) (word/dword/signed dword) 53310
Eliminating unused variable (byte) DTV_BLIT_VIC_IRQ and assignment [127] (byte) DTV_BLIT_VIC_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 16
Eliminating unused variable (byte) DTV_BLIT_CIA_IRQ and assignment [128] (byte) DTV_BLIT_CIA_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 32
Eliminating unused variable (byte) DTV_BLIT_VBLANK and assignment [129] (byte) DTV_BLIT_VBLANK ← (byte/signed byte/word/signed word/dword/signed dword) 64
Eliminating unused variable (byte) DTV_BLIT_IRQ_EN and assignment [130] (byte) DTV_BLIT_IRQ_EN ← (byte/word/signed word/dword/signed dword) 128
Eliminating unused variable (byte) DTV_BLIT_DISABLE_B and assignment [132] (byte) DTV_BLIT_DISABLE_B ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_WRITE_TRANSPARENT and assignment [133] (byte) DTV_BLIT_WRITE_TRANSPARENT ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_WRITE_NONTRANSPARENT and assignment [134] (byte) DTV_BLIT_WRITE_NONTRANSPARENT ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_SHIFT0 and assignment [137] (byte) DTV_BLIT_SHIFT0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) DTV_BLIT_SHIFT1 and assignment [138] (byte) DTV_BLIT_SHIFT1 ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_SHIFT2 and assignment [139] (byte) DTV_BLIT_SHIFT2 ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_SHIFT3 and assignment [140] (byte) DTV_BLIT_SHIFT3 ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) DTV_BLIT_SHIFT4 and assignment [141] (byte) DTV_BLIT_SHIFT4 ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_SHIFT5 and assignment [142] (byte) DTV_BLIT_SHIFT5 ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) DTV_BLIT_SHIFT6 and assignment [143] (byte) DTV_BLIT_SHIFT6 ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) DTV_BLIT_SHIFT7 and assignment [144] (byte) DTV_BLIT_SHIFT7 ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) DTV_BLIT_AND and assignment [145] (byte) DTV_BLIT_AND ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) DTV_BLIT_NAND and assignment [146] (byte) DTV_BLIT_NAND ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) DTV_BLIT_NOR and assignment [147] (byte) DTV_BLIT_NOR ← (byte/signed byte/word/signed word/dword/signed dword) 16
Eliminating unused variable (byte) DTV_BLIT_OR and assignment [148] (byte) DTV_BLIT_OR ← (byte/signed byte/word/signed word/dword/signed dword) 24
Eliminating unused variable (byte) DTV_BLIT_XOR and assignment [149] (byte) DTV_BLIT_XOR ← (byte/signed byte/word/signed word/dword/signed dword) 32
Eliminating unused variable (byte) DTV_BLIT_XNOR and assignment [150] (byte) DTV_BLIT_XNOR ← (byte/signed byte/word/signed word/dword/signed dword) 40
Eliminating unused variable (byte) DTV_BLIT_SUB and assignment [152] (byte) DTV_BLIT_SUB ← (byte/signed byte/word/signed word/dword/signed dword) 56
Eliminating unused variable (byte) DTV_BLIT_SRCA_CONT and assignment [155] (byte) DTV_BLIT_SRCA_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_SRCB_CONT and assignment [156] (byte) DTV_BLIT_SRCB_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_STATUS_IRQ and assignment [159] (byte) DTV_BLIT_STATUS_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte*) IRQ_STATUS and assignment [40] (byte*) IRQ_STATUS ← ((byte*)) (word/dword/signed dword) 53273
Eliminating unused variable (byte*) IRQ_ENABLE and assignment [41] (byte*) IRQ_ENABLE ← ((byte*)) (word/dword/signed dword) 53274
Eliminating unused variable (byte) IRQ_RASTER and assignment [42] (byte) IRQ_RASTER ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) IRQ_COLLISION_BG and assignment [43] (byte) IRQ_COLLISION_BG ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) IRQ_COLLISION_SPRITE and assignment [44] (byte) IRQ_COLLISION_SPRITE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) IRQ_LIGHTPEN and assignment [45] (byte) IRQ_LIGHTPEN ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte*) COLS and assignment [46] (byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
Eliminating unused variable (byte*) CIA1_PORT_A and assignment [47] (byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
Eliminating unused variable (byte*) CIA1_PORT_B and assignment [48] (byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
Eliminating unused variable (byte*) CIA1_PORT_A_DDR and assignment [49] (byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
Eliminating unused variable (byte*) CIA1_PORT_B_DDR and assignment [50] (byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
Eliminating unused variable (byte*) CIA1_INTERRUPT and assignment [51] (byte*) CIA1_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56333
Eliminating unused variable (byte) CIA_INTERRUPT_CLEAR and assignment [52] (byte) CIA_INTERRUPT_CLEAR ← (byte/signed byte/word/signed word/dword/signed dword) 127
Eliminating unused variable (byte*) CIA2_PORT_A and assignment [53] (byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
Eliminating unused variable (byte*) CIA2_PORT_B and assignment [54] (byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
Eliminating unused variable (byte*) CIA2_PORT_A_DDR and assignment [55] (byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
Eliminating unused variable (byte*) CIA2_PORT_B_DDR and assignment [56] (byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
Eliminating unused variable (byte*) CIA2_INTERRUPT and assignment [57] (byte*) CIA2_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56589
Eliminating unused variable (void()**) KERNEL_IRQ and assignment [58] (void()**) KERNEL_IRQ ← ((void()**)) (word/signed word/dword/signed dword) 788
Eliminating unused variable (void()**) HARDWARE_IRQ and assignment [59] (void()**) HARDWARE_IRQ ← ((void()**)) (word/dword/signed dword) 65534
Eliminating unused variable (byte) BLACK and assignment [60] (byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) WHITE and assignment [61] (byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) RED and assignment [62] (byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) CYAN and assignment [63] (byte) CYAN ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) PURPLE and assignment [64] (byte) PURPLE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) GREEN and assignment [65] (byte) GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) BLUE and assignment [66] (byte) BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) YELLOW and assignment [67] (byte) YELLOW ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) ORANGE and assignment [68] (byte) ORANGE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) BROWN and assignment [69] (byte) BROWN ← (byte/signed byte/word/signed word/dword/signed dword) 9
Eliminating unused variable (byte) PINK and assignment [70] (byte) PINK ← (byte/signed byte/word/signed word/dword/signed dword) 10
Eliminating unused variable (byte) DARK_GREY and assignment [71] (byte) DARK_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 11
Eliminating unused variable (byte) GREY and assignment [72] (byte) GREY ← (byte/signed byte/word/signed word/dword/signed dword) 12
Eliminating unused variable (byte) LIGHT_GREEN and assignment [73] (byte) LIGHT_GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 13
Eliminating unused variable (byte) LIGHT_BLUE and assignment [74] (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 14
Eliminating unused variable (byte) LIGHT_GREY and assignment [75] (byte) LIGHT_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable (byte) DTV_FEATURE_DISABLE_TIL_RESET and assignment [78] (byte) DTV_FEATURE_DISABLE_TIL_RESET ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte*) DTV_CONTROL and assignment [79] (byte*) DTV_CONTROL ← ((byte*)) (word/dword/signed dword) 53308
Eliminating unused variable (byte) DTV_LINEAR and assignment [80] (byte) DTV_LINEAR ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BORDER_OFF and assignment [81] (byte) DTV_BORDER_OFF ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_HIGHCOLOR and assignment [82] (byte) DTV_HIGHCOLOR ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_OVERSCAN and assignment [83] (byte) DTV_OVERSCAN ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) DTV_COLORRAM_OFF and assignment [84] (byte) DTV_COLORRAM_OFF ← (byte/signed byte/word/signed word/dword/signed dword) 16
Eliminating unused variable (byte) DTV_BADLINE_OFF and assignment [85] (byte) DTV_BADLINE_OFF ← (byte/signed byte/word/signed word/dword/signed dword) 32
Eliminating unused variable (byte) DTV_CHUNKY and assignment [86] (byte) DTV_CHUNKY ← (byte/signed byte/word/signed word/dword/signed dword) 64
Eliminating unused variable (byte*) DTV_PALETTE and assignment [87] (byte*) DTV_PALETTE ← ((byte*)) (word/dword/signed dword) 53760
Eliminating unused variable (byte[16]) DTV_PALETTE_DEFAULT and assignment [88] (byte[16]) DTV_PALETTE_DEFAULT ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 54, (byte/word/signed word/dword/signed dword) 190, (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/word/signed word/dword/signed dword) 219, (byte/word/signed word/dword/signed dword) 134, (byte/word/signed word/dword/signed dword) 255, (byte/signed byte/word/signed word/dword/signed dword) 41, (byte/signed byte/word/signed word/dword/signed dword) 38, (byte/signed byte/word/signed word/dword/signed dword) 59, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 154, (byte/signed byte/word/signed word/dword/signed dword) 10 }
Eliminating unused variable (byte*) DTV_PLANEA_START_LO and assignment [89] (byte*) DTV_PLANEA_START_LO ← ((byte*)) (word/dword/signed dword) 53306
Eliminating unused variable (byte*) DTV_PLANEA_START_MI and assignment [90] (byte*) DTV_PLANEA_START_MI ← ((byte*)) (word/dword/signed dword) 53307
Eliminating unused variable (byte*) DTV_PLANEA_START_HI and assignment [91] (byte*) DTV_PLANEA_START_HI ← ((byte*)) (word/dword/signed dword) 53317
Eliminating unused variable (byte*) DTV_PLANEA_STEP and assignment [92] (byte*) DTV_PLANEA_STEP ← ((byte*)) (word/dword/signed dword) 53318
Eliminating unused variable (byte*) DTV_PLANEA_MODULO_LO and assignment [93] (byte*) DTV_PLANEA_MODULO_LO ← ((byte*)) (word/dword/signed dword) 53304
Eliminating unused variable (byte*) DTV_PLANEA_MODULO_HI and assignment [94] (byte*) DTV_PLANEA_MODULO_HI ← ((byte*)) (word/dword/signed dword) 53305
Eliminating unused variable (byte*) DTV_PLANEB_START_LO and assignment [95] (byte*) DTV_PLANEB_START_LO ← ((byte*)) (word/dword/signed dword) 53321
Eliminating unused variable (byte*) DTV_PLANEB_START_MI and assignment [96] (byte*) DTV_PLANEB_START_MI ← ((byte*)) (word/dword/signed dword) 53322
Eliminating unused variable (byte*) DTV_PLANEB_START_HI and assignment [97] (byte*) DTV_PLANEB_START_HI ← ((byte*)) (word/dword/signed dword) 53323
Eliminating unused variable (byte*) DTV_PLANEB_STEP and assignment [98] (byte*) DTV_PLANEB_STEP ← ((byte*)) (word/dword/signed dword) 53324
Eliminating unused variable (byte*) DTV_PLANEB_MODULO_LO and assignment [99] (byte*) DTV_PLANEB_MODULO_LO ← ((byte*)) (word/dword/signed dword) 53319
Eliminating unused variable (byte*) DTV_PLANEB_MODULO_HI and assignment [100] (byte*) DTV_PLANEB_MODULO_HI ← ((byte*)) (word/dword/signed dword) 53320
Eliminating unused variable (byte*) DTV_SPRITE_BANK and assignment [101] (byte*) DTV_SPRITE_BANK ← ((byte*)) (word/dword/signed dword) 53325
Eliminating unused variable (byte*) DTV_COLOR_BANK_LO and assignment [102] (byte*) DTV_COLOR_BANK_LO ← ((byte*)) (word/dword/signed dword) 53302
Eliminating unused variable (byte*) DTV_COLOR_BANK_HI and assignment [103] (byte*) DTV_COLOR_BANK_HI ← ((byte*)) (word/dword/signed dword) 53303
Eliminating unused variable (dword) DTV_COLOR_BANK_DEFAULT and assignment [104] (dword) DTV_COLOR_BANK_DEFAULT ← (dword/signed dword) 120832
Eliminating unused variable (byte*) DTV_GRAPHICS_VIC_BANK and assignment [105] (byte*) DTV_GRAPHICS_VIC_BANK ← ((byte*)) (word/dword/signed dword) 53309
Eliminating unused variable (byte*) DTV_GRAPHICS_HICOL_BANK and assignment [106] (byte*) DTV_GRAPHICS_HICOL_BANK ← ((byte*)) (word/dword/signed dword) 53310
Eliminating unused variable (byte) DTV_BLIT_VIC_IRQ and assignment [138] (byte) DTV_BLIT_VIC_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 16
Eliminating unused variable (byte) DTV_BLIT_CIA_IRQ and assignment [139] (byte) DTV_BLIT_CIA_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 32
Eliminating unused variable (byte) DTV_BLIT_VBLANK and assignment [140] (byte) DTV_BLIT_VBLANK ← (byte/signed byte/word/signed word/dword/signed dword) 64
Eliminating unused variable (byte) DTV_BLIT_IRQ_EN and assignment [141] (byte) DTV_BLIT_IRQ_EN ← (byte/word/signed word/dword/signed dword) 128
Eliminating unused variable (byte) DTV_BLIT_DISABLE_B and assignment [143] (byte) DTV_BLIT_DISABLE_B ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_WRITE_TRANSPARENT and assignment [144] (byte) DTV_BLIT_WRITE_TRANSPARENT ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_WRITE_NONTRANSPARENT and assignment [145] (byte) DTV_BLIT_WRITE_NONTRANSPARENT ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_SHIFT0 and assignment [148] (byte) DTV_BLIT_SHIFT0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) DTV_BLIT_SHIFT1 and assignment [149] (byte) DTV_BLIT_SHIFT1 ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_SHIFT2 and assignment [150] (byte) DTV_BLIT_SHIFT2 ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_SHIFT3 and assignment [151] (byte) DTV_BLIT_SHIFT3 ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) DTV_BLIT_SHIFT4 and assignment [152] (byte) DTV_BLIT_SHIFT4 ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_SHIFT5 and assignment [153] (byte) DTV_BLIT_SHIFT5 ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) DTV_BLIT_SHIFT6 and assignment [154] (byte) DTV_BLIT_SHIFT6 ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) DTV_BLIT_SHIFT7 and assignment [155] (byte) DTV_BLIT_SHIFT7 ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) DTV_BLIT_AND and assignment [156] (byte) DTV_BLIT_AND ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) DTV_BLIT_NAND and assignment [157] (byte) DTV_BLIT_NAND ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) DTV_BLIT_NOR and assignment [158] (byte) DTV_BLIT_NOR ← (byte/signed byte/word/signed word/dword/signed dword) 16
Eliminating unused variable (byte) DTV_BLIT_OR and assignment [159] (byte) DTV_BLIT_OR ← (byte/signed byte/word/signed word/dword/signed dword) 24
Eliminating unused variable (byte) DTV_BLIT_XOR and assignment [160] (byte) DTV_BLIT_XOR ← (byte/signed byte/word/signed word/dword/signed dword) 32
Eliminating unused variable (byte) DTV_BLIT_XNOR and assignment [161] (byte) DTV_BLIT_XNOR ← (byte/signed byte/word/signed word/dword/signed dword) 40
Eliminating unused variable (byte) DTV_BLIT_SUB and assignment [163] (byte) DTV_BLIT_SUB ← (byte/signed byte/word/signed word/dword/signed dword) 56
Eliminating unused variable (byte) DTV_BLIT_SRCA_CONT and assignment [166] (byte) DTV_BLIT_SRCA_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_SRCB_CONT and assignment [167] (byte) DTV_BLIT_SRCB_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_STATUS_IRQ and assignment [170] (byte) DTV_BLIT_STATUS_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 2
Removing empty block @1
Removing empty block @2
Removing empty block main::@4

View File

@ -274,6 +274,13 @@ const byte VIC_CSEL = %00001000;
const byte* D018 = $d018;
const byte* VIC_MEMORY = $d018;
const byte* IRQ_STATUS = $d019;
const byte* IRQ_ENABLE = $d01a;
const byte IRQ_RASTER = %00000001;
const byte IRQ_COLLISION_BG = %00000010;
const byte IRQ_COLLISION_SPRITE = %00000100;
const byte IRQ_LIGHTPEN = %00001000;
const byte* COLS = $d800;
// CIA#1 Port A: keyboard matrix columns and joystick #2
@ -284,6 +291,10 @@ const byte* CIA1_PORT_B = $dc01;
const byte* CIA1_PORT_A_DDR = $dc02;
// CIA #1 Port B data direction register.
const byte* CIA1_PORT_B_DDR = $dc03;
// CIA#1 Interrupt Status & Control Register
const byte* CIA1_INTERRUPT = $dc0d;
// Value that disables all CIA interrupts when stored to the CIA Interrupt registers
const byte CIA_INTERRUPT_CLEAR = $7f;
// CIA#2 Port A: Serial bus, RS-232, VIC memory bank
const byte* CIA2_PORT_A = $dd00;
@ -293,6 +304,14 @@ const byte* CIA2_PORT_B = $dd01;
const byte* CIA2_PORT_A_DDR = $dd02;
// CIA #2 Port B data direction register.
const byte* CIA2_PORT_B_DDR = $dd03;
// CIA#2 Interrupt Status & Control Register
const byte* CIA2_INTERRUPT = $dd0d;
// The vector used when the KERNAL serves IRQ interrupts
const void()** KERNEL_IRQ = $0314;
// The vector used when the HARDWARE serves IRQ interrupts
const void()** HARDWARE_IRQ = $fffe;
const byte BLACK = $0;
const byte WHITE = $1;
@ -349,14 +368,17 @@ SYMBOLS
(byte*) BORDERCOL
(byte) BROWN
(byte*) CHARGEN
(byte*) CIA1_INTERRUPT
(byte*) CIA1_PORT_A
(byte*) CIA1_PORT_A_DDR
(byte*) CIA1_PORT_B
(byte*) CIA1_PORT_B_DDR
(byte*) CIA2_INTERRUPT
(byte*) CIA2_PORT_A
(byte*) CIA2_PORT_A_DDR
(byte*) CIA2_PORT_B
(byte*) CIA2_PORT_B_DDR
(byte) CIA_INTERRUPT_CLEAR
(byte*) COLS
(byte) CYAN
(byte*) D011
@ -460,6 +482,14 @@ SYMBOLS
(byte*) DTV_SPRITE_BANK
(byte) GREEN
(byte) GREY
(void()**) HARDWARE_IRQ
(byte) IRQ_COLLISION_BG
(byte) IRQ_COLLISION_SPRITE
(byte*) IRQ_ENABLE
(byte) IRQ_LIGHTPEN
(byte) IRQ_RASTER
(byte*) IRQ_STATUS
(void()**) KERNEL_IRQ
(byte) LIGHT_BLUE
(byte) LIGHT_GREEN
(byte) LIGHT_GREY
@ -585,15 +615,21 @@ Promoting word/dword/signed dword to byte* in VIC_CONTROL2 ← ((byte*)) 53270
Promoting word/dword/signed dword to byte* in D016 ← ((byte*)) 53270
Promoting word/dword/signed dword to byte* in D018 ← ((byte*)) 53272
Promoting word/dword/signed dword to byte* in VIC_MEMORY ← ((byte*)) 53272
Promoting word/dword/signed dword to byte* in IRQ_STATUS ← ((byte*)) 53273
Promoting word/dword/signed dword to byte* in IRQ_ENABLE ← ((byte*)) 53274
Promoting word/dword/signed dword to byte* in COLS ← ((byte*)) 55296
Promoting word/dword/signed dword to byte* in CIA1_PORT_A ← ((byte*)) 56320
Promoting word/dword/signed dword to byte* in CIA1_PORT_B ← ((byte*)) 56321
Promoting word/dword/signed dword to byte* in CIA1_PORT_A_DDR ← ((byte*)) 56322
Promoting word/dword/signed dword to byte* in CIA1_PORT_B_DDR ← ((byte*)) 56323
Promoting word/dword/signed dword to byte* in CIA1_INTERRUPT ← ((byte*)) 56333
Promoting word/dword/signed dword to byte* in CIA2_PORT_A ← ((byte*)) 56576
Promoting word/dword/signed dword to byte* in CIA2_PORT_B ← ((byte*)) 56577
Promoting word/dword/signed dword to byte* in CIA2_PORT_A_DDR ← ((byte*)) 56578
Promoting word/dword/signed dword to byte* in CIA2_PORT_B_DDR ← ((byte*)) 56579
Promoting word/dword/signed dword to byte* in CIA2_INTERRUPT ← ((byte*)) 56589
Promoting word/signed word/dword/signed dword to void()** in KERNEL_IRQ ← ((void()**)) 788
Promoting word/dword/signed dword to void()** in HARDWARE_IRQ ← ((void()**)) 65534
Promoting word/dword/signed dword to byte* in DTV_FEATURE ← ((byte*)) 53311
Promoting word/dword/signed dword to byte* in DTV_CONTROL ← ((byte*)) 53308
Promoting word/dword/signed dword to byte* in DTV_PALETTE ← ((byte*)) 53760
@ -687,15 +723,26 @@ INITIAL CONTROL FLOW GRAPH
(byte) VIC_CSEL ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte*) D018 ← ((byte*)) (word/dword/signed dword) 53272
(byte*) VIC_MEMORY ← ((byte*)) (word/dword/signed dword) 53272
(byte*) IRQ_STATUS ← ((byte*)) (word/dword/signed dword) 53273
(byte*) IRQ_ENABLE ← ((byte*)) (word/dword/signed dword) 53274
(byte) IRQ_RASTER ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) IRQ_COLLISION_BG ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) IRQ_COLLISION_SPRITE ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) IRQ_LIGHTPEN ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
(byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
(byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
(byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
(byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
(byte*) CIA1_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56333
(byte) CIA_INTERRUPT_CLEAR ← (byte/signed byte/word/signed word/dword/signed dword) 127
(byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
(byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
(byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
(byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
(byte*) CIA2_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56589
(void()**) KERNEL_IRQ ← ((void()**)) (word/signed word/dword/signed dword) 788
(void()**) HARDWARE_IRQ ← ((void()**)) (word/dword/signed dword) 65534
(byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
@ -970,119 +1017,130 @@ Eliminating unused variable (byte) VIC_MCM and assignment [36] (byte) VIC_MCM
Eliminating unused variable (byte) VIC_CSEL and assignment [37] (byte) VIC_CSEL ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte*) D018 and assignment [38] (byte*) D018 ← ((byte*)) (word/dword/signed dword) 53272
Eliminating unused variable (byte*) VIC_MEMORY and assignment [39] (byte*) VIC_MEMORY ← ((byte*)) (word/dword/signed dword) 53272
Eliminating unused variable (byte*) COLS and assignment [40] (byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
Eliminating unused variable (byte*) CIA1_PORT_A and assignment [41] (byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
Eliminating unused variable (byte*) CIA1_PORT_B and assignment [42] (byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
Eliminating unused variable (byte*) CIA1_PORT_A_DDR and assignment [43] (byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
Eliminating unused variable (byte*) CIA1_PORT_B_DDR and assignment [44] (byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
Eliminating unused variable (byte*) CIA2_PORT_A and assignment [45] (byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
Eliminating unused variable (byte*) CIA2_PORT_B and assignment [46] (byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
Eliminating unused variable (byte*) CIA2_PORT_A_DDR and assignment [47] (byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
Eliminating unused variable (byte*) CIA2_PORT_B_DDR and assignment [48] (byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
Eliminating unused variable (byte) BLACK and assignment [49] (byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) WHITE and assignment [50] (byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) RED and assignment [51] (byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) CYAN and assignment [52] (byte) CYAN ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) PURPLE and assignment [53] (byte) PURPLE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) GREEN and assignment [54] (byte) GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) BLUE and assignment [55] (byte) BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) YELLOW and assignment [56] (byte) YELLOW ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) ORANGE and assignment [57] (byte) ORANGE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) BROWN and assignment [58] (byte) BROWN ← (byte/signed byte/word/signed word/dword/signed dword) 9
Eliminating unused variable (byte) PINK and assignment [59] (byte) PINK ← (byte/signed byte/word/signed word/dword/signed dword) 10
Eliminating unused variable (byte) DARK_GREY and assignment [60] (byte) DARK_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 11
Eliminating unused variable (byte) GREY and assignment [61] (byte) GREY ← (byte/signed byte/word/signed word/dword/signed dword) 12
Eliminating unused variable (byte) LIGHT_GREEN and assignment [62] (byte) LIGHT_GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 13
Eliminating unused variable (byte) LIGHT_BLUE and assignment [63] (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 14
Eliminating unused variable (byte) LIGHT_GREY and assignment [64] (byte) LIGHT_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable (byte) DTV_FEATURE_DISABLE_TIL_RESET and assignment [67] (byte) DTV_FEATURE_DISABLE_TIL_RESET ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_LINEAR and assignment [69] (byte) DTV_LINEAR ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_OVERSCAN and assignment [72] (byte) DTV_OVERSCAN ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) DTV_COLORRAM_OFF and assignment [73] (byte) DTV_COLORRAM_OFF ← (byte/signed byte/word/signed word/dword/signed dword) 16
Eliminating unused variable (byte) DTV_CHUNKY and assignment [75] (byte) DTV_CHUNKY ← (byte/signed byte/word/signed word/dword/signed dword) 64
Eliminating unused variable (byte[16]) DTV_PALETTE_DEFAULT and assignment [77] (byte[16]) DTV_PALETTE_DEFAULT ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 54, (byte/word/signed word/dword/signed dword) 190, (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/word/signed word/dword/signed dword) 219, (byte/word/signed word/dword/signed dword) 134, (byte/word/signed word/dword/signed dword) 255, (byte/signed byte/word/signed word/dword/signed dword) 41, (byte/signed byte/word/signed word/dword/signed dword) 38, (byte/signed byte/word/signed word/dword/signed dword) 59, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 154, (byte/signed byte/word/signed word/dword/signed dword) 10 }
Eliminating unused variable (byte*) DTV_PLANEA_START_LO and assignment [78] (byte*) DTV_PLANEA_START_LO ← ((byte*)) (word/dword/signed dword) 53306
Eliminating unused variable (byte*) DTV_PLANEA_START_MI and assignment [79] (byte*) DTV_PLANEA_START_MI ← ((byte*)) (word/dword/signed dword) 53307
Eliminating unused variable (byte*) DTV_PLANEA_START_HI and assignment [80] (byte*) DTV_PLANEA_START_HI ← ((byte*)) (word/dword/signed dword) 53317
Eliminating unused variable (byte*) DTV_PLANEA_STEP and assignment [81] (byte*) DTV_PLANEA_STEP ← ((byte*)) (word/dword/signed dword) 53318
Eliminating unused variable (byte*) DTV_PLANEA_MODULO_LO and assignment [82] (byte*) DTV_PLANEA_MODULO_LO ← ((byte*)) (word/dword/signed dword) 53304
Eliminating unused variable (byte*) DTV_PLANEA_MODULO_HI and assignment [83] (byte*) DTV_PLANEA_MODULO_HI ← ((byte*)) (word/dword/signed dword) 53305
Eliminating unused variable (byte*) DTV_PLANEB_START_LO and assignment [84] (byte*) DTV_PLANEB_START_LO ← ((byte*)) (word/dword/signed dword) 53321
Eliminating unused variable (byte*) DTV_PLANEB_START_MI and assignment [85] (byte*) DTV_PLANEB_START_MI ← ((byte*)) (word/dword/signed dword) 53322
Eliminating unused variable (byte*) DTV_PLANEB_START_HI and assignment [86] (byte*) DTV_PLANEB_START_HI ← ((byte*)) (word/dword/signed dword) 53323
Eliminating unused variable (byte*) DTV_PLANEB_STEP and assignment [87] (byte*) DTV_PLANEB_STEP ← ((byte*)) (word/dword/signed dword) 53324
Eliminating unused variable (byte*) DTV_PLANEB_MODULO_LO and assignment [88] (byte*) DTV_PLANEB_MODULO_LO ← ((byte*)) (word/dword/signed dword) 53319
Eliminating unused variable (byte*) DTV_PLANEB_MODULO_HI and assignment [89] (byte*) DTV_PLANEB_MODULO_HI ← ((byte*)) (word/dword/signed dword) 53320
Eliminating unused variable (byte*) DTV_SPRITE_BANK and assignment [90] (byte*) DTV_SPRITE_BANK ← ((byte*)) (word/dword/signed dword) 53325
Eliminating unused variable (byte*) DTV_COLOR_BANK_LO and assignment [91] (byte*) DTV_COLOR_BANK_LO ← ((byte*)) (word/dword/signed dword) 53302
Eliminating unused variable (byte*) DTV_COLOR_BANK_HI and assignment [92] (byte*) DTV_COLOR_BANK_HI ← ((byte*)) (word/dword/signed dword) 53303
Eliminating unused variable (dword) DTV_COLOR_BANK_DEFAULT and assignment [93] (dword) DTV_COLOR_BANK_DEFAULT ← (dword/signed dword) 120832
Eliminating unused variable (byte*) DTV_GRAPHICS_VIC_BANK and assignment [94] (byte*) DTV_GRAPHICS_VIC_BANK ← ((byte*)) (word/dword/signed dword) 53309
Eliminating unused variable (byte*) DTV_GRAPHICS_HICOL_BANK and assignment [95] (byte*) DTV_GRAPHICS_HICOL_BANK ← ((byte*)) (word/dword/signed dword) 53310
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_LO and assignment [96] (byte*) DTV_BLITTER_SRCA_LO ← ((byte*)) (word/dword/signed dword) 54048
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_MI and assignment [97] (byte*) DTV_BLITTER_SRCA_MI ← ((byte*)) (word/dword/signed dword) 54049
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_HI and assignment [98] (byte*) DTV_BLITTER_SRCA_HI ← ((byte*)) (word/dword/signed dword) 54050
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_MOD_LO and assignment [99] (byte*) DTV_BLITTER_SRCA_MOD_LO ← ((byte*)) (word/dword/signed dword) 54051
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_MOD_HI and assignment [100] (byte*) DTV_BLITTER_SRCA_MOD_HI ← ((byte*)) (word/dword/signed dword) 54052
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_LIN_LO and assignment [101] (byte*) DTV_BLITTER_SRCA_LIN_LO ← ((byte*)) (word/dword/signed dword) 54053
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_LIN_HI and assignment [102] (byte*) DTV_BLITTER_SRCA_LIN_HI ← ((byte*)) (word/dword/signed dword) 54054
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_STEP and assignment [103] (byte*) DTV_BLITTER_SRCA_STEP ← ((byte*)) (word/dword/signed dword) 54055
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_LO and assignment [104] (byte*) DTV_BLITTER_SRCB_LO ← ((byte*)) (word/dword/signed dword) 54056
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_MI and assignment [105] (byte*) DTV_BLITTER_SRCB_MI ← ((byte*)) (word/dword/signed dword) 54057
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_HI and assignment [106] (byte*) DTV_BLITTER_SRCB_HI ← ((byte*)) (word/dword/signed dword) 54058
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_MOD_LO and assignment [107] (byte*) DTV_BLITTER_SRCB_MOD_LO ← ((byte*)) (word/dword/signed dword) 54059
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_MOD_HI and assignment [108] (byte*) DTV_BLITTER_SRCB_MOD_HI ← ((byte*)) (word/dword/signed dword) 54060
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_LIN_LO and assignment [109] (byte*) DTV_BLITTER_SRCB_LIN_LO ← ((byte*)) (word/dword/signed dword) 54061
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_LIN_HI and assignment [110] (byte*) DTV_BLITTER_SRCB_LIN_HI ← ((byte*)) (word/dword/signed dword) 54062
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_STEP and assignment [111] (byte*) DTV_BLITTER_SRCB_STEP ← ((byte*)) (word/dword/signed dword) 54063
Eliminating unused variable (byte*) DTV_BLITTER_DEST_LO and assignment [112] (byte*) DTV_BLITTER_DEST_LO ← ((byte*)) (word/dword/signed dword) 54064
Eliminating unused variable (byte*) DTV_BLITTER_DEST_MI and assignment [113] (byte*) DTV_BLITTER_DEST_MI ← ((byte*)) (word/dword/signed dword) 54065
Eliminating unused variable (byte*) DTV_BLITTER_DEST_HI and assignment [114] (byte*) DTV_BLITTER_DEST_HI ← ((byte*)) (word/dword/signed dword) 54066
Eliminating unused variable (byte*) DTV_BLITTER_DEST_MOD_LO and assignment [115] (byte*) DTV_BLITTER_DEST_MOD_LO ← ((byte*)) (word/dword/signed dword) 54067
Eliminating unused variable (byte*) DTV_BLITTER_DEST_MOD_HI and assignment [116] (byte*) DTV_BLITTER_DEST_MOD_HI ← ((byte*)) (word/dword/signed dword) 54068
Eliminating unused variable (byte*) DTV_BLITTER_DEST_LIN_LO and assignment [117] (byte*) DTV_BLITTER_DEST_LIN_LO ← ((byte*)) (word/dword/signed dword) 54069
Eliminating unused variable (byte*) DTV_BLITTER_DEST_LIN_HI and assignment [118] (byte*) DTV_BLITTER_DEST_LIN_HI ← ((byte*)) (word/dword/signed dword) 54070
Eliminating unused variable (byte*) DTV_BLITTER_DEST_STEP and assignment [119] (byte*) DTV_BLITTER_DEST_STEP ← ((byte*)) (word/dword/signed dword) 54071
Eliminating unused variable (byte*) DTV_BLITTER_LEN_LO and assignment [120] (byte*) DTV_BLITTER_LEN_LO ← ((byte*)) (word/dword/signed dword) 54072
Eliminating unused variable (byte*) DTV_BLITTER_LEN_HI and assignment [121] (byte*) DTV_BLITTER_LEN_HI ← ((byte*)) (word/dword/signed dword) 54073
Eliminating unused variable (byte*) DTV_BLITTER_CONTROL and assignment [122] (byte*) DTV_BLITTER_CONTROL ← ((byte*)) (word/dword/signed dword) 54074
Eliminating unused variable (byte) DTV_BLIT_FORCE_START and assignment [123] (byte) DTV_BLIT_FORCE_START ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_SRCA_FWD and assignment [124] (byte) DTV_BLIT_SRCA_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_SRCB_FWD and assignment [125] (byte) DTV_BLIT_SRCB_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_DEST_FWD and assignment [126] (byte) DTV_BLIT_DEST_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) DTV_BLIT_VIC_IRQ and assignment [127] (byte) DTV_BLIT_VIC_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 16
Eliminating unused variable (byte) DTV_BLIT_CIA_IRQ and assignment [128] (byte) DTV_BLIT_CIA_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 32
Eliminating unused variable (byte) DTV_BLIT_VBLANK and assignment [129] (byte) DTV_BLIT_VBLANK ← (byte/signed byte/word/signed word/dword/signed dword) 64
Eliminating unused variable (byte) DTV_BLIT_IRQ_EN and assignment [130] (byte) DTV_BLIT_IRQ_EN ← (byte/word/signed word/dword/signed dword) 128
Eliminating unused variable (byte*) DTV_BLITTER_TRANSPARANCY and assignment [131] (byte*) DTV_BLITTER_TRANSPARANCY ← ((byte*)) (word/dword/signed dword) 54075
Eliminating unused variable (byte) DTV_BLIT_DISABLE_B and assignment [132] (byte) DTV_BLIT_DISABLE_B ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_WRITE_TRANSPARENT and assignment [133] (byte) DTV_BLIT_WRITE_TRANSPARENT ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_WRITE_NONTRANSPARENT and assignment [134] (byte) DTV_BLIT_WRITE_NONTRANSPARENT ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_TRANSPARANCY_NONE and assignment [135] (byte) DTV_BLIT_TRANSPARANCY_NONE ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte*) DTV_BLITTER_ALU and assignment [136] (byte*) DTV_BLITTER_ALU ← ((byte*)) (word/dword/signed dword) 54078
Eliminating unused variable (byte) DTV_BLIT_SHIFT0 and assignment [137] (byte) DTV_BLIT_SHIFT0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) DTV_BLIT_SHIFT1 and assignment [138] (byte) DTV_BLIT_SHIFT1 ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_SHIFT2 and assignment [139] (byte) DTV_BLIT_SHIFT2 ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_SHIFT3 and assignment [140] (byte) DTV_BLIT_SHIFT3 ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) DTV_BLIT_SHIFT4 and assignment [141] (byte) DTV_BLIT_SHIFT4 ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_SHIFT5 and assignment [142] (byte) DTV_BLIT_SHIFT5 ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) DTV_BLIT_SHIFT6 and assignment [143] (byte) DTV_BLIT_SHIFT6 ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) DTV_BLIT_SHIFT7 and assignment [144] (byte) DTV_BLIT_SHIFT7 ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) DTV_BLIT_AND and assignment [145] (byte) DTV_BLIT_AND ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) DTV_BLIT_NAND and assignment [146] (byte) DTV_BLIT_NAND ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) DTV_BLIT_NOR and assignment [147] (byte) DTV_BLIT_NOR ← (byte/signed byte/word/signed word/dword/signed dword) 16
Eliminating unused variable (byte) DTV_BLIT_OR and assignment [148] (byte) DTV_BLIT_OR ← (byte/signed byte/word/signed word/dword/signed dword) 24
Eliminating unused variable (byte) DTV_BLIT_XOR and assignment [149] (byte) DTV_BLIT_XOR ← (byte/signed byte/word/signed word/dword/signed dword) 32
Eliminating unused variable (byte) DTV_BLIT_XNOR and assignment [150] (byte) DTV_BLIT_XNOR ← (byte/signed byte/word/signed word/dword/signed dword) 40
Eliminating unused variable (byte) DTV_BLIT_ADD and assignment [151] (byte) DTV_BLIT_ADD ← (byte/signed byte/word/signed word/dword/signed dword) 48
Eliminating unused variable (byte) DTV_BLIT_SUB and assignment [152] (byte) DTV_BLIT_SUB ← (byte/signed byte/word/signed word/dword/signed dword) 56
Eliminating unused variable (byte*) DTV_BLITTER_CONTROL2 and assignment [153] (byte*) DTV_BLITTER_CONTROL2 ← ((byte*)) (word/dword/signed dword) 54079
Eliminating unused variable (byte) DTV_BLIT_CLEAR_IRQ and assignment [154] (byte) DTV_BLIT_CLEAR_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_SRCA_CONT and assignment [155] (byte) DTV_BLIT_SRCA_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_SRCB_CONT and assignment [156] (byte) DTV_BLIT_SRCB_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_DEST_CONT and assignment [157] (byte) DTV_BLIT_DEST_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) DTV_BLIT_STATUS_BUSY and assignment [158] (byte) DTV_BLIT_STATUS_BUSY ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_STATUS_IRQ and assignment [159] (byte) DTV_BLIT_STATUS_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte*) IRQ_STATUS and assignment [40] (byte*) IRQ_STATUS ← ((byte*)) (word/dword/signed dword) 53273
Eliminating unused variable (byte*) IRQ_ENABLE and assignment [41] (byte*) IRQ_ENABLE ← ((byte*)) (word/dword/signed dword) 53274
Eliminating unused variable (byte) IRQ_RASTER and assignment [42] (byte) IRQ_RASTER ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) IRQ_COLLISION_BG and assignment [43] (byte) IRQ_COLLISION_BG ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) IRQ_COLLISION_SPRITE and assignment [44] (byte) IRQ_COLLISION_SPRITE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) IRQ_LIGHTPEN and assignment [45] (byte) IRQ_LIGHTPEN ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte*) COLS and assignment [46] (byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
Eliminating unused variable (byte*) CIA1_PORT_A and assignment [47] (byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
Eliminating unused variable (byte*) CIA1_PORT_B and assignment [48] (byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
Eliminating unused variable (byte*) CIA1_PORT_A_DDR and assignment [49] (byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
Eliminating unused variable (byte*) CIA1_PORT_B_DDR and assignment [50] (byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
Eliminating unused variable (byte*) CIA1_INTERRUPT and assignment [51] (byte*) CIA1_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56333
Eliminating unused variable (byte) CIA_INTERRUPT_CLEAR and assignment [52] (byte) CIA_INTERRUPT_CLEAR ← (byte/signed byte/word/signed word/dword/signed dword) 127
Eliminating unused variable (byte*) CIA2_PORT_A and assignment [53] (byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
Eliminating unused variable (byte*) CIA2_PORT_B and assignment [54] (byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
Eliminating unused variable (byte*) CIA2_PORT_A_DDR and assignment [55] (byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
Eliminating unused variable (byte*) CIA2_PORT_B_DDR and assignment [56] (byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
Eliminating unused variable (byte*) CIA2_INTERRUPT and assignment [57] (byte*) CIA2_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56589
Eliminating unused variable (void()**) KERNEL_IRQ and assignment [58] (void()**) KERNEL_IRQ ← ((void()**)) (word/signed word/dword/signed dword) 788
Eliminating unused variable (void()**) HARDWARE_IRQ and assignment [59] (void()**) HARDWARE_IRQ ← ((void()**)) (word/dword/signed dword) 65534
Eliminating unused variable (byte) BLACK and assignment [60] (byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) WHITE and assignment [61] (byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) RED and assignment [62] (byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) CYAN and assignment [63] (byte) CYAN ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) PURPLE and assignment [64] (byte) PURPLE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) GREEN and assignment [65] (byte) GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) BLUE and assignment [66] (byte) BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) YELLOW and assignment [67] (byte) YELLOW ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) ORANGE and assignment [68] (byte) ORANGE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) BROWN and assignment [69] (byte) BROWN ← (byte/signed byte/word/signed word/dword/signed dword) 9
Eliminating unused variable (byte) PINK and assignment [70] (byte) PINK ← (byte/signed byte/word/signed word/dword/signed dword) 10
Eliminating unused variable (byte) DARK_GREY and assignment [71] (byte) DARK_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 11
Eliminating unused variable (byte) GREY and assignment [72] (byte) GREY ← (byte/signed byte/word/signed word/dword/signed dword) 12
Eliminating unused variable (byte) LIGHT_GREEN and assignment [73] (byte) LIGHT_GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 13
Eliminating unused variable (byte) LIGHT_BLUE and assignment [74] (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 14
Eliminating unused variable (byte) LIGHT_GREY and assignment [75] (byte) LIGHT_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable (byte) DTV_FEATURE_DISABLE_TIL_RESET and assignment [78] (byte) DTV_FEATURE_DISABLE_TIL_RESET ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_LINEAR and assignment [80] (byte) DTV_LINEAR ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_OVERSCAN and assignment [83] (byte) DTV_OVERSCAN ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) DTV_COLORRAM_OFF and assignment [84] (byte) DTV_COLORRAM_OFF ← (byte/signed byte/word/signed word/dword/signed dword) 16
Eliminating unused variable (byte) DTV_CHUNKY and assignment [86] (byte) DTV_CHUNKY ← (byte/signed byte/word/signed word/dword/signed dword) 64
Eliminating unused variable (byte[16]) DTV_PALETTE_DEFAULT and assignment [88] (byte[16]) DTV_PALETTE_DEFAULT ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 54, (byte/word/signed word/dword/signed dword) 190, (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/word/signed word/dword/signed dword) 219, (byte/word/signed word/dword/signed dword) 134, (byte/word/signed word/dword/signed dword) 255, (byte/signed byte/word/signed word/dword/signed dword) 41, (byte/signed byte/word/signed word/dword/signed dword) 38, (byte/signed byte/word/signed word/dword/signed dword) 59, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 154, (byte/signed byte/word/signed word/dword/signed dword) 10 }
Eliminating unused variable (byte*) DTV_PLANEA_START_LO and assignment [89] (byte*) DTV_PLANEA_START_LO ← ((byte*)) (word/dword/signed dword) 53306
Eliminating unused variable (byte*) DTV_PLANEA_START_MI and assignment [90] (byte*) DTV_PLANEA_START_MI ← ((byte*)) (word/dword/signed dword) 53307
Eliminating unused variable (byte*) DTV_PLANEA_START_HI and assignment [91] (byte*) DTV_PLANEA_START_HI ← ((byte*)) (word/dword/signed dword) 53317
Eliminating unused variable (byte*) DTV_PLANEA_STEP and assignment [92] (byte*) DTV_PLANEA_STEP ← ((byte*)) (word/dword/signed dword) 53318
Eliminating unused variable (byte*) DTV_PLANEA_MODULO_LO and assignment [93] (byte*) DTV_PLANEA_MODULO_LO ← ((byte*)) (word/dword/signed dword) 53304
Eliminating unused variable (byte*) DTV_PLANEA_MODULO_HI and assignment [94] (byte*) DTV_PLANEA_MODULO_HI ← ((byte*)) (word/dword/signed dword) 53305
Eliminating unused variable (byte*) DTV_PLANEB_START_LO and assignment [95] (byte*) DTV_PLANEB_START_LO ← ((byte*)) (word/dword/signed dword) 53321
Eliminating unused variable (byte*) DTV_PLANEB_START_MI and assignment [96] (byte*) DTV_PLANEB_START_MI ← ((byte*)) (word/dword/signed dword) 53322
Eliminating unused variable (byte*) DTV_PLANEB_START_HI and assignment [97] (byte*) DTV_PLANEB_START_HI ← ((byte*)) (word/dword/signed dword) 53323
Eliminating unused variable (byte*) DTV_PLANEB_STEP and assignment [98] (byte*) DTV_PLANEB_STEP ← ((byte*)) (word/dword/signed dword) 53324
Eliminating unused variable (byte*) DTV_PLANEB_MODULO_LO and assignment [99] (byte*) DTV_PLANEB_MODULO_LO ← ((byte*)) (word/dword/signed dword) 53319
Eliminating unused variable (byte*) DTV_PLANEB_MODULO_HI and assignment [100] (byte*) DTV_PLANEB_MODULO_HI ← ((byte*)) (word/dword/signed dword) 53320
Eliminating unused variable (byte*) DTV_SPRITE_BANK and assignment [101] (byte*) DTV_SPRITE_BANK ← ((byte*)) (word/dword/signed dword) 53325
Eliminating unused variable (byte*) DTV_COLOR_BANK_LO and assignment [102] (byte*) DTV_COLOR_BANK_LO ← ((byte*)) (word/dword/signed dword) 53302
Eliminating unused variable (byte*) DTV_COLOR_BANK_HI and assignment [103] (byte*) DTV_COLOR_BANK_HI ← ((byte*)) (word/dword/signed dword) 53303
Eliminating unused variable (dword) DTV_COLOR_BANK_DEFAULT and assignment [104] (dword) DTV_COLOR_BANK_DEFAULT ← (dword/signed dword) 120832
Eliminating unused variable (byte*) DTV_GRAPHICS_VIC_BANK and assignment [105] (byte*) DTV_GRAPHICS_VIC_BANK ← ((byte*)) (word/dword/signed dword) 53309
Eliminating unused variable (byte*) DTV_GRAPHICS_HICOL_BANK and assignment [106] (byte*) DTV_GRAPHICS_HICOL_BANK ← ((byte*)) (word/dword/signed dword) 53310
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_LO and assignment [107] (byte*) DTV_BLITTER_SRCA_LO ← ((byte*)) (word/dword/signed dword) 54048
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_MI and assignment [108] (byte*) DTV_BLITTER_SRCA_MI ← ((byte*)) (word/dword/signed dword) 54049
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_HI and assignment [109] (byte*) DTV_BLITTER_SRCA_HI ← ((byte*)) (word/dword/signed dword) 54050
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_MOD_LO and assignment [110] (byte*) DTV_BLITTER_SRCA_MOD_LO ← ((byte*)) (word/dword/signed dword) 54051
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_MOD_HI and assignment [111] (byte*) DTV_BLITTER_SRCA_MOD_HI ← ((byte*)) (word/dword/signed dword) 54052
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_LIN_LO and assignment [112] (byte*) DTV_BLITTER_SRCA_LIN_LO ← ((byte*)) (word/dword/signed dword) 54053
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_LIN_HI and assignment [113] (byte*) DTV_BLITTER_SRCA_LIN_HI ← ((byte*)) (word/dword/signed dword) 54054
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_STEP and assignment [114] (byte*) DTV_BLITTER_SRCA_STEP ← ((byte*)) (word/dword/signed dword) 54055
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_LO and assignment [115] (byte*) DTV_BLITTER_SRCB_LO ← ((byte*)) (word/dword/signed dword) 54056
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_MI and assignment [116] (byte*) DTV_BLITTER_SRCB_MI ← ((byte*)) (word/dword/signed dword) 54057
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_HI and assignment [117] (byte*) DTV_BLITTER_SRCB_HI ← ((byte*)) (word/dword/signed dword) 54058
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_MOD_LO and assignment [118] (byte*) DTV_BLITTER_SRCB_MOD_LO ← ((byte*)) (word/dword/signed dword) 54059
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_MOD_HI and assignment [119] (byte*) DTV_BLITTER_SRCB_MOD_HI ← ((byte*)) (word/dword/signed dword) 54060
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_LIN_LO and assignment [120] (byte*) DTV_BLITTER_SRCB_LIN_LO ← ((byte*)) (word/dword/signed dword) 54061
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_LIN_HI and assignment [121] (byte*) DTV_BLITTER_SRCB_LIN_HI ← ((byte*)) (word/dword/signed dword) 54062
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_STEP and assignment [122] (byte*) DTV_BLITTER_SRCB_STEP ← ((byte*)) (word/dword/signed dword) 54063
Eliminating unused variable (byte*) DTV_BLITTER_DEST_LO and assignment [123] (byte*) DTV_BLITTER_DEST_LO ← ((byte*)) (word/dword/signed dword) 54064
Eliminating unused variable (byte*) DTV_BLITTER_DEST_MI and assignment [124] (byte*) DTV_BLITTER_DEST_MI ← ((byte*)) (word/dword/signed dword) 54065
Eliminating unused variable (byte*) DTV_BLITTER_DEST_HI and assignment [125] (byte*) DTV_BLITTER_DEST_HI ← ((byte*)) (word/dword/signed dword) 54066
Eliminating unused variable (byte*) DTV_BLITTER_DEST_MOD_LO and assignment [126] (byte*) DTV_BLITTER_DEST_MOD_LO ← ((byte*)) (word/dword/signed dword) 54067
Eliminating unused variable (byte*) DTV_BLITTER_DEST_MOD_HI and assignment [127] (byte*) DTV_BLITTER_DEST_MOD_HI ← ((byte*)) (word/dword/signed dword) 54068
Eliminating unused variable (byte*) DTV_BLITTER_DEST_LIN_LO and assignment [128] (byte*) DTV_BLITTER_DEST_LIN_LO ← ((byte*)) (word/dword/signed dword) 54069
Eliminating unused variable (byte*) DTV_BLITTER_DEST_LIN_HI and assignment [129] (byte*) DTV_BLITTER_DEST_LIN_HI ← ((byte*)) (word/dword/signed dword) 54070
Eliminating unused variable (byte*) DTV_BLITTER_DEST_STEP and assignment [130] (byte*) DTV_BLITTER_DEST_STEP ← ((byte*)) (word/dword/signed dword) 54071
Eliminating unused variable (byte*) DTV_BLITTER_LEN_LO and assignment [131] (byte*) DTV_BLITTER_LEN_LO ← ((byte*)) (word/dword/signed dword) 54072
Eliminating unused variable (byte*) DTV_BLITTER_LEN_HI and assignment [132] (byte*) DTV_BLITTER_LEN_HI ← ((byte*)) (word/dword/signed dword) 54073
Eliminating unused variable (byte*) DTV_BLITTER_CONTROL and assignment [133] (byte*) DTV_BLITTER_CONTROL ← ((byte*)) (word/dword/signed dword) 54074
Eliminating unused variable (byte) DTV_BLIT_FORCE_START and assignment [134] (byte) DTV_BLIT_FORCE_START ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_SRCA_FWD and assignment [135] (byte) DTV_BLIT_SRCA_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_SRCB_FWD and assignment [136] (byte) DTV_BLIT_SRCB_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_DEST_FWD and assignment [137] (byte) DTV_BLIT_DEST_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) DTV_BLIT_VIC_IRQ and assignment [138] (byte) DTV_BLIT_VIC_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 16
Eliminating unused variable (byte) DTV_BLIT_CIA_IRQ and assignment [139] (byte) DTV_BLIT_CIA_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 32
Eliminating unused variable (byte) DTV_BLIT_VBLANK and assignment [140] (byte) DTV_BLIT_VBLANK ← (byte/signed byte/word/signed word/dword/signed dword) 64
Eliminating unused variable (byte) DTV_BLIT_IRQ_EN and assignment [141] (byte) DTV_BLIT_IRQ_EN ← (byte/word/signed word/dword/signed dword) 128
Eliminating unused variable (byte*) DTV_BLITTER_TRANSPARANCY and assignment [142] (byte*) DTV_BLITTER_TRANSPARANCY ← ((byte*)) (word/dword/signed dword) 54075
Eliminating unused variable (byte) DTV_BLIT_DISABLE_B and assignment [143] (byte) DTV_BLIT_DISABLE_B ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_WRITE_TRANSPARENT and assignment [144] (byte) DTV_BLIT_WRITE_TRANSPARENT ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_WRITE_NONTRANSPARENT and assignment [145] (byte) DTV_BLIT_WRITE_NONTRANSPARENT ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_TRANSPARANCY_NONE and assignment [146] (byte) DTV_BLIT_TRANSPARANCY_NONE ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte*) DTV_BLITTER_ALU and assignment [147] (byte*) DTV_BLITTER_ALU ← ((byte*)) (word/dword/signed dword) 54078
Eliminating unused variable (byte) DTV_BLIT_SHIFT0 and assignment [148] (byte) DTV_BLIT_SHIFT0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) DTV_BLIT_SHIFT1 and assignment [149] (byte) DTV_BLIT_SHIFT1 ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_SHIFT2 and assignment [150] (byte) DTV_BLIT_SHIFT2 ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_SHIFT3 and assignment [151] (byte) DTV_BLIT_SHIFT3 ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) DTV_BLIT_SHIFT4 and assignment [152] (byte) DTV_BLIT_SHIFT4 ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_SHIFT5 and assignment [153] (byte) DTV_BLIT_SHIFT5 ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) DTV_BLIT_SHIFT6 and assignment [154] (byte) DTV_BLIT_SHIFT6 ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) DTV_BLIT_SHIFT7 and assignment [155] (byte) DTV_BLIT_SHIFT7 ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) DTV_BLIT_AND and assignment [156] (byte) DTV_BLIT_AND ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) DTV_BLIT_NAND and assignment [157] (byte) DTV_BLIT_NAND ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) DTV_BLIT_NOR and assignment [158] (byte) DTV_BLIT_NOR ← (byte/signed byte/word/signed word/dword/signed dword) 16
Eliminating unused variable (byte) DTV_BLIT_OR and assignment [159] (byte) DTV_BLIT_OR ← (byte/signed byte/word/signed word/dword/signed dword) 24
Eliminating unused variable (byte) DTV_BLIT_XOR and assignment [160] (byte) DTV_BLIT_XOR ← (byte/signed byte/word/signed word/dword/signed dword) 32
Eliminating unused variable (byte) DTV_BLIT_XNOR and assignment [161] (byte) DTV_BLIT_XNOR ← (byte/signed byte/word/signed word/dword/signed dword) 40
Eliminating unused variable (byte) DTV_BLIT_ADD and assignment [162] (byte) DTV_BLIT_ADD ← (byte/signed byte/word/signed word/dword/signed dword) 48
Eliminating unused variable (byte) DTV_BLIT_SUB and assignment [163] (byte) DTV_BLIT_SUB ← (byte/signed byte/word/signed word/dword/signed dword) 56
Eliminating unused variable (byte*) DTV_BLITTER_CONTROL2 and assignment [164] (byte*) DTV_BLITTER_CONTROL2 ← ((byte*)) (word/dword/signed dword) 54079
Eliminating unused variable (byte) DTV_BLIT_CLEAR_IRQ and assignment [165] (byte) DTV_BLIT_CLEAR_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_SRCA_CONT and assignment [166] (byte) DTV_BLIT_SRCA_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_SRCB_CONT and assignment [167] (byte) DTV_BLIT_SRCB_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_DEST_CONT and assignment [168] (byte) DTV_BLIT_DEST_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) DTV_BLIT_STATUS_BUSY and assignment [169] (byte) DTV_BLIT_STATUS_BUSY ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_STATUS_IRQ and assignment [170] (byte) DTV_BLIT_STATUS_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 2
Removing empty block @1
Removing empty block @2
Removing empty block @4

View File

@ -1039,6 +1039,13 @@ const byte VIC_CSEL = %00001000;
const byte* D018 = $d018;
const byte* VIC_MEMORY = $d018;
const byte* IRQ_STATUS = $d019;
const byte* IRQ_ENABLE = $d01a;
const byte IRQ_RASTER = %00000001;
const byte IRQ_COLLISION_BG = %00000010;
const byte IRQ_COLLISION_SPRITE = %00000100;
const byte IRQ_LIGHTPEN = %00001000;
const byte* COLS = $d800;
// CIA#1 Port A: keyboard matrix columns and joystick #2
@ -1049,6 +1056,10 @@ const byte* CIA1_PORT_B = $dc01;
const byte* CIA1_PORT_A_DDR = $dc02;
// CIA #1 Port B data direction register.
const byte* CIA1_PORT_B_DDR = $dc03;
// CIA#1 Interrupt Status & Control Register
const byte* CIA1_INTERRUPT = $dc0d;
// Value that disables all CIA interrupts when stored to the CIA Interrupt registers
const byte CIA_INTERRUPT_CLEAR = $7f;
// CIA#2 Port A: Serial bus, RS-232, VIC memory bank
const byte* CIA2_PORT_A = $dd00;
@ -1058,6 +1069,14 @@ const byte* CIA2_PORT_B = $dd01;
const byte* CIA2_PORT_A_DDR = $dd02;
// CIA #2 Port B data direction register.
const byte* CIA2_PORT_B_DDR = $dd03;
// CIA#2 Interrupt Status & Control Register
const byte* CIA2_INTERRUPT = $dd0d;
// The vector used when the KERNAL serves IRQ interrupts
const void()** KERNEL_IRQ = $0314;
// The vector used when the HARDWARE serves IRQ interrupts
const void()** HARDWARE_IRQ = $fffe;
const byte BLACK = $0;
const byte WHITE = $1;
@ -1794,14 +1813,17 @@ SYMBOLS
(byte*) BORDERCOL
(byte) BROWN
(byte*) CHARGEN
(byte*) CIA1_INTERRUPT
(byte*) CIA1_PORT_A
(byte*) CIA1_PORT_A_DDR
(byte*) CIA1_PORT_B
(byte*) CIA1_PORT_B_DDR
(byte*) CIA2_INTERRUPT
(byte*) CIA2_PORT_A
(byte*) CIA2_PORT_A_DDR
(byte*) CIA2_PORT_B
(byte*) CIA2_PORT_B_DDR
(byte) CIA_INTERRUPT_CLEAR
(byte*) COLS
(byte) CYAN
(byte*) D011
@ -1910,6 +1932,14 @@ SYMBOLS
(byte[]) FORM_TEXT
(byte) GREEN
(byte) GREY
(void()**) HARDWARE_IRQ
(byte) IRQ_COLLISION_BG
(byte) IRQ_COLLISION_SPRITE
(byte*) IRQ_ENABLE
(byte) IRQ_LIGHTPEN
(byte) IRQ_RASTER
(byte*) IRQ_STATUS
(void()**) KERNEL_IRQ
(byte) KEY_0
(byte) KEY_1
(byte) KEY_2
@ -3463,15 +3493,21 @@ Promoting word/dword/signed dword to byte* in VIC_CONTROL2 ← ((byte*)) 53270
Promoting word/dword/signed dword to byte* in D016 ← ((byte*)) 53270
Promoting word/dword/signed dword to byte* in D018 ← ((byte*)) 53272
Promoting word/dword/signed dword to byte* in VIC_MEMORY ← ((byte*)) 53272
Promoting word/dword/signed dword to byte* in IRQ_STATUS ← ((byte*)) 53273
Promoting word/dword/signed dword to byte* in IRQ_ENABLE ← ((byte*)) 53274
Promoting word/dword/signed dword to byte* in COLS ← ((byte*)) 55296
Promoting word/dword/signed dword to byte* in CIA1_PORT_A ← ((byte*)) 56320
Promoting word/dword/signed dword to byte* in CIA1_PORT_B ← ((byte*)) 56321
Promoting word/dword/signed dword to byte* in CIA1_PORT_A_DDR ← ((byte*)) 56322
Promoting word/dword/signed dword to byte* in CIA1_PORT_B_DDR ← ((byte*)) 56323
Promoting word/dword/signed dword to byte* in CIA1_INTERRUPT ← ((byte*)) 56333
Promoting word/dword/signed dword to byte* in CIA2_PORT_A ← ((byte*)) 56576
Promoting word/dword/signed dword to byte* in CIA2_PORT_B ← ((byte*)) 56577
Promoting word/dword/signed dword to byte* in CIA2_PORT_A_DDR ← ((byte*)) 56578
Promoting word/dword/signed dword to byte* in CIA2_PORT_B_DDR ← ((byte*)) 56579
Promoting word/dword/signed dword to byte* in CIA2_INTERRUPT ← ((byte*)) 56589
Promoting word/signed word/dword/signed dword to void()** in KERNEL_IRQ ← ((void()**)) 788
Promoting word/dword/signed dword to void()** in HARDWARE_IRQ ← ((void()**)) 65534
Promoting word/dword/signed dword to byte* in DTV_FEATURE ← ((byte*)) 53311
Promoting word/dword/signed dword to byte* in DTV_CONTROL ← ((byte*)) 53308
Promoting word/dword/signed dword to byte* in DTV_PALETTE ← ((byte*)) 53760
@ -3584,15 +3620,26 @@ INITIAL CONTROL FLOW GRAPH
(byte) VIC_CSEL ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte*) D018 ← ((byte*)) (word/dword/signed dword) 53272
(byte*) VIC_MEMORY ← ((byte*)) (word/dword/signed dword) 53272
(byte*) IRQ_STATUS ← ((byte*)) (word/dword/signed dword) 53273
(byte*) IRQ_ENABLE ← ((byte*)) (word/dword/signed dword) 53274
(byte) IRQ_RASTER ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) IRQ_COLLISION_BG ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) IRQ_COLLISION_SPRITE ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) IRQ_LIGHTPEN ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
(byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
(byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
(byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
(byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
(byte*) CIA1_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56333
(byte) CIA_INTERRUPT_CLEAR ← (byte/signed byte/word/signed word/dword/signed dword) 127
(byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
(byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
(byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
(byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
(byte*) CIA2_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56589
(void()**) KERNEL_IRQ ← ((void()**)) (word/signed word/dword/signed dword) 788
(void()**) HARDWARE_IRQ ← ((void()**)) (word/dword/signed dword) 65534
(byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
@ -6482,102 +6529,113 @@ Eliminating unused variable (byte*) D011 and assignment [28] (byte*) D011 ← ((
Eliminating unused variable (byte) VIC_RST8 and assignment [29] (byte) VIC_RST8 ← (byte/word/signed word/dword/signed dword) 128
Eliminating unused variable (byte*) D016 and assignment [35] (byte*) D016 ← ((byte*)) (word/dword/signed dword) 53270
Eliminating unused variable (byte*) D018 and assignment [38] (byte*) D018 ← ((byte*)) (word/dword/signed dword) 53272
Eliminating unused variable (byte*) CIA2_PORT_B and assignment [46] (byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
Eliminating unused variable (byte*) CIA2_PORT_B_DDR and assignment [48] (byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
Eliminating unused variable (byte) BLACK and assignment [49] (byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) WHITE and assignment [50] (byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) RED and assignment [51] (byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) CYAN and assignment [52] (byte) CYAN ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) PURPLE and assignment [53] (byte) PURPLE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) GREEN and assignment [54] (byte) GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) BLUE and assignment [55] (byte) BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) YELLOW and assignment [56] (byte) YELLOW ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) ORANGE and assignment [57] (byte) ORANGE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) BROWN and assignment [58] (byte) BROWN ← (byte/signed byte/word/signed word/dword/signed dword) 9
Eliminating unused variable (byte) PINK and assignment [59] (byte) PINK ← (byte/signed byte/word/signed word/dword/signed dword) 10
Eliminating unused variable (byte) DARK_GREY and assignment [60] (byte) DARK_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 11
Eliminating unused variable (byte) GREY and assignment [61] (byte) GREY ← (byte/signed byte/word/signed word/dword/signed dword) 12
Eliminating unused variable (byte) LIGHT_GREEN and assignment [62] (byte) LIGHT_GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 13
Eliminating unused variable (byte) LIGHT_BLUE and assignment [63] (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 14
Eliminating unused variable (byte) LIGHT_GREY and assignment [64] (byte) LIGHT_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable (byte) DTV_FEATURE_DISABLE_TIL_RESET and assignment [67] (byte) DTV_FEATURE_DISABLE_TIL_RESET ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BADLINE_OFF and assignment [74] (byte) DTV_BADLINE_OFF ← (byte/signed byte/word/signed word/dword/signed dword) 32
Eliminating unused variable (byte*) DTV_SPRITE_BANK and assignment [90] (byte*) DTV_SPRITE_BANK ← ((byte*)) (word/dword/signed dword) 53325
Eliminating unused variable (byte*) DTV_GRAPHICS_HICOL_BANK and assignment [95] (byte*) DTV_GRAPHICS_HICOL_BANK ← ((byte*)) (word/dword/signed dword) 53310
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_LO and assignment [100] (byte*) DTV_BLITTER_SRCA_LO ← ((byte*)) (word/dword/signed dword) 54048
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_MI and assignment [101] (byte*) DTV_BLITTER_SRCA_MI ← ((byte*)) (word/dword/signed dword) 54049
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_HI and assignment [102] (byte*) DTV_BLITTER_SRCA_HI ← ((byte*)) (word/dword/signed dword) 54050
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_MOD_LO and assignment [103] (byte*) DTV_BLITTER_SRCA_MOD_LO ← ((byte*)) (word/dword/signed dword) 54051
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_MOD_HI and assignment [104] (byte*) DTV_BLITTER_SRCA_MOD_HI ← ((byte*)) (word/dword/signed dword) 54052
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_LIN_LO and assignment [105] (byte*) DTV_BLITTER_SRCA_LIN_LO ← ((byte*)) (word/dword/signed dword) 54053
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_LIN_HI and assignment [106] (byte*) DTV_BLITTER_SRCA_LIN_HI ← ((byte*)) (word/dword/signed dword) 54054
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_STEP and assignment [107] (byte*) DTV_BLITTER_SRCA_STEP ← ((byte*)) (word/dword/signed dword) 54055
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_LO and assignment [108] (byte*) DTV_BLITTER_SRCB_LO ← ((byte*)) (word/dword/signed dword) 54056
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_MI and assignment [109] (byte*) DTV_BLITTER_SRCB_MI ← ((byte*)) (word/dword/signed dword) 54057
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_HI and assignment [110] (byte*) DTV_BLITTER_SRCB_HI ← ((byte*)) (word/dword/signed dword) 54058
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_MOD_LO and assignment [111] (byte*) DTV_BLITTER_SRCB_MOD_LO ← ((byte*)) (word/dword/signed dword) 54059
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_MOD_HI and assignment [112] (byte*) DTV_BLITTER_SRCB_MOD_HI ← ((byte*)) (word/dword/signed dword) 54060
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_LIN_LO and assignment [113] (byte*) DTV_BLITTER_SRCB_LIN_LO ← ((byte*)) (word/dword/signed dword) 54061
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_LIN_HI and assignment [114] (byte*) DTV_BLITTER_SRCB_LIN_HI ← ((byte*)) (word/dword/signed dword) 54062
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_STEP and assignment [115] (byte*) DTV_BLITTER_SRCB_STEP ← ((byte*)) (word/dword/signed dword) 54063
Eliminating unused variable (byte*) DTV_BLITTER_DEST_LO and assignment [116] (byte*) DTV_BLITTER_DEST_LO ← ((byte*)) (word/dword/signed dword) 54064
Eliminating unused variable (byte*) DTV_BLITTER_DEST_MI and assignment [117] (byte*) DTV_BLITTER_DEST_MI ← ((byte*)) (word/dword/signed dword) 54065
Eliminating unused variable (byte*) DTV_BLITTER_DEST_HI and assignment [118] (byte*) DTV_BLITTER_DEST_HI ← ((byte*)) (word/dword/signed dword) 54066
Eliminating unused variable (byte*) DTV_BLITTER_DEST_MOD_LO and assignment [119] (byte*) DTV_BLITTER_DEST_MOD_LO ← ((byte*)) (word/dword/signed dword) 54067
Eliminating unused variable (byte*) DTV_BLITTER_DEST_MOD_HI and assignment [120] (byte*) DTV_BLITTER_DEST_MOD_HI ← ((byte*)) (word/dword/signed dword) 54068
Eliminating unused variable (byte*) DTV_BLITTER_DEST_LIN_LO and assignment [121] (byte*) DTV_BLITTER_DEST_LIN_LO ← ((byte*)) (word/dword/signed dword) 54069
Eliminating unused variable (byte*) DTV_BLITTER_DEST_LIN_HI and assignment [122] (byte*) DTV_BLITTER_DEST_LIN_HI ← ((byte*)) (word/dword/signed dword) 54070
Eliminating unused variable (byte*) DTV_BLITTER_DEST_STEP and assignment [123] (byte*) DTV_BLITTER_DEST_STEP ← ((byte*)) (word/dword/signed dword) 54071
Eliminating unused variable (byte*) DTV_BLITTER_LEN_LO and assignment [124] (byte*) DTV_BLITTER_LEN_LO ← ((byte*)) (word/dword/signed dword) 54072
Eliminating unused variable (byte*) DTV_BLITTER_LEN_HI and assignment [125] (byte*) DTV_BLITTER_LEN_HI ← ((byte*)) (word/dword/signed dword) 54073
Eliminating unused variable (byte*) DTV_BLITTER_CONTROL and assignment [126] (byte*) DTV_BLITTER_CONTROL ← ((byte*)) (word/dword/signed dword) 54074
Eliminating unused variable (byte) DTV_BLIT_FORCE_START and assignment [127] (byte) DTV_BLIT_FORCE_START ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_SRCA_FWD and assignment [128] (byte) DTV_BLIT_SRCA_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_SRCB_FWD and assignment [129] (byte) DTV_BLIT_SRCB_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_DEST_FWD and assignment [130] (byte) DTV_BLIT_DEST_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) DTV_BLIT_VIC_IRQ and assignment [131] (byte) DTV_BLIT_VIC_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 16
Eliminating unused variable (byte) DTV_BLIT_CIA_IRQ and assignment [132] (byte) DTV_BLIT_CIA_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 32
Eliminating unused variable (byte) DTV_BLIT_VBLANK and assignment [133] (byte) DTV_BLIT_VBLANK ← (byte/signed byte/word/signed word/dword/signed dword) 64
Eliminating unused variable (byte) DTV_BLIT_IRQ_EN and assignment [134] (byte) DTV_BLIT_IRQ_EN ← (byte/word/signed word/dword/signed dword) 128
Eliminating unused variable (byte*) DTV_BLITTER_TRANSPARANCY and assignment [135] (byte*) DTV_BLITTER_TRANSPARANCY ← ((byte*)) (word/dword/signed dword) 54075
Eliminating unused variable (byte) DTV_BLIT_DISABLE_B and assignment [136] (byte) DTV_BLIT_DISABLE_B ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_WRITE_TRANSPARENT and assignment [137] (byte) DTV_BLIT_WRITE_TRANSPARENT ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_WRITE_NONTRANSPARENT and assignment [138] (byte) DTV_BLIT_WRITE_NONTRANSPARENT ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_TRANSPARANCY_NONE and assignment [139] (byte) DTV_BLIT_TRANSPARANCY_NONE ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte*) DTV_BLITTER_ALU and assignment [140] (byte*) DTV_BLITTER_ALU ← ((byte*)) (word/dword/signed dword) 54078
Eliminating unused variable (byte) DTV_BLIT_SHIFT0 and assignment [141] (byte) DTV_BLIT_SHIFT0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) DTV_BLIT_SHIFT1 and assignment [142] (byte) DTV_BLIT_SHIFT1 ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_SHIFT2 and assignment [143] (byte) DTV_BLIT_SHIFT2 ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_SHIFT3 and assignment [144] (byte) DTV_BLIT_SHIFT3 ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) DTV_BLIT_SHIFT4 and assignment [145] (byte) DTV_BLIT_SHIFT4 ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_SHIFT5 and assignment [146] (byte) DTV_BLIT_SHIFT5 ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) DTV_BLIT_SHIFT6 and assignment [147] (byte) DTV_BLIT_SHIFT6 ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) DTV_BLIT_SHIFT7 and assignment [148] (byte) DTV_BLIT_SHIFT7 ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) DTV_BLIT_AND and assignment [149] (byte) DTV_BLIT_AND ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) DTV_BLIT_NAND and assignment [150] (byte) DTV_BLIT_NAND ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) DTV_BLIT_NOR and assignment [151] (byte) DTV_BLIT_NOR ← (byte/signed byte/word/signed word/dword/signed dword) 16
Eliminating unused variable (byte) DTV_BLIT_OR and assignment [152] (byte) DTV_BLIT_OR ← (byte/signed byte/word/signed word/dword/signed dword) 24
Eliminating unused variable (byte) DTV_BLIT_XOR and assignment [153] (byte) DTV_BLIT_XOR ← (byte/signed byte/word/signed word/dword/signed dword) 32
Eliminating unused variable (byte) DTV_BLIT_XNOR and assignment [154] (byte) DTV_BLIT_XNOR ← (byte/signed byte/word/signed word/dword/signed dword) 40
Eliminating unused variable (byte) DTV_BLIT_ADD and assignment [155] (byte) DTV_BLIT_ADD ← (byte/signed byte/word/signed word/dword/signed dword) 48
Eliminating unused variable (byte) DTV_BLIT_SUB and assignment [156] (byte) DTV_BLIT_SUB ← (byte/signed byte/word/signed word/dword/signed dword) 56
Eliminating unused variable (byte*) DTV_BLITTER_CONTROL2 and assignment [157] (byte*) DTV_BLITTER_CONTROL2 ← ((byte*)) (word/dword/signed dword) 54079
Eliminating unused variable (byte) DTV_BLIT_CLEAR_IRQ and assignment [158] (byte) DTV_BLIT_CLEAR_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_SRCA_CONT and assignment [159] (byte) DTV_BLIT_SRCA_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_SRCB_CONT and assignment [160] (byte) DTV_BLIT_SRCB_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_DEST_CONT and assignment [161] (byte) DTV_BLIT_DEST_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) DTV_BLIT_STATUS_BUSY and assignment [162] (byte) DTV_BLIT_STATUS_BUSY ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_STATUS_IRQ and assignment [163] (byte) DTV_BLIT_STATUS_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte*) IRQ_STATUS and assignment [40] (byte*) IRQ_STATUS ← ((byte*)) (word/dword/signed dword) 53273
Eliminating unused variable (byte*) IRQ_ENABLE and assignment [41] (byte*) IRQ_ENABLE ← ((byte*)) (word/dword/signed dword) 53274
Eliminating unused variable (byte) IRQ_RASTER and assignment [42] (byte) IRQ_RASTER ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) IRQ_COLLISION_BG and assignment [43] (byte) IRQ_COLLISION_BG ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) IRQ_COLLISION_SPRITE and assignment [44] (byte) IRQ_COLLISION_SPRITE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) IRQ_LIGHTPEN and assignment [45] (byte) IRQ_LIGHTPEN ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte*) CIA1_INTERRUPT and assignment [51] (byte*) CIA1_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56333
Eliminating unused variable (byte) CIA_INTERRUPT_CLEAR and assignment [52] (byte) CIA_INTERRUPT_CLEAR ← (byte/signed byte/word/signed word/dword/signed dword) 127
Eliminating unused variable (byte*) CIA2_PORT_B and assignment [54] (byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
Eliminating unused variable (byte*) CIA2_PORT_B_DDR and assignment [56] (byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
Eliminating unused variable (byte*) CIA2_INTERRUPT and assignment [57] (byte*) CIA2_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56589
Eliminating unused variable (void()**) KERNEL_IRQ and assignment [58] (void()**) KERNEL_IRQ ← ((void()**)) (word/signed word/dword/signed dword) 788
Eliminating unused variable (void()**) HARDWARE_IRQ and assignment [59] (void()**) HARDWARE_IRQ ← ((void()**)) (word/dword/signed dword) 65534
Eliminating unused variable (byte) BLACK and assignment [60] (byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) WHITE and assignment [61] (byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) RED and assignment [62] (byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) CYAN and assignment [63] (byte) CYAN ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) PURPLE and assignment [64] (byte) PURPLE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) GREEN and assignment [65] (byte) GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) BLUE and assignment [66] (byte) BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) YELLOW and assignment [67] (byte) YELLOW ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) ORANGE and assignment [68] (byte) ORANGE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) BROWN and assignment [69] (byte) BROWN ← (byte/signed byte/word/signed word/dword/signed dword) 9
Eliminating unused variable (byte) PINK and assignment [70] (byte) PINK ← (byte/signed byte/word/signed word/dword/signed dword) 10
Eliminating unused variable (byte) DARK_GREY and assignment [71] (byte) DARK_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 11
Eliminating unused variable (byte) GREY and assignment [72] (byte) GREY ← (byte/signed byte/word/signed word/dword/signed dword) 12
Eliminating unused variable (byte) LIGHT_GREEN and assignment [73] (byte) LIGHT_GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 13
Eliminating unused variable (byte) LIGHT_BLUE and assignment [74] (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 14
Eliminating unused variable (byte) LIGHT_GREY and assignment [75] (byte) LIGHT_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable (byte) DTV_FEATURE_DISABLE_TIL_RESET and assignment [78] (byte) DTV_FEATURE_DISABLE_TIL_RESET ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BADLINE_OFF and assignment [85] (byte) DTV_BADLINE_OFF ← (byte/signed byte/word/signed word/dword/signed dword) 32
Eliminating unused variable (byte*) DTV_SPRITE_BANK and assignment [101] (byte*) DTV_SPRITE_BANK ← ((byte*)) (word/dword/signed dword) 53325
Eliminating unused variable (byte*) DTV_GRAPHICS_HICOL_BANK and assignment [106] (byte*) DTV_GRAPHICS_HICOL_BANK ← ((byte*)) (word/dword/signed dword) 53310
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_LO and assignment [111] (byte*) DTV_BLITTER_SRCA_LO ← ((byte*)) (word/dword/signed dword) 54048
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_MI and assignment [112] (byte*) DTV_BLITTER_SRCA_MI ← ((byte*)) (word/dword/signed dword) 54049
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_HI and assignment [113] (byte*) DTV_BLITTER_SRCA_HI ← ((byte*)) (word/dword/signed dword) 54050
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_MOD_LO and assignment [114] (byte*) DTV_BLITTER_SRCA_MOD_LO ← ((byte*)) (word/dword/signed dword) 54051
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_MOD_HI and assignment [115] (byte*) DTV_BLITTER_SRCA_MOD_HI ← ((byte*)) (word/dword/signed dword) 54052
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_LIN_LO and assignment [116] (byte*) DTV_BLITTER_SRCA_LIN_LO ← ((byte*)) (word/dword/signed dword) 54053
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_LIN_HI and assignment [117] (byte*) DTV_BLITTER_SRCA_LIN_HI ← ((byte*)) (word/dword/signed dword) 54054
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_STEP and assignment [118] (byte*) DTV_BLITTER_SRCA_STEP ← ((byte*)) (word/dword/signed dword) 54055
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_LO and assignment [119] (byte*) DTV_BLITTER_SRCB_LO ← ((byte*)) (word/dword/signed dword) 54056
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_MI and assignment [120] (byte*) DTV_BLITTER_SRCB_MI ← ((byte*)) (word/dword/signed dword) 54057
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_HI and assignment [121] (byte*) DTV_BLITTER_SRCB_HI ← ((byte*)) (word/dword/signed dword) 54058
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_MOD_LO and assignment [122] (byte*) DTV_BLITTER_SRCB_MOD_LO ← ((byte*)) (word/dword/signed dword) 54059
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_MOD_HI and assignment [123] (byte*) DTV_BLITTER_SRCB_MOD_HI ← ((byte*)) (word/dword/signed dword) 54060
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_LIN_LO and assignment [124] (byte*) DTV_BLITTER_SRCB_LIN_LO ← ((byte*)) (word/dword/signed dword) 54061
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_LIN_HI and assignment [125] (byte*) DTV_BLITTER_SRCB_LIN_HI ← ((byte*)) (word/dword/signed dword) 54062
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_STEP and assignment [126] (byte*) DTV_BLITTER_SRCB_STEP ← ((byte*)) (word/dword/signed dword) 54063
Eliminating unused variable (byte*) DTV_BLITTER_DEST_LO and assignment [127] (byte*) DTV_BLITTER_DEST_LO ← ((byte*)) (word/dword/signed dword) 54064
Eliminating unused variable (byte*) DTV_BLITTER_DEST_MI and assignment [128] (byte*) DTV_BLITTER_DEST_MI ← ((byte*)) (word/dword/signed dword) 54065
Eliminating unused variable (byte*) DTV_BLITTER_DEST_HI and assignment [129] (byte*) DTV_BLITTER_DEST_HI ← ((byte*)) (word/dword/signed dword) 54066
Eliminating unused variable (byte*) DTV_BLITTER_DEST_MOD_LO and assignment [130] (byte*) DTV_BLITTER_DEST_MOD_LO ← ((byte*)) (word/dword/signed dword) 54067
Eliminating unused variable (byte*) DTV_BLITTER_DEST_MOD_HI and assignment [131] (byte*) DTV_BLITTER_DEST_MOD_HI ← ((byte*)) (word/dword/signed dword) 54068
Eliminating unused variable (byte*) DTV_BLITTER_DEST_LIN_LO and assignment [132] (byte*) DTV_BLITTER_DEST_LIN_LO ← ((byte*)) (word/dword/signed dword) 54069
Eliminating unused variable (byte*) DTV_BLITTER_DEST_LIN_HI and assignment [133] (byte*) DTV_BLITTER_DEST_LIN_HI ← ((byte*)) (word/dword/signed dword) 54070
Eliminating unused variable (byte*) DTV_BLITTER_DEST_STEP and assignment [134] (byte*) DTV_BLITTER_DEST_STEP ← ((byte*)) (word/dword/signed dword) 54071
Eliminating unused variable (byte*) DTV_BLITTER_LEN_LO and assignment [135] (byte*) DTV_BLITTER_LEN_LO ← ((byte*)) (word/dword/signed dword) 54072
Eliminating unused variable (byte*) DTV_BLITTER_LEN_HI and assignment [136] (byte*) DTV_BLITTER_LEN_HI ← ((byte*)) (word/dword/signed dword) 54073
Eliminating unused variable (byte*) DTV_BLITTER_CONTROL and assignment [137] (byte*) DTV_BLITTER_CONTROL ← ((byte*)) (word/dword/signed dword) 54074
Eliminating unused variable (byte) DTV_BLIT_FORCE_START and assignment [138] (byte) DTV_BLIT_FORCE_START ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_SRCA_FWD and assignment [139] (byte) DTV_BLIT_SRCA_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_SRCB_FWD and assignment [140] (byte) DTV_BLIT_SRCB_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_DEST_FWD and assignment [141] (byte) DTV_BLIT_DEST_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) DTV_BLIT_VIC_IRQ and assignment [142] (byte) DTV_BLIT_VIC_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 16
Eliminating unused variable (byte) DTV_BLIT_CIA_IRQ and assignment [143] (byte) DTV_BLIT_CIA_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 32
Eliminating unused variable (byte) DTV_BLIT_VBLANK and assignment [144] (byte) DTV_BLIT_VBLANK ← (byte/signed byte/word/signed word/dword/signed dword) 64
Eliminating unused variable (byte) DTV_BLIT_IRQ_EN and assignment [145] (byte) DTV_BLIT_IRQ_EN ← (byte/word/signed word/dword/signed dword) 128
Eliminating unused variable (byte*) DTV_BLITTER_TRANSPARANCY and assignment [146] (byte*) DTV_BLITTER_TRANSPARANCY ← ((byte*)) (word/dword/signed dword) 54075
Eliminating unused variable (byte) DTV_BLIT_DISABLE_B and assignment [147] (byte) DTV_BLIT_DISABLE_B ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_WRITE_TRANSPARENT and assignment [148] (byte) DTV_BLIT_WRITE_TRANSPARENT ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_WRITE_NONTRANSPARENT and assignment [149] (byte) DTV_BLIT_WRITE_NONTRANSPARENT ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_TRANSPARANCY_NONE and assignment [150] (byte) DTV_BLIT_TRANSPARANCY_NONE ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte*) DTV_BLITTER_ALU and assignment [151] (byte*) DTV_BLITTER_ALU ← ((byte*)) (word/dword/signed dword) 54078
Eliminating unused variable (byte) DTV_BLIT_SHIFT0 and assignment [152] (byte) DTV_BLIT_SHIFT0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) DTV_BLIT_SHIFT1 and assignment [153] (byte) DTV_BLIT_SHIFT1 ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_SHIFT2 and assignment [154] (byte) DTV_BLIT_SHIFT2 ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_SHIFT3 and assignment [155] (byte) DTV_BLIT_SHIFT3 ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) DTV_BLIT_SHIFT4 and assignment [156] (byte) DTV_BLIT_SHIFT4 ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_SHIFT5 and assignment [157] (byte) DTV_BLIT_SHIFT5 ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) DTV_BLIT_SHIFT6 and assignment [158] (byte) DTV_BLIT_SHIFT6 ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) DTV_BLIT_SHIFT7 and assignment [159] (byte) DTV_BLIT_SHIFT7 ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) DTV_BLIT_AND and assignment [160] (byte) DTV_BLIT_AND ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) DTV_BLIT_NAND and assignment [161] (byte) DTV_BLIT_NAND ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) DTV_BLIT_NOR and assignment [162] (byte) DTV_BLIT_NOR ← (byte/signed byte/word/signed word/dword/signed dword) 16
Eliminating unused variable (byte) DTV_BLIT_OR and assignment [163] (byte) DTV_BLIT_OR ← (byte/signed byte/word/signed word/dword/signed dword) 24
Eliminating unused variable (byte) DTV_BLIT_XOR and assignment [164] (byte) DTV_BLIT_XOR ← (byte/signed byte/word/signed word/dword/signed dword) 32
Eliminating unused variable (byte) DTV_BLIT_XNOR and assignment [165] (byte) DTV_BLIT_XNOR ← (byte/signed byte/word/signed word/dword/signed dword) 40
Eliminating unused variable (byte) DTV_BLIT_ADD and assignment [166] (byte) DTV_BLIT_ADD ← (byte/signed byte/word/signed word/dword/signed dword) 48
Eliminating unused variable (byte) DTV_BLIT_SUB and assignment [167] (byte) DTV_BLIT_SUB ← (byte/signed byte/word/signed word/dword/signed dword) 56
Eliminating unused variable (byte*) DTV_BLITTER_CONTROL2 and assignment [168] (byte*) DTV_BLITTER_CONTROL2 ← ((byte*)) (word/dword/signed dword) 54079
Eliminating unused variable (byte) DTV_BLIT_CLEAR_IRQ and assignment [169] (byte) DTV_BLIT_CLEAR_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_SRCA_CONT and assignment [170] (byte) DTV_BLIT_SRCA_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_SRCB_CONT and assignment [171] (byte) DTV_BLIT_SRCB_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_DEST_CONT and assignment [172] (byte) DTV_BLIT_DEST_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) DTV_BLIT_STATUS_BUSY and assignment [173] (byte) DTV_BLIT_STATUS_BUSY ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_STATUS_IRQ and assignment [174] (byte) DTV_BLIT_STATUS_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable - keeping the call (void~) print_str_lines::$4
Eliminating unused variable (byte) KEY_DEL and assignment [206] (byte) KEY_DEL ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) KEY_RETURN and assignment [207] (byte) KEY_RETURN ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) KEY_F7 and assignment [209] (byte) KEY_F7 ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) KEY_F1 and assignment [210] (byte) KEY_F1 ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) KEY_F3 and assignment [211] (byte) KEY_F3 ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) KEY_F5 and assignment [212] (byte) KEY_F5 ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) KEY_HOME and assignment [257] (byte) KEY_HOME ← (byte/signed byte/word/signed word/dword/signed dword) 51
Eliminating unused variable (byte) KEY_RUNSTOP and assignment [269] (byte) KEY_RUNSTOP ← (byte/signed byte/word/signed word/dword/signed dword) 63
Eliminating unused variable (byte[]) keyboard_char_keycodes and assignment [270] (byte[]) keyboard_char_keycodes ← { (byte) KEY_AT, (byte) KEY_A, (byte) KEY_B, (byte) KEY_C, (byte) KEY_D, (byte) KEY_E, (byte) KEY_F, (byte) KEY_G, (byte) KEY_H, (byte) KEY_I, (byte) KEY_J, (byte) KEY_K, (byte) KEY_L, (byte) KEY_M, (byte) KEY_N, (byte) KEY_O, (byte) KEY_P, (byte) KEY_Q, (byte) KEY_R, (byte) KEY_S, (byte) KEY_T, (byte) KEY_U, (byte) KEY_V, (byte) KEY_W, (byte) KEY_X, (byte) KEY_Y, (byte) KEY_Z, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_POUND, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ARROW_UP, (byte) KEY_ARROW_LEFT, (byte) KEY_SPACE, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ASTERISK, (byte) KEY_PLUS, (byte) KEY_COMMA, (byte) KEY_MINUS, (byte) KEY_DOT, (byte) KEY_SLASH, (byte) KEY_0, (byte) KEY_1, (byte) KEY_2, (byte) KEY_3, (byte) KEY_4, (byte) KEY_5, (byte) KEY_6, (byte) KEY_7, (byte) KEY_8, (byte) KEY_9, (byte) KEY_COLON, (byte) KEY_SEMICOLON, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_EQUALS, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 }
Eliminating unused variable (byte) KEY_DEL and assignment [217] (byte) KEY_DEL ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) KEY_RETURN and assignment [218] (byte) KEY_RETURN ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) KEY_F7 and assignment [220] (byte) KEY_F7 ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) KEY_F1 and assignment [221] (byte) KEY_F1 ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) KEY_F3 and assignment [222] (byte) KEY_F3 ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) KEY_F5 and assignment [223] (byte) KEY_F5 ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) KEY_HOME and assignment [268] (byte) KEY_HOME ← (byte/signed byte/word/signed word/dword/signed dword) 51
Eliminating unused variable (byte) KEY_RUNSTOP and assignment [280] (byte) KEY_RUNSTOP ← (byte/signed byte/word/signed word/dword/signed dword) 63
Eliminating unused variable (byte[]) keyboard_char_keycodes and assignment [281] (byte[]) keyboard_char_keycodes ← { (byte) KEY_AT, (byte) KEY_A, (byte) KEY_B, (byte) KEY_C, (byte) KEY_D, (byte) KEY_E, (byte) KEY_F, (byte) KEY_G, (byte) KEY_H, (byte) KEY_I, (byte) KEY_J, (byte) KEY_K, (byte) KEY_L, (byte) KEY_M, (byte) KEY_N, (byte) KEY_O, (byte) KEY_P, (byte) KEY_Q, (byte) KEY_R, (byte) KEY_S, (byte) KEY_T, (byte) KEY_U, (byte) KEY_V, (byte) KEY_W, (byte) KEY_X, (byte) KEY_Y, (byte) KEY_Z, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_POUND, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ARROW_UP, (byte) KEY_ARROW_LEFT, (byte) KEY_SPACE, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ASTERISK, (byte) KEY_PLUS, (byte) KEY_COMMA, (byte) KEY_MINUS, (byte) KEY_DOT, (byte) KEY_SLASH, (byte) KEY_0, (byte) KEY_1, (byte) KEY_2, (byte) KEY_3, (byte) KEY_4, (byte) KEY_5, (byte) KEY_6, (byte) KEY_7, (byte) KEY_8, (byte) KEY_9, (byte) KEY_COLON, (byte) KEY_SEMICOLON, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_EQUALS, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 }
Eliminating unused variable - keeping the call (void~) bitmap_line::$6
Eliminating unused variable - keeping the call (void~) bitmap_line::$5
Eliminating unused variable - keeping the call (void~) bitmap_line::$10

View File

@ -1122,6 +1122,13 @@ const byte VIC_CSEL = %00001000;
const byte* D018 = $d018;
const byte* VIC_MEMORY = $d018;
const byte* IRQ_STATUS = $d019;
const byte* IRQ_ENABLE = $d01a;
const byte IRQ_RASTER = %00000001;
const byte IRQ_COLLISION_BG = %00000010;
const byte IRQ_COLLISION_SPRITE = %00000100;
const byte IRQ_LIGHTPEN = %00001000;
const byte* COLS = $d800;
// CIA#1 Port A: keyboard matrix columns and joystick #2
@ -1132,6 +1139,10 @@ const byte* CIA1_PORT_B = $dc01;
const byte* CIA1_PORT_A_DDR = $dc02;
// CIA #1 Port B data direction register.
const byte* CIA1_PORT_B_DDR = $dc03;
// CIA#1 Interrupt Status & Control Register
const byte* CIA1_INTERRUPT = $dc0d;
// Value that disables all CIA interrupts when stored to the CIA Interrupt registers
const byte CIA_INTERRUPT_CLEAR = $7f;
// CIA#2 Port A: Serial bus, RS-232, VIC memory bank
const byte* CIA2_PORT_A = $dd00;
@ -1141,6 +1152,14 @@ const byte* CIA2_PORT_B = $dd01;
const byte* CIA2_PORT_A_DDR = $dd02;
// CIA #2 Port B data direction register.
const byte* CIA2_PORT_B_DDR = $dd03;
// CIA#2 Interrupt Status & Control Register
const byte* CIA2_INTERRUPT = $dd0d;
// The vector used when the KERNAL serves IRQ interrupts
const void()** KERNEL_IRQ = $0314;
// The vector used when the HARDWARE serves IRQ interrupts
const void()** HARDWARE_IRQ = $fffe;
const byte BLACK = $0;
const byte WHITE = $1;
@ -1814,14 +1833,17 @@ SYMBOLS
(byte*) BORDERCOL
(byte) BROWN
(byte*) CHARGEN
(byte*) CIA1_INTERRUPT
(byte*) CIA1_PORT_A
(byte*) CIA1_PORT_A_DDR
(byte*) CIA1_PORT_B
(byte*) CIA1_PORT_B_DDR
(byte*) CIA2_INTERRUPT
(byte*) CIA2_PORT_A
(byte*) CIA2_PORT_A_DDR
(byte*) CIA2_PORT_B
(byte*) CIA2_PORT_B_DDR
(byte) CIA_INTERRUPT_CLEAR
(byte*) COLS
(byte) CYAN
(byte*) D011
@ -1925,6 +1947,14 @@ SYMBOLS
(byte*) DTV_SPRITE_BANK
(byte) GREEN
(byte) GREY
(void()**) HARDWARE_IRQ
(byte) IRQ_COLLISION_BG
(byte) IRQ_COLLISION_SPRITE
(byte*) IRQ_ENABLE
(byte) IRQ_LIGHTPEN
(byte) IRQ_RASTER
(byte*) IRQ_STATUS
(void()**) KERNEL_IRQ
(byte) KEY_0
(byte) KEY_1
(byte) KEY_2
@ -3361,15 +3391,21 @@ Promoting word/dword/signed dword to byte* in VIC_CONTROL2 ← ((byte*)) 53270
Promoting word/dword/signed dword to byte* in D016 ← ((byte*)) 53270
Promoting word/dword/signed dword to byte* in D018 ← ((byte*)) 53272
Promoting word/dword/signed dword to byte* in VIC_MEMORY ← ((byte*)) 53272
Promoting word/dword/signed dword to byte* in IRQ_STATUS ← ((byte*)) 53273
Promoting word/dword/signed dword to byte* in IRQ_ENABLE ← ((byte*)) 53274
Promoting word/dword/signed dword to byte* in COLS ← ((byte*)) 55296
Promoting word/dword/signed dword to byte* in CIA1_PORT_A ← ((byte*)) 56320
Promoting word/dword/signed dword to byte* in CIA1_PORT_B ← ((byte*)) 56321
Promoting word/dword/signed dword to byte* in CIA1_PORT_A_DDR ← ((byte*)) 56322
Promoting word/dword/signed dword to byte* in CIA1_PORT_B_DDR ← ((byte*)) 56323
Promoting word/dword/signed dword to byte* in CIA1_INTERRUPT ← ((byte*)) 56333
Promoting word/dword/signed dword to byte* in CIA2_PORT_A ← ((byte*)) 56576
Promoting word/dword/signed dword to byte* in CIA2_PORT_B ← ((byte*)) 56577
Promoting word/dword/signed dword to byte* in CIA2_PORT_A_DDR ← ((byte*)) 56578
Promoting word/dword/signed dword to byte* in CIA2_PORT_B_DDR ← ((byte*)) 56579
Promoting word/dword/signed dword to byte* in CIA2_INTERRUPT ← ((byte*)) 56589
Promoting word/signed word/dword/signed dword to void()** in KERNEL_IRQ ← ((void()**)) 788
Promoting word/dword/signed dword to void()** in HARDWARE_IRQ ← ((void()**)) 65534
Promoting word/dword/signed dword to byte* in DTV_FEATURE ← ((byte*)) 53311
Promoting word/dword/signed dword to byte* in DTV_CONTROL ← ((byte*)) 53308
Promoting word/dword/signed dword to byte* in DTV_PALETTE ← ((byte*)) 53760
@ -3502,15 +3538,26 @@ INITIAL CONTROL FLOW GRAPH
(byte) VIC_CSEL ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte*) D018 ← ((byte*)) (word/dword/signed dword) 53272
(byte*) VIC_MEMORY ← ((byte*)) (word/dword/signed dword) 53272
(byte*) IRQ_STATUS ← ((byte*)) (word/dword/signed dword) 53273
(byte*) IRQ_ENABLE ← ((byte*)) (word/dword/signed dword) 53274
(byte) IRQ_RASTER ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) IRQ_COLLISION_BG ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) IRQ_COLLISION_SPRITE ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) IRQ_LIGHTPEN ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
(byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
(byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
(byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
(byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
(byte*) CIA1_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56333
(byte) CIA_INTERRUPT_CLEAR ← (byte/signed byte/word/signed word/dword/signed dword) 127
(byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
(byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
(byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
(byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
(byte*) CIA2_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56589
(void()**) KERNEL_IRQ ← ((void()**)) (word/signed word/dword/signed dword) 788
(void()**) HARDWARE_IRQ ← ((void()**)) (word/dword/signed dword) 65534
(byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
@ -6110,114 +6157,125 @@ Eliminating unused variable (byte*) D011 and assignment [28] (byte*) D011 ← ((
Eliminating unused variable (byte) VIC_RST8 and assignment [29] (byte) VIC_RST8 ← (byte/word/signed word/dword/signed dword) 128
Eliminating unused variable (byte*) D016 and assignment [35] (byte*) D016 ← ((byte*)) (word/dword/signed dword) 53270
Eliminating unused variable (byte*) D018 and assignment [38] (byte*) D018 ← ((byte*)) (word/dword/signed dword) 53272
Eliminating unused variable (byte*) CIA1_PORT_A_DDR and assignment [43] (byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
Eliminating unused variable (byte*) CIA1_PORT_B_DDR and assignment [44] (byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
Eliminating unused variable (byte*) CIA2_PORT_B and assignment [46] (byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
Eliminating unused variable (byte*) CIA2_PORT_B_DDR and assignment [48] (byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
Eliminating unused variable (byte) WHITE and assignment [50] (byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) RED and assignment [51] (byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) CYAN and assignment [52] (byte) CYAN ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) PURPLE and assignment [53] (byte) PURPLE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) YELLOW and assignment [56] (byte) YELLOW ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) ORANGE and assignment [57] (byte) ORANGE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) BROWN and assignment [58] (byte) BROWN ← (byte/signed byte/word/signed word/dword/signed dword) 9
Eliminating unused variable (byte) PINK and assignment [59] (byte) PINK ← (byte/signed byte/word/signed word/dword/signed dword) 10
Eliminating unused variable (byte) DARK_GREY and assignment [60] (byte) DARK_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 11
Eliminating unused variable (byte) GREY and assignment [61] (byte) GREY ← (byte/signed byte/word/signed word/dword/signed dword) 12
Eliminating unused variable (byte) LIGHT_BLUE and assignment [63] (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 14
Eliminating unused variable (byte) LIGHT_GREY and assignment [64] (byte) LIGHT_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable (byte) DTV_FEATURE_DISABLE_TIL_RESET and assignment [67] (byte) DTV_FEATURE_DISABLE_TIL_RESET ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BADLINE_OFF and assignment [74] (byte) DTV_BADLINE_OFF ← (byte/signed byte/word/signed word/dword/signed dword) 32
Eliminating unused variable (byte*) DTV_SPRITE_BANK and assignment [90] (byte*) DTV_SPRITE_BANK ← ((byte*)) (word/dword/signed dword) 53325
Eliminating unused variable (byte*) DTV_GRAPHICS_HICOL_BANK and assignment [95] (byte*) DTV_GRAPHICS_HICOL_BANK ← ((byte*)) (word/dword/signed dword) 53310
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_LO and assignment [100] (byte*) DTV_BLITTER_SRCA_LO ← ((byte*)) (word/dword/signed dword) 54048
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_MI and assignment [101] (byte*) DTV_BLITTER_SRCA_MI ← ((byte*)) (word/dword/signed dword) 54049
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_HI and assignment [102] (byte*) DTV_BLITTER_SRCA_HI ← ((byte*)) (word/dword/signed dword) 54050
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_MOD_LO and assignment [103] (byte*) DTV_BLITTER_SRCA_MOD_LO ← ((byte*)) (word/dword/signed dword) 54051
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_MOD_HI and assignment [104] (byte*) DTV_BLITTER_SRCA_MOD_HI ← ((byte*)) (word/dword/signed dword) 54052
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_LIN_LO and assignment [105] (byte*) DTV_BLITTER_SRCA_LIN_LO ← ((byte*)) (word/dword/signed dword) 54053
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_LIN_HI and assignment [106] (byte*) DTV_BLITTER_SRCA_LIN_HI ← ((byte*)) (word/dword/signed dword) 54054
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_STEP and assignment [107] (byte*) DTV_BLITTER_SRCA_STEP ← ((byte*)) (word/dword/signed dword) 54055
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_LO and assignment [108] (byte*) DTV_BLITTER_SRCB_LO ← ((byte*)) (word/dword/signed dword) 54056
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_MI and assignment [109] (byte*) DTV_BLITTER_SRCB_MI ← ((byte*)) (word/dword/signed dword) 54057
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_HI and assignment [110] (byte*) DTV_BLITTER_SRCB_HI ← ((byte*)) (word/dword/signed dword) 54058
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_MOD_LO and assignment [111] (byte*) DTV_BLITTER_SRCB_MOD_LO ← ((byte*)) (word/dword/signed dword) 54059
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_MOD_HI and assignment [112] (byte*) DTV_BLITTER_SRCB_MOD_HI ← ((byte*)) (word/dword/signed dword) 54060
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_LIN_LO and assignment [113] (byte*) DTV_BLITTER_SRCB_LIN_LO ← ((byte*)) (word/dword/signed dword) 54061
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_LIN_HI and assignment [114] (byte*) DTV_BLITTER_SRCB_LIN_HI ← ((byte*)) (word/dword/signed dword) 54062
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_STEP and assignment [115] (byte*) DTV_BLITTER_SRCB_STEP ← ((byte*)) (word/dword/signed dword) 54063
Eliminating unused variable (byte*) DTV_BLITTER_DEST_LO and assignment [116] (byte*) DTV_BLITTER_DEST_LO ← ((byte*)) (word/dword/signed dword) 54064
Eliminating unused variable (byte*) DTV_BLITTER_DEST_MI and assignment [117] (byte*) DTV_BLITTER_DEST_MI ← ((byte*)) (word/dword/signed dword) 54065
Eliminating unused variable (byte*) DTV_BLITTER_DEST_HI and assignment [118] (byte*) DTV_BLITTER_DEST_HI ← ((byte*)) (word/dword/signed dword) 54066
Eliminating unused variable (byte*) DTV_BLITTER_DEST_MOD_LO and assignment [119] (byte*) DTV_BLITTER_DEST_MOD_LO ← ((byte*)) (word/dword/signed dword) 54067
Eliminating unused variable (byte*) DTV_BLITTER_DEST_MOD_HI and assignment [120] (byte*) DTV_BLITTER_DEST_MOD_HI ← ((byte*)) (word/dword/signed dword) 54068
Eliminating unused variable (byte*) DTV_BLITTER_DEST_LIN_LO and assignment [121] (byte*) DTV_BLITTER_DEST_LIN_LO ← ((byte*)) (word/dword/signed dword) 54069
Eliminating unused variable (byte*) DTV_BLITTER_DEST_LIN_HI and assignment [122] (byte*) DTV_BLITTER_DEST_LIN_HI ← ((byte*)) (word/dword/signed dword) 54070
Eliminating unused variable (byte*) DTV_BLITTER_DEST_STEP and assignment [123] (byte*) DTV_BLITTER_DEST_STEP ← ((byte*)) (word/dword/signed dword) 54071
Eliminating unused variable (byte*) DTV_BLITTER_LEN_LO and assignment [124] (byte*) DTV_BLITTER_LEN_LO ← ((byte*)) (word/dword/signed dword) 54072
Eliminating unused variable (byte*) DTV_BLITTER_LEN_HI and assignment [125] (byte*) DTV_BLITTER_LEN_HI ← ((byte*)) (word/dword/signed dword) 54073
Eliminating unused variable (byte*) DTV_BLITTER_CONTROL and assignment [126] (byte*) DTV_BLITTER_CONTROL ← ((byte*)) (word/dword/signed dword) 54074
Eliminating unused variable (byte) DTV_BLIT_FORCE_START and assignment [127] (byte) DTV_BLIT_FORCE_START ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_SRCA_FWD and assignment [128] (byte) DTV_BLIT_SRCA_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_SRCB_FWD and assignment [129] (byte) DTV_BLIT_SRCB_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_DEST_FWD and assignment [130] (byte) DTV_BLIT_DEST_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) DTV_BLIT_VIC_IRQ and assignment [131] (byte) DTV_BLIT_VIC_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 16
Eliminating unused variable (byte) DTV_BLIT_CIA_IRQ and assignment [132] (byte) DTV_BLIT_CIA_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 32
Eliminating unused variable (byte) DTV_BLIT_VBLANK and assignment [133] (byte) DTV_BLIT_VBLANK ← (byte/signed byte/word/signed word/dword/signed dword) 64
Eliminating unused variable (byte) DTV_BLIT_IRQ_EN and assignment [134] (byte) DTV_BLIT_IRQ_EN ← (byte/word/signed word/dword/signed dword) 128
Eliminating unused variable (byte*) DTV_BLITTER_TRANSPARANCY and assignment [135] (byte*) DTV_BLITTER_TRANSPARANCY ← ((byte*)) (word/dword/signed dword) 54075
Eliminating unused variable (byte) DTV_BLIT_DISABLE_B and assignment [136] (byte) DTV_BLIT_DISABLE_B ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_WRITE_TRANSPARENT and assignment [137] (byte) DTV_BLIT_WRITE_TRANSPARENT ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_WRITE_NONTRANSPARENT and assignment [138] (byte) DTV_BLIT_WRITE_NONTRANSPARENT ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_TRANSPARANCY_NONE and assignment [139] (byte) DTV_BLIT_TRANSPARANCY_NONE ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte*) DTV_BLITTER_ALU and assignment [140] (byte*) DTV_BLITTER_ALU ← ((byte*)) (word/dword/signed dword) 54078
Eliminating unused variable (byte) DTV_BLIT_SHIFT0 and assignment [141] (byte) DTV_BLIT_SHIFT0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) DTV_BLIT_SHIFT1 and assignment [142] (byte) DTV_BLIT_SHIFT1 ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_SHIFT2 and assignment [143] (byte) DTV_BLIT_SHIFT2 ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_SHIFT3 and assignment [144] (byte) DTV_BLIT_SHIFT3 ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) DTV_BLIT_SHIFT4 and assignment [145] (byte) DTV_BLIT_SHIFT4 ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_SHIFT5 and assignment [146] (byte) DTV_BLIT_SHIFT5 ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) DTV_BLIT_SHIFT6 and assignment [147] (byte) DTV_BLIT_SHIFT6 ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) DTV_BLIT_SHIFT7 and assignment [148] (byte) DTV_BLIT_SHIFT7 ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) DTV_BLIT_AND and assignment [149] (byte) DTV_BLIT_AND ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) DTV_BLIT_NAND and assignment [150] (byte) DTV_BLIT_NAND ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) DTV_BLIT_NOR and assignment [151] (byte) DTV_BLIT_NOR ← (byte/signed byte/word/signed word/dword/signed dword) 16
Eliminating unused variable (byte) DTV_BLIT_OR and assignment [152] (byte) DTV_BLIT_OR ← (byte/signed byte/word/signed word/dword/signed dword) 24
Eliminating unused variable (byte) DTV_BLIT_XOR and assignment [153] (byte) DTV_BLIT_XOR ← (byte/signed byte/word/signed word/dword/signed dword) 32
Eliminating unused variable (byte) DTV_BLIT_XNOR and assignment [154] (byte) DTV_BLIT_XNOR ← (byte/signed byte/word/signed word/dword/signed dword) 40
Eliminating unused variable (byte) DTV_BLIT_ADD and assignment [155] (byte) DTV_BLIT_ADD ← (byte/signed byte/word/signed word/dword/signed dword) 48
Eliminating unused variable (byte) DTV_BLIT_SUB and assignment [156] (byte) DTV_BLIT_SUB ← (byte/signed byte/word/signed word/dword/signed dword) 56
Eliminating unused variable (byte*) DTV_BLITTER_CONTROL2 and assignment [157] (byte*) DTV_BLITTER_CONTROL2 ← ((byte*)) (word/dword/signed dword) 54079
Eliminating unused variable (byte) DTV_BLIT_CLEAR_IRQ and assignment [158] (byte) DTV_BLIT_CLEAR_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_SRCA_CONT and assignment [159] (byte) DTV_BLIT_SRCA_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_SRCB_CONT and assignment [160] (byte) DTV_BLIT_SRCB_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_DEST_CONT and assignment [161] (byte) DTV_BLIT_DEST_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) DTV_BLIT_STATUS_BUSY and assignment [162] (byte) DTV_BLIT_STATUS_BUSY ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_STATUS_IRQ and assignment [163] (byte) DTV_BLIT_STATUS_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte*) IRQ_STATUS and assignment [40] (byte*) IRQ_STATUS ← ((byte*)) (word/dword/signed dword) 53273
Eliminating unused variable (byte*) IRQ_ENABLE and assignment [41] (byte*) IRQ_ENABLE ← ((byte*)) (word/dword/signed dword) 53274
Eliminating unused variable (byte) IRQ_RASTER and assignment [42] (byte) IRQ_RASTER ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) IRQ_COLLISION_BG and assignment [43] (byte) IRQ_COLLISION_BG ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) IRQ_COLLISION_SPRITE and assignment [44] (byte) IRQ_COLLISION_SPRITE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) IRQ_LIGHTPEN and assignment [45] (byte) IRQ_LIGHTPEN ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte*) CIA1_PORT_A_DDR and assignment [49] (byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
Eliminating unused variable (byte*) CIA1_PORT_B_DDR and assignment [50] (byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
Eliminating unused variable (byte*) CIA1_INTERRUPT and assignment [51] (byte*) CIA1_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56333
Eliminating unused variable (byte) CIA_INTERRUPT_CLEAR and assignment [52] (byte) CIA_INTERRUPT_CLEAR ← (byte/signed byte/word/signed word/dword/signed dword) 127
Eliminating unused variable (byte*) CIA2_PORT_B and assignment [54] (byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
Eliminating unused variable (byte*) CIA2_PORT_B_DDR and assignment [56] (byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
Eliminating unused variable (byte*) CIA2_INTERRUPT and assignment [57] (byte*) CIA2_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56589
Eliminating unused variable (void()**) KERNEL_IRQ and assignment [58] (void()**) KERNEL_IRQ ← ((void()**)) (word/signed word/dword/signed dword) 788
Eliminating unused variable (void()**) HARDWARE_IRQ and assignment [59] (void()**) HARDWARE_IRQ ← ((void()**)) (word/dword/signed dword) 65534
Eliminating unused variable (byte) WHITE and assignment [61] (byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) RED and assignment [62] (byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) CYAN and assignment [63] (byte) CYAN ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) PURPLE and assignment [64] (byte) PURPLE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) YELLOW and assignment [67] (byte) YELLOW ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) ORANGE and assignment [68] (byte) ORANGE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) BROWN and assignment [69] (byte) BROWN ← (byte/signed byte/word/signed word/dword/signed dword) 9
Eliminating unused variable (byte) PINK and assignment [70] (byte) PINK ← (byte/signed byte/word/signed word/dword/signed dword) 10
Eliminating unused variable (byte) DARK_GREY and assignment [71] (byte) DARK_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 11
Eliminating unused variable (byte) GREY and assignment [72] (byte) GREY ← (byte/signed byte/word/signed word/dword/signed dword) 12
Eliminating unused variable (byte) LIGHT_BLUE and assignment [74] (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 14
Eliminating unused variable (byte) LIGHT_GREY and assignment [75] (byte) LIGHT_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable (byte) DTV_FEATURE_DISABLE_TIL_RESET and assignment [78] (byte) DTV_FEATURE_DISABLE_TIL_RESET ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BADLINE_OFF and assignment [85] (byte) DTV_BADLINE_OFF ← (byte/signed byte/word/signed word/dword/signed dword) 32
Eliminating unused variable (byte*) DTV_SPRITE_BANK and assignment [101] (byte*) DTV_SPRITE_BANK ← ((byte*)) (word/dword/signed dword) 53325
Eliminating unused variable (byte*) DTV_GRAPHICS_HICOL_BANK and assignment [106] (byte*) DTV_GRAPHICS_HICOL_BANK ← ((byte*)) (word/dword/signed dword) 53310
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_LO and assignment [111] (byte*) DTV_BLITTER_SRCA_LO ← ((byte*)) (word/dword/signed dword) 54048
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_MI and assignment [112] (byte*) DTV_BLITTER_SRCA_MI ← ((byte*)) (word/dword/signed dword) 54049
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_HI and assignment [113] (byte*) DTV_BLITTER_SRCA_HI ← ((byte*)) (word/dword/signed dword) 54050
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_MOD_LO and assignment [114] (byte*) DTV_BLITTER_SRCA_MOD_LO ← ((byte*)) (word/dword/signed dword) 54051
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_MOD_HI and assignment [115] (byte*) DTV_BLITTER_SRCA_MOD_HI ← ((byte*)) (word/dword/signed dword) 54052
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_LIN_LO and assignment [116] (byte*) DTV_BLITTER_SRCA_LIN_LO ← ((byte*)) (word/dword/signed dword) 54053
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_LIN_HI and assignment [117] (byte*) DTV_BLITTER_SRCA_LIN_HI ← ((byte*)) (word/dword/signed dword) 54054
Eliminating unused variable (byte*) DTV_BLITTER_SRCA_STEP and assignment [118] (byte*) DTV_BLITTER_SRCA_STEP ← ((byte*)) (word/dword/signed dword) 54055
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_LO and assignment [119] (byte*) DTV_BLITTER_SRCB_LO ← ((byte*)) (word/dword/signed dword) 54056
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_MI and assignment [120] (byte*) DTV_BLITTER_SRCB_MI ← ((byte*)) (word/dword/signed dword) 54057
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_HI and assignment [121] (byte*) DTV_BLITTER_SRCB_HI ← ((byte*)) (word/dword/signed dword) 54058
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_MOD_LO and assignment [122] (byte*) DTV_BLITTER_SRCB_MOD_LO ← ((byte*)) (word/dword/signed dword) 54059
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_MOD_HI and assignment [123] (byte*) DTV_BLITTER_SRCB_MOD_HI ← ((byte*)) (word/dword/signed dword) 54060
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_LIN_LO and assignment [124] (byte*) DTV_BLITTER_SRCB_LIN_LO ← ((byte*)) (word/dword/signed dword) 54061
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_LIN_HI and assignment [125] (byte*) DTV_BLITTER_SRCB_LIN_HI ← ((byte*)) (word/dword/signed dword) 54062
Eliminating unused variable (byte*) DTV_BLITTER_SRCB_STEP and assignment [126] (byte*) DTV_BLITTER_SRCB_STEP ← ((byte*)) (word/dword/signed dword) 54063
Eliminating unused variable (byte*) DTV_BLITTER_DEST_LO and assignment [127] (byte*) DTV_BLITTER_DEST_LO ← ((byte*)) (word/dword/signed dword) 54064
Eliminating unused variable (byte*) DTV_BLITTER_DEST_MI and assignment [128] (byte*) DTV_BLITTER_DEST_MI ← ((byte*)) (word/dword/signed dword) 54065
Eliminating unused variable (byte*) DTV_BLITTER_DEST_HI and assignment [129] (byte*) DTV_BLITTER_DEST_HI ← ((byte*)) (word/dword/signed dword) 54066
Eliminating unused variable (byte*) DTV_BLITTER_DEST_MOD_LO and assignment [130] (byte*) DTV_BLITTER_DEST_MOD_LO ← ((byte*)) (word/dword/signed dword) 54067
Eliminating unused variable (byte*) DTV_BLITTER_DEST_MOD_HI and assignment [131] (byte*) DTV_BLITTER_DEST_MOD_HI ← ((byte*)) (word/dword/signed dword) 54068
Eliminating unused variable (byte*) DTV_BLITTER_DEST_LIN_LO and assignment [132] (byte*) DTV_BLITTER_DEST_LIN_LO ← ((byte*)) (word/dword/signed dword) 54069
Eliminating unused variable (byte*) DTV_BLITTER_DEST_LIN_HI and assignment [133] (byte*) DTV_BLITTER_DEST_LIN_HI ← ((byte*)) (word/dword/signed dword) 54070
Eliminating unused variable (byte*) DTV_BLITTER_DEST_STEP and assignment [134] (byte*) DTV_BLITTER_DEST_STEP ← ((byte*)) (word/dword/signed dword) 54071
Eliminating unused variable (byte*) DTV_BLITTER_LEN_LO and assignment [135] (byte*) DTV_BLITTER_LEN_LO ← ((byte*)) (word/dword/signed dword) 54072
Eliminating unused variable (byte*) DTV_BLITTER_LEN_HI and assignment [136] (byte*) DTV_BLITTER_LEN_HI ← ((byte*)) (word/dword/signed dword) 54073
Eliminating unused variable (byte*) DTV_BLITTER_CONTROL and assignment [137] (byte*) DTV_BLITTER_CONTROL ← ((byte*)) (word/dword/signed dword) 54074
Eliminating unused variable (byte) DTV_BLIT_FORCE_START and assignment [138] (byte) DTV_BLIT_FORCE_START ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_SRCA_FWD and assignment [139] (byte) DTV_BLIT_SRCA_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_SRCB_FWD and assignment [140] (byte) DTV_BLIT_SRCB_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_DEST_FWD and assignment [141] (byte) DTV_BLIT_DEST_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) DTV_BLIT_VIC_IRQ and assignment [142] (byte) DTV_BLIT_VIC_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 16
Eliminating unused variable (byte) DTV_BLIT_CIA_IRQ and assignment [143] (byte) DTV_BLIT_CIA_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 32
Eliminating unused variable (byte) DTV_BLIT_VBLANK and assignment [144] (byte) DTV_BLIT_VBLANK ← (byte/signed byte/word/signed word/dword/signed dword) 64
Eliminating unused variable (byte) DTV_BLIT_IRQ_EN and assignment [145] (byte) DTV_BLIT_IRQ_EN ← (byte/word/signed word/dword/signed dword) 128
Eliminating unused variable (byte*) DTV_BLITTER_TRANSPARANCY and assignment [146] (byte*) DTV_BLITTER_TRANSPARANCY ← ((byte*)) (word/dword/signed dword) 54075
Eliminating unused variable (byte) DTV_BLIT_DISABLE_B and assignment [147] (byte) DTV_BLIT_DISABLE_B ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_WRITE_TRANSPARENT and assignment [148] (byte) DTV_BLIT_WRITE_TRANSPARENT ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_WRITE_NONTRANSPARENT and assignment [149] (byte) DTV_BLIT_WRITE_NONTRANSPARENT ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_TRANSPARANCY_NONE and assignment [150] (byte) DTV_BLIT_TRANSPARANCY_NONE ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte*) DTV_BLITTER_ALU and assignment [151] (byte*) DTV_BLITTER_ALU ← ((byte*)) (word/dword/signed dword) 54078
Eliminating unused variable (byte) DTV_BLIT_SHIFT0 and assignment [152] (byte) DTV_BLIT_SHIFT0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) DTV_BLIT_SHIFT1 and assignment [153] (byte) DTV_BLIT_SHIFT1 ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_SHIFT2 and assignment [154] (byte) DTV_BLIT_SHIFT2 ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_SHIFT3 and assignment [155] (byte) DTV_BLIT_SHIFT3 ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) DTV_BLIT_SHIFT4 and assignment [156] (byte) DTV_BLIT_SHIFT4 ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_SHIFT5 and assignment [157] (byte) DTV_BLIT_SHIFT5 ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) DTV_BLIT_SHIFT6 and assignment [158] (byte) DTV_BLIT_SHIFT6 ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) DTV_BLIT_SHIFT7 and assignment [159] (byte) DTV_BLIT_SHIFT7 ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) DTV_BLIT_AND and assignment [160] (byte) DTV_BLIT_AND ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) DTV_BLIT_NAND and assignment [161] (byte) DTV_BLIT_NAND ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) DTV_BLIT_NOR and assignment [162] (byte) DTV_BLIT_NOR ← (byte/signed byte/word/signed word/dword/signed dword) 16
Eliminating unused variable (byte) DTV_BLIT_OR and assignment [163] (byte) DTV_BLIT_OR ← (byte/signed byte/word/signed word/dword/signed dword) 24
Eliminating unused variable (byte) DTV_BLIT_XOR and assignment [164] (byte) DTV_BLIT_XOR ← (byte/signed byte/word/signed word/dword/signed dword) 32
Eliminating unused variable (byte) DTV_BLIT_XNOR and assignment [165] (byte) DTV_BLIT_XNOR ← (byte/signed byte/word/signed word/dword/signed dword) 40
Eliminating unused variable (byte) DTV_BLIT_ADD and assignment [166] (byte) DTV_BLIT_ADD ← (byte/signed byte/word/signed word/dword/signed dword) 48
Eliminating unused variable (byte) DTV_BLIT_SUB and assignment [167] (byte) DTV_BLIT_SUB ← (byte/signed byte/word/signed word/dword/signed dword) 56
Eliminating unused variable (byte*) DTV_BLITTER_CONTROL2 and assignment [168] (byte*) DTV_BLITTER_CONTROL2 ← ((byte*)) (word/dword/signed dword) 54079
Eliminating unused variable (byte) DTV_BLIT_CLEAR_IRQ and assignment [169] (byte) DTV_BLIT_CLEAR_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_SRCA_CONT and assignment [170] (byte) DTV_BLIT_SRCA_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) DTV_BLIT_SRCB_CONT and assignment [171] (byte) DTV_BLIT_SRCB_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) DTV_BLIT_DEST_CONT and assignment [172] (byte) DTV_BLIT_DEST_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) DTV_BLIT_STATUS_BUSY and assignment [173] (byte) DTV_BLIT_STATUS_BUSY ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) DTV_BLIT_STATUS_IRQ and assignment [174] (byte) DTV_BLIT_STATUS_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable - keeping the call (void~) print_str_lines::$4
Eliminating unused variable (byte[]) print_hextab and assignment [186] (byte[]) print_hextab ← (string) "0123456789abcdef"
Eliminating unused variable (byte) KEY_DEL and assignment [200] (byte) KEY_DEL ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) KEY_RETURN and assignment [201] (byte) KEY_RETURN ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) KEY_CRSR_RIGHT and assignment [202] (byte) KEY_CRSR_RIGHT ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) KEY_F7 and assignment [203] (byte) KEY_F7 ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) KEY_F1 and assignment [204] (byte) KEY_F1 ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) KEY_F3 and assignment [205] (byte) KEY_F3 ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) KEY_F5 and assignment [206] (byte) KEY_F5 ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) KEY_CRSR_DOWN and assignment [207] (byte) KEY_CRSR_DOWN ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) KEY_LSHIFT and assignment [215] (byte) KEY_LSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable (byte) KEY_HOME and assignment [251] (byte) KEY_HOME ← (byte/signed byte/word/signed word/dword/signed dword) 51
Eliminating unused variable (byte) KEY_RSHIFT and assignment [252] (byte) KEY_RSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 52
Eliminating unused variable (byte) KEY_CTRL and assignment [258] (byte) KEY_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 58
Eliminating unused variable (byte) KEY_COMMODORE and assignment [261] (byte) KEY_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 61
Eliminating unused variable (byte) KEY_RUNSTOP and assignment [263] (byte) KEY_RUNSTOP ← (byte/signed byte/word/signed word/dword/signed dword) 63
Eliminating unused variable (byte[]) keyboard_char_keycodes and assignment [264] (byte[]) keyboard_char_keycodes ← { (byte) KEY_AT, (byte) KEY_A, (byte) KEY_B, (byte) KEY_C, (byte) KEY_D, (byte) KEY_E, (byte) KEY_F, (byte) KEY_G, (byte) KEY_H, (byte) KEY_I, (byte) KEY_J, (byte) KEY_K, (byte) KEY_L, (byte) KEY_M, (byte) KEY_N, (byte) KEY_O, (byte) KEY_P, (byte) KEY_Q, (byte) KEY_R, (byte) KEY_S, (byte) KEY_T, (byte) KEY_U, (byte) KEY_V, (byte) KEY_W, (byte) KEY_X, (byte) KEY_Y, (byte) KEY_Z, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_POUND, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ARROW_UP, (byte) KEY_ARROW_LEFT, (byte) KEY_SPACE, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ASTERISK, (byte) KEY_PLUS, (byte) KEY_COMMA, (byte) KEY_MINUS, (byte) KEY_DOT, (byte) KEY_SLASH, (byte) KEY_0, (byte) KEY_1, (byte) KEY_2, (byte) KEY_3, (byte) KEY_4, (byte) KEY_5, (byte) KEY_6, (byte) KEY_7, (byte) KEY_8, (byte) KEY_9, (byte) KEY_COLON, (byte) KEY_SEMICOLON, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_EQUALS, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 }
Eliminating unused variable (byte[8]) keyboard_events and assignment [282] (byte[8]) keyboard_events ← { fill( 8, 0) }
Eliminating unused variable (byte) keyboard_events_size and assignment [283] (byte) keyboard_events_size ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) keyboard_modifiers and assignment [284] (byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) KEY_MODIFIER_CTRL and assignment [287] (byte) KEY_MODIFIER_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) KEY_MODIFIER_COMMODORE and assignment [288] (byte) KEY_MODIFIER_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) KEY_MODIFIER_SHIFT and assignment [290] (byte) KEY_MODIFIER_SHIFT ← (byte~) $0
Eliminating unused variable (byte[8]) keyboard_scan_values and assignment [291] (byte[8]) keyboard_scan_values ← { fill( 8, 0) }
Eliminating unused variable (byte[]) print_hextab and assignment [197] (byte[]) print_hextab ← (string) "0123456789abcdef"
Eliminating unused variable (byte) KEY_DEL and assignment [211] (byte) KEY_DEL ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) KEY_RETURN and assignment [212] (byte) KEY_RETURN ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) KEY_CRSR_RIGHT and assignment [213] (byte) KEY_CRSR_RIGHT ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) KEY_F7 and assignment [214] (byte) KEY_F7 ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) KEY_F1 and assignment [215] (byte) KEY_F1 ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) KEY_F3 and assignment [216] (byte) KEY_F3 ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) KEY_F5 and assignment [217] (byte) KEY_F5 ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) KEY_CRSR_DOWN and assignment [218] (byte) KEY_CRSR_DOWN ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) KEY_LSHIFT and assignment [226] (byte) KEY_LSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable (byte) KEY_HOME and assignment [262] (byte) KEY_HOME ← (byte/signed byte/word/signed word/dword/signed dword) 51
Eliminating unused variable (byte) KEY_RSHIFT and assignment [263] (byte) KEY_RSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 52
Eliminating unused variable (byte) KEY_CTRL and assignment [269] (byte) KEY_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 58
Eliminating unused variable (byte) KEY_COMMODORE and assignment [272] (byte) KEY_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 61
Eliminating unused variable (byte) KEY_RUNSTOP and assignment [274] (byte) KEY_RUNSTOP ← (byte/signed byte/word/signed word/dword/signed dword) 63
Eliminating unused variable (byte[]) keyboard_char_keycodes and assignment [275] (byte[]) keyboard_char_keycodes ← { (byte) KEY_AT, (byte) KEY_A, (byte) KEY_B, (byte) KEY_C, (byte) KEY_D, (byte) KEY_E, (byte) KEY_F, (byte) KEY_G, (byte) KEY_H, (byte) KEY_I, (byte) KEY_J, (byte) KEY_K, (byte) KEY_L, (byte) KEY_M, (byte) KEY_N, (byte) KEY_O, (byte) KEY_P, (byte) KEY_Q, (byte) KEY_R, (byte) KEY_S, (byte) KEY_T, (byte) KEY_U, (byte) KEY_V, (byte) KEY_W, (byte) KEY_X, (byte) KEY_Y, (byte) KEY_Z, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_POUND, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ARROW_UP, (byte) KEY_ARROW_LEFT, (byte) KEY_SPACE, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ASTERISK, (byte) KEY_PLUS, (byte) KEY_COMMA, (byte) KEY_MINUS, (byte) KEY_DOT, (byte) KEY_SLASH, (byte) KEY_0, (byte) KEY_1, (byte) KEY_2, (byte) KEY_3, (byte) KEY_4, (byte) KEY_5, (byte) KEY_6, (byte) KEY_7, (byte) KEY_8, (byte) KEY_9, (byte) KEY_COLON, (byte) KEY_SEMICOLON, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_EQUALS, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 }
Eliminating unused variable (byte[8]) keyboard_events and assignment [293] (byte[8]) keyboard_events ← { fill( 8, 0) }
Eliminating unused variable (byte) keyboard_events_size and assignment [294] (byte) keyboard_events_size ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) keyboard_modifiers and assignment [295] (byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) KEY_MODIFIER_CTRL and assignment [298] (byte) KEY_MODIFIER_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) KEY_MODIFIER_COMMODORE and assignment [299] (byte) KEY_MODIFIER_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) KEY_MODIFIER_SHIFT and assignment [301] (byte) KEY_MODIFIER_SHIFT ← (byte~) $0
Eliminating unused variable (byte[8]) keyboard_scan_values and assignment [302] (byte[8]) keyboard_scan_values ← { fill( 8, 0) }
Eliminating unused variable - keeping the call (void~) bitmap_line::$6
Eliminating unused variable - keeping the call (void~) bitmap_line::$5
Eliminating unused variable - keeping the call (void~) bitmap_line::$10

View File

@ -152,6 +152,13 @@ const byte VIC_CSEL = %00001000;
const byte* D018 = $d018;
const byte* VIC_MEMORY = $d018;
const byte* IRQ_STATUS = $d019;
const byte* IRQ_ENABLE = $d01a;
const byte IRQ_RASTER = %00000001;
const byte IRQ_COLLISION_BG = %00000010;
const byte IRQ_COLLISION_SPRITE = %00000100;
const byte IRQ_LIGHTPEN = %00001000;
const byte* COLS = $d800;
// CIA#1 Port A: keyboard matrix columns and joystick #2
@ -162,6 +169,10 @@ const byte* CIA1_PORT_B = $dc01;
const byte* CIA1_PORT_A_DDR = $dc02;
// CIA #1 Port B data direction register.
const byte* CIA1_PORT_B_DDR = $dc03;
// CIA#1 Interrupt Status & Control Register
const byte* CIA1_INTERRUPT = $dc0d;
// Value that disables all CIA interrupts when stored to the CIA Interrupt registers
const byte CIA_INTERRUPT_CLEAR = $7f;
// CIA#2 Port A: Serial bus, RS-232, VIC memory bank
const byte* CIA2_PORT_A = $dd00;
@ -171,6 +182,14 @@ const byte* CIA2_PORT_B = $dd01;
const byte* CIA2_PORT_A_DDR = $dd02;
// CIA #2 Port B data direction register.
const byte* CIA2_PORT_B_DDR = $dd03;
// CIA#2 Interrupt Status & Control Register
const byte* CIA2_INTERRUPT = $dd0d;
// The vector used when the KERNAL serves IRQ interrupts
const void()** KERNEL_IRQ = $0314;
// The vector used when the HARDWARE serves IRQ interrupts
const void()** HARDWARE_IRQ = $fffe;
const byte BLACK = $0;
const byte WHITE = $1;
@ -551,14 +570,17 @@ SYMBOLS
(byte*) BORDERCOL
(byte) BROWN
(byte*) CHARGEN
(byte*) CIA1_INTERRUPT
(byte*) CIA1_PORT_A
(byte*) CIA1_PORT_A_DDR
(byte*) CIA1_PORT_B
(byte*) CIA1_PORT_B_DDR
(byte*) CIA2_INTERRUPT
(byte*) CIA2_PORT_A
(byte*) CIA2_PORT_A_DDR
(byte*) CIA2_PORT_B
(byte*) CIA2_PORT_B_DDR
(byte) CIA_INTERRUPT_CLEAR
(byte*) COLS
(byte) CYAN
(byte*) D011
@ -567,6 +589,14 @@ SYMBOLS
(byte) DARK_GREY
(byte) GREEN
(byte) GREY
(void()**) HARDWARE_IRQ
(byte) IRQ_COLLISION_BG
(byte) IRQ_COLLISION_SPRITE
(byte*) IRQ_ENABLE
(byte) IRQ_LIGHTPEN
(byte) IRQ_RASTER
(byte*) IRQ_STATUS
(void()**) KERNEL_IRQ
(byte) KEY_0
(byte) KEY_1
(byte) KEY_2
@ -1085,15 +1115,21 @@ Promoting word/dword/signed dword to byte* in VIC_CONTROL2 ← ((byte*)) 53270
Promoting word/dword/signed dword to byte* in D016 ← ((byte*)) 53270
Promoting word/dword/signed dword to byte* in D018 ← ((byte*)) 53272
Promoting word/dword/signed dword to byte* in VIC_MEMORY ← ((byte*)) 53272
Promoting word/dword/signed dword to byte* in IRQ_STATUS ← ((byte*)) 53273
Promoting word/dword/signed dword to byte* in IRQ_ENABLE ← ((byte*)) 53274
Promoting word/dword/signed dword to byte* in COLS ← ((byte*)) 55296
Promoting word/dword/signed dword to byte* in CIA1_PORT_A ← ((byte*)) 56320
Promoting word/dword/signed dword to byte* in CIA1_PORT_B ← ((byte*)) 56321
Promoting word/dword/signed dword to byte* in CIA1_PORT_A_DDR ← ((byte*)) 56322
Promoting word/dword/signed dword to byte* in CIA1_PORT_B_DDR ← ((byte*)) 56323
Promoting word/dword/signed dword to byte* in CIA1_INTERRUPT ← ((byte*)) 56333
Promoting word/dword/signed dword to byte* in CIA2_PORT_A ← ((byte*)) 56576
Promoting word/dword/signed dword to byte* in CIA2_PORT_B ← ((byte*)) 56577
Promoting word/dword/signed dword to byte* in CIA2_PORT_A_DDR ← ((byte*)) 56578
Promoting word/dword/signed dword to byte* in CIA2_PORT_B_DDR ← ((byte*)) 56579
Promoting word/dword/signed dword to byte* in CIA2_INTERRUPT ← ((byte*)) 56589
Promoting word/signed word/dword/signed dword to void()** in KERNEL_IRQ ← ((void()**)) 788
Promoting word/dword/signed dword to void()** in HARDWARE_IRQ ← ((void()**)) 65534
Promoting byte to word in mul8u::mb ← ((word)) mul8u::b
Promoting word to dword in mul16u::mb ← ((dword)) mul16u::b
Promoting word/signed word/dword/signed dword to byte* in SCREEN ← ((byte*)) 1024
@ -1139,15 +1175,26 @@ INITIAL CONTROL FLOW GRAPH
(byte) VIC_CSEL ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte*) D018 ← ((byte*)) (word/dword/signed dword) 53272
(byte*) VIC_MEMORY ← ((byte*)) (word/dword/signed dword) 53272
(byte*) IRQ_STATUS ← ((byte*)) (word/dword/signed dword) 53273
(byte*) IRQ_ENABLE ← ((byte*)) (word/dword/signed dword) 53274
(byte) IRQ_RASTER ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) IRQ_COLLISION_BG ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) IRQ_COLLISION_SPRITE ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) IRQ_LIGHTPEN ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
(byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
(byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
(byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
(byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
(byte*) CIA1_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56333
(byte) CIA_INTERRUPT_CLEAR ← (byte/signed byte/word/signed word/dword/signed dword) 127
(byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
(byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
(byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
(byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
(byte*) CIA2_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56589
(void()**) KERNEL_IRQ ← ((void()**)) (word/signed word/dword/signed dword) 788
(void()**) HARDWARE_IRQ ← ((void()**)) (word/dword/signed dword) 65534
(byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
@ -1948,45 +1995,56 @@ Eliminating unused variable (byte) VIC_MCM and assignment [36] (byte) VIC_MCM
Eliminating unused variable (byte) VIC_CSEL and assignment [37] (byte) VIC_CSEL ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte*) D018 and assignment [38] (byte*) D018 ← ((byte*)) (word/dword/signed dword) 53272
Eliminating unused variable (byte*) VIC_MEMORY and assignment [39] (byte*) VIC_MEMORY ← ((byte*)) (word/dword/signed dword) 53272
Eliminating unused variable (byte*) COLS and assignment [40] (byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
Eliminating unused variable (byte*) CIA1_PORT_A_DDR and assignment [43] (byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
Eliminating unused variable (byte*) CIA1_PORT_B_DDR and assignment [44] (byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
Eliminating unused variable (byte*) CIA2_PORT_A and assignment [45] (byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
Eliminating unused variable (byte*) CIA2_PORT_B and assignment [46] (byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
Eliminating unused variable (byte*) CIA2_PORT_A_DDR and assignment [47] (byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
Eliminating unused variable (byte*) CIA2_PORT_B_DDR and assignment [48] (byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
Eliminating unused variable (byte) BLACK and assignment [49] (byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) WHITE and assignment [50] (byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) RED and assignment [51] (byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) CYAN and assignment [52] (byte) CYAN ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) PURPLE and assignment [53] (byte) PURPLE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) GREEN and assignment [54] (byte) GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) BLUE and assignment [55] (byte) BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) YELLOW and assignment [56] (byte) YELLOW ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) ORANGE and assignment [57] (byte) ORANGE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) BROWN and assignment [58] (byte) BROWN ← (byte/signed byte/word/signed word/dword/signed dword) 9
Eliminating unused variable (byte) PINK and assignment [59] (byte) PINK ← (byte/signed byte/word/signed word/dword/signed dword) 10
Eliminating unused variable (byte) DARK_GREY and assignment [60] (byte) DARK_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 11
Eliminating unused variable (byte) GREY and assignment [61] (byte) GREY ← (byte/signed byte/word/signed word/dword/signed dword) 12
Eliminating unused variable (byte) LIGHT_GREEN and assignment [62] (byte) LIGHT_GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 13
Eliminating unused variable (byte) LIGHT_BLUE and assignment [63] (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 14
Eliminating unused variable (byte) LIGHT_GREY and assignment [64] (byte) LIGHT_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable (byte) KEY_DEL and assignment [82] (byte) KEY_DEL ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) KEY_RETURN and assignment [83] (byte) KEY_RETURN ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) KEY_CRSR_RIGHT and assignment [84] (byte) KEY_CRSR_RIGHT ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) KEY_CRSR_DOWN and assignment [89] (byte) KEY_CRSR_DOWN ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) KEY_HOME and assignment [133] (byte) KEY_HOME ← (byte/signed byte/word/signed word/dword/signed dword) 51
Eliminating unused variable (byte) KEY_RSHIFT and assignment [134] (byte) KEY_RSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 52
Eliminating unused variable (byte) KEY_CTRL and assignment [140] (byte) KEY_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 58
Eliminating unused variable (byte) KEY_COMMODORE and assignment [143] (byte) KEY_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 61
Eliminating unused variable (byte) KEY_RUNSTOP and assignment [145] (byte) KEY_RUNSTOP ← (byte/signed byte/word/signed word/dword/signed dword) 63
Eliminating unused variable (byte[8]) keyboard_events and assignment [167] (byte[8]) keyboard_events ← { fill( 8, 0) }
Eliminating unused variable (byte) keyboard_events_size and assignment [168] (byte) keyboard_events_size ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) keyboard_modifiers and assignment [169] (byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) KEY_MODIFIER_CTRL and assignment [172] (byte) KEY_MODIFIER_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) KEY_MODIFIER_COMMODORE and assignment [173] (byte) KEY_MODIFIER_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) KEY_MODIFIER_SHIFT and assignment [175] (byte) KEY_MODIFIER_SHIFT ← (byte~) $0
Eliminating unused variable (byte[8]) keyboard_scan_values and assignment [176] (byte[8]) keyboard_scan_values ← { fill( 8, 0) }
Eliminating unused variable (byte*) IRQ_STATUS and assignment [40] (byte*) IRQ_STATUS ← ((byte*)) (word/dword/signed dword) 53273
Eliminating unused variable (byte*) IRQ_ENABLE and assignment [41] (byte*) IRQ_ENABLE ← ((byte*)) (word/dword/signed dword) 53274
Eliminating unused variable (byte) IRQ_RASTER and assignment [42] (byte) IRQ_RASTER ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) IRQ_COLLISION_BG and assignment [43] (byte) IRQ_COLLISION_BG ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) IRQ_COLLISION_SPRITE and assignment [44] (byte) IRQ_COLLISION_SPRITE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) IRQ_LIGHTPEN and assignment [45] (byte) IRQ_LIGHTPEN ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte*) COLS and assignment [46] (byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
Eliminating unused variable (byte*) CIA1_PORT_A_DDR and assignment [49] (byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
Eliminating unused variable (byte*) CIA1_PORT_B_DDR and assignment [50] (byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
Eliminating unused variable (byte*) CIA1_INTERRUPT and assignment [51] (byte*) CIA1_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56333
Eliminating unused variable (byte) CIA_INTERRUPT_CLEAR and assignment [52] (byte) CIA_INTERRUPT_CLEAR ← (byte/signed byte/word/signed word/dword/signed dword) 127
Eliminating unused variable (byte*) CIA2_PORT_A and assignment [53] (byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
Eliminating unused variable (byte*) CIA2_PORT_B and assignment [54] (byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
Eliminating unused variable (byte*) CIA2_PORT_A_DDR and assignment [55] (byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
Eliminating unused variable (byte*) CIA2_PORT_B_DDR and assignment [56] (byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
Eliminating unused variable (byte*) CIA2_INTERRUPT and assignment [57] (byte*) CIA2_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56589
Eliminating unused variable (void()**) KERNEL_IRQ and assignment [58] (void()**) KERNEL_IRQ ← ((void()**)) (word/signed word/dword/signed dword) 788
Eliminating unused variable (void()**) HARDWARE_IRQ and assignment [59] (void()**) HARDWARE_IRQ ← ((void()**)) (word/dword/signed dword) 65534
Eliminating unused variable (byte) BLACK and assignment [60] (byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) WHITE and assignment [61] (byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) RED and assignment [62] (byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) CYAN and assignment [63] (byte) CYAN ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) PURPLE and assignment [64] (byte) PURPLE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) GREEN and assignment [65] (byte) GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) BLUE and assignment [66] (byte) BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) YELLOW and assignment [67] (byte) YELLOW ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) ORANGE and assignment [68] (byte) ORANGE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) BROWN and assignment [69] (byte) BROWN ← (byte/signed byte/word/signed word/dword/signed dword) 9
Eliminating unused variable (byte) PINK and assignment [70] (byte) PINK ← (byte/signed byte/word/signed word/dword/signed dword) 10
Eliminating unused variable (byte) DARK_GREY and assignment [71] (byte) DARK_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 11
Eliminating unused variable (byte) GREY and assignment [72] (byte) GREY ← (byte/signed byte/word/signed word/dword/signed dword) 12
Eliminating unused variable (byte) LIGHT_GREEN and assignment [73] (byte) LIGHT_GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 13
Eliminating unused variable (byte) LIGHT_BLUE and assignment [74] (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 14
Eliminating unused variable (byte) LIGHT_GREY and assignment [75] (byte) LIGHT_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable (byte) KEY_DEL and assignment [93] (byte) KEY_DEL ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) KEY_RETURN and assignment [94] (byte) KEY_RETURN ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) KEY_CRSR_RIGHT and assignment [95] (byte) KEY_CRSR_RIGHT ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) KEY_CRSR_DOWN and assignment [100] (byte) KEY_CRSR_DOWN ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) KEY_HOME and assignment [144] (byte) KEY_HOME ← (byte/signed byte/word/signed word/dword/signed dword) 51
Eliminating unused variable (byte) KEY_RSHIFT and assignment [145] (byte) KEY_RSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 52
Eliminating unused variable (byte) KEY_CTRL and assignment [151] (byte) KEY_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 58
Eliminating unused variable (byte) KEY_COMMODORE and assignment [154] (byte) KEY_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 61
Eliminating unused variable (byte) KEY_RUNSTOP and assignment [156] (byte) KEY_RUNSTOP ← (byte/signed byte/word/signed word/dword/signed dword) 63
Eliminating unused variable (byte[8]) keyboard_events and assignment [178] (byte[8]) keyboard_events ← { fill( 8, 0) }
Eliminating unused variable (byte) keyboard_events_size and assignment [179] (byte) keyboard_events_size ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) keyboard_modifiers and assignment [180] (byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) KEY_MODIFIER_CTRL and assignment [183] (byte) KEY_MODIFIER_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) KEY_MODIFIER_COMMODORE and assignment [184] (byte) KEY_MODIFIER_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) KEY_MODIFIER_SHIFT and assignment [186] (byte) KEY_MODIFIER_SHIFT ← (byte~) $0
Eliminating unused variable (byte[8]) keyboard_scan_values and assignment [187] (byte[8]) keyboard_scan_values ← { fill( 8, 0) }
Eliminating unused variable - keeping the call (void~) main::$3
Eliminating unused variable - keeping the call (void~) main::$6
Eliminating unused variable - keeping the call (void~) main::$9

View File

@ -1,22 +1,22 @@
.pc = $801 "Basic"
:BasicUpstart(main)
.pc = $80d "Program"
.label HARDWARE_IRQ = $fffe
.label RASTER = $d012
.label VIC_CONTROL = $d011
.label IRQ_STATUS = $d019
.label IRQ_ENABLE = $d01a
.const IRQ_RASTER = 1
.label BGCOL = $d020
.label FGCOL = $d021
.const WHITE = 1
.const BLACK = 0
.label CIA1_INTERRUPT = $dc0d
.const CIA_INTERRUPT_CLEAR = $7f
.label PROCPORT_DDR = 0
.const PROCPORT_DDR_MEMORY_MASK = 7
.label PROCPORT = 1
.const PROCPORT_RAM_IO = $35
.label RASTER = $d012
.label BORDERCOL = $d020
.label BGCOL = $d021
.label VIC_CONTROL = $d011
.label IRQ_STATUS = $d019
.label IRQ_ENABLE = $d01a
.const IRQ_RASTER = 1
.label CIA1_INTERRUPT = $dc0d
.const CIA_INTERRUPT_CLEAR = $7f
.label HARDWARE_IRQ = $fffe
.const BLACK = 0
.const WHITE = 1
jsr main
main: {
sei
@ -39,7 +39,7 @@ main: {
sta HARDWARE_IRQ+1
cli
b2:
inc FGCOL
inc BORDERCOL
jmp b2
}
irq: {

View File

@ -1,13 +1,13 @@
@begin: scope:[] from
[0] phi() [ ] ( )
to:@3
@3: scope:[] from @begin
to:@6
@6: scope:[] from @begin
[1] phi() [ ] ( )
[2] call main [ ] ( )
to:@end
@end: scope:[] from @3
@end: scope:[] from @6
[3] phi() [ ] ( )
main: scope:[main] from @3
main: scope:[main] from @6
asm { sei }
[5] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:2 [ ] )
[6] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:2 [ ] )
@ -19,7 +19,7 @@ main: scope:[main] from @3
asm { cli }
to:main::@2
main::@2: scope:[main] from main main::@2
[13] *((const byte*) FGCOL#0) ← ++ *((const byte*) FGCOL#0) [ ] ( main:2 [ ] )
[13] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ ] ( main:2 [ ] )
to:main::@2
irq: scope:[irq] from
[14] phi() [ ] ( )

View File

@ -1,16 +1,16 @@
(label) @3
(label) @6
(label) @begin
(label) @end
(byte*) BGCOL
(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53280
(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281
(byte) BLACK
(const byte) BLACK#0 BLACK = (byte/signed byte/word/signed word/dword/signed dword) 0
(byte*) BORDERCOL
(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280
(byte*) CIA1_INTERRUPT
(const byte*) CIA1_INTERRUPT#0 CIA1_INTERRUPT = ((byte*))(word/dword/signed dword) 56333
(byte) CIA_INTERRUPT_CLEAR
(const byte) CIA_INTERRUPT_CLEAR#0 CIA_INTERRUPT_CLEAR = (byte/signed byte/word/signed word/dword/signed dword) 127
(byte*) FGCOL
(const byte*) FGCOL#0 FGCOL = ((byte*))(word/dword/signed dword) 53281
(void()**) HARDWARE_IRQ
(const void()**) HARDWARE_IRQ#0 HARDWARE_IRQ = ((void()**))(word/dword/signed dword) 65534
(byte*) IRQ_ENABLE

View File

@ -344,6 +344,13 @@ const byte VIC_CSEL = %00001000;
const byte* D018 = $d018;
const byte* VIC_MEMORY = $d018;
const byte* IRQ_STATUS = $d019;
const byte* IRQ_ENABLE = $d01a;
const byte IRQ_RASTER = %00000001;
const byte IRQ_COLLISION_BG = %00000010;
const byte IRQ_COLLISION_SPRITE = %00000100;
const byte IRQ_LIGHTPEN = %00001000;
const byte* COLS = $d800;
// CIA#1 Port A: keyboard matrix columns and joystick #2
@ -354,6 +361,10 @@ const byte* CIA1_PORT_B = $dc01;
const byte* CIA1_PORT_A_DDR = $dc02;
// CIA #1 Port B data direction register.
const byte* CIA1_PORT_B_DDR = $dc03;
// CIA#1 Interrupt Status & Control Register
const byte* CIA1_INTERRUPT = $dc0d;
// Value that disables all CIA interrupts when stored to the CIA Interrupt registers
const byte CIA_INTERRUPT_CLEAR = $7f;
// CIA#2 Port A: Serial bus, RS-232, VIC memory bank
const byte* CIA2_PORT_A = $dd00;
@ -363,6 +374,14 @@ const byte* CIA2_PORT_B = $dd01;
const byte* CIA2_PORT_A_DDR = $dd02;
// CIA #2 Port B data direction register.
const byte* CIA2_PORT_B_DDR = $dd03;
// CIA#2 Interrupt Status & Control Register
const byte* CIA2_INTERRUPT = $dd0d;
// The vector used when the KERNAL serves IRQ interrupts
const void()** KERNEL_IRQ = $0314;
// The vector used when the HARDWARE serves IRQ interrupts
const void()** HARDWARE_IRQ = $fffe;
const byte BLACK = $0;
const byte WHITE = $1;
@ -433,14 +452,17 @@ SYMBOLS
(byte*) BORDERCOL
(byte) BROWN
(byte*) CHARGEN
(byte*) CIA1_INTERRUPT
(byte*) CIA1_PORT_A
(byte*) CIA1_PORT_A_DDR
(byte*) CIA1_PORT_B
(byte*) CIA1_PORT_B_DDR
(byte*) CIA2_INTERRUPT
(byte*) CIA2_PORT_A
(byte*) CIA2_PORT_A_DDR
(byte*) CIA2_PORT_B
(byte*) CIA2_PORT_B_DDR
(byte) CIA_INTERRUPT_CLEAR
(byte*) COLS
(byte) CYAN
(byte*) D011
@ -449,6 +471,14 @@ SYMBOLS
(byte) DARK_GREY
(byte) GREEN
(byte) GREY
(void()**) HARDWARE_IRQ
(byte) IRQ_COLLISION_BG
(byte) IRQ_COLLISION_SPRITE
(byte*) IRQ_ENABLE
(byte) IRQ_LIGHTPEN
(byte) IRQ_RASTER
(byte*) IRQ_STATUS
(void()**) KERNEL_IRQ
(byte) KEY_0
(byte) KEY_1
(byte) KEY_2
@ -776,15 +806,21 @@ Promoting word/dword/signed dword to byte* in VIC_CONTROL2 ← ((byte*)) 53270
Promoting word/dword/signed dword to byte* in D016 ← ((byte*)) 53270
Promoting word/dword/signed dword to byte* in D018 ← ((byte*)) 53272
Promoting word/dword/signed dword to byte* in VIC_MEMORY ← ((byte*)) 53272
Promoting word/dword/signed dword to byte* in IRQ_STATUS ← ((byte*)) 53273
Promoting word/dword/signed dword to byte* in IRQ_ENABLE ← ((byte*)) 53274
Promoting word/dword/signed dword to byte* in COLS ← ((byte*)) 55296
Promoting word/dword/signed dword to byte* in CIA1_PORT_A ← ((byte*)) 56320
Promoting word/dword/signed dword to byte* in CIA1_PORT_B ← ((byte*)) 56321
Promoting word/dword/signed dword to byte* in CIA1_PORT_A_DDR ← ((byte*)) 56322
Promoting word/dword/signed dword to byte* in CIA1_PORT_B_DDR ← ((byte*)) 56323
Promoting word/dword/signed dword to byte* in CIA1_INTERRUPT ← ((byte*)) 56333
Promoting word/dword/signed dword to byte* in CIA2_PORT_A ← ((byte*)) 56576
Promoting word/dword/signed dword to byte* in CIA2_PORT_B ← ((byte*)) 56577
Promoting word/dword/signed dword to byte* in CIA2_PORT_A_DDR ← ((byte*)) 56578
Promoting word/dword/signed dword to byte* in CIA2_PORT_B_DDR ← ((byte*)) 56579
Promoting word/dword/signed dword to byte* in CIA2_INTERRUPT ← ((byte*)) 56589
Promoting word/signed word/dword/signed dword to void()** in KERNEL_IRQ ← ((void()**)) 788
Promoting word/dword/signed dword to void()** in HARDWARE_IRQ ← ((void()**)) 65534
Promoting word/signed word/dword/signed dword to byte* in SCREEN ← ((byte*)) 1024
INITIAL CONTROL FLOW GRAPH
@begin: scope:[] from
@ -828,15 +864,26 @@ INITIAL CONTROL FLOW GRAPH
(byte) VIC_CSEL ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte*) D018 ← ((byte*)) (word/dword/signed dword) 53272
(byte*) VIC_MEMORY ← ((byte*)) (word/dword/signed dword) 53272
(byte*) IRQ_STATUS ← ((byte*)) (word/dword/signed dword) 53273
(byte*) IRQ_ENABLE ← ((byte*)) (word/dword/signed dword) 53274
(byte) IRQ_RASTER ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) IRQ_COLLISION_BG ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) IRQ_COLLISION_SPRITE ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) IRQ_LIGHTPEN ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
(byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
(byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
(byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
(byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
(byte*) CIA1_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56333
(byte) CIA_INTERRUPT_CLEAR ← (byte/signed byte/word/signed word/dword/signed dword) 127
(byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
(byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
(byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
(byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
(byte*) CIA2_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56589
(void()**) KERNEL_IRQ ← ((void()**)) (word/signed word/dword/signed dword) 788
(void()**) HARDWARE_IRQ ← ((void()**)) (word/dword/signed dword) 65534
(byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
@ -1341,49 +1388,60 @@ Eliminating unused variable (byte) VIC_MCM and assignment [36] (byte) VIC_MCM
Eliminating unused variable (byte) VIC_CSEL and assignment [37] (byte) VIC_CSEL ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte*) D018 and assignment [38] (byte*) D018 ← ((byte*)) (word/dword/signed dword) 53272
Eliminating unused variable (byte*) VIC_MEMORY and assignment [39] (byte*) VIC_MEMORY ← ((byte*)) (word/dword/signed dword) 53272
Eliminating unused variable (byte*) COLS and assignment [40] (byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
Eliminating unused variable (byte*) CIA1_PORT_A_DDR and assignment [43] (byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
Eliminating unused variable (byte*) CIA1_PORT_B_DDR and assignment [44] (byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
Eliminating unused variable (byte*) CIA2_PORT_A and assignment [45] (byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
Eliminating unused variable (byte*) CIA2_PORT_B and assignment [46] (byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
Eliminating unused variable (byte*) CIA2_PORT_A_DDR and assignment [47] (byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
Eliminating unused variable (byte*) CIA2_PORT_B_DDR and assignment [48] (byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
Eliminating unused variable (byte) BLACK and assignment [49] (byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) WHITE and assignment [50] (byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) CYAN and assignment [52] (byte) CYAN ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) PURPLE and assignment [53] (byte) PURPLE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) BLUE and assignment [55] (byte) BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) YELLOW and assignment [56] (byte) YELLOW ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) ORANGE and assignment [57] (byte) ORANGE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) BROWN and assignment [58] (byte) BROWN ← (byte/signed byte/word/signed word/dword/signed dword) 9
Eliminating unused variable (byte) PINK and assignment [59] (byte) PINK ← (byte/signed byte/word/signed word/dword/signed dword) 10
Eliminating unused variable (byte) DARK_GREY and assignment [60] (byte) DARK_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 11
Eliminating unused variable (byte) GREY and assignment [61] (byte) GREY ← (byte/signed byte/word/signed word/dword/signed dword) 12
Eliminating unused variable (byte) LIGHT_GREEN and assignment [62] (byte) LIGHT_GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 13
Eliminating unused variable (byte) LIGHT_BLUE and assignment [63] (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 14
Eliminating unused variable (byte) LIGHT_GREY and assignment [64] (byte) LIGHT_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable (byte) KEY_DEL and assignment [65] (byte) KEY_DEL ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) KEY_RETURN and assignment [66] (byte) KEY_RETURN ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) KEY_CRSR_RIGHT and assignment [67] (byte) KEY_CRSR_RIGHT ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) KEY_F7 and assignment [68] (byte) KEY_F7 ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) KEY_F1 and assignment [69] (byte) KEY_F1 ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) KEY_F3 and assignment [70] (byte) KEY_F3 ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) KEY_F5 and assignment [71] (byte) KEY_F5 ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) KEY_CRSR_DOWN and assignment [72] (byte) KEY_CRSR_DOWN ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) KEY_LSHIFT and assignment [80] (byte) KEY_LSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable (byte) KEY_HOME and assignment [116] (byte) KEY_HOME ← (byte/signed byte/word/signed word/dword/signed dword) 51
Eliminating unused variable (byte) KEY_RSHIFT and assignment [117] (byte) KEY_RSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 52
Eliminating unused variable (byte) KEY_CTRL and assignment [123] (byte) KEY_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 58
Eliminating unused variable (byte) KEY_COMMODORE and assignment [126] (byte) KEY_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 61
Eliminating unused variable (byte) KEY_RUNSTOP and assignment [128] (byte) KEY_RUNSTOP ← (byte/signed byte/word/signed word/dword/signed dword) 63
Eliminating unused variable (byte[]) keyboard_char_keycodes and assignment [129] (byte[]) keyboard_char_keycodes ← { (byte) KEY_AT, (byte) KEY_A, (byte) KEY_B, (byte) KEY_C, (byte) KEY_D, (byte) KEY_E, (byte) KEY_F, (byte) KEY_G, (byte) KEY_H, (byte) KEY_I, (byte) KEY_J, (byte) KEY_K, (byte) KEY_L, (byte) KEY_M, (byte) KEY_N, (byte) KEY_O, (byte) KEY_P, (byte) KEY_Q, (byte) KEY_R, (byte) KEY_S, (byte) KEY_T, (byte) KEY_U, (byte) KEY_V, (byte) KEY_W, (byte) KEY_X, (byte) KEY_Y, (byte) KEY_Z, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_POUND, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ARROW_UP, (byte) KEY_ARROW_LEFT, (byte) KEY_SPACE, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ASTERISK, (byte) KEY_PLUS, (byte) KEY_COMMA, (byte) KEY_MINUS, (byte) KEY_DOT, (byte) KEY_SLASH, (byte) KEY_0, (byte) KEY_1, (byte) KEY_2, (byte) KEY_3, (byte) KEY_4, (byte) KEY_5, (byte) KEY_6, (byte) KEY_7, (byte) KEY_8, (byte) KEY_9, (byte) KEY_COLON, (byte) KEY_SEMICOLON, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_EQUALS, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 }
Eliminating unused variable (byte[8]) keyboard_events and assignment [147] (byte[8]) keyboard_events ← { fill( 8, 0) }
Eliminating unused variable (byte) keyboard_events_size and assignment [148] (byte) keyboard_events_size ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) keyboard_modifiers and assignment [149] (byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) KEY_MODIFIER_CTRL and assignment [152] (byte) KEY_MODIFIER_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) KEY_MODIFIER_COMMODORE and assignment [153] (byte) KEY_MODIFIER_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) KEY_MODIFIER_SHIFT and assignment [155] (byte) KEY_MODIFIER_SHIFT ← (byte~) $0
Eliminating unused variable (byte[8]) keyboard_scan_values and assignment [156] (byte[8]) keyboard_scan_values ← { fill( 8, 0) }
Eliminating unused variable (byte*) IRQ_STATUS and assignment [40] (byte*) IRQ_STATUS ← ((byte*)) (word/dword/signed dword) 53273
Eliminating unused variable (byte*) IRQ_ENABLE and assignment [41] (byte*) IRQ_ENABLE ← ((byte*)) (word/dword/signed dword) 53274
Eliminating unused variable (byte) IRQ_RASTER and assignment [42] (byte) IRQ_RASTER ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) IRQ_COLLISION_BG and assignment [43] (byte) IRQ_COLLISION_BG ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) IRQ_COLLISION_SPRITE and assignment [44] (byte) IRQ_COLLISION_SPRITE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) IRQ_LIGHTPEN and assignment [45] (byte) IRQ_LIGHTPEN ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte*) COLS and assignment [46] (byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
Eliminating unused variable (byte*) CIA1_PORT_A_DDR and assignment [49] (byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
Eliminating unused variable (byte*) CIA1_PORT_B_DDR and assignment [50] (byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
Eliminating unused variable (byte*) CIA1_INTERRUPT and assignment [51] (byte*) CIA1_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56333
Eliminating unused variable (byte) CIA_INTERRUPT_CLEAR and assignment [52] (byte) CIA_INTERRUPT_CLEAR ← (byte/signed byte/word/signed word/dword/signed dword) 127
Eliminating unused variable (byte*) CIA2_PORT_A and assignment [53] (byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
Eliminating unused variable (byte*) CIA2_PORT_B and assignment [54] (byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
Eliminating unused variable (byte*) CIA2_PORT_A_DDR and assignment [55] (byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
Eliminating unused variable (byte*) CIA2_PORT_B_DDR and assignment [56] (byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
Eliminating unused variable (byte*) CIA2_INTERRUPT and assignment [57] (byte*) CIA2_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56589
Eliminating unused variable (void()**) KERNEL_IRQ and assignment [58] (void()**) KERNEL_IRQ ← ((void()**)) (word/signed word/dword/signed dword) 788
Eliminating unused variable (void()**) HARDWARE_IRQ and assignment [59] (void()**) HARDWARE_IRQ ← ((void()**)) (word/dword/signed dword) 65534
Eliminating unused variable (byte) BLACK and assignment [60] (byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) WHITE and assignment [61] (byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) CYAN and assignment [63] (byte) CYAN ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) PURPLE and assignment [64] (byte) PURPLE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) BLUE and assignment [66] (byte) BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) YELLOW and assignment [67] (byte) YELLOW ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) ORANGE and assignment [68] (byte) ORANGE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) BROWN and assignment [69] (byte) BROWN ← (byte/signed byte/word/signed word/dword/signed dword) 9
Eliminating unused variable (byte) PINK and assignment [70] (byte) PINK ← (byte/signed byte/word/signed word/dword/signed dword) 10
Eliminating unused variable (byte) DARK_GREY and assignment [71] (byte) DARK_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 11
Eliminating unused variable (byte) GREY and assignment [72] (byte) GREY ← (byte/signed byte/word/signed word/dword/signed dword) 12
Eliminating unused variable (byte) LIGHT_GREEN and assignment [73] (byte) LIGHT_GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 13
Eliminating unused variable (byte) LIGHT_BLUE and assignment [74] (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 14
Eliminating unused variable (byte) LIGHT_GREY and assignment [75] (byte) LIGHT_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable (byte) KEY_DEL and assignment [76] (byte) KEY_DEL ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) KEY_RETURN and assignment [77] (byte) KEY_RETURN ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) KEY_CRSR_RIGHT and assignment [78] (byte) KEY_CRSR_RIGHT ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) KEY_F7 and assignment [79] (byte) KEY_F7 ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) KEY_F1 and assignment [80] (byte) KEY_F1 ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) KEY_F3 and assignment [81] (byte) KEY_F3 ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) KEY_F5 and assignment [82] (byte) KEY_F5 ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) KEY_CRSR_DOWN and assignment [83] (byte) KEY_CRSR_DOWN ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) KEY_LSHIFT and assignment [91] (byte) KEY_LSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable (byte) KEY_HOME and assignment [127] (byte) KEY_HOME ← (byte/signed byte/word/signed word/dword/signed dword) 51
Eliminating unused variable (byte) KEY_RSHIFT and assignment [128] (byte) KEY_RSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 52
Eliminating unused variable (byte) KEY_CTRL and assignment [134] (byte) KEY_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 58
Eliminating unused variable (byte) KEY_COMMODORE and assignment [137] (byte) KEY_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 61
Eliminating unused variable (byte) KEY_RUNSTOP and assignment [139] (byte) KEY_RUNSTOP ← (byte/signed byte/word/signed word/dword/signed dword) 63
Eliminating unused variable (byte[]) keyboard_char_keycodes and assignment [140] (byte[]) keyboard_char_keycodes ← { (byte) KEY_AT, (byte) KEY_A, (byte) KEY_B, (byte) KEY_C, (byte) KEY_D, (byte) KEY_E, (byte) KEY_F, (byte) KEY_G, (byte) KEY_H, (byte) KEY_I, (byte) KEY_J, (byte) KEY_K, (byte) KEY_L, (byte) KEY_M, (byte) KEY_N, (byte) KEY_O, (byte) KEY_P, (byte) KEY_Q, (byte) KEY_R, (byte) KEY_S, (byte) KEY_T, (byte) KEY_U, (byte) KEY_V, (byte) KEY_W, (byte) KEY_X, (byte) KEY_Y, (byte) KEY_Z, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_POUND, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ARROW_UP, (byte) KEY_ARROW_LEFT, (byte) KEY_SPACE, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ASTERISK, (byte) KEY_PLUS, (byte) KEY_COMMA, (byte) KEY_MINUS, (byte) KEY_DOT, (byte) KEY_SLASH, (byte) KEY_0, (byte) KEY_1, (byte) KEY_2, (byte) KEY_3, (byte) KEY_4, (byte) KEY_5, (byte) KEY_6, (byte) KEY_7, (byte) KEY_8, (byte) KEY_9, (byte) KEY_COLON, (byte) KEY_SEMICOLON, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_EQUALS, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 }
Eliminating unused variable (byte[8]) keyboard_events and assignment [158] (byte[8]) keyboard_events ← { fill( 8, 0) }
Eliminating unused variable (byte) keyboard_events_size and assignment [159] (byte) keyboard_events_size ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) keyboard_modifiers and assignment [160] (byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) KEY_MODIFIER_CTRL and assignment [163] (byte) KEY_MODIFIER_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) KEY_MODIFIER_COMMODORE and assignment [164] (byte) KEY_MODIFIER_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) KEY_MODIFIER_SHIFT and assignment [166] (byte) KEY_MODIFIER_SHIFT ← (byte~) $0
Eliminating unused variable (byte[8]) keyboard_scan_values and assignment [167] (byte[8]) keyboard_scan_values ← { fill( 8, 0) }
Eliminating unused variable - keeping the call (void~) main::$0
Eliminating unused variable - keeping the call (void~) menu::$3
Eliminating unused variable (byte) KEY_3 and assignment [6] (byte) KEY_3 ← (byte/signed byte/word/signed word/dword/signed dword) 8

View File

@ -194,6 +194,13 @@ const byte VIC_CSEL = %00001000;
const byte* D018 = $d018;
const byte* VIC_MEMORY = $d018;
const byte* IRQ_STATUS = $d019;
const byte* IRQ_ENABLE = $d01a;
const byte IRQ_RASTER = %00000001;
const byte IRQ_COLLISION_BG = %00000010;
const byte IRQ_COLLISION_SPRITE = %00000100;
const byte IRQ_LIGHTPEN = %00001000;
const byte* COLS = $d800;
// CIA#1 Port A: keyboard matrix columns and joystick #2
@ -204,6 +211,10 @@ const byte* CIA1_PORT_B = $dc01;
const byte* CIA1_PORT_A_DDR = $dc02;
// CIA #1 Port B data direction register.
const byte* CIA1_PORT_B_DDR = $dc03;
// CIA#1 Interrupt Status & Control Register
const byte* CIA1_INTERRUPT = $dc0d;
// Value that disables all CIA interrupts when stored to the CIA Interrupt registers
const byte CIA_INTERRUPT_CLEAR = $7f;
// CIA#2 Port A: Serial bus, RS-232, VIC memory bank
const byte* CIA2_PORT_A = $dd00;
@ -213,6 +224,14 @@ const byte* CIA2_PORT_B = $dd01;
const byte* CIA2_PORT_A_DDR = $dd02;
// CIA #2 Port B data direction register.
const byte* CIA2_PORT_B_DDR = $dd03;
// CIA#2 Interrupt Status & Control Register
const byte* CIA2_INTERRUPT = $dd0d;
// The vector used when the KERNAL serves IRQ interrupts
const void()** KERNEL_IRQ = $0314;
// The vector used when the HARDWARE serves IRQ interrupts
const void()** HARDWARE_IRQ = $fffe;
const byte BLACK = $0;
const byte WHITE = $1;
@ -449,14 +468,17 @@ SYMBOLS
(byte*) BORDERCOL
(byte) BROWN
(byte*) CHARGEN
(byte*) CIA1_INTERRUPT
(byte*) CIA1_PORT_A
(byte*) CIA1_PORT_A_DDR
(byte*) CIA1_PORT_B
(byte*) CIA1_PORT_B_DDR
(byte*) CIA2_INTERRUPT
(byte*) CIA2_PORT_A
(byte*) CIA2_PORT_A_DDR
(byte*) CIA2_PORT_B
(byte*) CIA2_PORT_B_DDR
(byte) CIA_INTERRUPT_CLEAR
(byte*) COLS
(byte) CYAN
(byte*) D011
@ -466,6 +488,14 @@ SYMBOLS
(byte) DELAY
(byte) GREEN
(byte) GREY
(void()**) HARDWARE_IRQ
(byte) IRQ_COLLISION_BG
(byte) IRQ_COLLISION_SPRITE
(byte*) IRQ_ENABLE
(byte) IRQ_LIGHTPEN
(byte) IRQ_RASTER
(byte*) IRQ_STATUS
(void()**) KERNEL_IRQ
(byte) LIGHT_BLUE
(byte) LIGHT_GREEN
(byte) LIGHT_GREY
@ -892,15 +922,21 @@ Promoting word/dword/signed dword to byte* in VIC_CONTROL2 ← ((byte*)) 53270
Promoting word/dword/signed dword to byte* in D016 ← ((byte*)) 53270
Promoting word/dword/signed dword to byte* in D018 ← ((byte*)) 53272
Promoting word/dword/signed dword to byte* in VIC_MEMORY ← ((byte*)) 53272
Promoting word/dword/signed dword to byte* in IRQ_STATUS ← ((byte*)) 53273
Promoting word/dword/signed dword to byte* in IRQ_ENABLE ← ((byte*)) 53274
Promoting word/dword/signed dword to byte* in COLS ← ((byte*)) 55296
Promoting word/dword/signed dword to byte* in CIA1_PORT_A ← ((byte*)) 56320
Promoting word/dword/signed dword to byte* in CIA1_PORT_B ← ((byte*)) 56321
Promoting word/dword/signed dword to byte* in CIA1_PORT_A_DDR ← ((byte*)) 56322
Promoting word/dword/signed dword to byte* in CIA1_PORT_B_DDR ← ((byte*)) 56323
Promoting word/dword/signed dword to byte* in CIA1_INTERRUPT ← ((byte*)) 56333
Promoting word/dword/signed dword to byte* in CIA2_PORT_A ← ((byte*)) 56576
Promoting word/dword/signed dword to byte* in CIA2_PORT_B ← ((byte*)) 56577
Promoting word/dword/signed dword to byte* in CIA2_PORT_A_DDR ← ((byte*)) 56578
Promoting word/dword/signed dword to byte* in CIA2_PORT_B_DDR ← ((byte*)) 56579
Promoting word/dword/signed dword to byte* in CIA2_INTERRUPT ← ((byte*)) 56589
Promoting word/signed word/dword/signed dword to void()** in KERNEL_IRQ ← ((void()**)) 788
Promoting word/dword/signed dword to void()** in HARDWARE_IRQ ← ((void()**)) 65534
Promoting word/dword/signed dword to byte* in BITMAP ← ((byte*)) 40960
Promoting word/dword/signed dword to byte* in SCREEN ← ((byte*)) 34816
INITIAL CONTROL FLOW GRAPH
@ -945,15 +981,26 @@ INITIAL CONTROL FLOW GRAPH
(byte) VIC_CSEL ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte*) D018 ← ((byte*)) (word/dword/signed dword) 53272
(byte*) VIC_MEMORY ← ((byte*)) (word/dword/signed dword) 53272
(byte*) IRQ_STATUS ← ((byte*)) (word/dword/signed dword) 53273
(byte*) IRQ_ENABLE ← ((byte*)) (word/dword/signed dword) 53274
(byte) IRQ_RASTER ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) IRQ_COLLISION_BG ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) IRQ_COLLISION_SPRITE ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) IRQ_LIGHTPEN ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
(byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
(byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
(byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
(byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
(byte*) CIA1_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56333
(byte) CIA_INTERRUPT_CLEAR ← (byte/signed byte/word/signed word/dword/signed dword) 127
(byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
(byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
(byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
(byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
(byte*) CIA2_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56589
(void()**) KERNEL_IRQ ← ((void()**)) (word/signed word/dword/signed dword) 788
(void()**) HARDWARE_IRQ ← ((void()**)) (word/dword/signed dword) 65534
(byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
@ -1638,36 +1685,47 @@ Eliminating unused variable (byte*) D016 and assignment [35] (byte*) D016 ← ((
Eliminating unused variable (byte) VIC_MCM and assignment [36] (byte) VIC_MCM ← (byte/signed byte/word/signed word/dword/signed dword) 16
Eliminating unused variable (byte) VIC_CSEL and assignment [37] (byte) VIC_CSEL ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte*) VIC_MEMORY and assignment [39] (byte*) VIC_MEMORY ← ((byte*)) (word/dword/signed dword) 53272
Eliminating unused variable (byte*) COLS and assignment [40] (byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
Eliminating unused variable (byte*) CIA1_PORT_A and assignment [41] (byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
Eliminating unused variable (byte*) CIA1_PORT_B and assignment [42] (byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
Eliminating unused variable (byte*) CIA1_PORT_A_DDR and assignment [43] (byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
Eliminating unused variable (byte*) CIA1_PORT_B_DDR and assignment [44] (byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
Eliminating unused variable (byte*) CIA2_PORT_B and assignment [46] (byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
Eliminating unused variable (byte*) CIA2_PORT_B_DDR and assignment [48] (byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
Eliminating unused variable (byte) BLACK and assignment [49] (byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) WHITE and assignment [50] (byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) RED and assignment [51] (byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) CYAN and assignment [52] (byte) CYAN ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) PURPLE and assignment [53] (byte) PURPLE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) GREEN and assignment [54] (byte) GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) BLUE and assignment [55] (byte) BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) YELLOW and assignment [56] (byte) YELLOW ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) ORANGE and assignment [57] (byte) ORANGE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) BROWN and assignment [58] (byte) BROWN ← (byte/signed byte/word/signed word/dword/signed dword) 9
Eliminating unused variable (byte) PINK and assignment [59] (byte) PINK ← (byte/signed byte/word/signed word/dword/signed dword) 10
Eliminating unused variable (byte) DARK_GREY and assignment [60] (byte) DARK_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 11
Eliminating unused variable (byte) GREY and assignment [61] (byte) GREY ← (byte/signed byte/word/signed word/dword/signed dword) 12
Eliminating unused variable (byte) LIGHT_GREEN and assignment [62] (byte) LIGHT_GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 13
Eliminating unused variable (byte) LIGHT_BLUE and assignment [63] (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 14
Eliminating unused variable (byte) LIGHT_GREY and assignment [64] (byte) LIGHT_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable (byte) rem8u and assignment [65] (byte) rem8u ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (signed byte) rem8s and assignment [95] (signed byte) rem8s ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (signed word) rem16s and assignment [96] (signed word) rem16s ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable rem16s(null) and assignment [130] rem16s(null) ← (signed word~) divr16s::$20
Eliminating unused variable rem16s(null) and assignment [135] rem16s(null) ← (signed word~) divr16s::$17
Eliminating unused variable (byte) SIZE and assignment [143] (byte) SIZE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte[4]) frame and assignment [154] (byte[4]) frame ← { fill( 4, 0) }
Eliminating unused variable (byte*) IRQ_STATUS and assignment [40] (byte*) IRQ_STATUS ← ((byte*)) (word/dword/signed dword) 53273
Eliminating unused variable (byte*) IRQ_ENABLE and assignment [41] (byte*) IRQ_ENABLE ← ((byte*)) (word/dword/signed dword) 53274
Eliminating unused variable (byte) IRQ_RASTER and assignment [42] (byte) IRQ_RASTER ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) IRQ_COLLISION_BG and assignment [43] (byte) IRQ_COLLISION_BG ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) IRQ_COLLISION_SPRITE and assignment [44] (byte) IRQ_COLLISION_SPRITE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) IRQ_LIGHTPEN and assignment [45] (byte) IRQ_LIGHTPEN ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte*) COLS and assignment [46] (byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
Eliminating unused variable (byte*) CIA1_PORT_A and assignment [47] (byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
Eliminating unused variable (byte*) CIA1_PORT_B and assignment [48] (byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
Eliminating unused variable (byte*) CIA1_PORT_A_DDR and assignment [49] (byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
Eliminating unused variable (byte*) CIA1_PORT_B_DDR and assignment [50] (byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
Eliminating unused variable (byte*) CIA1_INTERRUPT and assignment [51] (byte*) CIA1_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56333
Eliminating unused variable (byte) CIA_INTERRUPT_CLEAR and assignment [52] (byte) CIA_INTERRUPT_CLEAR ← (byte/signed byte/word/signed word/dword/signed dword) 127
Eliminating unused variable (byte*) CIA2_PORT_B and assignment [54] (byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
Eliminating unused variable (byte*) CIA2_PORT_B_DDR and assignment [56] (byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
Eliminating unused variable (byte*) CIA2_INTERRUPT and assignment [57] (byte*) CIA2_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56589
Eliminating unused variable (void()**) KERNEL_IRQ and assignment [58] (void()**) KERNEL_IRQ ← ((void()**)) (word/signed word/dword/signed dword) 788
Eliminating unused variable (void()**) HARDWARE_IRQ and assignment [59] (void()**) HARDWARE_IRQ ← ((void()**)) (word/dword/signed dword) 65534
Eliminating unused variable (byte) BLACK and assignment [60] (byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) WHITE and assignment [61] (byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) RED and assignment [62] (byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) CYAN and assignment [63] (byte) CYAN ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) PURPLE and assignment [64] (byte) PURPLE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) GREEN and assignment [65] (byte) GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) BLUE and assignment [66] (byte) BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) YELLOW and assignment [67] (byte) YELLOW ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) ORANGE and assignment [68] (byte) ORANGE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) BROWN and assignment [69] (byte) BROWN ← (byte/signed byte/word/signed word/dword/signed dword) 9
Eliminating unused variable (byte) PINK and assignment [70] (byte) PINK ← (byte/signed byte/word/signed word/dword/signed dword) 10
Eliminating unused variable (byte) DARK_GREY and assignment [71] (byte) DARK_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 11
Eliminating unused variable (byte) GREY and assignment [72] (byte) GREY ← (byte/signed byte/word/signed word/dword/signed dword) 12
Eliminating unused variable (byte) LIGHT_GREEN and assignment [73] (byte) LIGHT_GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 13
Eliminating unused variable (byte) LIGHT_BLUE and assignment [74] (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 14
Eliminating unused variable (byte) LIGHT_GREY and assignment [75] (byte) LIGHT_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable (byte) rem8u and assignment [76] (byte) rem8u ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (signed byte) rem8s and assignment [106] (signed byte) rem8s ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (signed word) rem16s and assignment [107] (signed word) rem16s ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable rem16s(null) and assignment [141] rem16s(null) ← (signed word~) divr16s::$20
Eliminating unused variable rem16s(null) and assignment [146] rem16s(null) ← (signed word~) divr16s::$17
Eliminating unused variable (byte) SIZE and assignment [154] (byte) SIZE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte[4]) frame and assignment [165] (byte[4]) frame ← { fill( 4, 0) }
Eliminating unused variable - keeping the call (void~) main::$5
Eliminating unused variable - keeping the call (void~) main::$6
Eliminating unused variable - keeping the call (void~) main::$7

View File

@ -129,6 +129,13 @@ const byte VIC_CSEL = %00001000;
const byte* D018 = $d018;
const byte* VIC_MEMORY = $d018;
const byte* IRQ_STATUS = $d019;
const byte* IRQ_ENABLE = $d01a;
const byte IRQ_RASTER = %00000001;
const byte IRQ_COLLISION_BG = %00000010;
const byte IRQ_COLLISION_SPRITE = %00000100;
const byte IRQ_LIGHTPEN = %00001000;
const byte* COLS = $d800;
// CIA#1 Port A: keyboard matrix columns and joystick #2
@ -139,6 +146,10 @@ const byte* CIA1_PORT_B = $dc01;
const byte* CIA1_PORT_A_DDR = $dc02;
// CIA #1 Port B data direction register.
const byte* CIA1_PORT_B_DDR = $dc03;
// CIA#1 Interrupt Status & Control Register
const byte* CIA1_INTERRUPT = $dc0d;
// Value that disables all CIA interrupts when stored to the CIA Interrupt registers
const byte CIA_INTERRUPT_CLEAR = $7f;
// CIA#2 Port A: Serial bus, RS-232, VIC memory bank
const byte* CIA2_PORT_A = $dd00;
@ -148,6 +159,14 @@ const byte* CIA2_PORT_B = $dd01;
const byte* CIA2_PORT_A_DDR = $dd02;
// CIA #2 Port B data direction register.
const byte* CIA2_PORT_B_DDR = $dd03;
// CIA#2 Interrupt Status & Control Register
const byte* CIA2_INTERRUPT = $dd0d;
// The vector used when the KERNAL serves IRQ interrupts
const void()** KERNEL_IRQ = $0314;
// The vector used when the HARDWARE serves IRQ interrupts
const void()** HARDWARE_IRQ = $fffe;
const byte BLACK = $0;
const byte WHITE = $1;
@ -203,14 +222,17 @@ SYMBOLS
(byte*) BORDERCOL
(byte) BROWN
(byte*) CHARGEN
(byte*) CIA1_INTERRUPT
(byte*) CIA1_PORT_A
(byte*) CIA1_PORT_A_DDR
(byte*) CIA1_PORT_B
(byte*) CIA1_PORT_B_DDR
(byte*) CIA2_INTERRUPT
(byte*) CIA2_PORT_A
(byte*) CIA2_PORT_A_DDR
(byte*) CIA2_PORT_B
(byte*) CIA2_PORT_B_DDR
(byte) CIA_INTERRUPT_CLEAR
(byte*) COLS
(byte) CYAN
(byte*) D011
@ -219,6 +241,14 @@ SYMBOLS
(byte) DARK_GREY
(byte) GREEN
(byte) GREY
(void()**) HARDWARE_IRQ
(byte) IRQ_COLLISION_BG
(byte) IRQ_COLLISION_SPRITE
(byte*) IRQ_ENABLE
(byte) IRQ_LIGHTPEN
(byte) IRQ_RASTER
(byte*) IRQ_STATUS
(void()**) KERNEL_IRQ
(byte) LIGHT_BLUE
(byte) LIGHT_GREEN
(byte) LIGHT_GREY
@ -333,15 +363,21 @@ Promoting word/dword/signed dword to byte* in VIC_CONTROL2 ← ((byte*)) 53270
Promoting word/dword/signed dword to byte* in D016 ← ((byte*)) 53270
Promoting word/dword/signed dword to byte* in D018 ← ((byte*)) 53272
Promoting word/dword/signed dword to byte* in VIC_MEMORY ← ((byte*)) 53272
Promoting word/dword/signed dword to byte* in IRQ_STATUS ← ((byte*)) 53273
Promoting word/dword/signed dword to byte* in IRQ_ENABLE ← ((byte*)) 53274
Promoting word/dword/signed dword to byte* in COLS ← ((byte*)) 55296
Promoting word/dword/signed dword to byte* in CIA1_PORT_A ← ((byte*)) 56320
Promoting word/dword/signed dword to byte* in CIA1_PORT_B ← ((byte*)) 56321
Promoting word/dword/signed dword to byte* in CIA1_PORT_A_DDR ← ((byte*)) 56322
Promoting word/dword/signed dword to byte* in CIA1_PORT_B_DDR ← ((byte*)) 56323
Promoting word/dword/signed dword to byte* in CIA1_INTERRUPT ← ((byte*)) 56333
Promoting word/dword/signed dword to byte* in CIA2_PORT_A ← ((byte*)) 56576
Promoting word/dword/signed dword to byte* in CIA2_PORT_B ← ((byte*)) 56577
Promoting word/dword/signed dword to byte* in CIA2_PORT_A_DDR ← ((byte*)) 56578
Promoting word/dword/signed dword to byte* in CIA2_PORT_B_DDR ← ((byte*)) 56579
Promoting word/dword/signed dword to byte* in CIA2_INTERRUPT ← ((byte*)) 56589
Promoting word/signed word/dword/signed dword to void()** in KERNEL_IRQ ← ((void()**)) 788
Promoting word/dword/signed dword to void()** in HARDWARE_IRQ ← ((void()**)) 65534
INITIAL CONTROL FLOW GRAPH
@begin: scope:[] from
(byte*) PROCPORT_DDR ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0
@ -384,15 +420,26 @@ INITIAL CONTROL FLOW GRAPH
(byte) VIC_CSEL ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte*) D018 ← ((byte*)) (word/dword/signed dword) 53272
(byte*) VIC_MEMORY ← ((byte*)) (word/dword/signed dword) 53272
(byte*) IRQ_STATUS ← ((byte*)) (word/dword/signed dword) 53273
(byte*) IRQ_ENABLE ← ((byte*)) (word/dword/signed dword) 53274
(byte) IRQ_RASTER ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) IRQ_COLLISION_BG ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) IRQ_COLLISION_SPRITE ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) IRQ_LIGHTPEN ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
(byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
(byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
(byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
(byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
(byte*) CIA1_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56333
(byte) CIA_INTERRUPT_CLEAR ← (byte/signed byte/word/signed word/dword/signed dword) 127
(byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
(byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
(byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
(byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
(byte*) CIA2_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56589
(void()**) KERNEL_IRQ ← ((void()**)) (word/signed word/dword/signed dword) 788
(void()**) HARDWARE_IRQ ← ((void()**)) (word/dword/signed dword) 65534
(byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
@ -547,31 +594,42 @@ Eliminating unused variable (byte) VIC_MCM and assignment [36] (byte) VIC_MCM
Eliminating unused variable (byte) VIC_CSEL and assignment [37] (byte) VIC_CSEL ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte*) D018 and assignment [38] (byte*) D018 ← ((byte*)) (word/dword/signed dword) 53272
Eliminating unused variable (byte*) VIC_MEMORY and assignment [39] (byte*) VIC_MEMORY ← ((byte*)) (word/dword/signed dword) 53272
Eliminating unused variable (byte*) COLS and assignment [40] (byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
Eliminating unused variable (byte*) CIA1_PORT_A and assignment [41] (byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
Eliminating unused variable (byte*) CIA1_PORT_B and assignment [42] (byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
Eliminating unused variable (byte*) CIA1_PORT_A_DDR and assignment [43] (byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
Eliminating unused variable (byte*) CIA1_PORT_B_DDR and assignment [44] (byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
Eliminating unused variable (byte*) CIA2_PORT_A and assignment [45] (byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
Eliminating unused variable (byte*) CIA2_PORT_B and assignment [46] (byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
Eliminating unused variable (byte*) CIA2_PORT_A_DDR and assignment [47] (byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
Eliminating unused variable (byte*) CIA2_PORT_B_DDR and assignment [48] (byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
Eliminating unused variable (byte) BLACK and assignment [49] (byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) WHITE and assignment [50] (byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) RED and assignment [51] (byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) CYAN and assignment [52] (byte) CYAN ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) PURPLE and assignment [53] (byte) PURPLE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) GREEN and assignment [54] (byte) GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) BLUE and assignment [55] (byte) BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) YELLOW and assignment [56] (byte) YELLOW ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) ORANGE and assignment [57] (byte) ORANGE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) BROWN and assignment [58] (byte) BROWN ← (byte/signed byte/word/signed word/dword/signed dword) 9
Eliminating unused variable (byte) PINK and assignment [59] (byte) PINK ← (byte/signed byte/word/signed word/dword/signed dword) 10
Eliminating unused variable (byte) DARK_GREY and assignment [60] (byte) DARK_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 11
Eliminating unused variable (byte) GREY and assignment [61] (byte) GREY ← (byte/signed byte/word/signed word/dword/signed dword) 12
Eliminating unused variable (byte) LIGHT_GREEN and assignment [62] (byte) LIGHT_GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 13
Eliminating unused variable (byte) LIGHT_BLUE and assignment [63] (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 14
Eliminating unused variable (byte) LIGHT_GREY and assignment [64] (byte) LIGHT_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable (byte*) IRQ_STATUS and assignment [40] (byte*) IRQ_STATUS ← ((byte*)) (word/dword/signed dword) 53273
Eliminating unused variable (byte*) IRQ_ENABLE and assignment [41] (byte*) IRQ_ENABLE ← ((byte*)) (word/dword/signed dword) 53274
Eliminating unused variable (byte) IRQ_RASTER and assignment [42] (byte) IRQ_RASTER ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) IRQ_COLLISION_BG and assignment [43] (byte) IRQ_COLLISION_BG ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) IRQ_COLLISION_SPRITE and assignment [44] (byte) IRQ_COLLISION_SPRITE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) IRQ_LIGHTPEN and assignment [45] (byte) IRQ_LIGHTPEN ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte*) COLS and assignment [46] (byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
Eliminating unused variable (byte*) CIA1_PORT_A and assignment [47] (byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
Eliminating unused variable (byte*) CIA1_PORT_B and assignment [48] (byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
Eliminating unused variable (byte*) CIA1_PORT_A_DDR and assignment [49] (byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
Eliminating unused variable (byte*) CIA1_PORT_B_DDR and assignment [50] (byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
Eliminating unused variable (byte*) CIA1_INTERRUPT and assignment [51] (byte*) CIA1_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56333
Eliminating unused variable (byte) CIA_INTERRUPT_CLEAR and assignment [52] (byte) CIA_INTERRUPT_CLEAR ← (byte/signed byte/word/signed word/dword/signed dword) 127
Eliminating unused variable (byte*) CIA2_PORT_A and assignment [53] (byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
Eliminating unused variable (byte*) CIA2_PORT_B and assignment [54] (byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
Eliminating unused variable (byte*) CIA2_PORT_A_DDR and assignment [55] (byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
Eliminating unused variable (byte*) CIA2_PORT_B_DDR and assignment [56] (byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
Eliminating unused variable (byte*) CIA2_INTERRUPT and assignment [57] (byte*) CIA2_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56589
Eliminating unused variable (void()**) KERNEL_IRQ and assignment [58] (void()**) KERNEL_IRQ ← ((void()**)) (word/signed word/dword/signed dword) 788
Eliminating unused variable (void()**) HARDWARE_IRQ and assignment [59] (void()**) HARDWARE_IRQ ← ((void()**)) (word/dword/signed dword) 65534
Eliminating unused variable (byte) BLACK and assignment [60] (byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) WHITE and assignment [61] (byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) RED and assignment [62] (byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) CYAN and assignment [63] (byte) CYAN ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) PURPLE and assignment [64] (byte) PURPLE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) GREEN and assignment [65] (byte) GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) BLUE and assignment [66] (byte) BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) YELLOW and assignment [67] (byte) YELLOW ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) ORANGE and assignment [68] (byte) ORANGE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) BROWN and assignment [69] (byte) BROWN ← (byte/signed byte/word/signed word/dword/signed dword) 9
Eliminating unused variable (byte) PINK and assignment [70] (byte) PINK ← (byte/signed byte/word/signed word/dword/signed dword) 10
Eliminating unused variable (byte) DARK_GREY and assignment [71] (byte) DARK_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 11
Eliminating unused variable (byte) GREY and assignment [72] (byte) GREY ← (byte/signed byte/word/signed word/dword/signed dword) 12
Eliminating unused variable (byte) LIGHT_GREEN and assignment [73] (byte) LIGHT_GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 13
Eliminating unused variable (byte) LIGHT_BLUE and assignment [74] (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 14
Eliminating unused variable (byte) LIGHT_GREY and assignment [75] (byte) LIGHT_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable - keeping the call (void~) main::$2
Removing empty block @1
Removing empty block @2

View File

@ -165,6 +165,13 @@ const byte VIC_CSEL = %00001000;
const byte* D018 = $d018;
const byte* VIC_MEMORY = $d018;
const byte* IRQ_STATUS = $d019;
const byte* IRQ_ENABLE = $d01a;
const byte IRQ_RASTER = %00000001;
const byte IRQ_COLLISION_BG = %00000010;
const byte IRQ_COLLISION_SPRITE = %00000100;
const byte IRQ_LIGHTPEN = %00001000;
const byte* COLS = $d800;
// CIA#1 Port A: keyboard matrix columns and joystick #2
@ -175,6 +182,10 @@ const byte* CIA1_PORT_B = $dc01;
const byte* CIA1_PORT_A_DDR = $dc02;
// CIA #1 Port B data direction register.
const byte* CIA1_PORT_B_DDR = $dc03;
// CIA#1 Interrupt Status & Control Register
const byte* CIA1_INTERRUPT = $dc0d;
// Value that disables all CIA interrupts when stored to the CIA Interrupt registers
const byte CIA_INTERRUPT_CLEAR = $7f;
// CIA#2 Port A: Serial bus, RS-232, VIC memory bank
const byte* CIA2_PORT_A = $dd00;
@ -184,6 +195,14 @@ const byte* CIA2_PORT_B = $dd01;
const byte* CIA2_PORT_A_DDR = $dd02;
// CIA #2 Port B data direction register.
const byte* CIA2_PORT_B_DDR = $dd03;
// CIA#2 Interrupt Status & Control Register
const byte* CIA2_INTERRUPT = $dd0d;
// The vector used when the KERNAL serves IRQ interrupts
const void()** KERNEL_IRQ = $0314;
// The vector used when the HARDWARE serves IRQ interrupts
const void()** HARDWARE_IRQ = $fffe;
const byte BLACK = $0;
const byte WHITE = $1;
@ -667,14 +686,17 @@ SYMBOLS
(byte*) BORDERCOL
(byte) BROWN
(byte*) CHARGEN
(byte*) CIA1_INTERRUPT
(byte*) CIA1_PORT_A
(byte*) CIA1_PORT_A_DDR
(byte*) CIA1_PORT_B
(byte*) CIA1_PORT_B_DDR
(byte*) CIA2_INTERRUPT
(byte*) CIA2_PORT_A
(byte*) CIA2_PORT_A_DDR
(byte*) CIA2_PORT_B
(byte*) CIA2_PORT_B_DDR
(byte) CIA_INTERRUPT_CLEAR
(byte*) COLS
(byte) CYAN
(byte*) D011
@ -683,6 +705,14 @@ SYMBOLS
(byte) DARK_GREY
(byte) GREEN
(byte) GREY
(void()**) HARDWARE_IRQ
(byte) IRQ_COLLISION_BG
(byte) IRQ_COLLISION_SPRITE
(byte*) IRQ_ENABLE
(byte) IRQ_LIGHTPEN
(byte) IRQ_RASTER
(byte*) IRQ_STATUS
(void()**) KERNEL_IRQ
(byte) LIGHT_BLUE
(byte) LIGHT_GREEN
(byte) LIGHT_GREY
@ -1408,15 +1438,21 @@ Promoting word/dword/signed dword to byte* in VIC_CONTROL2 ← ((byte*)) 53270
Promoting word/dword/signed dword to byte* in D016 ← ((byte*)) 53270
Promoting word/dword/signed dword to byte* in D018 ← ((byte*)) 53272
Promoting word/dword/signed dword to byte* in VIC_MEMORY ← ((byte*)) 53272
Promoting word/dword/signed dword to byte* in IRQ_STATUS ← ((byte*)) 53273
Promoting word/dword/signed dword to byte* in IRQ_ENABLE ← ((byte*)) 53274
Promoting word/dword/signed dword to byte* in COLS ← ((byte*)) 55296
Promoting word/dword/signed dword to byte* in CIA1_PORT_A ← ((byte*)) 56320
Promoting word/dword/signed dword to byte* in CIA1_PORT_B ← ((byte*)) 56321
Promoting word/dword/signed dword to byte* in CIA1_PORT_A_DDR ← ((byte*)) 56322
Promoting word/dword/signed dword to byte* in CIA1_PORT_B_DDR ← ((byte*)) 56323
Promoting word/dword/signed dword to byte* in CIA1_INTERRUPT ← ((byte*)) 56333
Promoting word/dword/signed dword to byte* in CIA2_PORT_A ← ((byte*)) 56576
Promoting word/dword/signed dword to byte* in CIA2_PORT_B ← ((byte*)) 56577
Promoting word/dword/signed dword to byte* in CIA2_PORT_A_DDR ← ((byte*)) 56578
Promoting word/dword/signed dword to byte* in CIA2_PORT_B_DDR ← ((byte*)) 56579
Promoting word/dword/signed dword to byte* in CIA2_INTERRUPT ← ((byte*)) 56589
Promoting word/signed word/dword/signed dword to void()** in KERNEL_IRQ ← ((void()**)) 788
Promoting word/dword/signed dword to void()** in HARDWARE_IRQ ← ((void()**)) 65534
Promoting byte to word in mul8u::mb ← ((word)) mul8u::b
Promoting word to dword in mul16u::mb ← ((dword)) mul16u::b
Promoting word/signed word/dword/signed dword to byte* in SCREEN ← ((byte*)) 1024
@ -1463,15 +1499,26 @@ INITIAL CONTROL FLOW GRAPH
(byte) VIC_CSEL ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte*) D018 ← ((byte*)) (word/dword/signed dword) 53272
(byte*) VIC_MEMORY ← ((byte*)) (word/dword/signed dword) 53272
(byte*) IRQ_STATUS ← ((byte*)) (word/dword/signed dword) 53273
(byte*) IRQ_ENABLE ← ((byte*)) (word/dword/signed dword) 53274
(byte) IRQ_RASTER ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) IRQ_COLLISION_BG ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) IRQ_COLLISION_SPRITE ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) IRQ_LIGHTPEN ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
(byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
(byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
(byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
(byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
(byte*) CIA1_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56333
(byte) CIA_INTERRUPT_CLEAR ← (byte/signed byte/word/signed word/dword/signed dword) 127
(byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
(byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
(byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
(byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
(byte*) CIA2_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56589
(void()**) KERNEL_IRQ ← ((void()**)) (word/signed word/dword/signed dword) 788
(void()**) HARDWARE_IRQ ← ((void()**)) (word/dword/signed dword) 65534
(byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
@ -2620,35 +2667,46 @@ Eliminating unused variable (byte) VIC_RSEL and assignment [33] (byte) VIC_RSEL
Eliminating unused variable (byte*) VIC_CONTROL2 and assignment [34] (byte*) VIC_CONTROL2 ← ((byte*)) (word/dword/signed dword) 53270
Eliminating unused variable (byte) VIC_CSEL and assignment [37] (byte) VIC_CSEL ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte*) VIC_MEMORY and assignment [39] (byte*) VIC_MEMORY ← ((byte*)) (word/dword/signed dword) 53272
Eliminating unused variable (byte*) CIA1_PORT_A and assignment [41] (byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
Eliminating unused variable (byte*) CIA1_PORT_B and assignment [42] (byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
Eliminating unused variable (byte*) CIA1_PORT_A_DDR and assignment [43] (byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
Eliminating unused variable (byte*) CIA1_PORT_B_DDR and assignment [44] (byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
Eliminating unused variable (byte*) CIA2_PORT_A and assignment [45] (byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
Eliminating unused variable (byte*) CIA2_PORT_B and assignment [46] (byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
Eliminating unused variable (byte*) CIA2_PORT_A_DDR and assignment [47] (byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
Eliminating unused variable (byte*) CIA2_PORT_B_DDR and assignment [48] (byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
Eliminating unused variable (byte) RED and assignment [51] (byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) CYAN and assignment [52] (byte) CYAN ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) PURPLE and assignment [53] (byte) PURPLE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) GREEN and assignment [54] (byte) GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) BLUE and assignment [55] (byte) BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) YELLOW and assignment [56] (byte) YELLOW ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) ORANGE and assignment [57] (byte) ORANGE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) BROWN and assignment [58] (byte) BROWN ← (byte/signed byte/word/signed word/dword/signed dword) 9
Eliminating unused variable (byte) PINK and assignment [59] (byte) PINK ← (byte/signed byte/word/signed word/dword/signed dword) 10
Eliminating unused variable (byte) GREY and assignment [61] (byte) GREY ← (byte/signed byte/word/signed word/dword/signed dword) 12
Eliminating unused variable (byte) LIGHT_GREEN and assignment [62] (byte) LIGHT_GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 13
Eliminating unused variable (byte) LIGHT_BLUE and assignment [63] (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 14
Eliminating unused variable (byte) LIGHT_GREY and assignment [64] (byte) LIGHT_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable (byte) rem8u and assignment [65] (byte) rem8u ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (signed byte) rem8s and assignment [105] (signed byte) rem8s ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (signed word) rem16s and assignment [106] (signed word) rem16s ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (word~) mul16s::$5 and assignment [134] (word~) mul16s::$5 ← > (dword) mul16s::m
Eliminating unused variable (word~) mul16s::$11 and assignment [142] (word~) mul16s::$11 ← > (dword) mul16s::m
Eliminating unused variable (word) PI2_u4f12 and assignment [153] (word) PI2_u4f12 ← (word/signed word/dword/signed dword) 25736
Eliminating unused variable (word) PI_u4f12 and assignment [154] (word) PI_u4f12 ← (word/signed word/dword/signed dword) 12868
Eliminating unused variable (word) PI_HALF_u4f12 and assignment [155] (word) PI_HALF_u4f12 ← (word/signed word/dword/signed dword) 6434
Eliminating unused variable (byte*) IRQ_STATUS and assignment [40] (byte*) IRQ_STATUS ← ((byte*)) (word/dword/signed dword) 53273
Eliminating unused variable (byte*) IRQ_ENABLE and assignment [41] (byte*) IRQ_ENABLE ← ((byte*)) (word/dword/signed dword) 53274
Eliminating unused variable (byte) IRQ_RASTER and assignment [42] (byte) IRQ_RASTER ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) IRQ_COLLISION_BG and assignment [43] (byte) IRQ_COLLISION_BG ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) IRQ_COLLISION_SPRITE and assignment [44] (byte) IRQ_COLLISION_SPRITE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) IRQ_LIGHTPEN and assignment [45] (byte) IRQ_LIGHTPEN ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte*) CIA1_PORT_A and assignment [47] (byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
Eliminating unused variable (byte*) CIA1_PORT_B and assignment [48] (byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
Eliminating unused variable (byte*) CIA1_PORT_A_DDR and assignment [49] (byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
Eliminating unused variable (byte*) CIA1_PORT_B_DDR and assignment [50] (byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
Eliminating unused variable (byte*) CIA1_INTERRUPT and assignment [51] (byte*) CIA1_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56333
Eliminating unused variable (byte) CIA_INTERRUPT_CLEAR and assignment [52] (byte) CIA_INTERRUPT_CLEAR ← (byte/signed byte/word/signed word/dword/signed dword) 127
Eliminating unused variable (byte*) CIA2_PORT_A and assignment [53] (byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
Eliminating unused variable (byte*) CIA2_PORT_B and assignment [54] (byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
Eliminating unused variable (byte*) CIA2_PORT_A_DDR and assignment [55] (byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
Eliminating unused variable (byte*) CIA2_PORT_B_DDR and assignment [56] (byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
Eliminating unused variable (byte*) CIA2_INTERRUPT and assignment [57] (byte*) CIA2_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56589
Eliminating unused variable (void()**) KERNEL_IRQ and assignment [58] (void()**) KERNEL_IRQ ← ((void()**)) (word/signed word/dword/signed dword) 788
Eliminating unused variable (void()**) HARDWARE_IRQ and assignment [59] (void()**) HARDWARE_IRQ ← ((void()**)) (word/dword/signed dword) 65534
Eliminating unused variable (byte) RED and assignment [62] (byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) CYAN and assignment [63] (byte) CYAN ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) PURPLE and assignment [64] (byte) PURPLE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) GREEN and assignment [65] (byte) GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) BLUE and assignment [66] (byte) BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) YELLOW and assignment [67] (byte) YELLOW ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) ORANGE and assignment [68] (byte) ORANGE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) BROWN and assignment [69] (byte) BROWN ← (byte/signed byte/word/signed word/dword/signed dword) 9
Eliminating unused variable (byte) PINK and assignment [70] (byte) PINK ← (byte/signed byte/word/signed word/dword/signed dword) 10
Eliminating unused variable (byte) GREY and assignment [72] (byte) GREY ← (byte/signed byte/word/signed word/dword/signed dword) 12
Eliminating unused variable (byte) LIGHT_GREEN and assignment [73] (byte) LIGHT_GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 13
Eliminating unused variable (byte) LIGHT_BLUE and assignment [74] (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 14
Eliminating unused variable (byte) LIGHT_GREY and assignment [75] (byte) LIGHT_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable (byte) rem8u and assignment [76] (byte) rem8u ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (signed byte) rem8s and assignment [116] (signed byte) rem8s ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (signed word) rem16s and assignment [117] (signed word) rem16s ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (word~) mul16s::$5 and assignment [145] (word~) mul16s::$5 ← > (dword) mul16s::m
Eliminating unused variable (word~) mul16s::$11 and assignment [153] (word~) mul16s::$11 ← > (dword) mul16s::m
Eliminating unused variable (word) PI2_u4f12 and assignment [164] (word) PI2_u4f12 ← (word/signed word/dword/signed dword) 25736
Eliminating unused variable (word) PI_u4f12 and assignment [165] (word) PI_u4f12 ← (word/signed word/dword/signed dword) 12868
Eliminating unused variable (word) PI_HALF_u4f12 and assignment [166] (word) PI_HALF_u4f12 ← (word/signed word/dword/signed dword) 6434
Eliminating unused variable - keeping the call (void~) main::$1
Eliminating unused variable - keeping the call (void~) main::$3
Eliminating unused variable - keeping the call (void~) main::$6

View File

@ -98,6 +98,13 @@ const byte VIC_CSEL = %00001000;
const byte* D018 = $d018;
const byte* VIC_MEMORY = $d018;
const byte* IRQ_STATUS = $d019;
const byte* IRQ_ENABLE = $d01a;
const byte IRQ_RASTER = %00000001;
const byte IRQ_COLLISION_BG = %00000010;
const byte IRQ_COLLISION_SPRITE = %00000100;
const byte IRQ_LIGHTPEN = %00001000;
const byte* COLS = $d800;
// CIA#1 Port A: keyboard matrix columns and joystick #2
@ -108,6 +115,10 @@ const byte* CIA1_PORT_B = $dc01;
const byte* CIA1_PORT_A_DDR = $dc02;
// CIA #1 Port B data direction register.
const byte* CIA1_PORT_B_DDR = $dc03;
// CIA#1 Interrupt Status & Control Register
const byte* CIA1_INTERRUPT = $dc0d;
// Value that disables all CIA interrupts when stored to the CIA Interrupt registers
const byte CIA_INTERRUPT_CLEAR = $7f;
// CIA#2 Port A: Serial bus, RS-232, VIC memory bank
const byte* CIA2_PORT_A = $dd00;
@ -117,6 +128,14 @@ const byte* CIA2_PORT_B = $dd01;
const byte* CIA2_PORT_A_DDR = $dd02;
// CIA #2 Port B data direction register.
const byte* CIA2_PORT_B_DDR = $dd03;
// CIA#2 Interrupt Status & Control Register
const byte* CIA2_INTERRUPT = $dd0d;
// The vector used when the KERNAL serves IRQ interrupts
const void()** KERNEL_IRQ = $0314;
// The vector used when the HARDWARE serves IRQ interrupts
const void()** HARDWARE_IRQ = $fffe;
const byte BLACK = $0;
const byte WHITE = $1;
@ -176,14 +195,17 @@ SYMBOLS
(byte*) BORDERCOL
(byte) BROWN
(byte*) CHARGEN
(byte*) CIA1_INTERRUPT
(byte*) CIA1_PORT_A
(byte*) CIA1_PORT_A_DDR
(byte*) CIA1_PORT_B
(byte*) CIA1_PORT_B_DDR
(byte*) CIA2_INTERRUPT
(byte*) CIA2_PORT_A
(byte*) CIA2_PORT_A_DDR
(byte*) CIA2_PORT_B
(byte*) CIA2_PORT_B_DDR
(byte) CIA_INTERRUPT_CLEAR
(byte*) COLS
(byte) CYAN
(byte*) D011
@ -192,6 +214,14 @@ SYMBOLS
(byte) DARK_GREY
(byte) GREEN
(byte) GREY
(void()**) HARDWARE_IRQ
(byte) IRQ_COLLISION_BG
(byte) IRQ_COLLISION_SPRITE
(byte*) IRQ_ENABLE
(byte) IRQ_LIGHTPEN
(byte) IRQ_RASTER
(byte*) IRQ_STATUS
(void()**) KERNEL_IRQ
(byte) LIGHT_BLUE
(byte) LIGHT_GREEN
(byte) LIGHT_GREY
@ -322,15 +352,21 @@ Promoting word/dword/signed dword to byte* in VIC_CONTROL2 ← ((byte*)) 53270
Promoting word/dword/signed dword to byte* in D016 ← ((byte*)) 53270
Promoting word/dword/signed dword to byte* in D018 ← ((byte*)) 53272
Promoting word/dword/signed dword to byte* in VIC_MEMORY ← ((byte*)) 53272
Promoting word/dword/signed dword to byte* in IRQ_STATUS ← ((byte*)) 53273
Promoting word/dword/signed dword to byte* in IRQ_ENABLE ← ((byte*)) 53274
Promoting word/dword/signed dword to byte* in COLS ← ((byte*)) 55296
Promoting word/dword/signed dword to byte* in CIA1_PORT_A ← ((byte*)) 56320
Promoting word/dword/signed dword to byte* in CIA1_PORT_B ← ((byte*)) 56321
Promoting word/dword/signed dword to byte* in CIA1_PORT_A_DDR ← ((byte*)) 56322
Promoting word/dword/signed dword to byte* in CIA1_PORT_B_DDR ← ((byte*)) 56323
Promoting word/dword/signed dword to byte* in CIA1_INTERRUPT ← ((byte*)) 56333
Promoting word/dword/signed dword to byte* in CIA2_PORT_A ← ((byte*)) 56576
Promoting word/dword/signed dword to byte* in CIA2_PORT_B ← ((byte*)) 56577
Promoting word/dword/signed dword to byte* in CIA2_PORT_A_DDR ← ((byte*)) 56578
Promoting word/dword/signed dword to byte* in CIA2_PORT_B_DDR ← ((byte*)) 56579
Promoting word/dword/signed dword to byte* in CIA2_INTERRUPT ← ((byte*)) 56589
Promoting word/signed word/dword/signed dword to void()** in KERNEL_IRQ ← ((void()**)) 788
Promoting word/dword/signed dword to void()** in HARDWARE_IRQ ← ((void()**)) 65534
Promoting word/signed word/dword/signed dword to byte* in SCREEN ← ((byte*)) 1024
Promoting word/signed word/dword/signed dword to byte* in LOGO ← ((byte*)) 8192
INITIAL CONTROL FLOW GRAPH
@ -375,15 +411,26 @@ INITIAL CONTROL FLOW GRAPH
(byte) VIC_CSEL ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte*) D018 ← ((byte*)) (word/dword/signed dword) 53272
(byte*) VIC_MEMORY ← ((byte*)) (word/dword/signed dword) 53272
(byte*) IRQ_STATUS ← ((byte*)) (word/dword/signed dword) 53273
(byte*) IRQ_ENABLE ← ((byte*)) (word/dword/signed dword) 53274
(byte) IRQ_RASTER ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) IRQ_COLLISION_BG ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) IRQ_COLLISION_SPRITE ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) IRQ_LIGHTPEN ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
(byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
(byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
(byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
(byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
(byte*) CIA1_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56333
(byte) CIA_INTERRUPT_CLEAR ← (byte/signed byte/word/signed word/dword/signed dword) 127
(byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
(byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
(byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
(byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
(byte*) CIA2_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56589
(void()**) KERNEL_IRQ ← ((void()**)) (word/signed word/dword/signed dword) 788
(void()**) HARDWARE_IRQ ← ((void()**)) (word/dword/signed dword) 65534
(byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
@ -562,31 +609,42 @@ Eliminating unused variable (byte) VIC_DEN and assignment [32] (byte) VIC_DEN
Eliminating unused variable (byte) VIC_RSEL and assignment [33] (byte) VIC_RSEL ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte*) VIC_CONTROL2 and assignment [34] (byte*) VIC_CONTROL2 ← ((byte*)) (word/dword/signed dword) 53270
Eliminating unused variable (byte*) VIC_MEMORY and assignment [39] (byte*) VIC_MEMORY ← ((byte*)) (word/dword/signed dword) 53272
Eliminating unused variable (byte*) CIA1_PORT_A and assignment [41] (byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
Eliminating unused variable (byte*) CIA1_PORT_B and assignment [42] (byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
Eliminating unused variable (byte*) CIA1_PORT_A_DDR and assignment [43] (byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
Eliminating unused variable (byte*) CIA1_PORT_B_DDR and assignment [44] (byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
Eliminating unused variable (byte*) CIA2_PORT_A and assignment [45] (byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
Eliminating unused variable (byte*) CIA2_PORT_B and assignment [46] (byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
Eliminating unused variable (byte*) CIA2_PORT_A_DDR and assignment [47] (byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
Eliminating unused variable (byte*) CIA2_PORT_B_DDR and assignment [48] (byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
Eliminating unused variable (byte) RED and assignment [51] (byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) CYAN and assignment [52] (byte) CYAN ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) PURPLE and assignment [53] (byte) PURPLE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) GREEN and assignment [54] (byte) GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) BLUE and assignment [55] (byte) BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) YELLOW and assignment [56] (byte) YELLOW ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) ORANGE and assignment [57] (byte) ORANGE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) BROWN and assignment [58] (byte) BROWN ← (byte/signed byte/word/signed word/dword/signed dword) 9
Eliminating unused variable (byte) PINK and assignment [59] (byte) PINK ← (byte/signed byte/word/signed word/dword/signed dword) 10
Eliminating unused variable (byte) GREY and assignment [61] (byte) GREY ← (byte/signed byte/word/signed word/dword/signed dword) 12
Eliminating unused variable (byte) LIGHT_GREEN and assignment [62] (byte) LIGHT_GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 13
Eliminating unused variable (byte) LIGHT_BLUE and assignment [63] (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 14
Eliminating unused variable (byte) LIGHT_GREY and assignment [64] (byte) LIGHT_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable (byte*) IRQ_STATUS and assignment [40] (byte*) IRQ_STATUS ← ((byte*)) (word/dword/signed dword) 53273
Eliminating unused variable (byte*) IRQ_ENABLE and assignment [41] (byte*) IRQ_ENABLE ← ((byte*)) (word/dword/signed dword) 53274
Eliminating unused variable (byte) IRQ_RASTER and assignment [42] (byte) IRQ_RASTER ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) IRQ_COLLISION_BG and assignment [43] (byte) IRQ_COLLISION_BG ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) IRQ_COLLISION_SPRITE and assignment [44] (byte) IRQ_COLLISION_SPRITE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) IRQ_LIGHTPEN and assignment [45] (byte) IRQ_LIGHTPEN ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte*) CIA1_PORT_A and assignment [47] (byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
Eliminating unused variable (byte*) CIA1_PORT_B and assignment [48] (byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
Eliminating unused variable (byte*) CIA1_PORT_A_DDR and assignment [49] (byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
Eliminating unused variable (byte*) CIA1_PORT_B_DDR and assignment [50] (byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
Eliminating unused variable (byte*) CIA1_INTERRUPT and assignment [51] (byte*) CIA1_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56333
Eliminating unused variable (byte) CIA_INTERRUPT_CLEAR and assignment [52] (byte) CIA_INTERRUPT_CLEAR ← (byte/signed byte/word/signed word/dword/signed dword) 127
Eliminating unused variable (byte*) CIA2_PORT_A and assignment [53] (byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
Eliminating unused variable (byte*) CIA2_PORT_B and assignment [54] (byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
Eliminating unused variable (byte*) CIA2_PORT_A_DDR and assignment [55] (byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
Eliminating unused variable (byte*) CIA2_PORT_B_DDR and assignment [56] (byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
Eliminating unused variable (byte*) CIA2_INTERRUPT and assignment [57] (byte*) CIA2_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56589
Eliminating unused variable (void()**) KERNEL_IRQ and assignment [58] (void()**) KERNEL_IRQ ← ((void()**)) (word/signed word/dword/signed dword) 788
Eliminating unused variable (void()**) HARDWARE_IRQ and assignment [59] (void()**) HARDWARE_IRQ ← ((void()**)) (word/dword/signed dword) 65534
Eliminating unused variable (byte) RED and assignment [62] (byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) CYAN and assignment [63] (byte) CYAN ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) PURPLE and assignment [64] (byte) PURPLE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) GREEN and assignment [65] (byte) GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) BLUE and assignment [66] (byte) BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) YELLOW and assignment [67] (byte) YELLOW ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) ORANGE and assignment [68] (byte) ORANGE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) BROWN and assignment [69] (byte) BROWN ← (byte/signed byte/word/signed word/dword/signed dword) 9
Eliminating unused variable (byte) PINK and assignment [70] (byte) PINK ← (byte/signed byte/word/signed word/dword/signed dword) 10
Eliminating unused variable (byte) GREY and assignment [72] (byte) GREY ← (byte/signed byte/word/signed word/dword/signed dword) 12
Eliminating unused variable (byte) LIGHT_GREEN and assignment [73] (byte) LIGHT_GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 13
Eliminating unused variable (byte) LIGHT_BLUE and assignment [74] (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 14
Eliminating unused variable (byte) LIGHT_GREY and assignment [75] (byte) LIGHT_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable - keeping the call (void~) main::$3
Eliminating unused variable - keeping the call (void~) main::$6
Eliminating unused variable (byte*~) main::$8 and assignment [102] (byte*~) main::$8 ← (byte*) SCREEN + (word/signed word/dword/signed dword) 999
Eliminating unused variable (byte*~) main::$9 and assignment [103] (byte*~) main::$9 ← (byte*) SCREEN + (word/signed word/dword/signed dword) 999
Eliminating unused variable (byte*~) main::$8 and assignment [113] (byte*~) main::$8 ← (byte*) SCREEN + (word/signed word/dword/signed dword) 999
Eliminating unused variable (byte*~) main::$9 and assignment [114] (byte*~) main::$9 ← (byte*) SCREEN + (word/signed word/dword/signed dword) 999
Removing empty block @1
Removing empty block @2
Removing empty block main::toD0181_@1

View File

@ -131,6 +131,13 @@ const byte VIC_CSEL = %00001000;
const byte* D018 = $d018;
const byte* VIC_MEMORY = $d018;
const byte* IRQ_STATUS = $d019;
const byte* IRQ_ENABLE = $d01a;
const byte IRQ_RASTER = %00000001;
const byte IRQ_COLLISION_BG = %00000010;
const byte IRQ_COLLISION_SPRITE = %00000100;
const byte IRQ_LIGHTPEN = %00001000;
const byte* COLS = $d800;
// CIA#1 Port A: keyboard matrix columns and joystick #2
@ -141,6 +148,10 @@ const byte* CIA1_PORT_B = $dc01;
const byte* CIA1_PORT_A_DDR = $dc02;
// CIA #1 Port B data direction register.
const byte* CIA1_PORT_B_DDR = $dc03;
// CIA#1 Interrupt Status & Control Register
const byte* CIA1_INTERRUPT = $dc0d;
// Value that disables all CIA interrupts when stored to the CIA Interrupt registers
const byte CIA_INTERRUPT_CLEAR = $7f;
// CIA#2 Port A: Serial bus, RS-232, VIC memory bank
const byte* CIA2_PORT_A = $dd00;
@ -150,6 +161,14 @@ const byte* CIA2_PORT_B = $dd01;
const byte* CIA2_PORT_A_DDR = $dd02;
// CIA #2 Port B data direction register.
const byte* CIA2_PORT_B_DDR = $dd03;
// CIA#2 Interrupt Status & Control Register
const byte* CIA2_INTERRUPT = $dd0d;
// The vector used when the KERNAL serves IRQ interrupts
const void()** KERNEL_IRQ = $0314;
// The vector used when the HARDWARE serves IRQ interrupts
const void()** HARDWARE_IRQ = $fffe;
const byte BLACK = $0;
const byte WHITE = $1;
@ -208,14 +227,17 @@ SYMBOLS
(byte*) BORDERCOL
(byte) BROWN
(byte*) CHARGEN
(byte*) CIA1_INTERRUPT
(byte*) CIA1_PORT_A
(byte*) CIA1_PORT_A_DDR
(byte*) CIA1_PORT_B
(byte*) CIA1_PORT_B_DDR
(byte*) CIA2_INTERRUPT
(byte*) CIA2_PORT_A
(byte*) CIA2_PORT_A_DDR
(byte*) CIA2_PORT_B
(byte*) CIA2_PORT_B_DDR
(byte) CIA_INTERRUPT_CLEAR
(byte*) COLS
(byte) CYAN
(byte*) D011
@ -224,6 +246,14 @@ SYMBOLS
(byte) DARK_GREY
(byte) GREEN
(byte) GREY
(void()**) HARDWARE_IRQ
(byte) IRQ_COLLISION_BG
(byte) IRQ_COLLISION_SPRITE
(byte*) IRQ_ENABLE
(byte) IRQ_LIGHTPEN
(byte) IRQ_RASTER
(byte*) IRQ_STATUS
(void()**) KERNEL_IRQ
(byte) LIGHT_BLUE
(byte) LIGHT_GREEN
(byte) LIGHT_GREY
@ -375,15 +405,21 @@ Promoting word/dword/signed dword to byte* in VIC_CONTROL2 ← ((byte*)) 53270
Promoting word/dword/signed dword to byte* in D016 ← ((byte*)) 53270
Promoting word/dword/signed dword to byte* in D018 ← ((byte*)) 53272
Promoting word/dword/signed dword to byte* in VIC_MEMORY ← ((byte*)) 53272
Promoting word/dword/signed dword to byte* in IRQ_STATUS ← ((byte*)) 53273
Promoting word/dword/signed dword to byte* in IRQ_ENABLE ← ((byte*)) 53274
Promoting word/dword/signed dword to byte* in COLS ← ((byte*)) 55296
Promoting word/dword/signed dword to byte* in CIA1_PORT_A ← ((byte*)) 56320
Promoting word/dword/signed dword to byte* in CIA1_PORT_B ← ((byte*)) 56321
Promoting word/dword/signed dword to byte* in CIA1_PORT_A_DDR ← ((byte*)) 56322
Promoting word/dword/signed dword to byte* in CIA1_PORT_B_DDR ← ((byte*)) 56323
Promoting word/dword/signed dword to byte* in CIA1_INTERRUPT ← ((byte*)) 56333
Promoting word/dword/signed dword to byte* in CIA2_PORT_A ← ((byte*)) 56576
Promoting word/dword/signed dword to byte* in CIA2_PORT_B ← ((byte*)) 56577
Promoting word/dword/signed dword to byte* in CIA2_PORT_A_DDR ← ((byte*)) 56578
Promoting word/dword/signed dword to byte* in CIA2_PORT_B_DDR ← ((byte*)) 56579
Promoting word/dword/signed dword to byte* in CIA2_INTERRUPT ← ((byte*)) 56589
Promoting word/signed word/dword/signed dword to void()** in KERNEL_IRQ ← ((void()**)) 788
Promoting word/dword/signed dword to void()** in HARDWARE_IRQ ← ((void()**)) 65534
Promoting word/signed word/dword/signed dword to byte* in SCREEN ← ((byte*)) 1024
Promoting word/signed word/dword/signed dword to byte* in SPRITE ← ((byte*)) 8192
INITIAL CONTROL FLOW GRAPH
@ -428,15 +464,26 @@ INITIAL CONTROL FLOW GRAPH
(byte) VIC_CSEL ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte*) D018 ← ((byte*)) (word/dword/signed dword) 53272
(byte*) VIC_MEMORY ← ((byte*)) (word/dword/signed dword) 53272
(byte*) IRQ_STATUS ← ((byte*)) (word/dword/signed dword) 53273
(byte*) IRQ_ENABLE ← ((byte*)) (word/dword/signed dword) 53274
(byte) IRQ_RASTER ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) IRQ_COLLISION_BG ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) IRQ_COLLISION_SPRITE ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) IRQ_LIGHTPEN ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
(byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
(byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
(byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
(byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
(byte*) CIA1_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56333
(byte) CIA_INTERRUPT_CLEAR ← (byte/signed byte/word/signed word/dword/signed dword) 127
(byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
(byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
(byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
(byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
(byte*) CIA2_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56589
(void()**) KERNEL_IRQ ← ((void()**)) (word/signed word/dword/signed dword) 788
(void()**) HARDWARE_IRQ ← ((void()**)) (word/dword/signed dword) 65534
(byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
@ -652,30 +699,41 @@ Eliminating unused variable (byte) VIC_MCM and assignment [36] (byte) VIC_MCM
Eliminating unused variable (byte) VIC_CSEL and assignment [37] (byte) VIC_CSEL ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte*) D018 and assignment [38] (byte*) D018 ← ((byte*)) (word/dword/signed dword) 53272
Eliminating unused variable (byte*) VIC_MEMORY and assignment [39] (byte*) VIC_MEMORY ← ((byte*)) (word/dword/signed dword) 53272
Eliminating unused variable (byte*) COLS and assignment [40] (byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
Eliminating unused variable (byte*) CIA1_PORT_A and assignment [41] (byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
Eliminating unused variable (byte*) CIA1_PORT_B and assignment [42] (byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
Eliminating unused variable (byte*) CIA1_PORT_A_DDR and assignment [43] (byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
Eliminating unused variable (byte*) CIA1_PORT_B_DDR and assignment [44] (byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
Eliminating unused variable (byte*) CIA2_PORT_A and assignment [45] (byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
Eliminating unused variable (byte*) CIA2_PORT_B and assignment [46] (byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
Eliminating unused variable (byte*) CIA2_PORT_A_DDR and assignment [47] (byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
Eliminating unused variable (byte*) CIA2_PORT_B_DDR and assignment [48] (byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
Eliminating unused variable (byte) BLACK and assignment [49] (byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) RED and assignment [51] (byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) CYAN and assignment [52] (byte) CYAN ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) PURPLE and assignment [53] (byte) PURPLE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) GREEN and assignment [54] (byte) GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) BLUE and assignment [55] (byte) BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) YELLOW and assignment [56] (byte) YELLOW ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) ORANGE and assignment [57] (byte) ORANGE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) BROWN and assignment [58] (byte) BROWN ← (byte/signed byte/word/signed word/dword/signed dword) 9
Eliminating unused variable (byte) PINK and assignment [59] (byte) PINK ← (byte/signed byte/word/signed word/dword/signed dword) 10
Eliminating unused variable (byte) DARK_GREY and assignment [60] (byte) DARK_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 11
Eliminating unused variable (byte) GREY and assignment [61] (byte) GREY ← (byte/signed byte/word/signed word/dword/signed dword) 12
Eliminating unused variable (byte) LIGHT_GREEN and assignment [62] (byte) LIGHT_GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 13
Eliminating unused variable (byte) LIGHT_BLUE and assignment [63] (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 14
Eliminating unused variable (byte) LIGHT_GREY and assignment [64] (byte) LIGHT_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable (byte*) IRQ_STATUS and assignment [40] (byte*) IRQ_STATUS ← ((byte*)) (word/dword/signed dword) 53273
Eliminating unused variable (byte*) IRQ_ENABLE and assignment [41] (byte*) IRQ_ENABLE ← ((byte*)) (word/dword/signed dword) 53274
Eliminating unused variable (byte) IRQ_RASTER and assignment [42] (byte) IRQ_RASTER ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) IRQ_COLLISION_BG and assignment [43] (byte) IRQ_COLLISION_BG ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) IRQ_COLLISION_SPRITE and assignment [44] (byte) IRQ_COLLISION_SPRITE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) IRQ_LIGHTPEN and assignment [45] (byte) IRQ_LIGHTPEN ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte*) COLS and assignment [46] (byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
Eliminating unused variable (byte*) CIA1_PORT_A and assignment [47] (byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
Eliminating unused variable (byte*) CIA1_PORT_B and assignment [48] (byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
Eliminating unused variable (byte*) CIA1_PORT_A_DDR and assignment [49] (byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
Eliminating unused variable (byte*) CIA1_PORT_B_DDR and assignment [50] (byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
Eliminating unused variable (byte*) CIA1_INTERRUPT and assignment [51] (byte*) CIA1_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56333
Eliminating unused variable (byte) CIA_INTERRUPT_CLEAR and assignment [52] (byte) CIA_INTERRUPT_CLEAR ← (byte/signed byte/word/signed word/dword/signed dword) 127
Eliminating unused variable (byte*) CIA2_PORT_A and assignment [53] (byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
Eliminating unused variable (byte*) CIA2_PORT_B and assignment [54] (byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
Eliminating unused variable (byte*) CIA2_PORT_A_DDR and assignment [55] (byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
Eliminating unused variable (byte*) CIA2_PORT_B_DDR and assignment [56] (byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
Eliminating unused variable (byte*) CIA2_INTERRUPT and assignment [57] (byte*) CIA2_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56589
Eliminating unused variable (void()**) KERNEL_IRQ and assignment [58] (void()**) KERNEL_IRQ ← ((void()**)) (word/signed word/dword/signed dword) 788
Eliminating unused variable (void()**) HARDWARE_IRQ and assignment [59] (void()**) HARDWARE_IRQ ← ((void()**)) (word/dword/signed dword) 65534
Eliminating unused variable (byte) BLACK and assignment [60] (byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) RED and assignment [62] (byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) CYAN and assignment [63] (byte) CYAN ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) PURPLE and assignment [64] (byte) PURPLE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) GREEN and assignment [65] (byte) GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) BLUE and assignment [66] (byte) BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) YELLOW and assignment [67] (byte) YELLOW ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) ORANGE and assignment [68] (byte) ORANGE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) BROWN and assignment [69] (byte) BROWN ← (byte/signed byte/word/signed word/dword/signed dword) 9
Eliminating unused variable (byte) PINK and assignment [70] (byte) PINK ← (byte/signed byte/word/signed word/dword/signed dword) 10
Eliminating unused variable (byte) DARK_GREY and assignment [71] (byte) DARK_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 11
Eliminating unused variable (byte) GREY and assignment [72] (byte) GREY ← (byte/signed byte/word/signed word/dword/signed dword) 12
Eliminating unused variable (byte) LIGHT_GREEN and assignment [73] (byte) LIGHT_GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 13
Eliminating unused variable (byte) LIGHT_BLUE and assignment [74] (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 14
Eliminating unused variable (byte) LIGHT_GREY and assignment [75] (byte) LIGHT_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable - keeping the call (void~) main::$0
Eliminating unused variable - keeping the call (void~) main::$2
Removing empty block @1

View File

@ -137,6 +137,13 @@ const byte VIC_CSEL = %00001000;
const byte* D018 = $d018;
const byte* VIC_MEMORY = $d018;
const byte* IRQ_STATUS = $d019;
const byte* IRQ_ENABLE = $d01a;
const byte IRQ_RASTER = %00000001;
const byte IRQ_COLLISION_BG = %00000010;
const byte IRQ_COLLISION_SPRITE = %00000100;
const byte IRQ_LIGHTPEN = %00001000;
const byte* COLS = $d800;
// CIA#1 Port A: keyboard matrix columns and joystick #2
@ -147,6 +154,10 @@ const byte* CIA1_PORT_B = $dc01;
const byte* CIA1_PORT_A_DDR = $dc02;
// CIA #1 Port B data direction register.
const byte* CIA1_PORT_B_DDR = $dc03;
// CIA#1 Interrupt Status & Control Register
const byte* CIA1_INTERRUPT = $dc0d;
// Value that disables all CIA interrupts when stored to the CIA Interrupt registers
const byte CIA_INTERRUPT_CLEAR = $7f;
// CIA#2 Port A: Serial bus, RS-232, VIC memory bank
const byte* CIA2_PORT_A = $dd00;
@ -156,6 +167,14 @@ const byte* CIA2_PORT_B = $dd01;
const byte* CIA2_PORT_A_DDR = $dd02;
// CIA #2 Port B data direction register.
const byte* CIA2_PORT_B_DDR = $dd03;
// CIA#2 Interrupt Status & Control Register
const byte* CIA2_INTERRUPT = $dd0d;
// The vector used when the KERNAL serves IRQ interrupts
const void()** KERNEL_IRQ = $0314;
// The vector used when the HARDWARE serves IRQ interrupts
const void()** HARDWARE_IRQ = $fffe;
const byte BLACK = $0;
const byte WHITE = $1;
@ -370,14 +389,17 @@ SYMBOLS
(byte*) BORDERCOL
(byte) BROWN
(byte*) CHARGEN
(byte*) CIA1_INTERRUPT
(byte*) CIA1_PORT_A
(byte*) CIA1_PORT_A_DDR
(byte*) CIA1_PORT_B
(byte*) CIA1_PORT_B_DDR
(byte*) CIA2_INTERRUPT
(byte*) CIA2_PORT_A
(byte*) CIA2_PORT_A_DDR
(byte*) CIA2_PORT_B
(byte*) CIA2_PORT_B_DDR
(byte) CIA_INTERRUPT_CLEAR
(byte*) COLS
(byte) CYAN
(byte*) D011
@ -386,6 +408,14 @@ SYMBOLS
(byte) DARK_GREY
(byte) GREEN
(byte) GREY
(void()**) HARDWARE_IRQ
(byte) IRQ_COLLISION_BG
(byte) IRQ_COLLISION_SPRITE
(byte*) IRQ_ENABLE
(byte) IRQ_LIGHTPEN
(byte) IRQ_RASTER
(byte*) IRQ_STATUS
(void()**) KERNEL_IRQ
(byte) LIGHT_BLUE
(byte) LIGHT_GREEN
(byte) LIGHT_GREY
@ -640,15 +670,21 @@ Promoting word/dword/signed dword to byte* in VIC_CONTROL2 ← ((byte*)) 53270
Promoting word/dword/signed dword to byte* in D016 ← ((byte*)) 53270
Promoting word/dword/signed dword to byte* in D018 ← ((byte*)) 53272
Promoting word/dword/signed dword to byte* in VIC_MEMORY ← ((byte*)) 53272
Promoting word/dword/signed dword to byte* in IRQ_STATUS ← ((byte*)) 53273
Promoting word/dword/signed dword to byte* in IRQ_ENABLE ← ((byte*)) 53274
Promoting word/dword/signed dword to byte* in COLS ← ((byte*)) 55296
Promoting word/dword/signed dword to byte* in CIA1_PORT_A ← ((byte*)) 56320
Promoting word/dword/signed dword to byte* in CIA1_PORT_B ← ((byte*)) 56321
Promoting word/dword/signed dword to byte* in CIA1_PORT_A_DDR ← ((byte*)) 56322
Promoting word/dword/signed dword to byte* in CIA1_PORT_B_DDR ← ((byte*)) 56323
Promoting word/dword/signed dword to byte* in CIA1_INTERRUPT ← ((byte*)) 56333
Promoting word/dword/signed dword to byte* in CIA2_PORT_A ← ((byte*)) 56576
Promoting word/dword/signed dword to byte* in CIA2_PORT_B ← ((byte*)) 56577
Promoting word/dword/signed dword to byte* in CIA2_PORT_A_DDR ← ((byte*)) 56578
Promoting word/dword/signed dword to byte* in CIA2_PORT_B_DDR ← ((byte*)) 56579
Promoting word/dword/signed dword to byte* in CIA2_INTERRUPT ← ((byte*)) 56589
Promoting word/signed word/dword/signed dword to void()** in KERNEL_IRQ ← ((void()**)) 788
Promoting word/dword/signed dword to void()** in HARDWARE_IRQ ← ((void()**)) 65534
Promoting word/signed word/dword/signed dword to byte* in PLEX_SCREEN_PTR ← ((byte*)) $0
Promoting word/signed word/dword/signed dword to byte* in SCREEN ← ((byte*)) 1024
Promoting word/signed word/dword/signed dword to byte* in SPRITE ← ((byte*)) 8192
@ -695,15 +731,26 @@ INITIAL CONTROL FLOW GRAPH
(byte) VIC_CSEL ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte*) D018 ← ((byte*)) (word/dword/signed dword) 53272
(byte*) VIC_MEMORY ← ((byte*)) (word/dword/signed dword) 53272
(byte*) IRQ_STATUS ← ((byte*)) (word/dword/signed dword) 53273
(byte*) IRQ_ENABLE ← ((byte*)) (word/dword/signed dword) 53274
(byte) IRQ_RASTER ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) IRQ_COLLISION_BG ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) IRQ_COLLISION_SPRITE ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) IRQ_LIGHTPEN ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
(byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
(byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
(byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
(byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
(byte*) CIA1_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56333
(byte) CIA_INTERRUPT_CLEAR ← (byte/signed byte/word/signed word/dword/signed dword) 127
(byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
(byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
(byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
(byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
(byte*) CIA2_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56589
(void()**) KERNEL_IRQ ← ((void()**)) (word/signed word/dword/signed dword) 788
(void()**) HARDWARE_IRQ ← ((void()**)) (word/dword/signed dword) 65534
(byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
@ -1146,29 +1193,40 @@ Eliminating unused variable (byte) VIC_MCM and assignment [36] (byte) VIC_MCM
Eliminating unused variable (byte) VIC_CSEL and assignment [37] (byte) VIC_CSEL ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte*) D018 and assignment [38] (byte*) D018 ← ((byte*)) (word/dword/signed dword) 53272
Eliminating unused variable (byte*) VIC_MEMORY and assignment [39] (byte*) VIC_MEMORY ← ((byte*)) (word/dword/signed dword) 53272
Eliminating unused variable (byte*) COLS and assignment [40] (byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
Eliminating unused variable (byte*) CIA1_PORT_A and assignment [41] (byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
Eliminating unused variable (byte*) CIA1_PORT_B and assignment [42] (byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
Eliminating unused variable (byte*) CIA1_PORT_A_DDR and assignment [43] (byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
Eliminating unused variable (byte*) CIA1_PORT_B_DDR and assignment [44] (byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
Eliminating unused variable (byte*) CIA2_PORT_A and assignment [45] (byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
Eliminating unused variable (byte*) CIA2_PORT_B and assignment [46] (byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
Eliminating unused variable (byte*) CIA2_PORT_A_DDR and assignment [47] (byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
Eliminating unused variable (byte*) CIA2_PORT_B_DDR and assignment [48] (byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
Eliminating unused variable (byte) WHITE and assignment [50] (byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) RED and assignment [51] (byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) CYAN and assignment [52] (byte) CYAN ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) PURPLE and assignment [53] (byte) PURPLE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) BLUE and assignment [55] (byte) BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) YELLOW and assignment [56] (byte) YELLOW ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) ORANGE and assignment [57] (byte) ORANGE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) BROWN and assignment [58] (byte) BROWN ← (byte/signed byte/word/signed word/dword/signed dword) 9
Eliminating unused variable (byte) PINK and assignment [59] (byte) PINK ← (byte/signed byte/word/signed word/dword/signed dword) 10
Eliminating unused variable (byte) DARK_GREY and assignment [60] (byte) DARK_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 11
Eliminating unused variable (byte) GREY and assignment [61] (byte) GREY ← (byte/signed byte/word/signed word/dword/signed dword) 12
Eliminating unused variable (byte) LIGHT_GREEN and assignment [62] (byte) LIGHT_GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 13
Eliminating unused variable (byte) LIGHT_BLUE and assignment [63] (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 14
Eliminating unused variable (byte) LIGHT_GREY and assignment [64] (byte) LIGHT_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable (byte*) IRQ_STATUS and assignment [40] (byte*) IRQ_STATUS ← ((byte*)) (word/dword/signed dword) 53273
Eliminating unused variable (byte*) IRQ_ENABLE and assignment [41] (byte*) IRQ_ENABLE ← ((byte*)) (word/dword/signed dword) 53274
Eliminating unused variable (byte) IRQ_RASTER and assignment [42] (byte) IRQ_RASTER ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) IRQ_COLLISION_BG and assignment [43] (byte) IRQ_COLLISION_BG ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) IRQ_COLLISION_SPRITE and assignment [44] (byte) IRQ_COLLISION_SPRITE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) IRQ_LIGHTPEN and assignment [45] (byte) IRQ_LIGHTPEN ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte*) COLS and assignment [46] (byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
Eliminating unused variable (byte*) CIA1_PORT_A and assignment [47] (byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
Eliminating unused variable (byte*) CIA1_PORT_B and assignment [48] (byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
Eliminating unused variable (byte*) CIA1_PORT_A_DDR and assignment [49] (byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
Eliminating unused variable (byte*) CIA1_PORT_B_DDR and assignment [50] (byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
Eliminating unused variable (byte*) CIA1_INTERRUPT and assignment [51] (byte*) CIA1_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56333
Eliminating unused variable (byte) CIA_INTERRUPT_CLEAR and assignment [52] (byte) CIA_INTERRUPT_CLEAR ← (byte/signed byte/word/signed word/dword/signed dword) 127
Eliminating unused variable (byte*) CIA2_PORT_A and assignment [53] (byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
Eliminating unused variable (byte*) CIA2_PORT_B and assignment [54] (byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
Eliminating unused variable (byte*) CIA2_PORT_A_DDR and assignment [55] (byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
Eliminating unused variable (byte*) CIA2_PORT_B_DDR and assignment [56] (byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
Eliminating unused variable (byte*) CIA2_INTERRUPT and assignment [57] (byte*) CIA2_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56589
Eliminating unused variable (void()**) KERNEL_IRQ and assignment [58] (void()**) KERNEL_IRQ ← ((void()**)) (word/signed word/dword/signed dword) 788
Eliminating unused variable (void()**) HARDWARE_IRQ and assignment [59] (void()**) HARDWARE_IRQ ← ((void()**)) (word/dword/signed dword) 65534
Eliminating unused variable (byte) WHITE and assignment [61] (byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) RED and assignment [62] (byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) CYAN and assignment [63] (byte) CYAN ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) PURPLE and assignment [64] (byte) PURPLE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) BLUE and assignment [66] (byte) BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) YELLOW and assignment [67] (byte) YELLOW ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) ORANGE and assignment [68] (byte) ORANGE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) BROWN and assignment [69] (byte) BROWN ← (byte/signed byte/word/signed word/dword/signed dword) 9
Eliminating unused variable (byte) PINK and assignment [70] (byte) PINK ← (byte/signed byte/word/signed word/dword/signed dword) 10
Eliminating unused variable (byte) DARK_GREY and assignment [71] (byte) DARK_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 11
Eliminating unused variable (byte) GREY and assignment [72] (byte) GREY ← (byte/signed byte/word/signed word/dword/signed dword) 12
Eliminating unused variable (byte) LIGHT_GREEN and assignment [73] (byte) LIGHT_GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 13
Eliminating unused variable (byte) LIGHT_BLUE and assignment [74] (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 14
Eliminating unused variable (byte) LIGHT_GREY and assignment [75] (byte) LIGHT_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable - keeping the call (void~) main::$0
Eliminating unused variable - keeping the call (void~) main::$1
Eliminating unused variable - keeping the call (void~) init::$2

View File

@ -130,6 +130,13 @@ const byte VIC_CSEL = %00001000;
const byte* D018 = $d018;
const byte* VIC_MEMORY = $d018;
const byte* IRQ_STATUS = $d019;
const byte* IRQ_ENABLE = $d01a;
const byte IRQ_RASTER = %00000001;
const byte IRQ_COLLISION_BG = %00000010;
const byte IRQ_COLLISION_SPRITE = %00000100;
const byte IRQ_LIGHTPEN = %00001000;
const byte* COLS = $d800;
// CIA#1 Port A: keyboard matrix columns and joystick #2
@ -140,6 +147,10 @@ const byte* CIA1_PORT_B = $dc01;
const byte* CIA1_PORT_A_DDR = $dc02;
// CIA #1 Port B data direction register.
const byte* CIA1_PORT_B_DDR = $dc03;
// CIA#1 Interrupt Status & Control Register
const byte* CIA1_INTERRUPT = $dc0d;
// Value that disables all CIA interrupts when stored to the CIA Interrupt registers
const byte CIA_INTERRUPT_CLEAR = $7f;
// CIA#2 Port A: Serial bus, RS-232, VIC memory bank
const byte* CIA2_PORT_A = $dd00;
@ -149,6 +160,14 @@ const byte* CIA2_PORT_B = $dd01;
const byte* CIA2_PORT_A_DDR = $dd02;
// CIA #2 Port B data direction register.
const byte* CIA2_PORT_B_DDR = $dd03;
// CIA#2 Interrupt Status & Control Register
const byte* CIA2_INTERRUPT = $dd0d;
// The vector used when the KERNAL serves IRQ interrupts
const void()** KERNEL_IRQ = $0314;
// The vector used when the HARDWARE serves IRQ interrupts
const void()** HARDWARE_IRQ = $fffe;
const byte BLACK = $0;
const byte WHITE = $1;
@ -684,14 +703,17 @@ SYMBOLS
(byte*) BORDERCOL
(byte) BROWN
(byte*) CHARGEN
(byte*) CIA1_INTERRUPT
(byte*) CIA1_PORT_A
(byte*) CIA1_PORT_A_DDR
(byte*) CIA1_PORT_B
(byte*) CIA1_PORT_B_DDR
(byte*) CIA2_INTERRUPT
(byte*) CIA2_PORT_A
(byte*) CIA2_PORT_A_DDR
(byte*) CIA2_PORT_B
(byte*) CIA2_PORT_B_DDR
(byte) CIA_INTERRUPT_CLEAR
(byte*) COLS
(byte) CYAN
(byte*) D011
@ -700,6 +722,14 @@ SYMBOLS
(byte) DARK_GREY
(byte) GREEN
(byte) GREY
(void()**) HARDWARE_IRQ
(byte) IRQ_COLLISION_BG
(byte) IRQ_COLLISION_SPRITE
(byte*) IRQ_ENABLE
(byte) IRQ_LIGHTPEN
(byte) IRQ_RASTER
(byte*) IRQ_STATUS
(void()**) KERNEL_IRQ
(byte) LIGHT_BLUE
(byte) LIGHT_GREEN
(byte) LIGHT_GREY
@ -1406,15 +1436,21 @@ Promoting word/dword/signed dword to byte* in VIC_CONTROL2 ← ((byte*)) 53270
Promoting word/dword/signed dword to byte* in D016 ← ((byte*)) 53270
Promoting word/dword/signed dword to byte* in D018 ← ((byte*)) 53272
Promoting word/dword/signed dword to byte* in VIC_MEMORY ← ((byte*)) 53272
Promoting word/dword/signed dword to byte* in IRQ_STATUS ← ((byte*)) 53273
Promoting word/dword/signed dword to byte* in IRQ_ENABLE ← ((byte*)) 53274
Promoting word/dword/signed dword to byte* in COLS ← ((byte*)) 55296
Promoting word/dword/signed dword to byte* in CIA1_PORT_A ← ((byte*)) 56320
Promoting word/dword/signed dword to byte* in CIA1_PORT_B ← ((byte*)) 56321
Promoting word/dword/signed dword to byte* in CIA1_PORT_A_DDR ← ((byte*)) 56322
Promoting word/dword/signed dword to byte* in CIA1_PORT_B_DDR ← ((byte*)) 56323
Promoting word/dword/signed dword to byte* in CIA1_INTERRUPT ← ((byte*)) 56333
Promoting word/dword/signed dword to byte* in CIA2_PORT_A ← ((byte*)) 56576
Promoting word/dword/signed dword to byte* in CIA2_PORT_B ← ((byte*)) 56577
Promoting word/dword/signed dword to byte* in CIA2_PORT_A_DDR ← ((byte*)) 56578
Promoting word/dword/signed dword to byte* in CIA2_PORT_B_DDR ← ((byte*)) 56579
Promoting word/dword/signed dword to byte* in CIA2_INTERRUPT ← ((byte*)) 56589
Promoting word/signed word/dword/signed dword to void()** in KERNEL_IRQ ← ((void()**)) 788
Promoting word/dword/signed dword to void()** in HARDWARE_IRQ ← ((void()**)) 65534
Promoting byte to word in mul8u::mb ← ((word)) mul8u::b
Promoting word to dword in mul16u::mb ← ((dword)) mul16u::b
Promoting word/signed word/dword/signed dword to byte* in SCREEN ← ((byte*)) 1024
@ -1462,15 +1498,26 @@ INITIAL CONTROL FLOW GRAPH
(byte) VIC_CSEL ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte*) D018 ← ((byte*)) (word/dword/signed dword) 53272
(byte*) VIC_MEMORY ← ((byte*)) (word/dword/signed dword) 53272
(byte*) IRQ_STATUS ← ((byte*)) (word/dword/signed dword) 53273
(byte*) IRQ_ENABLE ← ((byte*)) (word/dword/signed dword) 53274
(byte) IRQ_RASTER ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) IRQ_COLLISION_BG ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) IRQ_COLLISION_SPRITE ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) IRQ_LIGHTPEN ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
(byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
(byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
(byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
(byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
(byte*) CIA1_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56333
(byte) CIA_INTERRUPT_CLEAR ← (byte/signed byte/word/signed word/dword/signed dword) 127
(byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
(byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
(byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
(byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
(byte*) CIA2_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56589
(void()**) KERNEL_IRQ ← ((void()**)) (word/signed word/dword/signed dword) 788
(void()**) HARDWARE_IRQ ← ((void()**)) (word/dword/signed dword) 65534
(byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
@ -2596,36 +2643,47 @@ Eliminating unused variable (byte) VIC_ECM and assignment [30] (byte) VIC_ECM
Eliminating unused variable (byte*) VIC_CONTROL2 and assignment [34] (byte*) VIC_CONTROL2 ← ((byte*)) (word/dword/signed dword) 53270
Eliminating unused variable (byte) VIC_MCM and assignment [36] (byte) VIC_MCM ← (byte/signed byte/word/signed word/dword/signed dword) 16
Eliminating unused variable (byte*) VIC_MEMORY and assignment [39] (byte*) VIC_MEMORY ← ((byte*)) (word/dword/signed dword) 53272
Eliminating unused variable (byte*) COLS and assignment [40] (byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
Eliminating unused variable (byte*) CIA1_PORT_A and assignment [41] (byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
Eliminating unused variable (byte*) CIA1_PORT_B and assignment [42] (byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
Eliminating unused variable (byte*) CIA1_PORT_A_DDR and assignment [43] (byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
Eliminating unused variable (byte*) CIA1_PORT_B_DDR and assignment [44] (byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
Eliminating unused variable (byte*) CIA2_PORT_B and assignment [46] (byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
Eliminating unused variable (byte*) CIA2_PORT_B_DDR and assignment [48] (byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
Eliminating unused variable (byte) BLACK and assignment [49] (byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) RED and assignment [51] (byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) CYAN and assignment [52] (byte) CYAN ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) PURPLE and assignment [53] (byte) PURPLE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) GREEN and assignment [54] (byte) GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) BLUE and assignment [55] (byte) BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) YELLOW and assignment [56] (byte) YELLOW ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) ORANGE and assignment [57] (byte) ORANGE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) BROWN and assignment [58] (byte) BROWN ← (byte/signed byte/word/signed word/dword/signed dword) 9
Eliminating unused variable (byte) PINK and assignment [59] (byte) PINK ← (byte/signed byte/word/signed word/dword/signed dword) 10
Eliminating unused variable (byte) DARK_GREY and assignment [60] (byte) DARK_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 11
Eliminating unused variable (byte) GREY and assignment [61] (byte) GREY ← (byte/signed byte/word/signed word/dword/signed dword) 12
Eliminating unused variable (byte) LIGHT_GREEN and assignment [62] (byte) LIGHT_GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 13
Eliminating unused variable (byte) LIGHT_BLUE and assignment [63] (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 14
Eliminating unused variable (byte) LIGHT_GREY and assignment [64] (byte) LIGHT_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable (byte) rem8u and assignment [65] (byte) rem8u ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (signed byte) rem8s and assignment [105] (signed byte) rem8s ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (signed word) rem16s and assignment [106] (signed word) rem16s ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (word~) mul16s::$5 and assignment [134] (word~) mul16s::$5 ← > (dword) mul16s::m
Eliminating unused variable (word~) mul16s::$11 and assignment [142] (word~) mul16s::$11 ← > (dword) mul16s::m
Eliminating unused variable (word) PI2_u4f12 and assignment [153] (word) PI2_u4f12 ← (word/signed word/dword/signed dword) 25736
Eliminating unused variable (word) PI_u4f12 and assignment [154] (word) PI_u4f12 ← (word/signed word/dword/signed dword) 12868
Eliminating unused variable (word) PI_HALF_u4f12 and assignment [155] (word) PI_HALF_u4f12 ← (word/signed word/dword/signed dword) 6434
Eliminating unused variable (byte*) IRQ_STATUS and assignment [40] (byte*) IRQ_STATUS ← ((byte*)) (word/dword/signed dword) 53273
Eliminating unused variable (byte*) IRQ_ENABLE and assignment [41] (byte*) IRQ_ENABLE ← ((byte*)) (word/dword/signed dword) 53274
Eliminating unused variable (byte) IRQ_RASTER and assignment [42] (byte) IRQ_RASTER ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) IRQ_COLLISION_BG and assignment [43] (byte) IRQ_COLLISION_BG ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) IRQ_COLLISION_SPRITE and assignment [44] (byte) IRQ_COLLISION_SPRITE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) IRQ_LIGHTPEN and assignment [45] (byte) IRQ_LIGHTPEN ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte*) COLS and assignment [46] (byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
Eliminating unused variable (byte*) CIA1_PORT_A and assignment [47] (byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
Eliminating unused variable (byte*) CIA1_PORT_B and assignment [48] (byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
Eliminating unused variable (byte*) CIA1_PORT_A_DDR and assignment [49] (byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
Eliminating unused variable (byte*) CIA1_PORT_B_DDR and assignment [50] (byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
Eliminating unused variable (byte*) CIA1_INTERRUPT and assignment [51] (byte*) CIA1_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56333
Eliminating unused variable (byte) CIA_INTERRUPT_CLEAR and assignment [52] (byte) CIA_INTERRUPT_CLEAR ← (byte/signed byte/word/signed word/dword/signed dword) 127
Eliminating unused variable (byte*) CIA2_PORT_B and assignment [54] (byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
Eliminating unused variable (byte*) CIA2_PORT_B_DDR and assignment [56] (byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
Eliminating unused variable (byte*) CIA2_INTERRUPT and assignment [57] (byte*) CIA2_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56589
Eliminating unused variable (void()**) KERNEL_IRQ and assignment [58] (void()**) KERNEL_IRQ ← ((void()**)) (word/signed word/dword/signed dword) 788
Eliminating unused variable (void()**) HARDWARE_IRQ and assignment [59] (void()**) HARDWARE_IRQ ← ((void()**)) (word/dword/signed dword) 65534
Eliminating unused variable (byte) BLACK and assignment [60] (byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) RED and assignment [62] (byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) CYAN and assignment [63] (byte) CYAN ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) PURPLE and assignment [64] (byte) PURPLE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) GREEN and assignment [65] (byte) GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) BLUE and assignment [66] (byte) BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) YELLOW and assignment [67] (byte) YELLOW ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) ORANGE and assignment [68] (byte) ORANGE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) BROWN and assignment [69] (byte) BROWN ← (byte/signed byte/word/signed word/dword/signed dword) 9
Eliminating unused variable (byte) PINK and assignment [70] (byte) PINK ← (byte/signed byte/word/signed word/dword/signed dword) 10
Eliminating unused variable (byte) DARK_GREY and assignment [71] (byte) DARK_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 11
Eliminating unused variable (byte) GREY and assignment [72] (byte) GREY ← (byte/signed byte/word/signed word/dword/signed dword) 12
Eliminating unused variable (byte) LIGHT_GREEN and assignment [73] (byte) LIGHT_GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 13
Eliminating unused variable (byte) LIGHT_BLUE and assignment [74] (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 14
Eliminating unused variable (byte) LIGHT_GREY and assignment [75] (byte) LIGHT_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable (byte) rem8u and assignment [76] (byte) rem8u ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (signed byte) rem8s and assignment [116] (signed byte) rem8s ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (signed word) rem16s and assignment [117] (signed word) rem16s ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (word~) mul16s::$5 and assignment [145] (word~) mul16s::$5 ← > (dword) mul16s::m
Eliminating unused variable (word~) mul16s::$11 and assignment [153] (word~) mul16s::$11 ← > (dword) mul16s::m
Eliminating unused variable (word) PI2_u4f12 and assignment [164] (word) PI2_u4f12 ← (word/signed word/dword/signed dword) 25736
Eliminating unused variable (word) PI_u4f12 and assignment [165] (word) PI_u4f12 ← (word/signed word/dword/signed dword) 12868
Eliminating unused variable (word) PI_HALF_u4f12 and assignment [166] (word) PI_HALF_u4f12 ← (word/signed word/dword/signed dword) 6434
Eliminating unused variable - keeping the call (void~) main::$5
Eliminating unused variable - keeping the call (void~) main::$6
Eliminating unused variable - keeping the call (void~) main::$7

View File

@ -273,6 +273,13 @@ const byte VIC_CSEL = %00001000;
const byte* D018 = $d018;
const byte* VIC_MEMORY = $d018;
const byte* IRQ_STATUS = $d019;
const byte* IRQ_ENABLE = $d01a;
const byte IRQ_RASTER = %00000001;
const byte IRQ_COLLISION_BG = %00000010;
const byte IRQ_COLLISION_SPRITE = %00000100;
const byte IRQ_LIGHTPEN = %00001000;
const byte* COLS = $d800;
// CIA#1 Port A: keyboard matrix columns and joystick #2
@ -283,6 +290,10 @@ const byte* CIA1_PORT_B = $dc01;
const byte* CIA1_PORT_A_DDR = $dc02;
// CIA #1 Port B data direction register.
const byte* CIA1_PORT_B_DDR = $dc03;
// CIA#1 Interrupt Status & Control Register
const byte* CIA1_INTERRUPT = $dc0d;
// Value that disables all CIA interrupts when stored to the CIA Interrupt registers
const byte CIA_INTERRUPT_CLEAR = $7f;
// CIA#2 Port A: Serial bus, RS-232, VIC memory bank
const byte* CIA2_PORT_A = $dd00;
@ -292,6 +303,14 @@ const byte* CIA2_PORT_B = $dd01;
const byte* CIA2_PORT_A_DDR = $dd02;
// CIA #2 Port B data direction register.
const byte* CIA2_PORT_B_DDR = $dd03;
// CIA#2 Interrupt Status & Control Register
const byte* CIA2_INTERRUPT = $dd0d;
// The vector used when the KERNAL serves IRQ interrupts
const void()** KERNEL_IRQ = $0314;
// The vector used when the HARDWARE serves IRQ interrupts
const void()** HARDWARE_IRQ = $fffe;
const byte BLACK = $0;
const byte WHITE = $1;
@ -813,14 +832,17 @@ SYMBOLS
(byte*) BORDERCOL
(byte) BROWN
(byte*) CHARGEN
(byte*) CIA1_INTERRUPT
(byte*) CIA1_PORT_A
(byte*) CIA1_PORT_A_DDR
(byte*) CIA1_PORT_B
(byte*) CIA1_PORT_B_DDR
(byte*) CIA2_INTERRUPT
(byte*) CIA2_PORT_A
(byte*) CIA2_PORT_A_DDR
(byte*) CIA2_PORT_B
(byte*) CIA2_PORT_B_DDR
(byte) CIA_INTERRUPT_CLEAR
(byte*) COLS
(byte) CYAN
(byte*) D011
@ -829,6 +851,14 @@ SYMBOLS
(byte) DARK_GREY
(byte) GREEN
(byte) GREY
(void()**) HARDWARE_IRQ
(byte) IRQ_COLLISION_BG
(byte) IRQ_COLLISION_SPRITE
(byte*) IRQ_ENABLE
(byte) IRQ_LIGHTPEN
(byte) IRQ_RASTER
(byte*) IRQ_STATUS
(void()**) KERNEL_IRQ
(byte) LIGHT_BLUE
(byte) LIGHT_GREEN
(byte) LIGHT_GREY
@ -1321,15 +1351,21 @@ Promoting word/dword/signed dword to byte* in VIC_CONTROL2 ← ((byte*)) 53270
Promoting word/dword/signed dword to byte* in D016 ← ((byte*)) 53270
Promoting word/dword/signed dword to byte* in D018 ← ((byte*)) 53272
Promoting word/dword/signed dword to byte* in VIC_MEMORY ← ((byte*)) 53272
Promoting word/dword/signed dword to byte* in IRQ_STATUS ← ((byte*)) 53273
Promoting word/dword/signed dword to byte* in IRQ_ENABLE ← ((byte*)) 53274
Promoting word/dword/signed dword to byte* in COLS ← ((byte*)) 55296
Promoting word/dword/signed dword to byte* in CIA1_PORT_A ← ((byte*)) 56320
Promoting word/dword/signed dword to byte* in CIA1_PORT_B ← ((byte*)) 56321
Promoting word/dword/signed dword to byte* in CIA1_PORT_A_DDR ← ((byte*)) 56322
Promoting word/dword/signed dword to byte* in CIA1_PORT_B_DDR ← ((byte*)) 56323
Promoting word/dword/signed dword to byte* in CIA1_INTERRUPT ← ((byte*)) 56333
Promoting word/dword/signed dword to byte* in CIA2_PORT_A ← ((byte*)) 56576
Promoting word/dword/signed dword to byte* in CIA2_PORT_B ← ((byte*)) 56577
Promoting word/dword/signed dword to byte* in CIA2_PORT_A_DDR ← ((byte*)) 56578
Promoting word/dword/signed dword to byte* in CIA2_PORT_B_DDR ← ((byte*)) 56579
Promoting word/dword/signed dword to byte* in CIA2_INTERRUPT ← ((byte*)) 56589
Promoting word/signed word/dword/signed dword to void()** in KERNEL_IRQ ← ((void()**)) 788
Promoting word/dword/signed dword to void()** in HARDWARE_IRQ ← ((void()**)) 65534
Promoting byte/word/signed word/dword/signed dword to byte* in memLo ← ((byte*)) 254
Promoting byte/word/signed word/dword/signed dword to byte* in memHi ← ((byte*)) 255
Promoting word/signed word/dword/signed dword to byte* in print_screen ← ((byte*)) 1024
@ -1378,15 +1414,26 @@ INITIAL CONTROL FLOW GRAPH
(byte) VIC_CSEL ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte*) D018 ← ((byte*)) (word/dword/signed dword) 53272
(byte*) VIC_MEMORY ← ((byte*)) (word/dword/signed dword) 53272
(byte*) IRQ_STATUS ← ((byte*)) (word/dword/signed dword) 53273
(byte*) IRQ_ENABLE ← ((byte*)) (word/dword/signed dword) 53274
(byte) IRQ_RASTER ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) IRQ_COLLISION_BG ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) IRQ_COLLISION_SPRITE ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) IRQ_LIGHTPEN ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
(byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
(byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
(byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
(byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
(byte*) CIA1_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56333
(byte) CIA_INTERRUPT_CLEAR ← (byte/signed byte/word/signed word/dword/signed dword) 127
(byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
(byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
(byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
(byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
(byte*) CIA2_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56589
(void()**) KERNEL_IRQ ← ((void()**)) (word/signed word/dword/signed dword) 788
(void()**) HARDWARE_IRQ ← ((void()**)) (word/dword/signed dword) 65534
(byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
@ -2351,37 +2398,48 @@ Eliminating unused variable (byte) VIC_MCM and assignment [36] (byte) VIC_MCM
Eliminating unused variable (byte) VIC_CSEL and assignment [37] (byte) VIC_CSEL ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte*) D018 and assignment [38] (byte*) D018 ← ((byte*)) (word/dword/signed dword) 53272
Eliminating unused variable (byte*) VIC_MEMORY and assignment [39] (byte*) VIC_MEMORY ← ((byte*)) (word/dword/signed dword) 53272
Eliminating unused variable (byte*) CIA1_PORT_A and assignment [41] (byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
Eliminating unused variable (byte*) CIA1_PORT_B and assignment [42] (byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
Eliminating unused variable (byte*) CIA1_PORT_A_DDR and assignment [43] (byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
Eliminating unused variable (byte*) CIA1_PORT_B_DDR and assignment [44] (byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
Eliminating unused variable (byte*) CIA2_PORT_A and assignment [45] (byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
Eliminating unused variable (byte*) CIA2_PORT_B and assignment [46] (byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
Eliminating unused variable (byte*) CIA2_PORT_A_DDR and assignment [47] (byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
Eliminating unused variable (byte*) CIA2_PORT_B_DDR and assignment [48] (byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
Eliminating unused variable (byte) BLACK and assignment [49] (byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) WHITE and assignment [50] (byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) RED and assignment [51] (byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) CYAN and assignment [52] (byte) CYAN ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) PURPLE and assignment [53] (byte) PURPLE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) GREEN and assignment [54] (byte) GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) BLUE and assignment [55] (byte) BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) YELLOW and assignment [56] (byte) YELLOW ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) ORANGE and assignment [57] (byte) ORANGE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) BROWN and assignment [58] (byte) BROWN ← (byte/signed byte/word/signed word/dword/signed dword) 9
Eliminating unused variable (byte) PINK and assignment [59] (byte) PINK ← (byte/signed byte/word/signed word/dword/signed dword) 10
Eliminating unused variable (byte) DARK_GREY and assignment [60] (byte) DARK_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 11
Eliminating unused variable (byte) GREY and assignment [61] (byte) GREY ← (byte/signed byte/word/signed word/dword/signed dword) 12
Eliminating unused variable (byte) LIGHT_GREEN and assignment [62] (byte) LIGHT_GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 13
Eliminating unused variable (byte) LIGHT_BLUE and assignment [63] (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 14
Eliminating unused variable (byte) LIGHT_GREY and assignment [64] (byte) LIGHT_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable (byte*) IRQ_STATUS and assignment [40] (byte*) IRQ_STATUS ← ((byte*)) (word/dword/signed dword) 53273
Eliminating unused variable (byte*) IRQ_ENABLE and assignment [41] (byte*) IRQ_ENABLE ← ((byte*)) (word/dword/signed dword) 53274
Eliminating unused variable (byte) IRQ_RASTER and assignment [42] (byte) IRQ_RASTER ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) IRQ_COLLISION_BG and assignment [43] (byte) IRQ_COLLISION_BG ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) IRQ_COLLISION_SPRITE and assignment [44] (byte) IRQ_COLLISION_SPRITE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) IRQ_LIGHTPEN and assignment [45] (byte) IRQ_LIGHTPEN ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte*) CIA1_PORT_A and assignment [47] (byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
Eliminating unused variable (byte*) CIA1_PORT_B and assignment [48] (byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
Eliminating unused variable (byte*) CIA1_PORT_A_DDR and assignment [49] (byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
Eliminating unused variable (byte*) CIA1_PORT_B_DDR and assignment [50] (byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
Eliminating unused variable (byte*) CIA1_INTERRUPT and assignment [51] (byte*) CIA1_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56333
Eliminating unused variable (byte) CIA_INTERRUPT_CLEAR and assignment [52] (byte) CIA_INTERRUPT_CLEAR ← (byte/signed byte/word/signed word/dword/signed dword) 127
Eliminating unused variable (byte*) CIA2_PORT_A and assignment [53] (byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
Eliminating unused variable (byte*) CIA2_PORT_B and assignment [54] (byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
Eliminating unused variable (byte*) CIA2_PORT_A_DDR and assignment [55] (byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
Eliminating unused variable (byte*) CIA2_PORT_B_DDR and assignment [56] (byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
Eliminating unused variable (byte*) CIA2_INTERRUPT and assignment [57] (byte*) CIA2_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56589
Eliminating unused variable (void()**) KERNEL_IRQ and assignment [58] (void()**) KERNEL_IRQ ← ((void()**)) (word/signed word/dword/signed dword) 788
Eliminating unused variable (void()**) HARDWARE_IRQ and assignment [59] (void()**) HARDWARE_IRQ ← ((void()**)) (word/dword/signed dword) 65534
Eliminating unused variable (byte) BLACK and assignment [60] (byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) WHITE and assignment [61] (byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) RED and assignment [62] (byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) CYAN and assignment [63] (byte) CYAN ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) PURPLE and assignment [64] (byte) PURPLE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) GREEN and assignment [65] (byte) GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) BLUE and assignment [66] (byte) BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) YELLOW and assignment [67] (byte) YELLOW ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) ORANGE and assignment [68] (byte) ORANGE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) BROWN and assignment [69] (byte) BROWN ← (byte/signed byte/word/signed word/dword/signed dword) 9
Eliminating unused variable (byte) PINK and assignment [70] (byte) PINK ← (byte/signed byte/word/signed word/dword/signed dword) 10
Eliminating unused variable (byte) DARK_GREY and assignment [71] (byte) DARK_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 11
Eliminating unused variable (byte) GREY and assignment [72] (byte) GREY ← (byte/signed byte/word/signed word/dword/signed dword) 12
Eliminating unused variable (byte) LIGHT_GREEN and assignment [73] (byte) LIGHT_GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 13
Eliminating unused variable (byte) LIGHT_BLUE and assignment [74] (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 14
Eliminating unused variable (byte) LIGHT_GREY and assignment [75] (byte) LIGHT_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable - keeping the call (void~) setFAC::$1
Eliminating unused variable - keeping the call (void~) setMEMtoFAC::$0
Eliminating unused variable - keeping the call (void~) addMEMtoFAC::$0
Eliminating unused variable - keeping the call (void~) divMEMbyFAC::$0
Eliminating unused variable - keeping the call (void~) mulFACbyMEM::$0
Eliminating unused variable (byte*) print_char_cursor and assignment [101] (byte*) print_char_cursor ← (byte*) print_line_cursor
Eliminating unused variable (byte[]) print_hextab and assignment [102] (byte[]) print_hextab ← (string) "0123456789abcdef"
Eliminating unused variable (byte*) print_char_cursor and assignment [112] (byte*) print_char_cursor ← (byte*) print_line_cursor
Eliminating unused variable (byte[]) print_hextab and assignment [113] (byte[]) print_hextab ← (string) "0123456789abcdef"
Eliminating unused variable - keeping the call (void~) main::$0
Eliminating unused variable - keeping the call (void~) main::$2
Eliminating unused variable - keeping the call (void~) init::$0

View File

@ -308,6 +308,13 @@ const byte VIC_CSEL = %00001000;
const byte* D018 = $d018;
const byte* VIC_MEMORY = $d018;
const byte* IRQ_STATUS = $d019;
const byte* IRQ_ENABLE = $d01a;
const byte IRQ_RASTER = %00000001;
const byte IRQ_COLLISION_BG = %00000010;
const byte IRQ_COLLISION_SPRITE = %00000100;
const byte IRQ_LIGHTPEN = %00001000;
const byte* COLS = $d800;
// CIA#1 Port A: keyboard matrix columns and joystick #2
@ -318,6 +325,10 @@ const byte* CIA1_PORT_B = $dc01;
const byte* CIA1_PORT_A_DDR = $dc02;
// CIA #1 Port B data direction register.
const byte* CIA1_PORT_B_DDR = $dc03;
// CIA#1 Interrupt Status & Control Register
const byte* CIA1_INTERRUPT = $dc0d;
// Value that disables all CIA interrupts when stored to the CIA Interrupt registers
const byte CIA_INTERRUPT_CLEAR = $7f;
// CIA#2 Port A: Serial bus, RS-232, VIC memory bank
const byte* CIA2_PORT_A = $dd00;
@ -327,6 +338,14 @@ const byte* CIA2_PORT_B = $dd01;
const byte* CIA2_PORT_A_DDR = $dd02;
// CIA #2 Port B data direction register.
const byte* CIA2_PORT_B_DDR = $dd03;
// CIA#2 Interrupt Status & Control Register
const byte* CIA2_INTERRUPT = $dd0d;
// The vector used when the KERNAL serves IRQ interrupts
const void()** KERNEL_IRQ = $0314;
// The vector used when the HARDWARE serves IRQ interrupts
const void()** HARDWARE_IRQ = $fffe;
const byte BLACK = $0;
const byte WHITE = $1;
@ -392,14 +411,17 @@ SYMBOLS
(byte*) BORDERCOL
(byte) BROWN
(byte*) CHARGEN
(byte*) CIA1_INTERRUPT
(byte*) CIA1_PORT_A
(byte*) CIA1_PORT_A_DDR
(byte*) CIA1_PORT_B
(byte*) CIA1_PORT_B_DDR
(byte*) CIA2_INTERRUPT
(byte*) CIA2_PORT_A
(byte*) CIA2_PORT_A_DDR
(byte*) CIA2_PORT_B
(byte*) CIA2_PORT_B_DDR
(byte) CIA_INTERRUPT_CLEAR
(byte*) COLS
(byte) CYAN
(byte*) D011
@ -408,6 +430,14 @@ SYMBOLS
(byte) DARK_GREY
(byte) GREEN
(byte) GREY
(void()**) HARDWARE_IRQ
(byte) IRQ_COLLISION_BG
(byte) IRQ_COLLISION_SPRITE
(byte*) IRQ_ENABLE
(byte) IRQ_LIGHTPEN
(byte) IRQ_RASTER
(byte*) IRQ_STATUS
(void()**) KERNEL_IRQ
(byte) KEY_0
(byte) KEY_1
(byte) KEY_2
@ -702,15 +732,21 @@ Promoting word/dword/signed dword to byte* in VIC_CONTROL2 ← ((byte*)) 53270
Promoting word/dword/signed dword to byte* in D016 ← ((byte*)) 53270
Promoting word/dword/signed dword to byte* in D018 ← ((byte*)) 53272
Promoting word/dword/signed dword to byte* in VIC_MEMORY ← ((byte*)) 53272
Promoting word/dword/signed dword to byte* in IRQ_STATUS ← ((byte*)) 53273
Promoting word/dword/signed dword to byte* in IRQ_ENABLE ← ((byte*)) 53274
Promoting word/dword/signed dword to byte* in COLS ← ((byte*)) 55296
Promoting word/dword/signed dword to byte* in CIA1_PORT_A ← ((byte*)) 56320
Promoting word/dword/signed dword to byte* in CIA1_PORT_B ← ((byte*)) 56321
Promoting word/dword/signed dword to byte* in CIA1_PORT_A_DDR ← ((byte*)) 56322
Promoting word/dword/signed dword to byte* in CIA1_PORT_B_DDR ← ((byte*)) 56323
Promoting word/dword/signed dword to byte* in CIA1_INTERRUPT ← ((byte*)) 56333
Promoting word/dword/signed dword to byte* in CIA2_PORT_A ← ((byte*)) 56576
Promoting word/dword/signed dword to byte* in CIA2_PORT_B ← ((byte*)) 56577
Promoting word/dword/signed dword to byte* in CIA2_PORT_A_DDR ← ((byte*)) 56578
Promoting word/dword/signed dword to byte* in CIA2_PORT_B_DDR ← ((byte*)) 56579
Promoting word/dword/signed dword to byte* in CIA2_INTERRUPT ← ((byte*)) 56589
Promoting word/signed word/dword/signed dword to void()** in KERNEL_IRQ ← ((void()**)) 788
Promoting word/dword/signed dword to void()** in HARDWARE_IRQ ← ((void()**)) 65534
INITIAL CONTROL FLOW GRAPH
@begin: scope:[] from
(byte*) PROCPORT_DDR ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0
@ -753,15 +789,26 @@ INITIAL CONTROL FLOW GRAPH
(byte) VIC_CSEL ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte*) D018 ← ((byte*)) (word/dword/signed dword) 53272
(byte*) VIC_MEMORY ← ((byte*)) (word/dword/signed dword) 53272
(byte*) IRQ_STATUS ← ((byte*)) (word/dword/signed dword) 53273
(byte*) IRQ_ENABLE ← ((byte*)) (word/dword/signed dword) 53274
(byte) IRQ_RASTER ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) IRQ_COLLISION_BG ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) IRQ_COLLISION_SPRITE ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) IRQ_LIGHTPEN ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
(byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
(byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
(byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
(byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
(byte*) CIA1_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56333
(byte) CIA_INTERRUPT_CLEAR ← (byte/signed byte/word/signed word/dword/signed dword) 127
(byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
(byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
(byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
(byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
(byte*) CIA2_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56589
(void()**) KERNEL_IRQ ← ((void()**)) (word/signed word/dword/signed dword) 788
(void()**) HARDWARE_IRQ ← ((void()**)) (word/dword/signed dword) 65534
(byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
@ -1195,47 +1242,58 @@ Eliminating unused variable (byte) VIC_MCM and assignment [36] (byte) VIC_MCM
Eliminating unused variable (byte) VIC_CSEL and assignment [37] (byte) VIC_CSEL ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte*) D018 and assignment [38] (byte*) D018 ← ((byte*)) (word/dword/signed dword) 53272
Eliminating unused variable (byte*) VIC_MEMORY and assignment [39] (byte*) VIC_MEMORY ← ((byte*)) (word/dword/signed dword) 53272
Eliminating unused variable (byte*) COLS and assignment [40] (byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
Eliminating unused variable (byte*) CIA2_PORT_A and assignment [45] (byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
Eliminating unused variable (byte*) CIA2_PORT_B and assignment [46] (byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
Eliminating unused variable (byte*) CIA2_PORT_A_DDR and assignment [47] (byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
Eliminating unused variable (byte*) CIA2_PORT_B_DDR and assignment [48] (byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
Eliminating unused variable (byte) BLACK and assignment [49] (byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) WHITE and assignment [50] (byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) RED and assignment [51] (byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) CYAN and assignment [52] (byte) CYAN ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) PURPLE and assignment [53] (byte) PURPLE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) YELLOW and assignment [56] (byte) YELLOW ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) ORANGE and assignment [57] (byte) ORANGE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) BROWN and assignment [58] (byte) BROWN ← (byte/signed byte/word/signed word/dword/signed dword) 9
Eliminating unused variable (byte) PINK and assignment [59] (byte) PINK ← (byte/signed byte/word/signed word/dword/signed dword) 10
Eliminating unused variable (byte) DARK_GREY and assignment [60] (byte) DARK_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 11
Eliminating unused variable (byte) GREY and assignment [61] (byte) GREY ← (byte/signed byte/word/signed word/dword/signed dword) 12
Eliminating unused variable (byte) LIGHT_GREEN and assignment [62] (byte) LIGHT_GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 13
Eliminating unused variable (byte) LIGHT_BLUE and assignment [63] (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 14
Eliminating unused variable (byte) LIGHT_GREY and assignment [64] (byte) LIGHT_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable (byte) KEY_DEL and assignment [65] (byte) KEY_DEL ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) KEY_RETURN and assignment [66] (byte) KEY_RETURN ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) KEY_CRSR_RIGHT and assignment [67] (byte) KEY_CRSR_RIGHT ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) KEY_F7 and assignment [68] (byte) KEY_F7 ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) KEY_F1 and assignment [69] (byte) KEY_F1 ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) KEY_F3 and assignment [70] (byte) KEY_F3 ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) KEY_F5 and assignment [71] (byte) KEY_F5 ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) KEY_CRSR_DOWN and assignment [72] (byte) KEY_CRSR_DOWN ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) KEY_LSHIFT and assignment [80] (byte) KEY_LSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable (byte) KEY_HOME and assignment [116] (byte) KEY_HOME ← (byte/signed byte/word/signed word/dword/signed dword) 51
Eliminating unused variable (byte) KEY_RSHIFT and assignment [117] (byte) KEY_RSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 52
Eliminating unused variable (byte) KEY_CTRL and assignment [123] (byte) KEY_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 58
Eliminating unused variable (byte) KEY_COMMODORE and assignment [126] (byte) KEY_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 61
Eliminating unused variable (byte) KEY_RUNSTOP and assignment [128] (byte) KEY_RUNSTOP ← (byte/signed byte/word/signed word/dword/signed dword) 63
Eliminating unused variable (byte[]) keyboard_char_keycodes and assignment [129] (byte[]) keyboard_char_keycodes ← { (byte) KEY_AT, (byte) KEY_A, (byte) KEY_B, (byte) KEY_C, (byte) KEY_D, (byte) KEY_E, (byte) KEY_F, (byte) KEY_G, (byte) KEY_H, (byte) KEY_I, (byte) KEY_J, (byte) KEY_K, (byte) KEY_L, (byte) KEY_M, (byte) KEY_N, (byte) KEY_O, (byte) KEY_P, (byte) KEY_Q, (byte) KEY_R, (byte) KEY_S, (byte) KEY_T, (byte) KEY_U, (byte) KEY_V, (byte) KEY_W, (byte) KEY_X, (byte) KEY_Y, (byte) KEY_Z, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_POUND, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ARROW_UP, (byte) KEY_ARROW_LEFT, (byte) KEY_SPACE, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ASTERISK, (byte) KEY_PLUS, (byte) KEY_COMMA, (byte) KEY_MINUS, (byte) KEY_DOT, (byte) KEY_SLASH, (byte) KEY_0, (byte) KEY_1, (byte) KEY_2, (byte) KEY_3, (byte) KEY_4, (byte) KEY_5, (byte) KEY_6, (byte) KEY_7, (byte) KEY_8, (byte) KEY_9, (byte) KEY_COLON, (byte) KEY_SEMICOLON, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_EQUALS, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 }
Eliminating unused variable (byte[8]) keyboard_events and assignment [150] (byte[8]) keyboard_events ← { fill( 8, 0) }
Eliminating unused variable (byte) keyboard_events_size and assignment [151] (byte) keyboard_events_size ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) keyboard_modifiers and assignment [152] (byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) KEY_MODIFIER_CTRL and assignment [155] (byte) KEY_MODIFIER_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) KEY_MODIFIER_COMMODORE and assignment [156] (byte) KEY_MODIFIER_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) KEY_MODIFIER_SHIFT and assignment [158] (byte) KEY_MODIFIER_SHIFT ← (byte~) $0
Eliminating unused variable (byte[8]) keyboard_scan_values and assignment [159] (byte[8]) keyboard_scan_values ← { fill( 8, 0) }
Eliminating unused variable (byte*) IRQ_STATUS and assignment [40] (byte*) IRQ_STATUS ← ((byte*)) (word/dword/signed dword) 53273
Eliminating unused variable (byte*) IRQ_ENABLE and assignment [41] (byte*) IRQ_ENABLE ← ((byte*)) (word/dword/signed dword) 53274
Eliminating unused variable (byte) IRQ_RASTER and assignment [42] (byte) IRQ_RASTER ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) IRQ_COLLISION_BG and assignment [43] (byte) IRQ_COLLISION_BG ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) IRQ_COLLISION_SPRITE and assignment [44] (byte) IRQ_COLLISION_SPRITE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) IRQ_LIGHTPEN and assignment [45] (byte) IRQ_LIGHTPEN ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte*) COLS and assignment [46] (byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
Eliminating unused variable (byte*) CIA1_INTERRUPT and assignment [51] (byte*) CIA1_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56333
Eliminating unused variable (byte) CIA_INTERRUPT_CLEAR and assignment [52] (byte) CIA_INTERRUPT_CLEAR ← (byte/signed byte/word/signed word/dword/signed dword) 127
Eliminating unused variable (byte*) CIA2_PORT_A and assignment [53] (byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
Eliminating unused variable (byte*) CIA2_PORT_B and assignment [54] (byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
Eliminating unused variable (byte*) CIA2_PORT_A_DDR and assignment [55] (byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
Eliminating unused variable (byte*) CIA2_PORT_B_DDR and assignment [56] (byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
Eliminating unused variable (byte*) CIA2_INTERRUPT and assignment [57] (byte*) CIA2_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56589
Eliminating unused variable (void()**) KERNEL_IRQ and assignment [58] (void()**) KERNEL_IRQ ← ((void()**)) (word/signed word/dword/signed dword) 788
Eliminating unused variable (void()**) HARDWARE_IRQ and assignment [59] (void()**) HARDWARE_IRQ ← ((void()**)) (word/dword/signed dword) 65534
Eliminating unused variable (byte) BLACK and assignment [60] (byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) WHITE and assignment [61] (byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) RED and assignment [62] (byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) CYAN and assignment [63] (byte) CYAN ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) PURPLE and assignment [64] (byte) PURPLE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) YELLOW and assignment [67] (byte) YELLOW ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) ORANGE and assignment [68] (byte) ORANGE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) BROWN and assignment [69] (byte) BROWN ← (byte/signed byte/word/signed word/dword/signed dword) 9
Eliminating unused variable (byte) PINK and assignment [70] (byte) PINK ← (byte/signed byte/word/signed word/dword/signed dword) 10
Eliminating unused variable (byte) DARK_GREY and assignment [71] (byte) DARK_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 11
Eliminating unused variable (byte) GREY and assignment [72] (byte) GREY ← (byte/signed byte/word/signed word/dword/signed dword) 12
Eliminating unused variable (byte) LIGHT_GREEN and assignment [73] (byte) LIGHT_GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 13
Eliminating unused variable (byte) LIGHT_BLUE and assignment [74] (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 14
Eliminating unused variable (byte) LIGHT_GREY and assignment [75] (byte) LIGHT_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable (byte) KEY_DEL and assignment [76] (byte) KEY_DEL ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) KEY_RETURN and assignment [77] (byte) KEY_RETURN ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) KEY_CRSR_RIGHT and assignment [78] (byte) KEY_CRSR_RIGHT ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) KEY_F7 and assignment [79] (byte) KEY_F7 ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) KEY_F1 and assignment [80] (byte) KEY_F1 ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) KEY_F3 and assignment [81] (byte) KEY_F3 ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) KEY_F5 and assignment [82] (byte) KEY_F5 ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) KEY_CRSR_DOWN and assignment [83] (byte) KEY_CRSR_DOWN ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) KEY_LSHIFT and assignment [91] (byte) KEY_LSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable (byte) KEY_HOME and assignment [127] (byte) KEY_HOME ← (byte/signed byte/word/signed word/dword/signed dword) 51
Eliminating unused variable (byte) KEY_RSHIFT and assignment [128] (byte) KEY_RSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 52
Eliminating unused variable (byte) KEY_CTRL and assignment [134] (byte) KEY_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 58
Eliminating unused variable (byte) KEY_COMMODORE and assignment [137] (byte) KEY_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 61
Eliminating unused variable (byte) KEY_RUNSTOP and assignment [139] (byte) KEY_RUNSTOP ← (byte/signed byte/word/signed word/dword/signed dword) 63
Eliminating unused variable (byte[]) keyboard_char_keycodes and assignment [140] (byte[]) keyboard_char_keycodes ← { (byte) KEY_AT, (byte) KEY_A, (byte) KEY_B, (byte) KEY_C, (byte) KEY_D, (byte) KEY_E, (byte) KEY_F, (byte) KEY_G, (byte) KEY_H, (byte) KEY_I, (byte) KEY_J, (byte) KEY_K, (byte) KEY_L, (byte) KEY_M, (byte) KEY_N, (byte) KEY_O, (byte) KEY_P, (byte) KEY_Q, (byte) KEY_R, (byte) KEY_S, (byte) KEY_T, (byte) KEY_U, (byte) KEY_V, (byte) KEY_W, (byte) KEY_X, (byte) KEY_Y, (byte) KEY_Z, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_POUND, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ARROW_UP, (byte) KEY_ARROW_LEFT, (byte) KEY_SPACE, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ASTERISK, (byte) KEY_PLUS, (byte) KEY_COMMA, (byte) KEY_MINUS, (byte) KEY_DOT, (byte) KEY_SLASH, (byte) KEY_0, (byte) KEY_1, (byte) KEY_2, (byte) KEY_3, (byte) KEY_4, (byte) KEY_5, (byte) KEY_6, (byte) KEY_7, (byte) KEY_8, (byte) KEY_9, (byte) KEY_COLON, (byte) KEY_SEMICOLON, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_EQUALS, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 }
Eliminating unused variable (byte[8]) keyboard_events and assignment [161] (byte[8]) keyboard_events ← { fill( 8, 0) }
Eliminating unused variable (byte) keyboard_events_size and assignment [162] (byte) keyboard_events_size ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) keyboard_modifiers and assignment [163] (byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) KEY_MODIFIER_CTRL and assignment [166] (byte) KEY_MODIFIER_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) KEY_MODIFIER_COMMODORE and assignment [167] (byte) KEY_MODIFIER_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) KEY_MODIFIER_SHIFT and assignment [169] (byte) KEY_MODIFIER_SHIFT ← (byte~) $0
Eliminating unused variable (byte[8]) keyboard_scan_values and assignment [170] (byte[8]) keyboard_scan_values ← { fill( 8, 0) }
Eliminating unused variable - keeping the call (void~) main::$0
Eliminating unused variable (byte) KEY_3 and assignment [8] (byte) KEY_3 ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) KEY_W and assignment [9] (byte) KEY_W ← (byte/signed byte/word/signed word/dword/signed dword) 9

View File

@ -339,6 +339,13 @@ const byte VIC_CSEL = %00001000;
const byte* D018 = $d018;
const byte* VIC_MEMORY = $d018;
const byte* IRQ_STATUS = $d019;
const byte* IRQ_ENABLE = $d01a;
const byte IRQ_RASTER = %00000001;
const byte IRQ_COLLISION_BG = %00000010;
const byte IRQ_COLLISION_SPRITE = %00000100;
const byte IRQ_LIGHTPEN = %00001000;
const byte* COLS = $d800;
// CIA#1 Port A: keyboard matrix columns and joystick #2
@ -349,6 +356,10 @@ const byte* CIA1_PORT_B = $dc01;
const byte* CIA1_PORT_A_DDR = $dc02;
// CIA #1 Port B data direction register.
const byte* CIA1_PORT_B_DDR = $dc03;
// CIA#1 Interrupt Status & Control Register
const byte* CIA1_INTERRUPT = $dc0d;
// Value that disables all CIA interrupts when stored to the CIA Interrupt registers
const byte CIA_INTERRUPT_CLEAR = $7f;
// CIA#2 Port A: Serial bus, RS-232, VIC memory bank
const byte* CIA2_PORT_A = $dd00;
@ -358,6 +369,14 @@ const byte* CIA2_PORT_B = $dd01;
const byte* CIA2_PORT_A_DDR = $dd02;
// CIA #2 Port B data direction register.
const byte* CIA2_PORT_B_DDR = $dd03;
// CIA#2 Interrupt Status & Control Register
const byte* CIA2_INTERRUPT = $dd0d;
// The vector used when the KERNAL serves IRQ interrupts
const void()** KERNEL_IRQ = $0314;
// The vector used when the HARDWARE serves IRQ interrupts
const void()** HARDWARE_IRQ = $fffe;
const byte BLACK = $0;
const byte WHITE = $1;
@ -426,14 +445,17 @@ SYMBOLS
(byte*) BORDERCOL
(byte) BROWN
(byte*) CHARGEN
(byte*) CIA1_INTERRUPT
(byte*) CIA1_PORT_A
(byte*) CIA1_PORT_A_DDR
(byte*) CIA1_PORT_B
(byte*) CIA1_PORT_B_DDR
(byte*) CIA2_INTERRUPT
(byte*) CIA2_PORT_A
(byte*) CIA2_PORT_A_DDR
(byte*) CIA2_PORT_B
(byte*) CIA2_PORT_B_DDR
(byte) CIA_INTERRUPT_CLEAR
(byte*) COLS
(byte) CYAN
(byte*) D011
@ -442,6 +464,14 @@ SYMBOLS
(byte) DARK_GREY
(byte) GREEN
(byte) GREY
(void()**) HARDWARE_IRQ
(byte) IRQ_COLLISION_BG
(byte) IRQ_COLLISION_SPRITE
(byte*) IRQ_ENABLE
(byte) IRQ_LIGHTPEN
(byte) IRQ_RASTER
(byte*) IRQ_STATUS
(void()**) KERNEL_IRQ
(byte) KEY_0
(byte) KEY_1
(byte) KEY_2
@ -774,15 +804,21 @@ Promoting word/dword/signed dword to byte* in VIC_CONTROL2 ← ((byte*)) 53270
Promoting word/dword/signed dword to byte* in D016 ← ((byte*)) 53270
Promoting word/dword/signed dword to byte* in D018 ← ((byte*)) 53272
Promoting word/dword/signed dword to byte* in VIC_MEMORY ← ((byte*)) 53272
Promoting word/dword/signed dword to byte* in IRQ_STATUS ← ((byte*)) 53273
Promoting word/dword/signed dword to byte* in IRQ_ENABLE ← ((byte*)) 53274
Promoting word/dword/signed dword to byte* in COLS ← ((byte*)) 55296
Promoting word/dword/signed dword to byte* in CIA1_PORT_A ← ((byte*)) 56320
Promoting word/dword/signed dword to byte* in CIA1_PORT_B ← ((byte*)) 56321
Promoting word/dword/signed dword to byte* in CIA1_PORT_A_DDR ← ((byte*)) 56322
Promoting word/dword/signed dword to byte* in CIA1_PORT_B_DDR ← ((byte*)) 56323
Promoting word/dword/signed dword to byte* in CIA1_INTERRUPT ← ((byte*)) 56333
Promoting word/dword/signed dword to byte* in CIA2_PORT_A ← ((byte*)) 56576
Promoting word/dword/signed dword to byte* in CIA2_PORT_B ← ((byte*)) 56577
Promoting word/dword/signed dword to byte* in CIA2_PORT_A_DDR ← ((byte*)) 56578
Promoting word/dword/signed dword to byte* in CIA2_PORT_B_DDR ← ((byte*)) 56579
Promoting word/dword/signed dword to byte* in CIA2_INTERRUPT ← ((byte*)) 56589
Promoting word/signed word/dword/signed dword to void()** in KERNEL_IRQ ← ((void()**)) 788
Promoting word/dword/signed dword to void()** in HARDWARE_IRQ ← ((void()**)) 65534
Promoting word/signed word/dword/signed dword to byte* in main::sc ← ((byte*)) 1024
Promoting word/signed word/dword/signed dword to byte* in main::screen ← ((byte*)) 1024
INITIAL CONTROL FLOW GRAPH
@ -827,15 +863,26 @@ INITIAL CONTROL FLOW GRAPH
(byte) VIC_CSEL ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte*) D018 ← ((byte*)) (word/dword/signed dword) 53272
(byte*) VIC_MEMORY ← ((byte*)) (word/dword/signed dword) 53272
(byte*) IRQ_STATUS ← ((byte*)) (word/dword/signed dword) 53273
(byte*) IRQ_ENABLE ← ((byte*)) (word/dword/signed dword) 53274
(byte) IRQ_RASTER ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) IRQ_COLLISION_BG ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) IRQ_COLLISION_SPRITE ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) IRQ_LIGHTPEN ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
(byte*) CIA1_PORT_A ← ((byte*)) (word/dword/signed dword) 56320
(byte*) CIA1_PORT_B ← ((byte*)) (word/dword/signed dword) 56321
(byte*) CIA1_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56322
(byte*) CIA1_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56323
(byte*) CIA1_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56333
(byte) CIA_INTERRUPT_CLEAR ← (byte/signed byte/word/signed word/dword/signed dword) 127
(byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
(byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
(byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
(byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
(byte*) CIA2_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56589
(void()**) KERNEL_IRQ ← ((void()**)) (word/signed word/dword/signed dword) 788
(void()**) HARDWARE_IRQ ← ((void()**)) (word/dword/signed dword) 65534
(byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
@ -1340,48 +1387,59 @@ Eliminating unused variable (byte) VIC_MCM and assignment [36] (byte) VIC_MCM
Eliminating unused variable (byte) VIC_CSEL and assignment [37] (byte) VIC_CSEL ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte*) D018 and assignment [38] (byte*) D018 ← ((byte*)) (word/dword/signed dword) 53272
Eliminating unused variable (byte*) VIC_MEMORY and assignment [39] (byte*) VIC_MEMORY ← ((byte*)) (word/dword/signed dword) 53272
Eliminating unused variable (byte*) COLS and assignment [40] (byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
Eliminating unused variable (byte*) CIA2_PORT_A and assignment [45] (byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
Eliminating unused variable (byte*) CIA2_PORT_B and assignment [46] (byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
Eliminating unused variable (byte*) CIA2_PORT_A_DDR and assignment [47] (byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
Eliminating unused variable (byte*) CIA2_PORT_B_DDR and assignment [48] (byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
Eliminating unused variable (byte) BLACK and assignment [49] (byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) WHITE and assignment [50] (byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) RED and assignment [51] (byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) CYAN and assignment [52] (byte) CYAN ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) PURPLE and assignment [53] (byte) PURPLE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) GREEN and assignment [54] (byte) GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) BLUE and assignment [55] (byte) BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) YELLOW and assignment [56] (byte) YELLOW ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) ORANGE and assignment [57] (byte) ORANGE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) BROWN and assignment [58] (byte) BROWN ← (byte/signed byte/word/signed word/dword/signed dword) 9
Eliminating unused variable (byte) PINK and assignment [59] (byte) PINK ← (byte/signed byte/word/signed word/dword/signed dword) 10
Eliminating unused variable (byte) DARK_GREY and assignment [60] (byte) DARK_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 11
Eliminating unused variable (byte) GREY and assignment [61] (byte) GREY ← (byte/signed byte/word/signed word/dword/signed dword) 12
Eliminating unused variable (byte) LIGHT_GREEN and assignment [62] (byte) LIGHT_GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 13
Eliminating unused variable (byte) LIGHT_BLUE and assignment [63] (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 14
Eliminating unused variable (byte) LIGHT_GREY and assignment [64] (byte) LIGHT_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable (byte) KEY_DEL and assignment [65] (byte) KEY_DEL ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) KEY_RETURN and assignment [66] (byte) KEY_RETURN ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) KEY_CRSR_RIGHT and assignment [67] (byte) KEY_CRSR_RIGHT ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) KEY_F7 and assignment [68] (byte) KEY_F7 ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) KEY_F1 and assignment [69] (byte) KEY_F1 ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) KEY_F3 and assignment [70] (byte) KEY_F3 ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) KEY_F5 and assignment [71] (byte) KEY_F5 ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) KEY_CRSR_DOWN and assignment [72] (byte) KEY_CRSR_DOWN ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) KEY_LSHIFT and assignment [80] (byte) KEY_LSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable (byte) KEY_HOME and assignment [116] (byte) KEY_HOME ← (byte/signed byte/word/signed word/dword/signed dword) 51
Eliminating unused variable (byte) KEY_RSHIFT and assignment [117] (byte) KEY_RSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 52
Eliminating unused variable (byte) KEY_CTRL and assignment [123] (byte) KEY_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 58
Eliminating unused variable (byte) KEY_COMMODORE and assignment [126] (byte) KEY_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 61
Eliminating unused variable (byte) KEY_RUNSTOP and assignment [128] (byte) KEY_RUNSTOP ← (byte/signed byte/word/signed word/dword/signed dword) 63
Eliminating unused variable (byte[8]) keyboard_events and assignment [153] (byte[8]) keyboard_events ← { fill( 8, 0) }
Eliminating unused variable (byte) keyboard_events_size and assignment [154] (byte) keyboard_events_size ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) keyboard_modifiers and assignment [155] (byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) KEY_MODIFIER_CTRL and assignment [158] (byte) KEY_MODIFIER_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) KEY_MODIFIER_COMMODORE and assignment [159] (byte) KEY_MODIFIER_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) KEY_MODIFIER_SHIFT and assignment [161] (byte) KEY_MODIFIER_SHIFT ← (byte~) $0
Eliminating unused variable (byte[8]) keyboard_scan_values and assignment [162] (byte[8]) keyboard_scan_values ← { fill( 8, 0) }
Eliminating unused variable (byte*) IRQ_STATUS and assignment [40] (byte*) IRQ_STATUS ← ((byte*)) (word/dword/signed dword) 53273
Eliminating unused variable (byte*) IRQ_ENABLE and assignment [41] (byte*) IRQ_ENABLE ← ((byte*)) (word/dword/signed dword) 53274
Eliminating unused variable (byte) IRQ_RASTER and assignment [42] (byte) IRQ_RASTER ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) IRQ_COLLISION_BG and assignment [43] (byte) IRQ_COLLISION_BG ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) IRQ_COLLISION_SPRITE and assignment [44] (byte) IRQ_COLLISION_SPRITE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) IRQ_LIGHTPEN and assignment [45] (byte) IRQ_LIGHTPEN ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte*) COLS and assignment [46] (byte*) COLS ← ((byte*)) (word/dword/signed dword) 55296
Eliminating unused variable (byte*) CIA1_INTERRUPT and assignment [51] (byte*) CIA1_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56333
Eliminating unused variable (byte) CIA_INTERRUPT_CLEAR and assignment [52] (byte) CIA_INTERRUPT_CLEAR ← (byte/signed byte/word/signed word/dword/signed dword) 127
Eliminating unused variable (byte*) CIA2_PORT_A and assignment [53] (byte*) CIA2_PORT_A ← ((byte*)) (word/dword/signed dword) 56576
Eliminating unused variable (byte*) CIA2_PORT_B and assignment [54] (byte*) CIA2_PORT_B ← ((byte*)) (word/dword/signed dword) 56577
Eliminating unused variable (byte*) CIA2_PORT_A_DDR and assignment [55] (byte*) CIA2_PORT_A_DDR ← ((byte*)) (word/dword/signed dword) 56578
Eliminating unused variable (byte*) CIA2_PORT_B_DDR and assignment [56] (byte*) CIA2_PORT_B_DDR ← ((byte*)) (word/dword/signed dword) 56579
Eliminating unused variable (byte*) CIA2_INTERRUPT and assignment [57] (byte*) CIA2_INTERRUPT ← ((byte*)) (word/dword/signed dword) 56589
Eliminating unused variable (void()**) KERNEL_IRQ and assignment [58] (void()**) KERNEL_IRQ ← ((void()**)) (word/signed word/dword/signed dword) 788
Eliminating unused variable (void()**) HARDWARE_IRQ and assignment [59] (void()**) HARDWARE_IRQ ← ((void()**)) (word/dword/signed dword) 65534
Eliminating unused variable (byte) BLACK and assignment [60] (byte) BLACK ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) WHITE and assignment [61] (byte) WHITE ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) RED and assignment [62] (byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) CYAN and assignment [63] (byte) CYAN ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) PURPLE and assignment [64] (byte) PURPLE ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) GREEN and assignment [65] (byte) GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) BLUE and assignment [66] (byte) BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) YELLOW and assignment [67] (byte) YELLOW ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) ORANGE and assignment [68] (byte) ORANGE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) BROWN and assignment [69] (byte) BROWN ← (byte/signed byte/word/signed word/dword/signed dword) 9
Eliminating unused variable (byte) PINK and assignment [70] (byte) PINK ← (byte/signed byte/word/signed word/dword/signed dword) 10
Eliminating unused variable (byte) DARK_GREY and assignment [71] (byte) DARK_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 11
Eliminating unused variable (byte) GREY and assignment [72] (byte) GREY ← (byte/signed byte/word/signed word/dword/signed dword) 12
Eliminating unused variable (byte) LIGHT_GREEN and assignment [73] (byte) LIGHT_GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 13
Eliminating unused variable (byte) LIGHT_BLUE and assignment [74] (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word/dword/signed dword) 14
Eliminating unused variable (byte) LIGHT_GREY and assignment [75] (byte) LIGHT_GREY ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable (byte) KEY_DEL and assignment [76] (byte) KEY_DEL ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) KEY_RETURN and assignment [77] (byte) KEY_RETURN ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) KEY_CRSR_RIGHT and assignment [78] (byte) KEY_CRSR_RIGHT ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) KEY_F7 and assignment [79] (byte) KEY_F7 ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) KEY_F1 and assignment [80] (byte) KEY_F1 ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) KEY_F3 and assignment [81] (byte) KEY_F3 ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) KEY_F5 and assignment [82] (byte) KEY_F5 ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) KEY_CRSR_DOWN and assignment [83] (byte) KEY_CRSR_DOWN ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) KEY_LSHIFT and assignment [91] (byte) KEY_LSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable (byte) KEY_HOME and assignment [127] (byte) KEY_HOME ← (byte/signed byte/word/signed word/dword/signed dword) 51
Eliminating unused variable (byte) KEY_RSHIFT and assignment [128] (byte) KEY_RSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 52
Eliminating unused variable (byte) KEY_CTRL and assignment [134] (byte) KEY_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 58
Eliminating unused variable (byte) KEY_COMMODORE and assignment [137] (byte) KEY_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 61
Eliminating unused variable (byte) KEY_RUNSTOP and assignment [139] (byte) KEY_RUNSTOP ← (byte/signed byte/word/signed word/dword/signed dword) 63
Eliminating unused variable (byte[8]) keyboard_events and assignment [164] (byte[8]) keyboard_events ← { fill( 8, 0) }
Eliminating unused variable (byte) keyboard_events_size and assignment [165] (byte) keyboard_events_size ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) keyboard_modifiers and assignment [166] (byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) KEY_MODIFIER_CTRL and assignment [169] (byte) KEY_MODIFIER_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) KEY_MODIFIER_COMMODORE and assignment [170] (byte) KEY_MODIFIER_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) KEY_MODIFIER_SHIFT and assignment [172] (byte) KEY_MODIFIER_SHIFT ← (byte~) $0
Eliminating unused variable (byte[8]) keyboard_scan_values and assignment [173] (byte[8]) keyboard_scan_values ← { fill( 8, 0) }
Eliminating unused variable - keeping the call (void~) main::$2
Eliminating unused variable (byte~) $0 and assignment [81] (byte~) $0 ← (byte) KEY_MODIFIER_LSHIFT | (byte) KEY_MODIFIER_RSHIFT
Eliminating unused variable (byte) KEY_MODIFIER_LSHIFT and assignment [79] (byte) KEY_MODIFIER_LSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 1