I'm calling this: CwA. Some info: Registers are 1-8 8k RAM No registers are going to be defined directly, if I say 1 or 2, it doesn't mean specifically register 1 or 2 but any register 1-8. reg = register, ram = ram address, num = number. Instructions go: opcode set 1 2 Wrap stuff in <> for comments It does not care about indenting, if you put your entire program on 1 line, or if you spammed space for however long, it won't affect much besides assemble time, so go crazy with indenting/spaces/newlines Instructions: 0 nop = wait 1 add = adds reg 1 and reg 2 and puts them in reg set 2 sub = same as add but subtracts 3 ldi = loads num 1 into reg set 4 lir = loads reg 1 into set 5 ldm = loads ram 1 into set 6 jmp = sets PC to set 7 jis = jumps to set if reg 1 is equal to reg 2 8 jins = jumps to set if reg 1 is different from reg 2 9 sur = subroutine to num set 10 rtn = returns from a subroutine 11 pix = places pixel using 1 id value instead of an x,y where every 32 pixels it appears down one row, sorry for the inconvenience might make it better later 12 and = ands reg 1 and reg 2 together and puts the result at set 13 or = same as and but or 14 not = same as and but not and only has reg 1 input 15 xor = same as and but xor 16 hlt = halt how to import code: open the "Asm" list and right-click the list to import, then import your code from a .txt file or something similar, then press the "Assemble" block and wait for it to be done, finally, press the green flag and let it run. also, the 8192 in ram is used for ascii keys and 8191 for if its being is being pressed