prog8/examples/test.p8
2019-08-24 21:26:29 +02:00

264 lines
5.8 KiB
Lua

%zeropage basicsafe
; TODO implement asm generation for all loops here
main {
sub start() {
byte bvar
ubyte var2
ubyte[] barr = [22,33,44,55,66]
word[] warr = [-111,222,-333,444]
; for A in "hello" {
; c64scr.print_ub(A)
; c64.CHROUT(',')
; }
; c64.CHROUT('\n')
;
; for A in [1,3,5,99] {
; c64scr.print_ub(A)
; c64.CHROUT(',')
; }
; c64.CHROUT('\n')
;
; for A in 10 to 20 {
; c64scr.print_ub(A)
; c64.CHROUT(',')
; }
; c64.CHROUT('\n')
;
; for A in 20 to 10 step -1 {
; c64scr.print_ub(A)
; c64.CHROUT(',')
; }
; c64.CHROUT('\n')
;
; for A in 10 to 21 step 3 {
; c64scr.print_ub(A)
; c64.CHROUT(',')
; }
; c64.CHROUT('\n')
;
; for A in 24 to 10 step -3 {
; c64scr.print_ub(A)
; c64.CHROUT(',')
; }
; c64.CHROUT('\n')
;
; for A in barr {
; c64scr.print_ub(A)
; c64.CHROUT(',')
; }
; c64.CHROUT('\n')
; c64.CHROUT('\n')
;
; ubyte cc
; for cc in "hello" {
; c64scr.print_ub(cc)
; c64.CHROUT(',')
; }
; c64.CHROUT('\n')
;
; for cc in [1,3,5,99] {
; c64scr.print_ub(cc)
; c64.CHROUT(',')
; }
; c64.CHROUT('\n')
;
; for cc in 10 to 20 {
; c64scr.print_ub(cc)
; c64.CHROUT(',')
; }
; c64.CHROUT('\n')
;
; for cc in 20 to 10 step -1 {
; c64scr.print_ub(cc)
; c64.CHROUT(',')
; }
; c64.CHROUT('\n')
;
; for cc in 10 to 21 step 3 {
; c64scr.print_ub(cc)
; c64.CHROUT(',')
; }
; c64.CHROUT('\n')
;
; for cc in 24 to 10 step -3 {
; c64scr.print_ub(cc)
; c64.CHROUT(',')
; }
; c64.CHROUT('\n')
;
; for cc in barr {
; c64scr.print_ub(cc)
; c64.CHROUT(',')
; }
; c64.CHROUT('\n')
; c64.CHROUT('\n')
;
; uword uw
; for uw in [1111, 2222, 3333] {
; c64scr.print_uw(uw)
; c64.CHROUT(',')
; }
; c64.CHROUT('\n')
;
; for ww in warr {
; c64scr.print_w(ww)
; c64.CHROUT(',')
; }
; c64.CHROUT('\n')
;
; for uw in 1111 to 1117 {
; c64scr.print_uw(uw)
; c64.CHROUT(',')
; }
; c64.CHROUT('\n')
;
; for uw in 2000 to 1995 step -1 {
; c64scr.print_uw(uw)
; c64.CHROUT(',')
; }
; c64.CHROUT('\n')
;
; for uw in 1111 to 50000 step 4444 {
; c64scr.print_uw(uw)
; c64.CHROUT(',')
; }
; c64.CHROUT('\n')
word endw1 = 999
uword enduw1 = 2600
word endw2 = -999
byte endb1 = 100
byte endb2 = -100
byte bb
word ww
uword uw
ubyte ub
ubyte ubb
; for A in 95 to endb1 step 1 {
; c64scr.print_ub(A)
; c64.CHROUT(',')
; }
; c64.CHROUT('\n')
;
; for bb in 95 to endb1 step 1 {
; c64scr.print_b(bb)
; c64.CHROUT(',')
; }
; c64.CHROUT('\n')
;
; for A in endb1 to 95 step -1 {
; c64scr.print_ub(A)
; c64.CHROUT(',')
; }
; c64.CHROUT('\n')
;
; for bb in -95 to endb2 step -1 {
; c64scr.print_b(bb)
; c64.CHROUT(',')
; }
; c64.CHROUT('\n')
;
; c64.CHROUT('\n')
;
; for ww in 995 to endw1 step 1 {
; c64scr.print_w(ww)
; c64.CHROUT(',')
; }
; c64.CHROUT('\n')
;
; for ww in -995 to endw2 step -1 {
; c64scr.print_w(ww)
; c64.CHROUT(',')
; }
; c64.CHROUT('\n')
; c64.CHROUT('\n')
;
; for A in 90 to endb1 step 3 {
; c64scr.print_ub(A)
; c64.CHROUT(',')
; }
; c64.CHROUT('\n')
;
; for bb in 90 to endb1 step 3 {
; c64scr.print_b(bb)
; c64.CHROUT(',')
; }
; c64.CHROUT('\n')
;
; ubb = 10
; for A in 20 to ubb step -3 {
; c64scr.print_ub(A)
; c64.CHROUT(',')
; }
; c64.CHROUT('\n')
;
; for bb in -90 to endb2 step -3 {
; c64scr.print_b(bb)
; c64.CHROUT(',')
; }
; c64.CHROUT('\n')
; c64.CHROUT('\n')
;
; for uw in 999 to enduw1 step 500 {
; c64scr.print_uw(uw)
; c64.CHROUT(',')
; }
; c64.CHROUT('\n')
;
; for uw in enduw1 to 999 step -500 {
; c64scr.print_uw(uw)
; c64.CHROUT(',')
; }
; c64.CHROUT('\n')
for ww in -999 to endw1 step 500 { ; TODO fix loop asm
c64scr.print_w(ww)
c64.CHROUT(',')
}
c64.CHROUT('\n')
; for ww in 999 to endw2 step -500 {
; c64scr.print_w(ww)
; c64.CHROUT(',')
; }
; c64.CHROUT('\n')
; c64.CHROUT('\n')
;
; enduw1 = 2000
; for uw in 500 to enduw1 step 500 {
; c64scr.print_uw(uw)
; c64.CHROUT(',')
; }
; c64.CHROUT('\n')
;
; for uw in enduw1 to 500 step -500 {
; c64scr.print_uw(uw)
; c64.CHROUT(',')
; }
; c64.CHROUT('\n')
endw1 = 1000
for ww in -1000 to endw1 step 500 { ; TODO fix loop asm
c64scr.print_w(ww)
c64.CHROUT(',')
}
c64.CHROUT('\n')
for ww in 3000 to endw1 step -500 {
c64scr.print_w(ww)
c64.CHROUT(',')
}
c64.CHROUT('\n')
c64.CHROUT('\n')
ubb=X
c64scr.print_ub(ubb)
}
}