[comp.os.cpm] Is this a Xerox 820 micro? If so, now what?

hughes@ux.acs.umn.edu (Steve Hughes) (10/19/90)

Okay, here's a hardware ID challenge:
In the hopes of saving a few buck$ and putting off
buying a computer of my own (I program at work on a IIci,
getting a machine I can actually afford would be just to pitiful),
I have bought a cheap terminal from a local surplus shop.
I wanted to get something to dial up the mainframe with, using my
old 1200 baud modem that has been idle since I sold my IIe.
They had lotz of Adm3as and a few CDC and a couple of Hazeltine
1420's, (none of which worked) all for $39. After screwing around with 
what they had for a couple of hours, I settled for an
unidentifiable Xerox terminal that had a solid looking screen and
a very nice detatched keyboard.  I was able to get it to work well 
with an old 300 baud modem in the shop, so I figured I'd give this one a shot.

Now here is the deal: No documentation, and despite my best
efforts, I cannot make it work at higher than 300 baud! Not with my
(admittedly ancient, Novation Auto-Cat 212) modem or with a direct
connect to an IBX box (on campus) capable of up to 9600 baud.  This is
nuts; it was built in 1984, it simply MUST be capable of faster
operation, and I am hoping that someone reading this knows
about this machine and can help me out.

Here is as much as I know about it:
ABSOLUTELY NO DIP SWITCHES.
Product Code (from bottom of monitor unit): UO5. 
Description: Monitor is green filter over a white phosphorous crt,
detatched keyboard, keyboard has numeric keypad on the right side,
"Xerox" nameplate in upper left corner of keyboard unit. "Help"
key in upper left corner of keyboard (where you might expect to find "esc").

There is a COMM port, Printer Port (RS-232) and for God's sake,
a DISK DRIVES port and a reset button on the back of the unit.  
I open the case to check things out: I find a Z-80 MPU.
The machine starts up with a beep and displays the following message:

Xerox v 4.04 C 1982 Xerox Corp.

     L - Load System
     H - Host Terminal
     T - Typewriter

*

The "*" is, apparently, a monitor program prompt. Pressing the "Help" key
from the * prompt yields this result:

Baud     <rate> [B/A]
Dump     [start] [end]
Goto     <addr>
Modify   <addr>
Protocol <xon> [msk val]

Looks like I could type "baud 1200" or something like that, right?
Thats what I thought, no dice. There appear to be other monitor commands,
for example, "w" yields "C1981BALCORESCOMPUTER" and some commands like
"e" or "a" seem to produce some result, sometimes an apparent
hang, sometimes something like:
m 
0000   00  <-stops here and waits for me to type a hex digit, then
             continues

After I've done something online (at @%$# 300 baud) I can reset the
machine (via the reset button on the back), get the * prompt back, and use
the "d" (dump) command to generate a nice hex and ASCII scroll through
RAM, and sure enough, my whole session is sitting there! 

Seems like I should be able to replay my session, scroll up and 
down, etc., but God (and Xerox) only knows how. Despite the Copyright
dates, the machine has stamped on the bottom of the monitor unit
"Manufactured Sept 1984." Opening the case shows a Z-80 board with
all kinds of jumpers, pins and ROM chips with "v 4.04" printed on their
labels. Also one card plugged into an edge connector.

Other fun:
The command "Parity even" seems to be digested by the monitor program,
other attempts at discovering commands yield a beep and "what?" so
I can tell what sort of input at least gets accepted. I can't seem
to make the "baud" command choke by typing, say, "baud huppho" or 
something. No luck with stuff like "set" or "VT100" (it was worth a
try at least!).

Typewriter mode lets me type on the screen, and I assume, would pass
characters through to a printer if attatched. L for Load system
results in a hang, I assume it is trying to boot from floppy drives
which, of course, I have not. After entering typewriter mode or
host terminal mode I get the message "ctl-esc to exit", which takes
me back to the "*" prompt.

So the bottom line is, What do I have here besides a fun little Z-80
micro and part time extremely dumb, 300 baud terminal?
Screen sure is solid, keyboard very nice, it's pleasant enough to _use_
but working at 300 baud is driving me nuts!

Does anybody know anything about my mysterious Xerox UO5?

If you do, please email me at:

hughes@ux.acs.umn.edu

Since this is a Z-80 machine, it must have run CP/M, and I have
recently heard that it may in fact be a Xerox 820 microcomputer.
If this is so, I would be very interested in buying a copy
of the users manual from someone. I don't think I would be
interested in disk drives, etc, but I would be intersted in
discovering if the ROM host terminal mode supports some kind
of terminal emulation, or if it will allow me to set parity, stop
bits, etc..

