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