; %import c64utils %option enable_floats %output raw %launcher none ~ main { sub start() { byte b = 99 byte b2 = 100 ubyte ub = 255 ubyte ub2 = 0 word w = 999 word w2 = 3 uword uw = 40000 uword uw2 = 3434 float fl1 = 1.1 float fl2 = 2.2 byte[5] barr1 byte[5] barr2 ubyte[5] ubarr1 ubyte[5] ubarr2 word[5] warr1 word[5] warr2 uword[5] uwarr1 uword[5] uwarr2 float[5] farr1 float[5] farr2 memory byte mbyte = $c000 memory byte mbyte2 = $d000 memory ubyte mubyte = $c001 memory ubyte mubyte2 = $d001 memory word mword = $c002 memory word mword2 = $d002 memory uword muword = $c004 memory uword muword2 = $d004 memory float mfloat = $c006 memory float mfloat2 = $d006 memory byte[mubyte2] mbarr1 = $e000 memory ubyte[mubyte2] mubarr1 = $e100 memory word[mubyte2] mwarr1 = $e100 memory uword[mubyte2] muwarr1 = $e100 str string = "hello" str_p stringp = "hello" ; all possible assignments to a BYTE VARIABLE (not array) byte_assignment_to_register: A = 42 A = X A = ub2 A = mubyte2 A = AY[4] A = ubarr1[2] A = string[4] A = string[X] A = string[b] A = string[ub] A = ubarr1[X] A = ubarr1[b] A = ubarr1[ub] A = AY[Y] A = AY[b] A = AY[ub] ubyte_assignment_to_ubytevar: ub = 42 ub = X ub = ub2 ub = mubyte2 ub = AY[4] ub = ubarr1[2] ub = string[4] ub = string[X] ub = string[b] ub = string[ub] ub = ubarr1[X] ub = ubarr1[b] ub = ubarr1[ub] ub = AY[Y] ub = AY[b] ub = AY[ub] ubyte_assignment_to_ubytemem: mubyte = 42 mubyte = X mubyte = ub2 mubyte = mubyte2 mubyte = AY[4] mubyte = ubarr1[2] mubyte = string[4] mubyte = string[X] mubyte = string[b] mubyte = string[ub] mubyte = ubarr1[X] mubyte = ubarr1[b] mubyte = ubarr1[ub] mubyte = AY[Y] mubyte = AY[b] mubyte = AY[ub] byte_assignment_to_bytevar: b = -42 b = b2 b = mbyte2 b = barr1[2] b = barr1[X] b = barr1[b] b = barr1[ub] byte_assignment_to_bytemem: mbyte = -42 mbyte = b2 mbyte = mbyte2 mbyte = barr1[2] mbyte = barr1[X] mbyte = barr1[b] mbyte = barr1[ub] ubyte_assignment_to_ubytearray: ubarr2[3] = 42 ubarr2[3] = X ubarr2[3] = ub2 ubarr2[3] = mubyte2 ubarr2[3] = AY[4] ubarr2[3] = ubarr1[2] ubarr2[3] = string[4] ubarr2[3] = string[X] ubarr2[3] = string[b] ubarr2[3] = string[ub] ubarr2[3] = ubarr1[X] ubarr2[3] = ubarr1[b] ubarr2[3] = ubarr1[ub] ubarr2[3] = AY[Y] ubarr2[3] = AY[b] ubarr2[3] = AY[ub] AY[3] = 42 AY[3] = X AY[3] = ub2 AY[3] = mubyte2 AY[3] = ubarr1[2] AY[3] = string[4] AY[3] = string[X] AY[3] = string[b] AY[3] = string[ub] AY[3] = ubarr1[X] AY[3] = ubarr1[b] AY[3] = ubarr1[ub] string[4] = 42 string[4] = 'B' string[4] = X string[4] = ub2 string[4] = mubyte2 string[4] = AY[4] string[4] = ubarr1[2] string[4] = string[3] ubarr2[Y] = 42 ubarr2[Y] = X ubarr2[Y] = ub2 ubarr2[Y] = mubyte2 ubarr2[Y] = AY[4] ubarr2[Y] = ubarr1[2] ubarr2[Y] = string[4] ubarr2[Y] = string[X] ubarr2[Y] = string[b] ubarr2[Y] = string[ub] ubarr2[Y] = ubarr1[X] ubarr2[Y] = ubarr1[b] ubarr2[Y] = ubarr1[ub] ubarr2[Y] = AY[Y] ubarr2[Y] = AY[b] ubarr2[Y] = AY[ub] AY[Y] = 42 AY[Y] = X AY[Y] = ub2 AY[Y] = mubyte2 AY[Y] = ubarr1[2] AY[Y] = string[4] AY[Y] = string[X] AY[Y] = string[b] AY[Y] = string[ub] AY[Y] = ubarr1[X] AY[Y] = ubarr1[b] AY[Y] = ubarr1[ub] string[Y] = 42 string[Y] = 'B' string[Y] = X string[Y] = ub2 string[Y] = mubyte2 string[Y] = AY[4] string[Y] = ubarr1[2] string[Y] = string[Y] ubarr2[ub2] = 42 ubarr2[ub2] = X ubarr2[ub2] = ub2 ubarr2[ub2] = mubyte2 ubarr2[ub2] = AY[4] ubarr2[ub2] = ubarr1[2] ubarr2[ub2] = string[4] ubarr2[ub2] = string[X] ubarr2[ub2] = string[b] ubarr2[ub2] = string[ub] ubarr2[ub2] = ubarr1[X] ubarr2[ub2] = ubarr1[b] ubarr2[ub2] = ubarr1[ub] ubarr2[ub2] = AY[Y] ubarr2[ub2] = AY[b] ubarr2[ub2] = AY[ub] AY[ub2] = 42 AY[ub2] = X AY[ub2] = ub2 AY[ub2] = mubyte2 AY[ub2] = ubarr1[2] AY[ub2] = string[4] AY[ub2] = string[X] AY[ub2] = string[b] AY[ub2] = string[ub] AY[ub2] = ubarr1[X] AY[ub2] = ubarr1[b] AY[ub2] = ubarr1[ub] string[ub2] = 42 string[ub2] = 'B' string[ub2] = X string[ub2] = ub2 string[ub2] = mubyte2 string[ub2] = AY[4] string[ub2] = ubarr1[2] string[ub2] = string[ub2] ubarr2[mubyte2] = 42 ubarr2[mubyte2] = X ubarr2[mubyte2] = ub2 ubarr2[mubyte2] = mubyte2 ubarr2[mubyte2] = AY[4] ubarr2[mubyte2] = ubarr1[2] ubarr2[mubyte2] = string[4] ubarr2[mubyte2] = string[X] ubarr2[mubyte2] = string[b] ubarr2[mubyte2] = string[ub] ubarr2[mubyte2] = ubarr1[X] ubarr2[mubyte2] = ubarr1[b] ubarr2[mubyte2] = ubarr1[ub] ubarr2[mubyte2] = AY[Y] ubarr2[mubyte2] = AY[b] ubarr2[mubyte2] = AY[ub] AY[mubyte2] = 42 AY[mubyte2] = X AY[mubyte2] = ub2 AY[mubyte2] = mubyte2 AY[mubyte2] = ubarr1[2] AY[mubyte2] = string[4] AY[mubyte2] = string[X] AY[mubyte2] = string[b] AY[mubyte2] = string[ub] AY[mubyte2] = ubarr1[X] AY[mubyte2] = ubarr1[b] AY[mubyte2] = ubarr1[ub] string[mubyte2] = 42 string[mubyte2] = 'B' string[mubyte2] = X string[mubyte2] = ub2 string[mubyte2] = mubyte2 string[mubyte2] = AY[4] string[mubyte2] = ubarr1[2] string[mubyte2] = string[mubyte2] ubarr1[ubarr2[X]] = ubarr2[ubarr1[Y]] ; todo via evaluation byte_assignment_to_bytearray: ; @todo ; all possible assignments to a WORD VARIABLE (not array) ; ;word_assignment_to_registerpair: ; AY = 42 ; AY = 42.w ; AY = 42555 ; AY = X ; AY = XY ; AY = ub ; AY = mubyte ; AY = ubarr1[2] ; AY = string[4] ; AY = uw ; AY = muword ; AY = uwarr1[2] ; AY = string[4] ; AY = XY[4] ; ;;word_assignment_to_wordvar: ; w = -42 ; w = -42.w ; w = -12345 ; w = X ; w = b2 ; w = ub2 ; w = w2 ; w = mbyte ; w = mubyte ; w = mword ; w = barr1[2] ; w = ubarr1[2] ; w = warr1[2] ; w = string[4] ; w = AY[4] ; ; uw = 42 ; uw = 42.w ; uw = 42555 ; uw = X ; uw = AY ; uw = ub2 ; uw = uw2 ; uw = mubyte ; uw = muword ; uw = ubarr1[2] ; uw = uwarr1[2] ; uw = string[4] ; uw = AY[4] ; ; ;; all possible assignments to a FLOAT VARIABLE ;float_assignment_to_floatvar: ; fl1 = 34 ; fl1 = 34555.w ; fl1 = 3.33e22 ; fl1 = X ; fl1 = AY ; fl1 = b2 ; fl1 = ub2 ; fl1 = w2 ; fl1 = uw2 ; fl1 = mbyte ; fl1 = mubyte ; fl1 = mword ; fl1 = muword ; fl1 = barr1[2] ; fl1 = ubarr1[2] ; fl1 = warr1[2] ; fl1 = uwarr1[2] ; fl1 = string[4] return } }