I've got to believe that someone reading comp.os.cpm has used this
machine!

Any help at all would by much appreciated.  Thanks!

-Steve

mlinar@eve.usc.edu (Mitch Mlinar) (10/19/90)

In article <2499@ux.acs.umn.edu> hughes@ux.acs.umn.edu (Steve Hughes) writes:
>
>There is a COMM port, Printer Port (RS-232) and for God's sake,
>a DISK DRIVES port and a reset button on the back of the unit.  
>I open the case to check things out: I find a Z-80 MPU.
>The machine starts up with a beep and displays the following message:
>
>Xerox v 4.04 C 1982 Xerox Corp.
>
>     L - Load System
>     H - Host Terminal
>     T - Typewriter
>

You have a full-fledged 820-II Xerox CP/M computer which, of course,
needs disk drives (8" or 5" to work and a floppy card inside).

>Baud     <rate> [B/A]
>Looks like I could type "baud 1200" or something like that, right?
>Thats what I thought, no dice. There appear to be other monitor commands,

No.  You would THINK it should do that, and I agree.  However, Xerox
uses a hardware chip to set baud rate which takes a 4-bit value.
Xerox did not map this, so Baud rate works with values from "0" to "F".

Now, if memory serves me right, "5" is 300 baud, "7" is 1200 baud, "E" (or is
it "D") is 9600 baud.  I don't remember all the others in between, but you
get the idea.  Obviously, don't use the quotes, just the letter/number.

There is an ADM-3A compatible video there, but it is NOT just a terminal
that is widely configurable.  Have fun...


>If you do, please email me at:
>
>hughes@ux.acs.umn.edu
>

Mail bounced....


-Mitch

fzsitvay@techbook.com (Frank Zsitvay) (10/22/90)

In article <2499@ux.acs.umn.edu> hughes@ux.acs.umn.edu (Steve Hughes) writes:
>
>
>Okay, here's a hardware ID challenge:
>In the hopes of saving a few buck$ and putting off
>buying a computer of my own (I program at work on a IIci,
>getting a machine I can actually afford would be just to pitiful),
>I have bought a cheap terminal from a local surplus shop.
>I wanted to get something to dial up the mainframe with, using my
>old 1200 baud modem that has been idle since I sold my IIe.
>They had lotz of Adm3as and a few CDC and a couple of Hazeltine
>1420's, (none of which worked) all for $39. After screwing around with 
>what they had for a couple of hours, I settled for an
>unidentifiable Xerox terminal that had a solid looking screen and
>a very nice detatched keyboard.  I was able to get it to work well 
>with an old 300 baud modem in the shop, so I figured I'd give this one a shot.
   good choice thus far...    broken terms are a waste of time...

   Before i go on, this followup is contigent on Beaverton Telephone
throwing me a bunch of line noise that just might disconnect me.  It makes
vi a bitch to use...
>
>Now here is the deal: No documentation, and despite my best
>efforts, I cannot make it work at higher than 300 baud! Not with my
>(admittedly ancient, Novation Auto-Cat 212) modem or with a direct
>connect to an IBX box (on campus) capable of up to 9600 baud.  This is
>nuts; it was built in 1984, it simply MUST be capable of faster
>operation, and I am hoping that someone reading this knows
>about this machine and can help me out.
   it is.  baud rate generator is located at port 00H, write only.
you can write to this with the monitor, using the "o" command.  syntax
is  o port, data  .   all values must be entered in hex.
 
                          Baud rate table
                          00  =  50 baud
                          01  =  75 baud
                          02  = 110 baud
                          03  = 134.5 baud   (very odd)
                          04  = 150 baud
                          05  = 300 baud
                          06  = 600 baud
                          07  = 1200 baud
                          08  = 1800 baud
                          09  = 2000 baud
                          0A  = 2400 baud
                          0B  = 3600 baud
                          0C  = 4800 baud
                          0D  = 7200 baud
                          0E  = 9600 baud
                          0F  = 19.2 Kbaud

>
>Here is as much as I know about it:
>ABSOLUTELY NO DIP SWITCHES.
>Product Code (from bottom of monitor unit): UO5. 
>Description: Monitor is green filter over a white phosphorous crt,
>detatched keyboard, keyboard has numeric keypad on the right side,
>"Xerox" nameplate in upper left corner of keyboard unit. "Help"
>key in upper left corner of keyboard (where you might expect to find "esc").
  From the sounds of it, you have an 820 - II  .
>
>There is a COMM port, Printer Port (RS-232) and for God's sake,
>a DISK DRIVES port and a reset button on the back of the unit.  
>I open the case to check things out: I find a Z-80 MPU.
>The machine starts up with a beep and displays the following message:
>
>Xerox v 4.04 C 1982 Xerox Corp.
>
>     L - Load System
>     H - Host Terminal
>     T - Typewriter
>
>m 
>0000   00  <-stops here and waits for me to type a hex digit, then
>             continues
  that command allows you to enter a specified value into any memory
