mirror of
https://gitlab.com/camelot/kickc.git
synced 2024-10-21 02:24:34 +00:00
45 lines
675 B
NASM
45 lines
675 B
NASM
// Tests that identical strings are consolidated
|
|
.pc = $801 "Basic"
|
|
:BasicUpstart(main)
|
|
.pc = $80d "Program"
|
|
.label screen = 2
|
|
main: {
|
|
lda #<$400
|
|
sta.z screen
|
|
lda #>$400
|
|
sta.z screen+1
|
|
jsr print
|
|
jsr print
|
|
jsr print
|
|
rts
|
|
string: .text "rex"
|
|
.byte 0
|
|
}
|
|
// print(byte* zeropage(4) string)
|
|
print: {
|
|
.label string = 4
|
|
lda #<main.string
|
|
sta.z string
|
|
lda #>main.string
|
|
sta.z string+1
|
|
b1:
|
|
ldy #0
|
|
lda (string),y
|
|
cmp #0
|
|
bne b2
|
|
rts
|
|
b2:
|
|
ldy #0
|
|
lda (string),y
|
|
sta (screen),y
|
|
inc.z screen
|
|
bne !+
|
|
inc.z screen+1
|
|
!:
|
|
inc.z string
|
|
bne !+
|
|
inc.z string+1
|
|
!:
|
|
jmp b1
|
|
}
|