You know what might also be a fun thing to add, is a way to select a different main ROM. We saw recently that Sarah Libman published a very cool Teeny integrated main ROM, trading off under-used functions of the standard M100. I have a "hardware scrolling" main rom to toy with.
Is there a way to enable a main ROM swap? ..Steve On Sat, Jan 14, 2023 at 8:29 AM Stephen Adolph <[email protected]> wrote: > 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. >> >
