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.
>>
>

Reply via email to