prog8/examples/test.p8

84 lines
1.8 KiB
Plaintext
Raw Normal View History

2022-08-28 16:43:15 +02:00
%zpreserved 10,20
%zpreserved 30,40
main {
2022-08-21 19:57:52 +02:00
2022-09-10 14:51:46 +02:00
uword @shared global1 = 1234
str @shared globalstring = "irmen"
2022-08-21 19:57:52 +02:00
2022-08-28 16:43:15 +02:00
%asm {{
nop
nop
return
}}
romsub $ee33 = myromsub(ubyte arg1 @A) clobbers() -> ubyte @Y
romsub $ee44 = myromsubmulti(ubyte arg1 @A) clobbers() -> ubyte @Y, ubyte @X, ubyte @Pc
2022-08-28 16:43:15 +02:00
asmsub testasmsub(ubyte arg1 @A) clobbers(Y) -> uword @AX {
%asm {{
nop
return
}}
}
2022-08-07 13:45:03 +02:00
sub start() {
void myromsubmulti(44)
global1 = myromsub(44)
2022-08-28 16:43:15 +02:00
sys.wait(1)
%asm {{
nop
2022-09-15 23:08:41 +02:00
jump _a_label
2022-08-28 16:43:15 +02:00
}}
2022-09-08 22:59:13 +02:00
a_label:
2022-09-10 14:51:46 +02:00
%asmbinary "LICENSE", 200, 513
; TODO add proper memory SLAB support to IR+VM
; uword @shared slab1 = memory("slab 1", 2000, 0)
; uword @shared slab2 = memory("slab 1", 2000, 0)
; uword @shared slab3 = memory("other # slab", 2000, 64)
2022-08-25 22:38:53 +02:00
&uword mapped = $c000
2022-08-28 16:43:15 +02:00
&ubyte[20] mappedarray = $c100
uword @shared zz
; TODO zz = slab1+slab2+slab3
2022-08-28 16:43:15 +02:00
uword @shared @zp qq = zz
uword @shared @zp qq2 = &zz
str @shared namestring = "irmen"
uword[] @shared wordarray1 = [1111,2222,3333,4444]
uword[4] @shared wordarray2 = 12345
uword[4] @shared wordzeroarray
qq=4242 ; TODO should generate symbol not allocated address
2022-09-10 17:06:51 +02:00
mapped = 99 ; TODO wrong VMASM code generated... should generate mapped memory address
mappedarray[1]=99
2022-08-21 19:57:52 +02:00
qq=global1
qq=other.global2
nested(11,22)
2022-08-27 13:22:38 +02:00
main.start.nested.nested2()
2022-08-25 22:38:53 +02:00
sub nested(ubyte a1, ubyte a2) {
2022-08-25 22:38:53 +02:00
qq++
2022-08-27 13:22:38 +02:00
txt.print("zzz")
nested2()
sub nested2() {
txt.print("zzz2")
qq++
}
2022-08-25 22:38:53 +02:00
}
}
}
2022-08-21 19:57:52 +02:00
other {
uword global2 = 9999
}