This is easy since it is an I/O bus. The instructions
are GETB, PUTB, STAT
and CTRL. In any case the corresponding control line is asserted.
This means, a PUTB will put the device address on the X/Y lines, the data
byte onto the Bus Out lines, and assert Put Strobe.
Oh yes, one interesting thing to note: the STAT instruction (usually to
get some status information from the device) will put the register
*number* onto the Bus Out lines. I think IBM did this to be able to select
Alfred Arnold's AS assembler is working very good for with your
mnemonics for PALM assembly.
We debugged a few issues (including also that he supports the original IBM
mnemonics - he had a few inconsistencies on those, but I think we got them
all ironed out -- but in any case, I much prefer your mnemonics anyway).
His newer AS build/updates as of this month should have all those fixes.
I started preparing a library of assembly functions for basic things (like
binary to decimal string conversion), and polling keyboard inputs -
standard things I'd need to build up to the terminal program. Along the
way, I got sidetracked into making this demo that I think is the first time
anyone has showcased a special feature of the IBM 5110 character set:
https://www.youtube.com/watch?v=m5ewb1BOgzE
I got the DB25 pins wired up, and was going to start experimenting with
those GETB, PUTB, CTRL and STAT opcodes. I don't have any actual serial IO
card for the 5100 - but I figure I should be able to purely "bit bang" off
the external IO in my own main-loop. It might only get 50 or 110 baud, but
I'm fine with that -- anything to let me stream in some code without having
to re-type it.
Input would be the first goal: monitor the 8 data lines on the external
pins, start writing one byte at a time to RWS (and just do something like
press spacebar to toggle the writing). Then I use an MCU connected to
those 8 data lines with some TBD timing (probably 330ohm resistors
inline?). And I only need to support streaming in machine code (a binary
produced by AS). That is, find some minimal bootloader (using GETB and
CTRL?) to load a larger terminal program - then that terminal program
should be able to interface with a WiModem ("RS232" device connected up
with 3 pins). I'd be happy to just get the input loader working for
starters, but I can't use the 5110 emulator for that and have to be hands
on with the real system.
That's the dream, anyway. My internal cassette deck on that system is
still working, but that may not last forever (and in any case, I can't
write new code from the PC onto a QIC tape in a format the 5110
understands).
Note, I'm booked to go to VCF East this year, if anyone wants to talk
5100/5110 stuff.
-Steve