%output prg %launcher basic %import c64lib ~ not_main $d000 { byte [100] array1 = 0 word [100] array2 = 1 byte [2,3] matrix1 = 2 byte [2,3] matrix2 = [1,2,3,4,5,6] const byte [100] carray1 = 0 const word [100] carray2 = 1 const byte [2,3] cmatrix1 = [1,2,3,4,5,255] const float len1 = len([1,2,3]) const float round1 = len([1,2,3]) const float sin1 = len([1,2,3]) float cos1 = len([1,2,3]) } ~ main $c003 { word lsb1 = lsb($ea31) word msb1 = msb($ea31) byte lsb2 = lsb($ea31) byte msb2 = msb($ea31) word lsb3 = lsb($ea) word msb3 = msb($ea) const word len1 = len([1,2,3,wa1, wa2, ws1, all1]) const word wa1 = ceil(abs(-999.22)) const byte wa2 = abs(-99) const float wa3 = abs(-1.23456) const float wa4 = abs(-133) const float avg1 = avg([-1.23456, 99999]) const float sum1 = sum([-1.23456, 99999]) const word ws1 = floor(sum([1,2,3,4.9])) const word ws2 = ceil(avg([1,2,3,4.9])) const word ws3 = round(sum([1,2,3,4.9])) const word any1 = any([0,0,0,0,0,22,0,0]) const word any2 = any([2+sin(2.0), 2]) const word all1 = all([0,0,0,0,0,22,0,0]) const word all2 = all([0.0]) const word all3 = all([wa1, wa2, ws1, all1]) const word max1 = max([-1,-2,3,99+22]) const word min1 = min([1,2,3,99+22]) word dinges = round(not_main.len1) A = X>2 X = Y>Y byte myByteChar = "A" word myWordChar = "B" word[1000] ascending = 10 to 1009 str ascending3 = "a" to "z" str ascending5 = "z" to "z" const byte cc = 4 + (2==9) byte cc2 = 4 - (2==10) ; memory byte derp = max([$ffdd]) ; @todo implement memory vars in stackvm ; memory byte derpA = abs(-20000) ; memory byte derpB = max([1, 2.2, 4.4, 100]) ; memory byte cderp = min([$ffdd])+ (1/1) ; memory byte cderpA = min([$ffdd, 10, 20, 30]) ; memory byte cderpB = min([1, 2.2, 4.4, 100]) ; memory byte derp2 = 2+$ffdd+round(10*sin(3.1)) const byte hopla=55-33 const byte hopla3=100+(-hopla) const byte hopla4 = 100-hopla const byte hopla1=main.hopla const float blerp1 = zwop / 2.22 const float zwop = -1.7014118345e+38 const float zwop2 = -1.7014118345e+38 const float blerp2 = zwop / 2.22 const byte equal = 4==4 const byte equal2 = (4+hopla)>0 ; goto 64738 A++ ; derp++ cc2-- goto mega if_eq goto mega if_eq { A=99 } else { A=100 } byte equalQQ = 4==4 const byte equalQQ2 = (4+hopla)>0 equalQQ++ cos(2) ; @todo warning statement has no effect (returnvalue of builtin function not used) (remove statement) cos(A) ; @todo warning statement has no effect (returnvalue of builtin function not used) (remove statement) AX++ A=X + round(sin(Y)) equalQQ= X equalQQ= len([X, Y, AX]) len([X, Y, AX]) ; @todo warning statement has no effect (returnvalue of builtin function not used) (remove statement) sin(1) ; @todo warning statement has no effect (returnvalue of builtin function not used) (remove statement) P_carry(1) P_irqd(0) equalQQ = foo(33) equalQQ = main.foo(33) XY = hopla*2+hopla1 byte equalWW = 4==4 const byte equalWW2 = (4+hopla)>0 if (1==1) goto cool if (1==2) return 44 if (2==2) A=4 if (3==3) X=5 else A=99 if (5==5) { A=99 } if(6==6) { A=sin(X) X=max([1,2,Y]) X=min([1,2,Y]) X=lsl(12) X=lsl(Y) P_carry(0) P_carry(1) P_carry(1-1) P_irqd(0) P_irqd(1) } else X=33 X= extra233.thingy() if(6>36) { A=99 } else { X=33 } main.foo(1,2,3) return sub start () -> () { word dinges = 0 word blerp1 =99 byte blerp2 =99 dinges=blerp1 A=blerp1 ; @todo error can't assign word to byte A=blerp2 A=9999 XY=blerp1 X=blerp1 ; @todo error can't assign word to byte X=blerp2 return } mega: X += 1 cool: Y=2 goto start sub foo () -> () { byte blerp = 3 A=99 ; return 33 return ultrafoo() X =33 mega: cool: return sub ultrafoo() -> () { X= extra233.thingy() ;return 33 return goto main.mega } } some_label_def: A=44 ;return 1+999 return } %import imported %import imported %import imported2 %import imported2