Date : Wed, 11 Apr 1984 09:45:50-PST (Wed)
From : harpo!ulysses!burl!clyde!akgua!psuvax!mancuso@Ucb-Vax.ARPA
Subject: Xerox 820 REVEALED#5--updates & hints
It works!! We succeded in getting CP/M 2.0 up on one of the boards the
other night, so now it is official--it *is* possible. I wrote a boot
program and the CBIOS section and well, it works. The code still needs
some work to make it bulletproof, though. Most of the functions map right
over to the Xerox monitor ROM entry points with a bit of shuffling. There
are some little things that need to be changed (CP/M sends characters in the
C register to be output, and Xerox wants them in the A register...) but nothing
too difficult.
Some updates and hints:
In a previous article I mentioned that the monitor command 'B' also boots
the system. It does, but it boots from disk 01 instead of disk 00 like the
'A' command does. If your boot program (like mine) assumes that the system
will be cold-booted from drive 00, make sure you use the 'A' command to boot
the system.
I just got this update on the 'undocumented' monitor entry points:
***********************************************************************
>From .....!ucbvax!waldron.wbst@Xerox.ARPA Wed Apr 11 07:32:57 1984
Subject: Re: Xerox 820 REVEALED#2--Monitor Jump Tables
I hope I can fill in some of the blanks. This info is from the 820
Software Development guide. I have not tested any of them. For those
that were short and
clear I typed the actual code listing with comments verbatim.
F033 SPACE Print a space
In : ??
Out: ??
F03F ASCHEX Convert ascii to hex
ASCHEX: SUB '0'
RET C
CP 10
CCF
RET NC
SUB 7
CP 10
RET C
CP 16
CCF
RET
F7F3 BLOCK Block move routine
BLOCK: CP 3 ;CHECK IF PARAMETER COUNT IS 3
SCF
RET NZ
CALL BLOCAD
LD A,C
OR B
RET Z ;EXIT NOW IF BC=0
LDIR
RET
BLOCAD: EX DE,HL
OR A ;CLEAR CARRY
SBC HL,DE ;GET DIFFERENCE BETWEEN
EX DE,HL ;HL & DE FOR BYTECOUNT
PUSH DE
PUSH BC
POP DE ;GET OLD BC INTO DE
POP BC
INC BC ;GET COUNT+1 INTO BC
RET
F7F9 FILL Memory fill routine
F7FC TEST Memory diagnostics
F7FF GOTO Execution routine
F802 VERCMD Memory block compare
In : ??
Out: ??
Hope this helps.
Brian
************************************************************************
Thanks again.
The connections we used for the disk drive (SA800/801) are:
Xerox Floppy Name
01 NC -
02 NC -
03 NC -
04 20 Index
05 26 Drive Select 1
06 28 Drive Select 2
07 NC -
08 18 Head Load
09 34 Direction Select
10 36 Step
11 38 Write Data
12 40 Write Gate
13 42 Track 00
14 44 Write Protect
15 46 Read Data
16 NC -
17 22 Ready
18 NC -
19 NC -
20-37 11-49(odd) GND
We are using a separate power supply for the disk, so no power connections
were made from the board to the floppy.
If you are looking for a cheap way to connect to J7, try cutting an IC socket
in half. I used an 8 pin socket, cut it in half, trimmed it a little, and
hooked up 3 leads to it. On the two boards here, the HS signal at J7 is
garbage, so the eventual fix will be to cut the PC trace, and run a wire from
U34 pin 8 to J7. (Has anyone else had this problem?)
Mail and news got screwed up here last week because of a major filesystem
crash, so if you sent me something and I haven't replied, try me again.
I'd really like to hear if anyone else is making progress on these things.
---
Overall there is a smell of fried onions. (fnord)
:+: Pat Mancuso
:+: Penn State University
Usenet: :+: ...!psuvax!mancuso
Bitnet: :+: mancuso@psuvax1