[image: image.png] There is a new button on CloudT called "C0DE". It is not the same thing as the CODE key on a real Model 100 keyboard. Note that you will probably have to force-reload the app to get the new feature (Ctrl-Shift-R).
This button brings up a dialog from which you can assemble any 8085 instruction covered at https://bitchin100.com/wiki/index.php?title=8085_Reference. This includes several known synonyms for the Undocumented Instructions Somehow it ended up looking like the Windows XP theme. A 20+ year old OS is now retro right? You can move this dialog around the browser window using its title bar. CloudT remembers (browser local storage) whether it was open and where you last put it even if you close the dialog. You can close it with the close icon. You can toggle close it by clicking C0DE again. Number operands are considered decimal unless they only make sense as hex (A-F characters) or are explicitly prefixed with $ or 0x. Examples... mvi a,10 10 is decimal mvi a,1d 1D is hex mvi a,11 11 is decimal mvi a,$11 $11 is hex mvi a,0x11 0x11 is hex When you type your instruction, if it makes sense, CloudT will immediately show you the assembled bytes as hex. There is no support for a symbol table or multiple instructions (yet). Now what makes it useful (to me) is there are four buttons that will "type in" this data into BASIC. Raw This injects your character as a 8-bit Model 100 character. The purpose of this is for directly building quoted strings that contain XIP (execute in place) code. This code of code must be specially constructed, but the advantage is it requires no copying or processing to run. So the instruction mov b,c assembles as $41 If you click Raw, it will show up in CloudT as if you typed the letter 'A' since A is $41 = 65d. Raw-35-escape This is an encoding I saw in Ken's programs. Characters less then ASCII '#' are encoded as ASCII '#' followed by It's like Raw otherwise. So mov b,c will still type-in 'A' If you assemble NOP, that's instruction zero. So, as Raw-35-escape it will show up as ## Raw-35-escape code has to be minimally processed and copied somewhere else. Like ALTLCD. It is very compact. The code to poke it in somewhere else is not particularly complicated. But it probably deserves an XIP injector for speed :-) Hex Traditional numbers and A-F hex encoding. It's not particularly compact, it's not particularly tractable. Its main advantage is everyone will know what it is if they list your BASIC program. Funny Hex This is like hex but it uses 0-9 and puncuation : through ? instead of A-F. Slightly more tractable than regular hex, since you don't need to look up the nibble values, you can just subtract 48 from the ASCII representation to get the 0..15 value. Comma Decimal This is for encoding your program as comma-separated decimal, as in 10 DATA 110,120,1 Advantages: the loader logic is simple and intuitive to write from scratch. It has no limitations as to what you can represent. BASIC is tuned to process it. The main disadvantage is it is bulky. Anyway, it's probably easier to understand by trying it than wading through my ponderous exposition. If you're still scratching your head as what this is for, fair enough. I read somewhere that Acorn BASIC has a built in assembler. Forths tend to as well though you can always "c," in a few bytes. Our BASIC doesn't. So if you want to do some immediate assembly programming and experimentation without cracking open a full assembler, this will assist you. A small step up from hand assembling using the 8085 reference. For bigger programs, use a regular file assembler. CloudT will probably never have that.. though it will probably get a disassembler/debugger support. Again, targeted at experimenting with small subroutines. So maybe it could disassemble the code embedded in a string on the screen. Or a series of data statements. Let me know if you have any problems. Also if you have another favorite encoding you've seen and would like included, let me know. -- John.
