prog8/examples/test.p8
2020-09-14 23:03:18 +02:00

63 lines
1.6 KiB
Lua

%import c64textio
;%import c64flt
;%option enable_floats
%zeropage basicsafe
; TODO system reset should also work when kernal is paged out
main {
sub start() {
uword ub1
word ww1
uword ii
for ii in 0 to 20 {
; ub1 = ii
; ub1 *= 40 ; TODO implement non-stack optimized muls
; todo a = EXPRESSION * const -> is that optimized?
ub1 = ii * 25
txt.print_uw(ub1)
; c64.CHROUT(',')
; ub1 = ii * 50
; txt.print_uw(ub1)
; c64.CHROUT(',')
; ub1 = ii * 80
; txt.print_uw(ub1)
; c64.CHROUT(',')
; ub1 = ii * 100
; txt.print_uw(ub1)
c64.CHROUT('\n')
}
c64.CHROUT('\n')
for ii in 0 to 20 {
; ub1 = ii
; ub1 *= 40 ; TODO implement non-stack optimized muls
; todo a = EXPRESSION * const -> is that optimized?
ww1 = (-ii) * 25
txt.print_w(ww1)
; c64.CHROUT(',')
; ub1 = ii * 50
; txt.print_uw(ub1)
; c64.CHROUT(',')
; ub1 = ii * 80
; txt.print_uw(ub1)
; c64.CHROUT(',')
; ub1 = ii * 100
; txt.print_uw(ub1)
c64.CHROUT('\n')
}
;asmsub clear_screen (ubyte char @ A, ubyte color @ Y) clobbers(A) { ...}
; TODO dont cause name conflict if we define sub or sub with param 'color' or even a var 'color' later.
; sub color(...) {}
; sub other(ubyte color) {} ; TODO don't cause name conflict
}
}