On Tuesday, July 25, 2023 at 6:17:56 PM UTC+8, Phil G wrote:
> Thanks Paul, I watched the videos and it looks really good.
Ok, great. I'm struggling to upload yesterday's videos.
I have about 2 hours, mostly usage of the machine.
> I was thinking I could revisit my 1990's MASM days when I
We now have a public domain assembler (as86) compatible
with masm (subset), so it can be done legally.
I'm after some public domain (explicit notice) 8086 code to switch
into 8080 mode and execute a few instructions to prove that
the 8080 works (bearing in mind that I have never used an 8080
ever - well, not knowingly). I can video that being tested.
I wrote these notes:
I believe there is an intel 8080 syntax similar to 8086, but
there are rival assembler syntaxes (from zilog z80 and others
I think)
CP/M BDOS calls are done with "call 5". Normally "call bdos",
and bdos is a define (equ) of 5.
c=9 : write text with $ terminator. known as C_WRITESTR
text address is given in register pair de somehow (it's a 16-bit
immediate address). Terminator can change if you use
another call.
Semicolon (;) used for comment
Not sure what the reference assembler would be (backdating,
the same as year 0 can be backdated). masm with ".code 8080"?
Or just make the level a parameter to the assembler.
program is exited with "ret"
call opcode is x'cd' (to a 16-bit address)
ret opcode is x'c9' (same as 8086 near return)
lxi (into register pair - give first letter, e.g.
h for hl, d for de, or b for bc). opcode is x'11' for d
opcode to move (mvi mnemonic) 8-bit immediate into c is x'0e'
brkem is the v20 instruction to get into 8080 mode
0f ff is the instruction, followed by a 1-byte
interrupt vector the same as the INT instruction
retem gets out (opcode ed fd). equivalent of iret in that
it loads flags, cs and ip from the 8086 stack
There probably needs to be multiple goals:
1. Replace the CP/M-80 BIOS with calls to 8086 to see
if genuine CP/M-80 can be made to run.
2. Replace CP/M-80 with the equivalent in 8086 code
(using stubs).
3. Implement the PDOS-generic OS in 8080.
4. Implement MSDOS INT 21H calls to the same extent
that PDOS/386 did, but this time going to 8080.
> did loads of utilities & tools for my employer BT,
> mostly in 8086 assembler and a few in Borland Turbo C.
Turbo C 2.0 and Turbo C++ 1.01 were made freely available
by the owner, although you now need to go to
archive.org
to get to the page I think.
> I'd wondered about trying to find an original PC or XT on
> ebay but collectors have made them so expensive - the
Yeah - I'm leery about relying on stuff that can only be
obtained from landfill.
> option of a brand new machine is tempting and probably cheaper :)
> I'd be interested to see a Norton SI ("System Information") screen,
> see if the clock really is 4.77 Mhz and what its "SI rating" is :)
If you can provide something that I can legally run, I'd be
happy to do so.
> Looking at various listings I see some come with an ISA extension
> so maybe an external 8250 com port would work (I'm sure I have
> one somewhere!) or maybe the bios supports the 16550.
I don't actually know what this ISA extension is for yet. I am
hoping that I can buy some sort of floppy drive that is capable
of reading DMF disks. Also to be able to boot from a 3.5" floppy.
But yeah - if I can get a COM port, that would be great. I am
happy to use an entire PC as a com port if required. I'm not
sure what my options are.
BFN. Paul.