2020-09-20 21:49:36 +00:00
|
|
|
%import textio
|
2020-11-01 05:27:17 +00:00
|
|
|
%import floats
|
2020-10-28 21:56:13 +00:00
|
|
|
%import syslib
|
2020-09-27 20:05:44 +00:00
|
|
|
%zeropage basicsafe
|
2020-08-27 17:47:50 +00:00
|
|
|
|
2020-10-28 21:56:13 +00:00
|
|
|
|
|
|
|
; Note: this program is compatible with C64 and CX16.
|
|
|
|
|
2020-09-24 17:26:07 +00:00
|
|
|
main {
|
2020-09-28 00:23:36 +00:00
|
|
|
|
2020-10-09 20:47:42 +00:00
|
|
|
sub start() {
|
2020-11-01 06:36:40 +00:00
|
|
|
const uword ADDR = $0400
|
2020-10-23 18:56:10 +00:00
|
|
|
|
2020-11-02 21:45:46 +00:00
|
|
|
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
|
|
|
|
2020-11-02 21:45:46 +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?)
|
2020-11-02 21:45:46 +00:00
|
|
|
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
|
|
|
|
2020-11-02 21:45:46 +00:00
|
|
|
; memset(ADDR, 40*25, 100)
|
|
|
|
; memsetw(ADDR, 20*10, $3031)
|
|
|
|
; memcopy(ADDR, ADDR+40*12, 20*10*2)
|
2020-10-27 23:29:34 +00:00
|
|
|
|
2020-10-18 16:00:24 +00:00
|
|
|
testX()
|
2020-11-02 21:45:46 +00:00
|
|
|
|
|
|
|
bb++
|
2020-10-23 18:56:10 +00:00
|
|
|
}
|
|
|
|
|
2020-10-01 22:34:12 +00:00
|
|
|
asmsub testX() {
|
|
|
|
%asm {{
|
|
|
|
stx _saveX
|
|
|
|
lda #13
|
|
|
|
jsr txt.chrout
|
2020-11-02 21:45:46 +00:00
|
|
|
lda #'x'
|
|
|
|
jsr txt.chrout
|
|
|
|
lda #'='
|
|
|
|
jsr txt.chrout
|
2020-10-01 22:34:12 +00:00
|
|
|
lda _saveX
|
|
|
|
jsr txt.print_ub
|
2020-11-02 21:45:46 +00:00
|
|
|
lda #' '
|
|
|
|
jsr txt.chrout
|
|
|
|
lda #'s'
|
|
|
|
jsr txt.chrout
|
|
|
|
lda #'p'
|
|
|
|
jsr txt.chrout
|
|
|
|
lda #'='
|
|
|
|
jsr txt.chrout
|
|
|
|
tsx
|
|
|
|
txa
|
|
|
|
jsr txt.print_ub
|
2020-10-01 22:34:12 +00:00
|
|
|
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
|
|
|
}
|