location.   if your monitor doesn't support the o command, you will need
to enter the instructions to change baud rate into memory, and use the
goto command to execute it.
 
  perhaps the baud command would work if you entered just the b.

>
>Seems like I should be able to replay my session, scroll up and 
>down, etc., but God (and Xerox) only knows how. Despite the Copyright
>dates, the machine has stamped on the bottom of the monitor unit
>"Manufactured Sept 1984." Opening the case shows a Z-80 board with
>all kinds of jumpers, pins and ROM chips with "v 4.04" printed on their
>labels. Also one card plugged into an edge connector.
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    That's the givaway that it's not an 820 - I.   i wish i could help
you more, but the only info i have is for the -I machines, and your machine
is mostly likely a -II.  the baud rate generators are the same in each
machine, so you should be able to use the table above to select baud rates.

   your best bet would be to find someone with a similar machine, get some
disk drives and make a boot disk.   run cp/m and use a terminal emulator.
by the way, the 820 machines emulate an adm 3a directly.
>
>Since this is a Z-80 machine, it must have run CP/M, and I have
>recently heard that it may in fact be a Xerox 820 microcomputer.
>If this is so, I would be very interested in buying a copy
>of the users manual from someone. I don't think I would be
>interested in disk drives, etc, but I would be intersted in
>discovering if the ROM host terminal mode supports some kind
>of terminal emulation, or if it will allow me to set parity, stop
>bits, etc..
   It's really a fine cp/m machine.  although it probably has seen its
better days, using it as merely a dumb terminal is a waste of resources.
Find some disk drives (i think it can handle both 8 inch and 5 inch,
check the controller chip.  if it's a 1771, your stuck at single density
and (practically) 8 inch drives, if it's a 179x you can use either.)
and enjoy the machine for what it is.
 
   they work great as a bbs host...  :)
-- 
fzsitvay@techbook.COM - but don't quote me on that....

American Oil Company motto - Bend over, We'll pump!!!

fzsitvay@techbook.com (Frank Zsitvay) (10/22/90)

In article <1990Oct22.093431.21630@techbook.com> fzsitvay@techbook.com (Frank Zsitvay) writes:
>In article <2499@ux.acs.umn.edu> hughes@ux.acs.umn.edu (Steve Hughes) writes:
>>
>>Seems like I should be able to replay my session, scroll up and 
>>down, etc., but God (and Xerox) only knows how. Despite the Copyright
>>dates, the machine has stamped on the bottom of the monitor unit
>>"Manufactured Sept 1984." Opening the case shows a Z-80 board with
>>all kinds of jumpers, pins and ROM chips with "v 4.04" printed on their
>>labels. Also one card plugged into an edge connector.
>         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>    That's the givaway that it's not an 820 - I.   i wish i could help
>you more, but the only info i have is for the -I machines, and your machine
>is mostly likely a -II.  the baud rate generators are the same in each
>machine, so you should be able to use the table above to select baud rates.
>
Damn, i should have been thinking....
 
     was that card in the edge connector by any chance the monitor
electronics???   does the main board have a card edge connector on it??
 
     better yet, look on the cpu board for these numbers:
 
                   either    140P82629A
                       or    140P82664A
 
     if it has either of those 2 numbers, then you have an 820 and
are in luck.  
 
     820-I machines do not have an edge connector on the main board.

 
-- 
fzsitvay@techbook.COM - but don't quote me on that....

American Oil Company motto - Bend over, We'll pump!!!

mlinar@eve.usc.edu (Mitch Mlinar) (10/23/90)

In article <1990Oct22.094551.21727@techbook.com> fzsitvay@techbook.com (Frank Zsitvay) writes:
>In article <1990Oct22.093431.21630@techbook.com> fzsitvay@techbook.com (Frank Zsitvay) writes:
>>In article <2499@ux.acs.umn.edu> hughes@ux.acs.umn.edu (Steve Hughes) writes:
>>>labels. Also one card plugged into an edge connector.
>>         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>     was that card in the edge connector by any chance the monitor
>electronics???   does the main board have a card edge connector on it??

It is - no doubt at all - an 820-II.  They have two edge connectors on
them.  One (which is in use) is either for the floppy controller or
hard disk controller.  The other is for an 8088 card which, in turn, can talk
to an expansion box which can have all other kinds of goodies.

Most stock 820-II have the floppy card.  Look at the main 40-pin chip on this
small card; if it is a 1797, it is the floppy.  If it is a Z80-PIO, then it
is the hard disk controller.

