thats pretty cool John. The other part of this is, how to make use of the code. Have you thought about a button to support the poker code to go with the data?
On Sat, Jan 14, 2023 at 2:15 AM John R. Hogerhuis <[email protected]> wrote: > [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. >
