more cleanup
This commit is contained in:
@@ -1,35 +1,39 @@
|
||||
|
||||
;
|
||||
; original lcdtest.s by PeT (mess@utanet.at)
|
||||
;
|
||||
; cl65 -t gamate -o lcdtest.bin lcdtest.s
|
||||
;
|
||||
|
||||
.include "gamate.inc"
|
||||
|
||||
.zeropage
|
||||
addr: .word 0
|
||||
psa: .word 0
|
||||
addr: .word 0
|
||||
psa: .word 0
|
||||
|
||||
.data
|
||||
temp_x: .byte 0
|
||||
temp_y: .byte 0
|
||||
temp_a: .byte 0
|
||||
irq_count: .byte 0
|
||||
nmi_count: .byte 0
|
||||
psx: .byte 0
|
||||
psy: .byte 0
|
||||
count: .word 0
|
||||
counted: .word 0
|
||||
xpos: .byte 0
|
||||
ypos: .byte 0
|
||||
.bss
|
||||
temp_x: .byte 0
|
||||
temp_y: .byte 0
|
||||
temp_a: .byte 0
|
||||
irq_count: .byte 0
|
||||
nmi_count: .byte 0
|
||||
psx: .byte 0
|
||||
psy: .byte 0
|
||||
count: .word 0
|
||||
counted: .word 0
|
||||
xpos: .byte 0
|
||||
ypos: .byte 0
|
||||
|
||||
.code
|
||||
.rodata
|
||||
|
||||
chars:
|
||||
.incbin "cga2.chr"
|
||||
chars: .incbin "cga2.chr"
|
||||
|
||||
hex2asc: .byte "0123456789abcdef"
|
||||
format: .byte "IrqNmiCountXposYpos", 0
|
||||
xdesc: .byte "0123456789abcdefghijklmnopqrstuv", 0
|
||||
ydesc: .byte "0123456789ABCDEFGHIJKLMNOPQRSTUV", 0
|
||||
|
||||
.code
|
||||
|
||||
;-------------------------------------------------------------------------------
|
||||
.export IRQStub, NMIStub
|
||||
|
||||
@@ -57,278 +61,295 @@ ydesc: .byte "0123456789ABCDEFGHIJKLMNOPQRSTUV", 0
|
||||
.export Start
|
||||
|
||||
.proc Start
|
||||
sei
|
||||
lda #0
|
||||
sta ZP_IRQ_CTRL
|
||||
|
||||
lda #0
|
||||
sta LCD_XPOS
|
||||
sta LCD_YPOS
|
||||
sta LCD_XPOS
|
||||
sta LCD_YPOS
|
||||
cli
|
||||
lda #LCD_MODE_INC_Y
|
||||
sta LCD_MODE
|
||||
lda #LCD_MODE_INC_Y
|
||||
sta LCD_MODE
|
||||
|
||||
lda #0
|
||||
sta LCD_X
|
||||
lda #<xdesc
|
||||
ldx #>xdesc
|
||||
ldy #0
|
||||
jsr printstring
|
||||
lda #0
|
||||
sta LCD_X
|
||||
lda #<xdesc
|
||||
ldx #>xdesc
|
||||
ldy #0
|
||||
jsr printstring
|
||||
|
||||
lda #LCD_XPOS_PLANE2
|
||||
sta LCD_X
|
||||
lda #<xdesc
|
||||
ldx #>xdesc
|
||||
ldy #128
|
||||
jsr printstring
|
||||
lda #LCD_XPOS_PLANE2
|
||||
sta LCD_X
|
||||
lda #<xdesc
|
||||
ldx #>xdesc
|
||||
ldy #128
|
||||
jsr printstring
|
||||
|
||||
lda #0
|
||||
sta LCD_X
|
||||
lda #<ydesc
|
||||
ldx #>ydesc
|
||||
ldy #0
|
||||
sty LCD_Y
|
||||
jsr printstringy
|
||||
lda #0
|
||||
sta LCD_X
|
||||
lda #<ydesc
|
||||
ldx #>ydesc
|
||||
ldy #0
|
||||
sty LCD_Y
|
||||
jsr printstringy
|
||||
|
||||
; lda #$90;(LCD_XPOS_PLANE2|(128/8))
|
||||
lda #(LCD_XPOS_PLANE2|(128/8))
|
||||
sta LCD_X
|
||||
lda #<ydesc
|
||||
ldx #>ydesc
|
||||
ldy #0
|
||||
sty LCD_Y
|
||||
jsr printstringy
|
||||
lda #(LCD_XPOS_PLANE2|(128/8)) ; ???
|
||||
sta LCD_X
|
||||
lda #<ydesc
|
||||
ldx #>ydesc
|
||||
ldy #0
|
||||
sty LCD_Y
|
||||
jsr printstringy
|
||||
|
||||
lda #<format
|
||||
ldx #>format
|
||||
ldy #8
|
||||
jsr printstring
|
||||
lda #<format
|
||||
ldx #>format
|
||||
ldy #8
|
||||
jsr printstring
|
||||
|
||||
lda #0
|
||||
sta LCD_MODE
|
||||
lda #24/8
|
||||
sta LCD_X
|
||||
lda #24
|
||||
sta LCD_Y
|
||||
lda #'X'
|
||||
jsr printsign
|
||||
lda #$80
|
||||
sta LCD_MODE
|
||||
lda #32/8
|
||||
sta LCD_X
|
||||
lda #32
|
||||
sta LCD_Y
|
||||
lda #'Y'
|
||||
jsr printsign
|
||||
lda #$c0
|
||||
sta LCD_MODE
|
||||
lda #40/8
|
||||
sta LCD_X
|
||||
lda #40
|
||||
sta LCD_Y
|
||||
lda #'Z'
|
||||
jsr printsign
|
||||
lda #0
|
||||
sta LCD_MODE
|
||||
lda #24/8
|
||||
sta LCD_X
|
||||
lda #24
|
||||
sta LCD_Y
|
||||
lda #'X'
|
||||
jsr printsign
|
||||
|
||||
lda #0
|
||||
sta LCD_MODE
|
||||
lda #LCD_XPOS_PLANE2|(48/8)
|
||||
sta LCD_X
|
||||
lda #48
|
||||
sta LCD_Y
|
||||
lda #'x'
|
||||
jsr printsign
|
||||
lda #$80
|
||||
sta LCD_MODE
|
||||
lda #(LCD_XPOS_PLANE2|(56/8))
|
||||
sta LCD_X
|
||||
lda #56
|
||||
sta LCD_Y
|
||||
lda #'y'
|
||||
jsr printsign
|
||||
lda #$c0
|
||||
sta LCD_MODE
|
||||
lda #(LCD_XPOS_PLANE2|(64/8))
|
||||
sta LCD_X
|
||||
lda #64
|
||||
sta LCD_Y
|
||||
lda #'z'
|
||||
jsr printsign
|
||||
lda #$80
|
||||
sta LCD_MODE
|
||||
lda #32/8
|
||||
sta LCD_X
|
||||
lda #32
|
||||
sta LCD_Y
|
||||
lda #'Y'
|
||||
jsr printsign
|
||||
|
||||
lda #LCD_MODE_INC_Y|1
|
||||
sta LCD_MODE
|
||||
lda #16/8
|
||||
sta LCD_X
|
||||
lda #72
|
||||
sta LCD_Y
|
||||
lda #'V'
|
||||
jsr printsign
|
||||
lda #LCD_MODE_INC_Y|2
|
||||
sta LCD_MODE
|
||||
lda #24/8
|
||||
sta LCD_X
|
||||
lda #72
|
||||
sta LCD_Y
|
||||
lda #'V'
|
||||
jsr printsign
|
||||
lda #LCD_MODE_INC_Y|4
|
||||
sta LCD_MODE
|
||||
lda #32/8
|
||||
sta LCD_X
|
||||
lda #72
|
||||
sta LCD_Y
|
||||
lda #'V'
|
||||
jsr printsign
|
||||
lda #LCD_MODE_INC_Y|8
|
||||
sta LCD_MODE
|
||||
lda #40/8
|
||||
sta LCD_X
|
||||
lda #72
|
||||
sta LCD_Y
|
||||
lda #'V'
|
||||
jsr printsign
|
||||
lda #$c0
|
||||
sta LCD_MODE
|
||||
lda #40/8
|
||||
sta LCD_X
|
||||
lda #40
|
||||
sta LCD_Y
|
||||
lda #'Z'
|
||||
jsr printsign
|
||||
|
||||
lda #0
|
||||
sta LCD_MODE
|
||||
lda #LCD_XPOS_PLANE2|(48/8)
|
||||
sta LCD_X
|
||||
lda #48
|
||||
sta LCD_Y
|
||||
lda #'x'
|
||||
jsr printsign
|
||||
|
||||
lda #1
|
||||
sta ZP_NMI_ENABLE
|
||||
lda #$80
|
||||
sta LCD_MODE
|
||||
lda #(LCD_XPOS_PLANE2|(56/8))
|
||||
sta LCD_X
|
||||
lda #56
|
||||
sta LCD_Y
|
||||
lda #'y'
|
||||
jsr printsign
|
||||
|
||||
loop: lda count
|
||||
lda #$c0
|
||||
sta LCD_MODE
|
||||
lda #(LCD_XPOS_PLANE2|(64/8))
|
||||
sta LCD_X
|
||||
lda #64
|
||||
sta LCD_Y
|
||||
lda #'z'
|
||||
jsr printsign
|
||||
|
||||
lda #LCD_MODE_INC_Y|1
|
||||
sta LCD_MODE
|
||||
lda #16/8
|
||||
sta LCD_X
|
||||
lda #72
|
||||
sta LCD_Y
|
||||
lda #'V'
|
||||
jsr printsign
|
||||
|
||||
lda #LCD_MODE_INC_Y|2
|
||||
sta LCD_MODE
|
||||
lda #24/8
|
||||
sta LCD_X
|
||||
lda #72
|
||||
sta LCD_Y
|
||||
lda #'V'
|
||||
jsr printsign
|
||||
|
||||
lda #LCD_MODE_INC_Y|4
|
||||
sta LCD_MODE
|
||||
lda #32/8
|
||||
sta LCD_X
|
||||
lda #72
|
||||
sta LCD_Y
|
||||
lda #'V'
|
||||
jsr printsign
|
||||
|
||||
lda #LCD_MODE_INC_Y|8
|
||||
sta LCD_MODE
|
||||
lda #40/8
|
||||
sta LCD_X
|
||||
lda #72
|
||||
sta LCD_Y
|
||||
lda #'V'
|
||||
jsr printsign
|
||||
|
||||
lda #1
|
||||
sta ZP_IRQ_CTRL
|
||||
|
||||
loop:
|
||||
lda count
|
||||
clc
|
||||
adc #1
|
||||
sta count
|
||||
lda count+1
|
||||
adc #1
|
||||
sta count+1
|
||||
lda irq_count
|
||||
cmp irq_count
|
||||
beq loop
|
||||
adc #1
|
||||
sta count
|
||||
lda count+1
|
||||
adc #0
|
||||
sta count+1
|
||||
|
||||
jsr inputs
|
||||
lda #LCD_MODE_INC_Y
|
||||
sta LCD_MODE
|
||||
jsr printy
|
||||
lda irq_count
|
||||
cmp irq_count
|
||||
beq loop
|
||||
|
||||
jsr inputs
|
||||
|
||||
lda #LCD_MODE_INC_Y
|
||||
sta LCD_MODE
|
||||
jsr printy
|
||||
|
||||
jmp loop
|
||||
jmp loop
|
||||
.endproc
|
||||
|
||||
|
||||
;-------------------------------------------------------------------------------
|
||||
|
||||
.proc printy
|
||||
ldx #0
|
||||
ldy #16
|
||||
lda irq_count
|
||||
jsr printhex
|
||||
ldx #0
|
||||
ldy #16
|
||||
lda irq_count
|
||||
jsr printhex
|
||||
|
||||
ldx #3
|
||||
ldy #16
|
||||
lda nmi_count
|
||||
jsr printhex
|
||||
ldx #3
|
||||
ldy #16
|
||||
lda nmi_count
|
||||
jsr printhex
|
||||
|
||||
ldx #6
|
||||
ldy #16
|
||||
lda counted+1
|
||||
jsr printhex
|
||||
ldx #8
|
||||
ldy #16
|
||||
lda counted
|
||||
jsr printhex
|
||||
ldx #6
|
||||
ldy #16
|
||||
lda counted+1
|
||||
jsr printhex
|
||||
ldx #8
|
||||
ldy #16
|
||||
lda counted
|
||||
jsr printhex
|
||||
|
||||
ldx #11
|
||||
ldy #16
|
||||
lda xpos
|
||||
jsr printhex
|
||||
ldx #14
|
||||
ldy #16
|
||||
lda ypos
|
||||
jsr printhex
|
||||
ldx #11
|
||||
ldy #16
|
||||
lda xpos
|
||||
jsr printhex
|
||||
ldx #14
|
||||
ldy #16
|
||||
lda ypos
|
||||
jsr printhex
|
||||
rts
|
||||
.endproc
|
||||
|
||||
.proc inputs
|
||||
lda JOY_DATA
|
||||
and #JOY_DATA_UP
|
||||
bne notup
|
||||
dec ypos
|
||||
lda ypos
|
||||
sta LCD_YPOS
|
||||
notup:lda JOY_DATA
|
||||
and #JOY_DATA_DOWN
|
||||
bne notdown
|
||||
inc ypos
|
||||
lda ypos
|
||||
sta LCD_YPOS
|
||||
notdown:lda JOY_DATA
|
||||
and #JOY_DATA_LEFT
|
||||
bne notleft
|
||||
dec xpos
|
||||
lda xpos
|
||||
sta LCD_XPOS
|
||||
notleft:lda JOY_DATA
|
||||
and #JOY_DATA_RIGHT
|
||||
bne notright
|
||||
inc xpos
|
||||
lda xpos
|
||||
sta LCD_XPOS
|
||||
notright:lda JOY_DATA
|
||||
and #JOY_DATA_START
|
||||
bne notstart
|
||||
notstart:lda JOY_DATA
|
||||
and #JOY_DATA_SELECT
|
||||
bne notselect
|
||||
notselect:lda JOY_DATA
|
||||
and #JOY_DATA_FIRE_A
|
||||
bne notbuttona
|
||||
notbuttona:lda JOY_DATA
|
||||
and #JOY_DATA_FIRE_B
|
||||
bne notbuttonb
|
||||
notbuttonb:rts
|
||||
lda JOY_DATA
|
||||
and #JOY_DATA_UP
|
||||
bne notup
|
||||
dec ypos
|
||||
lda ypos
|
||||
sta LCD_YPOS
|
||||
notup:
|
||||
lda JOY_DATA
|
||||
and #JOY_DATA_DOWN
|
||||
bne notdown
|
||||
inc ypos
|
||||
lda ypos
|
||||
sta LCD_YPOS
|
||||
notdown:
|
||||
lda JOY_DATA
|
||||
and #JOY_DATA_LEFT
|
||||
bne notleft
|
||||
dec xpos
|
||||
lda xpos
|
||||
sta LCD_XPOS
|
||||
notleft:
|
||||
lda JOY_DATA
|
||||
and #JOY_DATA_RIGHT
|
||||
bne notright
|
||||
inc xpos
|
||||
lda xpos
|
||||
sta LCD_XPOS
|
||||
notright:
|
||||
lda JOY_DATA
|
||||
and #JOY_DATA_START
|
||||
bne notstart
|
||||
notstart:
|
||||
lda JOY_DATA
|
||||
and #JOY_DATA_SELECT
|
||||
bne notselect
|
||||
notselect:
|
||||
lda JOY_DATA
|
||||
and #JOY_DATA_FIRE_A
|
||||
bne notbuttona
|
||||
notbuttona:
|
||||
lda JOY_DATA
|
||||
and #JOY_DATA_FIRE_B
|
||||
bne notbuttonb
|
||||
notbuttonb:
|
||||
rts
|
||||
.endproc
|
||||
|
||||
;-------------------------------------------------------------------------------
|
||||
|
||||
.proc printstring
|
||||
sta psa
|
||||
stx psa+1
|
||||
ldx #0
|
||||
stx psx
|
||||
sty psy
|
||||
sta psa
|
||||
stx psa+1
|
||||
ldx #0
|
||||
stx psx
|
||||
sty psy
|
||||
printstring2:
|
||||
ldy #0
|
||||
lda (psa),y
|
||||
beq printstring1
|
||||
ldx psx
|
||||
stx LCD_X
|
||||
ldy psy
|
||||
sty LCD_Y
|
||||
jsr printsign
|
||||
inc psx
|
||||
lda psa
|
||||
ldy #0
|
||||
lda (psa),y
|
||||
beq printstring1
|
||||
ldx psx
|
||||
stx LCD_X
|
||||
ldy psy
|
||||
sty LCD_Y
|
||||
jsr printsign
|
||||
inc psx
|
||||
lda psa
|
||||
clc
|
||||
adc #1
|
||||
sta psa
|
||||
lda psa+1
|
||||
adc #0
|
||||
sta psa+1
|
||||
jmp printstring2
|
||||
adc #1
|
||||
sta psa
|
||||
lda psa+1
|
||||
adc #0
|
||||
sta psa+1
|
||||
jmp printstring2
|
||||
printstring1:
|
||||
rts
|
||||
.endproc
|
||||
|
||||
.proc printstringy
|
||||
sta psa
|
||||
stx psa+1
|
||||
sta psa
|
||||
stx psa+1
|
||||
printstring2:
|
||||
ldy #0
|
||||
lda (psa),y
|
||||
beq printstring1
|
||||
jsr printsign
|
||||
lda psa
|
||||
ldy #0
|
||||
lda (psa),y
|
||||
beq printstring1
|
||||
jsr printsign
|
||||
lda psa
|
||||
clc
|
||||
adc #1
|
||||
sta psa
|
||||
lda psa+1
|
||||
adc #0
|
||||
sta psa+1
|
||||
jmp printstring2
|
||||
adc #1
|
||||
sta psa
|
||||
lda psa+1
|
||||
adc #0
|
||||
sta psa+1
|
||||
jmp printstring2
|
||||
printstring1:
|
||||
rts
|
||||
.endproc
|
||||
@@ -340,24 +361,24 @@ printstring1:
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
and #$0f
|
||||
stx temp_x
|
||||
and #$0f
|
||||
stx temp_x
|
||||
tax
|
||||
lda hex2asc,x
|
||||
ldx temp_x
|
||||
stx LCD_X
|
||||
sty LCD_Y
|
||||
jsr printsign
|
||||
lda hex2asc,x
|
||||
ldx temp_x
|
||||
stx LCD_X
|
||||
sty LCD_Y
|
||||
jsr printsign
|
||||
pla
|
||||
and #$0f
|
||||
and #$0f
|
||||
inx
|
||||
stx temp_x
|
||||
stx temp_x
|
||||
tax
|
||||
lda hex2asc,x
|
||||
ldx temp_x
|
||||
stx LCD_X
|
||||
sty LCD_Y
|
||||
jmp printsign
|
||||
lda hex2asc,x
|
||||
ldx temp_x
|
||||
stx LCD_X
|
||||
sty LCD_Y
|
||||
jmp printsign
|
||||
.endproc
|
||||
|
||||
.proc printsign
|
||||
|
||||
Reference in New Issue
Block a user