prog8/examples/test.p8

115 lines
2.5 KiB
Plaintext
Raw Normal View History

%import textio
%import math
%import string
2022-05-11 13:26:54 +00:00
%import floats
2022-04-03 15:07:26 +00:00
%zeropage dontuse
2022-03-13 11:52:12 +00:00
; NOTE: meant to test to virtual machine output target (use -target vitual)
2021-10-30 13:15:11 +00:00
main {
ubyte value = 42
sub inline_candidate() -> ubyte {
return math.sin8u(value)
}
sub add(ubyte first, ubyte second) -> ubyte {
return first + second
}
sub mul(ubyte first, ubyte second) -> ubyte {
return first * second
}
2022-05-17 16:53:18 +00:00
ubyte ix
2022-05-17 16:53:18 +00:00
sub start() {
2022-05-17 16:53:18 +00:00
uword[] array = [1111,2222,3333,4444]
sub pa() {
uword ww
for ww in array {
txt.print_uw(ww)
txt.spc()
}
txt.nl()
}
; pa()
; array[2] = 9999
; pa()
ix=2
array[ix]= 8888 ; TODO fix indexing offset in vm
pa()
txt.print_uw(array[ix])
txt.spc()
2022-05-17 16:53:18 +00:00
txt.print_uw(array[ix+1])
txt.nl()
2022-05-11 21:00:15 +00:00
2022-05-17 16:53:18 +00:00
; ubyte @shared value = inline_candidate()
; txt.print_ub(inline_candidate())
; txt.nl()
; ubyte value = add(3,4) |> add(10) |> mul(2) |> math.sin8u()
; txt.print_ub(value)
; txt.nl()
; uword wvalue = add(3,4) |> add($30) |> mkword($ea)
; txt.print_uwhex(wvalue, true)
; txt.nl()
; expected output: aaabbb aaa bbb
; float f1 = 1.555
; floats.print_f(floats.sin(f1))
; txt.nl()
; floats.print_f(floats.cos(f1))
; txt.nl()
; floats.print_f(floats.tan(f1))
; txt.nl()
; floats.print_f(floats.atan(f1))
; txt.nl()
; floats.print_f(floats.ln(f1))
; txt.nl()
; floats.print_f(floats.log2(f1))
; txt.nl()
; floats.print_f(floats.sqrt(f1))
; txt.nl()
; floats.print_f(floats.rad(f1))
; txt.nl()
; floats.print_f(floats.deg(f1))
; txt.nl()
; floats.print_f(floats.round(f1))
; txt.nl()
; floats.print_f(floats.floor(f1))
; txt.nl()
; floats.print_f(floats.ceil(f1))
; txt.nl()
; floats.print_f(floats.rndf())
; txt.nl()
; "sin", "cos", "tan", "atan",
; "ln", "log2", "sqrt", "rad",
; "deg", "round", "floor", "ceil", "rndf"
2022-04-10 20:31:37 +00:00
; a "pixelshader":
2022-05-02 18:16:45 +00:00
; sys.gfx_enable(0) ; enable lo res screen
; ubyte shifter
;
; repeat {
; uword xx
; uword yy = 0
; repeat 240 {
; xx = 0
; repeat 320 {
; sys.gfx_plot(xx, yy, xx*yy + shifter as ubyte)
; xx++
; }
; yy++
; }
; shifter+=4
; }
2022-03-04 21:26:46 +00:00
}
2022-02-17 23:40:31 +00:00
}