prog8/examples/test.p8

77 lines
1.7 KiB
Plaintext
Raw Normal View History

%import textio
%import floats
%import syslib
2020-09-27 20:05:44 +00:00
%zeropage basicsafe
2020-08-27 17:47:50 +00:00
; Note: this program is compatible with C64 and CX16.
main {
2020-10-09 20:47:42 +00:00
sub start() {
const uword ADDR = $0400
byte zerob=0
2020-11-03 20:31:08 +00:00
; word zerow=0
; float zerof=0
2020-11-01 17:37:06 +00:00
byte bb
2020-11-03 20:31:08 +00:00
; word ww
; float fl
2020-11-01 17:37:06 +00:00
testX()
bb = -100
2020-11-03 20:31:08 +00:00
bb = zerob+abs(bb) ; TODO optimizer generates wrong code for this (wrong order of splitted expression?)
txt.print_b(bb)
txt.chrout('\n')
2020-11-03 20:31:08 +00:00
; ww = -12345
; ww = zerow+abs(ww) ; TODO optimizer generates wrong code for this (wrong order of splitted expression?)
; txt.print_w(ww)
; txt.chrout('\n')
;
; fl = -9.876
; fl = zerof+abs(fl) ; TODO optimizer generates wrong code for this (wrong order of splitted expression?)
; floats.print_f(fl)
; txt.chrout('\n')
2020-11-01 17:37:06 +00:00
; memset(ADDR, 40*25, 100)
; memsetw(ADDR, 20*10, $3031)
; memcopy(ADDR, ADDR+40*12, 20*10*2)
testX()
bb++
}
asmsub testX() {
%asm {{
stx _saveX
lda #13
jsr txt.chrout
lda #'x'
jsr txt.chrout
lda #'='
jsr txt.chrout
lda _saveX
jsr txt.print_ub
lda #' '
jsr txt.chrout
lda #'s'
jsr txt.chrout
lda #'p'
jsr txt.chrout
lda #'='
jsr txt.chrout
tsx
txa
jsr txt.print_ub
lda #13
jsr txt.chrout
ldx _saveX
rts
_saveX .byte 0
}}
2020-09-16 21:04:18 +00:00
}
2020-08-27 17:47:50 +00:00
}