-Mitch

dg@pallio.UUCP (David Goodenough) (10/23/90)

In article <27614@usc.edu> mlinar@eve.usc.edu (Mitch Mlinar) sez:
>In article <2499@ux.acs.umn.edu> hughes@ux.acs.umn.edu (Steve Hughes) writes:
>>Baud     <rate> [B/A]
>>Looks like I could type "baud 1200" or something like that, right?
>>Thats what I thought, no dice. There appear to be other monitor commands,
>
> No.  You would THINK it should do that, and I agree.  However, Xerox
> uses a hardware chip to set baud rate which takes a 4-bit value.
> Xerox did not map this, so Baud rate works with values from "0" to "F".
>
> Now, if memory serves me right, "5" is 300 baud, "7" is 1200 baud, "E" (or
> is it "D") is 9600 baud.  I don't remember all the others in between, but
> you get the idea.  Obviously, don't use the quotes, just the letter/number.

Hummm - this got me to thinking about the QTERM patch for a Kaypro, which
is based on the "good 'ol" Ferguson Big Board [1], just like the Xerox 820
was. So I pulled the baud rate table from the Kaypro patch, and guess what:

b38400:	db	0,no		;  38400 baud
b19200:	db	0xf,yes		;  19200
b9600:	db	0xe,yes		;   9600
b4800:	db	0xc,yes		;   4800
b2400:	db	0xa,yes		;   2400
b1200:	db	7,yes		;   1200
b600:	db	6,yes		;    600
b300:	db	5,yes		;    300 baud

Yup. 5 is 300, 7 is 1200, and e is 9600. Try the others in between, and let
us know what happens. Enquiring minds want to know!

[1] I don't know the _EXACT_ history of the Big Board, Kaypro, and Xerox
machines, but the QTERM patches for these are as close to identical as makes
no difference. I remember hearing that they all started from a common
ancestor, I'm only 99% sure it was the Big Board (version 2 I think). If
anyone wants to provide a full history feel free to correct what I've said
above.
-- 
	dg@pallio.UUCP - David Goodenough		+---+
						IHS	| +-+-+
	..... !harvard!xait!pallio!dg			+-+-+ |
AKA:	dg%pallio.uucp@xait.xerox.com			  +---+

jb@rti.rti.org (Jeff Bartlett) (10/31/90)

In article <2499@ux.acs.umn.edu> hughes@ux.acs.umn.edu (Steve Hughes) writes:
>Okay, here's a hardware ID challenge:
>In the hopes of saving a few buck$ and putting off
>buying a computer of my own (I program at work on a IIci,
>getting a machine I can actually afford would be just to pitiful),
>I have bought a cheap terminal from a local surplus shop.
>I wanted to get something to dial up the mainframe with, using my
>old 1200 baud modem that has been idle since I sold my IIe.
>They had lotz of Adm3as and a few CDC and a couple of Hazeltine
>1420's, (none of which worked) all for $39. After screwing around with 
>what they had for a couple of hours, I settled for an
>unidentifiable Xerox terminal that had a solid looking screen and
>a very nice detatched keyboard.  I was able to get it to work well 
>with an old 300 baud modem in the shop, so I figured I'd give this one a shot.
>Now here is the deal: No documentation, and despite my best
>efforts, I cannot make it work at higher than 300 baud! Not with my
>(admittedly ancient, Novation Auto-Cat 212) modem or with a direct
>connect to an IBX box (on campus) capable of up to 9600 baud.  This is
>nuts; it was built in 1984, it simply MUST be capable of faster
>operation, and I am hoping that someone reading this knows
>about this machine and can help me out.
   ...
>interested in disk drives, etc, but I would be intersted in
>discovering if the ROM host terminal mode supports some kind
>of terminal emulation, or if it will allow me to set parity, stop
>bits, etc..

Steve,

I hope this is what you are after.

From the "XEROX 820-II Technical reference Manual", (with original typos ;-)

\begin{verbatim}
1.5   MODES OF OPERATION XEROX 820-II SYSTEM

    There are four Modes of operation, three of which are displayed and
    can be selected at POWER UP:

	1. L - Load System
	2. H - Host Terminal
	3. T - Typerwriter
	4. Command Mode.  There is set a of Commands which are not displayed
	   but can also be selected at POWERUP:

	    1. Display Memory	 D (start address) (end address)
	    2. Modify Memory	 M (address)
	    3. Fill Memory	 F (start address) (end address) (fill data)
	    4. Copy Memory	 C (start addr) (end addr) (destination addr)
	    5. Verify Memory	 V (start addr) (end addr) (verify with addr)
	    6. Goto		 G (address) (HL DE BC registers)
	    7. Input		 I (16-bit port address)
	    8. Output		 O (16-bit port address) (data)
	    9. Read disk sector	 R (drive unit) (track) (sector) (addr)
	   10. Write disk sector W (drive unit) (track) (sector) (addr)
	   11. Printer Protocol  P (Xon/Xoff) (status mask) (status value)

