1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2025-04-12 11:37:43 +00:00

Implemented blitter minimal example. Added missing ref files.

This commit is contained in:
jespergravgaard 2018-04-15 23:32:49 +02:00
parent c29d278146
commit 3ddc19c5c2
17 changed files with 9258 additions and 402 deletions

View File

@ -1,9 +1,9 @@
import "c64dtv.kc"
const byte* SCREEN = $400;
const byte[] SRCA = { 'C', 'a', 'm', 'e', 'l', 'o', 't', '!'};
const byte SRCA_LEN = 8;
const byte[] SRCB = { 1 };
const byte[] SRCA = { 'c', 'a', 'm', 'e', 'l', 'o', 't', '!', ' '};
const byte SRCA_LEN = 9;
const byte[] SRCB = { $80 };
void main() {
@ -40,9 +40,20 @@ void main() {
*DTV_BLITTER_LEN_HI = 0;
*DTV_BLITTER_ALU = DTV_BLIT_ADD;
*DTV_BLITTER_CONTROL2 = DTV_BLIT_DEST_CONT | DTV_BLIT_CLEAR_IRQ;
*DTV_BLITTER_TRANSPARANCY = DTV_BLIT_TRANSPARANCY_NONE;
// Start blitter
*DTV_BLITTER_CONTROL = DTV_BLIT_FORCE_START | DTV_BLIT_SRCA_FWD | DTV_BLIT_SRCB_FWD| DTV_BLIT_DEST_FWD;
// Instruct blitter to continue at DEST and restart SRC A/B
*DTV_BLITTER_CONTROL2 = DTV_BLIT_DEST_CONT;
// Start a 8 more times when ready
for( byte r: 0..7 ) {
// wait til blitter is ready
do {} while((*DTV_BLITTER_CONTROL2 & DTV_BLIT_STATUS_BUSY)!=0);
// restart
*DTV_BLITTER_CONTROL = DTV_BLIT_FORCE_START | DTV_BLIT_SRCA_FWD | DTV_BLIT_SRCB_FWD| DTV_BLIT_DEST_FWD;
}
}

View File

@ -147,7 +147,7 @@ const byte DTV_BLIT_WRITE_TRANSPARENT = %00000010;
const byte DTV_BLIT_WRITE_NONTRANSPARENT = %00000100;
// No transparancy
// Bit[2]==Bit[1]==0: write in any case
const byte DTV_BLIT_TRANSPARANCY_NONE = %00000001;
const byte DTV_BLIT_TRANSPARANCY_NONE = %00000000;
// Controls the ALU operation
byte* DTV_BLITTER_ALU = $d33e;
// Bit[2:0] Source A right Shift: 000 SourceA Data, 001 LastA[0],SourceA[7:1], ..., 111 LastA[6:0],SourceA[7]

View File

@ -208,9 +208,9 @@ gfx_init_plane_charset8: {
sta gfxa
lda #>$4000+(CHARSET8&$3fff)
sta gfxa+1
lda #<CHARGEN
lda #<CHARGEN+1
sta chargen
lda #>CHARGEN
lda #>CHARGEN+1
sta chargen+1
b1:
lda #0

View File

@ -59,11 +59,11 @@ main::@7: scope:[main] from main::@5
to:main::@8
main::@8: scope:[main] from main::@7 main::@8
[38] (byte) main::rst#1 ← *((const byte*) RASTER#0) [ main::rst#1 ] ( main:2 [ main::rst#1 ] )
[39] (byte~) main::$33 ← (byte) main::rst#1 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ main::rst#1 main::$33 ] ( main:2 [ main::rst#1 main::$33 ] )
[40] (byte~) main::$34 ← (const byte) VIC_DEN#0|(const byte) VIC_ECM#0|(const byte) VIC_RSEL#0 | (byte~) main::$33 [ main::rst#1 main::$34 ] ( main:2 [ main::rst#1 main::$34 ] )
[41] *((const byte*) VIC_CONTROL#0) ← (byte~) main::$34 [ main::rst#1 ] ( main:2 [ main::rst#1 ] )
[42] (byte~) main::$35 ← (byte) main::rst#1 << (byte/signed byte/word/signed word/dword/signed dword) 4 [ main::rst#1 main::$35 ] ( main:2 [ main::rst#1 main::$35 ] )
[43] *((const byte*) BORDERCOL#0) ← (byte~) main::$35 [ main::rst#1 ] ( main:2 [ main::rst#1 ] )
[39] (byte~) main::$32 ← (byte) main::rst#1 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ main::rst#1 main::$32 ] ( main:2 [ main::rst#1 main::$32 ] )
[40] (byte~) main::$33 ← (const byte) VIC_DEN#0|(const byte) VIC_ECM#0|(const byte) VIC_RSEL#0 | (byte~) main::$32 [ main::rst#1 main::$33 ] ( main:2 [ main::rst#1 main::$33 ] )
[41] *((const byte*) VIC_CONTROL#0) ← (byte~) main::$33 [ main::rst#1 ] ( main:2 [ main::rst#1 ] )
[42] (byte~) main::$34 ← (byte) main::rst#1 << (byte/signed byte/word/signed word/dword/signed dword) 4 [ main::rst#1 main::$34 ] ( main:2 [ main::rst#1 main::$34 ] )
[43] *((const byte*) BORDERCOL#0) ← (byte~) main::$34 [ main::rst#1 ] ( main:2 [ main::rst#1 ] )
asm { nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop }
[45] if((byte) main::rst#1!=(byte/word/signed word/dword/signed dword) 242) goto main::@8 [ ] ( main:2 [ ] )
to:main::@2
@ -89,7 +89,7 @@ gfx_init_plane_charset8::@1: scope:[gfx_init_plane_charset8] from gfx_init_plan
[54] (byte) gfx_init_plane_charset8::ch#8 ← phi( gfx_init_plane_charset8::@7/(byte) gfx_init_plane_charset8::ch#1 gfx_init_plane_charset8::@9/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ gfx_init_plane_charset8::chargen#3 gfx_init_plane_charset8::gfxa#6 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::ch#8 ] ( main:2::gfx_init:7::gfx_init_plane_charset8:49 [ gfx_init_plane_charset8::chargen#3 gfx_init_plane_charset8::gfxa#6 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::ch#8 ] )
[54] (byte) gfx_init_plane_charset8::col#6 ← phi( gfx_init_plane_charset8::@7/(byte) gfx_init_plane_charset8::col#1 gfx_init_plane_charset8::@9/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ gfx_init_plane_charset8::chargen#3 gfx_init_plane_charset8::gfxa#6 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::ch#8 ] ( main:2::gfx_init:7::gfx_init_plane_charset8:49 [ gfx_init_plane_charset8::chargen#3 gfx_init_plane_charset8::gfxa#6 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::ch#8 ] )
[54] (byte*) gfx_init_plane_charset8::gfxa#6 ← phi( gfx_init_plane_charset8::@7/(byte*) gfx_init_plane_charset8::gfxa#1 gfx_init_plane_charset8::@9/((byte*))(word/signed word/dword/signed dword) 16384+((word))(const byte*) CHARSET8#0&(word/signed word/dword/signed dword) 16383 ) [ gfx_init_plane_charset8::chargen#3 gfx_init_plane_charset8::gfxa#6 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::ch#8 ] ( main:2::gfx_init:7::gfx_init_plane_charset8:49 [ gfx_init_plane_charset8::chargen#3 gfx_init_plane_charset8::gfxa#6 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::ch#8 ] )
[54] (byte*) gfx_init_plane_charset8::chargen#3 ← phi( gfx_init_plane_charset8::@7/(byte*) gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::@9/(const byte*) CHARGEN#0 ) [ gfx_init_plane_charset8::chargen#3 gfx_init_plane_charset8::gfxa#6 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::ch#8 ] ( main:2::gfx_init:7::gfx_init_plane_charset8:49 [ gfx_init_plane_charset8::chargen#3 gfx_init_plane_charset8::gfxa#6 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::ch#8 ] )
[54] (byte*) gfx_init_plane_charset8::chargen#3 ← phi( gfx_init_plane_charset8::@7/(byte*) gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::@9/(const byte*) CHARGEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1 ) [ gfx_init_plane_charset8::chargen#3 gfx_init_plane_charset8::gfxa#6 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::ch#8 ] ( main:2::gfx_init:7::gfx_init_plane_charset8:49 [ gfx_init_plane_charset8::chargen#3 gfx_init_plane_charset8::gfxa#6 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::ch#8 ] )
to:gfx_init_plane_charset8::@2
gfx_init_plane_charset8::@2: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8::@1 gfx_init_plane_charset8::@6
[55] (byte) gfx_init_plane_charset8::cr#6 ← phi( gfx_init_plane_charset8::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 gfx_init_plane_charset8::@6/(byte) gfx_init_plane_charset8::cr#1 ) [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#2 gfx_init_plane_charset8::gfxa#5 gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::cr#6 ] ( main:2::gfx_init:7::gfx_init_plane_charset8:49 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#2 gfx_init_plane_charset8::gfxa#5 gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::cr#6 ] )
@ -104,8 +104,8 @@ gfx_init_plane_charset8::@3: scope:[gfx_init_plane_charset8] from gfx_init_plan
[58] (byte) gfx_init_plane_charset8::col#2 ← phi( gfx_init_plane_charset8::@2/(byte) gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::@4/(byte) gfx_init_plane_charset8::col#1 ) [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::cp#2 ] ( main:2::gfx_init:7::gfx_init_plane_charset8:49 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::cp#2 ] )
[58] (byte*) gfx_init_plane_charset8::gfxa#2 ← phi( gfx_init_plane_charset8::@2/(byte*) gfx_init_plane_charset8::gfxa#5 gfx_init_plane_charset8::@4/(byte*) gfx_init_plane_charset8::gfxa#1 ) [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::cp#2 ] ( main:2::gfx_init:7::gfx_init_plane_charset8:49 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::cp#2 ] )
[58] (byte) gfx_init_plane_charset8::bits#2 ← phi( gfx_init_plane_charset8::@2/(byte) gfx_init_plane_charset8::bits#0 gfx_init_plane_charset8::@4/(byte) gfx_init_plane_charset8::bits#1 ) [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::cp#2 ] ( main:2::gfx_init:7::gfx_init_plane_charset8:49 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::cp#2 ] )
[59] (byte~) gfx_init_plane_charset8::$6 ← (byte) gfx_init_plane_charset8::bits#2 & (byte/word/signed word/dword/signed dword) 128 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::$6 ] ( main:2::gfx_init:7::gfx_init_plane_charset8:49 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::$6 ] )
[60] if((byte~) gfx_init_plane_charset8::$6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto gfx_init_plane_charset8::@4 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::cp#2 ] ( main:2::gfx_init:7::gfx_init_plane_charset8:49 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::cp#2 ] )
[59] (byte~) gfx_init_plane_charset8::$7 ← (byte) gfx_init_plane_charset8::bits#2 & (byte/word/signed word/dword/signed dword) 128 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::$7 ] ( main:2::gfx_init:7::gfx_init_plane_charset8:49 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::$7 ] )
[60] if((byte~) gfx_init_plane_charset8::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto gfx_init_plane_charset8::@4 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::cp#2 ] ( main:2::gfx_init:7::gfx_init_plane_charset8:49 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::cp#2 ] )
to:gfx_init_plane_charset8::@5
gfx_init_plane_charset8::@5: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8::@3
[61] (byte~) gfx_init_plane_charset8::c#3 ← (byte) gfx_init_plane_charset8::col#2 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::c#3 ] ( main:2::gfx_init:7::gfx_init_plane_charset8:49 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::chargen#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::c#3 ] )

View File

@ -91,7 +91,7 @@
(label) gfx_init::@1
(label) gfx_init::@return
(void()) gfx_init_plane_charset8()
(byte~) gfx_init_plane_charset8::$6 reg byte a 2002.0
(byte~) gfx_init_plane_charset8::$7 reg byte a 2002.0
(label) gfx_init_plane_charset8::@1
(label) gfx_init_plane_charset8::@2
(label) gfx_init_plane_charset8::@3
@ -154,9 +154,9 @@
(byte) gfx_init_screen0::cy#1 cy zp ZP_BYTE:2 16.5
(byte) gfx_init_screen0::cy#4 cy zp ZP_BYTE:2 12.299999999999999
(void()) main()
(byte~) main::$32 reg byte a 202.0
(byte~) main::$33 reg byte a 202.0
(byte~) main::$34 reg byte a 202.0
(byte~) main::$35 reg byte a 202.0
(label) main::@1
(label) main::@17
(label) main::@2
@ -183,10 +183,10 @@ reg byte a [ gfx_init_plane_charset8::c#2 gfx_init_plane_charset8::c#3 ]
reg byte a [ dtvSetCpuBankSegment1::cpuBankIdx#2 ]
reg byte x [ gfx_init_screen0::cx#2 gfx_init_screen0::cx#1 ]
reg byte x [ main::rst#1 ]
reg byte a [ main::$32 ]
reg byte a [ main::$33 ]
reg byte a [ main::$34 ]
reg byte a [ main::$35 ]
reg byte a [ gfx_init_plane_charset8::$6 ]
reg byte a [ gfx_init_plane_charset8::$7 ]
reg byte a [ gfx_init_screen0::$0 ]
reg byte a [ gfx_init_screen0::$2 ]
reg byte a [ gfx_init_screen0::$3 ]

View File

@ -0,0 +1,242 @@
.pc = $801 "Basic"
:BasicUpstart(main)
.pc = $80d "Program"
.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 VIC_CONTROL = $d011
.const VIC_ECM = $40
.const VIC_DEN = $10
.const VIC_RSEL = 8
.label VIC_CONTROL2 = $d016
.const VIC_MCM = $10
.const VIC_CSEL = 8
.label VIC_MEMORY = $d018
.label CIA2_PORT_A = $dd00
.label CIA2_PORT_A_DDR = $dd02
.label DTV_FEATURE = $d03f
.const DTV_FEATURE_ENABLE = 1
.label DTV_CONTROL = $d03c
.const DTV_LINEAR = 1
.const DTV_HIGHCOLOR = 4
.const DTV_COLORRAM_OFF = $10
.const DTV_BADLINE_OFF = $20
.const DTV_CHUNKY = $40
.label DTV_PALETTE = $d200
.label DTV_PLANEB_START_LO = $d049
.label DTV_PLANEB_START_MI = $d04a
.label DTV_PLANEB_START_HI = $d04b
.label DTV_PLANEB_STEP = $d04c
.label DTV_PLANEB_MODULO_LO = $d047
.label DTV_PLANEB_MODULO_HI = $d048
.label CHUNKY = $8000
jsr main
main: {
sei
lda #PROCPORT_DDR_MEMORY_MASK
sta PROCPORT_DDR
lda #PROCPORT_RAM_IO
sta PROCPORT
jsr gfx_init_chunky
lda #DTV_FEATURE_ENABLE
sta DTV_FEATURE
lda #DTV_HIGHCOLOR|DTV_LINEAR|DTV_COLORRAM_OFF|DTV_CHUNKY|DTV_BADLINE_OFF
sta DTV_CONTROL
lda #VIC_DEN|VIC_ECM|VIC_RSEL|3
sta VIC_CONTROL
lda #VIC_MCM|VIC_CSEL
sta VIC_CONTROL2
lda #<CHUNKY
sta DTV_PLANEB_START_LO
lda #>CHUNKY
sta DTV_PLANEB_START_MI
lda #0
sta DTV_PLANEB_START_HI
lda #8
sta DTV_PLANEB_STEP
lda #0
sta DTV_PLANEB_MODULO_LO
sta DTV_PLANEB_MODULO_HI
lda #3
sta CIA2_PORT_A_DDR
lda #3^CHUNKY/$4000
sta CIA2_PORT_A
lda #(CHUNKY&$3fff)>>6|(0)>>2
sta VIC_MEMORY
ldx #0
b1:
txa
sta DTV_PALETTE,x
inx
cpx #$10
bne b1
b3:
ldx #$ff
rff:
cpx RASTER
bne rff
stabilize:
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cpx RASTER
beq eat+0
eat:
inx
cpx #8
bne stabilize
lda #VIC_DEN|VIC_ECM|VIC_RSEL|3
sta VIC_CONTROL
lda #0
sta BORDERCOL
b5:
lda RASTER
cmp #$42
bne b5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
b8:
ldx RASTER
txa
and #7
ora #VIC_DEN|VIC_ECM|VIC_RSEL
sta VIC_CONTROL
txa
asl
asl
asl
asl
sta BORDERCOL
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cpx #$f2
bne b8
jmp b3
}
gfx_init_chunky: {
.label _6 = 7
.label gfxb = 5
.label x = 3
.label y = 2
lda #$ff&CHUNKY/$4000
jsr dtvSetCpuBankSegment1
ldx #($ff&CHUNKY/$4000)+1
lda #0
sta y
lda #<$4000
sta gfxb
lda #>$4000
sta gfxb+1
b1:
lda #<0
sta x
sta x+1
b2:
lda gfxb+1
cmp #>$8000
bne b3
lda gfxb
cmp #<$8000
bne b3
txa
jsr dtvSetCpuBankSegment1
inx
lda #<$4000
sta gfxb
lda #>$4000
sta gfxb+1
b3:
lda y
clc
adc x
sta _6
lda #0
adc x+1
sta _6+1
lda _6
ldy #0
sta (gfxb),y
inc gfxb
bne !+
inc gfxb+1
!:
inc x
bne !+
inc x+1
!:
lda x+1
cmp #>$140
bne b2
lda x
cmp #<$140
bne b2
inc y
lda y
cmp #$33
bne b1
lda #$4000/$4000
jsr dtvSetCpuBankSegment1
rts
}
dtvSetCpuBankSegment1: {
.label cpuBank = $ff
sta cpuBank
.byte $32, $dd
lda $ff
.byte $32, $00
rts
}

View File

@ -0,0 +1,114 @@
@begin: scope:[] from
[0] phi() [ ] ( )
to:@3
@3: scope:[] from @begin
[1] phi() [ ] ( )
[2] call main param-assignment [ ] ( )
to:@end
@end: scope:[] from @3
[3] phi() [ ] ( )
main: scope:[main] from @3
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 [ ] )
[7] call gfx_init_chunky param-assignment [ ] ( main:2 [ ] )
to:main::@17
main::@17: scope:[main] from main
[8] *((const byte*) DTV_FEATURE#0) ← (const byte) DTV_FEATURE_ENABLE#0 [ ] ( main:2 [ ] )
[9] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_HIGHCOLOR#0|(const byte) DTV_LINEAR#0|(const byte) DTV_COLORRAM_OFF#0|(const byte) DTV_CHUNKY#0|(const byte) DTV_BADLINE_OFF#0 [ ] ( main:2 [ ] )
[10] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_ECM#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2 [ ] )
[11] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_MCM#0|(const byte) VIC_CSEL#0 [ ] ( main:2 [ ] )
[12] *((const byte*) DTV_PLANEB_START_LO#0) ← <(const byte*) CHUNKY#0 [ ] ( main:2 [ ] )
[13] *((const byte*) DTV_PLANEB_START_MI#0) ← >(const byte*) CHUNKY#0 [ ] ( main:2 [ ] )
[14] *((const byte*) DTV_PLANEB_START_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] )
[15] *((const byte*) DTV_PLANEB_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 8 [ ] ( main:2 [ ] )
[16] *((const byte*) DTV_PLANEB_MODULO_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] )
[17] *((const byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] )
[18] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2 [ ] )
[19] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) 16384 [ ] ( main:2 [ ] )
[20] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) 16383>>(byte/signed byte/word/signed word/dword/signed dword) 6|>((word))(const byte*) CHUNKY#0&(word/signed word/dword/signed dword) 16383>>(byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] )
to:main::@1
main::@1: scope:[main] from main::@1 main::@17
[21] (byte) main::j#2 ← phi( main::@1/(byte) main::j#1 main::@17/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ main::j#2 ] ( main:2 [ main::j#2 ] )
[22] *((const byte*) DTV_PALETTE#0 + (byte) main::j#2) ← (byte) main::j#2 [ main::j#2 ] ( main:2 [ main::j#2 ] )
[23] (byte) main::j#1 ← ++ (byte) main::j#2 [ main::j#1 ] ( main:2 [ main::j#1 ] )
[24] if((byte) main::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto main::@1 [ main::j#1 ] ( main:2 [ main::j#1 ] )
to:main::@2
main::@2: scope:[main] from main::@1 main::@8
[25] if(true) goto main::@3 [ ] ( main:2 [ ] )
to:main::@return
main::@return: scope:[main] from main::@2
[26] return [ ] ( main:2 [ ] )
to:@return
main::@3: scope:[main] from main::@2
asm { ldx#$ff rff: cpxRASTER bnerff stabilize: nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop cpxRASTER beqeat+0 eat: inx cpx#$08 bnestabilize }
[28] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_ECM#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2 [ ] )
[29] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] )
to:main::@5
main::@5: scope:[main] from main::@3 main::@5
[30] if(*((const byte*) RASTER#0)!=(byte/signed byte/word/signed word/dword/signed dword) 66) goto main::@5 [ ] ( main:2 [ ] )
to:main::@7
main::@7: scope:[main] from main::@5
asm { nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop }
to:main::@8
main::@8: scope:[main] from main::@7 main::@8
[32] (byte) main::rst#1 ← *((const byte*) RASTER#0) [ main::rst#1 ] ( main:2 [ main::rst#1 ] )
[33] (byte~) main::$31 ← (byte) main::rst#1 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ main::rst#1 main::$31 ] ( main:2 [ main::rst#1 main::$31 ] )
[34] (byte~) main::$32 ← (const byte) VIC_DEN#0|(const byte) VIC_ECM#0|(const byte) VIC_RSEL#0 | (byte~) main::$31 [ main::rst#1 main::$32 ] ( main:2 [ main::rst#1 main::$32 ] )
[35] *((const byte*) VIC_CONTROL#0) ← (byte~) main::$32 [ main::rst#1 ] ( main:2 [ main::rst#1 ] )
[36] (byte~) main::$33 ← (byte) main::rst#1 << (byte/signed byte/word/signed word/dword/signed dword) 4 [ main::rst#1 main::$33 ] ( main:2 [ main::rst#1 main::$33 ] )
[37] *((const byte*) BORDERCOL#0) ← (byte~) main::$33 [ main::rst#1 ] ( main:2 [ main::rst#1 ] )
asm { nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop }
[39] if((byte) main::rst#1!=(byte/word/signed word/dword/signed dword) 242) goto main::@8 [ ] ( main:2 [ ] )
to:main::@2
gfx_init_chunky: scope:[gfx_init_chunky] from main
[40] phi() [ ] ( main:2::gfx_init_chunky:7 [ ] )
[41] call dtvSetCpuBankSegment1 param-assignment [ ] ( main:2::gfx_init_chunky:7 [ ] )
to:gfx_init_chunky::@1
gfx_init_chunky::@1: scope:[gfx_init_chunky] from gfx_init_chunky gfx_init_chunky::@5
[42] (byte) gfx_init_chunky::gfxbCpuBank#7 ← phi( gfx_init_chunky::@5/(byte) gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky/++((byte))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) 16384 ) [ gfx_init_chunky::gfxb#5 gfx_init_chunky::y#6 gfx_init_chunky::gfxbCpuBank#7 ] ( main:2::gfx_init_chunky:7 [ gfx_init_chunky::gfxb#5 gfx_init_chunky::y#6 gfx_init_chunky::gfxbCpuBank#7 ] )
[42] (byte) gfx_init_chunky::y#6 ← phi( gfx_init_chunky::@5/(byte) gfx_init_chunky::y#1 gfx_init_chunky/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ gfx_init_chunky::gfxb#5 gfx_init_chunky::y#6 gfx_init_chunky::gfxbCpuBank#7 ] ( main:2::gfx_init_chunky:7 [ gfx_init_chunky::gfxb#5 gfx_init_chunky::y#6 gfx_init_chunky::gfxbCpuBank#7 ] )
[42] (byte*) gfx_init_chunky::gfxb#5 ← phi( gfx_init_chunky::@5/(byte*) gfx_init_chunky::gfxb#1 gfx_init_chunky/((byte*))(word/signed word/dword/signed dword) 16384 ) [ gfx_init_chunky::gfxb#5 gfx_init_chunky::y#6 gfx_init_chunky::gfxbCpuBank#7 ] ( main:2::gfx_init_chunky:7 [ gfx_init_chunky::gfxb#5 gfx_init_chunky::y#6 gfx_init_chunky::gfxbCpuBank#7 ] )
to:gfx_init_chunky::@2
gfx_init_chunky::@2: scope:[gfx_init_chunky] from gfx_init_chunky::@1 gfx_init_chunky::@3
[43] (byte) gfx_init_chunky::gfxbCpuBank#4 ← phi( gfx_init_chunky::@1/(byte) gfx_init_chunky::gfxbCpuBank#7 gfx_init_chunky::@3/(byte) gfx_init_chunky::gfxbCpuBank#8 ) [ gfx_init_chunky::y#6 gfx_init_chunky::gfxb#3 gfx_init_chunky::x#2 gfx_init_chunky::gfxbCpuBank#4 ] ( main:2::gfx_init_chunky:7 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxb#3 gfx_init_chunky::x#2 gfx_init_chunky::gfxbCpuBank#4 ] )
[43] (word) gfx_init_chunky::x#2 ← phi( gfx_init_chunky::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 gfx_init_chunky::@3/(word) gfx_init_chunky::x#1 ) [ gfx_init_chunky::y#6 gfx_init_chunky::gfxb#3 gfx_init_chunky::x#2 gfx_init_chunky::gfxbCpuBank#4 ] ( main:2::gfx_init_chunky:7 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxb#3 gfx_init_chunky::x#2 gfx_init_chunky::gfxbCpuBank#4 ] )
[43] (byte*) gfx_init_chunky::gfxb#3 ← phi( gfx_init_chunky::@1/(byte*) gfx_init_chunky::gfxb#5 gfx_init_chunky::@3/(byte*) gfx_init_chunky::gfxb#1 ) [ gfx_init_chunky::y#6 gfx_init_chunky::gfxb#3 gfx_init_chunky::x#2 gfx_init_chunky::gfxbCpuBank#4 ] ( main:2::gfx_init_chunky:7 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxb#3 gfx_init_chunky::x#2 gfx_init_chunky::gfxbCpuBank#4 ] )
[44] if((byte*) gfx_init_chunky::gfxb#3!=(word/dword/signed dword) 32768) goto gfx_init_chunky::@3 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxb#3 gfx_init_chunky::x#2 gfx_init_chunky::gfxbCpuBank#4 ] ( main:2::gfx_init_chunky:7 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxb#3 gfx_init_chunky::x#2 gfx_init_chunky::gfxbCpuBank#4 ] )
to:gfx_init_chunky::@4
gfx_init_chunky::@4: scope:[gfx_init_chunky] from gfx_init_chunky::@2
[45] (byte) dtvSetCpuBankSegment1::cpuBankIdx#1 ← (byte) gfx_init_chunky::gfxbCpuBank#4 [ gfx_init_chunky::y#6 gfx_init_chunky::x#2 gfx_init_chunky::gfxbCpuBank#4 dtvSetCpuBankSegment1::cpuBankIdx#1 ] ( main:2::gfx_init_chunky:7 [ gfx_init_chunky::y#6 gfx_init_chunky::x#2 gfx_init_chunky::gfxbCpuBank#4 dtvSetCpuBankSegment1::cpuBankIdx#1 ] )
[46] call dtvSetCpuBankSegment1 param-assignment [ gfx_init_chunky::y#6 gfx_init_chunky::x#2 gfx_init_chunky::gfxbCpuBank#4 ] ( main:2::gfx_init_chunky:7 [ gfx_init_chunky::y#6 gfx_init_chunky::x#2 gfx_init_chunky::gfxbCpuBank#4 ] )
to:gfx_init_chunky::@8
gfx_init_chunky::@8: scope:[gfx_init_chunky] from gfx_init_chunky::@4
[47] (byte) gfx_init_chunky::gfxbCpuBank#2 ← ++ (byte) gfx_init_chunky::gfxbCpuBank#4 [ gfx_init_chunky::y#6 gfx_init_chunky::x#2 gfx_init_chunky::gfxbCpuBank#2 ] ( main:2::gfx_init_chunky:7 [ gfx_init_chunky::y#6 gfx_init_chunky::x#2 gfx_init_chunky::gfxbCpuBank#2 ] )
to:gfx_init_chunky::@3
gfx_init_chunky::@3: scope:[gfx_init_chunky] from gfx_init_chunky::@2 gfx_init_chunky::@8
[48] (byte) gfx_init_chunky::gfxbCpuBank#8 ← phi( gfx_init_chunky::@2/(byte) gfx_init_chunky::gfxbCpuBank#4 gfx_init_chunky::@8/(byte) gfx_init_chunky::gfxbCpuBank#2 ) [ gfx_init_chunky::y#6 gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky::x#2 gfx_init_chunky::gfxb#4 ] ( main:2::gfx_init_chunky:7 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky::x#2 gfx_init_chunky::gfxb#4 ] )
[48] (byte*) gfx_init_chunky::gfxb#4 ← phi( gfx_init_chunky::@2/(byte*) gfx_init_chunky::gfxb#3 gfx_init_chunky::@8/((byte*))(word/signed word/dword/signed dword) 16384 ) [ gfx_init_chunky::y#6 gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky::x#2 gfx_init_chunky::gfxb#4 ] ( main:2::gfx_init_chunky:7 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky::x#2 gfx_init_chunky::gfxb#4 ] )
[49] (word~) gfx_init_chunky::$6 ← (word) gfx_init_chunky::x#2 + (byte) gfx_init_chunky::y#6 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky::x#2 gfx_init_chunky::gfxb#4 gfx_init_chunky::$6 ] ( main:2::gfx_init_chunky:7 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky::x#2 gfx_init_chunky::gfxb#4 gfx_init_chunky::$6 ] )
[50] (byte) gfx_init_chunky::c#0 ← ((byte)) (word~) gfx_init_chunky::$6 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky::x#2 gfx_init_chunky::gfxb#4 gfx_init_chunky::c#0 ] ( main:2::gfx_init_chunky:7 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky::x#2 gfx_init_chunky::gfxb#4 gfx_init_chunky::c#0 ] )
[51] *((byte*) gfx_init_chunky::gfxb#4) ← (byte) gfx_init_chunky::c#0 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky::x#2 gfx_init_chunky::gfxb#4 ] ( main:2::gfx_init_chunky:7 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky::x#2 gfx_init_chunky::gfxb#4 ] )
[52] (byte*) gfx_init_chunky::gfxb#1 ← ++ (byte*) gfx_init_chunky::gfxb#4 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxb#1 gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky::x#2 ] ( main:2::gfx_init_chunky:7 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxb#1 gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky::x#2 ] )
[53] (word) gfx_init_chunky::x#1 ← ++ (word) gfx_init_chunky::x#2 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxb#1 gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky::x#1 ] ( main:2::gfx_init_chunky:7 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxb#1 gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky::x#1 ] )
[54] if((word) gfx_init_chunky::x#1!=(word/signed word/dword/signed dword) 320) goto gfx_init_chunky::@2 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxb#1 gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky::x#1 ] ( main:2::gfx_init_chunky:7 [ gfx_init_chunky::y#6 gfx_init_chunky::gfxb#1 gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky::x#1 ] )
to:gfx_init_chunky::@5
gfx_init_chunky::@5: scope:[gfx_init_chunky] from gfx_init_chunky::@3
[55] (byte) gfx_init_chunky::y#1 ← ++ (byte) gfx_init_chunky::y#6 [ gfx_init_chunky::gfxb#1 gfx_init_chunky::y#1 gfx_init_chunky::gfxbCpuBank#8 ] ( main:2::gfx_init_chunky:7 [ gfx_init_chunky::gfxb#1 gfx_init_chunky::y#1 gfx_init_chunky::gfxbCpuBank#8 ] )
[56] if((byte) gfx_init_chunky::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 51) goto gfx_init_chunky::@1 [ gfx_init_chunky::gfxb#1 gfx_init_chunky::y#1 gfx_init_chunky::gfxbCpuBank#8 ] ( main:2::gfx_init_chunky:7 [ gfx_init_chunky::gfxb#1 gfx_init_chunky::y#1 gfx_init_chunky::gfxbCpuBank#8 ] )
to:gfx_init_chunky::@6
gfx_init_chunky::@6: scope:[gfx_init_chunky] from gfx_init_chunky::@5
[57] phi() [ ] ( main:2::gfx_init_chunky:7 [ ] )
[58] call dtvSetCpuBankSegment1 param-assignment [ ] ( main:2::gfx_init_chunky:7 [ ] )
to:gfx_init_chunky::@return
gfx_init_chunky::@return: scope:[gfx_init_chunky] from gfx_init_chunky::@6
[59] return [ ] ( main:2::gfx_init_chunky:7 [ ] )
to:@return
dtvSetCpuBankSegment1: scope:[dtvSetCpuBankSegment1] from gfx_init_chunky gfx_init_chunky::@4 gfx_init_chunky::@6
[60] (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 ← phi( gfx_init_chunky/((byte))(const byte*) CHUNKY#0/(word/signed word/dword/signed dword) 16384 gfx_init_chunky::@4/(byte) dtvSetCpuBankSegment1::cpuBankIdx#1 gfx_init_chunky::@6/((byte))(word/signed word/dword/signed dword) 16384/(word/signed word/dword/signed dword) 16384 ) [ dtvSetCpuBankSegment1::cpuBankIdx#3 ] ( main:2::gfx_init_chunky:7::dtvSetCpuBankSegment1:41 [ dtvSetCpuBankSegment1::cpuBankIdx#3 ] main:2::gfx_init_chunky:7::dtvSetCpuBankSegment1:46 [ gfx_init_chunky::y#6 gfx_init_chunky::x#2 gfx_init_chunky::gfxbCpuBank#4 dtvSetCpuBankSegment1::cpuBankIdx#3 ] main:2::gfx_init_chunky:7::dtvSetCpuBankSegment1:58 [ dtvSetCpuBankSegment1::cpuBankIdx#3 ] )
[61] *((const byte*) dtvSetCpuBankSegment1::cpuBank#0) ← (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 [ ] ( main:2::gfx_init_chunky:7::dtvSetCpuBankSegment1:41 [ ] main:2::gfx_init_chunky:7::dtvSetCpuBankSegment1:46 [ gfx_init_chunky::y#6 gfx_init_chunky::x#2 gfx_init_chunky::gfxbCpuBank#4 ] main:2::gfx_init_chunky:7::dtvSetCpuBankSegment1:58 [ ] )
asm { .byte$32,$dd lda$ff .byte$32,$00 }
to:dtvSetCpuBankSegment1::@return
dtvSetCpuBankSegment1::@return: scope:[dtvSetCpuBankSegment1] from dtvSetCpuBankSegment1
[63] return [ ] ( main:2::gfx_init_chunky:7::dtvSetCpuBankSegment1:41 [ ] main:2::gfx_init_chunky:7::dtvSetCpuBankSegment1:46 [ gfx_init_chunky::y#6 gfx_init_chunky::x#2 gfx_init_chunky::gfxbCpuBank#4 ] main:2::gfx_init_chunky:7::dtvSetCpuBankSegment1:58 [ ] )
to:@return

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,132 @@
(label) @3
(label) @begin
(label) @end
(byte*) BORDERCOL
(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280
(byte*) CHUNKY
(const byte*) CHUNKY#0 CHUNKY = ((byte*))(word/dword/signed dword) 32768
(byte*) CIA2_PORT_A
(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = ((byte*))(word/dword/signed dword) 56576
(byte*) CIA2_PORT_A_DDR
(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = ((byte*))(word/dword/signed dword) 56578
(byte) DTV_BADLINE_OFF
(const byte) DTV_BADLINE_OFF#0 DTV_BADLINE_OFF = (byte/signed byte/word/signed word/dword/signed dword) 32
(byte) DTV_CHUNKY
(const byte) DTV_CHUNKY#0 DTV_CHUNKY = (byte/signed byte/word/signed word/dword/signed dword) 64
(byte) DTV_COLORRAM_OFF
(const byte) DTV_COLORRAM_OFF#0 DTV_COLORRAM_OFF = (byte/signed byte/word/signed word/dword/signed dword) 16
(byte*) DTV_CONTROL
(const byte*) DTV_CONTROL#0 DTV_CONTROL = ((byte*))(word/dword/signed dword) 53308
(byte*) DTV_FEATURE
(const byte*) DTV_FEATURE#0 DTV_FEATURE = ((byte*))(word/dword/signed dword) 53311
(byte) DTV_FEATURE_ENABLE
(const byte) DTV_FEATURE_ENABLE#0 DTV_FEATURE_ENABLE = (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) DTV_HIGHCOLOR
(const byte) DTV_HIGHCOLOR#0 DTV_HIGHCOLOR = (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) DTV_LINEAR
(const byte) DTV_LINEAR#0 DTV_LINEAR = (byte/signed byte/word/signed word/dword/signed dword) 1
(byte*) DTV_PALETTE
(const byte*) DTV_PALETTE#0 DTV_PALETTE = ((byte*))(word/dword/signed dword) 53760
(byte*) DTV_PLANEB_MODULO_HI
(const byte*) DTV_PLANEB_MODULO_HI#0 DTV_PLANEB_MODULO_HI = ((byte*))(word/dword/signed dword) 53320
(byte*) DTV_PLANEB_MODULO_LO
(const byte*) DTV_PLANEB_MODULO_LO#0 DTV_PLANEB_MODULO_LO = ((byte*))(word/dword/signed dword) 53319
(byte*) DTV_PLANEB_START_HI
(const byte*) DTV_PLANEB_START_HI#0 DTV_PLANEB_START_HI = ((byte*))(word/dword/signed dword) 53323
(byte*) DTV_PLANEB_START_LO
(const byte*) DTV_PLANEB_START_LO#0 DTV_PLANEB_START_LO = ((byte*))(word/dword/signed dword) 53321
(byte*) DTV_PLANEB_START_MI
(const byte*) DTV_PLANEB_START_MI#0 DTV_PLANEB_START_MI = ((byte*))(word/dword/signed dword) 53322
(byte*) DTV_PLANEB_STEP
(const byte*) DTV_PLANEB_STEP#0 DTV_PLANEB_STEP = ((byte*))(word/dword/signed dword) 53324
(byte*) PROCPORT
(const byte*) PROCPORT#0 PROCPORT = ((byte*))(byte/signed byte/word/signed word/dword/signed dword) 1
(byte*) PROCPORT_DDR
(const byte*) PROCPORT_DDR#0 PROCPORT_DDR = ((byte*))(byte/signed byte/word/signed word/dword/signed dword) 0
(byte) PROCPORT_DDR_MEMORY_MASK
(const byte) PROCPORT_DDR_MEMORY_MASK#0 PROCPORT_DDR_MEMORY_MASK = (byte/signed byte/word/signed word/dword/signed dword) 7
(byte) PROCPORT_RAM_IO
(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) 53
(byte*) RASTER
(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266
(byte*) VIC_CONTROL
(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) 53265
(byte*) VIC_CONTROL2
(const byte*) VIC_CONTROL2#0 VIC_CONTROL2 = ((byte*))(word/dword/signed dword) 53270
(byte) VIC_CSEL
(const byte) VIC_CSEL#0 VIC_CSEL = (byte/signed byte/word/signed word/dword/signed dword) 8
(byte) VIC_DEN
(const byte) VIC_DEN#0 VIC_DEN = (byte/signed byte/word/signed word/dword/signed dword) 16
(byte) VIC_ECM
(const byte) VIC_ECM#0 VIC_ECM = (byte/signed byte/word/signed word/dword/signed dword) 64
(byte) VIC_MCM
(const byte) VIC_MCM#0 VIC_MCM = (byte/signed byte/word/signed word/dword/signed dword) 16
(byte*) VIC_MEMORY
(const byte*) VIC_MEMORY#0 VIC_MEMORY = ((byte*))(word/dword/signed dword) 53272
(byte) VIC_RSEL
(const byte) VIC_RSEL#0 VIC_RSEL = (byte/signed byte/word/signed word/dword/signed dword) 8
(void()) dtvSetCpuBankSegment1((byte) dtvSetCpuBankSegment1::cpuBankIdx)
(label) dtvSetCpuBankSegment1::@return
(byte*) dtvSetCpuBankSegment1::cpuBank
(const byte*) dtvSetCpuBankSegment1::cpuBank#0 cpuBank = ((byte*))(byte/word/signed word/dword/signed dword) 255
(byte) dtvSetCpuBankSegment1::cpuBankIdx
(byte) dtvSetCpuBankSegment1::cpuBankIdx#1 reg byte a 202.0
(byte) dtvSetCpuBankSegment1::cpuBankIdx#3 reg byte a 103.0
(void()) gfx_init_chunky()
(word~) gfx_init_chunky::$6 $6 zp ZP_WORD:7 202.0
(label) gfx_init_chunky::@1
(label) gfx_init_chunky::@2
(label) gfx_init_chunky::@3
(label) gfx_init_chunky::@4
(label) gfx_init_chunky::@5
(label) gfx_init_chunky::@6
(label) gfx_init_chunky::@8
(label) gfx_init_chunky::@return
(byte) gfx_init_chunky::c
(byte) gfx_init_chunky::c#0 reg byte a 202.0
(byte*) gfx_init_chunky::gfxb
(byte*) gfx_init_chunky::gfxb#1 gfxb zp ZP_WORD:5 42.599999999999994
(byte*) gfx_init_chunky::gfxb#3 gfxb zp ZP_WORD:5 157.0
(byte*) gfx_init_chunky::gfxb#4 gfxb zp ZP_WORD:5 75.75
(byte*) gfx_init_chunky::gfxb#5 gfxb zp ZP_WORD:5 22.0
(byte) gfx_init_chunky::gfxbCpuBank
(byte) gfx_init_chunky::gfxbCpuBank#2 reg byte x 202.0
(byte) gfx_init_chunky::gfxbCpuBank#4 reg byte x 103.75
(byte) gfx_init_chunky::gfxbCpuBank#7 reg byte x 22.0
(byte) gfx_init_chunky::gfxbCpuBank#8 reg byte x 34.888888888888886
(word) gfx_init_chunky::x
(word) gfx_init_chunky::x#1 x zp ZP_WORD:3 151.5
(word) gfx_init_chunky::x#2 x zp ZP_WORD:3 30.299999999999997
(byte) gfx_init_chunky::y
(byte) gfx_init_chunky::y#1 y zp ZP_BYTE:2 16.5
(byte) gfx_init_chunky::y#6 y zp ZP_BYTE:2 9.461538461538462
(void()) main()
(byte~) main::$31 reg byte a 202.0
(byte~) main::$32 reg byte a 202.0
(byte~) main::$33 reg byte a 202.0
(label) main::@1
(label) main::@17
(label) main::@2
(label) main::@3
(label) main::@5
(label) main::@7
(label) main::@8
(label) main::@return
(byte) main::j
(byte) main::j#1 reg byte x 16.5
(byte) main::j#2 reg byte x 22.0
(byte) main::rst
(byte) main::rst#1 reg byte x 57.714285714285715
reg byte x [ main::j#2 main::j#1 ]
zp ZP_BYTE:2 [ gfx_init_chunky::y#6 gfx_init_chunky::y#1 ]
zp ZP_WORD:3 [ gfx_init_chunky::x#2 gfx_init_chunky::x#1 ]
reg byte x [ gfx_init_chunky::gfxbCpuBank#4 gfx_init_chunky::gfxbCpuBank#7 gfx_init_chunky::gfxbCpuBank#8 gfx_init_chunky::gfxbCpuBank#2 ]
zp ZP_WORD:5 [ gfx_init_chunky::gfxb#4 gfx_init_chunky::gfxb#3 gfx_init_chunky::gfxb#5 gfx_init_chunky::gfxb#1 ]
reg byte a [ dtvSetCpuBankSegment1::cpuBankIdx#3 dtvSetCpuBankSegment1::cpuBankIdx#1 ]
reg byte x [ main::rst#1 ]
reg byte a [ main::$31 ]
reg byte a [ main::$32 ]
reg byte a [ main::$33 ]
zp ZP_WORD:7 [ gfx_init_chunky::$6 ]
reg byte a [ gfx_init_chunky::c#0 ]

View File

@ -0,0 +1,118 @@
.pc = $801 "Basic"
:BasicUpstart(main)
.pc = $80d "Program"
.label DTV_FEATURE = $d03f
.const DTV_FEATURE_ENABLE = 1
.label DTV_BLITTER_SRCA_LO = $d320
.label DTV_BLITTER_SRCA_MI = $d321
.label DTV_BLITTER_SRCA_HI = $d322
.label DTV_BLITTER_SRCA_MOD_LO = $d323
.label DTV_BLITTER_SRCA_MOD_HI = $d324
.label DTV_BLITTER_SRCA_LIN_LO = $d325
.label DTV_BLITTER_SRCA_LIN_HI = $d326
.label DTV_BLITTER_SRCA_STEP = $d327
.label DTV_BLITTER_SRCB_LO = $d328
.label DTV_BLITTER_SRCB_MI = $d329
.label DTV_BLITTER_SRCB_HI = $d32a
.label DTV_BLITTER_SRCB_MOD_LO = $d32b
.label DTV_BLITTER_SRCB_MOD_HI = $d32c
.label DTV_BLITTER_SRCB_LIN_LO = $d32d
.label DTV_BLITTER_SRCB_LIN_HI = $d32e
.label DTV_BLITTER_SRCB_STEP = $d32f
.label DTV_BLITTER_DEST_LO = $d330
.label DTV_BLITTER_DEST_MI = $d331
.label DTV_BLITTER_DEST_HI = $d332
.label DTV_BLITTER_DEST_MOD_LO = $d333
.label DTV_BLITTER_DEST_MOD_HI = $d334
.label DTV_BLITTER_DEST_LIN_LO = $d335
.label DTV_BLITTER_DEST_LIN_HI = $d336
.label DTV_BLITTER_DEST_STEP = $d337
.label DTV_BLITTER_LEN_LO = $d338
.label DTV_BLITTER_LEN_HI = $d339
.label DTV_BLITTER_CONTROL = $d33a
.const DTV_BLIT_FORCE_START = 1
.const DTV_BLIT_SRCA_FWD = 2
.const DTV_BLIT_SRCB_FWD = 4
.const DTV_BLIT_DEST_FWD = 8
.label DTV_BLITTER_TRANSPARANCY = $d33b
.const DTV_BLIT_TRANSPARANCY_NONE = 0
.label DTV_BLITTER_ALU = $d33e
.const DTV_BLIT_ADD = $30
.label DTV_BLITTER_CONTROL2 = $d33f
.const DTV_BLIT_DEST_CONT = 8
.const DTV_BLIT_STATUS_BUSY = 1
.label SCREEN = $400
.const SRCA_LEN = 9
jsr main
main: {
lda #DTV_FEATURE_ENABLE
sta DTV_FEATURE
lda #<SRCA
sta DTV_BLITTER_SRCA_LO
lda #>SRCA
sta DTV_BLITTER_SRCA_MI
lda #0
sta DTV_BLITTER_SRCA_HI
sta DTV_BLITTER_SRCA_MOD_LO
sta DTV_BLITTER_SRCA_MOD_HI
lda #<$100
sta DTV_BLITTER_SRCA_LIN_LO
lda #>$100
sta DTV_BLITTER_SRCA_LIN_HI
lda #$10
sta DTV_BLITTER_SRCA_STEP
lda #<SRCB
sta DTV_BLITTER_SRCB_LO
lda #>SRCB
sta DTV_BLITTER_SRCB_MI
lda #0
sta DTV_BLITTER_SRCB_HI
sta DTV_BLITTER_SRCB_MOD_LO
sta DTV_BLITTER_SRCB_MOD_HI
lda #<$100
sta DTV_BLITTER_SRCB_LIN_LO
lda #>$100
sta DTV_BLITTER_SRCB_LIN_HI
lda #0
sta DTV_BLITTER_SRCB_STEP
lda #<SCREEN
sta DTV_BLITTER_DEST_LO
lda #>SCREEN
sta DTV_BLITTER_DEST_MI
lda #0
sta DTV_BLITTER_DEST_HI
sta DTV_BLITTER_DEST_MOD_LO
sta DTV_BLITTER_DEST_MOD_HI
lda #<$100
sta DTV_BLITTER_DEST_LIN_LO
lda #>$100
sta DTV_BLITTER_DEST_LIN_HI
lda #$10
sta DTV_BLITTER_DEST_STEP
lda #SRCA_LEN
sta DTV_BLITTER_LEN_LO
lda #0
sta DTV_BLITTER_LEN_HI
lda #DTV_BLIT_ADD
sta DTV_BLITTER_ALU
lda #DTV_BLIT_TRANSPARANCY_NONE
sta DTV_BLITTER_TRANSPARANCY
lda #DTV_BLIT_FORCE_START|DTV_BLIT_SRCA_FWD|DTV_BLIT_SRCB_FWD|DTV_BLIT_DEST_FWD
sta DTV_BLITTER_CONTROL
lda #DTV_BLIT_DEST_CONT
sta DTV_BLITTER_CONTROL2
ldx #0
b2:
lda DTV_BLITTER_CONTROL2
and #DTV_BLIT_STATUS_BUSY
cmp #0
bne b2
lda #DTV_BLIT_FORCE_START|DTV_BLIT_SRCA_FWD|DTV_BLIT_SRCB_FWD|DTV_BLIT_DEST_FWD
sta DTV_BLITTER_CONTROL
inx
cpx #8
bne b2
rts
}
SRCA: .byte 'c', 'a', 'm', 'e', 'l', 'o', 't', '!', ' '
SRCB: .byte $80

View File

@ -0,0 +1,55 @@
@begin: scope:[] from
[0] phi() [ ] ( )
to:@2
@2: scope:[] from @begin
[1] phi() [ ] ( )
[2] call main param-assignment [ ] ( )
to:@end
@end: scope:[] from @2
[3] phi() [ ] ( )
main: scope:[main] from @2
[4] *((const byte*) DTV_FEATURE#0) ← (const byte) DTV_FEATURE_ENABLE#0 [ ] ( main:2 [ ] )
[5] *((const byte*) DTV_BLITTER_SRCA_LO#0) ← <(const byte[]) SRCA#0 [ ] ( main:2 [ ] )
[6] *((const byte*) DTV_BLITTER_SRCA_MI#0) ← >(const byte[]) SRCA#0 [ ] ( main:2 [ ] )
[7] *((const byte*) DTV_BLITTER_SRCA_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] )
[8] *((const byte*) DTV_BLITTER_SRCA_MOD_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] )
[9] *((const byte*) DTV_BLITTER_SRCA_MOD_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] )
[10] *((const byte*) DTV_BLITTER_SRCA_LIN_LO#0) ← <(word/signed word/dword/signed dword) 256 [ ] ( main:2 [ ] )
[11] *((const byte*) DTV_BLITTER_SRCA_LIN_HI#0) ← >(word/signed word/dword/signed dword) 256 [ ] ( main:2 [ ] )
[12] *((const byte*) DTV_BLITTER_SRCA_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 16 [ ] ( main:2 [ ] )
[13] *((const byte*) DTV_BLITTER_SRCB_LO#0) ← <(const byte[]) SRCB#0 [ ] ( main:2 [ ] )
[14] *((const byte*) DTV_BLITTER_SRCB_MI#0) ← >(const byte[]) SRCB#0 [ ] ( main:2 [ ] )
[15] *((const byte*) DTV_BLITTER_SRCB_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] )
[16] *((const byte*) DTV_BLITTER_SRCB_MOD_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] )
[17] *((const byte*) DTV_BLITTER_SRCB_MOD_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] )
[18] *((const byte*) DTV_BLITTER_SRCB_LIN_LO#0) ← <(word/signed word/dword/signed dword) 256 [ ] ( main:2 [ ] )
[19] *((const byte*) DTV_BLITTER_SRCB_LIN_HI#0) ← >(word/signed word/dword/signed dword) 256 [ ] ( main:2 [ ] )
[20] *((const byte*) DTV_BLITTER_SRCB_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] )
[21] *((const byte*) DTV_BLITTER_DEST_LO#0) ← <(const byte*) SCREEN#0 [ ] ( main:2 [ ] )
[22] *((const byte*) DTV_BLITTER_DEST_MI#0) ← >(const byte*) SCREEN#0 [ ] ( main:2 [ ] )
[23] *((const byte*) DTV_BLITTER_DEST_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] )
[24] *((const byte*) DTV_BLITTER_DEST_MOD_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] )
[25] *((const byte*) DTV_BLITTER_DEST_MOD_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] )
[26] *((const byte*) DTV_BLITTER_DEST_LIN_LO#0) ← <(word/signed word/dword/signed dword) 256 [ ] ( main:2 [ ] )
[27] *((const byte*) DTV_BLITTER_DEST_LIN_HI#0) ← >(word/signed word/dword/signed dword) 256 [ ] ( main:2 [ ] )
[28] *((const byte*) DTV_BLITTER_DEST_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 16 [ ] ( main:2 [ ] )
[29] *((const byte*) DTV_BLITTER_LEN_LO#0) ← (const byte) SRCA_LEN#0 [ ] ( main:2 [ ] )
[30] *((const byte*) DTV_BLITTER_LEN_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] )
[31] *((const byte*) DTV_BLITTER_ALU#0) ← (const byte) DTV_BLIT_ADD#0 [ ] ( main:2 [ ] )
[32] *((const byte*) DTV_BLITTER_TRANSPARANCY#0) ← (const byte) DTV_BLIT_TRANSPARANCY_NONE#0 [ ] ( main:2 [ ] )
[33] *((const byte*) DTV_BLITTER_CONTROL#0) ← (const byte) DTV_BLIT_FORCE_START#0|(const byte) DTV_BLIT_SRCA_FWD#0|(const byte) DTV_BLIT_SRCB_FWD#0|(const byte) DTV_BLIT_DEST_FWD#0 [ ] ( main:2 [ ] )
[34] *((const byte*) DTV_BLITTER_CONTROL2#0) ← (const byte) DTV_BLIT_DEST_CONT#0 [ ] ( main:2 [ ] )
to:main::@2
main::@2: scope:[main] from main main::@2 main::@3
[35] (byte) main::r#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@3/(byte) main::r#1 ) [ main::r#2 ] ( main:2 [ main::r#2 ] )
[36] (byte~) main::$15 ← *((const byte*) DTV_BLITTER_CONTROL2#0) & (const byte) DTV_BLIT_STATUS_BUSY#0 [ main::r#2 main::$15 ] ( main:2 [ main::r#2 main::$15 ] )
[37] if((byte~) main::$15!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@2 [ main::r#2 ] ( main:2 [ main::r#2 ] )
to:main::@3
main::@3: scope:[main] from main::@2
[38] *((const byte*) DTV_BLITTER_CONTROL#0) ← (const byte) DTV_BLIT_FORCE_START#0|(const byte) DTV_BLIT_SRCA_FWD#0|(const byte) DTV_BLIT_SRCB_FWD#0|(const byte) DTV_BLIT_DEST_FWD#0 [ main::r#2 ] ( main:2 [ main::r#2 ] )
[39] (byte) main::r#1 ← ++ (byte) main::r#2 [ main::r#1 ] ( main:2 [ main::r#1 ] )
[40] if((byte) main::r#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@2 [ main::r#1 ] ( main:2 [ main::r#1 ] )
to:main::@return
main::@return: scope:[main] from main::@3
[41] return [ ] ( main:2 [ ] )
to:@return

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,102 @@
(label) @2
(label) @begin
(label) @end
(byte*) DTV_BLITTER_ALU
(const byte*) DTV_BLITTER_ALU#0 DTV_BLITTER_ALU = ((byte*))(word/dword/signed dword) 54078
(byte*) DTV_BLITTER_CONTROL
(const byte*) DTV_BLITTER_CONTROL#0 DTV_BLITTER_CONTROL = ((byte*))(word/dword/signed dword) 54074
(byte*) DTV_BLITTER_CONTROL2
(const byte*) DTV_BLITTER_CONTROL2#0 DTV_BLITTER_CONTROL2 = ((byte*))(word/dword/signed dword) 54079
(byte*) DTV_BLITTER_DEST_HI
(const byte*) DTV_BLITTER_DEST_HI#0 DTV_BLITTER_DEST_HI = ((byte*))(word/dword/signed dword) 54066
(byte*) DTV_BLITTER_DEST_LIN_HI
(const byte*) DTV_BLITTER_DEST_LIN_HI#0 DTV_BLITTER_DEST_LIN_HI = ((byte*))(word/dword/signed dword) 54070
(byte*) DTV_BLITTER_DEST_LIN_LO
(const byte*) DTV_BLITTER_DEST_LIN_LO#0 DTV_BLITTER_DEST_LIN_LO = ((byte*))(word/dword/signed dword) 54069
(byte*) DTV_BLITTER_DEST_LO
(const byte*) DTV_BLITTER_DEST_LO#0 DTV_BLITTER_DEST_LO = ((byte*))(word/dword/signed dword) 54064
(byte*) DTV_BLITTER_DEST_MI
(const byte*) DTV_BLITTER_DEST_MI#0 DTV_BLITTER_DEST_MI = ((byte*))(word/dword/signed dword) 54065
(byte*) DTV_BLITTER_DEST_MOD_HI
(const byte*) DTV_BLITTER_DEST_MOD_HI#0 DTV_BLITTER_DEST_MOD_HI = ((byte*))(word/dword/signed dword) 54068
(byte*) DTV_BLITTER_DEST_MOD_LO
(const byte*) DTV_BLITTER_DEST_MOD_LO#0 DTV_BLITTER_DEST_MOD_LO = ((byte*))(word/dword/signed dword) 54067
(byte*) DTV_BLITTER_DEST_STEP
(const byte*) DTV_BLITTER_DEST_STEP#0 DTV_BLITTER_DEST_STEP = ((byte*))(word/dword/signed dword) 54071
(byte*) DTV_BLITTER_LEN_HI
(const byte*) DTV_BLITTER_LEN_HI#0 DTV_BLITTER_LEN_HI = ((byte*))(word/dword/signed dword) 54073
(byte*) DTV_BLITTER_LEN_LO
(const byte*) DTV_BLITTER_LEN_LO#0 DTV_BLITTER_LEN_LO = ((byte*))(word/dword/signed dword) 54072
(byte*) DTV_BLITTER_SRCA_HI
(const byte*) DTV_BLITTER_SRCA_HI#0 DTV_BLITTER_SRCA_HI = ((byte*))(word/dword/signed dword) 54050
(byte*) DTV_BLITTER_SRCA_LIN_HI
(const byte*) DTV_BLITTER_SRCA_LIN_HI#0 DTV_BLITTER_SRCA_LIN_HI = ((byte*))(word/dword/signed dword) 54054
(byte*) DTV_BLITTER_SRCA_LIN_LO
(const byte*) DTV_BLITTER_SRCA_LIN_LO#0 DTV_BLITTER_SRCA_LIN_LO = ((byte*))(word/dword/signed dword) 54053
(byte*) DTV_BLITTER_SRCA_LO
(const byte*) DTV_BLITTER_SRCA_LO#0 DTV_BLITTER_SRCA_LO = ((byte*))(word/dword/signed dword) 54048
(byte*) DTV_BLITTER_SRCA_MI
(const byte*) DTV_BLITTER_SRCA_MI#0 DTV_BLITTER_SRCA_MI = ((byte*))(word/dword/signed dword) 54049
(byte*) DTV_BLITTER_SRCA_MOD_HI
(const byte*) DTV_BLITTER_SRCA_MOD_HI#0 DTV_BLITTER_SRCA_MOD_HI = ((byte*))(word/dword/signed dword) 54052
(byte*) DTV_BLITTER_SRCA_MOD_LO
(const byte*) DTV_BLITTER_SRCA_MOD_LO#0 DTV_BLITTER_SRCA_MOD_LO = ((byte*))(word/dword/signed dword) 54051
(byte*) DTV_BLITTER_SRCA_STEP
(const byte*) DTV_BLITTER_SRCA_STEP#0 DTV_BLITTER_SRCA_STEP = ((byte*))(word/dword/signed dword) 54055
(byte*) DTV_BLITTER_SRCB_HI
(const byte*) DTV_BLITTER_SRCB_HI#0 DTV_BLITTER_SRCB_HI = ((byte*))(word/dword/signed dword) 54058
(byte*) DTV_BLITTER_SRCB_LIN_HI
(const byte*) DTV_BLITTER_SRCB_LIN_HI#0 DTV_BLITTER_SRCB_LIN_HI = ((byte*))(word/dword/signed dword) 54062
(byte*) DTV_BLITTER_SRCB_LIN_LO
(const byte*) DTV_BLITTER_SRCB_LIN_LO#0 DTV_BLITTER_SRCB_LIN_LO = ((byte*))(word/dword/signed dword) 54061
(byte*) DTV_BLITTER_SRCB_LO
(const byte*) DTV_BLITTER_SRCB_LO#0 DTV_BLITTER_SRCB_LO = ((byte*))(word/dword/signed dword) 54056
(byte*) DTV_BLITTER_SRCB_MI
(const byte*) DTV_BLITTER_SRCB_MI#0 DTV_BLITTER_SRCB_MI = ((byte*))(word/dword/signed dword) 54057
(byte*) DTV_BLITTER_SRCB_MOD_HI
(const byte*) DTV_BLITTER_SRCB_MOD_HI#0 DTV_BLITTER_SRCB_MOD_HI = ((byte*))(word/dword/signed dword) 54060
(byte*) DTV_BLITTER_SRCB_MOD_LO
(const byte*) DTV_BLITTER_SRCB_MOD_LO#0 DTV_BLITTER_SRCB_MOD_LO = ((byte*))(word/dword/signed dword) 54059
(byte*) DTV_BLITTER_SRCB_STEP
(const byte*) DTV_BLITTER_SRCB_STEP#0 DTV_BLITTER_SRCB_STEP = ((byte*))(word/dword/signed dword) 54063
(byte*) DTV_BLITTER_TRANSPARANCY
(const byte*) DTV_BLITTER_TRANSPARANCY#0 DTV_BLITTER_TRANSPARANCY = ((byte*))(word/dword/signed dword) 54075
(byte) DTV_BLIT_ADD
(const byte) DTV_BLIT_ADD#0 DTV_BLIT_ADD = (byte/signed byte/word/signed word/dword/signed dword) 48
(byte) DTV_BLIT_DEST_CONT
(const byte) DTV_BLIT_DEST_CONT#0 DTV_BLIT_DEST_CONT = (byte/signed byte/word/signed word/dword/signed dword) 8
(byte) DTV_BLIT_DEST_FWD
(const byte) DTV_BLIT_DEST_FWD#0 DTV_BLIT_DEST_FWD = (byte/signed byte/word/signed word/dword/signed dword) 8
(byte) DTV_BLIT_FORCE_START
(const byte) DTV_BLIT_FORCE_START#0 DTV_BLIT_FORCE_START = (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) DTV_BLIT_SRCA_FWD
(const byte) DTV_BLIT_SRCA_FWD#0 DTV_BLIT_SRCA_FWD = (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) DTV_BLIT_SRCB_FWD
(const byte) DTV_BLIT_SRCB_FWD#0 DTV_BLIT_SRCB_FWD = (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) DTV_BLIT_STATUS_BUSY
(const byte) DTV_BLIT_STATUS_BUSY#0 DTV_BLIT_STATUS_BUSY = (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) DTV_BLIT_TRANSPARANCY_NONE
(const byte) DTV_BLIT_TRANSPARANCY_NONE#0 DTV_BLIT_TRANSPARANCY_NONE = (byte/signed byte/word/signed word/dword/signed dword) 0
(byte*) DTV_FEATURE
(const byte*) DTV_FEATURE#0 DTV_FEATURE = ((byte*))(word/dword/signed dword) 53311
(byte) DTV_FEATURE_ENABLE
(const byte) DTV_FEATURE_ENABLE#0 DTV_FEATURE_ENABLE = (byte/signed byte/word/signed word/dword/signed dword) 1
(byte*) SCREEN
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024
(byte[]) SRCA
(const byte[]) SRCA#0 SRCA = { (byte) 'c', (byte) 'a', (byte) 'm', (byte) 'e', (byte) 'l', (byte) 'o', (byte) 't', (byte) '!', (byte) ' ' }
(byte) SRCA_LEN
(const byte) SRCA_LEN#0 SRCA_LEN = (byte/signed byte/word/signed word/dword/signed dword) 9
(byte[]) SRCB
(const byte[]) SRCB#0 SRCB = { (byte/word/signed word/dword/signed dword) 128 }
(void()) main()
(byte~) main::$15 reg byte a 202.0
(label) main::@2
(label) main::@3
(label) main::@return
(byte) main::r
(byte) main::r#1 reg byte x 16.5
(byte) main::r#2 reg byte x 5.5
reg byte x [ main::r#2 main::r#1 ]
reg byte a [ main::$15 ]

View File

@ -109,6 +109,112 @@ void dtvSetCpuBankSegment1(byte cpuBankIdx) {
}
}
// Blitter Source A Start
const byte* DTV_BLITTER_SRCA_LO = $d320;
const byte* DTV_BLITTER_SRCA_MI = $d321;
const byte* DTV_BLITTER_SRCA_HI = $d322;
// Blitter Source A Modulo
const byte* DTV_BLITTER_SRCA_MOD_LO = $d323;
const byte* DTV_BLITTER_SRCA_MOD_HI = $d324;
// Blitter Source A Line Length
const byte* DTV_BLITTER_SRCA_LIN_LO = $d325;
const byte* DTV_BLITTER_SRCA_LIN_HI = $d326;
// Blitter Source A Step ([7:4] integral part, [3:0] fractional part)
const byte* DTV_BLITTER_SRCA_STEP = $d327;
// Blitter Source B Start
const byte* DTV_BLITTER_SRCB_LO = $d328;
const byte* DTV_BLITTER_SRCB_MI = $d329;
const byte* DTV_BLITTER_SRCB_HI = $d32a;
// Blitter Source B Modulo
const byte* DTV_BLITTER_SRCB_MOD_LO = $d32b;
const byte* DTV_BLITTER_SRCB_MOD_HI = $d32c;
// Blitter Source B Line Length
const byte* DTV_BLITTER_SRCB_LIN_LO = $d32d;
const byte* DTV_BLITTER_SRCB_LIN_HI = $d32e;
// Blitter Source B Step ([7:4] integral part, [3:0] fractional part)
const byte* DTV_BLITTER_SRCB_STEP = $d32f;
// Blitter Destination Start
const byte* DTV_BLITTER_DEST_LO = $d330;
const byte* DTV_BLITTER_DEST_MI = $d331;
const byte* DTV_BLITTER_DEST_HI = $d332;
// Blitter Source B Modulo
const byte* DTV_BLITTER_DEST_MOD_LO = $d333;
const byte* DTV_BLITTER_DEST_MOD_HI = $d334;
// Blitter Source B Line Length
const byte* DTV_BLITTER_DEST_LIN_LO = $d335;
const byte* DTV_BLITTER_DEST_LIN_HI = $d336;
// Blitter Source B Step ([7:4] integral part, [3:0] fractional part)
const byte* DTV_BLITTER_DEST_STEP = $d337;
// Blitter Blit Length
const byte* DTV_BLITTER_LEN_LO = $d338;
const byte* DTV_BLITTER_LEN_HI = $d339;
// Blitter Control
const byte* DTV_BLITTER_CONTROL = $d33a;
// Bit[0] Force Start Strobe when set
const byte DTV_BLIT_FORCE_START = %00000001;
// Bit[1] Source A Direction Positive when set
const byte DTV_BLIT_SRCA_FWD = %00000010;
// Bit[2] Source B Direction Positive when set
const byte DTV_BLIT_SRCB_FWD = %00000100;
// Bit[3] Destination Direction Positive when set
const byte DTV_BLIT_DEST_FWD = %00001000;
// Bit[4] VIC IRQ Start when set
const byte DTV_BLIT_VIC_IRQ = %00010000;
// Bit[5] CIA IRQ Start when set($DCXX CIA)
const byte DTV_BLIT_CIA_IRQ = %00100000;
// Bit[6] V Blank Start when set
const byte DTV_BLIT_VBLANK = %01000000;
// Bit[7] Blitter IRQ Enable when set
const byte DTV_BLIT_IRQ_EN = %10000000;
// Blitter Transparency
const byte* DTV_BLITTER_TRANSPARANCY = $d33b;
// Bit[0] Disable Channel B.
// (data into b port of ALU is forced to %00000000. ALU functions as normal)
const byte DTV_BLIT_DISABLE_B = %00000001;
// Bit[1] Write Transparent Data when set
//(Data will be written if source a data *IS* %00000000. This can be used with channel b and ALU set to OR to write Data masked by source A.) Cycles will be saved if No writes.
const byte DTV_BLIT_WRITE_TRANSPARENT = %00000010;
// Bit[2] Write Non Transparent
// when set (Data will be written if SourceA fetched data is *NOT* %00000000. This may be used combined with channel b data and/or ALU) Cycles will be Saved if no write. Bit[2]==Bit[1]==0: write in any case
const byte DTV_BLIT_WRITE_NONTRANSPARENT = %00000100;
// No transparancy
// Bit[2]==Bit[1]==0: write in any case
const byte DTV_BLIT_TRANSPARANCY_NONE = %00000000;
// Controls the ALU operation
byte* DTV_BLITTER_ALU = $d33e;
// Bit[2:0] Source A right Shift: 000 SourceA Data, 001 LastA[0],SourceA[7:1], ..., 111 LastA[6:0],SourceA[7]
const byte DTV_BLIT_SHIFT0 = %00000000;
const byte DTV_BLIT_SHIFT1 = %00000001;
const byte DTV_BLIT_SHIFT2 = %00000010;
const byte DTV_BLIT_SHIFT3 = %00000011;
const byte DTV_BLIT_SHIFT4 = %00000100;
const byte DTV_BLIT_SHIFT5 = %00000101;
const byte DTV_BLIT_SHIFT6 = %00000110;
const byte DTV_BLIT_SHIFT7 = %00000111;
// Bit[5:3] Minterms/ALU
const byte DTV_BLIT_AND = %00000000;
const byte DTV_BLIT_NAND = %00001000;
const byte DTV_BLIT_NOR = %00010000;
const byte DTV_BLIT_OR = %00011000;
const byte DTV_BLIT_XOR = %00100000;
const byte DTV_BLIT_XNOR = %00101000;
const byte DTV_BLIT_ADD = %00110000;
const byte DTV_BLIT_SUB = %00111000;
// Blitter Control 2
const byte* DTV_BLITTER_CONTROL2 = $d33f;
// Bit[0] Clear Blitter IRQ
const byte DTV_BLIT_CLEAR_IRQ = %00000001;
// Bit[1] Source A Continue
const byte DTV_BLIT_SRCA_CONT = %00000010;
// Bit[2] Source B Continue
const byte DTV_BLIT_SRCB_CONT = %00000100;
// Bit[3] Destination Continue
const byte DTV_BLIT_DEST_CONT = %00001000;
// Bit[0] Busy when set (When reading)
const byte DTV_BLIT_STATUS_BUSY = %00000001;
// Bit[1] IRQ when set (When reading)
const byte DTV_BLIT_STATUS_IRQ = %00000010;
Importing c64.kc
PARSING src/test/java/dk/camelot64/kickc/test/kc/c64.kc
// Commodore 64 Registers and Constants
@ -312,6 +418,70 @@ proc (void()) dtvSetCpuBankSegment1((byte) dtvSetCpuBankSegment1::cpuBankIdx)
dtvSetCpuBankSegment1::@return:
return
endproc // dtvSetCpuBankSegment1()
(byte*) DTV_BLITTER_SRCA_LO ← (word/dword/signed dword) 54048
(byte*) DTV_BLITTER_SRCA_MI ← (word/dword/signed dword) 54049
(byte*) DTV_BLITTER_SRCA_HI ← (word/dword/signed dword) 54050
(byte*) DTV_BLITTER_SRCA_MOD_LO ← (word/dword/signed dword) 54051
(byte*) DTV_BLITTER_SRCA_MOD_HI ← (word/dword/signed dword) 54052
(byte*) DTV_BLITTER_SRCA_LIN_LO ← (word/dword/signed dword) 54053
(byte*) DTV_BLITTER_SRCA_LIN_HI ← (word/dword/signed dword) 54054
(byte*) DTV_BLITTER_SRCA_STEP ← (word/dword/signed dword) 54055
(byte*) DTV_BLITTER_SRCB_LO ← (word/dword/signed dword) 54056
(byte*) DTV_BLITTER_SRCB_MI ← (word/dword/signed dword) 54057
(byte*) DTV_BLITTER_SRCB_HI ← (word/dword/signed dword) 54058
(byte*) DTV_BLITTER_SRCB_MOD_LO ← (word/dword/signed dword) 54059
(byte*) DTV_BLITTER_SRCB_MOD_HI ← (word/dword/signed dword) 54060
(byte*) DTV_BLITTER_SRCB_LIN_LO ← (word/dword/signed dword) 54061
(byte*) DTV_BLITTER_SRCB_LIN_HI ← (word/dword/signed dword) 54062
(byte*) DTV_BLITTER_SRCB_STEP ← (word/dword/signed dword) 54063
(byte*) DTV_BLITTER_DEST_LO ← (word/dword/signed dword) 54064
(byte*) DTV_BLITTER_DEST_MI ← (word/dword/signed dword) 54065
(byte*) DTV_BLITTER_DEST_HI ← (word/dword/signed dword) 54066
(byte*) DTV_BLITTER_DEST_MOD_LO ← (word/dword/signed dword) 54067
(byte*) DTV_BLITTER_DEST_MOD_HI ← (word/dword/signed dword) 54068
(byte*) DTV_BLITTER_DEST_LIN_LO ← (word/dword/signed dword) 54069
(byte*) DTV_BLITTER_DEST_LIN_HI ← (word/dword/signed dword) 54070
(byte*) DTV_BLITTER_DEST_STEP ← (word/dword/signed dword) 54071
(byte*) DTV_BLITTER_LEN_LO ← (word/dword/signed dword) 54072
(byte*) DTV_BLITTER_LEN_HI ← (word/dword/signed dword) 54073
(byte*) DTV_BLITTER_CONTROL ← (word/dword/signed dword) 54074
(byte) DTV_BLIT_FORCE_START ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) DTV_BLIT_SRCA_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) DTV_BLIT_SRCB_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) DTV_BLIT_DEST_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte) DTV_BLIT_VIC_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 16
(byte) DTV_BLIT_CIA_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 32
(byte) DTV_BLIT_VBLANK ← (byte/signed byte/word/signed word/dword/signed dword) 64
(byte) DTV_BLIT_IRQ_EN ← (byte/word/signed word/dword/signed dword) 128
(byte*) DTV_BLITTER_TRANSPARANCY ← (word/dword/signed dword) 54075
(byte) DTV_BLIT_DISABLE_B ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) DTV_BLIT_WRITE_TRANSPARENT ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) DTV_BLIT_WRITE_NONTRANSPARENT ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) DTV_BLIT_TRANSPARANCY_NONE ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte*) DTV_BLITTER_ALU ← (word/dword/signed dword) 54078
(byte) DTV_BLIT_SHIFT0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) DTV_BLIT_SHIFT1 ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) DTV_BLIT_SHIFT2 ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) DTV_BLIT_SHIFT3 ← (byte/signed byte/word/signed word/dword/signed dword) 3
(byte) DTV_BLIT_SHIFT4 ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) DTV_BLIT_SHIFT5 ← (byte/signed byte/word/signed word/dword/signed dword) 5
(byte) DTV_BLIT_SHIFT6 ← (byte/signed byte/word/signed word/dword/signed dword) 6
(byte) DTV_BLIT_SHIFT7 ← (byte/signed byte/word/signed word/dword/signed dword) 7
(byte) DTV_BLIT_AND ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) DTV_BLIT_NAND ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte) DTV_BLIT_NOR ← (byte/signed byte/word/signed word/dword/signed dword) 16
(byte) DTV_BLIT_OR ← (byte/signed byte/word/signed word/dword/signed dword) 24
(byte) DTV_BLIT_XOR ← (byte/signed byte/word/signed word/dword/signed dword) 32
(byte) DTV_BLIT_XNOR ← (byte/signed byte/word/signed word/dword/signed dword) 40
(byte) DTV_BLIT_ADD ← (byte/signed byte/word/signed word/dword/signed dword) 48
(byte) DTV_BLIT_SUB ← (byte/signed byte/word/signed word/dword/signed dword) 56
(byte*) DTV_BLITTER_CONTROL2 ← (word/dword/signed dword) 54079
(byte) DTV_BLIT_CLEAR_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) DTV_BLIT_SRCA_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) DTV_BLIT_SRCB_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) DTV_BLIT_DEST_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte) DTV_BLIT_STATUS_BUSY ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) DTV_BLIT_STATUS_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 2
proc (void()) main()
asm { sei }
*((byte*) DTV_FEATURE) ← (byte) DTV_FEATURE_ENABLE
@ -378,6 +548,70 @@ SYMBOLS
(byte*) D018
(byte) DARK_GREY
(byte) DTV_BADLINE_OFF
(byte*) DTV_BLITTER_ALU
(byte*) DTV_BLITTER_CONTROL
(byte*) DTV_BLITTER_CONTROL2
(byte*) DTV_BLITTER_DEST_HI
(byte*) DTV_BLITTER_DEST_LIN_HI
(byte*) DTV_BLITTER_DEST_LIN_LO
(byte*) DTV_BLITTER_DEST_LO
(byte*) DTV_BLITTER_DEST_MI
(byte*) DTV_BLITTER_DEST_MOD_HI
(byte*) DTV_BLITTER_DEST_MOD_LO
(byte*) DTV_BLITTER_DEST_STEP
(byte*) DTV_BLITTER_LEN_HI
(byte*) DTV_BLITTER_LEN_LO
(byte*) DTV_BLITTER_SRCA_HI
(byte*) DTV_BLITTER_SRCA_LIN_HI
(byte*) DTV_BLITTER_SRCA_LIN_LO
(byte*) DTV_BLITTER_SRCA_LO
(byte*) DTV_BLITTER_SRCA_MI
(byte*) DTV_BLITTER_SRCA_MOD_HI
(byte*) DTV_BLITTER_SRCA_MOD_LO
(byte*) DTV_BLITTER_SRCA_STEP
(byte*) DTV_BLITTER_SRCB_HI
(byte*) DTV_BLITTER_SRCB_LIN_HI
(byte*) DTV_BLITTER_SRCB_LIN_LO
(byte*) DTV_BLITTER_SRCB_LO
(byte*) DTV_BLITTER_SRCB_MI
(byte*) DTV_BLITTER_SRCB_MOD_HI
(byte*) DTV_BLITTER_SRCB_MOD_LO
(byte*) DTV_BLITTER_SRCB_STEP
(byte*) DTV_BLITTER_TRANSPARANCY
(byte) DTV_BLIT_ADD
(byte) DTV_BLIT_AND
(byte) DTV_BLIT_CIA_IRQ
(byte) DTV_BLIT_CLEAR_IRQ
(byte) DTV_BLIT_DEST_CONT
(byte) DTV_BLIT_DEST_FWD
(byte) DTV_BLIT_DISABLE_B
(byte) DTV_BLIT_FORCE_START
(byte) DTV_BLIT_IRQ_EN
(byte) DTV_BLIT_NAND
(byte) DTV_BLIT_NOR
(byte) DTV_BLIT_OR
(byte) DTV_BLIT_SHIFT0
(byte) DTV_BLIT_SHIFT1
(byte) DTV_BLIT_SHIFT2
(byte) DTV_BLIT_SHIFT3
(byte) DTV_BLIT_SHIFT4
(byte) DTV_BLIT_SHIFT5
(byte) DTV_BLIT_SHIFT6
(byte) DTV_BLIT_SHIFT7
(byte) DTV_BLIT_SRCA_CONT
(byte) DTV_BLIT_SRCA_FWD
(byte) DTV_BLIT_SRCB_CONT
(byte) DTV_BLIT_SRCB_FWD
(byte) DTV_BLIT_STATUS_BUSY
(byte) DTV_BLIT_STATUS_IRQ
(byte) DTV_BLIT_SUB
(byte) DTV_BLIT_TRANSPARANCY_NONE
(byte) DTV_BLIT_VBLANK
(byte) DTV_BLIT_VIC_IRQ
(byte) DTV_BLIT_WRITE_NONTRANSPARENT
(byte) DTV_BLIT_WRITE_TRANSPARENT
(byte) DTV_BLIT_XNOR
(byte) DTV_BLIT_XOR
(byte) DTV_BORDER_OFF
(byte) DTV_CHUNKY
(byte) DTV_COLORRAM_OFF
@ -529,6 +763,36 @@ Promoting word/dword/signed dword to byte* in DTV_COLOR_BANK_HI ← ((byte*)) 53
Promoting word/dword/signed dword to byte* in DTV_GRAPHICS_VIC_BANK ← ((byte*)) 53309
Promoting word/dword/signed dword to byte* in DTV_GRAPHICS_HICOL_BANK ← ((byte*)) 53310
Promoting byte/word/signed word/dword/signed dword to byte* in dtvSetCpuBankSegment1::cpuBank ← ((byte*)) 255
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCA_LO ← ((byte*)) 54048
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCA_MI ← ((byte*)) 54049
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCA_HI ← ((byte*)) 54050
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCA_MOD_LO ← ((byte*)) 54051
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCA_MOD_HI ← ((byte*)) 54052
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCA_LIN_LO ← ((byte*)) 54053
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCA_LIN_HI ← ((byte*)) 54054
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCA_STEP ← ((byte*)) 54055
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCB_LO ← ((byte*)) 54056
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCB_MI ← ((byte*)) 54057
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCB_HI ← ((byte*)) 54058
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCB_MOD_LO ← ((byte*)) 54059
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCB_MOD_HI ← ((byte*)) 54060
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCB_LIN_LO ← ((byte*)) 54061
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCB_LIN_HI ← ((byte*)) 54062
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCB_STEP ← ((byte*)) 54063
Promoting word/dword/signed dword to byte* in DTV_BLITTER_DEST_LO ← ((byte*)) 54064
Promoting word/dword/signed dword to byte* in DTV_BLITTER_DEST_MI ← ((byte*)) 54065
Promoting word/dword/signed dword to byte* in DTV_BLITTER_DEST_HI ← ((byte*)) 54066
Promoting word/dword/signed dword to byte* in DTV_BLITTER_DEST_MOD_LO ← ((byte*)) 54067
Promoting word/dword/signed dword to byte* in DTV_BLITTER_DEST_MOD_HI ← ((byte*)) 54068
Promoting word/dword/signed dword to byte* in DTV_BLITTER_DEST_LIN_LO ← ((byte*)) 54069
Promoting word/dword/signed dword to byte* in DTV_BLITTER_DEST_LIN_HI ← ((byte*)) 54070
Promoting word/dword/signed dword to byte* in DTV_BLITTER_DEST_STEP ← ((byte*)) 54071
Promoting word/dword/signed dword to byte* in DTV_BLITTER_LEN_LO ← ((byte*)) 54072
Promoting word/dword/signed dword to byte* in DTV_BLITTER_LEN_HI ← ((byte*)) 54073
Promoting word/dword/signed dword to byte* in DTV_BLITTER_CONTROL ← ((byte*)) 54074
Promoting word/dword/signed dword to byte* in DTV_BLITTER_TRANSPARANCY ← ((byte*)) 54075
Promoting word/dword/signed dword to byte* in DTV_BLITTER_ALU ← ((byte*)) 54078
Promoting word/dword/signed dword to byte* in DTV_BLITTER_CONTROL2 ← ((byte*)) 54079
INITIAL CONTROL FLOW GRAPH
@begin: scope:[] from
(byte*) PROCPORT_DDR ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0
@ -637,6 +901,70 @@ dtvSetCpuBankSegment1::@return: scope:[dtvSetCpuBankSegment1] from dtvSetCpuBan
return
to:@return
@1: scope:[] from @begin
(byte*) DTV_BLITTER_SRCA_LO ← ((byte*)) (word/dword/signed dword) 54048
(byte*) DTV_BLITTER_SRCA_MI ← ((byte*)) (word/dword/signed dword) 54049
(byte*) DTV_BLITTER_SRCA_HI ← ((byte*)) (word/dword/signed dword) 54050
(byte*) DTV_BLITTER_SRCA_MOD_LO ← ((byte*)) (word/dword/signed dword) 54051
(byte*) DTV_BLITTER_SRCA_MOD_HI ← ((byte*)) (word/dword/signed dword) 54052
(byte*) DTV_BLITTER_SRCA_LIN_LO ← ((byte*)) (word/dword/signed dword) 54053
(byte*) DTV_BLITTER_SRCA_LIN_HI ← ((byte*)) (word/dword/signed dword) 54054
(byte*) DTV_BLITTER_SRCA_STEP ← ((byte*)) (word/dword/signed dword) 54055
(byte*) DTV_BLITTER_SRCB_LO ← ((byte*)) (word/dword/signed dword) 54056
(byte*) DTV_BLITTER_SRCB_MI ← ((byte*)) (word/dword/signed dword) 54057
(byte*) DTV_BLITTER_SRCB_HI ← ((byte*)) (word/dword/signed dword) 54058
(byte*) DTV_BLITTER_SRCB_MOD_LO ← ((byte*)) (word/dword/signed dword) 54059
(byte*) DTV_BLITTER_SRCB_MOD_HI ← ((byte*)) (word/dword/signed dword) 54060
(byte*) DTV_BLITTER_SRCB_LIN_LO ← ((byte*)) (word/dword/signed dword) 54061
(byte*) DTV_BLITTER_SRCB_LIN_HI ← ((byte*)) (word/dword/signed dword) 54062
(byte*) DTV_BLITTER_SRCB_STEP ← ((byte*)) (word/dword/signed dword) 54063
(byte*) DTV_BLITTER_DEST_LO ← ((byte*)) (word/dword/signed dword) 54064
(byte*) DTV_BLITTER_DEST_MI ← ((byte*)) (word/dword/signed dword) 54065
(byte*) DTV_BLITTER_DEST_HI ← ((byte*)) (word/dword/signed dword) 54066
(byte*) DTV_BLITTER_DEST_MOD_LO ← ((byte*)) (word/dword/signed dword) 54067
(byte*) DTV_BLITTER_DEST_MOD_HI ← ((byte*)) (word/dword/signed dword) 54068
(byte*) DTV_BLITTER_DEST_LIN_LO ← ((byte*)) (word/dword/signed dword) 54069
(byte*) DTV_BLITTER_DEST_LIN_HI ← ((byte*)) (word/dword/signed dword) 54070
(byte*) DTV_BLITTER_DEST_STEP ← ((byte*)) (word/dword/signed dword) 54071
(byte*) DTV_BLITTER_LEN_LO ← ((byte*)) (word/dword/signed dword) 54072
(byte*) DTV_BLITTER_LEN_HI ← ((byte*)) (word/dword/signed dword) 54073
(byte*) DTV_BLITTER_CONTROL ← ((byte*)) (word/dword/signed dword) 54074
(byte) DTV_BLIT_FORCE_START ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) DTV_BLIT_SRCA_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) DTV_BLIT_SRCB_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) DTV_BLIT_DEST_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte) DTV_BLIT_VIC_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 16
(byte) DTV_BLIT_CIA_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 32
(byte) DTV_BLIT_VBLANK ← (byte/signed byte/word/signed word/dword/signed dword) 64
(byte) DTV_BLIT_IRQ_EN ← (byte/word/signed word/dword/signed dword) 128
(byte*) DTV_BLITTER_TRANSPARANCY ← ((byte*)) (word/dword/signed dword) 54075
(byte) DTV_BLIT_DISABLE_B ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) DTV_BLIT_WRITE_TRANSPARENT ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) DTV_BLIT_WRITE_NONTRANSPARENT ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) DTV_BLIT_TRANSPARANCY_NONE ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte*) DTV_BLITTER_ALU ← ((byte*)) (word/dword/signed dword) 54078
(byte) DTV_BLIT_SHIFT0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) DTV_BLIT_SHIFT1 ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) DTV_BLIT_SHIFT2 ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) DTV_BLIT_SHIFT3 ← (byte/signed byte/word/signed word/dword/signed dword) 3
(byte) DTV_BLIT_SHIFT4 ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) DTV_BLIT_SHIFT5 ← (byte/signed byte/word/signed word/dword/signed dword) 5
(byte) DTV_BLIT_SHIFT6 ← (byte/signed byte/word/signed word/dword/signed dword) 6
(byte) DTV_BLIT_SHIFT7 ← (byte/signed byte/word/signed word/dword/signed dword) 7
(byte) DTV_BLIT_AND ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) DTV_BLIT_NAND ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte) DTV_BLIT_NOR ← (byte/signed byte/word/signed word/dword/signed dword) 16
(byte) DTV_BLIT_OR ← (byte/signed byte/word/signed word/dword/signed dword) 24
(byte) DTV_BLIT_XOR ← (byte/signed byte/word/signed word/dword/signed dword) 32
(byte) DTV_BLIT_XNOR ← (byte/signed byte/word/signed word/dword/signed dword) 40
(byte) DTV_BLIT_ADD ← (byte/signed byte/word/signed word/dword/signed dword) 48
(byte) DTV_BLIT_SUB ← (byte/signed byte/word/signed word/dword/signed dword) 56
(byte*) DTV_BLITTER_CONTROL2 ← ((byte*)) (word/dword/signed dword) 54079
(byte) DTV_BLIT_CLEAR_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) DTV_BLIT_SRCA_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) DTV_BLIT_SRCB_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) DTV_BLIT_DEST_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte) DTV_BLIT_STATUS_BUSY ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) DTV_BLIT_STATUS_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 2
to:@2
main: scope:[main] from
asm { sei }
@ -790,6 +1118,70 @@ Eliminating unused variable (byte*) DTV_COLOR_BANK_HI and assignment [92] (byte*
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
Removing empty block @1
Removing empty block main::@9
Removing empty block main::@3

View File

@ -875,6 +875,112 @@ void dtvSetCpuBankSegment1(byte cpuBankIdx) {
}
}
// Blitter Source A Start
const byte* DTV_BLITTER_SRCA_LO = $d320;
const byte* DTV_BLITTER_SRCA_MI = $d321;
const byte* DTV_BLITTER_SRCA_HI = $d322;
// Blitter Source A Modulo
const byte* DTV_BLITTER_SRCA_MOD_LO = $d323;
const byte* DTV_BLITTER_SRCA_MOD_HI = $d324;
// Blitter Source A Line Length
const byte* DTV_BLITTER_SRCA_LIN_LO = $d325;
const byte* DTV_BLITTER_SRCA_LIN_HI = $d326;
// Blitter Source A Step ([7:4] integral part, [3:0] fractional part)
const byte* DTV_BLITTER_SRCA_STEP = $d327;
// Blitter Source B Start
const byte* DTV_BLITTER_SRCB_LO = $d328;
const byte* DTV_BLITTER_SRCB_MI = $d329;
const byte* DTV_BLITTER_SRCB_HI = $d32a;
// Blitter Source B Modulo
const byte* DTV_BLITTER_SRCB_MOD_LO = $d32b;
const byte* DTV_BLITTER_SRCB_MOD_HI = $d32c;
// Blitter Source B Line Length
const byte* DTV_BLITTER_SRCB_LIN_LO = $d32d;
const byte* DTV_BLITTER_SRCB_LIN_HI = $d32e;
// Blitter Source B Step ([7:4] integral part, [3:0] fractional part)
const byte* DTV_BLITTER_SRCB_STEP = $d32f;
// Blitter Destination Start
const byte* DTV_BLITTER_DEST_LO = $d330;
const byte* DTV_BLITTER_DEST_MI = $d331;
const byte* DTV_BLITTER_DEST_HI = $d332;
// Blitter Source B Modulo
const byte* DTV_BLITTER_DEST_MOD_LO = $d333;
const byte* DTV_BLITTER_DEST_MOD_HI = $d334;
// Blitter Source B Line Length
const byte* DTV_BLITTER_DEST_LIN_LO = $d335;
const byte* DTV_BLITTER_DEST_LIN_HI = $d336;
// Blitter Source B Step ([7:4] integral part, [3:0] fractional part)
const byte* DTV_BLITTER_DEST_STEP = $d337;
// Blitter Blit Length
const byte* DTV_BLITTER_LEN_LO = $d338;
const byte* DTV_BLITTER_LEN_HI = $d339;
// Blitter Control
const byte* DTV_BLITTER_CONTROL = $d33a;
// Bit[0] Force Start Strobe when set
const byte DTV_BLIT_FORCE_START = %00000001;
// Bit[1] Source A Direction Positive when set
const byte DTV_BLIT_SRCA_FWD = %00000010;
// Bit[2] Source B Direction Positive when set
const byte DTV_BLIT_SRCB_FWD = %00000100;
// Bit[3] Destination Direction Positive when set
const byte DTV_BLIT_DEST_FWD = %00001000;
// Bit[4] VIC IRQ Start when set
const byte DTV_BLIT_VIC_IRQ = %00010000;
// Bit[5] CIA IRQ Start when set($DCXX CIA)
const byte DTV_BLIT_CIA_IRQ = %00100000;
// Bit[6] V Blank Start when set
const byte DTV_BLIT_VBLANK = %01000000;
// Bit[7] Blitter IRQ Enable when set
const byte DTV_BLIT_IRQ_EN = %10000000;
// Blitter Transparency
const byte* DTV_BLITTER_TRANSPARANCY = $d33b;
// Bit[0] Disable Channel B.
// (data into b port of ALU is forced to %00000000. ALU functions as normal)
const byte DTV_BLIT_DISABLE_B = %00000001;
// Bit[1] Write Transparent Data when set
//(Data will be written if source a data *IS* %00000000. This can be used with channel b and ALU set to OR to write Data masked by source A.) Cycles will be saved if No writes.
const byte DTV_BLIT_WRITE_TRANSPARENT = %00000010;
// Bit[2] Write Non Transparent
// when set (Data will be written if SourceA fetched data is *NOT* %00000000. This may be used combined with channel b data and/or ALU) Cycles will be Saved if no write. Bit[2]==Bit[1]==0: write in any case
const byte DTV_BLIT_WRITE_NONTRANSPARENT = %00000100;
// No transparancy
// Bit[2]==Bit[1]==0: write in any case
const byte DTV_BLIT_TRANSPARANCY_NONE = %00000000;
// Controls the ALU operation
byte* DTV_BLITTER_ALU = $d33e;
// Bit[2:0] Source A right Shift: 000 SourceA Data, 001 LastA[0],SourceA[7:1], ..., 111 LastA[6:0],SourceA[7]
const byte DTV_BLIT_SHIFT0 = %00000000;
const byte DTV_BLIT_SHIFT1 = %00000001;
const byte DTV_BLIT_SHIFT2 = %00000010;
const byte DTV_BLIT_SHIFT3 = %00000011;
const byte DTV_BLIT_SHIFT4 = %00000100;
const byte DTV_BLIT_SHIFT5 = %00000101;
const byte DTV_BLIT_SHIFT6 = %00000110;
const byte DTV_BLIT_SHIFT7 = %00000111;
// Bit[5:3] Minterms/ALU
const byte DTV_BLIT_AND = %00000000;
const byte DTV_BLIT_NAND = %00001000;
const byte DTV_BLIT_NOR = %00010000;
const byte DTV_BLIT_OR = %00011000;
const byte DTV_BLIT_XOR = %00100000;
const byte DTV_BLIT_XNOR = %00101000;
const byte DTV_BLIT_ADD = %00110000;
const byte DTV_BLIT_SUB = %00111000;
// Blitter Control 2
const byte* DTV_BLITTER_CONTROL2 = $d33f;
// Bit[0] Clear Blitter IRQ
const byte DTV_BLIT_CLEAR_IRQ = %00000001;
// Bit[1] Source A Continue
const byte DTV_BLIT_SRCA_CONT = %00000010;
// Bit[2] Source B Continue
const byte DTV_BLIT_SRCB_CONT = %00000100;
// Bit[3] Destination Continue
const byte DTV_BLIT_DEST_CONT = %00001000;
// Bit[0] Busy when set (When reading)
const byte DTV_BLIT_STATUS_BUSY = %00000001;
// Bit[1] IRQ when set (When reading)
const byte DTV_BLIT_STATUS_IRQ = %00000010;
Importing c64.kc
PARSING src/test/java/dk/camelot64/kickc/test/kc/c64.kc
// Commodore 64 Registers and Constants
@ -1634,6 +1740,70 @@ proc (void()) dtvSetCpuBankSegment1((byte) dtvSetCpuBankSegment1::cpuBankIdx)
dtvSetCpuBankSegment1::@return:
return
endproc // dtvSetCpuBankSegment1()
(byte*) DTV_BLITTER_SRCA_LO ← (word/dword/signed dword) 54048
(byte*) DTV_BLITTER_SRCA_MI ← (word/dword/signed dword) 54049
(byte*) DTV_BLITTER_SRCA_HI ← (word/dword/signed dword) 54050
(byte*) DTV_BLITTER_SRCA_MOD_LO ← (word/dword/signed dword) 54051
(byte*) DTV_BLITTER_SRCA_MOD_HI ← (word/dword/signed dword) 54052
(byte*) DTV_BLITTER_SRCA_LIN_LO ← (word/dword/signed dword) 54053
(byte*) DTV_BLITTER_SRCA_LIN_HI ← (word/dword/signed dword) 54054
(byte*) DTV_BLITTER_SRCA_STEP ← (word/dword/signed dword) 54055
(byte*) DTV_BLITTER_SRCB_LO ← (word/dword/signed dword) 54056
(byte*) DTV_BLITTER_SRCB_MI ← (word/dword/signed dword) 54057
(byte*) DTV_BLITTER_SRCB_HI ← (word/dword/signed dword) 54058
(byte*) DTV_BLITTER_SRCB_MOD_LO ← (word/dword/signed dword) 54059
(byte*) DTV_BLITTER_SRCB_MOD_HI ← (word/dword/signed dword) 54060
(byte*) DTV_BLITTER_SRCB_LIN_LO ← (word/dword/signed dword) 54061
(byte*) DTV_BLITTER_SRCB_LIN_HI ← (word/dword/signed dword) 54062
(byte*) DTV_BLITTER_SRCB_STEP ← (word/dword/signed dword) 54063
(byte*) DTV_BLITTER_DEST_LO ← (word/dword/signed dword) 54064
(byte*) DTV_BLITTER_DEST_MI ← (word/dword/signed dword) 54065
(byte*) DTV_BLITTER_DEST_HI ← (word/dword/signed dword) 54066
(byte*) DTV_BLITTER_DEST_MOD_LO ← (word/dword/signed dword) 54067
(byte*) DTV_BLITTER_DEST_MOD_HI ← (word/dword/signed dword) 54068
(byte*) DTV_BLITTER_DEST_LIN_LO ← (word/dword/signed dword) 54069
(byte*) DTV_BLITTER_DEST_LIN_HI ← (word/dword/signed dword) 54070
(byte*) DTV_BLITTER_DEST_STEP ← (word/dword/signed dword) 54071
(byte*) DTV_BLITTER_LEN_LO ← (word/dword/signed dword) 54072
(byte*) DTV_BLITTER_LEN_HI ← (word/dword/signed dword) 54073
(byte*) DTV_BLITTER_CONTROL ← (word/dword/signed dword) 54074
(byte) DTV_BLIT_FORCE_START ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) DTV_BLIT_SRCA_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) DTV_BLIT_SRCB_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) DTV_BLIT_DEST_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte) DTV_BLIT_VIC_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 16
(byte) DTV_BLIT_CIA_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 32
(byte) DTV_BLIT_VBLANK ← (byte/signed byte/word/signed word/dword/signed dword) 64
(byte) DTV_BLIT_IRQ_EN ← (byte/word/signed word/dword/signed dword) 128
(byte*) DTV_BLITTER_TRANSPARANCY ← (word/dword/signed dword) 54075
(byte) DTV_BLIT_DISABLE_B ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) DTV_BLIT_WRITE_TRANSPARENT ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) DTV_BLIT_WRITE_NONTRANSPARENT ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) DTV_BLIT_TRANSPARANCY_NONE ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte*) DTV_BLITTER_ALU ← (word/dword/signed dword) 54078
(byte) DTV_BLIT_SHIFT0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) DTV_BLIT_SHIFT1 ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) DTV_BLIT_SHIFT2 ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) DTV_BLIT_SHIFT3 ← (byte/signed byte/word/signed word/dword/signed dword) 3
(byte) DTV_BLIT_SHIFT4 ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) DTV_BLIT_SHIFT5 ← (byte/signed byte/word/signed word/dword/signed dword) 5
(byte) DTV_BLIT_SHIFT6 ← (byte/signed byte/word/signed word/dword/signed dword) 6
(byte) DTV_BLIT_SHIFT7 ← (byte/signed byte/word/signed word/dword/signed dword) 7
(byte) DTV_BLIT_AND ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) DTV_BLIT_NAND ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte) DTV_BLIT_NOR ← (byte/signed byte/word/signed word/dword/signed dword) 16
(byte) DTV_BLIT_OR ← (byte/signed byte/word/signed word/dword/signed dword) 24
(byte) DTV_BLIT_XOR ← (byte/signed byte/word/signed word/dword/signed dword) 32
(byte) DTV_BLIT_XNOR ← (byte/signed byte/word/signed word/dword/signed dword) 40
(byte) DTV_BLIT_ADD ← (byte/signed byte/word/signed word/dword/signed dword) 48
(byte) DTV_BLIT_SUB ← (byte/signed byte/word/signed word/dword/signed dword) 56
(byte*) DTV_BLITTER_CONTROL2 ← (word/dword/signed dword) 54079
(byte) DTV_BLIT_CLEAR_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) DTV_BLIT_SRCA_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) DTV_BLIT_SRCB_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) DTV_BLIT_DEST_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte) DTV_BLIT_STATUS_BUSY ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) DTV_BLIT_STATUS_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte*) print_screen ← (word/signed word/dword/signed dword) 1024
(byte*) print_line_cursor ← (byte*) print_screen
(byte*) print_char_cursor ← (byte*) print_line_cursor
@ -3668,6 +3838,70 @@ SYMBOLS
(byte*) D018
(byte) DARK_GREY
(byte) DTV_BADLINE_OFF
(byte*) DTV_BLITTER_ALU
(byte*) DTV_BLITTER_CONTROL
(byte*) DTV_BLITTER_CONTROL2
(byte*) DTV_BLITTER_DEST_HI
(byte*) DTV_BLITTER_DEST_LIN_HI
(byte*) DTV_BLITTER_DEST_LIN_LO
(byte*) DTV_BLITTER_DEST_LO
(byte*) DTV_BLITTER_DEST_MI
(byte*) DTV_BLITTER_DEST_MOD_HI
(byte*) DTV_BLITTER_DEST_MOD_LO
(byte*) DTV_BLITTER_DEST_STEP
(byte*) DTV_BLITTER_LEN_HI
(byte*) DTV_BLITTER_LEN_LO
(byte*) DTV_BLITTER_SRCA_HI
(byte*) DTV_BLITTER_SRCA_LIN_HI
(byte*) DTV_BLITTER_SRCA_LIN_LO
(byte*) DTV_BLITTER_SRCA_LO
(byte*) DTV_BLITTER_SRCA_MI
(byte*) DTV_BLITTER_SRCA_MOD_HI
(byte*) DTV_BLITTER_SRCA_MOD_LO
(byte*) DTV_BLITTER_SRCA_STEP
(byte*) DTV_BLITTER_SRCB_HI
(byte*) DTV_BLITTER_SRCB_LIN_HI
(byte*) DTV_BLITTER_SRCB_LIN_LO
(byte*) DTV_BLITTER_SRCB_LO
(byte*) DTV_BLITTER_SRCB_MI
(byte*) DTV_BLITTER_SRCB_MOD_HI
(byte*) DTV_BLITTER_SRCB_MOD_LO
(byte*) DTV_BLITTER_SRCB_STEP
(byte*) DTV_BLITTER_TRANSPARANCY
(byte) DTV_BLIT_ADD
(byte) DTV_BLIT_AND
(byte) DTV_BLIT_CIA_IRQ
(byte) DTV_BLIT_CLEAR_IRQ
(byte) DTV_BLIT_DEST_CONT
(byte) DTV_BLIT_DEST_FWD
(byte) DTV_BLIT_DISABLE_B
(byte) DTV_BLIT_FORCE_START
(byte) DTV_BLIT_IRQ_EN
(byte) DTV_BLIT_NAND
(byte) DTV_BLIT_NOR
(byte) DTV_BLIT_OR
(byte) DTV_BLIT_SHIFT0
(byte) DTV_BLIT_SHIFT1
(byte) DTV_BLIT_SHIFT2
(byte) DTV_BLIT_SHIFT3
(byte) DTV_BLIT_SHIFT4
(byte) DTV_BLIT_SHIFT5
(byte) DTV_BLIT_SHIFT6
(byte) DTV_BLIT_SHIFT7
(byte) DTV_BLIT_SRCA_CONT
(byte) DTV_BLIT_SRCA_FWD
(byte) DTV_BLIT_SRCB_CONT
(byte) DTV_BLIT_SRCB_FWD
(byte) DTV_BLIT_STATUS_BUSY
(byte) DTV_BLIT_STATUS_IRQ
(byte) DTV_BLIT_SUB
(byte) DTV_BLIT_TRANSPARANCY_NONE
(byte) DTV_BLIT_VBLANK
(byte) DTV_BLIT_VIC_IRQ
(byte) DTV_BLIT_WRITE_NONTRANSPARENT
(byte) DTV_BLIT_WRITE_TRANSPARENT
(byte) DTV_BLIT_XNOR
(byte) DTV_BLIT_XOR
(byte) DTV_BORDER_OFF
(byte) DTV_CHUNKY
(byte) DTV_COLORRAM_OFF
@ -5056,6 +5290,36 @@ Promoting word/dword/signed dword to byte* in DTV_COLOR_BANK_HI ← ((byte*)) 53
Promoting word/dword/signed dword to byte* in DTV_GRAPHICS_VIC_BANK ← ((byte*)) 53309
Promoting word/dword/signed dword to byte* in DTV_GRAPHICS_HICOL_BANK ← ((byte*)) 53310
Promoting byte/word/signed word/dword/signed dword to byte* in dtvSetCpuBankSegment1::cpuBank ← ((byte*)) 255
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCA_LO ← ((byte*)) 54048
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCA_MI ← ((byte*)) 54049
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCA_HI ← ((byte*)) 54050
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCA_MOD_LO ← ((byte*)) 54051
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCA_MOD_HI ← ((byte*)) 54052
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCA_LIN_LO ← ((byte*)) 54053
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCA_LIN_HI ← ((byte*)) 54054
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCA_STEP ← ((byte*)) 54055
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCB_LO ← ((byte*)) 54056
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCB_MI ← ((byte*)) 54057
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCB_HI ← ((byte*)) 54058
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCB_MOD_LO ← ((byte*)) 54059
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCB_MOD_HI ← ((byte*)) 54060
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCB_LIN_LO ← ((byte*)) 54061
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCB_LIN_HI ← ((byte*)) 54062
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCB_STEP ← ((byte*)) 54063
Promoting word/dword/signed dword to byte* in DTV_BLITTER_DEST_LO ← ((byte*)) 54064
Promoting word/dword/signed dword to byte* in DTV_BLITTER_DEST_MI ← ((byte*)) 54065
Promoting word/dword/signed dword to byte* in DTV_BLITTER_DEST_HI ← ((byte*)) 54066
Promoting word/dword/signed dword to byte* in DTV_BLITTER_DEST_MOD_LO ← ((byte*)) 54067
Promoting word/dword/signed dword to byte* in DTV_BLITTER_DEST_MOD_HI ← ((byte*)) 54068
Promoting word/dword/signed dword to byte* in DTV_BLITTER_DEST_LIN_LO ← ((byte*)) 54069
Promoting word/dword/signed dword to byte* in DTV_BLITTER_DEST_LIN_HI ← ((byte*)) 54070
Promoting word/dword/signed dword to byte* in DTV_BLITTER_DEST_STEP ← ((byte*)) 54071
Promoting word/dword/signed dword to byte* in DTV_BLITTER_LEN_LO ← ((byte*)) 54072
Promoting word/dword/signed dword to byte* in DTV_BLITTER_LEN_HI ← ((byte*)) 54073
Promoting word/dword/signed dword to byte* in DTV_BLITTER_CONTROL ← ((byte*)) 54074
Promoting word/dword/signed dword to byte* in DTV_BLITTER_TRANSPARANCY ← ((byte*)) 54075
Promoting word/dword/signed dword to byte* in DTV_BLITTER_ALU ← ((byte*)) 54078
Promoting word/dword/signed dword to byte* in DTV_BLITTER_CONTROL2 ← ((byte*)) 54079
Promoting word/signed word/dword/signed dword to byte* in print_screen ← ((byte*)) 1024
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
@ -5183,6 +5447,70 @@ dtvSetCpuBankSegment1::@return: scope:[dtvSetCpuBankSegment1] from dtvSetCpuBan
return
to:@return
@1: scope:[] from @begin
(byte*) DTV_BLITTER_SRCA_LO ← ((byte*)) (word/dword/signed dword) 54048
(byte*) DTV_BLITTER_SRCA_MI ← ((byte*)) (word/dword/signed dword) 54049
(byte*) DTV_BLITTER_SRCA_HI ← ((byte*)) (word/dword/signed dword) 54050
(byte*) DTV_BLITTER_SRCA_MOD_LO ← ((byte*)) (word/dword/signed dword) 54051
(byte*) DTV_BLITTER_SRCA_MOD_HI ← ((byte*)) (word/dword/signed dword) 54052
(byte*) DTV_BLITTER_SRCA_LIN_LO ← ((byte*)) (word/dword/signed dword) 54053
(byte*) DTV_BLITTER_SRCA_LIN_HI ← ((byte*)) (word/dword/signed dword) 54054
(byte*) DTV_BLITTER_SRCA_STEP ← ((byte*)) (word/dword/signed dword) 54055
(byte*) DTV_BLITTER_SRCB_LO ← ((byte*)) (word/dword/signed dword) 54056
(byte*) DTV_BLITTER_SRCB_MI ← ((byte*)) (word/dword/signed dword) 54057
(byte*) DTV_BLITTER_SRCB_HI ← ((byte*)) (word/dword/signed dword) 54058
(byte*) DTV_BLITTER_SRCB_MOD_LO ← ((byte*)) (word/dword/signed dword) 54059
(byte*) DTV_BLITTER_SRCB_MOD_HI ← ((byte*)) (word/dword/signed dword) 54060
(byte*) DTV_BLITTER_SRCB_LIN_LO ← ((byte*)) (word/dword/signed dword) 54061
(byte*) DTV_BLITTER_SRCB_LIN_HI ← ((byte*)) (word/dword/signed dword) 54062
(byte*) DTV_BLITTER_SRCB_STEP ← ((byte*)) (word/dword/signed dword) 54063
(byte*) DTV_BLITTER_DEST_LO ← ((byte*)) (word/dword/signed dword) 54064
(byte*) DTV_BLITTER_DEST_MI ← ((byte*)) (word/dword/signed dword) 54065
(byte*) DTV_BLITTER_DEST_HI ← ((byte*)) (word/dword/signed dword) 54066
(byte*) DTV_BLITTER_DEST_MOD_LO ← ((byte*)) (word/dword/signed dword) 54067
(byte*) DTV_BLITTER_DEST_MOD_HI ← ((byte*)) (word/dword/signed dword) 54068
(byte*) DTV_BLITTER_DEST_LIN_LO ← ((byte*)) (word/dword/signed dword) 54069
(byte*) DTV_BLITTER_DEST_LIN_HI ← ((byte*)) (word/dword/signed dword) 54070
(byte*) DTV_BLITTER_DEST_STEP ← ((byte*)) (word/dword/signed dword) 54071
(byte*) DTV_BLITTER_LEN_LO ← ((byte*)) (word/dword/signed dword) 54072
(byte*) DTV_BLITTER_LEN_HI ← ((byte*)) (word/dword/signed dword) 54073
(byte*) DTV_BLITTER_CONTROL ← ((byte*)) (word/dword/signed dword) 54074
(byte) DTV_BLIT_FORCE_START ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) DTV_BLIT_SRCA_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) DTV_BLIT_SRCB_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) DTV_BLIT_DEST_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte) DTV_BLIT_VIC_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 16
(byte) DTV_BLIT_CIA_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 32
(byte) DTV_BLIT_VBLANK ← (byte/signed byte/word/signed word/dword/signed dword) 64
(byte) DTV_BLIT_IRQ_EN ← (byte/word/signed word/dword/signed dword) 128
(byte*) DTV_BLITTER_TRANSPARANCY ← ((byte*)) (word/dword/signed dword) 54075
(byte) DTV_BLIT_DISABLE_B ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) DTV_BLIT_WRITE_TRANSPARENT ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) DTV_BLIT_WRITE_NONTRANSPARENT ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) DTV_BLIT_TRANSPARANCY_NONE ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte*) DTV_BLITTER_ALU ← ((byte*)) (word/dword/signed dword) 54078
(byte) DTV_BLIT_SHIFT0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) DTV_BLIT_SHIFT1 ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) DTV_BLIT_SHIFT2 ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) DTV_BLIT_SHIFT3 ← (byte/signed byte/word/signed word/dword/signed dword) 3
(byte) DTV_BLIT_SHIFT4 ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) DTV_BLIT_SHIFT5 ← (byte/signed byte/word/signed word/dword/signed dword) 5
(byte) DTV_BLIT_SHIFT6 ← (byte/signed byte/word/signed word/dword/signed dword) 6
(byte) DTV_BLIT_SHIFT7 ← (byte/signed byte/word/signed word/dword/signed dword) 7
(byte) DTV_BLIT_AND ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) DTV_BLIT_NAND ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte) DTV_BLIT_NOR ← (byte/signed byte/word/signed word/dword/signed dword) 16
(byte) DTV_BLIT_OR ← (byte/signed byte/word/signed word/dword/signed dword) 24
(byte) DTV_BLIT_XOR ← (byte/signed byte/word/signed word/dword/signed dword) 32
(byte) DTV_BLIT_XNOR ← (byte/signed byte/word/signed word/dword/signed dword) 40
(byte) DTV_BLIT_ADD ← (byte/signed byte/word/signed word/dword/signed dword) 48
(byte) DTV_BLIT_SUB ← (byte/signed byte/word/signed word/dword/signed dword) 56
(byte*) DTV_BLITTER_CONTROL2 ← ((byte*)) (word/dword/signed dword) 54079
(byte) DTV_BLIT_CLEAR_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) DTV_BLIT_SRCA_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) DTV_BLIT_SRCB_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) DTV_BLIT_DEST_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte) DTV_BLIT_STATUS_BUSY ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) DTV_BLIT_STATUS_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte*) print_screen ← ((byte*)) (word/signed word/dword/signed dword) 1024
(byte*) print_line_cursor ← (byte*) print_screen
(byte*) print_char_cursor ← (byte*) print_line_cursor
@ -7982,16 +8310,80 @@ Eliminating unused variable (byte) DTV_FEATURE_DISABLE_TIL_RESET and assignment
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 - keeping the call (void~) print_str_lines::$4
Eliminating unused variable (byte) KEY_DEL and assignment [142] (byte) KEY_DEL ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) KEY_RETURN and assignment [143] (byte) KEY_RETURN ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) KEY_F7 and assignment [145] (byte) KEY_F7 ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) KEY_F1 and assignment [146] (byte) KEY_F1 ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) KEY_F3 and assignment [147] (byte) KEY_F3 ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) KEY_F5 and assignment [148] (byte) KEY_F5 ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) KEY_HOME and assignment [193] (byte) KEY_HOME ← (byte/signed byte/word/signed word/dword/signed dword) 51
Eliminating unused variable (byte) KEY_RUNSTOP and assignment [205] (byte) KEY_RUNSTOP ← (byte/signed byte/word/signed word/dword/signed dword) 63
Eliminating unused variable (byte[]) keyboard_char_keycodes and assignment [206] (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 [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 - keeping the call (void~) bitmap_line::$9
Eliminating unused variable - keeping the call (void~) bitmap_line::$8
Eliminating unused variable - keeping the call (void~) bitmap_line::$14

View File

@ -957,6 +957,112 @@ void dtvSetCpuBankSegment1(byte cpuBankIdx) {
}
}
// Blitter Source A Start
const byte* DTV_BLITTER_SRCA_LO = $d320;
const byte* DTV_BLITTER_SRCA_MI = $d321;
const byte* DTV_BLITTER_SRCA_HI = $d322;
// Blitter Source A Modulo
const byte* DTV_BLITTER_SRCA_MOD_LO = $d323;
const byte* DTV_BLITTER_SRCA_MOD_HI = $d324;
// Blitter Source A Line Length
const byte* DTV_BLITTER_SRCA_LIN_LO = $d325;
const byte* DTV_BLITTER_SRCA_LIN_HI = $d326;
// Blitter Source A Step ([7:4] integral part, [3:0] fractional part)
const byte* DTV_BLITTER_SRCA_STEP = $d327;
// Blitter Source B Start
const byte* DTV_BLITTER_SRCB_LO = $d328;
const byte* DTV_BLITTER_SRCB_MI = $d329;
const byte* DTV_BLITTER_SRCB_HI = $d32a;
// Blitter Source B Modulo
const byte* DTV_BLITTER_SRCB_MOD_LO = $d32b;
const byte* DTV_BLITTER_SRCB_MOD_HI = $d32c;
// Blitter Source B Line Length
const byte* DTV_BLITTER_SRCB_LIN_LO = $d32d;
const byte* DTV_BLITTER_SRCB_LIN_HI = $d32e;
// Blitter Source B Step ([7:4] integral part, [3:0] fractional part)
const byte* DTV_BLITTER_SRCB_STEP = $d32f;
// Blitter Destination Start
const byte* DTV_BLITTER_DEST_LO = $d330;
const byte* DTV_BLITTER_DEST_MI = $d331;
const byte* DTV_BLITTER_DEST_HI = $d332;
// Blitter Source B Modulo
const byte* DTV_BLITTER_DEST_MOD_LO = $d333;
const byte* DTV_BLITTER_DEST_MOD_HI = $d334;
// Blitter Source B Line Length
const byte* DTV_BLITTER_DEST_LIN_LO = $d335;
const byte* DTV_BLITTER_DEST_LIN_HI = $d336;
// Blitter Source B Step ([7:4] integral part, [3:0] fractional part)
const byte* DTV_BLITTER_DEST_STEP = $d337;
// Blitter Blit Length
const byte* DTV_BLITTER_LEN_LO = $d338;
const byte* DTV_BLITTER_LEN_HI = $d339;
// Blitter Control
const byte* DTV_BLITTER_CONTROL = $d33a;
// Bit[0] Force Start Strobe when set
const byte DTV_BLIT_FORCE_START = %00000001;
// Bit[1] Source A Direction Positive when set
const byte DTV_BLIT_SRCA_FWD = %00000010;
// Bit[2] Source B Direction Positive when set
const byte DTV_BLIT_SRCB_FWD = %00000100;
// Bit[3] Destination Direction Positive when set
const byte DTV_BLIT_DEST_FWD = %00001000;
// Bit[4] VIC IRQ Start when set
const byte DTV_BLIT_VIC_IRQ = %00010000;
// Bit[5] CIA IRQ Start when set($DCXX CIA)
const byte DTV_BLIT_CIA_IRQ = %00100000;
// Bit[6] V Blank Start when set
const byte DTV_BLIT_VBLANK = %01000000;
// Bit[7] Blitter IRQ Enable when set
const byte DTV_BLIT_IRQ_EN = %10000000;
// Blitter Transparency
const byte* DTV_BLITTER_TRANSPARANCY = $d33b;
// Bit[0] Disable Channel B.
// (data into b port of ALU is forced to %00000000. ALU functions as normal)
const byte DTV_BLIT_DISABLE_B = %00000001;
// Bit[1] Write Transparent Data when set
//(Data will be written if source a data *IS* %00000000. This can be used with channel b and ALU set to OR to write Data masked by source A.) Cycles will be saved if No writes.
const byte DTV_BLIT_WRITE_TRANSPARENT = %00000010;
// Bit[2] Write Non Transparent
// when set (Data will be written if SourceA fetched data is *NOT* %00000000. This may be used combined with channel b data and/or ALU) Cycles will be Saved if no write. Bit[2]==Bit[1]==0: write in any case
const byte DTV_BLIT_WRITE_NONTRANSPARENT = %00000100;
// No transparancy
// Bit[2]==Bit[1]==0: write in any case
const byte DTV_BLIT_TRANSPARANCY_NONE = %00000000;
// Controls the ALU operation
byte* DTV_BLITTER_ALU = $d33e;
// Bit[2:0] Source A right Shift: 000 SourceA Data, 001 LastA[0],SourceA[7:1], ..., 111 LastA[6:0],SourceA[7]
const byte DTV_BLIT_SHIFT0 = %00000000;
const byte DTV_BLIT_SHIFT1 = %00000001;
const byte DTV_BLIT_SHIFT2 = %00000010;
const byte DTV_BLIT_SHIFT3 = %00000011;
const byte DTV_BLIT_SHIFT4 = %00000100;
const byte DTV_BLIT_SHIFT5 = %00000101;
const byte DTV_BLIT_SHIFT6 = %00000110;
const byte DTV_BLIT_SHIFT7 = %00000111;
// Bit[5:3] Minterms/ALU
const byte DTV_BLIT_AND = %00000000;
const byte DTV_BLIT_NAND = %00001000;
const byte DTV_BLIT_NOR = %00010000;
const byte DTV_BLIT_OR = %00011000;
const byte DTV_BLIT_XOR = %00100000;
const byte DTV_BLIT_XNOR = %00101000;
const byte DTV_BLIT_ADD = %00110000;
const byte DTV_BLIT_SUB = %00111000;
// Blitter Control 2
const byte* DTV_BLITTER_CONTROL2 = $d33f;
// Bit[0] Clear Blitter IRQ
const byte DTV_BLIT_CLEAR_IRQ = %00000001;
// Bit[1] Source A Continue
const byte DTV_BLIT_SRCA_CONT = %00000010;
// Bit[2] Source B Continue
const byte DTV_BLIT_SRCB_CONT = %00000100;
// Bit[3] Destination Continue
const byte DTV_BLIT_DEST_CONT = %00001000;
// Bit[0] Busy when set (When reading)
const byte DTV_BLIT_STATUS_BUSY = %00000001;
// Bit[1] IRQ when set (When reading)
const byte DTV_BLIT_STATUS_IRQ = %00000010;
Importing c64.kc
PARSING src/test/java/dk/camelot64/kickc/test/kc/c64.kc
// Commodore 64 Registers and Constants
@ -1713,6 +1819,70 @@ proc (void()) dtvSetCpuBankSegment1((byte) dtvSetCpuBankSegment1::cpuBankIdx)
dtvSetCpuBankSegment1::@return:
return
endproc // dtvSetCpuBankSegment1()
(byte*) DTV_BLITTER_SRCA_LO ← (word/dword/signed dword) 54048
(byte*) DTV_BLITTER_SRCA_MI ← (word/dword/signed dword) 54049
(byte*) DTV_BLITTER_SRCA_HI ← (word/dword/signed dword) 54050
(byte*) DTV_BLITTER_SRCA_MOD_LO ← (word/dword/signed dword) 54051
(byte*) DTV_BLITTER_SRCA_MOD_HI ← (word/dword/signed dword) 54052
(byte*) DTV_BLITTER_SRCA_LIN_LO ← (word/dword/signed dword) 54053
(byte*) DTV_BLITTER_SRCA_LIN_HI ← (word/dword/signed dword) 54054
(byte*) DTV_BLITTER_SRCA_STEP ← (word/dword/signed dword) 54055
(byte*) DTV_BLITTER_SRCB_LO ← (word/dword/signed dword) 54056
(byte*) DTV_BLITTER_SRCB_MI ← (word/dword/signed dword) 54057
(byte*) DTV_BLITTER_SRCB_HI ← (word/dword/signed dword) 54058
(byte*) DTV_BLITTER_SRCB_MOD_LO ← (word/dword/signed dword) 54059
(byte*) DTV_BLITTER_SRCB_MOD_HI ← (word/dword/signed dword) 54060
(byte*) DTV_BLITTER_SRCB_LIN_LO ← (word/dword/signed dword) 54061
(byte*) DTV_BLITTER_SRCB_LIN_HI ← (word/dword/signed dword) 54062
(byte*) DTV_BLITTER_SRCB_STEP ← (word/dword/signed dword) 54063
(byte*) DTV_BLITTER_DEST_LO ← (word/dword/signed dword) 54064
(byte*) DTV_BLITTER_DEST_MI ← (word/dword/signed dword) 54065
(byte*) DTV_BLITTER_DEST_HI ← (word/dword/signed dword) 54066
(byte*) DTV_BLITTER_DEST_MOD_LO ← (word/dword/signed dword) 54067
(byte*) DTV_BLITTER_DEST_MOD_HI ← (word/dword/signed dword) 54068
(byte*) DTV_BLITTER_DEST_LIN_LO ← (word/dword/signed dword) 54069
(byte*) DTV_BLITTER_DEST_LIN_HI ← (word/dword/signed dword) 54070
(byte*) DTV_BLITTER_DEST_STEP ← (word/dword/signed dword) 54071
(byte*) DTV_BLITTER_LEN_LO ← (word/dword/signed dword) 54072
(byte*) DTV_BLITTER_LEN_HI ← (word/dword/signed dword) 54073
(byte*) DTV_BLITTER_CONTROL ← (word/dword/signed dword) 54074
(byte) DTV_BLIT_FORCE_START ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) DTV_BLIT_SRCA_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) DTV_BLIT_SRCB_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) DTV_BLIT_DEST_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte) DTV_BLIT_VIC_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 16
(byte) DTV_BLIT_CIA_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 32
(byte) DTV_BLIT_VBLANK ← (byte/signed byte/word/signed word/dword/signed dword) 64
(byte) DTV_BLIT_IRQ_EN ← (byte/word/signed word/dword/signed dword) 128
(byte*) DTV_BLITTER_TRANSPARANCY ← (word/dword/signed dword) 54075
(byte) DTV_BLIT_DISABLE_B ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) DTV_BLIT_WRITE_TRANSPARENT ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) DTV_BLIT_WRITE_NONTRANSPARENT ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) DTV_BLIT_TRANSPARANCY_NONE ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte*) DTV_BLITTER_ALU ← (word/dword/signed dword) 54078
(byte) DTV_BLIT_SHIFT0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) DTV_BLIT_SHIFT1 ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) DTV_BLIT_SHIFT2 ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) DTV_BLIT_SHIFT3 ← (byte/signed byte/word/signed word/dword/signed dword) 3
(byte) DTV_BLIT_SHIFT4 ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) DTV_BLIT_SHIFT5 ← (byte/signed byte/word/signed word/dword/signed dword) 5
(byte) DTV_BLIT_SHIFT6 ← (byte/signed byte/word/signed word/dword/signed dword) 6
(byte) DTV_BLIT_SHIFT7 ← (byte/signed byte/word/signed word/dword/signed dword) 7
(byte) DTV_BLIT_AND ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) DTV_BLIT_NAND ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte) DTV_BLIT_NOR ← (byte/signed byte/word/signed word/dword/signed dword) 16
(byte) DTV_BLIT_OR ← (byte/signed byte/word/signed word/dword/signed dword) 24
(byte) DTV_BLIT_XOR ← (byte/signed byte/word/signed word/dword/signed dword) 32
(byte) DTV_BLIT_XNOR ← (byte/signed byte/word/signed word/dword/signed dword) 40
(byte) DTV_BLIT_ADD ← (byte/signed byte/word/signed word/dword/signed dword) 48
(byte) DTV_BLIT_SUB ← (byte/signed byte/word/signed word/dword/signed dword) 56
(byte*) DTV_BLITTER_CONTROL2 ← (word/dword/signed dword) 54079
(byte) DTV_BLIT_CLEAR_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) DTV_BLIT_SRCA_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) DTV_BLIT_SRCB_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) DTV_BLIT_DEST_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte) DTV_BLIT_STATUS_BUSY ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) DTV_BLIT_STATUS_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte*) print_screen ← (word/signed word/dword/signed dword) 1024
(byte*) print_line_cursor ← (byte*) print_screen
(byte*) print_char_cursor ← (byte*) print_line_cursor
@ -3591,6 +3761,70 @@ SYMBOLS
(byte*) D018
(byte) DARK_GREY
(byte) DTV_BADLINE_OFF
(byte*) DTV_BLITTER_ALU
(byte*) DTV_BLITTER_CONTROL
(byte*) DTV_BLITTER_CONTROL2
(byte*) DTV_BLITTER_DEST_HI
(byte*) DTV_BLITTER_DEST_LIN_HI
(byte*) DTV_BLITTER_DEST_LIN_LO
(byte*) DTV_BLITTER_DEST_LO
(byte*) DTV_BLITTER_DEST_MI
(byte*) DTV_BLITTER_DEST_MOD_HI
(byte*) DTV_BLITTER_DEST_MOD_LO
(byte*) DTV_BLITTER_DEST_STEP
(byte*) DTV_BLITTER_LEN_HI
(byte*) DTV_BLITTER_LEN_LO
(byte*) DTV_BLITTER_SRCA_HI
(byte*) DTV_BLITTER_SRCA_LIN_HI
(byte*) DTV_BLITTER_SRCA_LIN_LO
(byte*) DTV_BLITTER_SRCA_LO
(byte*) DTV_BLITTER_SRCA_MI
(byte*) DTV_BLITTER_SRCA_MOD_HI
(byte*) DTV_BLITTER_SRCA_MOD_LO
(byte*) DTV_BLITTER_SRCA_STEP
(byte*) DTV_BLITTER_SRCB_HI
(byte*) DTV_BLITTER_SRCB_LIN_HI
(byte*) DTV_BLITTER_SRCB_LIN_LO
(byte*) DTV_BLITTER_SRCB_LO
(byte*) DTV_BLITTER_SRCB_MI
(byte*) DTV_BLITTER_SRCB_MOD_HI
(byte*) DTV_BLITTER_SRCB_MOD_LO
(byte*) DTV_BLITTER_SRCB_STEP
(byte*) DTV_BLITTER_TRANSPARANCY
(byte) DTV_BLIT_ADD
(byte) DTV_BLIT_AND
(byte) DTV_BLIT_CIA_IRQ
(byte) DTV_BLIT_CLEAR_IRQ
(byte) DTV_BLIT_DEST_CONT
(byte) DTV_BLIT_DEST_FWD
(byte) DTV_BLIT_DISABLE_B
(byte) DTV_BLIT_FORCE_START
(byte) DTV_BLIT_IRQ_EN
(byte) DTV_BLIT_NAND
(byte) DTV_BLIT_NOR
(byte) DTV_BLIT_OR
(byte) DTV_BLIT_SHIFT0
(byte) DTV_BLIT_SHIFT1
(byte) DTV_BLIT_SHIFT2
(byte) DTV_BLIT_SHIFT3
(byte) DTV_BLIT_SHIFT4
(byte) DTV_BLIT_SHIFT5
(byte) DTV_BLIT_SHIFT6
(byte) DTV_BLIT_SHIFT7
(byte) DTV_BLIT_SRCA_CONT
(byte) DTV_BLIT_SRCA_FWD
(byte) DTV_BLIT_SRCB_CONT
(byte) DTV_BLIT_SRCB_FWD
(byte) DTV_BLIT_STATUS_BUSY
(byte) DTV_BLIT_STATUS_IRQ
(byte) DTV_BLIT_SUB
(byte) DTV_BLIT_TRANSPARANCY_NONE
(byte) DTV_BLIT_VBLANK
(byte) DTV_BLIT_VIC_IRQ
(byte) DTV_BLIT_WRITE_NONTRANSPARENT
(byte) DTV_BLIT_WRITE_TRANSPARENT
(byte) DTV_BLIT_XNOR
(byte) DTV_BLIT_XOR
(byte) DTV_BORDER_OFF
(byte) DTV_CHUNKY
(byte) DTV_COLORRAM_OFF
@ -4904,6 +5138,36 @@ Promoting word/dword/signed dword to byte* in DTV_COLOR_BANK_HI ← ((byte*)) 53
Promoting word/dword/signed dword to byte* in DTV_GRAPHICS_VIC_BANK ← ((byte*)) 53309
Promoting word/dword/signed dword to byte* in DTV_GRAPHICS_HICOL_BANK ← ((byte*)) 53310
Promoting byte/word/signed word/dword/signed dword to byte* in dtvSetCpuBankSegment1::cpuBank ← ((byte*)) 255
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCA_LO ← ((byte*)) 54048
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCA_MI ← ((byte*)) 54049
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCA_HI ← ((byte*)) 54050
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCA_MOD_LO ← ((byte*)) 54051
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCA_MOD_HI ← ((byte*)) 54052
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCA_LIN_LO ← ((byte*)) 54053
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCA_LIN_HI ← ((byte*)) 54054
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCA_STEP ← ((byte*)) 54055
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCB_LO ← ((byte*)) 54056
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCB_MI ← ((byte*)) 54057
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCB_HI ← ((byte*)) 54058
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCB_MOD_LO ← ((byte*)) 54059
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCB_MOD_HI ← ((byte*)) 54060
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCB_LIN_LO ← ((byte*)) 54061
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCB_LIN_HI ← ((byte*)) 54062
Promoting word/dword/signed dword to byte* in DTV_BLITTER_SRCB_STEP ← ((byte*)) 54063
Promoting word/dword/signed dword to byte* in DTV_BLITTER_DEST_LO ← ((byte*)) 54064
Promoting word/dword/signed dword to byte* in DTV_BLITTER_DEST_MI ← ((byte*)) 54065
Promoting word/dword/signed dword to byte* in DTV_BLITTER_DEST_HI ← ((byte*)) 54066
Promoting word/dword/signed dword to byte* in DTV_BLITTER_DEST_MOD_LO ← ((byte*)) 54067
Promoting word/dword/signed dword to byte* in DTV_BLITTER_DEST_MOD_HI ← ((byte*)) 54068
Promoting word/dword/signed dword to byte* in DTV_BLITTER_DEST_LIN_LO ← ((byte*)) 54069
Promoting word/dword/signed dword to byte* in DTV_BLITTER_DEST_LIN_HI ← ((byte*)) 54070
Promoting word/dword/signed dword to byte* in DTV_BLITTER_DEST_STEP ← ((byte*)) 54071
Promoting word/dword/signed dword to byte* in DTV_BLITTER_LEN_LO ← ((byte*)) 54072
Promoting word/dword/signed dword to byte* in DTV_BLITTER_LEN_HI ← ((byte*)) 54073
Promoting word/dword/signed dword to byte* in DTV_BLITTER_CONTROL ← ((byte*)) 54074
Promoting word/dword/signed dword to byte* in DTV_BLITTER_TRANSPARANCY ← ((byte*)) 54075
Promoting word/dword/signed dword to byte* in DTV_BLITTER_ALU ← ((byte*)) 54078
Promoting word/dword/signed dword to byte* in DTV_BLITTER_CONTROL2 ← ((byte*)) 54079
Promoting word/signed word/dword/signed dword to byte* in print_screen ← ((byte*)) 1024
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
@ -5051,6 +5315,70 @@ dtvSetCpuBankSegment1::@return: scope:[dtvSetCpuBankSegment1] from dtvSetCpuBan
return
to:@return
@1: scope:[] from @begin
(byte*) DTV_BLITTER_SRCA_LO ← ((byte*)) (word/dword/signed dword) 54048
(byte*) DTV_BLITTER_SRCA_MI ← ((byte*)) (word/dword/signed dword) 54049
(byte*) DTV_BLITTER_SRCA_HI ← ((byte*)) (word/dword/signed dword) 54050
(byte*) DTV_BLITTER_SRCA_MOD_LO ← ((byte*)) (word/dword/signed dword) 54051
(byte*) DTV_BLITTER_SRCA_MOD_HI ← ((byte*)) (word/dword/signed dword) 54052
(byte*) DTV_BLITTER_SRCA_LIN_LO ← ((byte*)) (word/dword/signed dword) 54053
(byte*) DTV_BLITTER_SRCA_LIN_HI ← ((byte*)) (word/dword/signed dword) 54054
(byte*) DTV_BLITTER_SRCA_STEP ← ((byte*)) (word/dword/signed dword) 54055
(byte*) DTV_BLITTER_SRCB_LO ← ((byte*)) (word/dword/signed dword) 54056
(byte*) DTV_BLITTER_SRCB_MI ← ((byte*)) (word/dword/signed dword) 54057
(byte*) DTV_BLITTER_SRCB_HI ← ((byte*)) (word/dword/signed dword) 54058
(byte*) DTV_BLITTER_SRCB_MOD_LO ← ((byte*)) (word/dword/signed dword) 54059
(byte*) DTV_BLITTER_SRCB_MOD_HI ← ((byte*)) (word/dword/signed dword) 54060
(byte*) DTV_BLITTER_SRCB_LIN_LO ← ((byte*)) (word/dword/signed dword) 54061
(byte*) DTV_BLITTER_SRCB_LIN_HI ← ((byte*)) (word/dword/signed dword) 54062
(byte*) DTV_BLITTER_SRCB_STEP ← ((byte*)) (word/dword/signed dword) 54063
(byte*) DTV_BLITTER_DEST_LO ← ((byte*)) (word/dword/signed dword) 54064
(byte*) DTV_BLITTER_DEST_MI ← ((byte*)) (word/dword/signed dword) 54065
(byte*) DTV_BLITTER_DEST_HI ← ((byte*)) (word/dword/signed dword) 54066
(byte*) DTV_BLITTER_DEST_MOD_LO ← ((byte*)) (word/dword/signed dword) 54067
(byte*) DTV_BLITTER_DEST_MOD_HI ← ((byte*)) (word/dword/signed dword) 54068
(byte*) DTV_BLITTER_DEST_LIN_LO ← ((byte*)) (word/dword/signed dword) 54069
(byte*) DTV_BLITTER_DEST_LIN_HI ← ((byte*)) (word/dword/signed dword) 54070
(byte*) DTV_BLITTER_DEST_STEP ← ((byte*)) (word/dword/signed dword) 54071
(byte*) DTV_BLITTER_LEN_LO ← ((byte*)) (word/dword/signed dword) 54072
(byte*) DTV_BLITTER_LEN_HI ← ((byte*)) (word/dword/signed dword) 54073
(byte*) DTV_BLITTER_CONTROL ← ((byte*)) (word/dword/signed dword) 54074
(byte) DTV_BLIT_FORCE_START ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) DTV_BLIT_SRCA_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) DTV_BLIT_SRCB_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) DTV_BLIT_DEST_FWD ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte) DTV_BLIT_VIC_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 16
(byte) DTV_BLIT_CIA_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 32
(byte) DTV_BLIT_VBLANK ← (byte/signed byte/word/signed word/dword/signed dword) 64
(byte) DTV_BLIT_IRQ_EN ← (byte/word/signed word/dword/signed dword) 128
(byte*) DTV_BLITTER_TRANSPARANCY ← ((byte*)) (word/dword/signed dword) 54075
(byte) DTV_BLIT_DISABLE_B ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) DTV_BLIT_WRITE_TRANSPARENT ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) DTV_BLIT_WRITE_NONTRANSPARENT ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) DTV_BLIT_TRANSPARANCY_NONE ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte*) DTV_BLITTER_ALU ← ((byte*)) (word/dword/signed dword) 54078
(byte) DTV_BLIT_SHIFT0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) DTV_BLIT_SHIFT1 ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) DTV_BLIT_SHIFT2 ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) DTV_BLIT_SHIFT3 ← (byte/signed byte/word/signed word/dword/signed dword) 3
(byte) DTV_BLIT_SHIFT4 ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) DTV_BLIT_SHIFT5 ← (byte/signed byte/word/signed word/dword/signed dword) 5
(byte) DTV_BLIT_SHIFT6 ← (byte/signed byte/word/signed word/dword/signed dword) 6
(byte) DTV_BLIT_SHIFT7 ← (byte/signed byte/word/signed word/dword/signed dword) 7
(byte) DTV_BLIT_AND ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) DTV_BLIT_NAND ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte) DTV_BLIT_NOR ← (byte/signed byte/word/signed word/dword/signed dword) 16
(byte) DTV_BLIT_OR ← (byte/signed byte/word/signed word/dword/signed dword) 24
(byte) DTV_BLIT_XOR ← (byte/signed byte/word/signed word/dword/signed dword) 32
(byte) DTV_BLIT_XNOR ← (byte/signed byte/word/signed word/dword/signed dword) 40
(byte) DTV_BLIT_ADD ← (byte/signed byte/word/signed word/dword/signed dword) 48
(byte) DTV_BLIT_SUB ← (byte/signed byte/word/signed word/dword/signed dword) 56
(byte*) DTV_BLITTER_CONTROL2 ← ((byte*)) (word/dword/signed dword) 54079
(byte) DTV_BLIT_CLEAR_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) DTV_BLIT_SRCA_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) DTV_BLIT_SRCB_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 4
(byte) DTV_BLIT_DEST_CONT ← (byte/signed byte/word/signed word/dword/signed dword) 8
(byte) DTV_BLIT_STATUS_BUSY ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) DTV_BLIT_STATUS_IRQ ← (byte/signed byte/word/signed word/dword/signed dword) 2
(byte*) print_screen ← ((byte*)) (word/signed word/dword/signed dword) 1024
(byte*) print_line_cursor ← (byte*) print_screen
(byte*) print_char_cursor ← (byte*) print_line_cursor
@ -7511,30 +7839,94 @@ Eliminating unused variable (byte) DTV_FEATURE_DISABLE_TIL_RESET and assignment
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 - keeping the call (void~) print_str_lines::$4
Eliminating unused variable (byte[]) print_hextab and assignment [122] (byte[]) print_hextab ← (string) "0123456789abcdef"
Eliminating unused variable (byte) KEY_DEL and assignment [136] (byte) KEY_DEL ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) KEY_RETURN and assignment [137] (byte) KEY_RETURN ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) KEY_CRSR_RIGHT and assignment [138] (byte) KEY_CRSR_RIGHT ← (byte/signed byte/word/signed word/dword/signed dword) 2
Eliminating unused variable (byte) KEY_F7 and assignment [139] (byte) KEY_F7 ← (byte/signed byte/word/signed word/dword/signed dword) 3
Eliminating unused variable (byte) KEY_F1 and assignment [140] (byte) KEY_F1 ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) KEY_F3 and assignment [141] (byte) KEY_F3 ← (byte/signed byte/word/signed word/dword/signed dword) 5
Eliminating unused variable (byte) KEY_F5 and assignment [142] (byte) KEY_F5 ← (byte/signed byte/word/signed word/dword/signed dword) 6
Eliminating unused variable (byte) KEY_CRSR_DOWN and assignment [143] (byte) KEY_CRSR_DOWN ← (byte/signed byte/word/signed word/dword/signed dword) 7
Eliminating unused variable (byte) KEY_LSHIFT and assignment [151] (byte) KEY_LSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 15
Eliminating unused variable (byte) KEY_HOME and assignment [187] (byte) KEY_HOME ← (byte/signed byte/word/signed word/dword/signed dword) 51
Eliminating unused variable (byte) KEY_RSHIFT and assignment [188] (byte) KEY_RSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 52
Eliminating unused variable (byte) KEY_CTRL and assignment [194] (byte) KEY_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 58
Eliminating unused variable (byte) KEY_COMMODORE and assignment [197] (byte) KEY_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 61
Eliminating unused variable (byte) KEY_RUNSTOP and assignment [199] (byte) KEY_RUNSTOP ← (byte/signed byte/word/signed word/dword/signed dword) 63
Eliminating unused variable (byte[]) keyboard_char_keycodes and assignment [200] (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 [218] (byte[8]) keyboard_events ← { fill( 8, 0) }
Eliminating unused variable (byte) keyboard_events_size and assignment [219] (byte) keyboard_events_size ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) keyboard_modifiers and assignment [220] (byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0
Eliminating unused variable (byte) KEY_MODIFIER_CTRL and assignment [223] (byte) KEY_MODIFIER_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 4
Eliminating unused variable (byte) KEY_MODIFIER_COMMODORE and assignment [224] (byte) KEY_MODIFIER_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 8
Eliminating unused variable (byte) KEY_MODIFIER_SHIFT and assignment [226] (byte) KEY_MODIFIER_SHIFT ← (byte~) $0
Eliminating unused variable (byte[8]) keyboard_scan_values and assignment [227] (byte[8]) keyboard_scan_values ← { fill( 8, 0) }
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 - keeping the call (void~) bitmap_line::$9
Eliminating unused variable - keeping the call (void~) bitmap_line::$8
Eliminating unused variable - keeping the call (void~) bitmap_line::$14