[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