1.5.1   Load System Mode

    The XEROX 820-II uses the CP/M operating system.  CP/M has to be loaded
    into the Xerox 820-II.  The Load System Mode starts the CP/M
    initialization process.  Upon initial load, the CP/M system is brought
    in from disk "A", and the message displayed is:

	Xerox xxK CP/M VER m.m		Where: xx = Memory size
					      m.m = Version Number

    Once CP/M has been initialized, the user can interact with the system
    through the CCP commands entered from the console.  In general, CCP
    addresses one of several disks which are on line.  These disk drives are
    labeled "A", "B", "C", "D", etc.  In order to clearly indicate which
    disk is currently the default disk, the CCP always prompts the operator
    with the disk name followed by the symbol " " indicating that the CCP is
    ready for a command.  In this mode the XEROX 820-II operates as a stand
    alone computer with an infinite variety of applications.

    The command to load from disk is used to read a one-sector program from
    the first sector of the specified disk drive.  The most common use of
    this command will be to load the CP/M disk operating system as shown
    above, though it is not solely restricted to this purpose.  The load
    command accepts one optional parameter to specify from which physical
    disk to load.  If this optioanl parameter is omitted, a load from physical
    drive unit 0 (disk drive "A") will be made.  The parameter may be in
    the range of "A" through "P", which represents the valid disk drive
    designations of CP/M.  Configurations with only floppy disks have valid
    disk drive parameters of "A" through "D".  The normal load from disk
    command for floppy drives will simply be L or LA, to load from drive "A".
    Configurations with rigid disk drive can have valid disk drive parameters
    of "A: through "H".

	Note:  The drive that is loaded from becomes logical drive "A".
	Thus when CP/M is loaded from drive "E" (the LE command), the disk
	will be referenced in CP/M as A: so that the high speed of the
	rigid disk is available for warm starts.

    The disk loader reads the first logical sector into memory at location
    80h and starts execution at that address.  Normally the program will be
    a small loader that in turn reads in a larger program such as CP/M.
    This two level bootstrap process makes the boot command more application
    independent.  The only requirements are that the first sector of the disk
    be reserved for a loader, the first instruction of this load not be
    PUSH HL, and the first 256 bytes of memory not be over written by the
    program being loaded.


1.5.2   Host Terminal Mode

    The XEROX 820-II may be used as a terminal to a Host.  By typing in "H"
    at POWER up the firmware in the XEROX 820-II initializes the software
    in ROM that permits the communication with a Host computer.

	Note: I any changes are to be made to the default settings, they
	      have to entered before or with the "H" command for Host Mode
	      selection.

    When Host Terminal Mode is selected:

1.5.2.1   Default settings

    Channel -	Communications (Port A)
    Baud Rate -	300 Baud
    Data-bits -	Seven
    Parity -	Even
    Stop-bits -	One

1.5.2.2   Options at POWER UP:

1.5.2.2.1   Change Port and Baud Rate:

	Example: HB

	H = Host Mode				Baud Rate Table
	B = Printer Port (Port B)		Hex #	Baud
						00	50
	Example: B7 B				01	75
	         H				02	110
						03	134.5
	B7 B = 1200 Baud, Port B		04	150
	   H = Host Mode			05	300
						06	600
	Example: B7				07	1200
		 H				08	1800
						09	2000
	Default Port A (Communications)		0A	2400
	B7 = 1200 baud				0B	3600
	 H = Host Mode				0C	4800
						0D	7200
						0E	9600
						0F	19200

1.5.2.2.2   Change Parity, Data bits, and Stop bits

    Command Format:		op r	op,r
				op ff	op,ff

				o = Output Command (letter o)
				p = Port
				r = Register
			       ff = Function

    Examples:

    Change from default Parity (even) to Odd or No parity:

    o6 4	o = Output Command, 6 = SIO Port,  4 = Register #4h
    o6 45	o = Output Command, 6 = SIO Port, 45 = Odd Parity Reg 4

    o6 4	o = Output Command, 6 = SIO Port,  4 = Register #4h
    o6 44	o = Output Command, 6 = SIO Port, 44 = No Parity Reg 4

    Change from default data-bits (seven) to eight data-bits:

    Receiver:
    o6 3	o = Output Command, 6 = SIO Port,  3 = Register #3h
    o6 C1	o = Output Command, 6 = SIO Port, C1 = 8-bit data Reg 3h

    Transmit:
    o6 5	o = Output Command, 6 = SIO Port,  5 = Register #5h
    o6 EA	o = Output Command, 6 = SIO Port, EA = 8-bit data Reg 5h

    Change from default stop-bits (one) to two and reset parity:

    o6 4	o = Output Command, 6 = SIO Port,  4 = Register #4h
    o6 4F	o = Output Command, 6 = SIO Port, 4F = Even Parity 8-bit
	
    o6 4	o = Output Command, 6 = SIO Port,  4 = Register #4h
    o6 4D	o = Output Command, 6 = SIO Port, 4D = Odd Parity 8-bit
	
    o6 4	o = Output Command, 6 = SIO Port,  4 = Register #4h
    o6 4C	o = Output Command, 6 = SIO Port, 4C = No Parity 8-bit


