1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-10-21 02:24:34 +00:00
kickc/src/test/ref/string-const-consolidation-noroot.asm

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
}