Subject: Re: Compupro progress / Console questions ?
From: Dave Dunfield <dave04a at dunfield.com>
Date: Sun, 24 Jul 2005 21:24:53 -0400
To: "General Discussion: On-Topic and Off-Topic Posts" <cctalk at
classiccmp.org>
Hi Allison,
known but forgotton problem in the 8" world.
765 has a READY sense line
and the 851 is know for changing state of the line during select.
Solution, force ready at the board (jumper) and don't use it. READY
was for detecting disk changes.
Tried forcing READY on the original SA-851's, and it still didn't boot.
I immagine there must be some other jumpering issues. I'm leaving that
for now, as I do have a drive working.
According to Compupro Docs, the Console port is USER 7
- I have
setup the board to respond to users 4-7, which is the default setup
requireed for the console shows in the Compupro docs. As noted
above, I can select user7 and talk to the console correctly, which
would suggest that this is all working correctly.
It is likely initing the ports but may not use any of them. It's
possible the bootable media may use a different port scheme. Its
likely a difference between the boot roms and the BIOS code once
the boot transfers to the OS.
Yes, thats one of the possibilities - others are that it is hanging
on some other part of the init, or simply crashing (bad RAM etc.)
I assume based on the CPU your runnig CP/m-86 (or
any DRI -86)
as the boot roms load a loader then load the OS (bios and all).
So booting is multi step code.
Yes, it is CP/M 86 as noted in my original message:
The disks I am using are original Compupro
distribution disks
(Can't make copies yet), labled:
Serial# C86-272-1854
Version: CP/< 86 (P0 in handwriting)
CP/M 86 1.1
SYSTEM MASTER
Disk Number 1
Single Sided - 1024 B/S
Serial# C86-0272-1854
Version: 1R
CP/M 86
SYSTEM MASTER
Disk Number 2 of 2
Single Sided - 1024 B/S
I was hoping someone might recognize these disks and be able to tell me
if they are setup for the Interfacer-4, or some other device - or perhaps
someone has a known good boot disk for this config (86/87, Disk1A,
Interfacer4)?
I've had to put it away to get some other more pressing items on the bench,
however when I get back to it, I am going to proceed as follows:
I've been using an EPROM emulator to load my modified boot - this will also
let me change the content of the boot ROM with power-on (while it is switched
out of course).
The boot rom provides 512 bytes at 00-FF - while it is enabled (out of reset)
I can write all of memory, however I can read only the boot ROM - once I hit
the enable, the boot-rom disappears and RAM appears.
I plan to write a loader which will allow me to load a block of code into
RAM at $0200, and to switch the ROM OFF and the RAM ON in the very last
instruction of the 0000-01FF block - so it should transition to the code in
RAM correctly.
Boot the system normally,
then load the loader into the boot-rom (via EPROM emulator),
Reset should start loader.
Send my 8086 monitor.
Loader will put it in RAM and transition to it.
Then I should be able to browse around the loaded memory image,
and perhaps determine what type of console device it wants to communicate
with.
Main problem is: I don't know much about CP/M-86 - I do not have technical
documentation or experience with it.
With CP/M-80, it's fairly easy to find the console drivers by following
addresses. I have no idea how to do this with CP/M-86
Can you give me any pointers to how to find the console I/O functions under
CP/M-86?
I do have CP/M-86 running on an APC that I Can experiement with - I will also
check the APC docs to see if they contain any useful info. I also have a Rainbow
and docs, however I do not know how similar it will be as I seem to recall that
the CP/M it has is a special dual-processor version.
Well I've never had to find the drivers blind. the time I spent with -86 was
at the front of the process, creating a working bios so I knew where I was going
rather than trying to figure were someone else went. It didn't hurt that I had
a boot monitor (subset of DDT in eprom).
CP/M 86 is not unlike cpm-80. The rom boot is enough to pull the next boot
off disk and usually that loads the loader. The laoder gets dropped at a
standard address 0000:0400h sticks in my mind. The loader is really a
minimal bdos and bios, enough to find CP/M86.sys and put it at the load
address for the system. I don't remember there being dynamic sizing so
if there isn't enough ram, Oops, crash. Once loaded the BDOS and BIOS
addresses have standard calling locations that are jumps (long jumps)
to them. A handy thing would be to disassemble the load file directly
rather than finding it ram, if possible.
The apc is a good version. The rainbow is really in a different league
as the bios is shared with the z80 making it much more complex.
Allison