1.5.2.3   Command Set

    The Host mode has a command set that can be used by pressing the CTRL key
    and using the NUMERIC PAD keys;

	CTRL +		Meaning

	<uparrow>	Scoll up.  When in Host mode up-arrow scrolls the
			screen up with wrap around.

	<downarrow>	Scroll down.  When in Host mode down-arrow scrolls
			the screen down with wrap around.

	DEL		Enable local echo.  Characters typed on the keyboard
			will be displayed on the screen and transmitted
			through the serial port.  Touching these keys again
			will disable the local echo mode of operation.

	Line Feed	Enable local auto line keed.  When the RETURN key is
			touched, a line feed will also be sent to the local
			screen display but not transmitted through the serial
			port.  Touching these keys again will disable the
			local line feed mode of operation.

	1		Enable remote echo.  Characters received through the
			serial port will be echoed back to the transmitting
			device.  In this mode the XEROX 820-II may act as a
			host to another terminal.  Touching these keys again
			will disable the remote echo mode of operation.

	2		Enable remote auto line feed.  Carriage return
			characters received through the serial port will be
			echoed to the remote device as carriage return and
			line feed codes.  Touching these keys will disable the
			remote auto line feed mode of operation.

	.		Transmit BREAK.  When the control and the period key
			on the numeric keypad are touched, a break condition
			will be enabled on the serial port until:
				1. CTRL+. is touched again
				2. Any other charater is typed.

			"Toggling" the break function is this way allows the
			length of the break condition to be determined by the
			user.  Some host computers require a very short break
			condition, while some communications control devices
			require a long break condition.

	ESC		Exit Host Terminal Mode.

    Note:  In the Host Terminal Mode the Xerox 820-II will respond to the
    special Display Control Codes (Page ##).  These codes are similar to the
    ADM-3A style terminals, with several enhancements for sophisticated
    editing control.


1.5.3   Typewriter Mode

    The software for the Typewriter Mode is contained in the ROM, and any
    information typed on the standard 96-character keyboard will be printed
    immediately.  In this mode nothing will be recorded on the disk.

    To use the Typewriter Mode, at POWER UP select:.

	T   or Tx

	T = Typewriter Mode
	x = Baud Rate (0 through Fh) See chart page #

    Example:
	T	Typewriter Mode (default 1200 Baud)
	T5	Typewriter Mode 300 Baud (from chart page #)


1.5.4   Command Mode
1.5.4.1   Display Memory   D (start address ) (end address)

    The display memory command will display the contents of memory in
    hexadecimal and ASCII representation.  Each display line has the following
    format:

AAAA DD DD DD DD  DD DD DD DD  DD DD DD DD  DD DD DD DD CCCCCCCCCCCCCCCC

    where AAAA is the starting memory address of the line in hexadecimal,
    the DD's are the hex values of the 16 bytes of data starting at location
    AAAA, and the C's are the ASCII characters equivalent to each data byte.
    Bytes with a value less that 20 hex are displayed with their appropriate
    display character code as shown in the display character code table.
    Bytes with a value greater than 7F hex are displayed in low intensity.
    The display memory command accepts zero, one or two address parameters.
    If two addresses are specified, the block of memory between those two
    locations will be displayed.  Entering only one address will display 256
    bytes of memory starting at the specifed location.  Entering 'D' with no
    parameters will display the 256 byte block of memory starting one location
    past the last address displayed by the previous display memory command.


1.5.4.2   Modify Memory   M (address)

    The modify memory command allows the contents of individual memory
    locations to be changed.  This command accepts one parameter representing
    the first memory address to modify or examine.  The display format is:

    AAAA DD

    where AAAA is the current memory address and DD is the hexadecimal value
    of the data in that location.   After displaying the contents of a memory
    location, the routine waits for one of the following parameters to be
    input from the keyboard:

    * Touching the RETURN key will not modify the memory data at the
      currently displayed memory address but will display the contents of the
      next memory address.

    * Typing a minus sign will have a similar effect, except the address is
      decremented instead of incremented.

    * Typing a hexadecimal number will replace the data at the currently
      displayed address with the number entered.  The new data is stored as
      soon as the second digit is entered, with no terminating character
      required.  If only one digit is entered touching the RETURN key will
      cause the single digit hex number to replace the previous data.

    * Typing a quote sign will cause the ASCII value of the next key typed to
      be stored at the currently displayed address.

    * Typing any character other than a RETURN, a minus sign, a quote sign,
      or a hexadecimal digit will terminate the command.
 

1.5.4.3   Fill Memory   F (start addresss) (end address) (fill data)

    The fill command allows blocks of memory to be filled with a fixed data
    value.  Three parameters are required in the command line; a starting
    memory address, an ending address, and a fill data value.  Each location
    in the specified block of memory has the constant written into it and then
    read back again to check for memory errors.  An error line like to one
    described for the 'X' command is printed for any locations that fail to
    verify.

1.5.4.4   Copy Memory   C (start addr) (end addr) (destination addr)

    The copy command allows blocks of data to be moved in memory.  Three
    parameters are required in the command line; a starting memory address,
    an ending address, and a destination address.  The contents of the block
    of memory bounded by the first two addresses is copied to the block
    starting at the third address.  As with the fill command, a test is made
    to verify that each byte of the destination block, when read back, is the
    same as the corresponding byte in the source block.


1.5.4.5  Verify Memory   C (start addr) (end addr) (with addr)

    This command is similar to the copy memory command except that memory
    data is not moved, but simply checked to see if it is the same as data
    that is located at a different address in memory.  Three parameters are
    required; a starting memory address, and ending address, and the first
    address of the memory block to compare with.


1.5.4.6  Goto   G (address) (HL DE BC registers)

    The goto command allows control of the CPU to start executing at a
    particular memory location.  This command requires a single parameter
    from the user representing the address at which to begin execution.  Three
    additional optional parameters may also be specified so that the HL, DE,
    and BC register pairs may be preset before execution begins at the
    specified address.  Each of thes optional parameters is a 16-bit (four
    digit hexadecimal) number.  A command line using the optional parameters
    would be entered as:

    G1000 AAFF DDEE BBCC

    where 1000 is the hexadecimal address at which to begin execution, AA is
    placed in the H register, FF is placed in the L register, DD is placed
    in the D register, EE is loaded into the E register, BB is transfered to
    the B register, and CC is put into the C register.  In addition, FF (the
    value specified for the L register) will also be placed into the A
    register.  Thus, a shorted command line using only a single optional
    parameter would be entered as:

    GF00C 0024


1.5.4.7   Input   I (16-bit port address)

    This command allows data to be read from input ports.  It operated very
    much like the modify memory command, except that input ports are being
    examined instead of memory locations.  A single parameter representing
    a port number is expected in the command line.  Since many of the I/O
    ports of the Xerox 820-II are access using the unique Z-80 I/O
    instructions, the parameter may be a 16-bit port address.  The BC register
    pair is loaded with the parameter, and then an IN A,(C) instruction is
    executed.  An example of the full parameter specification would be:

    IAA55

    where AA represents the contents of the B register, which is placed on the
    high order address lines (A8-A15), and 55 represents the contents of the
    C register, which is placed on the low order address lines (A0-A7).  Using
    only an 8-bit parameter will place a zero in the B register.

    Touching the space bar will input data from the same port address again.
    The contents of adjacent ports can be examined by touching the RETURN key
    or a minus sign as in the 'M' command.  Typing any other key will
    terminate the command.


1.5.4.8   Output   O (16-bit port address) (data)

    The output command allows output ports to be written with a specified
    data value.  Two parameters are required in the command line; a 16-bit
    port address as described for the input command, and an 8-bit data value
    that is to be written to that port.  After outputing the specified data
    to the port, the command returns to BOS instead of stepping to the next
    output port like the input command.  This makes it possible to use the
    output command to initialize Z-80 peripheral devices like the SIO, PIO
    and CTC.  Since a 16-bit port address is specified, special ports such as
    the scroll port register can be modified directly from BOS.  Some of these
    special ports require that their "data" value be placed on the high order
    address lines.  A sample command to alter the scroll port register is:

    O1014 FF

    where 10 represents the contents of the B register which is placed on
    the high order address lines and is the actual "data" that will be
    written to the scroll port register.  The 14 represents the value that is
    placed into the C register and is output as the low order address lines,
    but the data is not looked at by this type of special port.


1.5.4.9   Read disk sector   R (drive unit) (track) (sector) (addr)

    The read disk sector command allows one physical sector to be read from
    the specified disk drive to a designated address in memory.  The drive
    unit is a number between 0 and F hex, with 0 corresponding to the "A"
    drive as described in the load from disk command.

    It should be noted that different disks may not have the same sector size.
    The read sector command will always read one physical sector, no matter
    what its length.  Typically single density disks will have 128 byte
    sectors, and double density disks will have 256 byte sectors.  The sector
    size for rigid disk drives will always be 256 bytes.  Even though one
    physical sector is read, 256 bytes will be displayed after the read.
    Thus, when reading single density disks, only the first 128 bytes of the
    256 bytes displayed on the screen are valid.


1.5.4.10   Write disk sector   W
			       W (drive unit) (track) (sector) (addr)

    The "W" plus carriage return is required with this command before
    parameters will be accepted.  A second "W" plus parameters is then
    required.  The write disk sector command allows one physical sector to
    be written to the specified disk drive from a designated address in
    memory.  The drive unit is a number between 0 and F hex, with 0
    corresponding to the "A" drive as described in the load from disk command.

    It should be noted that different disks may not have the same sector size.
    The write sector command will always write one physical sector, no matter
    what its length.  Typically single density disks will have 128 byte
    sectors, and double density disks will have 256 byte sectors.   The sector
    size for rigid disk drives will always be 256 bytes or larger.


1.5.4.11   Printer Protocol   P (Xon/Xoff) (status mask) (status value)

    The protocol command allows the method used to control the transmission
    of characters to the printer to be altered for different types of serial
    printers.  Normally the Xon/Xoff protocol is enabled to allow efficient
    communications with a Xerox 620 (20CPS) or 630 (40 CPS) printer.  Since
    this is a "transparent" protocol, it will not interfere with printers
    that do not use this method.

    The protocol command requires at least one parameter to enable or disable
    the Xon/Xoff protocol.  P1 enables this protocol, while P0 disables it.

    The second type of protocol is used for printers that control the
    transmission of characters by means of a "reverse channel" or other
    hardware communications signals.  Two signals may be used in the Xerox
    820-II to control the transmission of characters to the printer:

	RTS (Request to Send)		Printer connector Pin 4
	DTR (Data Terminal Ready)	Printer connector Pin 20

    Two parameters are used to specify how these signals will be used for
    "hardware handshaking"; the first designates which signals are to be
    checked, and the second indicates which logical state will be used to
    enable the transmission of data.

    The most commonly used modes are shown below.  The voltage level is
    EIA RS-232 level measured at the printer connector:

	P1 28 28	Check RTS and DTR, pin 4 and 20.  If either changes
			to false (-12), stop transmission.

	P1 8 8		Check DTR, pin 20. If false (-12), stop transmission.

	P1 20 20	Check RTS, pin 4. If false (-12), stop transmission.

    (The following examples show the values for some less common printers
    that indicate transmission show stop with signals of the opposite sense.)

	P1 28 0		Check RTS and DTR, pin 4 and 20.  If either changes
			to true (+12), stop transmission.

	P1 8 0		Check DTR, pin 20. If true (+12), stop transmission.

	P1 20 0		Check RTS, pin 4. If false (-12), stop transmission.

    Note that all the above examples also enable the Xon/Xoff protocol by
    specifying a "1" as the first parameter.

\end{verbatim}

The following is the typos noticed while being typed in:

    In 1.5 , first paragraph,
	'There is set a of Commands'
	    should read
	'There is a set of Commands'

    In 1.5.1, second paragraph,
	'... followed by the symbol " " indicating ...'
	    should read
	'... followed by the symbol ">" indicating ...'

    In 1.5.1, third paragraph,
	'... valid disk drive parameters of "A: through "H".'
	    should read
	'... valid disk drive parameters of "A" through "H".'

    In 1.5.2, second paragraph,
	'Note: I any changes ...'
	    should read
	'Note: If and changes ...'

    In 1.5.2.3, second and third paragraph,
	'<uparrow>' and '<downarrow> were hand draw graphics.

    In 1.5.2.3, last paragraph,
	'special Display Control Codes (Page ##)' should refer to 3.6.1.1

    In 1.5.3, 'chart page #' should refer to 1.5.2.2.1

    In 1.5.4.3, an undocumented 'X' command is refered to.

    In 1.5.4.8, "BOS" is assumed to the POWER UP command intrepreter.


I'm happy with my machine.  It has a white screen and two double
density 8" disk drives.  I've had it less that a year.

Some of the keys are showing some age, has anybody tried to replace the
keyboard on a 820-II?


Jeff Bartlett				jb@rti.rti.org
Center for Digital System Research	mcnc!rti!jb
Research Triangle Institute