mirror of
https://gitlab.com/camelot/kickc.git
synced 2025-04-13 03:39:12 +00:00
Succesfully deprecated lo/hi operators. Closes #667
This commit is contained in:
parent
6e32444f9f
commit
0d2b08ef3b
src
main
fragment
cache
fragment-cache-csg65ce02.asmfragment-cache-mega45gs02.asmfragment-cache-mos6502.asmfragment-cache-mos6502x.asmfragment-cache-rom6502x.asmfragment-cache-wdc65c02.asm
mos6502-common
_deref_pbuz1=_deref_pbuz1_bor_vbuaa.asmpvom1=pvom2_plus__byte1_vwum3.asmpvom1=pvom2_setbyte0_vbuaa.asmvbuaa=vbuaa_bor__byte0_pvom1.asmvbuaa=vbuaa_bor__byte1_vwsm1.asmvbuaa=vbuaa_bor__byte1_vwum1.asmvbuaa=vbuaa_plus__byte1_vwsm1.asmvbuaa=vbuaa_plus__byte1_vwum1.asmvwum1=vbuaa_word__byte0_vwsm2.asmvwum1=vwuc1_plus__word1_vdsm2.asmvwum1=vwuc1_plus__word1_vdum2.asmvwum1=vwum1_plus__word1_vdum2.asmvwum1=vwum1_setbyte0_vbuxx.asmvwum1=vwum1_setbyte0_vbuyy.asmvwum1=vwum1_setbyte1_vbuaa.asmvwum1=vwum1_setbyte1_vbuxx.asmvwum1=vwum1_setbyte1_vbuyy.asmvwum1=vwum1_setbyte2_vbuaa.asmvwum1=vwum1_setbyte2_vbuxx.asmvwum1=vwum1_setbyte2_vbuyy.asmvwum1=vwum1_setbyte3_vbuaa.asmvwum1=vwum1_setbyte3_vbuxx.asmvwum1=vwum1_setbyte3_vbuyy.asmvwum1=vwum2_minus__word1_vdum3.asmvwum1=vwum2_plus__byte0_pbum3.asmvwum1=vwum2_plus__word1_vdum3.asmvwum1=vwum2_plus__word1_vwum2.asm
java/dk/camelot64/kickc
asm
model/operators
OperatorGetByte0.javaOperatorGetByte1.javaOperatorGetByte2.javaOperatorGetByte3.javaOperatorGetHigh.javaOperatorGetLow.javaOperatorGetWord0.javaOperatorGetWord1.java
passes
kc/lib
test
java/dk/camelot64/kickc/test
kc
adventofcode
bitmap-plot-1.cbitmap-plot-2.cc64dtv-gfxexplorer.cc64dtv-gfxmodes.ccomplex
borderline_pacman
new_30_years_low_resolution
examples
c64
cx16
ref
2174
src/main/fragment/cache/fragment-cache-csg65ce02.asm
vendored
2174
src/main/fragment/cache/fragment-cache-csg65ce02.asm
vendored
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,4 @@
|
||||
//KICKC FRAGMENT CACHE ee20482c1 ee204a320
|
||||
//KICKC FRAGMENT CACHE f6e6ad7e1 f6e6af848
|
||||
//FRAGMENT _deref_pbuc1=vbuc2
|
||||
lda #{c2}
|
||||
sta {c1}
|
||||
@ -23,11 +23,8 @@ bcc {la1}
|
||||
//FRAGMENT _deref_pbuc1=_deref_pbuc2
|
||||
lda {c2}
|
||||
sta {c1}
|
||||
//FRAGMENT vbuz1=_lo_pbuz2
|
||||
lda {z2}
|
||||
sta {z1}
|
||||
//FRAGMENT _deref_pbuz1=vbuz2
|
||||
lda {z2}
|
||||
//FRAGMENT _deref_pbuz1=_byte_pbuz1
|
||||
lda {z1}
|
||||
ldy #0
|
||||
sta ({z1}),y
|
||||
//FRAGMENT pbuz1=_inc_pbuz1
|
||||
@ -36,29 +33,6 @@ inw {z1}
|
||||
lda #{c1}
|
||||
ldy #0
|
||||
sta ({z1}),y
|
||||
//FRAGMENT vbuaa=_lo_pbuz1
|
||||
lda {z1}
|
||||
//FRAGMENT vbuxx=_lo_pbuz1
|
||||
ldx {z1}
|
||||
//FRAGMENT _deref_pbuz1=vbuaa
|
||||
ldy #0
|
||||
sta ({z1}),y
|
||||
//FRAGMENT _deref_pbuz1=vbuxx
|
||||
txa
|
||||
ldy #0
|
||||
sta ({z1}),y
|
||||
//FRAGMENT _deref_pbuz1=vbuyy
|
||||
tya
|
||||
ldy #0
|
||||
sta ({z1}),y
|
||||
//FRAGMENT _deref_pbuz1=vbuzz
|
||||
tza
|
||||
ldy #0
|
||||
sta ({z1}),y
|
||||
//FRAGMENT vbuyy=_lo_pbuz1
|
||||
ldy {z1}
|
||||
//FRAGMENT vbuzz=_lo_pbuz1
|
||||
ldz {z1}
|
||||
//FRAGMENT vbuz1=vbuc1
|
||||
lda #{c1}
|
||||
sta {z1}
|
||||
@ -1187,6 +1161,79 @@ inc
|
||||
stx {c1}
|
||||
//FRAGMENT _deref_pbuc1=vbuzz
|
||||
stz {c1}
|
||||
//FRAGMENT 0_neq_pbuc1_derefidx_vbuz1_then_la1
|
||||
ldy {z1}
|
||||
lda {c1},y
|
||||
cmp #0
|
||||
bne {la1}
|
||||
//FRAGMENT pbuc1_derefidx_vbuz1=vbuz1
|
||||
ldy {z1}
|
||||
tya
|
||||
sta {c1},y
|
||||
//FRAGMENT 0_neq_pbuc1_derefidx_vbuaa_then_la1
|
||||
tay
|
||||
lda {c1},y
|
||||
cmp #0
|
||||
bne {la1}
|
||||
//FRAGMENT 0_neq_pbuc1_derefidx_vbuxx_then_la1
|
||||
lda {c1},x
|
||||
cmp #0
|
||||
bne {la1}
|
||||
//FRAGMENT 0_neq_pbuc1_derefidx_vbuyy_then_la1
|
||||
lda {c1},y
|
||||
cmp #0
|
||||
bne {la1}
|
||||
//FRAGMENT 0_neq_pbuc1_derefidx_vbuzz_then_la1
|
||||
tza
|
||||
tay
|
||||
lda {c1},y
|
||||
cmp #0
|
||||
bne {la1}
|
||||
//FRAGMENT pbuc1_derefidx_vbuxx=vbuxx
|
||||
txa
|
||||
sta {c1},x
|
||||
//FRAGMENT pbuc1_derefidx_vbuyy=vbuyy
|
||||
tya
|
||||
sta {c1},y
|
||||
//FRAGMENT pbuc1_derefidx_vbuzz=vbuzz
|
||||
tza
|
||||
tax
|
||||
sta {c1},x
|
||||
//FRAGMENT vduz1=vduc1
|
||||
lda #<{c1}
|
||||
sta {z1}
|
||||
lda #>{c1}
|
||||
sta {z1}+1
|
||||
lda #<{c1}>>$10
|
||||
sta {z1}+2
|
||||
lda #>{c1}>>$10
|
||||
sta {z1}+3
|
||||
//FRAGMENT _deref_pduc1=vduz1
|
||||
ldq {z1}
|
||||
stq {c1}
|
||||
//FRAGMENT vduz1=vduz1_plus_vduz2
|
||||
clc
|
||||
ldq {z1}
|
||||
adcq {z2}
|
||||
stq {z1}
|
||||
//FRAGMENT vduz1=vduz1_plus_vbuz2
|
||||
lda {z2}
|
||||
clc
|
||||
adc {z1}
|
||||
sta {z1}
|
||||
lda {z1}+1
|
||||
adc #0
|
||||
sta {z1}+1
|
||||
lda {z1}+2
|
||||
adc #0
|
||||
sta {z1}+2
|
||||
lda {z1}+3
|
||||
adc #0
|
||||
sta {z1}+3
|
||||
//FRAGMENT vduz1=vwuc1
|
||||
NO_SYNTHESIS
|
||||
//FRAGMENT vduz1=vwsc1
|
||||
NO_SYNTHESIS
|
||||
//FRAGMENT vbuz1=_deref_pbuc1_plus_1
|
||||
lda {c1}
|
||||
inc
|
||||
@ -1299,6 +1346,10 @@ sta {z1}
|
||||
lda #0
|
||||
adc {z2}+1
|
||||
sta {z1}+1
|
||||
//FRAGMENT _deref_pbuz1=vbuz2
|
||||
lda {z2}
|
||||
ldy #0
|
||||
sta ({z1}),y
|
||||
//FRAGMENT vbuaa=_deref_pbuc1_plus_1
|
||||
lda {c1}
|
||||
inc
|
||||
@ -1342,6 +1393,18 @@ sta ({z1}),z
|
||||
tza
|
||||
ldz {z2}
|
||||
sta ({z1}),z
|
||||
//FRAGMENT _deref_pbuz1=vbuxx
|
||||
txa
|
||||
ldy #0
|
||||
sta ({z1}),y
|
||||
//FRAGMENT _deref_pbuz1=vbuyy
|
||||
tya
|
||||
ldy #0
|
||||
sta ({z1}),y
|
||||
//FRAGMENT _deref_pbuz1=vbuzz
|
||||
tza
|
||||
ldy #0
|
||||
sta ({z1}),y
|
||||
//FRAGMENT 0_neq_vbuxx_then_la1
|
||||
cpx #0
|
||||
bne {la1}
|
||||
@ -1639,10 +1702,10 @@ dec {c1}
|
||||
//FRAGMENT pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuz1
|
||||
ldx {z1}
|
||||
inc {c1},x
|
||||
//FRAGMENT vbuz1=_lo_vwuz2
|
||||
//FRAGMENT vbuz1=_byte0_vwuz2
|
||||
lda {z2}
|
||||
sta {z1}
|
||||
//FRAGMENT vbuz1=_hi_vwuz2
|
||||
//FRAGMENT vbuz1=_byte1_vwuz2
|
||||
lda {z2}+1
|
||||
sta {z1}
|
||||
//FRAGMENT vbuz1=vbuz2_bor_vbuz3
|
||||
@ -1657,13 +1720,13 @@ tax
|
||||
inc {c1},x
|
||||
//FRAGMENT pbuc1_derefidx_vbuxx=_inc_pbuc1_derefidx_vbuxx
|
||||
inc {c1},x
|
||||
//FRAGMENT vbuaa=_lo_vwuz1
|
||||
//FRAGMENT vbuaa=_byte0_vwuz1
|
||||
lda {z1}
|
||||
//FRAGMENT vbuxx=_lo_vwuz1
|
||||
//FRAGMENT vbuxx=_byte0_vwuz1
|
||||
ldx {z1}
|
||||
//FRAGMENT vbuaa=_hi_vwuz1
|
||||
//FRAGMENT vbuaa=_byte1_vwuz1
|
||||
lda {z1}+1
|
||||
//FRAGMENT vbuxx=_hi_vwuz1
|
||||
//FRAGMENT vbuxx=_byte1_vwuz1
|
||||
ldx {z1}+1
|
||||
//FRAGMENT vbuz1=vbuxx_bor_vbuz2
|
||||
txa
|
||||
@ -1700,14 +1763,16 @@ ora {z2}
|
||||
sta {z1}
|
||||
//FRAGMENT vbuz1=vbuxx_bor_vbuxx
|
||||
stx {z1}
|
||||
//FRAGMENT vbuyy=_lo_vwuz1
|
||||
//FRAGMENT vbuyy=_byte0_vwuz1
|
||||
ldy {z1}
|
||||
//FRAGMENT vbuzz=_lo_vwuz1
|
||||
ldz {z1}
|
||||
//FRAGMENT vbuyy=_hi_vwuz1
|
||||
//FRAGMENT vbuzz=_byte0_vwuz1
|
||||
lda {z1}
|
||||
taz
|
||||
//FRAGMENT vbuyy=_byte1_vwuz1
|
||||
ldy {z1}+1
|
||||
//FRAGMENT vbuzz=_hi_vwuz1
|
||||
ldz {z1}+1
|
||||
//FRAGMENT vbuzz=_byte1_vwuz1
|
||||
lda {z1}+1
|
||||
taz
|
||||
//FRAGMENT vbuz1=vbuz2_bor_vbuyy
|
||||
tya
|
||||
ora {z2}
|
||||
@ -1755,15 +1820,6 @@ tay
|
||||
tza
|
||||
sty $ff
|
||||
ora $ff
|
||||
//FRAGMENT vduz1=vduc1
|
||||
lda #<{c1}
|
||||
sta {z1}
|
||||
lda #>{c1}
|
||||
sta {z1}+1
|
||||
lda #<{c1}>>$10
|
||||
sta {z1}+2
|
||||
lda #>{c1}>>$10
|
||||
sta {z1}+3
|
||||
//FRAGMENT vduz1=vbuc1
|
||||
lda #{c1}
|
||||
sta {z1}
|
||||
@ -1833,14 +1889,15 @@ lsr {z1}+3
|
||||
ror {z1}+2
|
||||
ror {z1}+1
|
||||
ror {z1}
|
||||
//FRAGMENT vbuz1=_hi__word_vduz2
|
||||
//FRAGMENT vbuz1=_byte1__word_vduz2
|
||||
lda {z2}+1
|
||||
sta {z1}
|
||||
//FRAGMENT vwuz1=_lo_vduz2
|
||||
//FRAGMENT vbuz1=_byte0_vduz2
|
||||
lda {z2}
|
||||
sta {z1}
|
||||
//FRAGMENT vbuz1=_byte1_vduz2
|
||||
lda {z2}+1
|
||||
sta {z1}+1
|
||||
sta {z1}
|
||||
//FRAGMENT vbuz1=vbuc1_plus_vbuaa
|
||||
clc
|
||||
adc #{c1}
|
||||
@ -2394,132 +2451,92 @@ dey
|
||||
bne !-
|
||||
!e:
|
||||
taz
|
||||
//FRAGMENT vbuaa=_hi__word_vduz1
|
||||
//FRAGMENT vbuaa=_byte1__word_vduz1
|
||||
lda {z1}+1
|
||||
//FRAGMENT vbuxx=_hi__word_vduz1
|
||||
//FRAGMENT vbuxx=_byte1__word_vduz1
|
||||
lda {z1}+1
|
||||
tax
|
||||
//FRAGMENT vbuyy=_byte1__word_vduz1
|
||||
lda {z1}+1
|
||||
tay
|
||||
//FRAGMENT vbuzz=_byte1__word_vduz1
|
||||
lda {z1}+1
|
||||
taz
|
||||
//FRAGMENT vbuaa=_byte0_vduz1
|
||||
lda {z1}
|
||||
//FRAGMENT vbuxx=_byte0_vduz1
|
||||
ldx {z1}
|
||||
//FRAGMENT vbuaa=_byte1_vduz1
|
||||
lda {z1}+1
|
||||
//FRAGMENT vbuxx=_byte1_vduz1
|
||||
ldx {z1}+1
|
||||
//FRAGMENT vbuaa=vbuz1_bor_vbuz2
|
||||
lda {z1}
|
||||
ora {z2}
|
||||
//FRAGMENT vbuaa=vbuz1_bor_vbuxx
|
||||
txa
|
||||
ora {z1}
|
||||
//FRAGMENT vbuaa=vbuz1_bor_vbuyy
|
||||
tya
|
||||
ora {z1}
|
||||
//FRAGMENT vbuaa=vbuz1_bor_vbuzz
|
||||
tza
|
||||
ora {z1}
|
||||
//FRAGMENT vbuxx=vbuz1_bor_vbuz2
|
||||
lda {z1}
|
||||
ora {z2}
|
||||
tax
|
||||
//FRAGMENT vbuxx=vbuz1_bor_vbuxx
|
||||
txa
|
||||
ora {z1}
|
||||
tax
|
||||
//FRAGMENT vbuxx=vbuz1_bor_vbuyy
|
||||
tya
|
||||
ora {z1}
|
||||
tax
|
||||
//FRAGMENT vbuxx=vbuz1_bor_vbuzz
|
||||
tza
|
||||
ora {z1}
|
||||
tax
|
||||
//FRAGMENT vbuyy=vbuz1_bor_vbuz2
|
||||
lda {z1}
|
||||
ora {z2}
|
||||
tay
|
||||
//FRAGMENT vbuzz=vbuz1_bor_vbuz2
|
||||
lda {z1}
|
||||
ora {z2}
|
||||
taz
|
||||
//FRAGMENT vbuaa=vbuxx_bor_vbuz1
|
||||
txa
|
||||
ora {z1}
|
||||
//FRAGMENT vbuxx=vbuxx_bor_vbuz1
|
||||
txa
|
||||
ora {z1}
|
||||
tax
|
||||
//FRAGMENT vbuyy=vbuxx_bor_vbuz1
|
||||
txa
|
||||
ora {z1}
|
||||
tay
|
||||
//FRAGMENT vbuzz=vbuxx_bor_vbuz1
|
||||
txa
|
||||
ora {z1}
|
||||
taz
|
||||
//FRAGMENT vbuaa=vbuyy_bor_vbuz1
|
||||
tya
|
||||
ora {z1}
|
||||
//FRAGMENT vbuxx=vbuyy_bor_vbuz1
|
||||
tya
|
||||
ora {z1}
|
||||
tax
|
||||
//FRAGMENT vbuyy=vbuyy_bor_vbuz1
|
||||
tya
|
||||
ora {z1}
|
||||
tay
|
||||
//FRAGMENT vbuzz=vbuyy_bor_vbuz1
|
||||
tya
|
||||
ora {z1}
|
||||
taz
|
||||
//FRAGMENT vbuaa=vbuzz_bor_vbuz1
|
||||
tza
|
||||
ora {z1}
|
||||
//FRAGMENT vbuxx=vbuzz_bor_vbuz1
|
||||
tza
|
||||
ora {z1}
|
||||
tax
|
||||
//FRAGMENT vbuyy=vbuzz_bor_vbuz1
|
||||
tza
|
||||
ora {z1}
|
||||
tay
|
||||
//FRAGMENT vbuzz=vbuzz_bor_vbuz1
|
||||
tza
|
||||
ora {z1}
|
||||
taz
|
||||
//FRAGMENT vbuxx=vbuxx_bor_vbuaa
|
||||
stx $ff
|
||||
ora $ff
|
||||
tax
|
||||
//FRAGMENT vbuyy=vbuxx_bor_vbuaa
|
||||
stx $ff
|
||||
ora $ff
|
||||
tay
|
||||
//FRAGMENT vbuzz=vbuxx_bor_vbuaa
|
||||
stx $ff
|
||||
ora $ff
|
||||
taz
|
||||
//FRAGMENT vbuxx=vbuyy_bor_vbuaa
|
||||
sty $ff
|
||||
ora $ff
|
||||
tax
|
||||
//FRAGMENT vbuyy=vbuyy_bor_vbuaa
|
||||
sty $ff
|
||||
ora $ff
|
||||
tay
|
||||
//FRAGMENT vbuzz=vbuyy_bor_vbuaa
|
||||
sty $ff
|
||||
ora $ff
|
||||
taz
|
||||
//FRAGMENT vbuxx=vbuzz_bor_vbuaa
|
||||
tax
|
||||
tza
|
||||
stx $ff
|
||||
ora $ff
|
||||
tax
|
||||
//FRAGMENT vbuyy=vbuzz_bor_vbuaa
|
||||
tay
|
||||
tza
|
||||
sty $ff
|
||||
ora $ff
|
||||
tay
|
||||
//FRAGMENT vbuzz=vbuzz_bor_vbuaa
|
||||
tay
|
||||
tza
|
||||
sty $ff
|
||||
ora $ff
|
||||
taz
|
||||
//FRAGMENT vbuaa=vbuz1_bor_vbuxx
|
||||
txa
|
||||
ora {z1}
|
||||
//FRAGMENT vbuxx=vbuz1_bor_vbuxx
|
||||
txa
|
||||
ora {z1}
|
||||
tax
|
||||
//FRAGMENT vbuyy=vbuz1_bor_vbuxx
|
||||
txa
|
||||
ora {z1}
|
||||
tay
|
||||
//FRAGMENT vbuyy=vbuz1_bor_vbuyy
|
||||
tya
|
||||
ora {z1}
|
||||
tay
|
||||
//FRAGMENT vbuyy=vbuz1_bor_vbuzz
|
||||
tza
|
||||
ora {z1}
|
||||
tay
|
||||
//FRAGMENT vbuzz=vbuz1_bor_vbuz2
|
||||
lda {z1}
|
||||
ora {z2}
|
||||
taz
|
||||
//FRAGMENT vbuzz=vbuz1_bor_vbuxx
|
||||
txa
|
||||
ora {z1}
|
||||
taz
|
||||
//FRAGMENT vbuyy=_hi__word_vduz1
|
||||
ldy {z1}+1
|
||||
//FRAGMENT vbuzz=_hi__word_vduz1
|
||||
lda {z1}+1
|
||||
//FRAGMENT vbuzz=vbuz1_bor_vbuyy
|
||||
tya
|
||||
ora {z1}
|
||||
taz
|
||||
//FRAGMENT vbuzz=vbuz1_bor_vbuzz
|
||||
tza
|
||||
ora {z1}
|
||||
taz
|
||||
//FRAGMENT vbuyy=_byte0_vduz1
|
||||
ldy {z1}
|
||||
//FRAGMENT vbuzz=_byte0_vduz1
|
||||
lda {z1}
|
||||
taz
|
||||
//FRAGMENT vbuyy=_byte1_vduz1
|
||||
ldy {z1}+1
|
||||
//FRAGMENT pbuc1_derefidx_vbuyy=vbuaa
|
||||
sta {c1},y
|
||||
//FRAGMENT pbuc1_derefidx_vbuzz=vbuaa
|
||||
@ -2545,67 +2562,3 @@ sta {c1},x
|
||||
tay
|
||||
//FRAGMENT vbuzz=vbuaa
|
||||
taz
|
||||
//FRAGMENT 0_neq_pbuc1_derefidx_vbuz1_then_la1
|
||||
ldy {z1}
|
||||
lda {c1},y
|
||||
cmp #0
|
||||
bne {la1}
|
||||
//FRAGMENT pbuc1_derefidx_vbuz1=vbuz1
|
||||
ldy {z1}
|
||||
tya
|
||||
sta {c1},y
|
||||
//FRAGMENT 0_neq_pbuc1_derefidx_vbuaa_then_la1
|
||||
tay
|
||||
lda {c1},y
|
||||
cmp #0
|
||||
bne {la1}
|
||||
//FRAGMENT 0_neq_pbuc1_derefidx_vbuxx_then_la1
|
||||
lda {c1},x
|
||||
cmp #0
|
||||
bne {la1}
|
||||
//FRAGMENT 0_neq_pbuc1_derefidx_vbuyy_then_la1
|
||||
lda {c1},y
|
||||
cmp #0
|
||||
bne {la1}
|
||||
//FRAGMENT 0_neq_pbuc1_derefidx_vbuzz_then_la1
|
||||
tza
|
||||
tay
|
||||
lda {c1},y
|
||||
cmp #0
|
||||
bne {la1}
|
||||
//FRAGMENT pbuc1_derefidx_vbuxx=vbuxx
|
||||
txa
|
||||
sta {c1},x
|
||||
//FRAGMENT pbuc1_derefidx_vbuyy=vbuyy
|
||||
tya
|
||||
sta {c1},y
|
||||
//FRAGMENT pbuc1_derefidx_vbuzz=vbuzz
|
||||
tza
|
||||
tax
|
||||
sta {c1},x
|
||||
//FRAGMENT _deref_pduc1=vduz1
|
||||
ldq {z1}
|
||||
stq {c1}
|
||||
//FRAGMENT vduz1=vduz1_plus_vduz2
|
||||
clc
|
||||
ldq {z1}
|
||||
adcq {z2}
|
||||
stq {z1}
|
||||
//FRAGMENT vduz1=vduz1_plus_vbuz2
|
||||
lda {z2}
|
||||
clc
|
||||
adc {z1}
|
||||
sta {z1}
|
||||
lda {z1}+1
|
||||
adc #0
|
||||
sta {z1}+1
|
||||
lda {z1}+2
|
||||
adc #0
|
||||
sta {z1}+2
|
||||
lda {z1}+3
|
||||
adc #0
|
||||
sta {z1}+3
|
||||
//FRAGMENT vduz1=vwuc1
|
||||
NO_SYNTHESIS
|
||||
//FRAGMENT vduz1=vwsc1
|
||||
NO_SYNTHESIS
|
||||
|
@ -1,4 +1,4 @@
|
||||
//KICKC FRAGMENT CACHE ee20482c1 ee204a320
|
||||
//KICKC FRAGMENT CACHE f6e6ad7e1 f6e6af848
|
||||
//FRAGMENT vbuz1=vbuc1
|
||||
lda #{c1}
|
||||
sta {z1}
|
||||
|
26085
src/main/fragment/cache/fragment-cache-mos6502x.asm
vendored
26085
src/main/fragment/cache/fragment-cache-mos6502x.asm
vendored
File diff suppressed because it is too large
Load Diff
1134
src/main/fragment/cache/fragment-cache-rom6502x.asm
vendored
1134
src/main/fragment/cache/fragment-cache-rom6502x.asm
vendored
File diff suppressed because it is too large
Load Diff
4426
src/main/fragment/cache/fragment-cache-wdc65c02.asm
vendored
4426
src/main/fragment/cache/fragment-cache-wdc65c02.asm
vendored
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,3 @@
|
||||
ldy #0
|
||||
ora ({z1}),y
|
||||
sta ({z1}),y
|
@ -0,0 +1,3 @@
|
||||
sta {m1}
|
||||
lda {m2}+1
|
||||
sta {m1}+1
|
@ -0,0 +1 @@
|
||||
stx {m1}
|
@ -0,0 +1 @@
|
||||
sty {m1}
|
@ -0,0 +1 @@
|
||||
sta {m1}+1
|
@ -0,0 +1 @@
|
||||
stx {m1}+1
|
@ -0,0 +1 @@
|
||||
sty {m1}+1
|
@ -0,0 +1 @@
|
||||
sta {m1}+2
|
@ -0,0 +1 @@
|
||||
stx {m1}+2
|
@ -0,0 +1 @@
|
||||
sty {m1}+2
|
@ -0,0 +1 @@
|
||||
sta {m1}+3
|
@ -0,0 +1 @@
|
||||
stx {m1}+3
|
@ -0,0 +1 @@
|
||||
sty {m1}+3
|
@ -192,10 +192,10 @@ public class AsmFormat {
|
||||
return getAsmConstant(program, new ConstantBinary(new ConstantInteger((long) 0xffffffffL), Operators.BOOL_AND, operand), outerPrecedence, codeScope);
|
||||
} else if(Operators.BYTE0.equals(operator)) {
|
||||
// Parenthesis is never needed since operator "<" has the lowest precedence
|
||||
return operator.getOperator() + getAsmConstant(program, operand, operator.getPrecedence(), codeScope);
|
||||
return "<" + getAsmConstant(program, operand, operator.getPrecedence(), codeScope);
|
||||
} else if(Operators.BYTE1.equals(operator)) {
|
||||
// Parenthesis is never needed since operator ">" has the lowest precedence
|
||||
return operator.getOperator() + getAsmConstant(program, operand, operator.getPrecedence(), codeScope);
|
||||
return ">" + getAsmConstant(program, operand, operator.getPrecedence(), codeScope);
|
||||
} else if(Operators.BYTE2.equals(operator)) {
|
||||
// Parenthesis is never needed since operator "<" has the lowest precedence
|
||||
return "<" + getAsmConstant(program, new ConstantBinary(operand, Operators.SHIFT_RIGHT, new ConstantInteger((long) 16)), outerPrecedence, codeScope);
|
||||
|
@ -12,7 +12,7 @@ import dk.camelot64.kickc.model.values.ConstantString;
|
||||
public class OperatorGetByte0 extends OperatorUnary {
|
||||
|
||||
public OperatorGetByte0(int precedence) {
|
||||
super("<", "_byte0_", precedence);
|
||||
super("byte0 ", "_byte0_", precedence);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -12,7 +12,7 @@ import dk.camelot64.kickc.model.values.ConstantString;
|
||||
public class OperatorGetByte1 extends OperatorUnary {
|
||||
|
||||
public OperatorGetByte1(int precedence) {
|
||||
super(">", "_byte1_", precedence);
|
||||
super("byte1 ", "_byte1_", precedence);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -12,7 +12,7 @@ import dk.camelot64.kickc.model.values.ConstantString;
|
||||
public class OperatorGetByte2 extends OperatorUnary {
|
||||
|
||||
public OperatorGetByte2(int precedence) {
|
||||
super("_byte2_", "_byte2_", precedence);
|
||||
super("byte2 ", "_byte2_", precedence);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -12,7 +12,7 @@ import dk.camelot64.kickc.model.values.ConstantString;
|
||||
public class OperatorGetByte3 extends OperatorUnary {
|
||||
|
||||
public OperatorGetByte3(int precedence) {
|
||||
super("_byte3_", "_byte3_", precedence);
|
||||
super("byte3 ", "_byte3_", precedence);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -1,59 +0,0 @@
|
||||
package dk.camelot64.kickc.model.operators;
|
||||
|
||||
import dk.camelot64.kickc.model.CompileError;
|
||||
import dk.camelot64.kickc.model.ConstantNotLiteral;
|
||||
import dk.camelot64.kickc.model.symbols.ProgramScope;
|
||||
import dk.camelot64.kickc.model.types.SymbolType;
|
||||
import dk.camelot64.kickc.model.types.SymbolTypePointer;
|
||||
import dk.camelot64.kickc.model.values.ConstantInteger;
|
||||
import dk.camelot64.kickc.model.values.ConstantLiteral;
|
||||
import dk.camelot64.kickc.model.values.ConstantPointer;
|
||||
import dk.camelot64.kickc.model.values.ConstantString;
|
||||
|
||||
/** Unary get high operator (>b) */
|
||||
public class OperatorGetHigh extends OperatorUnary {
|
||||
|
||||
public OperatorGetHigh(int precedence) {
|
||||
super(">", "_hi_", precedence);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ConstantLiteral calculateLiteral(ConstantLiteral operand, ProgramScope scope) {
|
||||
if(operand instanceof ConstantInteger) {
|
||||
ConstantInteger operandInt = (ConstantInteger) operand;
|
||||
if(SymbolType.WORD.equals(operandInt.getType()) || SymbolType.SWORD.equals(operandInt.getType())) {
|
||||
return new ConstantInteger(operandInt.getInteger()>>8);
|
||||
} else if(SymbolType.DWORD.equals(operandInt.getType()) || SymbolType.SDWORD.equals(operandInt.getType())) {
|
||||
return new ConstantInteger(operandInt.getInteger()>>16);
|
||||
} else if(SymbolType.BYTE.equals(operandInt.getType()) || SymbolType.SBYTE.equals(operandInt.getType())) {
|
||||
return new ConstantInteger(0L, SymbolType.BYTE);
|
||||
} else if(SymbolType.NUMBER.equals(operandInt.getType())) {
|
||||
throw ConstantNotLiteral.getException();
|
||||
}
|
||||
} else if(operand instanceof ConstantPointer) {
|
||||
return new ConstantInteger(((ConstantPointer) operand).getLocation()>>8);
|
||||
} else if(operand instanceof ConstantString) {
|
||||
throw ConstantNotLiteral.getException();
|
||||
}
|
||||
throw new CompileError("Calculation not implemented " + getOperator() + " " + operand );
|
||||
}
|
||||
|
||||
@Override
|
||||
public SymbolType inferType(SymbolType operandType) {
|
||||
if(operandType instanceof SymbolTypePointer || SymbolType.WORD.equals(operandType) || SymbolType.SWORD.equals(operandType)) {
|
||||
return SymbolType.BYTE;
|
||||
} else if(SymbolType.DWORD.equals(operandType) || SymbolType.SDWORD.equals(operandType)) {
|
||||
return SymbolType.WORD;
|
||||
} else if(SymbolType.BYTE.equals(operandType) || SymbolType.SBYTE.equals(operandType)) {
|
||||
return SymbolType.BYTE;
|
||||
} else if(SymbolType.NUMBER.equals(operandType)) {
|
||||
return SymbolType.NUMBER;
|
||||
} else if(SymbolType.UNUMBER.equals(operandType)) {
|
||||
return SymbolType.UNUMBER;
|
||||
} else if(SymbolType.SNUMBER.equals(operandType)) {
|
||||
return SymbolType.UNUMBER;
|
||||
}
|
||||
throw new CompileError("Type inference not implemented "+getOperator()+" "+operandType);
|
||||
}
|
||||
|
||||
}
|
@ -1,60 +0,0 @@
|
||||
package dk.camelot64.kickc.model.operators;
|
||||
|
||||
import dk.camelot64.kickc.model.CompileError;
|
||||
import dk.camelot64.kickc.model.ConstantNotLiteral;
|
||||
import dk.camelot64.kickc.model.symbols.ProgramScope;
|
||||
import dk.camelot64.kickc.model.types.SymbolType;
|
||||
import dk.camelot64.kickc.model.types.SymbolTypePointer;
|
||||
import dk.camelot64.kickc.model.values.ConstantInteger;
|
||||
import dk.camelot64.kickc.model.values.ConstantLiteral;
|
||||
import dk.camelot64.kickc.model.values.ConstantPointer;
|
||||
import dk.camelot64.kickc.model.values.ConstantString;
|
||||
|
||||
/** Unary get low operator (<b) */
|
||||
public class OperatorGetLow extends OperatorUnary {
|
||||
|
||||
public OperatorGetLow(int precedence) {
|
||||
super("<", "_lo_", precedence);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ConstantLiteral calculateLiteral(ConstantLiteral operand, ProgramScope scope) {
|
||||
if(operand instanceof ConstantInteger) {
|
||||
ConstantInteger operandInt = (ConstantInteger) operand;
|
||||
if(SymbolType.WORD.equals(operandInt.getType()) || SymbolType.SWORD.equals(operandInt.getType())) {
|
||||
return new ConstantInteger(operandInt.getInteger()&0xff);
|
||||
} else if(SymbolType.DWORD.equals(operandInt.getType()) || SymbolType.SDWORD.equals(operandInt.getType())) {
|
||||
return new ConstantInteger(operandInt.getInteger()&0xffff);
|
||||
} else if(SymbolType.BYTE.equals(operandInt.getType()) || SymbolType.SBYTE.equals(operandInt.getType())) {
|
||||
return operandInt;
|
||||
} else if(SymbolType.NUMBER.equals(operandInt.getType())) {
|
||||
throw ConstantNotLiteral.getException();
|
||||
}
|
||||
} else if(operand instanceof ConstantPointer) {
|
||||
return new ConstantInteger(((ConstantPointer) operand).getLocation()&0xff);
|
||||
} else if(operand instanceof ConstantString) {
|
||||
throw ConstantNotLiteral.getException();
|
||||
}
|
||||
throw ConstantNotLiteral.getException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public SymbolType inferType(SymbolType operandType) {
|
||||
if(operandType instanceof SymbolTypePointer || SymbolType.WORD.equals(operandType) || SymbolType.SWORD.equals(operandType)) {
|
||||
return SymbolType.BYTE;
|
||||
} else if(SymbolType.DWORD.equals(operandType) || SymbolType.SDWORD.equals(operandType)) {
|
||||
return SymbolType.WORD;
|
||||
} else if(SymbolType.BYTE.equals(operandType) || SymbolType.SBYTE.equals(operandType)) {
|
||||
return SymbolType.BYTE;
|
||||
} else if(SymbolType.NUMBER.equals(operandType)) {
|
||||
return SymbolType.NUMBER;
|
||||
} else if(SymbolType.UNUMBER.equals(operandType)) {
|
||||
return SymbolType.UNUMBER;
|
||||
} else if(SymbolType.SNUMBER.equals(operandType)) {
|
||||
return SymbolType.UNUMBER;
|
||||
}
|
||||
throw new CompileError("Type inference not implemented "+getOperator()+" "+operandType);
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -12,7 +12,7 @@ import dk.camelot64.kickc.model.values.ConstantString;
|
||||
public class OperatorGetWord0 extends OperatorUnary {
|
||||
|
||||
public OperatorGetWord0(int precedence) {
|
||||
super("_word0_", "_word0_", precedence);
|
||||
super("word0 ", "_word0_", precedence);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -12,7 +12,7 @@ import dk.camelot64.kickc.model.values.ConstantString;
|
||||
public class OperatorGetWord1 extends OperatorUnary {
|
||||
|
||||
public OperatorGetWord1(int precedence) {
|
||||
super("_word1_", "_word1_", precedence);
|
||||
super("word1 ", "_word1_", precedence);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -81,6 +81,13 @@ public class Pass4RegisterUpliftPotentialAluAnalysis extends Pass2Base {
|
||||
if(assignment.getOperator() != null && Operators.BYTE3.equals(assignment.getOperator()) && assignment.getrValue1() == null) {
|
||||
potentialAluVar = findAluPotential(assignment);
|
||||
}
|
||||
// TODO: Remove these and find a better way generate ASM for additions and other operations in 16bit
|
||||
if(assignment.getOperator() != null && Operators.WORD0.equals(assignment.getOperator()) && assignment.getrValue1() == null) {
|
||||
potentialAluVar = findAluPotential(assignment);
|
||||
}
|
||||
if(assignment.getOperator() != null && Operators.WORD1.equals(assignment.getOperator()) && assignment.getrValue1() == null) {
|
||||
potentialAluVar = findAluPotential(assignment);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -47,7 +47,7 @@ void bitmap_clear(char bgcol, char fgcol) {
|
||||
void bitmap_plot(unsigned int x, char y) {
|
||||
char* plotter = (char*) { bitmap_plot_yhi[y], bitmap_plot_ylo[y] };
|
||||
plotter += ( x & $fff8 );
|
||||
*plotter |= bitmap_plot_bit[(char)x];
|
||||
*plotter |= bitmap_plot_bit[BYTE0(x)];
|
||||
}
|
||||
|
||||
// Draw a line on the bitmap using bresenhams algorithm
|
||||
|
@ -135,8 +135,8 @@ void clrscr(void) {
|
||||
// Select DATA0
|
||||
*VERA_CTRL &= ~VERA_ADDRSEL;
|
||||
// Set address
|
||||
*VERA_ADDRX_L = <ch;
|
||||
*VERA_ADDRX_M = >ch;
|
||||
*VERA_ADDRX_L = BYTE0(ch);
|
||||
*VERA_ADDRX_M = BYTE1(ch);
|
||||
*VERA_ADDRX_H = CONIO_SCREEN_BANK | VERA_INC_1;
|
||||
for( char c=0;c<conio_width; c++ ) {
|
||||
*VERA_DATA0 = ' ';
|
||||
@ -206,8 +206,8 @@ void cputc(char c) {
|
||||
// Select DATA0
|
||||
*VERA_CTRL &= ~VERA_ADDRSEL;
|
||||
// Set address
|
||||
*VERA_ADDRX_L = <conio_addr;
|
||||
*VERA_ADDRX_M = >conio_addr;
|
||||
*VERA_ADDRX_L = BYTE0(conio_addr);
|
||||
*VERA_ADDRX_M = BYTE1(conio_addr);
|
||||
*VERA_ADDRX_H = CONIO_SCREEN_BANK | VERA_INC_1;
|
||||
*VERA_DATA0 = c;
|
||||
*VERA_DATA0 = color;
|
||||
@ -240,8 +240,8 @@ void clearline() {
|
||||
*VERA_CTRL &= ~VERA_ADDRSEL;
|
||||
// Set address
|
||||
byte* addr = CONIO_SCREEN_TEXT + conio_line_text[conio_screen_layer];
|
||||
*VERA_ADDRX_L = <addr;
|
||||
*VERA_ADDRX_M = >addr;
|
||||
*VERA_ADDRX_L = BYTE0(addr);
|
||||
*VERA_ADDRX_M = BYTE1(addr);
|
||||
*VERA_ADDRX_H = VERA_INC_1;
|
||||
char color = vera_layer_get_color( conio_screen_layer);
|
||||
for( unsigned int c=0;c<CONIO_WIDTH; c++ ) {
|
||||
|
@ -94,8 +94,8 @@ void bitmap_clear() {
|
||||
word vdelta = vdeltas[__bitmap_vscale];
|
||||
word hdelta = hdeltas[(__bitmap_color_depth<<2)+__bitmap_hscale];
|
||||
dword count = mul16u(hdelta,vdelta);
|
||||
char vbank = <(>__bitmap_address);
|
||||
void* vdest = (void*) <__bitmap_address;
|
||||
char vbank = BYTE2(__bitmap_address);
|
||||
void* vdest = (void*) WORD0(__bitmap_address);
|
||||
memset_vram(vbank, vdest, 0, count);
|
||||
}
|
||||
|
||||
|
@ -17,8 +17,8 @@ inline void vera_vram_bank_offset(byte bank, word offset, byte incr) {
|
||||
// Select DATA0
|
||||
*VERA_CTRL &= ~VERA_ADDRSEL;
|
||||
// Set address
|
||||
*VERA_ADDRX_L = <(offset);
|
||||
*VERA_ADDRX_M = >(offset);
|
||||
*VERA_ADDRX_L = BYTE0(offset);
|
||||
*VERA_ADDRX_M = BYTE1(offset);
|
||||
*VERA_ADDRX_H = bank | incr;
|
||||
}
|
||||
|
||||
@ -26,18 +26,18 @@ inline void vera_vram_address0(dword bankaddr, byte incr) {
|
||||
// Select DATA0
|
||||
*VERA_CTRL &= ~VERA_ADDRSEL;
|
||||
// Set address
|
||||
*VERA_ADDRX_L = <(<bankaddr);
|
||||
*VERA_ADDRX_M = >(<bankaddr);
|
||||
*VERA_ADDRX_H = <(>bankaddr) | incr;
|
||||
*VERA_ADDRX_L = BYTE0(bankaddr);
|
||||
*VERA_ADDRX_M = BYTE1(bankaddr);
|
||||
*VERA_ADDRX_H = BYTE2(bankaddr) | incr;
|
||||
}
|
||||
|
||||
inline void vera_vram_address1(dword bankaddr, byte incr) {
|
||||
// Select DATA1
|
||||
*VERA_CTRL |= VERA_ADDRSEL;
|
||||
// Set address
|
||||
*VERA_ADDRX_L = <(<bankaddr);
|
||||
*VERA_ADDRX_M = >(<bankaddr);
|
||||
*VERA_ADDRX_H = <(>bankaddr) | incr;
|
||||
*VERA_ADDRX_L = BYTE0(bankaddr);
|
||||
*VERA_ADDRX_M = BYTE1(bankaddr);
|
||||
*VERA_ADDRX_H = BYTE2(bankaddr) | incr;
|
||||
}
|
||||
|
||||
// --- VERA active display management ---
|
||||
@ -292,14 +292,14 @@ void vera_layer_set_mapbase(byte layer, byte mapbase) {
|
||||
void vera_layer_set_mapbase_address(byte layer, dword mapbase_address) {
|
||||
|
||||
mapbase_address = mapbase_address & 0x1FF00; // Aligned to 2048 bit zones.
|
||||
byte bank_mapbase = (byte)>mapbase_address;
|
||||
word offset_mapbase = <mapbase_address;
|
||||
byte bank_mapbase = BYTE2(mapbase_address);
|
||||
word offset_mapbase = WORD0(mapbase_address);
|
||||
|
||||
vera_mapbase_address[layer] = mapbase_address;
|
||||
vera_mapbase_offset[layer] = offset_mapbase;
|
||||
vera_mapbase_bank[layer] = bank_mapbase;
|
||||
|
||||
byte mapbase = >(<(mapbase_address>>1));
|
||||
byte mapbase = BYTE1(mapbase_address>>1);
|
||||
vera_layer_set_mapbase(layer,mapbase);
|
||||
}
|
||||
|
||||
@ -366,15 +366,15 @@ byte vera_layer_get_tilebase(byte layer) {
|
||||
void vera_layer_set_tilebase_address(byte layer, dword tilebase_address) {
|
||||
|
||||
tilebase_address = tilebase_address & 0x1FC00; // Aligned to 2048 bit zones.
|
||||
byte bank_tilebase = (byte)>tilebase_address;
|
||||
word word_tilebase = <tilebase_address;
|
||||
byte bank_tilebase = BYTE2(tilebase_address);
|
||||
word word_tilebase = WORD0(tilebase_address);
|
||||
|
||||
vera_tilebase_address[layer] = tilebase_address;
|
||||
vera_tilebase_offset[layer] = word_tilebase;
|
||||
vera_tilebase_bank[layer] = bank_tilebase;
|
||||
|
||||
byte* vera_tilebase = vera_layer_tilebase[layer];
|
||||
byte tilebase = >(<(tilebase_address>>1));
|
||||
byte tilebase = BYTE1(tilebase_address>>1);
|
||||
tilebase &= VERA_LAYER_TILEBASE_MASK; // Ensure that only tilebase is blanked, but keep the rest!
|
||||
//printf("tilebase = %x\n",tilebase);
|
||||
//while(!kbhit());
|
||||
@ -457,16 +457,16 @@ byte vera_layer_get_color(byte layer) {
|
||||
// - layer: Value of 0 or 1.
|
||||
// - scroll: A value between 0 and 4096.
|
||||
inline void vera_layer_set_horizontal_scroll(byte layer, word scroll) {
|
||||
*vera_layer_hscroll_l[layer] = <scroll;
|
||||
*vera_layer_hscroll_h[layer] = >scroll;
|
||||
*vera_layer_hscroll_l[layer] = BYTE0(scroll);
|
||||
*vera_layer_hscroll_h[layer] = BYTE1(scroll);
|
||||
}
|
||||
|
||||
// Scroll the vertical (Y) axis of the layer visible area over the layer tile map area.
|
||||
// - layer: Value of 0 or 1.
|
||||
// - scroll: A value between 0 and 4096.
|
||||
inline void vera_layer_set_vertical_scroll(byte layer, word scroll) {
|
||||
*vera_layer_vscroll_l[layer] = <scroll;
|
||||
*vera_layer_vscroll_h[layer] = >scroll;
|
||||
*vera_layer_vscroll_l[layer] = BYTE0(scroll);
|
||||
*vera_layer_vscroll_h[layer] = BYTE1(scroll);
|
||||
}
|
||||
|
||||
// Get the bit shift value required to skip a whole line fast.
|
||||
@ -559,21 +559,21 @@ void vera_layer_mode_tile(byte layer, dword mapbase_address, dword tilebase_addr
|
||||
vera_layer_set_config(layer, config);
|
||||
|
||||
// mapbase
|
||||
vera_mapbase_offset[layer] = <mapbase_address;
|
||||
vera_mapbase_bank[layer] = (byte)(>mapbase_address);
|
||||
vera_mapbase_offset[layer] = WORD0(mapbase_address);
|
||||
vera_mapbase_bank[layer] = BYTE2(mapbase_address);
|
||||
vera_mapbase_address[layer] = mapbase_address;
|
||||
|
||||
mapbase_address = mapbase_address >> 1;
|
||||
byte mapbase = >(<mapbase_address);
|
||||
byte mapbase = BYTE1(mapbase_address);
|
||||
vera_layer_set_mapbase(layer,mapbase);
|
||||
|
||||
// tilebase
|
||||
vera_tilebase_offset[layer] = <tilebase_address;
|
||||
vera_tilebase_bank[layer] = (byte)>tilebase_address;
|
||||
vera_tilebase_offset[layer] = WORD0(tilebase_address);
|
||||
vera_tilebase_bank[layer] = BYTE2(tilebase_address);
|
||||
vera_tilebase_address[layer] = tilebase_address;
|
||||
|
||||
tilebase_address = tilebase_address >> 1;
|
||||
byte tilebase = >(<tilebase_address);
|
||||
byte tilebase = BYTE1(tilebase_address);
|
||||
tilebase &= VERA_LAYER_TILEBASE_MASK;
|
||||
switch(tilewidth) {
|
||||
case 8:
|
||||
@ -663,12 +663,12 @@ void vera_layer_mode_bitmap(byte layer, dword bitmap_address, word mapwidth, wor
|
||||
config = config | VERA_LAYER_CONFIG_MODE_BITMAP;
|
||||
|
||||
// tilebase
|
||||
vera_tilebase_offset[layer] = <bitmap_address;
|
||||
vera_tilebase_bank[layer] = (byte)>bitmap_address;
|
||||
vera_tilebase_offset[layer] = WORD0(bitmap_address);
|
||||
vera_tilebase_bank[layer] = BYTE2(bitmap_address);
|
||||
vera_tilebase_address[layer] = bitmap_address;
|
||||
|
||||
bitmap_address = bitmap_address >> 1;
|
||||
byte tilebase = >(<bitmap_address);
|
||||
byte tilebase = BYTE1(bitmap_address);
|
||||
tilebase &= VERA_LAYER_TILEBASE_MASK;
|
||||
|
||||
// mapwidth
|
||||
@ -697,8 +697,8 @@ void vera_tile_area(byte layer, word tileindex, byte x, byte y, byte w, byte h,
|
||||
hflip = vera_layer_hflip[hflip];
|
||||
vflip = vera_layer_vflip[vflip];
|
||||
offset = offset << 4;
|
||||
byte index_l = <tileindex;
|
||||
byte index_h = >tileindex;
|
||||
byte index_l = BYTE0(tileindex);
|
||||
byte index_h = BYTE1(tileindex);
|
||||
index_h |= hflip;
|
||||
index_h |= vflip;
|
||||
index_h |= offset;
|
||||
|
@ -26,8 +26,8 @@ void mulf_init() {
|
||||
x_2++; // increase i/2 on even numbers
|
||||
sqr++; // sqr++ on even numbers because 1 = 2*1/4 (from the two previous numbers) + 1/2 (half of the previous uneven number)
|
||||
}
|
||||
*sqr1_lo = <sqr;
|
||||
*sqr1_hi++ = >sqr;
|
||||
*sqr1_lo = BYTE0(sqr);
|
||||
*sqr1_hi++ = BYTE1(sqr);
|
||||
sqr = sqr + x_2; // sqr = sqr + i/2 (when uneven the 1/2 is not added here - see above)
|
||||
}
|
||||
// Fill mulf_sqr2 = g(x) = f(x-255) : If x-255<0 then g(x)=f(255-x) (because x*x = -x*-x)
|
||||
@ -102,10 +102,10 @@ signed int mulf8s_prepared(signed char b) {
|
||||
signed char* const memA = (signed char*)$fd;
|
||||
unsigned int m = mulf8u_prepared((char) b);
|
||||
if(*memA<0) {
|
||||
>m = (>m)-(char)b;
|
||||
BYTE1(m) = BYTE1(m)-(char)b;
|
||||
}
|
||||
if(b<0) {
|
||||
>m = (>m)-(char)*memA;
|
||||
BYTE1(m) = BYTE1(m)-(char)*memA;
|
||||
}
|
||||
return (signed int)m;
|
||||
}
|
||||
@ -204,10 +204,10 @@ _dd: lda #0
|
||||
signed long mulf16s(signed int a, signed int b) {
|
||||
unsigned long m = mulf16u((unsigned int)a, (unsigned int)b);
|
||||
if(a<0) {
|
||||
>m = (>m)-(unsigned int)b;
|
||||
WORD1(m) = WORD1(m)-(unsigned int)b;
|
||||
}
|
||||
if(b<0) {
|
||||
>m = (>m)-(unsigned int)a;
|
||||
WORD1(m) = WORD1(m)-(unsigned int)a;
|
||||
}
|
||||
return (signed long)m;
|
||||
}
|
||||
|
@ -110,7 +110,7 @@ signed char sin8s(unsigned int x) {
|
||||
x = PI_u4f12 - x;
|
||||
}
|
||||
// sinx = x - x^3/6 + x5/128;
|
||||
char x1 = BYTE1(x)<<3; // u[1.7]
|
||||
char x1 = BYTE1(x<<3); // u[1.7]
|
||||
char x2 = mulu8_sel(x1, x1, 0); // u[2.6] x^2
|
||||
char x3 = mulu8_sel(x2, x1, 1); // u[2.6] x^3
|
||||
const char DIV_6 = $2b; // u[0.7] - $2a.aa rounded to $2b
|
||||
|
@ -3,14 +3,19 @@ package dk.camelot64.kickc.test;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URISyntaxException;
|
||||
|
||||
/**
|
||||
* Compile a number of source files and compare the resulting assembler with expected output
|
||||
*/
|
||||
public class TestProgramsThorough extends TestPrograms {
|
||||
|
||||
@Test
|
||||
public void testCx16VeralibTilemap8bpp() throws IOException {
|
||||
public void testCx16VeralibTilemap8bpp8() throws IOException {
|
||||
compileAndCompare("examples/cx16/veralib/tilemap_8bpp_8_x_8.c");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCx16VeralibTilemap8bpp16() throws IOException {
|
||||
compileAndCompare("examples/cx16/veralib/tilemap_8bpp_16_x_16.c");
|
||||
}
|
||||
|
||||
@ -71,12 +76,12 @@ public class TestProgramsThorough extends TestPrograms {
|
||||
|
||||
@Test
|
||||
public void testC64DtvGfxExplorer() throws IOException {
|
||||
compileAndCompare("c64dtv-gfxexplorer.c", 10);
|
||||
compileAndCompare("c64dtv-gfxexplorer.c", 20);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testC64DtvGfxModes() throws IOException {
|
||||
compileAndCompare("c64dtv-gfxmodes.c", 10);
|
||||
compileAndCompare("c64dtv-gfxmodes.c", 20);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -33,7 +33,7 @@ void main() {
|
||||
printf("\n");
|
||||
printf("match found [%u]%u+[%u]%u+[%u]%u=2020\n", i,entries[i], j,entries[j], k,entries[k]);
|
||||
unsigned long mul1 = mul16u(entries[i],entries[k]); // I am cheating a bit here multiplying entry i&k first
|
||||
unsigned long mul2 = mul16u( <mul1 ,entries[j] ); // Because I knwo the product of those fit in an unsigned int
|
||||
unsigned long mul2 = mul16u( WORD0(mul1) ,entries[j] ); // Because I knwo the product of those fit in an unsigned int
|
||||
printf("multiplied %lu\n", mul2);
|
||||
}
|
||||
}
|
||||
|
@ -24,10 +24,10 @@ void main() {
|
||||
while(true) {
|
||||
signed word cos_x = SINE[idx_x];
|
||||
signed dword xpos = mul16s(160, cos_x);
|
||||
word x = (word)(160 + >(xpos<<4));
|
||||
word x = (word)(160 + WORD1(xpos<<4));
|
||||
signed word sin_y = SINE[idx_y];
|
||||
signed dword ypos = mul16s(100, sin_y);
|
||||
word y = (word)(100 + >(ypos<<4));
|
||||
word y = (word)(100 + WORD1(ypos<<4));
|
||||
bitmap_plot(x, (byte)y);
|
||||
if(++idx_x==512) idx_x = 0;
|
||||
if(++idx_y==512) idx_y = 0;
|
||||
|
@ -26,10 +26,10 @@ void main() {
|
||||
while(true) {
|
||||
signed word cos_x = SINE[idx_x];
|
||||
signed dword xpos = mul16s(r, cos_x);
|
||||
word x = (word)(160 + ((signed word)>xpos)>>2);
|
||||
word x = (word)(160 + ((signed word)WORD1(xpos))>>2);
|
||||
signed word sin_y = SINE[idx_y];
|
||||
signed dword ypos = mul16s(r, sin_y);
|
||||
word y = (word)(100 + ((signed word)>ypos)>>2);
|
||||
word y = (word)(100 + ((signed word)WORD1(ypos))>>2);
|
||||
bitmap_plot(x, (byte)y);
|
||||
plots_per_frame[frame_cnt]++;
|
||||
idx_x += r_add;
|
||||
|
@ -334,9 +334,9 @@ void gfx_mode() {
|
||||
// Linear Graphics Plane A Counter
|
||||
byte plane_a_offs = *form_a_start_hi*$10|*form_a_start_lo;
|
||||
dword plane_a = get_plane(*form_a_pattern) + plane_a_offs;
|
||||
*DTV_PLANEA_START_LO = < < plane_a;
|
||||
*DTV_PLANEA_START_MI = > < plane_a;
|
||||
*DTV_PLANEA_START_HI = < > plane_a;
|
||||
*DTV_PLANEA_START_LO = BYTE0(plane_a);
|
||||
*DTV_PLANEA_START_MI = BYTE1(plane_a);
|
||||
*DTV_PLANEA_START_HI = BYTE2(plane_a);
|
||||
*DTV_PLANEA_STEP = *form_a_step_hi*$10|*form_a_step_lo;
|
||||
*DTV_PLANEA_MODULO_LO = *form_a_mod_hi*$10|*form_a_mod_lo;
|
||||
*DTV_PLANEA_MODULO_HI = 0;
|
||||
@ -344,9 +344,9 @@ void gfx_mode() {
|
||||
// Linear Graphics Plane B Counter
|
||||
byte plane_b_offs = *form_b_start_hi*$10|*form_b_start_lo;
|
||||
dword plane_b = get_plane(*form_b_pattern) + plane_b_offs;
|
||||
*DTV_PLANEB_START_LO = < < plane_b;
|
||||
*DTV_PLANEB_START_MI = > < plane_b;
|
||||
*DTV_PLANEB_START_HI = < > plane_b;
|
||||
*DTV_PLANEB_START_LO = BYTE0(plane_b);
|
||||
*DTV_PLANEB_START_MI = BYTE1(plane_b);
|
||||
*DTV_PLANEB_START_HI = BYTE2(plane_b);
|
||||
*DTV_PLANEB_STEP = *form_b_step_hi*$10|*form_b_step_lo;
|
||||
*DTV_PLANEB_MODULO_LO = *form_b_mod_hi*$10|*form_b_mod_lo;
|
||||
*DTV_PLANEB_MODULO_HI = 0;
|
||||
@ -355,7 +355,7 @@ void gfx_mode() {
|
||||
CIA2->PORT_A_DDR = %00000011; // Set VIC Bank bits to output - all others to input
|
||||
CIA2->PORT_A = %00000011 ^ (byte)((word)VICII_SCREEN0/$4000); // Set VIC Bank
|
||||
// VIC memory
|
||||
*VICII_MEMORY = (byte)(((word)get_VICII_screen(*form_VICII_screen)&$3fff)/$40) | ((>((word)get_VICII_charset(*form_VICII_gfx)&$3fff))/4);
|
||||
*VICII_MEMORY = (byte)(((word)get_VICII_screen(*form_VICII_screen)&$3fff)/$40) | ((BYTE1((word)get_VICII_charset(*form_VICII_gfx)&$3fff))/4);
|
||||
|
||||
// VIC Colors
|
||||
byte* VICII_colors = get_VICII_screen(*form_VICII_cols);
|
||||
@ -609,9 +609,9 @@ void gfx_init_plane_full() {
|
||||
|
||||
// Initialize 320*200 1bpp pixel ($2000) plane with identical bytes
|
||||
void gfx_init_plane_fill(dword plane_addr, byte fill) {
|
||||
byte gfxbCpuBank = < >(plane_addr*4);
|
||||
byte gfxbCpuBank = BYTE2(plane_addr*4);
|
||||
dtvSetCpuBankSegment1(gfxbCpuBank++);
|
||||
byte* gfxb = (byte*)$4000 + (<plane_addr & $3fff);
|
||||
byte* gfxb = (byte*)$4000 + (WORD0(plane_addr) & $3fff);
|
||||
for(byte by : 0..199) {
|
||||
for ( byte bx : 0..39) {
|
||||
*gfxb++ = fill;
|
||||
@ -641,8 +641,8 @@ void form_mode() {
|
||||
// DTV Graphics Bank
|
||||
*DTV_GRAPHICS_VIC_BANK = (byte)((dword)FORM_CHARSET/$10000);
|
||||
// DTV Color Bank
|
||||
*DTV_COLOR_BANK_LO = <((word)(DTV_COLOR_BANK_DEFAULT/$400));
|
||||
*DTV_COLOR_BANK_HI = >((word)(DTV_COLOR_BANK_DEFAULT/$400));
|
||||
*DTV_COLOR_BANK_LO = BYTE0((word)(DTV_COLOR_BANK_DEFAULT/$400));
|
||||
*DTV_COLOR_BANK_HI = BYTE1((word)(DTV_COLOR_BANK_DEFAULT/$400));
|
||||
// VIC Graphics Bank
|
||||
CIA2->PORT_A_DDR = %00000011; // Set VIC Bank bits to output - all others to input
|
||||
CIA2->PORT_A = %00000011 ^ (byte)((word)FORM_CHARSET/$4000); // Set VIC Bank
|
||||
@ -654,8 +654,8 @@ void form_mode() {
|
||||
// VIC Memory Pointers
|
||||
VICII->MEMORY = (byte)((((word)FORM_SCREEN&$3fff)/$40)|(((word)FORM_CHARSET&$3fff)/$400));
|
||||
// DTV Plane A to FORM_SCREEN also
|
||||
*DTV_PLANEA_START_LO = < FORM_SCREEN;
|
||||
*DTV_PLANEA_START_MI = > FORM_SCREEN;
|
||||
*DTV_PLANEA_START_LO = BYTE0(FORM_SCREEN);
|
||||
*DTV_PLANEA_START_MI = BYTE1(FORM_SCREEN);
|
||||
*DTV_PLANEA_START_HI = 0;
|
||||
// DTV Palette - default
|
||||
for(byte i : 0..$f) {
|
||||
@ -702,8 +702,8 @@ void form_set_screen(byte* screen) {
|
||||
// Calculate the field line table
|
||||
byte* line = screen;
|
||||
for(byte y: 0..24) {
|
||||
form_line_lo[y] = <line;
|
||||
form_line_hi[y] = >line;
|
||||
form_line_lo[y] = BYTE0(line);
|
||||
form_line_hi[y] = BYTE1(line);
|
||||
line = line + 40;
|
||||
}
|
||||
}
|
||||
|
@ -47,8 +47,8 @@ void menu() {
|
||||
// DTV Graphics Bank
|
||||
*DTV_GRAPHICS_VIC_BANK = (byte)((dword)CHARSET/$10000);
|
||||
// DTV Color Bank
|
||||
*DTV_COLOR_BANK_LO = <((word)(DTV_COLOR_BANK_DEFAULT/$400));
|
||||
*DTV_COLOR_BANK_HI = >((word)(DTV_COLOR_BANK_DEFAULT/$400));
|
||||
*DTV_COLOR_BANK_LO = BYTE0((word)(DTV_COLOR_BANK_DEFAULT/$400));
|
||||
*DTV_COLOR_BANK_HI = BYTE1((word)(DTV_COLOR_BANK_DEFAULT/$400));
|
||||
// DTV Graphics Mode
|
||||
*DTV_CONTROL = 0;
|
||||
// VIC Graphics Bank
|
||||
@ -193,8 +193,8 @@ void mode_stdchar() {
|
||||
// DTV Graphics Bank
|
||||
*DTV_GRAPHICS_VIC_BANK = (byte)((dword)CHARSET/$10000);
|
||||
// DTV Color Bank
|
||||
*DTV_COLOR_BANK_LO = <((word)(DTV_COLOR_BANK_DEFAULT/$400));
|
||||
*DTV_COLOR_BANK_HI = >((word)(DTV_COLOR_BANK_DEFAULT/$400));
|
||||
*DTV_COLOR_BANK_LO = BYTE0((word)(DTV_COLOR_BANK_DEFAULT/$400));
|
||||
*DTV_COLOR_BANK_HI = BYTE1((word)(DTV_COLOR_BANK_DEFAULT/$400));
|
||||
// DTV Graphics Mode
|
||||
dtv_control = 0;
|
||||
*DTV_CONTROL = 0;
|
||||
@ -244,8 +244,8 @@ void mode_ecmchar() {
|
||||
// DTV Graphics Bank
|
||||
*DTV_GRAPHICS_VIC_BANK = (byte)((dword)CHARSET/$10000);
|
||||
// DTV Color Bank
|
||||
*DTV_COLOR_BANK_LO = <((word)(DTV_COLOR_BANK_DEFAULT/$400));
|
||||
*DTV_COLOR_BANK_HI = >((word)(DTV_COLOR_BANK_DEFAULT/$400));
|
||||
*DTV_COLOR_BANK_LO = BYTE0((word)(DTV_COLOR_BANK_DEFAULT/$400));
|
||||
*DTV_COLOR_BANK_HI = BYTE1((word)(DTV_COLOR_BANK_DEFAULT/$400));
|
||||
// DTV Graphics Mode
|
||||
dtv_control = 0;
|
||||
*DTV_CONTROL = 0;
|
||||
@ -300,8 +300,8 @@ void mode_mcchar() {
|
||||
// DTV Graphics Bank
|
||||
*DTV_GRAPHICS_VIC_BANK = (byte)((dword)CHARSET/$10000);
|
||||
// DTV Color Bank
|
||||
*DTV_COLOR_BANK_LO = <((word)(DTV_COLOR_BANK_DEFAULT/$400));
|
||||
*DTV_COLOR_BANK_HI = >((word)(DTV_COLOR_BANK_DEFAULT/$400));
|
||||
*DTV_COLOR_BANK_LO = BYTE0((word)(DTV_COLOR_BANK_DEFAULT/$400));
|
||||
*DTV_COLOR_BANK_HI = BYTE1((word)(DTV_COLOR_BANK_DEFAULT/$400));
|
||||
// DTV Graphics Mode
|
||||
dtv_control = 0;
|
||||
*DTV_CONTROL = 0;
|
||||
@ -402,8 +402,8 @@ void mode_hicolstdchar() {
|
||||
// DTV Graphics Bank
|
||||
*DTV_GRAPHICS_VIC_BANK = (byte)((dword)CHARSET/$10000);
|
||||
// DTV Color Bank
|
||||
*DTV_COLOR_BANK_LO = <((word)(COLORS/$400));
|
||||
*DTV_COLOR_BANK_HI = >((word)(COLORS/$400));
|
||||
*DTV_COLOR_BANK_LO = BYTE0((word)(COLORS/$400));
|
||||
*DTV_COLOR_BANK_HI = BYTE1((word)(COLORS/$400));
|
||||
// DTV Graphics Mode
|
||||
dtv_control = DTV_HIGHCOLOR;
|
||||
*DTV_CONTROL = DTV_HIGHCOLOR;
|
||||
@ -455,8 +455,8 @@ void mode_hicolecmchar() {
|
||||
// DTV Graphics Bank
|
||||
*DTV_GRAPHICS_VIC_BANK = (byte)((dword)CHARSET/$10000);
|
||||
// DTV Color Bank
|
||||
*DTV_COLOR_BANK_LO = <((word)(COLORS/$400));
|
||||
*DTV_COLOR_BANK_HI = >((word)(COLORS/$400));
|
||||
*DTV_COLOR_BANK_LO = BYTE0((word)(COLORS/$400));
|
||||
*DTV_COLOR_BANK_HI = BYTE1((word)(COLORS/$400));
|
||||
// DTV Graphics Mode
|
||||
dtv_control = DTV_HIGHCOLOR;
|
||||
*DTV_CONTROL = DTV_HIGHCOLOR;
|
||||
@ -511,8 +511,8 @@ void mode_hicolmcchar() {
|
||||
// DTV Graphics Bank
|
||||
*DTV_GRAPHICS_VIC_BANK = (byte)((dword)CHARSET/$10000);
|
||||
// DTV Color Bank
|
||||
*DTV_COLOR_BANK_LO = <((word)(COLORS/$400));
|
||||
*DTV_COLOR_BANK_HI = >((word)(COLORS/$400));
|
||||
*DTV_COLOR_BANK_LO = BYTE0((word)(COLORS/$400));
|
||||
*DTV_COLOR_BANK_HI = BYTE1((word)(COLORS/$400));
|
||||
// DTV Graphics Mode
|
||||
dtv_control = DTV_HIGHCOLOR;
|
||||
*DTV_CONTROL = DTV_HIGHCOLOR;
|
||||
@ -567,22 +567,22 @@ void mode_twoplanebitmap() {
|
||||
*VICII_CONTROL1 = VICII_ECM|VICII_BMM|VICII_DEN|VICII_RSEL|3;
|
||||
*VICII_CONTROL2 = VICII_CSEL;
|
||||
// Linear Graphics Plane A Counter
|
||||
*DTV_PLANEA_START_LO = <PLANEA;
|
||||
*DTV_PLANEA_START_MI = >PLANEA;
|
||||
*DTV_PLANEA_START_LO = BYTE0(PLANEA);
|
||||
*DTV_PLANEA_START_MI = BYTE1(PLANEA);
|
||||
*DTV_PLANEA_START_HI = 0;
|
||||
*DTV_PLANEA_STEP = 1;
|
||||
*DTV_PLANEA_MODULO_LO = 0;
|
||||
*DTV_PLANEA_MODULO_HI = 0;
|
||||
// Linear Graphics Plane B Counter
|
||||
*DTV_PLANEB_START_LO = <PLANEB;
|
||||
*DTV_PLANEB_START_MI = >PLANEB;
|
||||
*DTV_PLANEB_START_LO = BYTE0(PLANEB);
|
||||
*DTV_PLANEB_START_MI = BYTE1(PLANEB);
|
||||
*DTV_PLANEB_START_HI = 0;
|
||||
*DTV_PLANEB_STEP = 1;
|
||||
*DTV_PLANEB_MODULO_LO = 0;
|
||||
*DTV_PLANEB_MODULO_HI = 0;
|
||||
// DTV Color Bank
|
||||
*DTV_COLOR_BANK_LO = <(COLORS/$400);
|
||||
*DTV_COLOR_BANK_HI = >(COLORS/$400);
|
||||
*DTV_COLOR_BANK_LO = BYTE0(COLORS/$400);
|
||||
*DTV_COLOR_BANK_HI = BYTE1(COLORS/$400);
|
||||
// DTV Palette - Grey Tones
|
||||
for(byte i : 0..$f) {
|
||||
DTV_PALETTE[i] = i;
|
||||
@ -637,22 +637,22 @@ void mode_sixsfred() {
|
||||
*VICII_CONTROL1 = VICII_ECM|VICII_BMM|VICII_DEN|VICII_RSEL|3;
|
||||
*VICII_CONTROL2 = VICII_MCM|VICII_CSEL;
|
||||
// Linear Graphics Plane A Counter
|
||||
*DTV_PLANEA_START_LO = <PLANEA;
|
||||
*DTV_PLANEA_START_MI = >PLANEA;
|
||||
*DTV_PLANEA_START_LO = BYTE0(PLANEA);
|
||||
*DTV_PLANEA_START_MI = BYTE1(PLANEA);
|
||||
*DTV_PLANEA_START_HI = 0;
|
||||
*DTV_PLANEA_STEP = 1;
|
||||
*DTV_PLANEA_MODULO_LO = 0;
|
||||
*DTV_PLANEA_MODULO_HI = 0;
|
||||
// Linear Graphics Plane B Counter
|
||||
*DTV_PLANEB_START_LO = <PLANEB;
|
||||
*DTV_PLANEB_START_MI = >PLANEB;
|
||||
*DTV_PLANEB_START_LO = BYTE0(PLANEB);
|
||||
*DTV_PLANEB_START_MI = BYTE1(PLANEB);
|
||||
*DTV_PLANEB_START_HI = 0;
|
||||
*DTV_PLANEB_STEP = 1;
|
||||
*DTV_PLANEB_MODULO_LO = 0;
|
||||
*DTV_PLANEB_MODULO_HI = 0;
|
||||
// DTV Color Bank
|
||||
*DTV_COLOR_BANK_LO = <(COLORS/$400);
|
||||
*DTV_COLOR_BANK_HI = >(COLORS/$400);
|
||||
*DTV_COLOR_BANK_LO = BYTE0(COLORS/$400);
|
||||
*DTV_COLOR_BANK_HI = BYTE1(COLORS/$400);
|
||||
// DTV Palette - Grey Tones
|
||||
for(byte i : 0..$f) {
|
||||
DTV_PALETTE[i] = i;
|
||||
@ -703,22 +703,22 @@ void mode_sixsfred2() {
|
||||
*VICII_CONTROL1 = VICII_ECM|VICII_BMM|VICII_DEN|VICII_RSEL|3;
|
||||
*VICII_CONTROL2 = VICII_MCM|VICII_CSEL;
|
||||
// Linear Graphics Plane A Counter
|
||||
*DTV_PLANEA_START_LO = <PLANEA;
|
||||
*DTV_PLANEA_START_MI = >PLANEA;
|
||||
*DTV_PLANEA_START_LO = BYTE0(PLANEA);
|
||||
*DTV_PLANEA_START_MI = BYTE1(PLANEA);
|
||||
*DTV_PLANEA_START_HI = 0;
|
||||
*DTV_PLANEA_STEP = 1;
|
||||
*DTV_PLANEA_MODULO_LO = 0;
|
||||
*DTV_PLANEA_MODULO_HI = 0;
|
||||
// Linear Graphics Plane B Counter
|
||||
*DTV_PLANEB_START_LO = <PLANEB;
|
||||
*DTV_PLANEB_START_MI = >PLANEB;
|
||||
*DTV_PLANEB_START_LO = BYTE0(PLANEB);
|
||||
*DTV_PLANEB_START_MI = BYTE1(PLANEB);
|
||||
*DTV_PLANEB_START_HI = 0;
|
||||
*DTV_PLANEB_STEP = 1;
|
||||
*DTV_PLANEB_MODULO_LO = 0;
|
||||
*DTV_PLANEB_MODULO_HI = 0;
|
||||
// DTV Color Bank
|
||||
*DTV_COLOR_BANK_LO = <(COLORS/$400);
|
||||
*DTV_COLOR_BANK_HI = >(COLORS/$400);
|
||||
*DTV_COLOR_BANK_LO = BYTE0(COLORS/$400);
|
||||
*DTV_COLOR_BANK_HI = BYTE1(COLORS/$400);
|
||||
// DTV Palette - Grey Tones
|
||||
for(byte i : 0..$f) {
|
||||
DTV_PALETTE[i] = i;
|
||||
@ -774,15 +774,15 @@ void mode_8bpppixelcell() {
|
||||
*VICII_CONTROL1 = VICII_ECM|VICII_DEN|VICII_RSEL|3;
|
||||
*VICII_CONTROL2 = VICII_MCM|VICII_CSEL;
|
||||
// Linear Graphics Plane A Counter
|
||||
*DTV_PLANEA_START_LO = <PLANEA;
|
||||
*DTV_PLANEA_START_MI = >PLANEA;
|
||||
*DTV_PLANEA_START_LO = BYTE0(PLANEA);
|
||||
*DTV_PLANEA_START_MI = BYTE1(PLANEA);
|
||||
*DTV_PLANEA_START_HI = 0;
|
||||
*DTV_PLANEA_STEP = 1;
|
||||
*DTV_PLANEA_MODULO_LO = 0;
|
||||
*DTV_PLANEA_MODULO_HI = 0;
|
||||
// Linear Graphics Plane B Counter
|
||||
*DTV_PLANEB_START_LO = <PLANEB;
|
||||
*DTV_PLANEB_START_MI = >PLANEB;
|
||||
*DTV_PLANEB_START_LO = BYTE0(PLANEB);
|
||||
*DTV_PLANEB_START_MI = BYTE1(PLANEB);
|
||||
*DTV_PLANEB_START_HI = 0;
|
||||
*DTV_PLANEB_STEP = 0;
|
||||
*DTV_PLANEB_MODULO_LO = 0;
|
||||
@ -842,9 +842,9 @@ void mode_8bppchunkybmm() {
|
||||
*VICII_CONTROL1 = VICII_ECM | VICII_DEN | VICII_RSEL | 3;
|
||||
*VICII_CONTROL2 = VICII_MCM | VICII_CSEL;
|
||||
// Linear Graphics Plane B Counter
|
||||
*DTV_PLANEB_START_LO = < < PLANEB;
|
||||
*DTV_PLANEB_START_MI = > < PLANEB;
|
||||
*DTV_PLANEB_START_HI = < > PLANEB;
|
||||
*DTV_PLANEB_START_LO = BYTE0(PLANEB);
|
||||
*DTV_PLANEB_START_MI = BYTE1(PLANEB);
|
||||
*DTV_PLANEB_START_HI = BYTE2(PLANEB);
|
||||
*DTV_PLANEB_STEP = 8;
|
||||
*DTV_PLANEB_MODULO_LO = 0;
|
||||
*DTV_PLANEB_MODULO_HI = 0;
|
||||
|
@ -35,10 +35,10 @@ void init_bobs_restore() {
|
||||
for(char bob=0;bob<NUM_BOBS*2;bob++) {
|
||||
for(char i=0;i<SIZE_BOB_RESTORE;i++)
|
||||
bob_restore[i] = 0;
|
||||
bob_restore[0] = <CANVAS_HIDDEN;
|
||||
bob_restore[1] = >CANVAS_HIDDEN;
|
||||
bob_restore[3] = <CANVAS_HIDDEN;
|
||||
bob_restore[4] = >CANVAS_HIDDEN;
|
||||
bob_restore[0] = BYTE0(CANVAS_HIDDEN);
|
||||
bob_restore[1] = BYTE1(CANVAS_HIDDEN);
|
||||
bob_restore[3] = BYTE0(CANVAS_HIDDEN);
|
||||
bob_restore[4] = BYTE1(CANVAS_HIDDEN);
|
||||
bob_restore += SIZE_BOB_RESTORE;
|
||||
}
|
||||
|
||||
|
@ -88,8 +88,8 @@ void init_render_index() {
|
||||
char * canvas_xcol = RENDER_XCOLS[x_col];
|
||||
for(char y_pos=0;y_pos<148;y_pos+=2) {
|
||||
char * canvas = canvas_xcol + render_ypos_table[(unsigned int)y_pos];
|
||||
render_index_xcol[RENDER_OFFSET_CANVAS_LO] = <canvas;
|
||||
render_index_xcol[RENDER_OFFSET_CANVAS_HI] = >canvas;
|
||||
render_index_xcol[RENDER_OFFSET_CANVAS_LO] = BYTE0(canvas);
|
||||
render_index_xcol[RENDER_OFFSET_CANVAS_HI] = BYTE1(canvas);
|
||||
render_index_xcol[RENDER_OFFSET_YPOS_INC] = ypos_inc_offset;
|
||||
ypos_inc_offset += 2;
|
||||
if(ypos_inc_offset>=23) ypos_inc_offset-=21; // Keep ypos_inc_index as low as possible
|
||||
@ -108,7 +108,7 @@ void init_render_index() {
|
||||
// - pixels: The pixel data to set
|
||||
void render(char xcol, char ypos, char pixels) {
|
||||
char ytile = ypos/4;
|
||||
char * render_index_xcol = (char*){ (>RENDER_INDEX) + xcol, ytile*2 };
|
||||
char * render_index_xcol = (char*){ BYTE1(RENDER_INDEX) + xcol, ytile*2 };
|
||||
unsigned int canvas_offset = { render_index_xcol[RENDER_OFFSET_CANVAS_HI], render_index_xcol[RENDER_OFFSET_CANVAS_LO] };
|
||||
char * canvas1 = SPRITES_1 + canvas_offset;
|
||||
char * canvas2 = SPRITES_2 + canvas_offset;
|
||||
@ -134,7 +134,7 @@ void render(char xcol, char ypos, char pixels) {
|
||||
void render_tiles(char xcol, char ytile, char tile_left, char tile_right) {
|
||||
char * tile_left_pixels = TILES_LEFT + tile_left*4;
|
||||
char * tile_right_pixels = TILES_RIGHT + tile_right*4;
|
||||
char * render_index_xcol = (char*){ (>RENDER_INDEX) + xcol, ytile*2 };
|
||||
char * render_index_xcol = (char*){ BYTE1(RENDER_INDEX) + xcol, ytile*2 };
|
||||
unsigned int canvas_offset = {render_index_xcol[RENDER_OFFSET_CANVAS_HI], render_index_xcol[RENDER_OFFSET_CANVAS_LO] };
|
||||
char * canvas1 = SPRITES_1 + canvas_offset;
|
||||
char * canvas2 = SPRITES_2 + canvas_offset;
|
||||
|
@ -254,13 +254,13 @@ void splash_run() {
|
||||
unsigned int xpos = sprites_xpos[i];
|
||||
SPRITES_XPOS[i*2] = (char)xpos;
|
||||
msb /= 2;
|
||||
if((>xpos)) msb |=0x80;
|
||||
if(BYTE1(xpos)) msb |=0x80;
|
||||
}
|
||||
|
||||
// Set initial graphics bank
|
||||
CIA2->PORT_A = toDd00(SCREENS_1);
|
||||
// Set initial render/restore buffer
|
||||
canvas_base_hi = >SPRITES_2;
|
||||
canvas_base_hi = BYTE1(SPRITES_2);
|
||||
bobs_restore_base = NUM_BOBS*SIZE_BOB_RESTORE;
|
||||
|
||||
// Select first screen
|
||||
@ -642,13 +642,13 @@ __interrupt void irq_screen_top() {
|
||||
// Change graphics bank
|
||||
CIA2->PORT_A = toDd00(SCREENS_2);
|
||||
// Set the next canvas base address
|
||||
canvas_base_hi = >SPRITES_1;
|
||||
canvas_base_hi = BYTE1(SPRITES_1);
|
||||
bobs_restore_base = 0;
|
||||
} else {
|
||||
// Change graphics bank
|
||||
CIA2->PORT_A = toDd00(SCREENS_1);
|
||||
// Set the next canvas base address
|
||||
canvas_base_hi = >SPRITES_2;
|
||||
canvas_base_hi = BYTE1(SPRITES_2);
|
||||
bobs_restore_base = NUM_BOBS*SIZE_BOB_RESTORE;
|
||||
}
|
||||
|
||||
|
@ -213,11 +213,11 @@ __interrupt void irq_part1_top() {
|
||||
VICII->MEMORY = toD018(P1_SCREEN, P1_PIXELS);
|
||||
|
||||
// Set up the flipper IRQ
|
||||
if(>irq_flipper_top_line)
|
||||
if(BYTE1(irq_flipper_top_line))
|
||||
*VICII_CONTROL1 |= 0x80;
|
||||
else
|
||||
*VICII_CONTROL1 &= 0x7f;
|
||||
*RASTER = (<irq_flipper_top_line)&0xf8;
|
||||
*RASTER = BYTE0(irq_flipper_top_line)&0xf8;
|
||||
*HARDWARE_IRQ = &irq_flipper_top;
|
||||
// Signal main routine to play music
|
||||
p1_work_ready = 1;
|
||||
@ -229,7 +229,7 @@ __interrupt void irq_part1_top() {
|
||||
// Flips from start screen to bitmap (stops the bitmap)
|
||||
__interrupt void irq_flipper_top() {
|
||||
asm { nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop }
|
||||
raster_fine((<irq_flipper_top_line)&7);
|
||||
raster_fine(BYTE0(irq_flipper_top_line)&7);
|
||||
asm {
|
||||
lda #$9a // VICII->MEMORY = toD018(LOAD_SCREEN, PIXELS_EMPTY);
|
||||
ldx #LIGHT_GREEN // VICII->BORDER_COLOR = LIGHT_GREEN;
|
||||
@ -242,11 +242,11 @@ __interrupt void irq_flipper_top() {
|
||||
sta VICII_CONTROL2
|
||||
}
|
||||
// Set up the flipper IRQ
|
||||
if(>irq_flipper_bottom_line)
|
||||
if(BYTE1(irq_flipper_bottom_line))
|
||||
*VICII_CONTROL1 |= 0x80;
|
||||
else
|
||||
*VICII_CONTROL1 &= 0x7f;
|
||||
*RASTER = (<irq_flipper_bottom_line)&0xf8;
|
||||
*RASTER = BYTE0(irq_flipper_bottom_line)&0xf8;
|
||||
*HARDWARE_IRQ = &irq_flipper_bottom;
|
||||
// Acknowledge the IRQ
|
||||
*IRQ_STATUS = IRQ_RASTER;
|
||||
@ -259,7 +259,7 @@ volatile unsigned int irq_flipper_idx = 0x00;
|
||||
// Flips from start screen to bitmap (starts the start-up screen)
|
||||
__interrupt void irq_flipper_bottom() {
|
||||
asm { nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop }
|
||||
raster_fine((<irq_flipper_bottom_line)&7);
|
||||
raster_fine(BYTE0(irq_flipper_bottom_line)&7);
|
||||
// Colors
|
||||
asm { nop nop nop nop }
|
||||
VICII->BORDER_COLOR = LIGHT_BLUE;
|
||||
|
@ -595,7 +595,7 @@ void vsp_update_screen(__ma char x_offset) {
|
||||
*PROCPORT = PROCPORT_RAM_ALL;
|
||||
// Update bitmap (using 3 routines to handle all bitmap columns)
|
||||
unsigned int x_offset8 = (unsigned int)x_offset*8;
|
||||
if(>x_offset8 == 0) {
|
||||
if(BYTE1(x_offset8) == 0) {
|
||||
kickasm(uses x_offset, uses x_offset8, uses PART2_BITMAP, uses LOGO_DATA_BITMAP, clobbers "AXY") {{
|
||||
ldx x_offset
|
||||
ldy x_offset8
|
||||
@ -605,7 +605,7 @@ void vsp_update_screen(__ma char x_offset) {
|
||||
sta PART2_BITMAP+row*40*8+pix,y
|
||||
}
|
||||
}}
|
||||
} else if(>x_offset8 == 1) {
|
||||
} else if(BYTE1(x_offset8) == 1) {
|
||||
kickasm(uses x_offset, uses x_offset8, uses PART2_BITMAP, uses LOGO_DATA_BITMAP, clobbers "AXY") {{
|
||||
ldx x_offset
|
||||
ldy x_offset8
|
||||
|
@ -30,7 +30,7 @@ void main() {
|
||||
signed word xw = (signed word)(word){ (byte)x, 0 };
|
||||
signed word yw = (signed word)(word){ (byte)y, 0 };
|
||||
word angle_w = atan2_16(xw, yw);
|
||||
byte ang_w = >(angle_w+0x0080);
|
||||
byte ang_w = BYTE1(angle_w+0x0080);
|
||||
//*screen = (>angle_w)-angle_b;
|
||||
//*screen = >angle_w;
|
||||
diff_sum += diff(ang_w, *screen_ref);
|
||||
|
@ -242,7 +242,7 @@ void calculate_matrix_16(signed char sx, signed char sy, signed char sz) {
|
||||
// Returns the rounded high char of the passed signed int.
|
||||
// Examines the lower char to determine whether to round up or down
|
||||
signed char round_hi(signed int val) {
|
||||
return (signed char)>(val+$80);
|
||||
return (signed char)BYTE1(val+$80);
|
||||
}
|
||||
|
||||
|
||||
|
@ -82,7 +82,7 @@ void makecharset(unsigned char* charset) {
|
||||
sid_rnd_init();
|
||||
print_cls();
|
||||
for (unsigned int c = 0; c < 0x100; ++c) {
|
||||
unsigned char s = SINTABLE[<c];
|
||||
unsigned char s = SINTABLE[BYTE0(c)];
|
||||
for ( unsigned char i = 0; i < 8; ++i){
|
||||
unsigned char b = 0;
|
||||
for (unsigned char ii = 0; ii < 8; ++ii) {
|
||||
|
@ -75,7 +75,7 @@ void makecharset(char* charset) {
|
||||
sid_rnd_init();
|
||||
print_cls();
|
||||
for (unsigned int c = 0; c < 0x100; ++c) {
|
||||
char s = SINTABLE[<c];
|
||||
char s = SINTABLE[BYTE0(c)];
|
||||
for ( char i = 0; i < 8; ++i){
|
||||
char b = 0;
|
||||
for (char ii = 0; ii < 8; ++ii) {
|
||||
|
@ -55,14 +55,14 @@ void anim() {
|
||||
mulf8s_prepare(sin_a);
|
||||
xr -= mulf8s_prepared(y)*2; // signed fixed[8.8]
|
||||
yr += mulf8s_prepared(x)*2; // signed fixed[8.8]
|
||||
signed int xpos = ((signed char) >xr) + 24 /*border*/ + 149 /*center*/;
|
||||
signed int xpos = ((signed char) BYTE1(xr)) + 24 /*border*/ + 149 /*center*/;
|
||||
sprite_msb = sprite_msb/2;
|
||||
if(>xpos!=0) {
|
||||
if(BYTE1(xpos)!=0) {
|
||||
sprite_msb |= $80;
|
||||
}
|
||||
char ypos = (>yr) + 89 /*center*/+ 51 /*border*/;
|
||||
char ypos = BYTE1(yr) + 89 /*center*/+ 51 /*border*/;
|
||||
char i2 = i*2;
|
||||
SPRITES_XPOS[i2] = <xpos;
|
||||
SPRITES_XPOS[i2] = BYTE0(xpos);
|
||||
SPRITES_YPOS[i2] = ypos;
|
||||
}
|
||||
VICII->SPRITES_XMSB = sprite_msb;
|
||||
|
@ -74,8 +74,8 @@ void anim() {
|
||||
char x_msb = 0;
|
||||
for( char j : 0..6) {
|
||||
unsigned int x = (unsigned int)$1e + sintab_x[xidx];
|
||||
x_msb = x_msb*2 | >x;
|
||||
SPRITES_XPOS[j2] = <x;
|
||||
x_msb = x_msb*2 | BYTE1(x);
|
||||
SPRITES_XPOS[j2] = BYTE0(x);
|
||||
SPRITES_YPOS[j2] = sintab_y[yidx];
|
||||
xidx = xidx+10;
|
||||
if(xidx>=sinlen_x) {
|
||||
|
@ -21,12 +21,12 @@ void main() {
|
||||
|
||||
dword calcbeg = src;
|
||||
dword calcend = src+num+(-1);
|
||||
byte bankbeg = (byte)(((((word)<(>calcbeg)<<8)|>(<calcbeg))>>5)+((word)<(>calcbeg)<<3));
|
||||
byte bankend = (byte)(((((word)<(>calcend)<<8)|>(<calcend))>>5)+((word)<(>calcend)<<3));
|
||||
byte bankbeg = BYTE2(calcbeg)<<3 | BYTE1(calcbeg)>>5 ; //(byte)(((((word)<(>calcbeg)<<8)|>(<calcbeg))>>5)+((word)<(>calcbeg)<<3));
|
||||
byte bankend = BYTE2(calcend)<<3 | BYTE1(calcend)>>5 ; //(byte)(((((word)<(>calcend)<<8)|>(<calcend))>>5)+((word)<(>calcend)<<3));
|
||||
const word borderbeg = 0xA000;
|
||||
const word borderend = 0xA000+0x1FFF;
|
||||
word beg = ((<calcbeg)&0x1FFF); // stip off the top 3 bits, which are representing the bank of the word!
|
||||
word end = ((<calcend)&0x1FFF); // same for the end;
|
||||
word beg = (WORD0(calcbeg)&0x1FFF); // stip off the top 3 bits, which are representing the bank of the word!
|
||||
word end = (WORD0(calcend)&0x1FFF); // same for the end;
|
||||
beg += borderbeg;
|
||||
end += borderbeg;
|
||||
|
||||
|
@ -80,17 +80,17 @@ void main() {
|
||||
// VRAM address of sprite
|
||||
const dword VRAM_SPRITE = 0x10000;
|
||||
// Sprite attributes: 8bpp, in front, 64x64, address SPRITE_PIXELS_VRAM
|
||||
struct VERA_SPRITE SPRITE_ATTR = { <(VRAM_SPRITE/32)|VERA_SPRITE_8BPP, 320-32, 240-32, 0x0c, 0xf1 };
|
||||
struct VERA_SPRITE SPRITE_ATTR = { WORD0(VRAM_SPRITE/32)|VERA_SPRITE_8BPP, 320-32, 240-32, 0x0c, 0xf1 };
|
||||
|
||||
char status = load_to_bank(8, "SPRITE", BANK_SPRITE );
|
||||
|
||||
memcpy_bank_to_vram(VERA_PALETTE+32, BANK_SPRITE-2, 32);
|
||||
memcpy_bank_to_vram(VRAM_SPRITE, BANK_SPRITE+32-2, 64*32);
|
||||
|
||||
SPRITE_ATTR.ADDR = <(VRAM_SPRITE/32)|VERA_SPRITE_4BPP;
|
||||
SPRITE_ATTR.ADDR = WORD0(VRAM_SPRITE/32)|VERA_SPRITE_4BPP;
|
||||
SPRITE_ATTR.X = 100;
|
||||
SPRITE_ATTR.Y = 100;
|
||||
memcpy_to_vram((char)>VERA_SPRITE_ATTR, (char*)<VERA_SPRITE_ATTR, &SPRITE_ATTR, sizeof(SPRITE_ATTR));
|
||||
memcpy_to_vram(BYTE2(VERA_SPRITE_ATTR), (char*)WORD0(VERA_SPRITE_ATTR), &SPRITE_ATTR, sizeof(SPRITE_ATTR));
|
||||
|
||||
// Enable sprites
|
||||
*VERA_CTRL &= ~VERA_DCSEL;
|
||||
|
@ -49,19 +49,19 @@ __align(0x0400) char SPRITE_PIXELS[64*64+0x200] = kickasm(resource "tut.png") {{
|
||||
const unsigned long SPRITE_PIXELS_VRAM = 0x08000;
|
||||
|
||||
// Sprite attributes: 8bpp, in front, 64x64, address SPRITE_PIXELS_VRAM
|
||||
struct VERA_SPRITE SPRITE_ATTR = { <(SPRITE_PIXELS_VRAM/32)|VERA_SPRITE_8BPP, 320-32, 240-32, 0x0c, 0xf0 };
|
||||
struct VERA_SPRITE SPRITE_ATTR = { WORD0(SPRITE_PIXELS_VRAM/32)|VERA_SPRITE_8BPP, 320-32, 240-32, 0x0c, 0xf0 };
|
||||
|
||||
void main() {
|
||||
// Copy sprite data to VRAM
|
||||
memcpy_to_vram((char)>SPRITE_PIXELS_VRAM, (char*)<SPRITE_PIXELS_VRAM, SPRITE_PIXELS, 64*64);
|
||||
memcpy_to_vram(BYTE2(SPRITE_PIXELS_VRAM), (char*)WORD0(SPRITE_PIXELS_VRAM), SPRITE_PIXELS, 64*64);
|
||||
// Copy sprite palette to VRAM
|
||||
memcpy_to_vram((char)>VERA_PALETTE, (char*)<VERA_PALETTE, SPRITE_PIXELS+64*64, 0x200);
|
||||
memcpy_to_vram(BYTE2(VERA_PALETTE), (char*)WORD0(VERA_PALETTE), SPRITE_PIXELS+64*64, 0x200);
|
||||
// Copy 8* sprite attributes to VRAM
|
||||
char* vram_sprite_attr = (char*)<VERA_SPRITE_ATTR;
|
||||
char* vram_sprite_attr = (char*)WORD0(VERA_SPRITE_ATTR);
|
||||
for(char s=0;s<NUM_SPRITES;s++) {
|
||||
SPRITE_ATTR.X += 10;
|
||||
SPRITE_ATTR.Y += 10;
|
||||
memcpy_to_vram((char)>VERA_SPRITE_ATTR, vram_sprite_attr, &SPRITE_ATTR, sizeof(SPRITE_ATTR));
|
||||
memcpy_to_vram((char)WORD1(VERA_SPRITE_ATTR), vram_sprite_attr, &SPRITE_ATTR, sizeof(SPRITE_ATTR));
|
||||
vram_sprite_attr += sizeof(SPRITE_ATTR);
|
||||
}
|
||||
// Enable sprites
|
||||
@ -96,8 +96,8 @@ __interrupt(rom_sys_cx16) void irq_vsync() {
|
||||
// Move the sprite around
|
||||
if(++sin_idx_x==SINX_LEN) sin_idx_x = 0;
|
||||
if(--sin_idx_y==0xffff) sin_idx_y = SINY_LEN-1;
|
||||
const char vram_sprite_attr_bank = (char)>VERA_SPRITE_ATTR;
|
||||
char *vram_sprite_pos = (char*)<VERA_SPRITE_ATTR+2;
|
||||
const char vram_sprite_attr_bank = BYTE2(VERA_SPRITE_ATTR);
|
||||
char *vram_sprite_pos = (char*)WORD0(VERA_SPRITE_ATTR+2);
|
||||
unsigned int i_x = sin_idx_x;
|
||||
unsigned int i_y = sin_idx_y;
|
||||
for(char s=0;s<NUM_SPRITES;s++) {
|
||||
|
@ -27,7 +27,7 @@ void main() {
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
|
||||
};
|
||||
|
||||
word tilebase = 0x4000;
|
||||
char* tilebase = (char*)0x4000;
|
||||
memcpy_to_vram(1, tilebase, tiles, 64);
|
||||
tilebase+=64;
|
||||
for(byte t:1..255) {
|
||||
|
@ -66,7 +66,7 @@ void point_init(byte point_idx) {
|
||||
x_add[point_idx] = $10;
|
||||
}
|
||||
signed word x_stepf = divr16s(0, x_diff, y_diff);
|
||||
y_add[point_idx] = (signed byte)((>x_stepf)/$10);
|
||||
y_add[point_idx] = (signed byte)(BYTE1(x_stepf)/$10);
|
||||
} else {
|
||||
// X is driver - abs(x/y) is < 1
|
||||
}
|
||||
@ -109,8 +109,8 @@ void bitmap_init(byte* bitmap) {
|
||||
}
|
||||
byte* yoffs = bitmap;
|
||||
for(byte y : 0..255) {
|
||||
bitmap_plot_ylo[y] = y&$7 | <yoffs;
|
||||
bitmap_plot_yhi[y] = >yoffs;
|
||||
bitmap_plot_ylo[y] = y&$7 | BYTE0(yoffs);
|
||||
bitmap_plot_yhi[y] = BYTE1(yoffs);
|
||||
if((y&$7)==7) {
|
||||
yoffs = yoffs + 40*8;
|
||||
}
|
||||
@ -131,5 +131,5 @@ void bitmap_clear() {
|
||||
void bitmap_plot(word x, byte y) {
|
||||
byte* plotter = (byte*) { bitmap_plot_yhi[y], bitmap_plot_ylo[y] };
|
||||
plotter += ( x & $fff8 );
|
||||
*plotter |= bitmap_plot_bit[<x];
|
||||
*plotter |= bitmap_plot_bit[BYTE0(x)];
|
||||
}
|
||||
|
@ -70,7 +70,7 @@ void init_angle_screen(byte* screen) {
|
||||
signed word xw = (signed word)(word){ 39-x*2, 0 };
|
||||
signed word yw = (signed word)(word){ y*2, 0 };
|
||||
word angle_w = atan2_16(xw, yw);
|
||||
byte ang_w = >(angle_w+0x0080);
|
||||
byte ang_w = BYTE1(angle_w+0x0080);
|
||||
screen_bottomline[xb] = ang_w;
|
||||
screen_topline[xb] = -ang_w;
|
||||
screen_topline[x] = 0x80+ang_w;
|
||||
@ -114,7 +114,7 @@ void make_plasma_charset(char* charset) {
|
||||
sid_rnd_init();
|
||||
print_cls();
|
||||
for (unsigned int c = 0; c < 0x100; ++c) {
|
||||
char s = SINTABLE[<c];
|
||||
char s = SINTABLE[BYTE0(c)];
|
||||
for ( char i = 0; i < 8; ++i){
|
||||
char b = 0;
|
||||
for (char ii = 0; ii < 8; ++ii) {
|
||||
|
@ -33,7 +33,7 @@ void init_angle_screen(byte* screen) {
|
||||
signed word xw = (signed word)(word){ 39-x*2, 0 };
|
||||
signed word yw = (signed word)(word){ y*2, 0 };
|
||||
word angle_w = atan2_16(xw, yw);
|
||||
byte ang_w = >(angle_w+0x0080);
|
||||
byte ang_w = BYTE1(angle_w+0x0080);
|
||||
screen_bottomline[xb] = ang_w;
|
||||
screen_topline[xb] = -ang_w;
|
||||
screen_topline[x] = 0x80+ang_w;
|
||||
|
@ -118,7 +118,7 @@ void init_angle_screen(byte* screen) {
|
||||
signed word xw = (signed word)(word){ 39-x*2, 0 };
|
||||
signed word yw = (signed word)(word){ y*2, 0 };
|
||||
word angle_w = atan2_16(xw, yw);
|
||||
byte ang_w = >(angle_w+0x0080);
|
||||
byte ang_w = BYTE1(angle_w+0x0080);
|
||||
screen_bottomline[xb] = ang_w;
|
||||
screen_topline[xb] = -ang_w;
|
||||
screen_topline[x] = 0x80+ang_w;
|
||||
|
@ -57,7 +57,7 @@ void init_angle_screen(byte* screen) {
|
||||
signed word xw = (signed word)(word){ 39-x*2, 0 };
|
||||
signed word yw = (signed word)(word){ y*2, 0 };
|
||||
word angle_w = atan2_16(xw, yw);
|
||||
byte ang_w = >(angle_w+0x0080);
|
||||
byte ang_w = BYTE1(angle_w+0x0080);
|
||||
screen_bottomline[xb] = ang_w;
|
||||
screen_topline[xb] = -ang_w;
|
||||
screen_topline[x] = 0x80+ang_w;
|
||||
|
@ -15,7 +15,7 @@ void sin16s_genb(signed word* sintab, word wavelength) {
|
||||
// Iterate over the table
|
||||
dword x = 0; // u[4.28]
|
||||
for( word i=0; i<wavelength; i++) {
|
||||
*sintab++ = sin16sb(>x);
|
||||
*sintab++ = sin16sb(WORD1(x));
|
||||
x = x + step;
|
||||
}
|
||||
}
|
||||
|
@ -11,7 +11,7 @@ void main() {
|
||||
for(byte i: 0..191) {
|
||||
signed byte sb = sintabb[i];
|
||||
signed word sw = *(sintabw+(word)i);
|
||||
signed byte sd = sb-(signed byte)>sw;
|
||||
signed byte sd = sb-(signed byte)BYTE1(sw);
|
||||
print_schar(sd);
|
||||
print_str(" ");
|
||||
}
|
||||
|
@ -48,7 +48,7 @@ void sin8u_table(byte* sintab, word tabsize, byte min, byte max) {
|
||||
for( word i=0; i<tabsize; i++) {
|
||||
signed byte sinx = sin8s(x);
|
||||
signed word sinx_sc = mul8su(sinx, amplitude+1);
|
||||
byte sinx_tr = mid+>sinx_sc;
|
||||
byte sinx_tr = mid+BYTE1(sinx_sc);
|
||||
*sintab++ = sinx_tr;
|
||||
print_str("x: ");
|
||||
print_uint(x);
|
||||
|
@ -176,8 +176,8 @@
|
||||
.label form_VICII_bg3_hi = form_fields_val+$22
|
||||
.label form_VICII_bg3_lo = form_fields_val+$23
|
||||
.label print_char_cursor = $d
|
||||
.label print_line_cursor = $f
|
||||
.label print_screen = $f
|
||||
.label print_line_cursor = $11
|
||||
.label print_screen = $11
|
||||
// Keyboard event buffer size. The number of events currently in the event buffer
|
||||
.label keyboard_events_size = $a
|
||||
// Counts down to blink for form cursor (it is inversed in the lower half)
|
||||
@ -312,11 +312,11 @@ form_mode: {
|
||||
// DTV Graphics Bank
|
||||
lda #0
|
||||
sta DTV_GRAPHICS_VIC_BANK
|
||||
// *DTV_COLOR_BANK_LO = <((word)(DTV_COLOR_BANK_DEFAULT/$400))
|
||||
// *DTV_COLOR_BANK_LO = BYTE0((word)(DTV_COLOR_BANK_DEFAULT/$400))
|
||||
// DTV Color Bank
|
||||
lda #<DTV_COLOR_BANK_DEFAULT/$400
|
||||
sta DTV_COLOR_BANK_LO
|
||||
// *DTV_COLOR_BANK_HI = >((word)(DTV_COLOR_BANK_DEFAULT/$400))
|
||||
// *DTV_COLOR_BANK_HI = BYTE1((word)(DTV_COLOR_BANK_DEFAULT/$400))
|
||||
lda #0
|
||||
sta DTV_COLOR_BANK_HI
|
||||
// CIA2->PORT_A_DDR = %00000011
|
||||
@ -342,11 +342,11 @@ form_mode: {
|
||||
// VIC Memory Pointers
|
||||
lda #(FORM_SCREEN&$3fff)/$40|(FORM_CHARSET&$3fff)/$400
|
||||
sta VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY
|
||||
// *DTV_PLANEA_START_LO = < FORM_SCREEN
|
||||
// *DTV_PLANEA_START_LO = BYTE0(FORM_SCREEN)
|
||||
// DTV Plane A to FORM_SCREEN also
|
||||
lda #0
|
||||
sta DTV_PLANEA_START_LO
|
||||
// *DTV_PLANEA_START_MI = > FORM_SCREEN
|
||||
// *DTV_PLANEA_START_MI = BYTE1(FORM_SCREEN)
|
||||
lda #>FORM_SCREEN
|
||||
sta DTV_PLANEA_START_MI
|
||||
// *DTV_PLANEA_START_HI = 0
|
||||
@ -407,19 +407,13 @@ form_mode: {
|
||||
// Change graphics mode to show the selected graphics mode
|
||||
gfx_mode: {
|
||||
.label __20 = 5
|
||||
.label __22 = $11
|
||||
.label __24 = $27
|
||||
.label __26 = $13
|
||||
.label __34 = 5
|
||||
.label __36 = $17
|
||||
.label __38 = $19
|
||||
.label __40 = $1b
|
||||
.label __47 = $b
|
||||
.label __48 = $b
|
||||
.label __50 = $f
|
||||
.label __52 = $15
|
||||
.label __82 = $b
|
||||
.label __83 = $f
|
||||
.label __31 = 5
|
||||
.label __41 = $b
|
||||
.label __42 = $b
|
||||
.label __44 = $11
|
||||
.label __46 = $13
|
||||
.label __76 = $b
|
||||
.label __77 = $11
|
||||
.label plane_a = 5
|
||||
.label plane_b = 5
|
||||
.label VICII_colors = $b
|
||||
@ -539,31 +533,17 @@ gfx_mode: {
|
||||
lda.z plane_a+3
|
||||
adc #0
|
||||
sta.z plane_a+3
|
||||
// < plane_a
|
||||
// BYTE0(plane_a)
|
||||
lda.z plane_a
|
||||
sta.z __22
|
||||
lda.z plane_a+1
|
||||
sta.z __22+1
|
||||
// < < plane_a
|
||||
lda.z __22
|
||||
// *DTV_PLANEA_START_LO = < < plane_a
|
||||
// *DTV_PLANEA_START_LO = BYTE0(plane_a)
|
||||
sta DTV_PLANEA_START_LO
|
||||
// < plane_a
|
||||
lda.z plane_a
|
||||
sta.z __24
|
||||
// BYTE1(plane_a)
|
||||
lda.z plane_a+1
|
||||
sta.z __24+1
|
||||
// > < plane_a
|
||||
// *DTV_PLANEA_START_MI = > < plane_a
|
||||
// *DTV_PLANEA_START_MI = BYTE1(plane_a)
|
||||
sta DTV_PLANEA_START_MI
|
||||
// > plane_a
|
||||
// BYTE2(plane_a)
|
||||
lda.z plane_a+2
|
||||
sta.z __26
|
||||
lda.z plane_a+3
|
||||
sta.z __26+1
|
||||
// < > plane_a
|
||||
lda.z __26
|
||||
// *DTV_PLANEA_START_HI = < > plane_a
|
||||
// *DTV_PLANEA_START_HI = BYTE2(plane_a)
|
||||
sta DTV_PLANEA_START_HI
|
||||
// *form_a_step_hi*$10
|
||||
lda form_a_step_hi
|
||||
@ -615,31 +595,17 @@ gfx_mode: {
|
||||
lda.z plane_b+3
|
||||
adc #0
|
||||
sta.z plane_b+3
|
||||
// < plane_b
|
||||
// BYTE0(plane_b)
|
||||
lda.z plane_b
|
||||
sta.z __36
|
||||
lda.z plane_b+1
|
||||
sta.z __36+1
|
||||
// < < plane_b
|
||||
lda.z __36
|
||||
// *DTV_PLANEB_START_LO = < < plane_b
|
||||
// *DTV_PLANEB_START_LO = BYTE0(plane_b)
|
||||
sta DTV_PLANEB_START_LO
|
||||
// < plane_b
|
||||
lda.z plane_b
|
||||
sta.z __38
|
||||
// BYTE1(plane_b)
|
||||
lda.z plane_b+1
|
||||
sta.z __38+1
|
||||
// > < plane_b
|
||||
// *DTV_PLANEB_START_MI = > < plane_b
|
||||
// *DTV_PLANEB_START_MI = BYTE1(plane_b)
|
||||
sta DTV_PLANEB_START_MI
|
||||
// > plane_b
|
||||
// BYTE2(plane_b)
|
||||
lda.z plane_b+2
|
||||
sta.z __40
|
||||
lda.z plane_b+3
|
||||
sta.z __40+1
|
||||
// < > plane_b
|
||||
lda.z __40
|
||||
// *DTV_PLANEB_START_HI = < > plane_b
|
||||
// *DTV_PLANEB_START_HI = BYTE2(plane_b)
|
||||
sta DTV_PLANEB_START_HI
|
||||
// *form_b_step_hi*$10
|
||||
lda form_b_step_hi
|
||||
@ -677,44 +643,44 @@ gfx_mode: {
|
||||
jsr get_VICII_screen
|
||||
// get_VICII_screen(*form_VICII_screen)
|
||||
// (word)get_VICII_screen(*form_VICII_screen)&$3fff
|
||||
lda.z __47
|
||||
lda.z __41
|
||||
and #<$3fff
|
||||
sta.z __47
|
||||
lda.z __47+1
|
||||
sta.z __41
|
||||
lda.z __41+1
|
||||
and #>$3fff
|
||||
sta.z __47+1
|
||||
sta.z __41+1
|
||||
// ((word)get_VICII_screen(*form_VICII_screen)&$3fff)/$40
|
||||
lda.z __48
|
||||
lda.z __42
|
||||
asl
|
||||
sta.z $ff
|
||||
lda.z __48+1
|
||||
lda.z __42+1
|
||||
rol
|
||||
sta.z __48
|
||||
sta.z __42
|
||||
lda #0
|
||||
rol
|
||||
sta.z __48+1
|
||||
sta.z __42+1
|
||||
asl.z $ff
|
||||
rol.z __48
|
||||
rol.z __48+1
|
||||
rol.z __42
|
||||
rol.z __42+1
|
||||
// get_VICII_charset(*form_VICII_gfx)
|
||||
lda form_VICII_gfx
|
||||
jsr get_VICII_charset
|
||||
// (word)get_VICII_charset(*form_VICII_gfx)&$3fff
|
||||
lda.z __50
|
||||
lda.z __44
|
||||
and #<$3fff
|
||||
sta.z __50
|
||||
lda.z __50+1
|
||||
sta.z __44
|
||||
lda.z __44+1
|
||||
and #>$3fff
|
||||
sta.z __50+1
|
||||
// >((word)get_VICII_charset(*form_VICII_gfx)&$3fff)
|
||||
// (>((word)get_VICII_charset(*form_VICII_gfx)&$3fff))/4
|
||||
sta.z __44+1
|
||||
// BYTE1((word)get_VICII_charset(*form_VICII_gfx)&$3fff)
|
||||
// (BYTE1((word)get_VICII_charset(*form_VICII_gfx)&$3fff))/4
|
||||
lsr
|
||||
lsr
|
||||
sta.z __52
|
||||
// (byte)(((word)get_VICII_screen(*form_VICII_screen)&$3fff)/$40) | ((>((word)get_VICII_charset(*form_VICII_gfx)&$3fff))/4)
|
||||
lda.z __48
|
||||
ora.z __52
|
||||
// *VICII_MEMORY = (byte)(((word)get_VICII_screen(*form_VICII_screen)&$3fff)/$40) | ((>((word)get_VICII_charset(*form_VICII_gfx)&$3fff))/4)
|
||||
sta.z __46
|
||||
// (byte)(((word)get_VICII_screen(*form_VICII_screen)&$3fff)/$40) | ((BYTE1((word)get_VICII_charset(*form_VICII_gfx)&$3fff))/4)
|
||||
lda.z __42
|
||||
ora.z __46
|
||||
// *VICII_MEMORY = (byte)(((word)get_VICII_screen(*form_VICII_screen)&$3fff)/$40) | ((BYTE1((word)get_VICII_charset(*form_VICII_gfx)&$3fff))/4)
|
||||
// Set VIC Bank
|
||||
// VIC memory
|
||||
sta VICII_MEMORY
|
||||
@ -845,7 +811,7 @@ gfx_mode: {
|
||||
}
|
||||
// Initialize VIC screen 0 ( value is %yyyyxxxx where yyyy is ypos and xxxx is xpos)
|
||||
gfx_init_screen0: {
|
||||
.label __1 = $16
|
||||
.label __1 = $14
|
||||
.label ch = $b
|
||||
.label cy = 3
|
||||
lda #<VICII_SCREEN0
|
||||
@ -932,7 +898,7 @@ gfx_init_screen1: {
|
||||
}
|
||||
// Initialize VIC screen 2 ( value is %ccccrrrr where cccc is (x+y mod $f) and rrrr is %1111-%cccc)
|
||||
gfx_init_screen2: {
|
||||
.label col2 = $16
|
||||
.label col2 = $14
|
||||
.label ch = $b
|
||||
.label cy = 2
|
||||
lda #<VICII_SCREEN2
|
||||
@ -1162,7 +1128,7 @@ gfx_init_VICII_bitmap: {
|
||||
.segment Code
|
||||
// Initialize 8BPP Chunky Bitmap (contains 8bpp pixels)
|
||||
gfx_init_plane_8bppchunky: {
|
||||
.label __5 = $1b
|
||||
.label __5 = $19
|
||||
.label gfxb = $d
|
||||
.label x = $b
|
||||
.label y = 4
|
||||
@ -1243,10 +1209,10 @@ gfx_init_plane_8bppchunky: {
|
||||
gfx_init_plane_charset8: {
|
||||
// 8bpp cells for Plane B (charset) - ROM charset with 256 colors
|
||||
.const gfxbCpuBank = PLANE_CHARSET8/$4000
|
||||
.label bits = $15
|
||||
.label bits = $13
|
||||
.label chargen = $d
|
||||
.label gfxa = $b
|
||||
.label col = $16
|
||||
.label col = $14
|
||||
.label cr = $a
|
||||
.label ch = 9
|
||||
// dtvSetCpuBankSegment1(gfxbCpuBank++)
|
||||
@ -1432,7 +1398,7 @@ gfx_init_plane_vertical: {
|
||||
gfx_init_plane_horisontal2: {
|
||||
.const gfxbCpuBank = PLANE_HORISONTAL2/$4000
|
||||
.label gfxa = $d
|
||||
.label ay = $15
|
||||
.label ay = $13
|
||||
// dtvSetCpuBankSegment1(gfxbCpuBank++)
|
||||
lda #gfxbCpuBank
|
||||
jsr dtvSetCpuBankSegment1
|
||||
@ -1531,9 +1497,9 @@ gfx_init_plane_full: {
|
||||
rts
|
||||
}
|
||||
// Set the screen to print on. Also resets current line/char cursor.
|
||||
// print_set_screen(byte* zp($f) screen)
|
||||
// print_set_screen(byte* zp($11) screen)
|
||||
print_set_screen: {
|
||||
.label screen = $f
|
||||
.label screen = $11
|
||||
// print_screen = screen
|
||||
// }
|
||||
rts
|
||||
@ -1599,20 +1565,20 @@ print_str_lines: {
|
||||
// Set the screen to use for the form.
|
||||
// screen is the start address of the screen to use
|
||||
form_set_screen: {
|
||||
.label line = $f
|
||||
.label line = $11
|
||||
ldx #0
|
||||
lda #<FORM_SCREEN
|
||||
sta.z line
|
||||
lda #>FORM_SCREEN
|
||||
sta.z line+1
|
||||
__b1:
|
||||
// <line
|
||||
// BYTE0(line)
|
||||
lda.z line
|
||||
// form_line_lo[y] = <line
|
||||
// form_line_lo[y] = BYTE0(line)
|
||||
sta form_line_lo,x
|
||||
// >line
|
||||
// BYTE1(line)
|
||||
lda.z line+1
|
||||
// form_line_hi[y] = >line
|
||||
// form_line_hi[y] = BYTE1(line)
|
||||
sta form_line_hi,x
|
||||
// line = line + 40
|
||||
lda #$28
|
||||
@ -1787,7 +1753,7 @@ render_preset_name: {
|
||||
// Reads keyboard and allows the user to navigate and change the fields of the form
|
||||
// Returns 0 if space is not pressed, non-0 if space is pressed
|
||||
form_control: {
|
||||
.label field = $1d
|
||||
.label field = $27
|
||||
// form_field_ptr(form_field_idx)
|
||||
ldx.z form_field_idx
|
||||
jsr form_field_ptr
|
||||
@ -2296,7 +2262,7 @@ get_VICII_screen: {
|
||||
// Get the VIC charset/bitmap address from the index
|
||||
// get_VICII_charset(byte register(A) idx)
|
||||
get_VICII_charset: {
|
||||
.label return = $f
|
||||
.label return = $11
|
||||
// if(idx==0)
|
||||
cmp #0
|
||||
beq __b1
|
||||
@ -2323,7 +2289,7 @@ get_VICII_charset: {
|
||||
keyboard_event_scan: {
|
||||
.label row_scan = $25
|
||||
.label keycode = 9
|
||||
.label row = $16
|
||||
.label row = $14
|
||||
lda #0
|
||||
sta.z keycode
|
||||
sta.z row
|
||||
@ -2476,7 +2442,7 @@ keyboard_event_get: {
|
||||
// Initialize bitmap plotting tables
|
||||
bitmap_init: {
|
||||
.label __7 = $25
|
||||
.label yoffs = $f
|
||||
.label yoffs = $11
|
||||
ldx #0
|
||||
lda #$80
|
||||
__b1:
|
||||
@ -2502,15 +2468,15 @@ bitmap_init: {
|
||||
// y&$7
|
||||
lda #7
|
||||
sax.z __7
|
||||
// <yoffs
|
||||
// BYTE0(yoffs)
|
||||
lda.z yoffs
|
||||
// y&$7 | <yoffs
|
||||
// y&$7 | BYTE0(yoffs)
|
||||
ora.z __7
|
||||
// bitmap_plot_ylo[y] = y&$7 | <yoffs
|
||||
// bitmap_plot_ylo[y] = y&$7 | BYTE0(yoffs)
|
||||
sta bitmap_plot_ylo,x
|
||||
// >yoffs
|
||||
// BYTE1(yoffs)
|
||||
lda.z yoffs+1
|
||||
// bitmap_plot_yhi[y] = >yoffs
|
||||
// bitmap_plot_yhi[y] = BYTE1(yoffs)
|
||||
sta bitmap_plot_yhi,x
|
||||
// if((y&$7)==7)
|
||||
lda #7
|
||||
@ -2563,20 +2529,20 @@ bitmap_clear: {
|
||||
rts
|
||||
}
|
||||
// Draw a line on the bitmap using bresenhams algorithm
|
||||
// bitmap_line(word zp($d) x1, word zp($1b) y1, word zp($17) x2, word zp($19) y2)
|
||||
// bitmap_line(word zp($d) x1, word zp($f) y1, word zp($15) x2, word zp($17) y2)
|
||||
bitmap_line: {
|
||||
.label dx = $1d
|
||||
.label dy = $11
|
||||
.label sx = $23
|
||||
.label sy = $13
|
||||
.label e1 = $f
|
||||
.label dx = $1b
|
||||
.label dy = $19
|
||||
.label sx = $1d
|
||||
.label sy = $23
|
||||
.label e1 = $11
|
||||
.label e = $b
|
||||
.label y = $1b
|
||||
.label y = $f
|
||||
.label x = $d
|
||||
.label x1 = $d
|
||||
.label y1 = $1b
|
||||
.label x2 = $17
|
||||
.label y2 = $19
|
||||
.label y1 = $f
|
||||
.label x2 = $15
|
||||
.label y2 = $17
|
||||
// abs_u16(x2-x1)
|
||||
lda.z x2
|
||||
sec
|
||||
@ -2657,7 +2623,7 @@ bitmap_line: {
|
||||
sta.z e
|
||||
__b6:
|
||||
// bitmap_plot(x,(char)y)
|
||||
lda.z y
|
||||
ldx.z y
|
||||
jsr bitmap_plot
|
||||
// y += sy
|
||||
lda.z y
|
||||
@ -2709,7 +2675,7 @@ bitmap_line: {
|
||||
bne __b6
|
||||
__b3:
|
||||
// bitmap_plot(x,(char)y)
|
||||
lda.z y
|
||||
ldx.z y
|
||||
jsr bitmap_plot
|
||||
// }
|
||||
rts
|
||||
@ -2723,7 +2689,7 @@ bitmap_line: {
|
||||
sta.z e1
|
||||
__b9:
|
||||
// bitmap_plot(x,(char)y)
|
||||
lda.z y
|
||||
ldx.z y
|
||||
jsr bitmap_plot
|
||||
// x += sx
|
||||
lda.z x
|
||||
@ -2776,7 +2742,7 @@ bitmap_line: {
|
||||
jmp __b3
|
||||
__b4:
|
||||
// bitmap_plot(x,(char)y)
|
||||
lda.z y1
|
||||
ldx.z y1
|
||||
jsr bitmap_plot
|
||||
rts
|
||||
}
|
||||
@ -2800,9 +2766,8 @@ dtvSetCpuBankSegment1: {
|
||||
// gfx_init_plane_fill(dword zp(5) plane_addr, byte zp(9) fill)
|
||||
gfx_init_plane_fill: {
|
||||
.label __0 = $1f
|
||||
.label __1 = $23
|
||||
.label __3 = $b
|
||||
.label __4 = $b
|
||||
.label __5 = $b
|
||||
.label gfxb = $b
|
||||
.label by = $a
|
||||
.label plane_addr = 5
|
||||
@ -2824,28 +2789,23 @@ gfx_init_plane_fill: {
|
||||
rol.z __0+1
|
||||
rol.z __0+2
|
||||
rol.z __0+3
|
||||
// >(plane_addr*4)
|
||||
// byte gfxbCpuBank = BYTE2(plane_addr*4)
|
||||
lda.z __0+2
|
||||
sta.z __1
|
||||
lda.z __0+3
|
||||
sta.z __1+1
|
||||
// byte gfxbCpuBank = < >(plane_addr*4)
|
||||
lda.z __1
|
||||
// dtvSetCpuBankSegment1(gfxbCpuBank++)
|
||||
jsr dtvSetCpuBankSegment1
|
||||
// <plane_addr
|
||||
// WORD0(plane_addr)
|
||||
lda.z plane_addr
|
||||
sta.z __4
|
||||
sta.z __3
|
||||
lda.z plane_addr+1
|
||||
sta.z __4+1
|
||||
// <plane_addr & $3fff
|
||||
lda.z __5
|
||||
sta.z __3+1
|
||||
// WORD0(plane_addr) & $3fff
|
||||
lda.z __4
|
||||
and #<$3fff
|
||||
sta.z __5
|
||||
lda.z __5+1
|
||||
sta.z __4
|
||||
lda.z __4+1
|
||||
and #>$3fff
|
||||
sta.z __5+1
|
||||
// byte* gfxb = (byte*)$4000 + (<plane_addr & $3fff)
|
||||
sta.z __4+1
|
||||
// byte* gfxb = (byte*)$4000 + (WORD0(plane_addr) & $3fff)
|
||||
clc
|
||||
lda.z gfxb
|
||||
adc #<$4000
|
||||
@ -2884,11 +2844,11 @@ gfx_init_plane_fill: {
|
||||
rts
|
||||
}
|
||||
// Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str.
|
||||
// memset(void* zp($1b) str, byte register(X) c, word zp($d) num)
|
||||
// memset(void* zp($f) str, byte register(X) c, word zp($d) num)
|
||||
memset: {
|
||||
.label str = $1b
|
||||
.label str = $f
|
||||
.label end = $d
|
||||
.label dst = $1b
|
||||
.label dst = $f
|
||||
.label num = $d
|
||||
// if(num>0)
|
||||
lda.z num
|
||||
@ -2968,9 +2928,9 @@ print_ln: {
|
||||
// field_idx is the index of the field to get the screen address for
|
||||
// form_field_ptr(byte register(X) field_idx)
|
||||
form_field_ptr: {
|
||||
.label line = $27
|
||||
.label line = $23
|
||||
.label x = $25
|
||||
.label return = $1d
|
||||
.label return = $27
|
||||
// byte y = form_fields_y[field_idx]
|
||||
ldy form_fields_y,x
|
||||
// byte* line = (byte*) { form_line_hi[y], form_line_lo[y] }
|
||||
@ -2992,9 +2952,9 @@ form_field_ptr: {
|
||||
rts
|
||||
}
|
||||
// Print a string at a specific screen position
|
||||
// print_str_at(byte* zp($b) str, byte* zp($f) at)
|
||||
// print_str_at(byte* zp($b) str, byte* zp($11) at)
|
||||
print_str_at: {
|
||||
.label at = $f
|
||||
.label at = $11
|
||||
.label str = $b
|
||||
lda #<FORM_SCREEN+$28*2+$a
|
||||
sta.z at
|
||||
@ -3042,10 +3002,10 @@ keyboard_matrix_read: {
|
||||
}
|
||||
// Determine if a specific key is currently pressed based on the last keyboard_event_scan()
|
||||
// Returns 0 is not pressed and non-0 if pressed
|
||||
// keyboard_event_pressed(byte zp($15) keycode)
|
||||
// keyboard_event_pressed(byte zp($13) keycode)
|
||||
keyboard_event_pressed: {
|
||||
.label row_bits = $26
|
||||
.label keycode = $15
|
||||
.label keycode = $13
|
||||
// keycode>>3
|
||||
lda.z keycode
|
||||
lsr
|
||||
@ -3066,15 +3026,15 @@ keyboard_event_pressed: {
|
||||
rts
|
||||
}
|
||||
// Get the absolute value of a 16-bit unsigned number treated as a signed number.
|
||||
// abs_u16(word zp($11) w)
|
||||
// abs_u16(word zp($19) w)
|
||||
abs_u16: {
|
||||
.label w = $11
|
||||
.label return = $11
|
||||
// >w
|
||||
.label w = $19
|
||||
.label return = $19
|
||||
// BYTE1(w)
|
||||
lda.z w+1
|
||||
// >w&0x80
|
||||
// BYTE1(w)&0x80
|
||||
and #$80
|
||||
// if(>w&0x80)
|
||||
// if(BYTE1(w)&0x80)
|
||||
cmp #0
|
||||
bne __b1
|
||||
rts
|
||||
@ -3095,12 +3055,12 @@ abs_u16: {
|
||||
// sgn_u16(word zp($27) w)
|
||||
sgn_u16: {
|
||||
.label w = $27
|
||||
.label return = $13
|
||||
// >w
|
||||
.label return = $23
|
||||
// BYTE1(w)
|
||||
lda.z w+1
|
||||
// >w&0x80
|
||||
// BYTE1(w)&0x80
|
||||
and #$80
|
||||
// if(>w&0x80)
|
||||
// if(BYTE1(w)&0x80)
|
||||
cmp #0
|
||||
bne __b1
|
||||
lda #<1
|
||||
@ -3116,16 +3076,15 @@ sgn_u16: {
|
||||
rts
|
||||
}
|
||||
// Plot a single dot in the bitmap
|
||||
// bitmap_plot(word zp($d) x, byte register(A) y)
|
||||
// bitmap_plot(word zp($d) x, byte register(X) y)
|
||||
bitmap_plot: {
|
||||
.label __0 = $29
|
||||
.label plotter = $27
|
||||
.label x = $d
|
||||
// char* plotter = (char*) { bitmap_plot_yhi[y], bitmap_plot_ylo[y] }
|
||||
tay
|
||||
lda bitmap_plot_yhi,y
|
||||
lda bitmap_plot_yhi,x
|
||||
sta.z plotter+1
|
||||
lda bitmap_plot_ylo,y
|
||||
lda bitmap_plot_ylo,x
|
||||
sta.z plotter
|
||||
// x & $fff8
|
||||
lda.z x
|
||||
@ -3142,9 +3101,9 @@ bitmap_plot: {
|
||||
lda.z plotter+1
|
||||
adc.z __0+1
|
||||
sta.z plotter+1
|
||||
// <x
|
||||
// BYTE0(x)
|
||||
ldx.z x
|
||||
// *plotter |= bitmap_plot_bit[<x]
|
||||
// *plotter |= bitmap_plot_bit[BYTE0(x)]
|
||||
lda bitmap_plot_bit,x
|
||||
ldy #0
|
||||
ora (plotter),y
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -97,14 +97,14 @@ word abs_u16(word abs_u16::w)
|
||||
byte~ abs_u16::$0 reg byte a 200002.0
|
||||
byte~ abs_u16::$1 reg byte a 200002.0
|
||||
word abs_u16::return
|
||||
word abs_u16::return#0 return zp[2]:17 20002.0
|
||||
word abs_u16::return#1 return zp[2]:17 20002.0
|
||||
word abs_u16::return#2 return zp[2]:17 200002.0
|
||||
word abs_u16::return#4 return zp[2]:17 55001.0
|
||||
word abs_u16::return#0 return zp[2]:25 20002.0
|
||||
word abs_u16::return#1 return zp[2]:25 20002.0
|
||||
word abs_u16::return#2 return zp[2]:25 200002.0
|
||||
word abs_u16::return#4 return zp[2]:25 55001.0
|
||||
word abs_u16::w
|
||||
word abs_u16::w#0 w zp[2]:17 20002.0
|
||||
word abs_u16::w#1 w zp[2]:17 20002.0
|
||||
word abs_u16::w#2 w zp[2]:17 80001.25
|
||||
word abs_u16::w#0 w zp[2]:25 20002.0
|
||||
word abs_u16::w#1 w zp[2]:25 20002.0
|
||||
word abs_u16::w#2 w zp[2]:25 80001.25
|
||||
void apply_preset(byte apply_preset::idx)
|
||||
byte apply_preset::i
|
||||
byte apply_preset::i#1 reg byte y 2.00000002E8
|
||||
@ -137,14 +137,14 @@ byte bitmap_init::y
|
||||
byte bitmap_init::y#1 reg byte x 15001.5
|
||||
byte bitmap_init::y#2 reg byte x 5000.5
|
||||
byte* bitmap_init::yoffs
|
||||
byte* bitmap_init::yoffs#1 yoffs zp[2]:15 20002.0
|
||||
byte* bitmap_init::yoffs#2 yoffs zp[2]:15 6250.625
|
||||
byte* bitmap_init::yoffs#4 yoffs zp[2]:15 10001.0
|
||||
byte* bitmap_init::yoffs#1 yoffs zp[2]:17 20002.0
|
||||
byte* bitmap_init::yoffs#2 yoffs zp[2]:17 6250.625
|
||||
byte* bitmap_init::yoffs#4 yoffs zp[2]:17 10001.0
|
||||
void bitmap_line(word bitmap_line::x1 , word bitmap_line::y1 , word bitmap_line::x2 , word bitmap_line::y2)
|
||||
word bitmap_line::dx
|
||||
word bitmap_line::dx#0 dx zp[2]:29 76000.175
|
||||
word bitmap_line::dx#0 dx zp[2]:27 76000.175
|
||||
word bitmap_line::dy
|
||||
word bitmap_line::dy#0 dy zp[2]:17 84444.63888888889
|
||||
word bitmap_line::dy#0 dy zp[2]:25 84444.63888888889
|
||||
word bitmap_line::e
|
||||
word bitmap_line::e#0 e zp[2]:11 20002.0
|
||||
word bitmap_line::e#1 e zp[2]:11 1333334.6666666667
|
||||
@ -152,15 +152,15 @@ word bitmap_line::e#2 e zp[2]:11 2000002.0
|
||||
word bitmap_line::e#3 e zp[2]:11 402000.60000000003
|
||||
word bitmap_line::e#6 e zp[2]:11 1500001.5
|
||||
word bitmap_line::e1
|
||||
word bitmap_line::e1#0 e1 zp[2]:15 20002.0
|
||||
word bitmap_line::e1#1 e1 zp[2]:15 1333334.6666666667
|
||||
word bitmap_line::e1#2 e1 zp[2]:15 2000002.0
|
||||
word bitmap_line::e1#3 e1 zp[2]:15 402000.60000000003
|
||||
word bitmap_line::e1#6 e1 zp[2]:15 1500001.5
|
||||
word bitmap_line::e1#0 e1 zp[2]:17 20002.0
|
||||
word bitmap_line::e1#1 e1 zp[2]:17 1333334.6666666667
|
||||
word bitmap_line::e1#2 e1 zp[2]:17 2000002.0
|
||||
word bitmap_line::e1#3 e1 zp[2]:17 402000.60000000003
|
||||
word bitmap_line::e1#6 e1 zp[2]:17 1500001.5
|
||||
word bitmap_line::sx
|
||||
word bitmap_line::sx#0 sx zp[2]:35 67000.1
|
||||
word bitmap_line::sx#0 sx zp[2]:29 67000.1
|
||||
word bitmap_line::sy
|
||||
word bitmap_line::sy#0 sy zp[2]:19 77307.80769230769
|
||||
word bitmap_line::sy#0 sy zp[2]:35 77307.80769230769
|
||||
word bitmap_line::x
|
||||
word bitmap_line::x#1 x zp[2]:13 1000001.0
|
||||
word bitmap_line::x#12 x zp[2]:13 2000002.0
|
||||
@ -171,18 +171,18 @@ word bitmap_line::x#7 x zp[2]:13 752501.0
|
||||
word bitmap_line::x1
|
||||
word bitmap_line::x1#0 x1 zp[2]:13 2040.24
|
||||
word bitmap_line::x2
|
||||
word bitmap_line::x2#0 x2 zp[2]:23 30939.515151515152
|
||||
word bitmap_line::x2#0 x2 zp[2]:21 30939.515151515152
|
||||
word bitmap_line::y
|
||||
word bitmap_line::y#1 y zp[2]:27 571429.1428571428
|
||||
word bitmap_line::y#13 y zp[2]:27 2000002.0
|
||||
word bitmap_line::y#15 y zp[2]:27 430000.57142857136
|
||||
word bitmap_line::y#2 y zp[2]:27 1000001.0
|
||||
word bitmap_line::y#4 y zp[2]:27 502500.75
|
||||
word bitmap_line::y#7 y zp[2]:27 1000001.0
|
||||
word bitmap_line::y#1 y zp[2]:15 571429.1428571428
|
||||
word bitmap_line::y#13 y zp[2]:15 2000002.0
|
||||
word bitmap_line::y#15 y zp[2]:15 430000.57142857136
|
||||
word bitmap_line::y#2 y zp[2]:15 1000001.0
|
||||
word bitmap_line::y#4 y zp[2]:15 502500.75
|
||||
word bitmap_line::y#7 y zp[2]:15 1000001.0
|
||||
word bitmap_line::y1
|
||||
word bitmap_line::y1#0 y1 zp[2]:27 1640.2
|
||||
word bitmap_line::y1#0 y1 zp[2]:15 1640.2
|
||||
word bitmap_line::y2
|
||||
word bitmap_line::y2#0 y2 zp[2]:25 31906.375
|
||||
word bitmap_line::y2#0 y2 zp[2]:23 31906.375
|
||||
void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y)
|
||||
word~ bitmap_plot::$0 zp[2]:41 2.0000002E7
|
||||
byte~ bitmap_plot::$1 reg byte x 2.0000002E7
|
||||
@ -196,11 +196,11 @@ word bitmap_plot::x#2 x zp[2]:13 10001.0
|
||||
word bitmap_plot::x#3 x zp[2]:13 1000001.0
|
||||
word bitmap_plot::x#4 x zp[2]:13 5505001.5
|
||||
byte bitmap_plot::y
|
||||
byte bitmap_plot::y#0 reg byte a 20002.0
|
||||
byte bitmap_plot::y#1 reg byte a 2000002.0
|
||||
byte bitmap_plot::y#2 reg byte a 20002.0
|
||||
byte bitmap_plot::y#3 reg byte a 2000002.0
|
||||
byte bitmap_plot::y#4 reg byte a 2.2020006E7
|
||||
byte bitmap_plot::y#0 reg byte x 20002.0
|
||||
byte bitmap_plot::y#1 reg byte x 2000002.0
|
||||
byte bitmap_plot::y#2 reg byte x 20002.0
|
||||
byte bitmap_plot::y#3 reg byte x 2000002.0
|
||||
byte bitmap_plot::y#4 reg byte x 2.2020006E7
|
||||
constant const byte* bitmap_plot_bit[$100] = { fill( $100, 0) }
|
||||
constant const byte* bitmap_plot_yhi[$100] = { fill( $100, 0) }
|
||||
constant const byte* bitmap_plot_ylo[$100] = { fill( $100, 0) }
|
||||
@ -243,7 +243,7 @@ byte~ form_control::$14 reg byte a 2000002.0
|
||||
byte~ form_control::$15 reg byte a 2000002.0
|
||||
byte~ form_control::$22 reg byte a 2000002.0
|
||||
byte* form_control::field
|
||||
byte* form_control::field#0 field zp[2]:29 296296.5925925926
|
||||
byte* form_control::field#0 field zp[2]:39 296296.5925925926
|
||||
byte form_control::key_event
|
||||
byte form_control::key_event#0 reg byte a 1333334.6666666667
|
||||
byte form_control::return
|
||||
@ -279,10 +279,10 @@ byte form_field_ptr::field_idx#0 reg byte x 2.00000002E8
|
||||
byte form_field_ptr::field_idx#1 reg byte x 2000002.0
|
||||
byte form_field_ptr::field_idx#2 reg byte x 7.003333346666667E8
|
||||
byte* form_field_ptr::line
|
||||
word form_field_ptr::line#0 line zp[2]:39 2.000000002E8
|
||||
word form_field_ptr::line#0 line zp[2]:35 2.000000002E8
|
||||
byte* form_field_ptr::return
|
||||
byte* form_field_ptr::return#0 return zp[2]:29 3.336666673333334E8
|
||||
byte* form_field_ptr::return#3 return zp[2]:29 2000002.0
|
||||
byte* form_field_ptr::return#0 return zp[2]:39 3.336666673333334E8
|
||||
byte* form_field_ptr::return#3 return zp[2]:39 2000002.0
|
||||
byte form_field_ptr::x
|
||||
byte form_field_ptr::x#0 x zp[1]:37 5.2500000075E8
|
||||
byte form_field_ptr::y
|
||||
@ -312,8 +312,8 @@ void form_set_screen(byte* form_set_screen::screen)
|
||||
byte~ form_set_screen::$0 reg byte a 200002.0
|
||||
byte~ form_set_screen::$1 reg byte a 200002.0
|
||||
byte* form_set_screen::line
|
||||
byte* form_set_screen::line#1 line zp[2]:15 66667.33333333333
|
||||
byte* form_set_screen::line#2 line zp[2]:15 80000.8
|
||||
byte* form_set_screen::line#1 line zp[2]:17 66667.33333333333
|
||||
byte* form_set_screen::line#2 line zp[2]:17 80000.8
|
||||
byte* form_set_screen::screen
|
||||
byte form_set_screen::y
|
||||
byte form_set_screen::y#1 reg byte x 150001.5
|
||||
@ -322,8 +322,8 @@ byte* get_VICII_charset(byte get_VICII_charset::idx)
|
||||
byte get_VICII_charset::idx
|
||||
byte get_VICII_charset::idx#0 reg byte a 1051.5
|
||||
byte* get_VICII_charset::return
|
||||
byte* get_VICII_charset::return#2 return zp[2]:15 33.666666666666664
|
||||
byte* get_VICII_charset::return#4 return zp[2]:15 202.0
|
||||
byte* get_VICII_charset::return#2 return zp[2]:17 33.666666666666664
|
||||
byte* get_VICII_charset::return#4 return zp[2]:17 202.0
|
||||
byte* get_VICII_screen(byte get_VICII_screen::idx)
|
||||
byte get_VICII_screen::idx
|
||||
byte get_VICII_screen::idx#0 reg byte a 202.0
|
||||
@ -366,7 +366,7 @@ byte gfx_init_charset::l
|
||||
byte gfx_init_charset::l#1 reg byte x 15001.5
|
||||
byte gfx_init_charset::l#2 reg byte x 5000.5
|
||||
void gfx_init_plane_8bppchunky()
|
||||
word~ gfx_init_plane_8bppchunky::$5 zp[2]:27 10001.0
|
||||
word~ gfx_init_plane_8bppchunky::$5 zp[2]:25 10001.0
|
||||
byte gfx_init_plane_8bppchunky::c
|
||||
byte gfx_init_plane_8bppchunky::c#0 reg byte a 20002.0
|
||||
byte* gfx_init_plane_8bppchunky::gfxb
|
||||
@ -389,9 +389,9 @@ void gfx_init_plane_blank()
|
||||
void gfx_init_plane_charset8()
|
||||
byte~ gfx_init_plane_charset8::$2 reg byte a 200002.0
|
||||
byte gfx_init_plane_charset8::bits
|
||||
byte gfx_init_plane_charset8::bits#0 bits zp[1]:21 10001.0
|
||||
byte gfx_init_plane_charset8::bits#1 bits zp[1]:21 50000.5
|
||||
byte gfx_init_plane_charset8::bits#2 bits zp[1]:21 44286.28571428572
|
||||
byte gfx_init_plane_charset8::bits#0 bits zp[1]:19 10001.0
|
||||
byte gfx_init_plane_charset8::bits#1 bits zp[1]:19 50000.5
|
||||
byte gfx_init_plane_charset8::bits#2 bits zp[1]:19 44286.28571428572
|
||||
byte gfx_init_plane_charset8::c
|
||||
byte gfx_init_plane_charset8::c#2 reg byte a 200002.0
|
||||
byte gfx_init_plane_charset8::c#3 reg byte a 200002.0
|
||||
@ -403,10 +403,10 @@ byte* gfx_init_plane_charset8::chargen#1 chargen zp[2]:13 1312.6875
|
||||
byte* gfx_init_plane_charset8::chargen#2 chargen zp[2]:13 15502.0
|
||||
byte* gfx_init_plane_charset8::chargen#3 chargen zp[2]:13 2002.0
|
||||
byte gfx_init_plane_charset8::col
|
||||
byte gfx_init_plane_charset8::col#1 col zp[1]:22 30143.428571428572
|
||||
byte gfx_init_plane_charset8::col#2 col zp[1]:22 38750.5
|
||||
byte gfx_init_plane_charset8::col#5 col zp[1]:22 7001.0
|
||||
byte gfx_init_plane_charset8::col#6 col zp[1]:22 2002.0
|
||||
byte gfx_init_plane_charset8::col#1 col zp[1]:20 30143.428571428572
|
||||
byte gfx_init_plane_charset8::col#2 col zp[1]:20 38750.5
|
||||
byte gfx_init_plane_charset8::col#5 col zp[1]:20 7001.0
|
||||
byte gfx_init_plane_charset8::col#6 col zp[1]:20 2002.0
|
||||
byte gfx_init_plane_charset8::cp
|
||||
byte gfx_init_plane_charset8::cp#1 reg byte x 150001.5
|
||||
byte gfx_init_plane_charset8::cp#2 reg byte x 22222.444444444445
|
||||
@ -422,9 +422,8 @@ byte gfx_init_plane_charset8::gfxbCpuBank
|
||||
constant byte gfx_init_plane_charset8::gfxbCpuBank#0 gfxbCpuBank = (byte)PLANE_CHARSET8/$4000
|
||||
void gfx_init_plane_fill(dword gfx_init_plane_fill::plane_addr , byte gfx_init_plane_fill::fill)
|
||||
dword~ gfx_init_plane_fill::$0 zp[4]:31 2002.0
|
||||
word~ gfx_init_plane_fill::$1 zp[2]:35 2002.0
|
||||
word~ gfx_init_plane_fill::$3 zp[2]:11 2002.0
|
||||
word~ gfx_init_plane_fill::$4 zp[2]:11 2002.0
|
||||
word~ gfx_init_plane_fill::$5 zp[2]:11 2002.0
|
||||
byte gfx_init_plane_fill::bx
|
||||
byte gfx_init_plane_fill::bx#1 reg byte x 150001.5
|
||||
byte gfx_init_plane_fill::bx#2 reg byte x 66667.33333333333
|
||||
@ -432,7 +431,7 @@ byte gfx_init_plane_fill::by
|
||||
byte gfx_init_plane_fill::by#1 by zp[1]:10 15001.5
|
||||
byte gfx_init_plane_fill::by#4 by zp[1]:10 3333.6666666666665
|
||||
byte gfx_init_plane_fill::fill
|
||||
byte gfx_init_plane_fill::fill#6 fill zp[1]:9 5882.411764705882
|
||||
byte gfx_init_plane_fill::fill#6 fill zp[1]:9 6250.0625
|
||||
byte* gfx_init_plane_fill::gfxb
|
||||
byte* gfx_init_plane_fill::gfxb#0 gfxb zp[2]:11 2002.0
|
||||
byte* gfx_init_plane_fill::gfxb#1 gfxb zp[2]:11 42000.600000000006
|
||||
@ -441,7 +440,7 @@ byte* gfx_init_plane_fill::gfxb#3 gfxb zp[2]:11 21003.0
|
||||
byte gfx_init_plane_fill::gfxbCpuBank
|
||||
byte gfx_init_plane_fill::gfxbCpuBank#0 reg byte a 2002.0
|
||||
dword gfx_init_plane_fill::plane_addr
|
||||
dword gfx_init_plane_fill::plane_addr#3 plane_addr zp[4]:5 333.6666666666667
|
||||
dword gfx_init_plane_fill::plane_addr#3 plane_addr zp[4]:5 400.4
|
||||
void gfx_init_plane_full()
|
||||
void gfx_init_plane_horisontal()
|
||||
byte~ gfx_init_plane_horisontal::$2 reg byte a 20002.0
|
||||
@ -465,8 +464,8 @@ byte gfx_init_plane_horisontal2::ax
|
||||
byte gfx_init_plane_horisontal2::ax#1 reg byte x 15001.5
|
||||
byte gfx_init_plane_horisontal2::ax#2 reg byte x 4000.4
|
||||
byte gfx_init_plane_horisontal2::ay
|
||||
byte gfx_init_plane_horisontal2::ay#1 ay zp[1]:21 1501.5
|
||||
byte gfx_init_plane_horisontal2::ay#4 ay zp[1]:21 1500.375
|
||||
byte gfx_init_plane_horisontal2::ay#1 ay zp[1]:19 1501.5
|
||||
byte gfx_init_plane_horisontal2::ay#4 ay zp[1]:19 1500.375
|
||||
byte* gfx_init_plane_horisontal2::gfxa
|
||||
byte* gfx_init_plane_horisontal2::gfxa#1 gfxa zp[2]:13 4200.6
|
||||
byte* gfx_init_plane_horisontal2::gfxa#2 gfxa zp[2]:13 7751.0
|
||||
@ -492,7 +491,7 @@ constant byte gfx_init_plane_vertical::gfxbCpuBank#0 gfxbCpuBank = (byte)PLANE_V
|
||||
void gfx_init_plane_vertical2()
|
||||
void gfx_init_screen0()
|
||||
byte~ gfx_init_screen0::$0 reg byte a 20002.0
|
||||
byte~ gfx_init_screen0::$1 zp[1]:22 10001.0
|
||||
byte~ gfx_init_screen0::$1 zp[1]:20 10001.0
|
||||
byte~ gfx_init_screen0::$2 reg byte a 20002.0
|
||||
byte~ gfx_init_screen0::$3 reg byte a 20002.0
|
||||
byte* gfx_init_screen0::ch
|
||||
@ -529,7 +528,7 @@ byte* gfx_init_screen2::ch#3 ch zp[2]:11 2002.0
|
||||
byte gfx_init_screen2::col
|
||||
byte gfx_init_screen2::col#0 reg byte y 15001.5
|
||||
byte gfx_init_screen2::col2
|
||||
byte gfx_init_screen2::col2#0 col2 zp[1]:22 10001.0
|
||||
byte gfx_init_screen2::col2#0 col2 zp[1]:20 10001.0
|
||||
byte gfx_init_screen2::cx
|
||||
byte gfx_init_screen2::cx#1 reg byte x 15001.5
|
||||
byte gfx_init_screen2::cx#2 reg byte x 3750.375
|
||||
@ -565,45 +564,39 @@ byte gfx_init_screen4::cy#4 cy zp[1]:3 333.6666666666667
|
||||
void gfx_mode()
|
||||
byte~ gfx_mode::$18 reg byte a 202.0
|
||||
dword~ gfx_mode::$20 zp[4]:5 202.0
|
||||
word~ gfx_mode::$22 zp[2]:17 202.0
|
||||
byte~ gfx_mode::$22 reg byte a 202.0
|
||||
byte~ gfx_mode::$23 reg byte a 202.0
|
||||
word~ gfx_mode::$24 zp[2]:39 202.0
|
||||
byte~ gfx_mode::$24 reg byte a 202.0
|
||||
byte~ gfx_mode::$25 reg byte a 202.0
|
||||
word~ gfx_mode::$26 zp[2]:19 202.0
|
||||
byte~ gfx_mode::$26 reg byte a 202.0
|
||||
byte~ gfx_mode::$27 reg byte a 202.0
|
||||
byte~ gfx_mode::$28 reg byte a 202.0
|
||||
byte~ gfx_mode::$29 reg byte a 202.0
|
||||
byte~ gfx_mode::$30 reg byte a 202.0
|
||||
byte~ gfx_mode::$31 reg byte a 202.0
|
||||
byte~ gfx_mode::$32 reg byte a 202.0
|
||||
dword~ gfx_mode::$34 zp[4]:5 202.0
|
||||
word~ gfx_mode::$36 zp[2]:23 202.0
|
||||
dword~ gfx_mode::$31 zp[4]:5 202.0
|
||||
byte~ gfx_mode::$33 reg byte a 202.0
|
||||
byte~ gfx_mode::$34 reg byte a 202.0
|
||||
byte~ gfx_mode::$35 reg byte a 202.0
|
||||
byte~ gfx_mode::$36 reg byte a 202.0
|
||||
byte~ gfx_mode::$37 reg byte a 202.0
|
||||
word~ gfx_mode::$38 zp[2]:25 202.0
|
||||
byte~ gfx_mode::$38 reg byte a 202.0
|
||||
byte~ gfx_mode::$39 reg byte a 202.0
|
||||
word~ gfx_mode::$40 zp[2]:27 202.0
|
||||
byte~ gfx_mode::$41 reg byte a 202.0
|
||||
byte~ gfx_mode::$42 reg byte a 202.0
|
||||
byte~ gfx_mode::$43 reg byte a 202.0
|
||||
byte~ gfx_mode::$44 reg byte a 202.0
|
||||
word~ gfx_mode::$41 zp[2]:11 202.0
|
||||
word~ gfx_mode::$42 zp[2]:11 12.625
|
||||
word~ gfx_mode::$44 zp[2]:17 202.0
|
||||
byte~ gfx_mode::$45 reg byte a 202.0
|
||||
word~ gfx_mode::$47 zp[2]:11 202.0
|
||||
word~ gfx_mode::$48 zp[2]:11 12.625
|
||||
word~ gfx_mode::$50 zp[2]:15 202.0
|
||||
byte~ gfx_mode::$46 zp[1]:19 101.0
|
||||
byte~ gfx_mode::$47 reg byte a 202.0
|
||||
byte~ gfx_mode::$49 reg byte a 202.0
|
||||
byte~ gfx_mode::$50 reg byte a 202.0
|
||||
byte~ gfx_mode::$51 reg byte a 202.0
|
||||
byte~ gfx_mode::$52 zp[1]:21 101.0
|
||||
byte~ gfx_mode::$52 reg byte a 202.0
|
||||
byte~ gfx_mode::$53 reg byte a 202.0
|
||||
byte~ gfx_mode::$54 reg byte a 202.0
|
||||
byte~ gfx_mode::$55 reg byte a 202.0
|
||||
byte~ gfx_mode::$56 reg byte a 202.0
|
||||
byte~ gfx_mode::$57 reg byte a 202.0
|
||||
byte~ gfx_mode::$58 reg byte a 202.0
|
||||
byte~ gfx_mode::$59 reg byte a 202.0
|
||||
byte~ gfx_mode::$60 reg byte a 202.0
|
||||
byte~ gfx_mode::$61 reg byte a 202.0
|
||||
byte~ gfx_mode::$62 reg byte a 202.0
|
||||
byte*~ gfx_mode::$82 zp[2]:11 101.0
|
||||
byte*~ gfx_mode::$83 zp[2]:15 101.0
|
||||
byte~ gfx_mode::$84 reg byte a 202.0
|
||||
byte*~ gfx_mode::$76 zp[2]:11 101.0
|
||||
byte*~ gfx_mode::$77 zp[2]:17 101.0
|
||||
byte~ gfx_mode::$78 reg byte a 202.0
|
||||
byte* gfx_mode::VICII_colors
|
||||
byte* gfx_mode::VICII_colors#0 VICII_colors zp[2]:11 202.0
|
||||
byte* gfx_mode::VICII_colors#1 VICII_colors zp[2]:11 42000.600000000006
|
||||
@ -646,11 +639,11 @@ byte gfx_mode::j#2 reg byte x 20002.0
|
||||
byte gfx_mode::keyboard_event
|
||||
byte gfx_mode::keyboard_event#0 reg byte a 20002.0
|
||||
dword gfx_mode::plane_a
|
||||
dword gfx_mode::plane_a#0 plane_a zp[4]:5 57.714285714285715
|
||||
dword gfx_mode::plane_a#0 plane_a zp[4]:5 80.8
|
||||
byte gfx_mode::plane_a_offs
|
||||
byte gfx_mode::plane_a_offs#0 reg byte x 40.4
|
||||
dword gfx_mode::plane_b
|
||||
dword gfx_mode::plane_b#0 plane_b zp[4]:5 57.714285714285715
|
||||
dword gfx_mode::plane_b#0 plane_b zp[4]:5 80.8
|
||||
byte gfx_mode::plane_b_offs
|
||||
byte gfx_mode::plane_b_offs#0 reg byte x 40.4
|
||||
byte keyboard_event_get()
|
||||
@ -663,7 +656,7 @@ byte keyboard_event_pressed(byte keyboard_event_pressed::keycode)
|
||||
byte~ keyboard_event_pressed::$0 reg byte a 2.00000002E8
|
||||
byte~ keyboard_event_pressed::$1 reg byte a 2.00000002E8
|
||||
byte keyboard_event_pressed::keycode
|
||||
byte keyboard_event_pressed::keycode#4 keycode zp[1]:21 6.6666667333333336E7
|
||||
byte keyboard_event_pressed::keycode#4 keycode zp[1]:19 6.6666667333333336E7
|
||||
byte keyboard_event_pressed::return
|
||||
byte keyboard_event_pressed::return#0 reg byte a 2.0000002E7
|
||||
byte keyboard_event_pressed::return#1 reg byte a 2.0000002E7
|
||||
@ -692,8 +685,8 @@ byte keyboard_event_scan::keycode#11 keycode zp[1]:9 5.00000000005E10
|
||||
byte keyboard_event_scan::keycode#13 keycode zp[1]:9 1.00000000001E11
|
||||
byte keyboard_event_scan::keycode#14 keycode zp[1]:9 5.2500000000075E11
|
||||
byte keyboard_event_scan::row
|
||||
byte keyboard_event_scan::row#1 row zp[1]:22 1.500000000015E11
|
||||
byte keyboard_event_scan::row#2 row zp[1]:22 6.000000000024E10
|
||||
byte keyboard_event_scan::row#1 row zp[1]:20 1.500000000015E11
|
||||
byte keyboard_event_scan::row#2 row zp[1]:20 6.000000000024E10
|
||||
byte keyboard_event_scan::row_scan
|
||||
byte keyboard_event_scan::row_scan#0 row_scan zp[1]:37 1.2777777777805557E11
|
||||
constant byte* keyboard_events[8] = { fill( 8, 0) }
|
||||
@ -704,7 +697,7 @@ byte keyboard_events_size#100 keyboard_events_size zp[1]:10 8.82441176488235E9
|
||||
byte keyboard_events_size#106 keyboard_events_size zp[1]:10 1.0200000000012E12
|
||||
byte keyboard_events_size#107 keyboard_events_size zp[1]:10 4.285857142914285E10
|
||||
byte keyboard_events_size#19 keyboard_events_size zp[1]:10 8.100000000008999E11
|
||||
byte keyboard_events_size#25 keyboard_events_size zp[1]:10 110549.53846153847
|
||||
byte keyboard_events_size#25 keyboard_events_size zp[1]:10 114318.27272727274
|
||||
byte keyboard_events_size#28 keyboard_events_size zp[1]:10 2.871794871794872
|
||||
byte keyboard_events_size#3 keyboard_events_size zp[1]:10 1.50000015E7
|
||||
byte keyboard_events_size#49 keyboard_events_size zp[1]:10 65300.23529411765
|
||||
@ -733,17 +726,17 @@ void* memset(void* memset::str , byte memset::c , word memset::num)
|
||||
byte memset::c
|
||||
byte memset::c#5 reg byte x 125000.125
|
||||
byte* memset::dst
|
||||
byte* memset::dst#1 dst zp[2]:27 2000002.0
|
||||
byte* memset::dst#2 dst zp[2]:27 1336668.3333333335
|
||||
byte* memset::dst#4 dst zp[2]:27 20002.0
|
||||
byte* memset::dst#1 dst zp[2]:15 2000002.0
|
||||
byte* memset::dst#2 dst zp[2]:15 1336668.3333333335
|
||||
byte* memset::dst#4 dst zp[2]:15 20002.0
|
||||
byte* memset::end
|
||||
byte* memset::end#0 end zp[2]:13 168333.6666666667
|
||||
word memset::num
|
||||
word memset::num#3 num zp[2]:13 10001.0
|
||||
void* memset::return
|
||||
void* memset::str
|
||||
void* memset::str#0 str zp[2]:27 2002.0
|
||||
void* memset::str#4 str zp[2]:27 333.6666666666667
|
||||
void* memset::str#0 str zp[2]:15 2002.0
|
||||
void* memset::str#4 str zp[2]:15 333.6666666666667
|
||||
constant byte* preset_8bpppixelcell[] = { $a, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, $b, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }
|
||||
constant byte* preset_chunky[] = { 7, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 8, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }
|
||||
constant byte* preset_ecmchar[] = { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 5, 0, 6 }
|
||||
@ -768,19 +761,19 @@ byte* print_char_cursor#73 print_char_cursor zp[2]:13 200002.0
|
||||
void print_cls()
|
||||
constant const byte* print_hextab[] = "0123456789abcdef"z
|
||||
byte* print_line_cursor
|
||||
byte* print_line_cursor#1 print_line_cursor zp[2]:15 91750.25
|
||||
byte* print_line_cursor#2 print_line_cursor zp[2]:15 6.00040001E8
|
||||
byte* print_line_cursor#22 print_line_cursor zp[2]:15 2.001000003E9
|
||||
byte* print_line_cursor#1 print_line_cursor zp[2]:17 91750.25
|
||||
byte* print_line_cursor#2 print_line_cursor zp[2]:17 6.00040001E8
|
||||
byte* print_line_cursor#22 print_line_cursor zp[2]:17 2.001000003E9
|
||||
void print_ln()
|
||||
byte* print_screen
|
||||
byte* print_screen#0 print_screen zp[2]:15 200.2
|
||||
byte* print_screen#0 print_screen zp[2]:17 200.2
|
||||
void print_set_screen(byte* print_set_screen::screen)
|
||||
byte* print_set_screen::screen
|
||||
byte* print_set_screen::screen#2 screen zp[2]:15 1001.0
|
||||
byte* print_set_screen::screen#2 screen zp[2]:17 1001.0
|
||||
void print_str_at(byte* print_str_at::str , byte* print_str_at::at)
|
||||
byte* print_str_at::at
|
||||
byte* print_str_at::at#0 at zp[2]:15 1.000000001E9
|
||||
byte* print_str_at::at#2 at zp[2]:15 1.000000001E9
|
||||
byte* print_str_at::at#0 at zp[2]:17 1.000000001E9
|
||||
byte* print_str_at::at#2 at zp[2]:17 1.000000001E9
|
||||
byte* print_str_at::str
|
||||
byte* print_str_at::str#0 str zp[2]:11 2.000000002E9
|
||||
byte* print_str_at::str#1 str zp[2]:11 550001.0
|
||||
@ -815,9 +808,9 @@ word sgn_u16(word sgn_u16::w)
|
||||
byte~ sgn_u16::$0 reg byte a 200002.0
|
||||
byte~ sgn_u16::$1 reg byte a 200002.0
|
||||
word sgn_u16::return
|
||||
word sgn_u16::return#0 return zp[2]:19 20002.0
|
||||
word sgn_u16::return#1 return zp[2]:19 20002.0
|
||||
word sgn_u16::return#4 return zp[2]:19 5000.5
|
||||
word sgn_u16::return#0 return zp[2]:35 20002.0
|
||||
word sgn_u16::return#1 return zp[2]:35 20002.0
|
||||
word sgn_u16::return#4 return zp[2]:35 5000.5
|
||||
word sgn_u16::w
|
||||
word sgn_u16::w#0 w zp[2]:39 20002.0
|
||||
word sgn_u16::w#1 w zp[2]:39 20002.0
|
||||
@ -859,52 +852,51 @@ reg byte a [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ]
|
||||
reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ]
|
||||
reg byte x [ bitmap_init::y#2 bitmap_init::y#1 ]
|
||||
reg byte a [ dtvSetCpuBankSegment1::cpuBankIdx#13 dtvSetCpuBankSegment1::cpuBankIdx#1 dtvSetCpuBankSegment1::cpuBankIdx#11 ]
|
||||
zp[4]:5 [ gfx_init_plane_fill::plane_addr#3 get_plane::return#14 get_plane::return#16 get_plane::return#17 gfx_mode::$20 gfx_mode::plane_a#0 gfx_mode::$34 gfx_mode::plane_b#0 ]
|
||||
zp[4]:5 [ gfx_init_plane_fill::plane_addr#3 get_plane::return#14 get_plane::return#16 get_plane::return#17 gfx_mode::$20 gfx_mode::plane_a#0 gfx_mode::$31 gfx_mode::plane_b#0 ]
|
||||
zp[1]:9 [ gfx_init_plane_fill::fill#6 keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#13 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 gfx_init_plane_horisontal::ay#4 gfx_init_plane_horisontal::ay#1 gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::ch#1 ]
|
||||
zp[1]:10 [ gfx_init_plane_fill::by#4 gfx_init_plane_fill::by#1 keyboard_events_size#19 keyboard_events_size#107 keyboard_events_size#98 keyboard_events_size#49 keyboard_events_size#28 keyboard_events_size#25 keyboard_events_size#100 keyboard_events_size#106 keyboard_events_size#0 keyboard_events_size#1 keyboard_events_size#3 gfx_init_plane_vertical::by#4 gfx_init_plane_vertical::by#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::cr#1 ]
|
||||
zp[2]:11 [ gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::gfxb#3 gfx_init_plane_fill::gfxb#1 gfx_init_plane_fill::gfxb#0 gfx_init_plane_fill::$5 gfx_init_plane_fill::$4 bitmap_line::e#3 bitmap_line::e#0 bitmap_line::e#6 bitmap_line::e#1 bitmap_line::e#2 render_preset_name::name#13 print_str_at::str#2 print_str_at::str#1 print_str_at::str#0 print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 gfx_init_plane_horisontal::gfxa#3 gfx_init_plane_horisontal::gfxa#6 gfx_init_plane_horisontal::gfxa#7 gfx_init_plane_horisontal::gfxa#1 gfx_init_plane_horisontal::gfxa#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::gfxa#5 gfx_init_plane_charset8::gfxa#6 gfx_init_plane_charset8::gfxa#1 gfx_init_plane_8bppchunky::x#2 gfx_init_plane_8bppchunky::x#1 gfx_init_charset::charset#2 gfx_init_charset::charset#3 gfx_init_charset::charset#1 gfx_init_screen3::ch#2 gfx_init_screen3::ch#3 gfx_init_screen3::ch#1 gfx_init_screen2::ch#2 gfx_init_screen2::ch#3 gfx_init_screen2::ch#1 gfx_init_screen0::ch#2 gfx_init_screen0::ch#3 gfx_init_screen0::ch#1 gfx_mode::VICII_colors#2 gfx_mode::VICII_colors#3 gfx_mode::VICII_colors#1 gfx_mode::VICII_colors#0 get_VICII_screen::return#11 get_VICII_screen::return#5 get_VICII_screen::return#10 gfx_mode::$82 gfx_mode::$47 gfx_mode::$48 ]
|
||||
zp[2]:11 [ gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::gfxb#3 gfx_init_plane_fill::gfxb#1 gfx_init_plane_fill::gfxb#0 gfx_init_plane_fill::$4 gfx_init_plane_fill::$3 bitmap_line::e#3 bitmap_line::e#0 bitmap_line::e#6 bitmap_line::e#1 bitmap_line::e#2 render_preset_name::name#13 print_str_at::str#2 print_str_at::str#1 print_str_at::str#0 print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 gfx_init_plane_horisontal::gfxa#3 gfx_init_plane_horisontal::gfxa#6 gfx_init_plane_horisontal::gfxa#7 gfx_init_plane_horisontal::gfxa#1 gfx_init_plane_horisontal::gfxa#2 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::gfxa#5 gfx_init_plane_charset8::gfxa#6 gfx_init_plane_charset8::gfxa#1 gfx_init_plane_8bppchunky::x#2 gfx_init_plane_8bppchunky::x#1 gfx_init_charset::charset#2 gfx_init_charset::charset#3 gfx_init_charset::charset#1 gfx_init_screen3::ch#2 gfx_init_screen3::ch#3 gfx_init_screen3::ch#1 gfx_init_screen2::ch#2 gfx_init_screen2::ch#3 gfx_init_screen2::ch#1 gfx_init_screen0::ch#2 gfx_init_screen0::ch#3 gfx_init_screen0::ch#1 gfx_mode::VICII_colors#2 gfx_mode::VICII_colors#3 gfx_mode::VICII_colors#1 gfx_mode::VICII_colors#0 get_VICII_screen::return#11 get_VICII_screen::return#5 get_VICII_screen::return#10 gfx_mode::$76 gfx_mode::$41 gfx_mode::$42 ]
|
||||
reg byte x [ gfx_init_plane_fill::bx#2 gfx_init_plane_fill::bx#1 ]
|
||||
zp[2]:13 [ memset::num#3 memset::end#0 bitmap_line::x#7 bitmap_line::x#6 bitmap_line::x#15 bitmap_line::x#13 bitmap_line::x1#0 bitmap_line::x#12 bitmap_line::x#1 bitmap_plot::x#4 bitmap_plot::x#2 bitmap_plot::x#0 bitmap_plot::x#1 bitmap_plot::x#3 apply_preset::preset#15 print_char_cursor#43 print_char_cursor#2 print_char_cursor#72 print_char_cursor#73 print_char_cursor#44 print_char_cursor#29 gfx_init_plane_horisontal2::gfxa#2 gfx_init_plane_horisontal2::gfxa#3 gfx_init_plane_horisontal2::gfxa#1 gfx_init_plane_vertical::gfxb#2 gfx_init_plane_vertical::gfxb#3 gfx_init_plane_vertical::gfxb#1 gfx_init_plane_charset8::chargen#2 gfx_init_plane_charset8::chargen#3 gfx_init_plane_charset8::chargen#1 gfx_init_plane_8bppchunky::gfxb#4 gfx_init_plane_8bppchunky::gfxb#3 gfx_init_plane_8bppchunky::gfxb#5 gfx_init_plane_8bppchunky::gfxb#1 gfx_init_charset::chargen#2 gfx_init_charset::chargen#3 gfx_init_charset::chargen#1 gfx_init_screen4::ch#2 gfx_init_screen4::ch#3 gfx_init_screen4::ch#1 gfx_init_screen1::ch#2 gfx_init_screen1::ch#3 gfx_init_screen1::ch#1 gfx_mode::col#2 gfx_mode::col#3 gfx_mode::col#1 ]
|
||||
zp[2]:15 [ memset::str#4 memset::str#0 memset::dst#2 memset::dst#4 memset::dst#1 bitmap_line::y#15 bitmap_line::y#7 bitmap_line::y#13 bitmap_line::y#4 bitmap_line::y1#0 bitmap_line::y#1 bitmap_line::y#2 ]
|
||||
reg byte x [ memset::c#5 ]
|
||||
reg byte x [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 ]
|
||||
zp[2]:15 [ print_str_at::at#2 print_str_at::at#0 bitmap_line::e1#3 bitmap_line::e1#6 bitmap_line::e1#0 bitmap_line::e1#2 bitmap_line::e1#1 bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 get_VICII_charset::return#2 get_VICII_charset::return#4 gfx_mode::$83 gfx_mode::$50 form_set_screen::line#2 form_set_screen::line#1 print_set_screen::screen#2 print_line_cursor#22 print_line_cursor#1 print_screen#0 print_line_cursor#2 ]
|
||||
reg byte a [ bitmap_plot::y#4 bitmap_plot::y#2 bitmap_plot::y#0 bitmap_plot::y#1 bitmap_plot::y#3 ]
|
||||
zp[2]:17 [ print_str_at::at#2 print_str_at::at#0 bitmap_line::e1#3 bitmap_line::e1#6 bitmap_line::e1#0 bitmap_line::e1#2 bitmap_line::e1#1 bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 get_VICII_charset::return#2 get_VICII_charset::return#4 gfx_mode::$77 gfx_mode::$44 form_set_screen::line#2 form_set_screen::line#1 print_set_screen::screen#2 print_line_cursor#22 print_line_cursor#1 print_screen#0 print_line_cursor#2 ]
|
||||
reg byte x [ bitmap_plot::y#4 bitmap_plot::y#2 bitmap_plot::y#0 bitmap_plot::y#1 bitmap_plot::y#3 ]
|
||||
reg byte a [ form_control::return#0 ]
|
||||
reg byte a [ form_mode::$11 ]
|
||||
reg byte a [ apply_preset::idx#0 ]
|
||||
reg byte a [ gfx_mode::$18 ]
|
||||
reg byte x [ gfx_mode::plane_a_offs#0 ]
|
||||
zp[2]:17 [ gfx_mode::$22 abs_u16::return#4 abs_u16::return#2 abs_u16::w#2 abs_u16::w#0 abs_u16::w#1 abs_u16::return#0 abs_u16::return#1 bitmap_line::dy#0 ]
|
||||
reg byte a [ gfx_mode::$22 ]
|
||||
reg byte a [ gfx_mode::$23 ]
|
||||
reg byte a [ gfx_mode::$24 ]
|
||||
reg byte a [ gfx_mode::$25 ]
|
||||
zp[2]:19 [ gfx_mode::$26 sgn_u16::return#4 sgn_u16::return#0 sgn_u16::return#1 bitmap_line::sy#0 ]
|
||||
reg byte a [ gfx_mode::$26 ]
|
||||
reg byte a [ gfx_mode::$27 ]
|
||||
reg byte a [ gfx_mode::$28 ]
|
||||
reg byte a [ gfx_mode::$29 ]
|
||||
reg byte a [ gfx_mode::$30 ]
|
||||
reg byte a [ gfx_mode::$31 ]
|
||||
reg byte a [ gfx_mode::$32 ]
|
||||
reg byte x [ gfx_mode::plane_b_offs#0 ]
|
||||
reg byte a [ gfx_mode::$33 ]
|
||||
reg byte a [ gfx_mode::$34 ]
|
||||
reg byte a [ gfx_mode::$35 ]
|
||||
reg byte a [ gfx_mode::$36 ]
|
||||
reg byte a [ gfx_mode::$37 ]
|
||||
reg byte a [ gfx_mode::$38 ]
|
||||
reg byte a [ gfx_mode::$39 ]
|
||||
reg byte a [ gfx_mode::$41 ]
|
||||
reg byte a [ gfx_mode::$42 ]
|
||||
reg byte a [ gfx_mode::$43 ]
|
||||
reg byte a [ gfx_mode::$44 ]
|
||||
reg byte a [ gfx_mode::$45 ]
|
||||
reg byte a [ get_VICII_charset::idx#0 ]
|
||||
reg byte a [ gfx_mode::$45 ]
|
||||
zp[1]:19 [ gfx_mode::$46 keyboard_event_pressed::keycode#4 gfx_init_plane_horisontal2::ay#4 gfx_init_plane_horisontal2::ay#1 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::bits#0 gfx_init_plane_charset8::bits#1 ]
|
||||
reg byte a [ gfx_mode::$78 ]
|
||||
reg byte a [ gfx_mode::$47 ]
|
||||
reg byte a [ gfx_mode::$49 ]
|
||||
reg byte a [ gfx_mode::$50 ]
|
||||
reg byte a [ gfx_mode::$51 ]
|
||||
zp[1]:21 [ gfx_mode::$52 keyboard_event_pressed::keycode#4 gfx_init_plane_horisontal2::ay#4 gfx_init_plane_horisontal2::ay#1 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::bits#0 gfx_init_plane_charset8::bits#1 ]
|
||||
reg byte a [ gfx_mode::$84 ]
|
||||
reg byte a [ gfx_mode::$52 ]
|
||||
reg byte a [ gfx_mode::$53 ]
|
||||
reg byte a [ gfx_mode::$54 ]
|
||||
reg byte a [ gfx_mode::$55 ]
|
||||
reg byte a [ gfx_mode::$56 ]
|
||||
reg byte a [ gfx_mode::$57 ]
|
||||
reg byte a [ gfx_mode::$58 ]
|
||||
reg byte a [ gfx_mode::$59 ]
|
||||
reg byte a [ gfx_mode::$60 ]
|
||||
reg byte a [ gfx_mode::$61 ]
|
||||
reg byte a [ gfx_mode::$62 ]
|
||||
reg byte a [ keyboard_event_get::return#3 ]
|
||||
reg byte a [ gfx_mode::keyboard_event#0 ]
|
||||
reg byte a [ gfx_init_screen0::$0 ]
|
||||
@ -914,15 +906,15 @@ reg byte a [ gfx_init_screen1::$0 ]
|
||||
reg byte a [ gfx_init_screen1::$1 ]
|
||||
reg byte a [ gfx_init_screen2::$0 ]
|
||||
reg byte y [ gfx_init_screen2::col#0 ]
|
||||
zp[1]:22 [ gfx_init_screen2::col2#0 gfx_init_screen0::$1 keyboard_event_scan::row#2 keyboard_event_scan::row#1 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::col#1 ]
|
||||
zp[1]:20 [ gfx_init_screen2::col2#0 gfx_init_screen0::$1 keyboard_event_scan::row#2 keyboard_event_scan::row#1 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::col#1 ]
|
||||
reg byte a [ gfx_init_screen2::$3 ]
|
||||
reg byte a [ gfx_init_screen2::$4 ]
|
||||
reg byte a [ gfx_init_screen3::$0 ]
|
||||
reg byte a [ gfx_init_screen3::$2 ]
|
||||
reg byte a [ gfx_init_screen3::$3 ]
|
||||
zp[2]:23 [ bitmap_line::x2#0 gfx_mode::$36 ]
|
||||
zp[2]:25 [ bitmap_line::y2#0 gfx_mode::$38 ]
|
||||
zp[2]:27 [ gfx_init_plane_8bppchunky::$5 gfx_mode::$40 memset::str#4 memset::str#0 memset::dst#2 memset::dst#4 memset::dst#1 bitmap_line::y#15 bitmap_line::y#7 bitmap_line::y#13 bitmap_line::y#4 bitmap_line::y1#0 bitmap_line::y#1 bitmap_line::y#2 ]
|
||||
zp[2]:21 [ bitmap_line::x2#0 ]
|
||||
zp[2]:23 [ bitmap_line::y2#0 ]
|
||||
zp[2]:25 [ gfx_init_plane_8bppchunky::$5 abs_u16::return#4 abs_u16::return#2 abs_u16::w#2 abs_u16::w#0 abs_u16::w#1 abs_u16::return#0 abs_u16::return#1 bitmap_line::dy#0 ]
|
||||
reg byte a [ gfx_init_plane_8bppchunky::c#0 ]
|
||||
reg byte a [ gfx_init_plane_charset8::$2 ]
|
||||
reg byte a [ gfx_init_plane_horisontal::$2 ]
|
||||
@ -956,11 +948,12 @@ reg byte a [ keyboard_event_scan::$23 ]
|
||||
reg byte a [ bitmap_init::$4 ]
|
||||
reg byte a [ bitmap_init::$5 ]
|
||||
reg byte a [ bitmap_init::$6 ]
|
||||
zp[2]:29 [ bitmap_line::dx#0 form_field_ptr::return#3 form_control::field#0 form_field_ptr::return#0 ]
|
||||
zp[2]:27 [ bitmap_line::dx#0 ]
|
||||
zp[2]:29 [ bitmap_line::sx#0 ]
|
||||
zp[4]:31 [ gfx_init_plane_fill::$0 ]
|
||||
zp[2]:35 [ gfx_init_plane_fill::$1 bitmap_line::sx#0 ]
|
||||
reg byte a [ gfx_init_plane_fill::gfxbCpuBank#0 ]
|
||||
reg byte y [ form_field_ptr::y#0 ]
|
||||
zp[2]:35 [ form_field_ptr::line#0 sgn_u16::return#4 sgn_u16::return#0 sgn_u16::return#1 bitmap_line::sy#0 ]
|
||||
zp[1]:37 [ form_field_ptr::x#0 bitmap_init::$7 keyboard_event_scan::row_scan#0 gfx_init_screen3::$1 ]
|
||||
reg byte a [ keyboard_matrix_read::return#0 ]
|
||||
reg byte a [ keyboard_event_pressed::$0 ]
|
||||
@ -971,6 +964,6 @@ reg byte a [ abs_u16::$0 ]
|
||||
reg byte a [ abs_u16::$1 ]
|
||||
reg byte a [ sgn_u16::$0 ]
|
||||
reg byte a [ sgn_u16::$1 ]
|
||||
zp[2]:39 [ bitmap_plot::plotter#0 bitmap_plot::plotter#1 form_field_ptr::line#0 gfx_mode::$24 sgn_u16::w#2 sgn_u16::w#0 sgn_u16::w#1 ]
|
||||
zp[2]:39 [ bitmap_plot::plotter#0 bitmap_plot::plotter#1 form_field_ptr::return#3 form_control::field#0 form_field_ptr::return#0 sgn_u16::w#2 sgn_u16::w#0 sgn_u16::w#1 ]
|
||||
zp[2]:41 [ bitmap_plot::$0 ]
|
||||
reg byte x [ bitmap_plot::$1 ]
|
||||
|
@ -146,11 +146,11 @@ menu: {
|
||||
// DTV Graphics Bank
|
||||
lda #0
|
||||
sta DTV_GRAPHICS_VIC_BANK
|
||||
// *DTV_COLOR_BANK_LO = <((word)(DTV_COLOR_BANK_DEFAULT/$400))
|
||||
// *DTV_COLOR_BANK_LO = BYTE0((word)(DTV_COLOR_BANK_DEFAULT/$400))
|
||||
// DTV Color Bank
|
||||
lda #<DTV_COLOR_BANK_DEFAULT/$400
|
||||
sta DTV_COLOR_BANK_LO
|
||||
// *DTV_COLOR_BANK_HI = >((word)(DTV_COLOR_BANK_DEFAULT/$400))
|
||||
// *DTV_COLOR_BANK_HI = BYTE1((word)(DTV_COLOR_BANK_DEFAULT/$400))
|
||||
lda #0
|
||||
sta DTV_COLOR_BANK_HI
|
||||
// *DTV_CONTROL = 0
|
||||
@ -480,11 +480,11 @@ mode_stdchar: {
|
||||
// DTV Graphics Bank
|
||||
lda #0
|
||||
sta DTV_GRAPHICS_VIC_BANK
|
||||
// *DTV_COLOR_BANK_LO = <((word)(DTV_COLOR_BANK_DEFAULT/$400))
|
||||
// *DTV_COLOR_BANK_LO = BYTE0((word)(DTV_COLOR_BANK_DEFAULT/$400))
|
||||
// DTV Color Bank
|
||||
lda #<DTV_COLOR_BANK_DEFAULT/$400
|
||||
sta DTV_COLOR_BANK_LO
|
||||
// *DTV_COLOR_BANK_HI = >((word)(DTV_COLOR_BANK_DEFAULT/$400))
|
||||
// *DTV_COLOR_BANK_HI = BYTE1((word)(DTV_COLOR_BANK_DEFAULT/$400))
|
||||
lda #0
|
||||
sta DTV_COLOR_BANK_HI
|
||||
// *DTV_CONTROL = 0
|
||||
@ -615,11 +615,11 @@ mode_ecmchar: {
|
||||
// DTV Graphics Bank
|
||||
lda #0
|
||||
sta DTV_GRAPHICS_VIC_BANK
|
||||
// *DTV_COLOR_BANK_LO = <((word)(DTV_COLOR_BANK_DEFAULT/$400))
|
||||
// *DTV_COLOR_BANK_LO = BYTE0((word)(DTV_COLOR_BANK_DEFAULT/$400))
|
||||
// DTV Color Bank
|
||||
lda #<DTV_COLOR_BANK_DEFAULT/$400
|
||||
sta DTV_COLOR_BANK_LO
|
||||
// *DTV_COLOR_BANK_HI = >((word)(DTV_COLOR_BANK_DEFAULT/$400))
|
||||
// *DTV_COLOR_BANK_HI = BYTE1((word)(DTV_COLOR_BANK_DEFAULT/$400))
|
||||
lda #0
|
||||
sta DTV_COLOR_BANK_HI
|
||||
// *DTV_CONTROL = 0
|
||||
@ -760,11 +760,11 @@ mode_mcchar: {
|
||||
// DTV Graphics Bank
|
||||
lda #0
|
||||
sta DTV_GRAPHICS_VIC_BANK
|
||||
// *DTV_COLOR_BANK_LO = <((word)(DTV_COLOR_BANK_DEFAULT/$400))
|
||||
// *DTV_COLOR_BANK_LO = BYTE0((word)(DTV_COLOR_BANK_DEFAULT/$400))
|
||||
// DTV Color Bank
|
||||
lda #<DTV_COLOR_BANK_DEFAULT/$400
|
||||
sta DTV_COLOR_BANK_LO
|
||||
// *DTV_COLOR_BANK_HI = >((word)(DTV_COLOR_BANK_DEFAULT/$400))
|
||||
// *DTV_COLOR_BANK_HI = BYTE1((word)(DTV_COLOR_BANK_DEFAULT/$400))
|
||||
lda #0
|
||||
sta DTV_COLOR_BANK_HI
|
||||
// *DTV_CONTROL = 0
|
||||
@ -1049,11 +1049,11 @@ mode_hicolstdchar: {
|
||||
// DTV Graphics Bank
|
||||
lda #0
|
||||
sta DTV_GRAPHICS_VIC_BANK
|
||||
// *DTV_COLOR_BANK_LO = <((word)(COLORS/$400))
|
||||
// *DTV_COLOR_BANK_LO = BYTE0((word)(COLORS/$400))
|
||||
// DTV Color Bank
|
||||
lda #<COLORS/$400
|
||||
sta DTV_COLOR_BANK_LO
|
||||
// *DTV_COLOR_BANK_HI = >((word)(COLORS/$400))
|
||||
// *DTV_COLOR_BANK_HI = BYTE1((word)(COLORS/$400))
|
||||
lda #0
|
||||
sta DTV_COLOR_BANK_HI
|
||||
// *DTV_CONTROL = DTV_HIGHCOLOR
|
||||
@ -1179,11 +1179,11 @@ mode_hicolecmchar: {
|
||||
// DTV Graphics Bank
|
||||
lda #0
|
||||
sta DTV_GRAPHICS_VIC_BANK
|
||||
// *DTV_COLOR_BANK_LO = <((word)(COLORS/$400))
|
||||
// *DTV_COLOR_BANK_LO = BYTE0((word)(COLORS/$400))
|
||||
// DTV Color Bank
|
||||
lda #<COLORS/$400
|
||||
sta DTV_COLOR_BANK_LO
|
||||
// *DTV_COLOR_BANK_HI = >((word)(COLORS/$400))
|
||||
// *DTV_COLOR_BANK_HI = BYTE1((word)(COLORS/$400))
|
||||
lda #0
|
||||
sta DTV_COLOR_BANK_HI
|
||||
// *DTV_CONTROL = DTV_HIGHCOLOR
|
||||
@ -1320,11 +1320,11 @@ mode_hicolmcchar: {
|
||||
// DTV Graphics Bank
|
||||
lda #0
|
||||
sta DTV_GRAPHICS_VIC_BANK
|
||||
// *DTV_COLOR_BANK_LO = <((word)(COLORS/$400))
|
||||
// *DTV_COLOR_BANK_LO = BYTE0((word)(COLORS/$400))
|
||||
// DTV Color Bank
|
||||
lda #<COLORS/$400
|
||||
sta DTV_COLOR_BANK_LO
|
||||
// *DTV_COLOR_BANK_HI = >((word)(COLORS/$400))
|
||||
// *DTV_COLOR_BANK_HI = BYTE1((word)(COLORS/$400))
|
||||
lda #0
|
||||
sta DTV_COLOR_BANK_HI
|
||||
// *DTV_CONTROL = DTV_HIGHCOLOR
|
||||
@ -1462,11 +1462,11 @@ mode_sixsfred2: {
|
||||
// *VICII_CONTROL2 = VICII_MCM|VICII_CSEL
|
||||
lda #VICII_MCM|VICII_CSEL
|
||||
sta VICII_CONTROL2
|
||||
// *DTV_PLANEA_START_LO = <PLANEA
|
||||
// *DTV_PLANEA_START_LO = BYTE0(PLANEA)
|
||||
// Linear Graphics Plane A Counter
|
||||
lda #0
|
||||
sta DTV_PLANEA_START_LO
|
||||
// *DTV_PLANEA_START_MI = >PLANEA
|
||||
// *DTV_PLANEA_START_MI = BYTE1(PLANEA)
|
||||
lda #>PLANEA
|
||||
sta DTV_PLANEA_START_MI
|
||||
// *DTV_PLANEA_START_HI = 0
|
||||
@ -1480,10 +1480,10 @@ mode_sixsfred2: {
|
||||
sta DTV_PLANEA_MODULO_LO
|
||||
// *DTV_PLANEA_MODULO_HI = 0
|
||||
sta DTV_PLANEA_MODULO_HI
|
||||
// *DTV_PLANEB_START_LO = <PLANEB
|
||||
// *DTV_PLANEB_START_LO = BYTE0(PLANEB)
|
||||
// Linear Graphics Plane B Counter
|
||||
sta DTV_PLANEB_START_LO
|
||||
// *DTV_PLANEB_START_MI = >PLANEB
|
||||
// *DTV_PLANEB_START_MI = BYTE1(PLANEB)
|
||||
lda #>PLANEB
|
||||
sta DTV_PLANEB_START_MI
|
||||
// *DTV_PLANEB_START_HI = 0
|
||||
@ -1497,11 +1497,11 @@ mode_sixsfred2: {
|
||||
sta DTV_PLANEB_MODULO_LO
|
||||
// *DTV_PLANEB_MODULO_HI = 0
|
||||
sta DTV_PLANEB_MODULO_HI
|
||||
// *DTV_COLOR_BANK_LO = <(COLORS/$400)
|
||||
// *DTV_COLOR_BANK_LO = BYTE0(COLORS/$400)
|
||||
// DTV Color Bank
|
||||
lda #<COLORS/$400
|
||||
sta DTV_COLOR_BANK_LO
|
||||
// *DTV_COLOR_BANK_HI = >(COLORS/$400)
|
||||
// *DTV_COLOR_BANK_HI = BYTE1(COLORS/$400)
|
||||
lda #0
|
||||
sta DTV_COLOR_BANK_HI
|
||||
tax
|
||||
@ -1662,11 +1662,11 @@ mode_twoplanebitmap: {
|
||||
// *VICII_CONTROL2 = VICII_CSEL
|
||||
lda #VICII_CSEL
|
||||
sta VICII_CONTROL2
|
||||
// *DTV_PLANEA_START_LO = <PLANEA
|
||||
// *DTV_PLANEA_START_LO = BYTE0(PLANEA)
|
||||
// Linear Graphics Plane A Counter
|
||||
lda #0
|
||||
sta DTV_PLANEA_START_LO
|
||||
// *DTV_PLANEA_START_MI = >PLANEA
|
||||
// *DTV_PLANEA_START_MI = BYTE1(PLANEA)
|
||||
lda #>PLANEA
|
||||
sta DTV_PLANEA_START_MI
|
||||
// *DTV_PLANEA_START_HI = 0
|
||||
@ -1680,10 +1680,10 @@ mode_twoplanebitmap: {
|
||||
sta DTV_PLANEA_MODULO_LO
|
||||
// *DTV_PLANEA_MODULO_HI = 0
|
||||
sta DTV_PLANEA_MODULO_HI
|
||||
// *DTV_PLANEB_START_LO = <PLANEB
|
||||
// *DTV_PLANEB_START_LO = BYTE0(PLANEB)
|
||||
// Linear Graphics Plane B Counter
|
||||
sta DTV_PLANEB_START_LO
|
||||
// *DTV_PLANEB_START_MI = >PLANEB
|
||||
// *DTV_PLANEB_START_MI = BYTE1(PLANEB)
|
||||
lda #>PLANEB
|
||||
sta DTV_PLANEB_START_MI
|
||||
// *DTV_PLANEB_START_HI = 0
|
||||
@ -1697,11 +1697,11 @@ mode_twoplanebitmap: {
|
||||
sta DTV_PLANEB_MODULO_LO
|
||||
// *DTV_PLANEB_MODULO_HI = 0
|
||||
sta DTV_PLANEB_MODULO_HI
|
||||
// *DTV_COLOR_BANK_LO = <(COLORS/$400)
|
||||
// *DTV_COLOR_BANK_LO = BYTE0(COLORS/$400)
|
||||
// DTV Color Bank
|
||||
lda #<COLORS/$400
|
||||
sta DTV_COLOR_BANK_LO
|
||||
// *DTV_COLOR_BANK_HI = >(COLORS/$400)
|
||||
// *DTV_COLOR_BANK_HI = BYTE1(COLORS/$400)
|
||||
lda #0
|
||||
sta DTV_COLOR_BANK_HI
|
||||
tax
|
||||
@ -1873,11 +1873,11 @@ mode_sixsfred: {
|
||||
// *VICII_CONTROL2 = VICII_MCM|VICII_CSEL
|
||||
lda #VICII_MCM|VICII_CSEL
|
||||
sta VICII_CONTROL2
|
||||
// *DTV_PLANEA_START_LO = <PLANEA
|
||||
// *DTV_PLANEA_START_LO = BYTE0(PLANEA)
|
||||
// Linear Graphics Plane A Counter
|
||||
lda #0
|
||||
sta DTV_PLANEA_START_LO
|
||||
// *DTV_PLANEA_START_MI = >PLANEA
|
||||
// *DTV_PLANEA_START_MI = BYTE1(PLANEA)
|
||||
lda #>PLANEA
|
||||
sta DTV_PLANEA_START_MI
|
||||
// *DTV_PLANEA_START_HI = 0
|
||||
@ -1891,10 +1891,10 @@ mode_sixsfred: {
|
||||
sta DTV_PLANEA_MODULO_LO
|
||||
// *DTV_PLANEA_MODULO_HI = 0
|
||||
sta DTV_PLANEA_MODULO_HI
|
||||
// *DTV_PLANEB_START_LO = <PLANEB
|
||||
// *DTV_PLANEB_START_LO = BYTE0(PLANEB)
|
||||
// Linear Graphics Plane B Counter
|
||||
sta DTV_PLANEB_START_LO
|
||||
// *DTV_PLANEB_START_MI = >PLANEB
|
||||
// *DTV_PLANEB_START_MI = BYTE1(PLANEB)
|
||||
lda #>PLANEB
|
||||
sta DTV_PLANEB_START_MI
|
||||
// *DTV_PLANEB_START_HI = 0
|
||||
@ -1908,11 +1908,11 @@ mode_sixsfred: {
|
||||
sta DTV_PLANEB_MODULO_LO
|
||||
// *DTV_PLANEB_MODULO_HI = 0
|
||||
sta DTV_PLANEB_MODULO_HI
|
||||
// *DTV_COLOR_BANK_LO = <(COLORS/$400)
|
||||
// *DTV_COLOR_BANK_LO = BYTE0(COLORS/$400)
|
||||
// DTV Color Bank
|
||||
lda #<COLORS/$400
|
||||
sta DTV_COLOR_BANK_LO
|
||||
// *DTV_COLOR_BANK_HI = >(COLORS/$400)
|
||||
// *DTV_COLOR_BANK_HI = BYTE1(COLORS/$400)
|
||||
lda #0
|
||||
sta DTV_COLOR_BANK_HI
|
||||
tax
|
||||
@ -2066,11 +2066,11 @@ mode_8bpppixelcell: {
|
||||
// *VICII_CONTROL2 = VICII_MCM|VICII_CSEL
|
||||
lda #VICII_MCM|VICII_CSEL
|
||||
sta VICII_CONTROL2
|
||||
// *DTV_PLANEA_START_LO = <PLANEA
|
||||
// *DTV_PLANEA_START_LO = BYTE0(PLANEA)
|
||||
// Linear Graphics Plane A Counter
|
||||
lda #0
|
||||
sta DTV_PLANEA_START_LO
|
||||
// *DTV_PLANEA_START_MI = >PLANEA
|
||||
// *DTV_PLANEA_START_MI = BYTE1(PLANEA)
|
||||
lda #>PLANEA
|
||||
sta DTV_PLANEA_START_MI
|
||||
// *DTV_PLANEA_START_HI = 0
|
||||
@ -2084,10 +2084,10 @@ mode_8bpppixelcell: {
|
||||
sta DTV_PLANEA_MODULO_LO
|
||||
// *DTV_PLANEA_MODULO_HI = 0
|
||||
sta DTV_PLANEA_MODULO_HI
|
||||
// *DTV_PLANEB_START_LO = <PLANEB
|
||||
// *DTV_PLANEB_START_LO = BYTE0(PLANEB)
|
||||
// Linear Graphics Plane B Counter
|
||||
sta DTV_PLANEB_START_LO
|
||||
// *DTV_PLANEB_START_MI = >PLANEB
|
||||
// *DTV_PLANEB_START_MI = BYTE1(PLANEB)
|
||||
lda #>PLANEB
|
||||
sta DTV_PLANEB_START_MI
|
||||
// *DTV_PLANEB_START_HI = 0
|
||||
@ -2250,13 +2250,13 @@ mode_8bppchunkybmm: {
|
||||
// *VICII_CONTROL2 = VICII_MCM | VICII_CSEL
|
||||
lda #VICII_MCM|VICII_CSEL
|
||||
sta VICII_CONTROL2
|
||||
// *DTV_PLANEB_START_LO = < < PLANEB
|
||||
// *DTV_PLANEB_START_LO = BYTE0(PLANEB)
|
||||
// Linear Graphics Plane B Counter
|
||||
lda #0
|
||||
sta DTV_PLANEB_START_LO
|
||||
// *DTV_PLANEB_START_MI = > < PLANEB
|
||||
// *DTV_PLANEB_START_MI = BYTE1(PLANEB)
|
||||
sta DTV_PLANEB_START_MI
|
||||
// *DTV_PLANEB_START_HI = < > PLANEB
|
||||
// *DTV_PLANEB_START_HI = BYTE2(PLANEB)
|
||||
lda #<PLANEB>>$10
|
||||
sta DTV_PLANEB_START_HI
|
||||
// *DTV_PLANEB_STEP = 8
|
||||
@ -2602,15 +2602,15 @@ bitmap_init: {
|
||||
// y&$7
|
||||
lda #7
|
||||
sax.z __7
|
||||
// <yoffs
|
||||
// BYTE0(yoffs)
|
||||
lda.z yoffs
|
||||
// y&$7 | <yoffs
|
||||
// y&$7 | BYTE0(yoffs)
|
||||
ora.z __7
|
||||
// bitmap_plot_ylo[y] = y&$7 | <yoffs
|
||||
// bitmap_plot_ylo[y] = y&$7 | BYTE0(yoffs)
|
||||
sta bitmap_plot_ylo,x
|
||||
// >yoffs
|
||||
// BYTE1(yoffs)
|
||||
lda.z yoffs+1
|
||||
// bitmap_plot_yhi[y] = >yoffs
|
||||
// bitmap_plot_yhi[y] = BYTE1(yoffs)
|
||||
sta bitmap_plot_yhi,x
|
||||
// if((y&$7)==7)
|
||||
lda #7
|
||||
@ -2757,7 +2757,7 @@ bitmap_line: {
|
||||
sta.z e
|
||||
__b6:
|
||||
// bitmap_plot(x,(char)y)
|
||||
lda.z y
|
||||
ldx.z y
|
||||
jsr bitmap_plot
|
||||
// y += sy
|
||||
lda.z y
|
||||
@ -2809,7 +2809,7 @@ bitmap_line: {
|
||||
bne __b6
|
||||
__b3:
|
||||
// bitmap_plot(x,(char)y)
|
||||
lda.z y
|
||||
ldx.z y
|
||||
jsr bitmap_plot
|
||||
// }
|
||||
rts
|
||||
@ -2823,7 +2823,7 @@ bitmap_line: {
|
||||
sta.z e1
|
||||
__b9:
|
||||
// bitmap_plot(x,(char)y)
|
||||
lda.z y
|
||||
ldx.z y
|
||||
jsr bitmap_plot
|
||||
// x += sx
|
||||
lda.z x
|
||||
@ -2876,7 +2876,7 @@ bitmap_line: {
|
||||
jmp __b3
|
||||
__b4:
|
||||
// bitmap_plot(x,(char)y)
|
||||
lda.z y1
|
||||
ldx.z y1
|
||||
jsr bitmap_plot
|
||||
rts
|
||||
}
|
||||
@ -2901,11 +2901,11 @@ dtvSetCpuBankSegment1: {
|
||||
abs_u16: {
|
||||
.label w = $f
|
||||
.label return = $f
|
||||
// >w
|
||||
// BYTE1(w)
|
||||
lda.z w+1
|
||||
// >w&0x80
|
||||
// BYTE1(w)&0x80
|
||||
and #$80
|
||||
// if(>w&0x80)
|
||||
// if(BYTE1(w)&0x80)
|
||||
cmp #0
|
||||
bne __b1
|
||||
rts
|
||||
@ -2927,11 +2927,11 @@ abs_u16: {
|
||||
sgn_u16: {
|
||||
.label w = $21
|
||||
.label return = $11
|
||||
// >w
|
||||
// BYTE1(w)
|
||||
lda.z w+1
|
||||
// >w&0x80
|
||||
// BYTE1(w)&0x80
|
||||
and #$80
|
||||
// if(>w&0x80)
|
||||
// if(BYTE1(w)&0x80)
|
||||
cmp #0
|
||||
bne __b1
|
||||
lda #<1
|
||||
@ -2947,16 +2947,15 @@ sgn_u16: {
|
||||
rts
|
||||
}
|
||||
// Plot a single dot in the bitmap
|
||||
// bitmap_plot(word zp(9) x, byte register(A) y)
|
||||
// bitmap_plot(word zp(9) x, byte register(X) y)
|
||||
bitmap_plot: {
|
||||
.label __0 = $23
|
||||
.label plotter = $21
|
||||
.label x = 9
|
||||
// char* plotter = (char*) { bitmap_plot_yhi[y], bitmap_plot_ylo[y] }
|
||||
tay
|
||||
lda bitmap_plot_yhi,y
|
||||
lda bitmap_plot_yhi,x
|
||||
sta.z plotter+1
|
||||
lda bitmap_plot_ylo,y
|
||||
lda bitmap_plot_ylo,x
|
||||
sta.z plotter
|
||||
// x & $fff8
|
||||
lda.z x
|
||||
@ -2973,9 +2972,9 @@ bitmap_plot: {
|
||||
lda.z plotter+1
|
||||
adc.z __0+1
|
||||
sta.z plotter+1
|
||||
// <x
|
||||
// BYTE0(x)
|
||||
ldx.z x
|
||||
// *plotter |= bitmap_plot_bit[<x]
|
||||
// *plotter |= bitmap_plot_bit[BYTE0(x)]
|
||||
lda bitmap_plot_bit,x
|
||||
ldy #0
|
||||
ora (plotter),y
|
||||
|
@ -18,7 +18,7 @@ main::@2: scope:[main] from main::@1
|
||||
void menu()
|
||||
menu: scope:[menu] from main::@2
|
||||
[7] *DTV_GRAPHICS_VIC_BANK = 0
|
||||
[8] *DTV_COLOR_BANK_LO = <(word)DTV_COLOR_BANK_DEFAULT/$400
|
||||
[8] *DTV_COLOR_BANK_LO = byte0 (word)DTV_COLOR_BANK_DEFAULT/$400
|
||||
[9] *DTV_COLOR_BANK_HI = 0
|
||||
[10] *DTV_CONTROL = 0
|
||||
[11] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3
|
||||
@ -280,7 +280,7 @@ keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_p
|
||||
void mode_stdchar()
|
||||
mode_stdchar: scope:[mode_stdchar] from menu::@17
|
||||
[143] *DTV_GRAPHICS_VIC_BANK = 0
|
||||
[144] *DTV_COLOR_BANK_LO = <(word)DTV_COLOR_BANK_DEFAULT/$400
|
||||
[144] *DTV_COLOR_BANK_LO = byte0 (word)DTV_COLOR_BANK_DEFAULT/$400
|
||||
[145] *DTV_COLOR_BANK_HI = 0
|
||||
[146] *DTV_CONTROL = 0
|
||||
[147] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3
|
||||
@ -336,7 +336,7 @@ mode_stdchar::@return: scope:[mode_stdchar] from mode_stdchar::@6
|
||||
void mode_ecmchar()
|
||||
mode_ecmchar: scope:[mode_ecmchar] from menu::@18
|
||||
[177] *DTV_GRAPHICS_VIC_BANK = 0
|
||||
[178] *DTV_COLOR_BANK_LO = <(word)DTV_COLOR_BANK_DEFAULT/$400
|
||||
[178] *DTV_COLOR_BANK_LO = byte0 (word)DTV_COLOR_BANK_DEFAULT/$400
|
||||
[179] *DTV_COLOR_BANK_HI = 0
|
||||
[180] *DTV_CONTROL = 0
|
||||
[181] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3
|
||||
@ -395,7 +395,7 @@ mode_ecmchar::@return: scope:[mode_ecmchar] from mode_ecmchar::@6
|
||||
void mode_mcchar()
|
||||
mode_mcchar: scope:[mode_mcchar] from menu::@19
|
||||
[214] *DTV_GRAPHICS_VIC_BANK = 0
|
||||
[215] *DTV_COLOR_BANK_LO = <(word)DTV_COLOR_BANK_DEFAULT/$400
|
||||
[215] *DTV_COLOR_BANK_LO = byte0 (word)DTV_COLOR_BANK_DEFAULT/$400
|
||||
[216] *DTV_COLOR_BANK_HI = 0
|
||||
[217] *DTV_CONTROL = 0
|
||||
[218] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3
|
||||
@ -521,7 +521,7 @@ mode_stdbitmap::@10: scope:[mode_stdbitmap] from mode_stdbitmap::@7
|
||||
void mode_hicolstdchar()
|
||||
mode_hicolstdchar: scope:[mode_hicolstdchar] from menu::@21
|
||||
[290] *DTV_GRAPHICS_VIC_BANK = 0
|
||||
[291] *DTV_COLOR_BANK_LO = <(word)mode_hicolstdchar::COLORS/$400
|
||||
[291] *DTV_COLOR_BANK_LO = byte0 (word)mode_hicolstdchar::COLORS/$400
|
||||
[292] *DTV_COLOR_BANK_HI = 0
|
||||
[293] *DTV_CONTROL = DTV_HIGHCOLOR
|
||||
[294] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3
|
||||
@ -575,7 +575,7 @@ mode_hicolstdchar::@return: scope:[mode_hicolstdchar] from mode_hicolstdchar::@
|
||||
void mode_hicolecmchar()
|
||||
mode_hicolecmchar: scope:[mode_hicolecmchar] from menu::@22
|
||||
[322] *DTV_GRAPHICS_VIC_BANK = 0
|
||||
[323] *DTV_COLOR_BANK_LO = <(word)mode_hicolecmchar::COLORS/$400
|
||||
[323] *DTV_COLOR_BANK_LO = byte0 (word)mode_hicolecmchar::COLORS/$400
|
||||
[324] *DTV_COLOR_BANK_HI = 0
|
||||
[325] *DTV_CONTROL = DTV_HIGHCOLOR
|
||||
[326] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3
|
||||
@ -632,7 +632,7 @@ mode_hicolecmchar::@return: scope:[mode_hicolecmchar] from mode_hicolecmchar::@
|
||||
void mode_hicolmcchar()
|
||||
mode_hicolmcchar: scope:[mode_hicolmcchar] from menu::@23
|
||||
[357] *DTV_GRAPHICS_VIC_BANK = 0
|
||||
[358] *DTV_COLOR_BANK_LO = <(word)mode_hicolmcchar::COLORS/$400
|
||||
[358] *DTV_COLOR_BANK_LO = byte0 (word)mode_hicolmcchar::COLORS/$400
|
||||
[359] *DTV_COLOR_BANK_HI = 0
|
||||
[360] *DTV_CONTROL = DTV_HIGHCOLOR
|
||||
[361] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3
|
||||
@ -691,18 +691,18 @@ mode_sixsfred2: scope:[mode_sixsfred2] from menu::@24
|
||||
[392] *VICII_CONTROL1 = VICII_ECM|VICII_BMM|VICII_DEN|VICII_RSEL|3
|
||||
[393] *VICII_CONTROL2 = VICII_MCM|VICII_CSEL
|
||||
[394] *DTV_PLANEA_START_LO = 0
|
||||
[395] *DTV_PLANEA_START_MI = >mode_sixsfred2::PLANEA
|
||||
[395] *DTV_PLANEA_START_MI = byte1 mode_sixsfred2::PLANEA
|
||||
[396] *DTV_PLANEA_START_HI = 0
|
||||
[397] *DTV_PLANEA_STEP = 1
|
||||
[398] *DTV_PLANEA_MODULO_LO = 0
|
||||
[399] *DTV_PLANEA_MODULO_HI = 0
|
||||
[400] *DTV_PLANEB_START_LO = 0
|
||||
[401] *DTV_PLANEB_START_MI = >mode_sixsfred2::PLANEB
|
||||
[401] *DTV_PLANEB_START_MI = byte1 mode_sixsfred2::PLANEB
|
||||
[402] *DTV_PLANEB_START_HI = 0
|
||||
[403] *DTV_PLANEB_STEP = 1
|
||||
[404] *DTV_PLANEB_MODULO_LO = 0
|
||||
[405] *DTV_PLANEB_MODULO_HI = 0
|
||||
[406] *DTV_COLOR_BANK_LO = <mode_sixsfred2::COLORS/$400
|
||||
[406] *DTV_COLOR_BANK_LO = byte0 mode_sixsfred2::COLORS/$400
|
||||
[407] *DTV_COLOR_BANK_HI = 0
|
||||
to:mode_sixsfred2::@1
|
||||
mode_sixsfred2::@1: scope:[mode_sixsfred2] from mode_sixsfred2 mode_sixsfred2::@1
|
||||
@ -782,18 +782,18 @@ mode_twoplanebitmap: scope:[mode_twoplanebitmap] from menu::@25
|
||||
[447] *VICII_CONTROL1 = VICII_ECM|VICII_BMM|VICII_DEN|VICII_RSEL|3
|
||||
[448] *VICII_CONTROL2 = VICII_CSEL
|
||||
[449] *DTV_PLANEA_START_LO = 0
|
||||
[450] *DTV_PLANEA_START_MI = >mode_twoplanebitmap::PLANEA
|
||||
[450] *DTV_PLANEA_START_MI = byte1 mode_twoplanebitmap::PLANEA
|
||||
[451] *DTV_PLANEA_START_HI = 0
|
||||
[452] *DTV_PLANEA_STEP = 1
|
||||
[453] *DTV_PLANEA_MODULO_LO = 0
|
||||
[454] *DTV_PLANEA_MODULO_HI = 0
|
||||
[455] *DTV_PLANEB_START_LO = 0
|
||||
[456] *DTV_PLANEB_START_MI = >mode_twoplanebitmap::PLANEB
|
||||
[456] *DTV_PLANEB_START_MI = byte1 mode_twoplanebitmap::PLANEB
|
||||
[457] *DTV_PLANEB_START_HI = 0
|
||||
[458] *DTV_PLANEB_STEP = 1
|
||||
[459] *DTV_PLANEB_MODULO_LO = 0
|
||||
[460] *DTV_PLANEB_MODULO_HI = 0
|
||||
[461] *DTV_COLOR_BANK_LO = <mode_twoplanebitmap::COLORS/$400
|
||||
[461] *DTV_COLOR_BANK_LO = byte0 mode_twoplanebitmap::COLORS/$400
|
||||
[462] *DTV_COLOR_BANK_HI = 0
|
||||
to:mode_twoplanebitmap::@1
|
||||
mode_twoplanebitmap::@1: scope:[mode_twoplanebitmap] from mode_twoplanebitmap mode_twoplanebitmap::@1
|
||||
@ -884,18 +884,18 @@ mode_sixsfred: scope:[mode_sixsfred] from menu::@26
|
||||
[507] *VICII_CONTROL1 = VICII_ECM|VICII_BMM|VICII_DEN|VICII_RSEL|3
|
||||
[508] *VICII_CONTROL2 = VICII_MCM|VICII_CSEL
|
||||
[509] *DTV_PLANEA_START_LO = 0
|
||||
[510] *DTV_PLANEA_START_MI = >mode_sixsfred::PLANEA
|
||||
[510] *DTV_PLANEA_START_MI = byte1 mode_sixsfred::PLANEA
|
||||
[511] *DTV_PLANEA_START_HI = 0
|
||||
[512] *DTV_PLANEA_STEP = 1
|
||||
[513] *DTV_PLANEA_MODULO_LO = 0
|
||||
[514] *DTV_PLANEA_MODULO_HI = 0
|
||||
[515] *DTV_PLANEB_START_LO = 0
|
||||
[516] *DTV_PLANEB_START_MI = >mode_sixsfred::PLANEB
|
||||
[516] *DTV_PLANEB_START_MI = byte1 mode_sixsfred::PLANEB
|
||||
[517] *DTV_PLANEB_START_HI = 0
|
||||
[518] *DTV_PLANEB_STEP = 1
|
||||
[519] *DTV_PLANEB_MODULO_LO = 0
|
||||
[520] *DTV_PLANEB_MODULO_HI = 0
|
||||
[521] *DTV_COLOR_BANK_LO = <mode_sixsfred::COLORS/$400
|
||||
[521] *DTV_COLOR_BANK_LO = byte0 mode_sixsfred::COLORS/$400
|
||||
[522] *DTV_COLOR_BANK_HI = 0
|
||||
to:mode_sixsfred::@1
|
||||
mode_sixsfred::@1: scope:[mode_sixsfred] from mode_sixsfred mode_sixsfred::@1
|
||||
@ -973,13 +973,13 @@ mode_8bpppixelcell: scope:[mode_8bpppixelcell] from menu::@27
|
||||
[560] *VICII_CONTROL1 = VICII_ECM|VICII_DEN|VICII_RSEL|3
|
||||
[561] *VICII_CONTROL2 = VICII_MCM|VICII_CSEL
|
||||
[562] *DTV_PLANEA_START_LO = 0
|
||||
[563] *DTV_PLANEA_START_MI = >mode_8bpppixelcell::PLANEA
|
||||
[563] *DTV_PLANEA_START_MI = byte1 mode_8bpppixelcell::PLANEA
|
||||
[564] *DTV_PLANEA_START_HI = 0
|
||||
[565] *DTV_PLANEA_STEP = 1
|
||||
[566] *DTV_PLANEA_MODULO_LO = 0
|
||||
[567] *DTV_PLANEA_MODULO_HI = 0
|
||||
[568] *DTV_PLANEB_START_LO = 0
|
||||
[569] *DTV_PLANEB_START_MI = >mode_8bpppixelcell::PLANEB
|
||||
[569] *DTV_PLANEB_START_MI = byte1 mode_8bpppixelcell::PLANEB
|
||||
[570] *DTV_PLANEB_START_HI = 0
|
||||
[571] *DTV_PLANEB_STEP = 0
|
||||
[572] *DTV_PLANEB_MODULO_LO = 0
|
||||
@ -1072,7 +1072,7 @@ mode_8bppchunkybmm: scope:[mode_8bppchunkybmm] from menu::@28
|
||||
[616] *VICII_CONTROL2 = VICII_MCM|VICII_CSEL
|
||||
[617] *DTV_PLANEB_START_LO = 0
|
||||
[618] *DTV_PLANEB_START_MI = 0
|
||||
[619] *DTV_PLANEB_START_HI = <>mode_8bppchunkybmm::PLANEB
|
||||
[619] *DTV_PLANEB_START_HI = byte2 mode_8bppchunkybmm::PLANEB
|
||||
[620] *DTV_PLANEB_STEP = 8
|
||||
[621] *DTV_PLANEB_MODULO_LO = 0
|
||||
[622] *DTV_PLANEB_MODULO_HI = 0
|
||||
@ -1325,10 +1325,10 @@ bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@2 bitmap_init::@4
|
||||
[735] bitmap_init::yoffs#2 = phi( bitmap_init::@2/mode_stdbitmap::BITMAP, bitmap_init::@4/bitmap_init::yoffs#4 )
|
||||
[735] bitmap_init::y#2 = phi( bitmap_init::@2/0, bitmap_init::@4/bitmap_init::y#1 )
|
||||
[736] bitmap_init::$7 = bitmap_init::y#2 & 7
|
||||
[737] bitmap_init::$4 = < bitmap_init::yoffs#2
|
||||
[737] bitmap_init::$4 = byte0 bitmap_init::yoffs#2
|
||||
[738] bitmap_init::$5 = bitmap_init::$7 | bitmap_init::$4
|
||||
[739] bitmap_plot_ylo[bitmap_init::y#2] = bitmap_init::$5
|
||||
[740] bitmap_init::$6 = > bitmap_init::yoffs#2
|
||||
[740] bitmap_init::$6 = byte1 bitmap_init::yoffs#2
|
||||
[741] bitmap_plot_yhi[bitmap_init::y#2] = bitmap_init::$6
|
||||
[742] if(bitmap_init::$7!=7) goto bitmap_init::@4
|
||||
to:bitmap_init::@5
|
||||
@ -1470,7 +1470,7 @@ dtvSetCpuBankSegment1::@return: scope:[dtvSetCpuBankSegment1] from dtvSetCpuBan
|
||||
word abs_u16(word abs_u16::w)
|
||||
abs_u16: scope:[abs_u16] from bitmap_line bitmap_line::@12
|
||||
[808] abs_u16::w#2 = phi( bitmap_line/abs_u16::w#0, bitmap_line::@12/abs_u16::w#1 )
|
||||
[809] abs_u16::$0 = > abs_u16::w#2
|
||||
[809] abs_u16::$0 = byte1 abs_u16::w#2
|
||||
[810] abs_u16::$1 = abs_u16::$0 & $80
|
||||
[811] if(0!=abs_u16::$1) goto abs_u16::@1
|
||||
to:abs_u16::@return
|
||||
@ -1485,7 +1485,7 @@ abs_u16::@return: scope:[abs_u16] from abs_u16 abs_u16::@1
|
||||
word sgn_u16(word sgn_u16::w)
|
||||
sgn_u16: scope:[sgn_u16] from bitmap_line::@1 bitmap_line::@14
|
||||
[815] sgn_u16::w#2 = phi( bitmap_line::@1/sgn_u16::w#0, bitmap_line::@14/sgn_u16::w#1 )
|
||||
[816] sgn_u16::$0 = > sgn_u16::w#2
|
||||
[816] sgn_u16::$0 = byte1 sgn_u16::w#2
|
||||
[817] sgn_u16::$1 = sgn_u16::$0 & $80
|
||||
[818] if(0!=sgn_u16::$1) goto sgn_u16::@1
|
||||
to:sgn_u16::@return
|
||||
@ -1504,7 +1504,7 @@ bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_li
|
||||
[823] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4]
|
||||
[824] bitmap_plot::$0 = bitmap_plot::x#4 & $fff8
|
||||
[825] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0
|
||||
[826] bitmap_plot::$1 = < bitmap_plot::x#4
|
||||
[826] bitmap_plot::$1 = byte0 bitmap_plot::x#4
|
||||
[827] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1]
|
||||
to:bitmap_plot::@return
|
||||
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
|
||||
|
File diff suppressed because one or more lines are too long
@ -175,11 +175,11 @@ word bitmap_plot::x#2 x zp[2]:9 1000001.0
|
||||
word bitmap_plot::x#3 x zp[2]:9 1.000000001E9
|
||||
word bitmap_plot::x#4 x zp[2]:9 5.5005000015E9
|
||||
byte bitmap_plot::y
|
||||
byte bitmap_plot::y#0 reg byte a 2000002.0
|
||||
byte bitmap_plot::y#1 reg byte a 2.000000002E9
|
||||
byte bitmap_plot::y#2 reg byte a 2000002.0
|
||||
byte bitmap_plot::y#3 reg byte a 2.000000002E9
|
||||
byte bitmap_plot::y#4 reg byte a 2.2002000006E10
|
||||
byte bitmap_plot::y#0 reg byte x 2000002.0
|
||||
byte bitmap_plot::y#1 reg byte x 2.000000002E9
|
||||
byte bitmap_plot::y#2 reg byte x 2000002.0
|
||||
byte bitmap_plot::y#3 reg byte x 2.000000002E9
|
||||
byte bitmap_plot::y#4 reg byte x 2.2002000006E10
|
||||
constant const byte* bitmap_plot_bit[$100] = { fill( $100, 0) }
|
||||
constant const byte* bitmap_plot_yhi[$100] = { fill( $100, 0) }
|
||||
constant const byte* bitmap_plot_ylo[$100] = { fill( $100, 0) }
|
||||
@ -775,7 +775,7 @@ zp[2]:13 [ bitmap_line::e1#3 bitmap_line::e1#6 bitmap_line::e1#0 bitmap_line::e1
|
||||
reg byte a [ dtvSetCpuBankSegment1::cpuBankIdx#3 dtvSetCpuBankSegment1::cpuBankIdx#1 ]
|
||||
zp[2]:15 [ abs_u16::return#4 abs_u16::return#2 abs_u16::w#2 abs_u16::w#0 abs_u16::w#1 abs_u16::return#0 abs_u16::return#1 bitmap_line::dy#0 memset::num#3 memset::end#0 mode_8bppchunkybmm::gfxb#4 mode_8bppchunkybmm::gfxb#3 mode_8bppchunkybmm::gfxb#5 mode_8bppchunkybmm::gfxb#1 mode_8bpppixelcell::chargen#2 mode_8bpppixelcell::chargen#4 mode_8bpppixelcell::chargen#1 mode_sixsfred::gfxb#2 mode_sixsfred::gfxb#3 mode_sixsfred::gfxb#1 mode_twoplanebitmap::col#2 mode_twoplanebitmap::col#3 mode_twoplanebitmap::col#1 mode_sixsfred2::gfxa#2 mode_sixsfred2::gfxa#3 mode_sixsfred2::gfxa#1 mode_hicolmcchar::col#2 mode_hicolmcchar::col#3 mode_hicolmcchar::col#1 mode_hicolecmchar::ch#2 mode_hicolecmchar::ch#3 mode_hicolecmchar::ch#1 mode_hicolstdchar::col#2 mode_hicolstdchar::col#3 mode_hicolstdchar::col#1 mode_mcchar::ch#2 mode_mcchar::ch#3 mode_mcchar::ch#1 mode_ecmchar::col#2 mode_ecmchar::col#3 mode_ecmchar::col#1 mode_stdchar::ch#2 mode_stdchar::ch#3 mode_stdchar::ch#1 ]
|
||||
zp[2]:17 [ sgn_u16::return#4 sgn_u16::return#0 sgn_u16::return#1 bitmap_line::sy#0 ]
|
||||
reg byte a [ bitmap_plot::y#4 bitmap_plot::y#2 bitmap_plot::y#0 bitmap_plot::y#1 bitmap_plot::y#3 ]
|
||||
reg byte x [ bitmap_plot::y#4 bitmap_plot::y#2 bitmap_plot::y#0 bitmap_plot::y#1 bitmap_plot::y#3 ]
|
||||
reg byte a [ keyboard_key_pressed::return#2 ]
|
||||
reg byte a [ menu::$5 ]
|
||||
reg byte a [ keyboard_key_pressed::return#24 ]
|
||||
|
Loading…
x
Reference in New Issue
Block a user