This is ColCom (Colour Computer) Assembler. It has both an assembler and disassembler built in, as well as the option to load in a code image. [Many Thanks to @Mr_Zombii for help and ideas!] HOW IT WORKS: ColCom is my own [UNFINISHED] assembly language, where you can perform mathematical and logical calculations and move data around registers and memory. See the instruction set below. ColCom can load programs using image files that display binary data as Black and Red pixels. Navigate the DISASSEMBLY list by using arrow keys. To delete a letter you just typed, click the LEFT ARROW instead of backspace. LOADING AND SAVING : When you have built your program and tested it sufficiently, click the ASSEMBLE button. This will take you to a blank white screen. A small set(s) of pixels will appear at the top of the screen. This is YOUR PROGRAM. After this, to return to the Assembler page, PRESS SPACE. Make sure you are in full-screen mode, then right-click the stage/screen, and click "save image as". Save the image onto a suitable folder into your computer. To upload the program, click "see inside" on this project page, then go onto the "Code" sprite. In the Costumes section, delete any present costumes, then upload your own. Now, click the green flag and select "LOAD CODE & DISASSEMBLE". Your program will appear. PRESS SPACE TO RETURN TO YOUR PROGRAM. INSTRUCTION SET: This is the currently working instruction set and Syntax: Key : R = Register (Zero-Index, so 1 = R0, and 8 = R7) x = Value y = Alternate Value # = Takes the place of R if you just want a plain integer. 1. Move value to Rx or between registers into Rx: MOV Rx, Ry --- or --- MOV Rx, #y 2. Load value from memory into register Rx: LDM Rx, My 3. Input a CHAR table value from user keyboard: INP Rx, Cy --- or --- INP Rx, ANY 4. Output a value to the OUT register (UNUSED) OUT Rx 5. Add two registers/numbers together into Rx: ADD Rx, Ry --- or --- ADD Rx, #y 6. Subtract two registers/numbers into Rx: SUB Rx, Ry --- or --- SUB Rx, #y 7. Left shift bits into register Rx by y number of shifts: S͏HL Rx, 8. Right shift bits into register Rx by y number of shifts: SHR Rx, 9. Compare two values and store it* in STATUS register shown onscreen: CMP Rx, Ry --- or --- CMP Rx, 10. Branch to different line (change Program Counter) BRA TO (See the bottom of the list for other BRA options.) 11. Perform AND logical calculation into Rx: AND Rx, Ry --- or AND Rx, 12. Perform OR logical calculation into Rx: ORR Rx, Ry --- or ORR Rx, 13. Perform NOT logical calculation into Rx: NOT Rx 14. Perform XOR logical calculation into Rx: XOR Rx, Ry --- or XOR Rx, 15. Branch if previous calculation* is equal (EQ): BEQ TO 16. Branch if previous calculation* is not equal (NE): BNE TO 17. Branch if previous calculation* is less than (LT): BLT TO 18. Branch if previous calculation* is greater than (GT) BGT TO *this means the result of the calculation e.g. Compare Rx with Ry . If Rx is bigger than Ry, then the STATUS will be GT.