2022-08-28 14:43:15 +00:00
|
|
|
|
2022-07-08 19:50:32 +00:00
|
|
|
main {
|
2022-08-21 17:57:52 +00:00
|
|
|
|
2022-08-07 11:45:03 +00:00
|
|
|
sub start() {
|
2022-08-11 22:46:38 +00:00
|
|
|
|
2022-09-19 14:59:44 +00:00
|
|
|
%asm {{
|
|
|
|
loadcpu.b r1,_a
|
|
|
|
loadcpu.b r1,_x
|
|
|
|
loadcpu.b r1,_y
|
|
|
|
loadcpu.w r1,_ax
|
|
|
|
loadcpu.w r1,_ay
|
|
|
|
loadcpu.w r1,_xy
|
|
|
|
loadcpu.b r1,_pc
|
|
|
|
loadcpu.b r1,_pn
|
|
|
|
loadcpu.b r1,_pz
|
|
|
|
loadcpu.w r1,_r0
|
|
|
|
loadcpu.w r1,_r15
|
2022-09-18 14:04:49 +00:00
|
|
|
|
2022-09-19 14:59:44 +00:00
|
|
|
storezcpu.b _a
|
|
|
|
storezcpu.b _x
|
|
|
|
storezcpu.b _y
|
|
|
|
storezcpu.w _ax
|
|
|
|
storezcpu.w _ay
|
|
|
|
storezcpu.w _xy
|
|
|
|
storezcpu.b _pc
|
|
|
|
storezcpu.b _pn
|
|
|
|
storezcpu.b _pz
|
|
|
|
storezcpu.b _r0
|
|
|
|
storezcpu.w _r15
|
|
|
|
}}
|
2022-09-18 14:04:49 +00:00
|
|
|
}
|
|
|
|
}
|
2022-09-10 12:51:46 +00:00
|
|
|
|
2022-09-18 14:04:49 +00:00
|
|
|
; uword @shared global1 = 1234
|
|
|
|
; str @shared globalstring = "irmen"
|
|
|
|
;
|
|
|
|
; %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
|
|
|
|
;
|
|
|
|
; asmsub testasmsub(ubyte arg1 @A) clobbers(Y) -> uword @AX {
|
|
|
|
; %asm {{
|
|
|
|
; nop
|
|
|
|
; return
|
|
|
|
; }}
|
|
|
|
; }
|
|
|
|
;
|
|
|
|
; sub start() {
|
|
|
|
; void myromsubmulti(44)
|
|
|
|
; global1 = myromsub(44)
|
|
|
|
; sys.wait(1)
|
|
|
|
;
|
|
|
|
; cx16.r0 = 11111
|
|
|
|
; cx16.r0L = 22
|
|
|
|
; cx16.r0H = 33
|
|
|
|
;
|
|
|
|
; %asm {{
|
|
|
|
; nop
|
|
|
|
; jump main.start.a_label
|
|
|
|
; }}
|
|
|
|
;a_label:
|
|
|
|
;
|
|
|
|
; %asmbinary "LICENSE", 200, 513
|
|
|
|
;
|
|
|
|
;; TODO add proper memory SLAB support to IR+VM
|
2022-09-04 21:18:35 +00:00
|
|
|
; 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-09-18 14:04:49 +00:00
|
|
|
;
|
|
|
|
; &uword mapped = $c000
|
|
|
|
; &ubyte[20] mappedarray = $c100
|
|
|
|
;
|
|
|
|
; uword @shared zz
|
|
|
|
; zz = slab1+slab2+slab3
|
|
|
|
;
|
|
|
|
; 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????
|
|
|
|
; mapped = 99 ; TODO wrong VMASM code generated... should generate mapped memory address?????
|
|
|
|
; mappedarray[1]=99 ; TODO check code????
|
|
|
|
;
|
|
|
|
; qq=global1
|
|
|
|
; qq=other.global2
|
|
|
|
; nested(11,22)
|
|
|
|
; main.start.nested.nested2()
|
|
|
|
;
|
|
|
|
; sub nested(ubyte a1, ubyte a2) {
|
|
|
|
; qq++
|
|
|
|
; txt.print("zzz")
|
|
|
|
; nested2()
|
|
|
|
;
|
|
|
|
; sub nested2() {
|
|
|
|
; txt.print("zzz2")
|
|
|
|
; qq++
|
|
|
|
; }
|
|
|
|
; }
|
|
|
|
; }
|
|
|
|
;}
|
|
|
|
;
|
|
|
|
;other {
|
|
|
|
;
|
|
|
|
; uword global2 = 9999
|
|
|
|
;
|
|
|
|
;}
|