610P72384_820 II_Technical_Reference_1984 610P72384 820 II Technical Reference 1984

610P72384_820-II_Technical_Reference_1984 610P72384_820-II_Technical_Reference_1984

User Manual: 610P72384_820-II_Technical_Reference_1984

Open the PDF directly: View PDF PDF.
Page Count: 340

Download610P72384_820-II_Technical_Reference_1984 610P72384 820-II Technical Reference 1984
Open PDF In BrowserView PDF
TECHNICAL REFERENCE MANUAL

Xerox Professional Computer

1984 Xerox Corporation'.

610P72384

Reprint permission granted by Zilog, Inc . forZiiog Reprint on pages 49-108.
Reprint permission granted by ShugartAsso'iat~$ fp.r,~A 14030 Controller Reprint on pages
"

~

iv.·

-

.

,.' . _ .

•

253-278.
Reprint permission granted bYVVest~rn 'plglt,ill for .WesternOigltal Reprint on pages 279302.
ZlIog,

Z80~,

and Z80-A are trademarks of Zllog, Inc., WIth whom the publisher

associated.
6086 is a trademark of Intel Corporation.
IBM, IBM PC, and IBM PCXT are trademarks of International Business Machines.
Xerox~,

820'·,820-11'·, and 1618· are trademarks of Xerox Corporation.
M

CPIM<», CP/Mw-80, and CPIM-86~ are registered tr~~e,marks of Digital Research, Inc ..
MS

1M

is a trademark of Microsoft Corporation.

IS

not

WARNING:
This equipment has been certified to comply with the limits for a Class B
computing device, pursuant to Subpart J of part 15 of FCC Rules. Only peripherals
(computer input/output devices, terminals, printers. etc.) certified to comply with the Class
B limits may be attached to this computer. Operating with non-certified peripherals is
likely to result in interference to radio and TV rece~tion.
WARNING:
This ,eqUipment generates and uses radio frequency energy and if not
installed and used /properly, that is. in strict accordance with the manufacturer's
IIlstructions, may cause interference to radio and televiSion reception. It has been type
tested and found to comply with the limits for a Class Bcomputing device in accordance
with the specifications

III

Subpart J of part 15 of FCC Rules. which are designed to provide

reasonable protection against such interference in a residential installation. However.
there is no guarantee that interference will not occur in a particular installation. If this
equipment does cause interference to radiO or television reception. which can be
determined by turning 'the equipment off and on, the user is encouraged to try to correct
the interference by one or more of the following measures:
Reorient the receiVing antenna.
Relocate the computer With respect to the receiver.
Move the computer away from the receiver.
Plug the computer into a different outlet so that computer and receiver are on
different branch cirCUits.
If necessary. the user should

co~sult the' dealEi'f.ior·an:eiq~·etlenced radio/television

technician for additional suggestions. The user may find the following booklet prepared
by the Federal Communications Commission helpful. This booklet is available from the U.S.
GOVERNMENT PRINTING OffiCE, WASHINGTON.:D~C. -20402, STOCK NO. 004-000-00345-4.
"HOW TO IDENTIFY AND RESOLVE RADIO-TV'PROBLEMS"

Xerox Corporation reserves the fI~ht to make improvements to products without inculClng
any obligation to incorporate such improvements in,Products previously sold.

THIS PAGE INTENTIONALLY BLANK.

Table of Contents
Introduction
Introduction & Miscellaneous Information
• Hardware Description
• Configurations and Product Codes
• Functional Description
• Hardware Interface
• Operating Systems:
CP/M-80
CP/M-86
MS-DOS

2
3,4
4,5
5,6
6-9
9,10
10,11

Hardware
Miscellaneous Hardware Information
• Dimensions
• Electrical Requirements
• Operating E'nvironment
• Di-sk Drive Storage
• Disk Drive Format
• Display Specification, Functional Description,
and General Information
• System Bus Expansion Slot - Electrical &
Environmental Requirements
• Hardware Interface - Connectors:
J1 (Disk), J2 (Keyboard), J3 (Printer), J4 (Comm)
J1 Illustration
J8111ustration
J5, J6 (Power Supplies), J7 (Video Connector)
J8 (Parallel Connector)
Parallel Connector Illustration
J9 (COMM Port Strapping Options)
J9 (COMM Port Strapping Options),(Etch 2 CPU)
J13 (System Bus)
J12 (Disk Access)
J1 (Floppy Disk)
J1 (Rigid Disk)

13
13
13
14

14

15- 1 7
18

19
20
21
22

23
24

25
26
27-32
33-37
38
39

Hardware continued
Theory of Operation
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

CPU
ROM and RAM Memory
6 - 8k ROM Memory
64k RAM
Counter Timer Circuit
Serial 1/0 Controller
Serial 1/0 Ports
Parallel 1/0 Controller
Parallel Port
CRT Controller
CRT RAM Memory Allocation
Scroll Register
.
Speaker
Disk Drive Daughter Board
Rigid Disk Drive Caution
System Bus
Keyboard Interface

Zilog Reprint (510, PIO, CTC, & CPU Data sheets) .
Schematics:
#1 Etch
#2 Etch
#3 Etch
#4 Etch
#5
#6
#7
#8
#9
#10
# 11
#12

#13
#14
# 15
# 16

1 CPU
1 CPU
1 CPU
1 CPU

- Power Distribution
- CRT Controller
- CRT Controller
- U16, U26, U28, U32, U37-U41. U54,
U57, U58
Etch 1 CPU - U41, U54-U58, U66-U73
. Etch 1 CPU· RAM
Etch 1 CPU - CTC
Etch 1 CPU - GP, PIO, 510
Etch 2 CPU - Power Distribution
Etch 2 CPU - CRT Controller
Etch 2 CPU - CRT Controller
Etch 2 CPU - U16, U26, U28, U32, U37-U41, U54,
US7, U58
Etch 2 CPU - U41, U54-U58, U66-U73
Etch 2 CPU - RAM
Etch 2 CPU - CTC, Keyboard, PIO
Etch 2 CPU - GP, PIO, 510

41
41
42
42
42
42
42,43
43
43
43,44
45
46
47
47
47
48
48
49-108

109
110
11 1
112
113
114
115
116
117
118
119
120
121
122
123
124

Hardware continued
# 17
# 18
# 19
#20
#21
#22
#23
#24

Floppy Controller - Power Distribution
Floppy Controller
Rigid Controller
8086 Processor - Power Distribution & Connectors
8086 Processor- U21-U24, U29-U32
"8086 Processor - U27, U33-U42
8086 Processor - U 1-U 16, U 18-U20, U25, U26,"U28
Memory Expansion PWB - 8086

125
126

127
128
129
130
131
132

Software
Device Initialization
• How the ROM works
Counter Timer Circuit
System PIO Controller
General Purpose PIO Controller
510 Controller
Channels A & B Baud Rate Generator
• Monitor Commands - Summary Table
Display Memory, Modify Memory
Xtended Memory, Fiil Memory
Copy Memory, Verify Memory Block, GoTo
Input, Output
Load From Disk
Read Disk Sector, Write Disk Sector
Baud Rate, Typewriter, Host Terminal Mode
Host Terminal Options
. Host Terminal Command Set
Protocol
Operating System Interface
• Accessing BIOS
• Logical/Physical Device Mapping
• I/O Port Assignments
• ROM Oper"ating System Interface"~
• CRT Entries
• Execute Physical Drive"r Entries
• Printer Entries
• Communications Entries

133,134
134
134
135
135
136
137
138,139
139
140,141
141,142
142
143
144
145,146
141,148
148,149

151,152
153-155

156,157
158
158-160
161,162
163,164
165

Software continued
• Keyboard Entries
• 10BYTE Directed I/O
• Programmable Functions
Sample Code,Sequence
• Miscellaneous Functions - Cold, Warm, Getsel,
Day tim, Config, Start Screen Print
CRT Control & Interface
• Modes of Operation
• Text Character Set
• Graphics Character Set
• Display Manipulation
• Control Sequences
• Escape Sequences

.166
167-169
17-0-176
177-179
177-182

183
184
185
186
186-188
189-193

Peripherals
Keyboards
• ASCII
• Low Profile (LPK)

195-199
200-206

Disk Drive Specifications

207-212

Disk Parameter Headers

213-218

Disk Formats

219-226

20 & 40 CPS Printers
•
•
•
•
•
•
•
•
•
•

20 CPS Operating Switches
20 CPS Command Codes
20 CPS Command/Control/Hex Code Chart
20 CPS Specifications
20 CPS Cabling Requirements
40 CPS - HPR05 Board
40 CPS Operating Switches
40 CPS Command Codes
40 CPS Command/Control/Hex Code Chart
40 CPS Electrical Interface

227-230
231-233
234
235,236
236
237
238-240
242-244
245
246-250

Peripherals continued

•

40 CPS Specifications
• 40 CPS Cabling Requirements

251-252
252

SA1403D Manual Reprint

253-278

Western Digital Reprint

279-302

Appendices
A. BIOS Entry Vector Table

A1-~6

B.

B 1-B2

Monitor Entry Vector Table

C. Documented System Storage & Structures
•
•
•
•
•

Z80-A Mode 2 Interrupt Vectors
Keyboard Interface
Logical to Physical Drive Mapping Table
Physical Driver Address Table & Request Block
Time-ot-Day and Timer Variables

D. Program Samples
• How to make Monitor Calls with BASIC
• Bank Program & Switching
E.

ROM Listings
• (BIOS

Cl, C2
C1
C2
C3
C4
I

D1-D3
D4
E1-E110
E7-E 12

F. Macros & Symbols

FI-F24

G.

G1-G6

Cold Start Loader

H. BIOS Jump Table

H1-H18

I.

Banked Physici;11 Driver

11-112

J.

Position-Encoded Keyboard Handler

J1-138

Introduction
The purpose of this manual is to provide technical reference material for
the Xerox 820-11 and 16/8 Professional Computers for programmers and
engineers involved in hardware, software, and interface design. It is also
intended for interested persons who have a desire to know how the
Xerox 820-11 and 16/8 operate and how to access their many features.
A list of the abbreviations·and naming conventions used in this manual
can be found in Apper:'dix N.

SYSTEM OVERVIEW

The modular design of the 820-11 and 16/8 systems enhance the flexibility
provided by the operating systems. The combination of.operations
provided by the system gives it a flexibility that allows it to be tailored to
the needs of each user.

Introduction

Appendices continued
1<.
L.

M.

N.

Code Charts
• Baud Rates
• Decimal to ASCII to Hex
Additional References
Contacts/reference:
• Diablo
• Digital Research
• Microsoft
• Shugart
Abbreviations

Kl
K2
L l-L2
Ml-M2

Nl-N2

Overview of Xerox Personal Computers
Xerox Personal Computers are comprised of four components:'
display/processor, disk drives, keyboard, and optional printers. Both the
820-11 and 16/8 use the CP/M(!)-80 2.2 Operating System from Digital
Research,lnc. Additionally, the 16/8 PC includes CP/M-86® 1.land MS '''DOS Version 2.0 as standard operating systems.
HARDWARE DESCRIPTION
System Board
The system board uses a Zilog Z80-A(!)-based microprocessor operating on
a 4 megahertz clock with 64k RAM and 8k ROM. It is a single-board
computer and uses a daughter board to interface with the disk drives.
The 820-11 is equipped with three user-accessible 1/0 ports. Twa of the
ports are located on the back of the display/processor; the third is
located on the CPU board. On the back are the printer and the
communications ports (both RS232C). The port inside the display is a
dual parallel port (most printers and other devices that follow a sta'ndard
Centronics 36-pin interface can be successfully attached).
The 16/8 has all of the above features as well as an Intel 80861~-based
microprocessor operating with a 4.772 megahertz clock. The 8086 is
equipped with 128k of RAM which is expandable to 256k total by
addi ng a 128k daughter board to the 8086 board.
The 820-11 and 16/8 are capable of having up to 8k of read only memory
(four 2k ROMs): the 820-11 has 6k 9f this 8k occupied; the 16/8 uses the
full SK. The last 2k on the 16/S is used for decoding the position-encoded
Low Profile Keyboard. The firmware contained in the ROM is capable of
doing such things as executing a one-sector loader from disk; i.e.,
loading CP/M, emulating a terminal, operating in typewriter mode, etc.
The monitor also has other commands that are useful for debugging
hardware and software. The mother board also contains a speaker as
well as an expansion slot (used by the 16/8 for the 8086 board). Ther~ are
two types of daughter boards: one interfaces the display/processor to
floppy disks and the other interfaces the display/processor to a rigid disk
controller.

2

Introduction

Display
The display/processor houses the video display, the CPU mother board,
the disk drive daughter board, and the 8086 processor board if so
configured. The video display is a standard 241ine by 80 characters. It
uses a 7 x 10 dot matrix for each character in all text modes and displays
white characters on a black screen. For graphics characters, it uses a 4 x 4
pixel resolution. The display attributes can be changed to display either
in blink, highlightllowlight, inverse, or graphics characters.
820-11 Display/processor for floppy disks
820-11 Display/processor for rigid disk
16/8 Display/processor for floppy disks
16/8 Display/processor for rigid disk

Product Code
Product Code
Product Code
Product Code

#U03
HUOS
#H69
#H70

Keyboards
The 820-11 and 16/8 use either a standard 96-character ASCII or Low
Profile keyboards. Both keyboards include additional keys to the right
of the keyboard, a 10-key numeric key pad and a set of keys for software
control of the cursor. The low profile keyboard also includes 12 function
keys that can be software-enabled and other keys such as Accept,
Delete, Next, Previous, Home, and Undo ..
ASCII Keyboard
Low Profile Keyboard

Product Code #X928
Product Code #G2S

Disk Drives
Five disk drive options are offered for the 820-11:
Dual Sf" single-sided floppy disk drives
Product
Dual St" double-sided floppy disk drives Product
Dual 8" single-sided floppy disk drives
Product
Duat' 8" double-sided floppy disk drives
Product
One 10mb rigid disk drive with
Product
an 8" double-sided disk drive

Code
Code
Code
Code
Code

#X929
#T66
#X973
#F10
#U07

Three disk drive options are offered for the 16/8:
Dual 8" single sided floppy disk drives
Product Code #X973 .
Dual 8" double sided floppy disk drives
Product Code #F10
One 10mb rigid disk drive with
Product Code #U07
an 8" double sided disk drive

Printers
40 CPS Printer and 20 CPS Printer
As their names imply, the printers have a printing speed of 20 and 40
characters per second (CPS) respectfully. Both printers have a wide range
of print styles available. The 20 CPS Printer supports 10, 12, and 15 pitch
as well as Proportional Spacing (PS), while the 40 CPS Printer supports
either metal or plasticprintwheels in 10, 12, 1S, and PS. More detailed
information on these printers can be found in the Printer section under
Peripherals.
The standard RS232C printer connector and dual parallel port are
available to·interface with many types of serial and parallel printers.
40 CPS Printer
20 CPS Printer

Product Code # 080
Product Code # UOl

FUNCTIONAL DESCRIPTION
The 820-11 and 16/8 systems are a collection of four components working
in unison -- the display, keyboard, disk drives, and printer. The
computer itself is housed in the display.
System Monitor· ROM
The system monitor contained withiri the 8k ROM controls the essential
functions of initializing and controlling all system input/output
resources, and also provides a number of monitor commands that cao
be used to assist in, programming.
.
Ports
Three ports are standard on the 820-11 and 16/8: two serial ports located
at the back of the display unit and an additional dual parallel port inside
the di'splay unit. These allow printers, communication devices, and
other peripheral equipment to be interfaced with the system.
Operating Systems
The 820-11 uses Digital Research's 2.2 CP/M-80 Operating System. The
16/8 can use Digital Research's 2.2 CP/M Operating System, as well as
their CP/M-86 1.1 Operating System and Microsoft's MS-DOS 2.0
Operating System. These operating systems provide the user with a
general environment for program construction, storage, and editing,
along with assembly and program checkout facilities.
Introduction

CP/M-80 operating system software as implemented on the 820-11 and
the 1618 is logically divided into four parts:
ROSR
BIOS
BOOS
CCP

ROM Operating System Routines (hardware dependent)
Basic 1/0 System (hardware dependent)Basic Disk Operating System*
Console Command Processor*

*Oisk resident portions of CP/M-80
ROSR provides code in ROM that can be executed without th~\ presence
of the CPIM system disk and provides the primitive operations necessary
to access the disk drives and to interface with peripherals.
BIOS provides the interface between BOOS and ROSR.
BOOS provides disk management by controlling one or more disk drives
containing independent file directories.
CCP provides symbolic interface between the user's console and the
remainder of the CPIM system.

HARDWARE INTERFACE

The 820-11 and 16/8 are equipped with six input/output connectors. Four
are on the back of the display unit and two are inside the display.
Disk Drive
Used for connection of either the 8" or the 5t" Dual Floppy Drives, or
the 8" Rigid Disk Drive. This is determined by the type of disk daughter
board installed in the display processor.
Keyboard
Used for connection of either the ASCII or Low Profile keyboard.
Printer
A serial printer can be attached to this RS-232-C connector.

COMM
COMM is a second RS-232-C connector and can be used for a modem.

5

Parallel Port
A dual parallel port inside the display cabinet is also provided.
Expansion Slot
The expansion slot inside the display cabinet provides all of the Z80-A
microprocessor control signals for connection to custom devices for
future expansion. This slot is used for the 8086 co-processor if you have
a 16/8.

CP/M-SO
The CP/M-80 2.2-C disk for the 820-11 contains the standard Digital
Research software development and checkout programs. Xerox issues
additional utility programs that are unique to the 820-11. A description of
each program is listed below:
Digital Research Files
ASM.COM
The Assembler allows you to create a program
which can be read and executed by the 820-11.
DDT.COM
The Dynamic Debugging Tool is used to debug a
Z80-A assembly language program.
Allows binary command files that are not displayed
DUMP.COM
on screen to be displayed showing the hexadecimal
value for each byte.
ED.COM
A line-oriented screen editor.
LSO.COM
Reads an .REL file created with the Macro-80
Assembler Program and outputs a command file.
LOAD.COM
Reads a .HEX file and creates a command file.
M80.COM
Converts a program written in Assembly Language
to a relocatable (.REL) file and (optionally) a printer
listing file (.PRN).
MOVCPM.COM
Lets you modify and move the CP/M system image to
allocate a specific lesser memory size.
PIP.COM
Allows you to selectively copy a file or files from one
disk to another or on the same disk.
STAT.COM
The status utility is a frequently-used transient
command for all system housekeeping; i.e.,
checking the amount of space available on a disk.
SUBMIT.COryl
Used to submit afile of commands for batch
processing.

Introduction

SYSGEN.COM
XSUB.COM

Xerox Files
BACKUP.COM

CONFIGUR.COM

IntrArI"rtinn

Used to generate a CP/M-80 system image and copy
the operating system to another disk.
Same as Submit.com, but has the facility to include
line input to programs as well as the console
command processor.

A multi-option utility that allows you to archive and
retrieve files, delete files, list directories.of any
drive, and to verify data integrity of a floppy or rigid
disk.
Using Configur.com, you can select seven different
options:
1. Record Restart Command - lets you enter a oneline command which will automatkally load a
program .. For example, you could enter DIR a~
the restart command and every time you boot
the system, it will automatically display the
directory for you. Or you could enter the name
of your application software package and it
would automatically load that application
package for you. This command is recorded on
the disk and you can have a·different one for
each disk.
2. Select Printer Port Options - allows you to
determine printer protocol. This option allows
configuration for alternate printers without
modifying the BIOS.
3. Select Communications Port Options - a
convenient method for setting up the
communications port on the 820-11 or 16/8; that
is, baud rate, protocol, stop bits,.etc.
4. Select I/O Device Assignments - lets you select
alternative inputJoutput device assignments;
i.e., set up the system so that everything
displayed on the screen automatically prints on
the printer.
5. Select Keyboard Data Format -lets you choose
7-bit or 8-bit mode for the keyboard.
6. Select Screen Attributes - includes blink, inverse
video, highlightJlowlight, and graphics modes.
7

7.

COPY.COM
FMT.COM

HELP.COM

INIT.COM

KILLESC.COM

SET.COM·
SWAP.COM

TiME.COM

WHATSA.~OM

R

If you have a floppy disk system, Select Floppy
Disk Head Step Rate will appear as selection 7. If
you have a rigid disk system, Configure Rigid
Disk will appear (program must be loaded from
floppy or the first partition of the rigid).
a.
Select Floppy Disk Head Step Rate -lets you
adjust the floppy head step rale for
optimum performance.
b.
Configure Rigid Disk -lets you divide the
eight megabyte rigid disk into sections
(e.g., 4 Mb, 2 Mb, 1 Mb, 1 Mb).
Makes an exact copy of a disk, track for track.
Allows you to format (initialize) a rigid disk.
Verification of the rigid disk is performed using the
Backup.com utility.
.
A guide for CP/M-SO users that contains basic
information about CP/M-SO commands; also c(ossreferences to additional information in the CP/M-SO
reference manual, Reorder #9RS044S.
Prep~res new (or used) disks for storing
information. It will also alert the user to any flawed
sectors on the disk.
Turns offthe +  feature to enable
use of  +  for other purposes; for
example, setting margins and tabs on a 40 CPS
printer uSeS a  +  sequence.
A convenient method to temporarily change
communication and printer port options in RAM.
A utility that allows the user to swap drive names.
For example, "A" and "E" for a rigid disk drive. By
designating an alternate drive as the" A" drive, you
can load software directly from that drive. Many
CP/M-SO application packages have been written to
be executed from the "A" disk drive only. Using
Swap. com allows you to place your application
software on any disk drive and load.
Displays the time and date on screen. Since there is
no battery backup, however, you must re-enter the
time and date each time you reload the system.
This utility lists the logical and physical names for
each disk drive, as well as the density, number of

Introduction

sides, and types of disks logged into the system,
(e.g., double density, single-sided 8" floppy).

CP/M-86
The CP/M-80 2.2 and CP/M-86 1.1-F disks for the 16/8 contain the
standard Digital Research software development and checkout
programs. These disks contain the same files as described in the CP/M-SO
section as well as the following files.

Digital Research Files
ASM86.CMD
DDT86.CMD
ED.CMD
GENCMD.CMD
GENCMD.COM
GENDEF.CMD

GENDEF.COM

HELP.CMD

LMCMD.CMD

LMCMD.COM

PIP.CMD

1_ .. __

...J •• ,...+i_ro\

The Assembler allows you to create a program
which can be read and executed by the 8086.
The Dynamic Debugging Tool is used to debug a
8086 assembly language program.
A line-oriented screen editor.
Uses the hex output of ASM-86 and other language
processors to produce a .CMDfile.
Uses the hex output of ASM-86 an"d other language
processors to produce a .COM file.
Reads a 16-bit file containing the disk definition
statements, and produces a 16-bit output file
containing assembly language statements which
define the tables necessary to support a particular
drive configuration.
"
Reads a 16-bit file containing the disk definition
statements, and produces an 8-bit output file
containing assembly language statements which
define the tables necessary to support a particular
drive configuration.
Provides summarized information for all of the
CP/M-86 commands described in the Digital
Research Users manual.
Operates in exactly the same manner CIS
Gencmd.cmd, except Lmcmd also accepts an Intel Lmodule file as input.
"
Operates in exactly the same manner as
Gencmd.com except Lmcmd also accepts an Intel Lmodule file as input.
Allows you to selectively copy a file or files from one
disk to another or on the same disk.

STAT.CMD

SUBMIT.CMD
TOD.CMD

Xerox Files
CPM86.COM
86CON.COM
GOBACK.CMD
LOAD86.COM
REBOOT.COM
SOFTKEYS.COM

The status utility is a frequently-used transient
command for all system housekeeping, i.e.,
checking the amount of space available on a disk.
Used to submit a file of commands for batch
processing.
Time of day.

Used by Load86.com to boot the 8086.
Switches from Z80-A console to the 8086 console.
Switches from 8086 console to the Z80-A console.
Loads the 8086 for concurrent processing.
From the concurrent mode, reboots the system as a
Z80-A standalone.
Used to set up the lO-key pad with programmable
functions ( < CTRL > + one of the 10-key pad keys).

MS-DOS
The MS-DOS 2.0 disk for the 16/8 contains the standard Microsoft
software development and checkout programs.
Microsoft Files
ANSI.SYS
COMMAND.COM

CONFIG.SYS
CHKDSK.COM
CREF.EXE
DEBUG.COM
DISKCOPY.tOM
EDLlN.COM
EXE2BIN.EXE
FC.EXE
FIND.EXE
FORMAT.COM
L1NK.EXE :
MORE.COM
10

Allows programs that use the standard ANSI driver
to be executed.
This is the MS-DOS command processor. It is
recommended that this file be placed on every
application program disk.
Configures system at boot.
Checks disk.
Assists in debugging assembly language programs.
Debugger supplied with MS-DOS.
Copies a disk.
Line-oriented screen editor.
Converts .EXE files to binary format.
Compares two files for similarity.
Finds a string in a list of files or standard input.
Formats an 8" floppy or a rigid disk.
Linker.
Used to display text in 23-line segments.

Introduction

MASM.EXE
PRINT.COM
RDCPM.COM
RECOVER. COM
SORT.EXE

Xerox Files
SAMPLE.TXT

Macro Assembler for MS-DOS.
Print spooler.
Reads a CP/M-80 file and converts data to MS-DOSreadable file:,
Recovers bad or damaged disks.
Used to sort text.

Provided to assist going through MS-DOS'
Handbook.

11

Notes

12

Introduction

Sped fications
This section details the following specifications: dimensions., electrical
requirements, operating environment, and disk drive capacities of the
Xerox 820-11 and 16/8 PCs.

Dimensions
Equipment
820-11-16/8 Display
ASCII keyboard
Low profile keyboard
S·t" Floppy disk drives
8" floppy disk drives
8" Rigid disk drive
40 CPS printer
20 CPS printer

Height
12.20"
3.75"
1.60"
7.00"
10.50"
10.50"
10.00"
9.25"

Depth
14.75"
9.50"
8.25"
10.20"
17.50"
17.50"
17.50"
n.50"

Width
15.00"
20.00"
19.90"
7.00"
14.50"
15.50"
15.50"
24.00"

Weight
301bs.
101bs.
Sibs.
101bs.
481bs.
S4lbs.
561bs.
451bs.

Electrical Requirements
All Xerox products listed below require voltage of 115 VAC, a frequency
of 60 Hz, and a two-pole, three-wire grounded duplex receptical.

Equipment
820-11-16/8 Display

8" floppy disk drives
8" Rigid disk drive
40 CPS printer
20 CPS printer

Current
1.1 Amps
2.0 Amps
2.2 Amps
2.0 Amps
1.0 Amp

Operating Environment
All Xerox equipment is tested to perform between 50 and
90 degrees fahrenheit with a relative humidity factor between
20% and 80%.
.

. l\/licr.c.lI::>n<>AIlC l-j"lrrlW'lrp

Information

Disk Drive Storage
5i" SS/SD
5i" SS/DD
5i" DS/SD
5i" DS/DD
8" SS/SD
8" SS/DD
8" DS/SD
8" DS/DD
8" Rigid (DS/DD)

Unformatted
125 k
250 k
250 k
500 k
400k
800k
800k
1.6Mb
10.67 Mb

Disk Drive Format
Equipment
Si" SS/SD
5i" SS/DD*
5t" DS/SD
5i" DS/DD*
8" SS/SS
8" SS/DD**
8" DS/SD
S" DS/DD**
8" Rigid DS/DD

Tracks
40
40
80
)
80
77
77
1S4
154
1,024

Sectors
18
17
18
17
26
26
26
26
32

Formatted
90k
168 k
180 k
338k
250 k"
497 k
500k
997 k
8.4Mb

Bytes
per
Sector
128
256
128
256
128
256
128
256
256

Usable
81 k
155 k
172 k
322 k
241 k
482 k
490 k
980 k
8.192 Mb

Number
of
Heads
1
1
2
2
1
1
2
2
4

*Track 0 of 5i" double density disks has 18 sectors of 128 bytes.
**Track 0 of 8" double density disks has 26 sectors of 128 bytes.

For more specific information on disk formats, see the Disk Drive
Specifications section.

1A

Miscellaneous Hardware Information

DISPlA V SPECIFICATION
SIZE:
TYPE:

RESOLUTION:

CHARACTER CELL:
BUSINESS GRAPHICS:
CHARACTER SET:

CHARACTER LINES:
CHARACTERS/LINE:
VOLTAGE:
RIPPLE:
VIDEO BIT RATE:
BITS/HORZ LINE:
HORZ SYNC PULSE:
TOTAL BITS/LINE:
HORZ RATE:
LINES/FIELD:
VERT BLANKING LINES:
VERT SYNC PULSE:
VERT RETRACE (lines):
TOTAL LINES/FIELD:
FIELD RATE:
REFRESH RATE:
VIDEO RATE:

""':- __ I ..... _""I>_f."

11 ..... ,..J •• 4"' .. ,...

12 inch, landscape mode
Aluminized
P4
FI uorescence
White (W)
Phosphorescence White (W)
Persistence
Short
• 240 active line raster adjusted to 8.5 x 5.3
inch usable area
• Brightness level 30 (± 2) foot-Iamberts
• Resolution at centers (within 1" diameter
circle) -100 lines/inch minimum
7xl0
4x4 Pixel Resolution
4 sets of 128:
(1 U.S. font, 1 Graphics
font) (1 U.S. font, Inverse
Video font)
24
80
+ 12(± 5.0%)VDCat2.0ADCmaximum
50 MV Pop synchronous or nonsynchronous
with refresh or power frequency.
10.694 MBPS
(93.51 nanoseconqs)
560
126
(11.78 microseconds)
686
15.59 KHz
(64.14 microseconds)
240
20
20(1.28 milliseconds)
8TYP
260
59.95 Hz
(16.68 milliseconds)
61 Hz
15 MHz

l_f"' .. r'Y'I_:'\tinn

11\

FUNCTIONAL DESCRIPTION, XEROX DISPLAY

The display has the following functional characteristics:
•
•
•
•
•

•

241ine display
80 characters per line
7x 10 dot matrix per character
White characters on black
Software-selectible character attributes
Inverse Video
Blink
Low Intensity
Graphics with 4 x 4 pixel resolution
Brightness adjust

DISPLA V CONTROLLER

The Display Controller is based 'on displaying characters within a 7x10 cell
(7 dots horizontally by 10 scan lines vertically). To guarantee spaces
between characters, one dot on each side of the cell is blanked by
hardware. Also, to guarantee spaces between character lines, the top
two scan lines are blanked by hardware. This gives an actual active
character size of 5 dots horizontally by 8 scan lines vertically.
For Business Graphic~, the hardware is configured to eliminate the
automatic blanking and allow continuous lines both horizontally and
vertically. However, the Display Controller is still based on displaying a
character within a 7 x 10 cell. The controller design and available refresh
memory allows one byte per character. The maximum number of unique
characters that can be defined by any 8 bits is 256. Since the standard
text font set contains 128 characters, the Ii mit on unique characters for
graphics that can be displayed together with text is 128.
The character set for Business Graphics divides the cell intq blocks of 4
dots horizontally by 4 scan lines vertically. Since the total number of scan
lines per character is 10, the character set actually consists of two sub-sets
of 4-4-2 and 2-4-4.
Each subset divides the cell into 6 parts requiring 64 possible
combinations or unique characters. Therefore, the total number of
unique characters forthe complete grap/:1ics set is 128. With this
16

Miscellaneous Hardware Information

character set, any combination of adjacent 4 x 4 blocks can be chosen.
Also, at the character cell boundary, the 4 x 4 blocks can be set vertically
by 2 scan lines. Since the total number of horizontal dots per cell is 7,
there will be an overlap of one horizontal dot in the center of the cell for
diagonal blocks within the cell.
It should be also noted that for the standard text font containing 128
unique characters defined by 7 bits, the eighth bit is used to set the
attribute function. For Business Graphics. since both text characters and
graphic characters can be displayed simultaneously, it requires all 8 bits
to define the character. Consequently, display attributes are not
available in graphics mode.

1\11 i Io:rI'!ll i;;=:.o-..,.,~,{:sz~;:~
JrO".Dr".JlS~

.",.......~:

=

~

iBr

~

~

. :llili

~

~

.~

-~

~

=

~
~

~

liUli

~
~
~
~~

~

. .
~ m
---.0
.N

Z

-.

•

--0

=<16
[

==-=--:= --

..

o

VI
,....

:::r
til

3

CI

~.
,....
VI

[........

r--

,

... -~

',-

,Jt

.

pU

.=0. ......

--

·· .
....

.
~~
. 1-<
~

·_UUr,J

'fCi"L_I~'lttJ

I

J,;;:.'

•

~I"--

-

~

Ny

"J ..

I

~.

~-.

- .
..
:l~
:::
.......... -

r:"":I

-.... -......

.... .
;-

-:i;-

.. ~
--. tk"'~.~
.-, .
CII

_

• •,

......,.. [D....!...---------.:...----~.~:_t__:'~;p.'---_I_...:=--~
~ . . . .-1
...--'......'-!!!!I'" .... ~

.~.-~ G@~r.B~----------------------------------JL------------_r~~~

~6~C~~~~L-----------------~------------------~--------~~~~

VI

f'\

::r
II>

3
~.
f'\

II'

V\
,...

::r
ttl

3

OJ

,...~.
'"

""
.u

...,...
" ..
IA-S-

orr.

iiill
"".lI".c.-,1.!~~·-"'-'

I.U-'

_ _ _ _ _-B:

.... *'

..............
... I'"

.n-flt

"109

all

-It
PI"

.0-101.
~

...

M!!2

~.'$

--

~"f1

J'"

::!.~D7 : ::::

...,

".,
.!!t • • -1

£De . . . .

+rf""'"-o
.............
..,.,

...·..c.;!CII'''''_-=-I • .."c-c,
.....,...-,_.... _

~.\o .......... ~

,-..r51. .......
. . . .~.o,c!.

...,

• .... ·IC·•• ft •

...,·1' .• ·.•:...

:

..! .•I''''''':X>':-;'.'A~!

~~~2:~I.;~~~i'

u

..

u:::.·,r.J7·"i ••,.
~'U •• ~ •••

...V"v"_...

:.:~

-.....,'--I---------.....L---'."'
__________ .. ~
__.."."

IIJ1'I,JD'

lAIr

,.,

ell

-

_-_.

~~_~~

.....

_.~..cC_"_5
~,.

~

r~

u.:.S ••t

•

....

,-.

...• "'!!!!-r--+_.L._-+--..l..--t---I

~.~~.""U._
u!,.. .... I"'.r.

...

.-

:;:.~

-=~

.,

...----..J

, __, ' - : ;
IC ... ".~..:'I#._ ...

~:..==3

~.

...

.III·"_U
~ ,JI,·tU
-~

.......

Jl1.",r
~.~,

~

E>::;r::;~~~~,:;;'...~~~
N7":'~'" MJWe._~

"

",

u

'",

"

.&

•

..,w_--..crlnulIOI.lt

"l1l..Sot:

:!Gr
~

-.,j

i~J

SMIII ...,. .. ,

~

~

lSli

~

~ ~

~

~
~

~
~

~

'.

4>'7

.2!..!.!!I..L

fu

.lI/..I.a

~
~
~
~c

~
~

~4

••·... IEl......+----!.·.!I :". )

ou

'"

. .1 .... 1'·'

[Dr""'''----

............ I£DI-'mm"'·=·---

--I---t-1~I'----------.J

IV

o

...

10,."

__ ,-.c;",'W'-T"--

- -I
-_~'_;~~i:¥=:¥gl'l

Specifications
Print Speed:

Up to 40 characters per second with metalized
pri ntwheels.

Character Set:

88, 92, or 96 printable characters per printwheel.
Switch-selectable program support for APL and
all English language printwheels.

Printwheels:

88, 92, 96 character Xerox - Metal
96 character Diablo - Plastic

Character Spacing:

la-pitch 10 characters/inch (3.94 ch/cm)
12-pitch = 12 characters/inch (4.72" chiem)
15-pitch 15 characters/inch (5.91 chiem)
Proportional Space (PS) - see HMI, page 241.

Column Spacing:

1/120 inch (.21mm) minimum.

Print Line:.

13.2 inches (33S.3mm)
132 columns la-pitch
158 columns 12-pitch
198 columns 15-pitch

Print Buffer:

2688 bytes.

Paper Width:

16.53 inches (419.9mm) maximum
- friction feed without Top Paper Out switch.
16.00 inches (406.4mm) maximum
- friction feed with Top Paper Out switch.
15.25 inches (387.4mm) maximum
- full width with optional forms tractor (14.75
inches/-374.7.mm between holes). 3.25 inches
(82.55mm) minimum with forms tractor (2.75
inches/69.85mm between holes).

Carriage Speed:

400 msec maximum fc;>r 13.1 inches (332.77mm) of
motion.

Tabulation:

Left or right.

Line Spacing:

1/48 inch (.53mm) minimum.

Paper Feed:

Bidirectional, except with unidirectional forms
tractor and unidirectional pin feed platen.

20 & 40 CPS Printers

=
=

251

Paper Feed Speed:

4 inches (101.6mm) per second plus 40 msec
(typical) settling delay time .

Paper Thickness:

.000 - .0tO inch (.2S4mm) at low setting (1-3 part
forms)
.010 - .027 inch (.254 - .686mm) at high setting (46 part forms)'.

Sensors:

End of ribbon, paper out, and cover open.

Other Features:

Self test; host program control through escape
sequences; data receive/transmit speed selection.

Power
Requirements:

Strappable for operation from nominal 100, 120,
220, or 240 volt (+ 10%/-15%) AC inputs, 49-61
Hz. 350W maximum power consumption.
Factory preset for 120 VAC. Check your printer's
serial plate for proper input power.

Cabling Requirements
A standard RS-232-C interface cable is required for connection between
the screen and the printer. This cable must be equipped with DB-2SP
connectors with the following pins connected:
PIN
CCITT
NO. DESIG.
1
101
103
2
104
3
4
105
6
107
7
102
20
108

TELCO
DESIG.
AA
BA
BB

cA
CC
AB
CD

DESCRIPTION
Protective Ground
Transmitted Data
Received Data
Request To Send
Data Set Ready *
Signal Ground
Data terminal Ready

* Pin 6 must be HI to receive or transmit data.

')0 1t

/1('\

rpc;. 'Printl'>ro;.

1.0 INTRODUCTION
The SA 14030 Controller consists of a micrprocessor based controller with on-board data separator logic
and is able to control a maximum of four drives. The drives can be any combination of Shugart SA 1000 fixed
disk drives. SA800 floppy disk drives. or SA850 floppy disk drives. The floppy disk track formats are compatible with IBM 10/20 track formats. The SA 14030 can be mounted on the SAl 000 drive.
Commands are issued to the controller over a bidirectional bus connected to the host computer. The data
separator/"serdes" logic serializes bytes and converts to FM/MFM data. and deserializes FM/MFM data into 8-bit bytes.
Due to the microprogrammed approach utilized in the controller. limited diagnostic capabilities are implemented. This methodology increases fault isolation efficiency and reduces system down time. Error
jetection and correction will tolerate media imperfections up to 4-bit burs't errors.
:'-lOTE: This device utilizes neaative logic (i.e .. OV

= logical 1)

1.1 SA1403D CONTROLLER FeATURES
OVERLAPPED SEEK

In multiple drive configurations the host can issue seeks to different drives
without waiting for the fi rst drive to complete its seek.

AUTOMATIC SEEK
AND VERIFY

A seek command is implied in every data transfer command (READ. WRITE
CHECK. etc.). If the heads are not positioned over the correct cylinder. a seek
is initiated and a cylinder verification is performed after the seek completes.

FAULT DETECTION

Three classes of fault detection are provided for fault diagnosis:
1) Disk related faults.
2) Controller related faults.
3) Host comma~d or 110 timing faults.
Fault detection is available from the interface as a status message and is also
visibly displayed on a row of status LED's on the controller PCB.
.

AUTOMATIC HEAD
AND CYLINDER
SWITCHING

If during a multi-block data transfer the end of a track is reached. the controller automatically switches to the next track. If the end of a cylinder is
reached. the controller issues a seek and resumes the transfer.

DATA ERROR
SENSING AND
CORRECTION

If a data error IS detected during a disk data transfer. the controller indicates
whether or not it is correctable. If correctable, it can be automatically
corrected. (This applies to the SAl 000 only. CRC error detection is used
on floopy disc drives.)

LOGICAL TO
PHYSICAL DRIVE
CORRELATION

Logl~~. Unit Number (LUN's) are independent of physical port numbers. All
accesses specify LUN's.

ON BOARD SECTOR
BUFFER

A sector buffer is provided on the controller to eliminate the possibility of data
overruns during a data transfer.

EFFICIENT HOST
INTERFACE
PROTOCOL

A bidirectional bus between the controller and host provides a simple. yet efficient communication path. In addition. a high level command set permits
effective command initiation.

SECTOR
INTERLEAVE

Sector interleaving is programmable with up to a 16 way interleave.

000 PARITY

The 8 data bits on the interface bus can have odd parity. Depending on user
preference. parity can be disabled.

FIXED SECTOR SIZE

The sector size is fixed at 256 bytes of data for the SA 1000.

.

·SA 1403D Controller Reprint

-

253

~~UMBER

OF

DRIVES

The controller will connect to a maximum of four (4) drives. The drives can be
any combination of SA 1000' S andlor SA850's andlor SA800's

1.1.1 OPTIONAL FEATURES
MICRO DIAGNOSTICS

A set of diagnostic PROM's are available to allow stand alone diagnostic testing of both drive and controller. Reference Appendix A.

1.1.2 SYSTEM CONFIGURATION
The controller and data separator comprise a single PCB that can be mounted onto the SA 1000 drive. A maximum
four (4) drives may be .connected as shown in Figure 2..

of

1.2 TRACK FORMATS AND CAPACITY
A)
C)
0)

32 sectors of 256 bytes per sector (SA 1OOOonly).
26 sectors of 256 bytes per sector (Floppy only).
26 sectors of 128 bytes per sector (Floppy only.)

IBM 10/20
TRACK FORMAT

Track format for Floppy Disk drives can be
in real time. The track formats are:
1) Single density, single sided
2) Single density, double sided
3) Double density, single sided
4) Double density, double sided

26 SECTOR

32 SECTOR

SA850

2001
4003

N/A
N/A

SA1002

N/A

16383

SA10Q4

N/A

32767

SA800

sel~cted

under program control

TABLE I.
FormatlCaoacity Relationship
MaxlmLlm Logical Sector Address Shown
2.0 SPECIFICATION SUMMARY
2.1 ENVIRONMENTAL LIMITS

Temperature FIC
Max. Wet Bulb
Relative Humidity
Altitude

254

Operating

Storage

32°/0° to 131 °/55°

-40°/-40° to 1670175°

85°F

non condensing

10% to 95%

10% to 95%

Sea level to 10,000 ft

Sea level to 15,000 ft

SA 14030 Controller Reprint

2.2 POWER REQUIREMENTS
Three power supply voltages are required for the SA 1400 series controllers. The maximum current reqUirements are as follows:

+ 5VDC :!: 5% at 4.6 Amps
- 5VDC :!: 5% at 0.5 Amps
+ 24VDC :!: 10% at 0.1 Amps
Power is applied to the SA1400 series controller via J10 which is a 6 pin AMP Mate-N-Lok conl1ector (PIN
1-380999..Q) mounted on the component side of the board. The recommended mating connector, P10, is an
AMP PIN 1-480270-0 utilizing AMP pins PIN 60619-1. The J10 pins are labeled on the connector. Figure 1
shows the pin assignments.

... 24V RETURN
·5VDC

... SV

RETURN~

CD 0
CD 0
® o

w
0

()

l..f'.,JU;'

i• " "'''''D.
/, ~~'"

::l

... ~J.D D

...,

r+

I ;-- ~.... •

0

J ~ .-111.....

•

III

"0
::::!.
::l
r+

.

t"
tJ

O(COI"C

21'11" ••

IN"'"

~--t---f

::!!
G')

~

C

:D

m

i .,~,

~'·"II.·I
I

_'Y .::

/

J.:
! .:

..4

f'l

••hk'IDI

»

I

.",

""'II.a

IOn

...

81-----"-<;

~

., ,.,.

I------"'-cl

~'M.

:'~I I
I,s:..'''ri ~III!

'.fI' ..... _

~

(f)

......

........

.." ~I

~i~ ~~!

,

11,1,.::1' •

1~

...,

III

:;IJ

..

Jl

0

.... 1(1, • •

I

.~

OUlpul

""'Ill'

~

~--'

.t:-

O
W

0

J4

·

!H~:~!

C
Z

··' .,

-i

i .,

T\

0

'
I•

~

.

;:~t'.:.
U~'II'.

.. .,,,.: r J
s.ut~

liD2

JI

.,6~u:g

UI"~'.I:

l8rll Us!

Ja·I'l.ul

.•

~,

o

0

Z

»

r
m
r
0
0
A

0

j;

"" r •
~.

·.
i ':

. ....
.,," . " .
",. ... ",

SUit"'"

I

~ ..,'"

WU•• " ,
• • ,,, ( U ,

.)'l/'

Ld

U

"~~
I

i • J.'" fl.' '~"

f"

".U'N"UP _I ..

G)

,.n

~"""..... t~,
N

~

JJ

»

"" S.,,,

l •

~

~\~~_+

~ .. tCoW\I" !t--l.'!'.

n
t

•• ...,...'0

"'.

ua/sUA

n,.AO.

'''' ..

fl.""." 'I",
~

........... lI! ......

5

{f

"I======~

It

.~!.

.~

(

... ~ ... ' ...... I

r

1

1

"UN",IS

,I/o

~t1[iW

\0((

t,l11I'

11\11'"

.,b

.

Notes

278

SA 1403D Controller Reprint

APPENDIX A

CP/M-SO 2.2 BIOS Programming Considf::rations

BIOS provides the operations necessary to access the disk drives and to
interface with peripherals. The user interface with the'BIOS is through a
series of Entry Points. These entry points are II Jump Vectors". Each jump
address corresponds to a particular subroutine which performs a specific
function. The Base ( + B for the jump vectors) depends on the size of
RAM memory.

BIOS Entry Vector Table

BIOS Cold Boot
Entry Point:
Function(s):
Argument(s):
Value(s) Returned:
Registers Saved:
Errors Returned:

BIOS Warm Boot
Entry Point:
Function(s):

Argument(s):
Value(s) Returned:
Registers Saved:
Errors Returned:

Appendix A

(Bbase + 00) - Bios
This entry is called only by the Boot Loader to
initialize CP/M.
None
None
None
None

(Bbase + 03) - Bwboot
Perform a Warm Start by reloading the CCP
and BDOS from the disk in the A: drive,
returning control to the CCP.
None
None
None
None in registers; however, message 'Boot Err'
is displayed.

Al

BIOS Console Status
Entry Point:

(Bbase + 06) - Bconst

BIOS Console Input
Entry Point:
'

(Bbase + 09) - Bconin

BIOS Console Output
Entry point:

(Bbase + OC) - Bconot

BIOS List Output
Entry Point:

(Sbase + OF) - Sprint

BIOS Punch Output
Entry Point:

(Bbase + 12) - Bpunch

BIOS Reader Input
Entry Point:

(Bbase + 15) - Breadr

BIOS Home Disk
Entry Point:
Function(s):
Arguments:
Value(s) Returned:
Registers Saved:
Errors Retu:rned:

A2

(Bbase + 18) - Bhome
Sets track number to zero in preparation for
disk access.
None
None
None
None

Appendix A

BIOS Sel~d Disk
Entry Point:
Function(s):

.Arguments:

Value(s) Returned:

(Bbase + 1B) - Bseld
Select the requested logical disk. The drive
that will be logged on in further operations is
the default drive (or drive A if the default drive
cannot be selected).
(C)
drive to select (00 - OF)
.
(E)
even if media identification required
(E)
odd if media identification
previously issued and no disks
removed/replaced
(HL)
address of CP/M-compatible Disk
Parameter Header if select successful
(HL)
0 otherwise
None
None

=

=
=

=
=

Registers Saved:
Errors Returned:

BIOS Set Track
Entry Point:
Function(s):
Argument(s):
Value(s) Returned:
Registers Saved:
Errors Returned:

(Bbase + 1E) - Bsett
Stores desired track number in preparation for
a disk read or write record call.
(BC)
track number
None
None
None

=

BIOS Set Sedor
Entry Point
Function(s):
Argument{s):
Value(s) Returned:
Registers Saved:
Errors Returned:

Appendix A

(Bbase + 21) - Bsets
Stores desired sector number in preparation
for a read or write record call.
(BC)
sector number
None
None
None

=

A3

BIOS Set DMA Address
Entry Point:
Function(s):
Argument(s):
Value(s) Returned:
Registers Saved:
Errors Returned:

BIOS Read Sector
Entry Point:
Function(s)

Argument(s):
Value(s) Returned:
Registers Saved:
Errors Returned:

BIOS Write Sector
Entry Point:
Function(s):

Argument(s):
Value(s) Returned:
Registers Saved:
Errors Returned:

BIOS List Status
Entry Point;
A4

(Bbase + 24) - Bsetd
Stores desired transfer address in preparation
for a read or write a record call.
(BC) =
transfer address
None
None
None

(Bbase + 27) - Bread
Transfer one 128 (decimal) byte record from
the selected disk to the current OMA transfer
address.
Bseld, Bsett, Bsctrn, Bsets, Bsetd previously
called.
None
none
(A) =
00 if no error
(A) =
FF if error

(Bbase + 2A) - Bwritt
Transfer one 128 (decimal) byte record from
the current OMA transfer address to the
selected disk.
Bseld, Bsett, Bsctrn, Bsets, Bsetd previously
called.
None
None
(A)
00 if no error
(A) =
FF if error·

(Bbase + 20) - Bprnts
Appendix A

BIOS Sector Translate
Entry Point:
Function(s):

Argument(s):

Value(s) Returned:

(Bbase + 30) - Bsctrn
Translate a logical sector number into a
physical sector number in preparation for a call
to Bsets, the BIOS set sector call:
(BC)
Sector number
(0 < (BC) < sectors per track
(DE)
Skew table address obtained from
the CP/M Disk Parameter Header
(HL) = (BC) if (DE) = 0
(l)
= [(DE) + (BC)) if (DE) = 0
(H)
(B) should be 0
None
None

=
=

=

=

Registers Saved:
Errors Returned:

Appendix A

AS

Notes

A6

Appendix A

APPENDIX B
Monitor Entry Vector Table
FOOOH
F003H
F006H
F009H
FOOCH
FOOFH
F012H
F01SH
F018H
F01BH
F01EH
F021H
F024H
F027H
F02AH
F02DH
F030H
F033H
F036H
F039H
F03CH
F03FH
F042H,
F04SH
F048H
F04BH
F04E!"l
FOS1H
FOS4H
FOS7H
FOSAH
FOSDH
F060H
F063H
F06G,",
F069H

Appendix B

Cold start monitor
Warm start monitor
Keyboard status
Keyboard input
CRT output
. Fast CRT output from C
510 channel B input status
510 channel B input
510 channel B output
Drive select
Home r/w head
Seek to track
Read sector
Write sector
Execute physical driver request
Set direct CRT cursor
Direct CRT display
CRT memory block move
Return address of disk mapping table
Return address of day variable
Return configuration status
510 channel B output ready status
Set configuration
Start screen print
Accessible 1-second interrupt
Console status through iobyte
Console input through iobyte
Console output through iobyte
Printer output through iobyte
Printer status through iobyte
Communications input ready status
Communications input data
Communications output data
Communications output ready status
Idle while i/o is pending
Record soft error

B1

Notes

B2

Appendix B

APPENDIXC
Documented System Storage and Structures
Z80-A Mode 2 Interrupt Vectors
;Z80-A 510 port B xmit buffer empty
; Z80-A SIO port B external/status change
;ZBO-A SIO port B receive data available
;Z80-A 510 port B special receive
condition
;Z80-A 510 port A xmit buffer empty
; Z80-A 510 port A external/status change
;Z80-A 510 port A receive data available
; Z80-A 510 port A special receive'
condition

FFOO
FF02
FF04
FFOG

SIOVO:
SIOV1:
SIOV2:
SIOV3:

DEFS2
DEFS2
DEFS2
DEFS2

FFOa
FFOA
FFOC
FFOE

SIOV4:
SIOVS:
SIOV6:
SIOV7:

DEFS2
DEFS2
DEFS2
DEFS2

FF10
FF12*
FF14
FF1G*

CTCVO:
CTCVl :
CTCV2:
CTCV3:

DEFS2
DEFS2
DEFS2
DEFS2

;Z80-A CTC channel 0 interrupt
;Z80-A CTC channell interrupt
;Z80-A CTC channel 2 interrupt
;Z80-A CTC channel 3 interrupt

FF18
FF1A*

SYSVA:
SYSVB:

DEFS2
DEFS2

;System Z80-A Pia port A interrupt
;System Z80-A Pia port B interrupt

FF1C

GENVA:

DEFS2

FF1E

' GENVB:

DEFS2

;General purpose Z80-A Pia port A
interrupt
; General purpose Z80-A Pia port B
interrupt

"'Vectors used by the Monitor ROM

Keyboard Data Input FIFO Variables
FF20
FF30
FF31
• FF32

fifo:
fifcnt:
fifin:
fifqut:

FF33

AppendixC

defs
defs
defs
defs

16
1

1
1

defs 1

;Console input fifo
; FIFO data counter
; FIFO input pointer
;FIFO output pointer'
; Round address

C1

More Interrupt Vectors
FF34

expvec:

defs 8

;Space for 4 vectors for expansion slot

Available Memory Pointers
FF3C
FF3E

availb:
availt:

defs 2
defs 2

; Bottom of available memory
;Top of available memory

End of documented storage locations

Logical to Physical Drive Mapping Tables
Seltab contains two bytes per logical CP/M drive A-P. The first byte is an
index into the physical driver address table (see next table). The second
byte is a unit number that is passed to the driver by the XQDVR
dispatcher.
'
Seltab:
A:

B:
C:
D:
E:

F:
G:
H:
I:
J:

K:
l:

M:
N:
0:

P:
C2

°

defb
defb
defb
defb

1,0
1,1
1,2
1,3

; Floppy unit
; Floppy unit 1
; Floppy unit 2
; Floppy unit 3

defb
defb
defb
defb
defb
defb
defb
defb
defb
i defb
defb
. defb

1,4
1,5
1,6
1,7

; Rigid partition
; Rigid partition 1
; Rigid partition 2
; Rigid.partition 3
; Error driver
; Error driver
; Error driver
; Error driver
; Error driver
; Error driver
; Error driver
;Error driver

0,0
0,0
0,0
0,0
0,0
0,0
0,0
0,0

°

Appendix C

Physical Driver Address Table
Drvtab contains the addresses of several independent physical disk
drivers. By convention, driver number 0 always returns a select error.
Unused entries in Seltab should point t~this trivial driver.

Drvtab:

defw
defw
defw

Selerr
Dskdvr
0

defw
defW
defw
defw
defw

0
0
0
0
0-1

;Select error physical driver
; Disk driver (WD or SA)
; Empty physical driver
; Expansion slots

;Mark last entry

Physical Driver Request Block
db

command

ds
db
dw
dw
dw

Ldrive
Track
Sector
Address

AppendixC

=
=
=

;FF Select
;00 Write
;01
Read
; For system use
; Logical drive for request (00 - OF)
;Track number for request
;Sector number for request
;Address of sector buffer for request

C3

Time-of-Day and Timer Variables
Milsec:

ds

2

Ticker:
Steprt:
Motor:
HL-+
Day:
Month:
Year:
Hour:
Minute:
Second:
Linbuf:

ds
ds
ds
. ds
ds
ds
ds
ds
ds
ds
ds

2
2
1

C4

1
1
80

; Location incremented by CTCl
; Interrupt
;(unused) "
; Increments once per second
;WD1797 step rate
; Disk motor/select timeout (1 Hz)
;01-31
;01-12
;80-99
;00-23
;00-59
;00-59
;Line buffer

Appendix C

How To Make Monitor Calls from Basic
Several of the monitor function calls return the value in the HL register if
the H register equals 0, or return the value at the address pointed to by
the HL register if the H register is not zero. This convention allows
Microsoft Basic Users to access these functions directly. The examples
listed in this section demonstrate this feature of the ROSR ROM.

100
110
120
130
140
150
160
170
180
190
200
210
220

100
110
120
130
140
150
160
170
180
190

' Make 820-11 Monitor call to get address of day variable, then
' Print Day, Month etc.
DATA Day,Month,Year,Hour,Minute,Second
DEFINTI
GEnOD &HF039:CALL GEnOD(I)
'Return Add. of Day,
FOR X 0 TO 5
READ X$
PRINT USING "\
\ ##;X$,PEEK(I + X)
NEXT X
END

=

=

' Do configuration status call & print value returned
DEFINT I
GETCON = &HF.03C:CALL GETCON(I)
'Get config status
PRINT CHR$(26);
'Clear Screen
PRINT "The configuration status word is - ";
PRINT HEX$(I);
PRINT" (Hex)"
END

Appendix D

01

100
110
120
130
140
150
160
170
180
190
200
210

' Example Using Line Delete To scroll screen u·p.
' Make 820-11 Monitor Call to get address of day variable
' then calculate address of line input buffer variable.
' Clear screen, fill screen with characters, position
' Cursor back on top line, send line delete code to CRT,
' This moves the line deleted from the top of the s~reen
' To the input buffer.
' Recall deleted line from line input buffer & display
• on line 23 ot'the screen.

220
230
240
250
260
270
280
290
300
310
320
330
340
350
360
370
380
390
400
410
420
430
440

02

WIDTH 255
PRINT CHR$(5);" ";
'Remove cursor
DEFINT I
GETTOD = &HF039:CALL GETTOD(I) 'Get address !=If Day Variable
I= I+6
'Line input buffer is at Day + 6
PRINT CHR$(26);
'Clear screen
FORX= 1 TO 23
PRINT S:rRING$(80,CHR$(X + 64»; 'Fill Screen
NEXTX
FOR M = 1 TO 100
PRINT CHR$(30);
PRINT CHR$(27);" R";

.. 'Do 100 lines
'Put Cursor back on top line
'Do line delete, move deleted
'Line to buffer.
PRINT CHR$(27);" = ";CHR$(32 + 22);CHR$(32)
FOR X= 0 TO 79
'Now print characters back from
. PRINT CHR$(PEEK(I+ X); 'Input buffer
NEXT X
NEXT M
PRINT CHR$(26);CHR$(5);CHR$(2); 'Clear screen and
Restore Cursor.
END

Appendix 0

100
110
120
130
140
150
160
170
180
190
200
210
220
230
240
250
260
270
280
290
300
310
320
330
340
350
360
370
380
390
400
410
420
430
440

' Example Using Line Insert To scroll screen down.
' Make 820-11 Monitor Call to get address of day variable
' then calculate address of line input buffer variable.
' Clear screen, fill screen with characters, position
' Cursor bar.k on top line, send line insert code to CRT,
' This moves the line deleted from the bottom of the screen
' To tl,e input buffer.
' Recall deleted line from line input buffer & display
' on the first line of the screen.

WIDTH 255
PRINT CHR$(5);" ";
'Remove cursor
OEFINT I
GETTOO = &HF039:CALL GETTOO(I) 'Get address of Day Variable
I= I+6
. 'Line input buffer is at Day ... 6
PRINT CHR$(26);
'Clear screen
FORX= 1 TO 23
PRINT STRING$(80,CHR$(X + 64)); 'Fill Screen
NEXTX
FOR M = 1 TO 100:
'Do 100 lines
PRINT CHR$(30);
'Put Cursor back on top line
PRINT CHR$(27);" E"; , Do line insert, move deleted
'Line to buffer.
PRINT CHR$(27);" = ";CHR$(32 + 22);CHR$(32)
FOR X = 0 TO 79
'Now print characters back from
PRINT CHR$(PEEK(I + X);. 'Input buffer
NEXTX
NEXTM
PRINT CHR$(26);CHR$(5);CHR$(2); 'Clear screen and
Restore Cursor.
END

Appendix 0

03

Bank Switchin.g
•

The Bank control switch is bit 7 of port lC.
Bit 7
0
Bank 1 (RAM)
Bit 7 = 1 = Bpnk 0 (ROM) .

•

Change bit 7 only: Bits 0 through 6 should be maintained.

•

Bank 0 and 1 are mutually exclusive; data movement to or from
one bank will not affect the other.

•

When bank switching, the driver code must be executed at COOOh
or above; the upper 16K (COOOh-FFFFh) is common memory to
both banks.

=

=

For example,.

DI
IN A,(lCh)

SET 7,a

;read port
;set bit

EI
OUT (1 Ch),a .

;output

DI
IN A,(lCh)

RES 7,a

;reset bit

EI
OUT (lCh)

D4

Appendix D

.

Baleones Operati"y

~ystem

for the XEROX 820-11

MACRO-80 3.44
Ie
.z8D

t it

I

2
3
4
5

09-Dee-81

Baleones Operating System for the XEROX 820-11

6
7

Baleones Operating System for XEROX 820-11.

8

Copyright 1982 (C) Baleones Computer Corporation

9

10
11
12
13
14
15
16

All rights

Robert Burns. Bee.

; i

0191

rev

defl

401

subttl
page

Symbol Definitions

17

18
19
20

I

m

'.....

I

res~rved

m
N

Balcolles Ope,-a t i 118 System fur tile XEROX 820-11
Symbol Definitiulls

MACRO-BO 3.44

09-Dec-BI

21
22

23
24
25
26

fFFf
0000

true
false

equ
equ

-I
not true

OOOU

debug

equ

false

,,

Absolute Memory Addresses.

rom
romsiz
Rxl984
Lxl984
iobyte
boot I d
bootbf
ram
monitr
crtme,"
crtmax
crtbas
crttop

equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ

,,

I/O Port Addresses.

27

28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63

:t>

-0
-0
ttl
:J

a.
><

m

64
65
66
67
68
69
70
71
72

73
74
75

DODD
1800
1800
0800
0003
0080
ED8D
FFOn
FOOD
3000
3COO
0030
003C

O(lOll
0004
0005
000t'
0007
0008
0009
OOOA
00013
DOlle
DOlO
0014
001U
0018
0019
OOIA
00 IEl
ODIC
DOlO
ODIE
OOIF
00211
0029
0030
0031
0034
003t)
DO::!!)
0068
0069

bauda
.siodpa
siodpb
siocpa
siocpb
gpioda
gpioca
gpiodb
gpiocb
baudb
wd 1797
scro I I
ctc
ctcO
ctci
ctc2
ctc3
syspio
sysctl
kbcldat
kbdctl
be II of
be lion
slsclen
sidden
chroml
ctlrom2
lowlite
async
sync

equ
equ
equ
equ
e':lu
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
eqlJ
equ
equ
eqll
equ
equ
equ
equ
equ
equ
equ
equ

,assemble ram loader

01000h and debug,non resident code base
OIOOOh+«not debug) and 0800h)
01800h
,prescription for the future
., length of fut"ure
00800h
, i/o byte
00003h
OOOBOh
;boot loader address
OedBOh
,boot loader buffer
OffOOt,
,system ram page address
OfOOOh
,resident monitor address
03000h
,crt memory address
crtmem+24*128
.crt maximum address
high crtme,"
;starting page of display ram
high crtmax
;ending page of display ram

DOh
04h
05h
06h
07h
0811
09h
Oah
Obh
Oeh
10h
14h
18h
18h
19h
lah
lbh
Ich
Idh
leh
If 11
28h
2911
3m,
31h
34h
35h
361.
68h
6911

,channel a baud rate generator
data port A (communications)
data port B (printer)
control/status port A
control/status port B
,gene,'a I purpose para I I e I i/o A data
,general purpose parallel ilo A control
,general purpose parallel ilo B data
;general purpose para I I e I ilo B control
;channel b baud rate generator
;western digital disk controller base
;crt bottom line scrol I register
;quad counter/timer circuit
,ctc channel 0 (user)
,ctc channel I (msec, screen print)
,ctc channel 2 (one second presca I er)
,ctc channel 3 (one second)
;system pia data
;system pia control
,keyboard data
;keyboard control
, turn t)e I I off
; turn be I I on
;select single density
;select double density
;select ROM I character generator
;select ROM 2 character generator
; s·e I ec t low intensity attribute
;set internal clocks for asynchronous sio A
,set external clocks for
synchronous slo A
;sio
;sio
,sio
;sio

}>
"0
"0
I'D
::J

0..

><

m

Balcones O!-,erat ill;)
Syllluol Definit illllS

~ystelll

for

tlH:

XEROX 820-11

MACRO-80 3.44

09-Dec-81

Configuration Status Byte Bit Defin1tions.

76
77

78

UOU7

79
80

0006
0004

c.keym
c.sasi
c.five

equ
equ
equ

;

Ascii.

81

82
83
84
85
86
87
88
89
90

OOU4
OOOA
0000
0011
0013
OOIB
OOIA

.

6
4

:Keyboard upper bit is passed
:Shugart SA-1403D Disk Controller
:Five inch micro floppies

04h
Oah
Odh
II h
13h
Ibh
lah

:ascii
:asci i
:ascii
:ascli
:ascii
: asc i i
:clear

7

eot
If
cr
xon
xoff
esc
c I rs

equ
equ
equ
equ
equ
equ
equ

; ;

Special Key Constants.

end of text
line fee·d.
carriage return
Xon
Xoff
'~scape

screen

91

92
9]

94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111

112
113
114
115

116
117
118

119
120
121

122
123
124
125

126
127
12B
129
130

m

W

131

OOIE
OOGE
009B

Helpkey equ
Scrprt equ
Abort
equ
i;

0035
0061
0061

Oleh
0geh
09bh

:Screen Print key CTRL 
;Automatic Abort
CTRL 

Bell Constants.

bit im
blonc
blofc

equ
.equ
equ

;:

Assembly Options.

BOOO
4000
2000
1000
0000
0400
0200
0100
OOUO
0040
0020
DOlO
0000
0004
0002
0001

o.resv
o.auto
o.help
o.prot
o.ddvr
o.baud
o. inpc
O.outc
o.verf
o.ramt
o.disk
o.esct
o.type
o. term

equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ

1000000000000000b
OIOOOOOOOOOOOOOOb
OOIOOOOOOOOOOOOOb
OOOIOOOOOOOOOOOOb
OOOOIOOOOOOOOOOOb
OOOOOIOOOOOOOOOOb
OOOOOOIOOOOOOOOOb
OOOOOOOIOOOOOOOOb
OOOOOOODIOOOOOOOb
OOOOOOOOOIOOOOOOb
OOOOOOOOOOIOOOOOb
OOOOOOOOOOOIOOOOb
OOOOOOOOOOOOIOOOb
OOOOOOOOOOOOOIOOb
OOOOOOOOOOOOOOIOb
OOOOOOOOOOOOOOOlb

0000
0000
0000
0000

options
options
options
options

defl
(lefl
defl
(lefl

debug
options
options
options

BFFF

options defl

o. f i I I
o.lIlove

;;

35h
61h
61h

;bell loop time
: be I I on
time
;uell off
tillle

and
and
and
and

not
not
not
not

:reserved
;auto boot A:
; tIe I p command
;printer protocol
;dlsk drivers
;baud rate set command
; in command
;out command
;verify memory block
;simple ram test
;console disk read/write commands
;escape command table
;typewrlter mode
;fill memory
;move memory
;terminal scroll driver
o.ddvr and not o.esct
o.disk and not o.resv
o.verf and not 0.fl11
o.ramt

(not debug .or o.esct) alld not o.auto

configuration sector offsets.

B.. lcones Operatin!j System for tile XEROX 1l20-I1
Syml)o I Def ini t i lIllb
132
133
134
135
136
137
131l
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154

»

"0
"0
ttl
:J

0...

><
m

EE5F
EEbO

EE6:!
EEb3
EE6D

EE77
EE79
EE7B

EE7D
EE7E
EE7F

0007
0006
0005
0004
0002
0000

MACRO-SO 3.44

09-Dec-SI

z.scra
z.stp"
z.keyur
z.sloA
z.sioB
z.slom
z.siov
z. xonp
z.baua
z.baub
z. lobt

equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ

i i

parallel printer status bits.

p.ackn
p.onln
p.rdyi
p.royo
p.strb
p.auto

equ
equ
equ
equ
equ
equ
subttl
page

bootbf+255-32
z.scra+l
z.stpr+2
z.keym-t-l
z.sloA+l0
z.sloB+l0
z.siolll-t-2
z.siov+2
z.xonp+2
z.baua+l
z.baub+l

7
6
5
4
2

o

;Inltlal screen attribute
;floppy step rate
;keyboard mask
;sio A Inlt
;5\0 B init
;clear to send low/high/ignore
;data carrier detect low/high/ignore
,Xon/Xoff protocal
;comm channel baud rate
;printer baud rate
; init la I i/o byte

iacknowledge
,on line
;ready to Input
,·ready to output
;data stobe
,auto LF enable

Code Generation Control Macros Definitions

}>

o

a

(J)

:J

a..
)(

m

Oper'atillU ::;y~tem fo.' tile XEROX 820-11
Code Generatioll ('ollt.ol Macros Definitions

Bdlc(lni.l~

155
156
157
158
159
160
1ti1
162
163
164
165
166
167
168
169
170
171
172
173
174
175·
176
177
178
179
180
181
1B'L
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209

m

VI

MACRO-BO 3.44

09-Dec-81

Rom code placement macros.
The Cownon Segment holds the non-resident (banked) portion
of the monitor.
This segment is not copied to ram.
The Data Segment holds the resident portion of the monitor.
It is moved to ram at location MONITR during initialization.
The Coele Segment holds the various Transient Commands.
Each
command is loaded from the ROM to the TPA when It Is executed.
The fol lowing macros keep it all straight.
below - Generate code for rom below.
below

\

macro
segment b
endm

; ;enable cownon segment

;;

above - Generate code for ram above.

above

macro
segment d
endm

;;enable data segment

Overlay - Generate code for transients.
overlay macro
tloc
defl
addr
equ
segment
endm

addr
tloc+$-cloc
tloc+bloc+cloc-Monitr
c
;;enable code segment

bseg - activate cOlllmon segment.
bseg
sega
;;

lIIacro
common
defs
'def I
endm

ICOMROMI
comres
$

segment - Act ivate Segment.

segment macr'o
update
~&space defl
s&seg
.phase
endm

s
-1

s&loc

; ;update active phase counter
;;set enabled segment active
; ;actlvate segment code placement
;;set absolute segment location counter

update - Update Phase Counters.
update

macro
If

bspace

m
(jI

Eialeones Op8f'C!lill[J System for tile XEROX 1120-11
Colle Genen'.ltiol1 COlltrol Macros D.,finitions
210
211
212
213
214
215
216
217
. 2111
219
220
221
222
223
224
225
226
227
220
2L9

230
231
232
233
234
235
236
237

eOlllres

MACRO-UO 3.44
d,ef I
,endi f
'i rpc
if
if

$-rom+l001l-3
x,
x&space
cspace
tpal It ($-cloc)
$-cloc

if
defl
endif
else
x&loc
defl
$
endif
x&space defl
0
. depllase
endif
endm
endm

tpal

1l1lOlJ
FOOO

0000
0000
0000
0000
OOOU
OOUO

bloc
dloc
tloc
tpal
bspace
cspace
dspaee
COIllI~es

09-Dee-ElI

iii

f

segment active

; ;save seglllent address
i ; c I ear segment active
; ; revert to relocatable

;establisll non-resident code base
;estat>1 isl) resident code base
;establise Transient code base
;establish maximum transient length
;preset common segment inactive
;preset code segment inactive
;preset data segment inactive
;preset cOlluuon base address

def 1
def 1
defl
defl
defl
defl
defl
defl

rom
monitr
0
0
0
0
0
0

subttl
page

Ram Loader' for Testing Only

»

u
'0
ro

::l
0X

m

m

--..J

Bdlcone>s Ope>raliliU System tor' tIle> XEROX 1l20-I1
Ram Loader for T~stiny Only
231l
2:39
240
241
242
24:3
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
2bU

0000
0003
0006
00 DB
0009
OOOA
000f:!

oooe

0000
OOOE
OOOF
0011.
0012!
0014!
0015'

bseg
dets

+

DODD!
OOOO!

MACRO-BO J.44

09-Dec-BI

comres

entry:
21 OOFO!
17FF
IE 00
7E
23
8:3
5F
OB
7B
BI
20 F7
7B
EO 44
77
C3 (lOOO

xcks:

oI

xcksl:

Id
III
Id
Id
inc
add
Id
dec
Id
or
jr
Id
neg
Id
jp

hl,bbase":movln
bC,romsiz-l
e,O
a,(hl)
hI
a,e
e,a
bc
a,b

subttl
page

System Initialization

;preset checksum

c
nZ,xcksl
a,e

;store twos complement of checksum

(h I) ,a

;store checksum

o

m

00

»

'0
'0
/l)

::l

0X

m

Balcones Oper'at ill!) System tor tl"le XEROX 820-11
System Initial iZot ion
:.161
262
263
264
265
266
267
26B
269
270
271
272
273
274
275
276
277
27B
279
2BO
2BI
2B2
2B3
204
205
2B6
287
2BB
289
290
291
292
293
294
295
296
297
29B
299
300
301
302
303
304
305
306
307
30B
309
310
311
312
313
314
315

0018!
0018!

bbase:

00E5
OLlFO

movln
comres
+

OOOO!

,,

MACRO-BO 3.44

defs

;symbol
100h-($-(elltry-3»,-1

equ
defl

$-bbase
100h-3

below
defs

comres

F3
AF

prs:

:Hl

prsl:

20 FO
ED 73 FFEO
22 FFE2
EI
22 FFE4
D9
Ie
31 3839
:01 I 4142
4C
43
'IF
4E
45
53
4:3
4F
40
50
55
54
45
52

UO
:iE
03
:.11
36
II
(] I

17
14
3000
20
3001
OBFF
ED BO
31 FOOO
21 AA55
CI
E5
[) I
C5

prs2:

for accessing non-resident base address

:generate non-resident code

prs - preset storage.
Power up or Reset button.

Enrry:
0000
0001
0002
0003
0005
0009
OOOC
0000
0010
0011
0012
0015
0010
0019
OOIA
OOIB
OOIC
0010
OOIE
OOIF
0020
0021
0022
0023
0024
0025
0026
0027
0029
00:.18
002E
0030
0033
0036
0038
003B
0(]3e
003F
0040
0041

09-0ec--B,1

di
xor
dec
jr
Id
ld
pop
ld
exx
inc
Id
Id
Id
Id
Id
Id
Id
Id
Id
Id
Id
Id
Id
Id
Id
Id
ex
Id
out
Id
Id
Id
Id
Idir
Id
Id
pop
push
pop
pUSh

: lock up system
a
a
nz,prsl
(rstsp),sp
(rsthl),hl
nl
(rstpc),tll

; tt1e pause that refershes
;save partial reset state
; ; n case the luser go boom
:pick possible return off stack

;give primary registers half a break
e
sp,383911
sp,41421!
c,h
b,e
c,a
c, (h I)
b, I
d,e
Ble

I

; load strange values in SP
:insure
:registers
ican

:forget
; insure
:registers
;can
;copy

C,a
C, I
d, tJ
d, I
d,h
b, I
d,d
af,af'
a,24-1
: line up bottom of screen
(scroll) ,a
; in i t scro I I port
;'c I ear display memory
tll,crtmem
(h I ) . '
de,crtmemTI
bC,crtmax-crtmem-l
:pray the video hardware works
sp,IIIoni tl; insure monitor ram ok
hl,Oaa5511
;walk checker board through ram
bc
:read ram
hI
write ram fast
de
read ram fast
bc
put ram back

»

0
0

fI)

::l

Cl..

><

m

6alcones Ope ra t i II~I System tor tile XEROX 820-11
System Ini t io I i «at ion
316
317
318
319
3:!0
321
322
323
324
325
326
327
328
329
330
331

3n

333
334
335
336
337
338
:i39
340
341
34:!
343
344
:345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
:HW

361
362
363
364
365
366
367
368
369
:370

m

U)

371

0042
U043
0044
0046
0048
004A
0046
U04C
004E
0050
0053
0056
0059
005e
D05E
0061
0063
0064
0065
0066
0067
0068
0069
006B
0060
006f
0070
0071.
0072
0073
0074
0076
0078
007A
007C
007E
0080
0002
0005
0000
008B
OOOD
009D
0093
0096
0098
OU9B
009E
OOAO
00A3
CJDAb
nOA9
OOAe
OOAF
OOBI

f 1
9U
20
ED
20
3B
3f
ED
20
31

21
01
CD
20
:!I

pop
sub
jr
sbc
jr
dec
ccf
adc
jr
Id
Id
Id
ca II

76
52
72
7A
EB
0000
0000
1800
OOAf
63
00E6
00

jr

06
4E
23
5E
23
56
23
ED BO
CB 7E
:W f2
23

prs3:

46

prs4:

23
4E
23
EO
CB
20
DB
ED
3E
ED
21
11
01
ED
21
(j 1
CD
21J
2A
II
ED
21

II
II 1

cc
Cl

B3
7E
f6
IE
5E
ff
47
0416
fOOD
Of 00
60
1800
0800
OOAf
14
IffD
55AA
52
fAD8
f360
fC55
1800
FC55

IE 00
7E

MACRO-80 3.44

prs5:
ccs:
ccsl:

ld
Id
ld
inc
Id
inc
Id
inc
Idir
bit
jr
inc
Id
inc
Id
inc
otir
bit
jr
in
im
Id
Id
Id
Id
Id
Idir
Id
Id
ca 11
jr
Id
Id
sbc
Id
ld
Id
ca I I
jp
I (J

Id

09-Dec-81

af
b
nZ,err'l
111 ,de
nZ,errl
sp
hI, sp
nz,prs2
sp,stack
hl,prs
bC,romsiz
ccs
nZ,err2
Ill, intab
b,O
c, (h I)
hI
e, (h I)
hI
d,(hl).
hI
7,(hl)
z,prs3
hI
b, (h I)
hI
c, (h I)
hI

;and verify it

;if ram failure

;if ram or register failure
;advance test address

;if top of memory not reached
;set monitor stack
;set rom address
;compute check sum

;if bad rom
;point to default variable table
;set data block length
;set variable address in ram
,;po int to initial values
;copy data from rom to variables in ram

;if more data to preset
;point to i/o init data table
;set number of bytes to preset
;set i/o port address
;shoot preset data to ilo device

7,(111)
z,prs4
a, (kbddat)
2
a,higll vectab

;if more devices require initial ization
; asse,'t PARDV
;select interrupt mode 2
;set interrupt vector page

i •a

hi, rbase
de,rnonitr
bc, ,'am-moil it r

;set resident base addre~s
;set monitor address
;set max re.sident length
;plant ,monitor upstairs
;prognosticate

hl,Rx1984
bC,Lx1984
cCs
nz,prs5
til, (Rx 1984rLx 1984-3)
de,55aall
h I ,de
hl,cmdtab
de,seltab
bC,cluc
z,Rx1984
;futureSllock
signon
;Signon Hesident Monitor
e,O
a, (h I)

;preset ckecksulII

IIn
.....

Ib

Baleone,; Opel-atin!J SYbtem for tl"le XEROX 020-11
System Initial iLatinn
372
373
374
375
376

3n

»

-0
-0
Ib
::J
0..
X

m

378
379
3BO
381
3BZ
383
384
385
386
387
388
309
390
391
392
393
394
395
396
397
39B
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
4'22
423
424
425
426
427

00B2
00B3
00B4
00B5
00B6
00B7
00B8
OOBA
DOBB

hi
a,e
e,a
be
a,b
e

ld
jr
Id
Id
Id
ldir
dec
Id
or
jr
jp

1"11, errml
;set ram error message
err
hl,errm2
de,crtmem+40-(errmI/2)
bC,ernul

ernul:

db

'Ram En-or'

ernu2 :

db.

'Rom Error'

errllli

equ

($-errml)/2

,,

initialize the interr"upt vector table

intab:

defb
defw
defw

2
sysvec+2
- keysrv

defb
defw
defw
defw
defw

6
ctcvec+2
III ill i
0
t illler

5F
DB
7B
Bl
20 F7

B3
C9
'21
lB
21
11
lJ 1
ED
OB
70
Bl
::'0
C3

0004
DODO
OOOC
0000
OOEI
00E5
0009

52 61 60 20

00D4
03
0000
3024
0009
BO

09-Dee-Ol

inc
add
ld
dec
Id
or
jr
or
ret

L3
8::1

DOBC
OOBF
OOCI
DOC4
DOC7
DOCA
OOCC
ODCD
OOCE
OOCF
0001

MACRO-OO 3.44

err 1 :
e r' r"2 :
err:
err3:

FB
0000

nz.ccsl

e

be
a,b
c
nZ,err3
prs

;pause a whi Ie

;try restart again

45 72 72 6F
72

52 6F 60 20
45 72 72 6f
7'2

00E6
00E7
00E9

02
FflA
F140

OOES
ODEC
OOEE
OOfO
00F2

06
FF1'2
FifO
0000
F192

;parallel keyboard interrupt vector

;one mi Iii second interrupt

tone second tinter

timer

interrupt vector

in i t keyboard f i fa
00F4
OOF5
00F7
OOFO
OOF9

0::1
FF30
00

DO
llll

defll
defw
defb
defb
defb

3
f ifcnt

0
0
0

i r i fo COlJnt
; fifo in
ififo out

initialize tile crt display
OUFA
OOFB
nOFD
OOFF

uu
FFAC
:HlUU
02

LIe fll
defw
defw
defb

8
cursor'
crtnlem
02

;tlase add,"ess

i

5

3000h

;use non-blinking box cursor

I>
:J
:J
:D
:J
Q..

><

m

....
....
m

Balcoflt;s Opt; ra t i lI~j Systt;m for
SysttJfIl Init ial iLdt iOIl
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
, 468
469
470
471
472
473
474
475
476
477
478
479
480
4BI
4B2
483

0100
0102
0103
0104

tlltJ XEROX 820-11

MACRO-80 3.44
dtJfw
defu
defb
defu

3000
17
00
00

09-0ec-81

crtmelll
23
0
O·

;direct crt memory output address
;initial scro II base
;initial leadin
;initial attribute

Initiallze configurable parameter addresses
0105
0106
0108
OIOA
OIOC
OIOE
OliO
0112
0006

DC
FF6F
FlOC
FlOE
F 115
FF54
FFCB
FFCC

defu
defw
cfinit: defw
defw
defw
defw
defw
defw
numcon equ

0114
0115
0117
0119

04
fF3C
F7FD
FC80

detb
defw
defw
defw

2"2
avai I b
iobloc+iobdvs
ram-280h

0116

FF

dllfb

-I

; ;

I/O port

2"nulllcon
contbl
siomsk
sioval
xonenb
steprt
sparel
spare2
($-cf init) /2

;configure table address
;printer output ready mask
;printer output ready value
;Xon / Xoff enable/disable (NOP or RET)
;step rate tor wd 1797

;end of variable init table

initial ization.

initialize system pia for use as bank-switch,
configuration select and parallel keyboard input

o IIC

defb
defb

I,sysctl
OIOOllllb

;select

01 IC
80

defb
defb

l,syspio
10000000b

;enable ROM

0122
0124
0125
0126

03 ID
CF
3F
07

defu
defb
defb
defb

3,syscfl
1l00111lb
OOllllllb
OOOOOlllb

;put system pio in bit mode
;make bits 5, 4, 3, 2, 1 ,
and 0 be inputs
;disable interrupts

0127
0129
012A
0126

03
4F
IA
B3

defb
dtJfb
defb
defb

3,kbdctl
01001111b
sysvec+2
10000011b

;put keyboard port in input mode
; load keyboal'd interrupt vector
;enable interrupts

011 E

01
4F

U II F
0121

10

IF

input mode

Initialize Counter' Timer Circuit.
DI2e
012E
012F

U2 18
03
10

defb
dt;fll
defb

2.ctcO
0000001 III
low ctcvec

;reset t illler
;base interrupt vector for ctc

0130
0132
n I:n

112

19

dtJfb
defu
defb

2.ctcl
00000111b
250

;start timer,
; c t c I ptJriod

07
fA

but no interrupts
1 msec

=

Balcones OperatillU System for the XEROX 820-11
System Initialization
j
484
485
486
487
488
489
490
491
.492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521

MACRO-80 3.44

09-DL .. -81·

0134
0136
0137

02 lA
27
70

defb
defb

"0
"0

ro

:J

c..
><
m

m

--

W

Ba I cones Opera t I n9 Sy stem fo r tile. XEROX 820- II
System Initialization
540

541
542
543
544
545
546
547

MACRO-BO 3.44

09-Dec-81

o 16t,
0167

n I OA
05

defb
defb

I, gp I odb
( I shl p.strb) or ( I shl p.auto)

016B

FF

defb

-I

subttl
page

Resident Monitor Entry Points

;end of I/o I nit table

Balcon~5
Re5id~nt

546
549
550
551
552
553
554
555
556
557
55B
559
560
561
562
563
564
565
5()6
567
568
569
570
571
572
573
574
575
576
577
576
579
580
561
582
583
564
585
586
587
5B8
589
590
591
592
593
594
595
596
597
59B
599
600
()01
602
603

illlj '>y"trllll foo
Monit(,,- Ellt,-y Point:,

OPrl'-d!

til':'

XEROX

6~,;-1I

;

.

;\1;'CRO-80 3.44

~~slcent

09-0.,~-ol

monitor entry points.

T~I:;

Entry Peint Vector provide:; the only reliable access
to services provided by the Resident Monitor.
Any access
te coce in the Monitor er its Ram page past the keyboara
variables is not allowea.
Future releases of the Resicent
Monitor will always previae compatability with these entry
vactors.
TI~is

restriction also appl'Ie:; to ttle R.esldent Monitor Ram
Pase at tha top of memory.
Access to Ram Variables must
ca obtainac through the appropriate entry vactor.
C.oove

0266!
FOOO
F003
F006
F009
FOOC
FOOF
F012
FOl5
FOl8
FOIB
FOIE
F021
F024
F027
F02A
F02D
F030
F033
F036
F039
F03C
F03F
F042
F045
F048
F04B
F04E
F051
F054
F057
F05A
F05D
F060
F063
F066
F069
F06C

c3.s.ag
(3· F07C

cold:

jp

(3 FA62
C3 FOCD
C3 FOD8
Ci F 2F 1
C3 F2FE

"::.r.l1:
ccnSl::
ce;l; n:

jp
jp
jp

c':)nOL!'(:

jp

C3
C3
C3
C3
C3
(3
C3
C3
C3
C3
C3
(3

FOE5
FOFO
FOF8
FAl7
FA3C
FA3E
FA4B
FA44
F344
F2B4
F2B8
F2A3
F097
FOBG
F08B
Fl05
FOA4
FOBF

C3
C3
C3
C3
C3
C3
C3 F13F
[3 F7A3
C3 F7AF
(::3 F79()
Ci F7BB
Cl F7CC
C3 F770
C3 F775
C3 F77F
C3 F788

jp
jp
jp
oefs

rest:art
prompt
kbdst
kbdin
crt out
fastcrt
siost
sioin
sioout
select
home
seel,
read
write
xqdvr
setcur
outcur
crtldir
getsel
day tim
config
siordy
setcon
ssp
nu lint
iocons
ioconi
;ocono
i 0 lis t
iolbt"
comins
cominp
comout
comots
nu lint
soft
16 0 -1

5Lbttl

Monitor Function Processors

jp

jp
jp
jp
jp

jp
jp
jp
jp
jp
jp
jp
jp

dal'ti:

jp
jp
jp

jp
.ip
usrsec: jp
jp

.iP
jp
jp
jp

jp
jp

jp

C3 F13F

iale~

C3 F002

sortv:

~,3.ge

;monitor restart
;Ulonitor entry point
;console status to A
;console input to A
;console output from A
;fast crt output from C
;sio channel b status to A
.sio channel b Input to A
;510 channel b output from A
;select drive in C
;home r/w head
;seek to track in C
·;read sector C -> buffer @ HL
;write sector C <- buffer @ HL
;execute physical driver request @ HL
;set direct crt cursor from HL
;direct crt display
;crt memory block move ala' LDIR
;return address of disk mapping table to HL
;return address of Time-of-Day
;return configuration status
;sio channel b output ready status
;set configuration
;start screen print
;user accessible 1 second· interrupt
;console status through lobyte
;console Input
through iobyte
;console output through iobyte
;printer output through iobyte
HH"inter 5tatus througil iobyte
;communications input ready status
;communications input data to A
;communications output data from C
;communicatlons output ready,status
.Idle while ilo is pending
;record soft error
;space for option rom linkage

p
"0
"0
(I)

::J

0-

><
m

m
-"

VI

Balcones Operating System for
Monitor Function P,-oc esso,-s
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640 .
641
642
643
644
645
646
647
64B
649
650
651
652
653
654
655
656
657
658

the XEROX 820-11

MACRO-OO 3.44

I

' ,

09-0ec-81

Monitor Restart.

,
FOn
F07D
F07F
FOBI
FOB]

F086
FOB!]

F3
DB
F6
03
C3

IC
80
IC
0000

II FF56
18 OF

restart:di
in
or
out
jp

, ,

Oayt im

day tim:

Id
jr

,,

Config

; lock system
a,.(syspio)
I shl 7
(syspio),a
prs

;enable banked rom
;reload monitor from rom or ram

- Retui-n Address of Time-ot-Oay.
de,day
retval

;point to day ot month

- Return Confi"uration Status Byte.

;

FOBS
F08E
F090
F091
F092
F093
F095

F097

FU9A
F09B
F09C
F09E
F09F
FOAO
FOAl
FOA2
FOA3

FOA4
FOA5
FDA 7
FOA9
FOAA
FOAB
FOAC
FOliO
FOAE
FOOn
FOB3
FOB4
FOD5

JA FOE3
·E6 BO
F6 00

config:
confg

Id
and
or
equ
Id
Id
jr

,,

getsel

getsel:

Id

,,

Retval

retval:

inc
dec
jr
Id
inc
Id
ex
ei
r-et

5F
16 01
18 03

II

F360

24
25
28 03
73
23
72
EB
FB
C9

7E
CB
FE
[JO
5F
7E
23
46
16
21
19
19
5E

BF
06

00
FFBF

retvl:
eiret:

,,

set con

setcon:

Id
res
cp
roe t
Id
Id
inc
Id
'Id
Id
add
add
Id

a, (mask)
;turn keyboard mask into c.keyni
080h
0
$-1
;*****=>;This word stored by Preset
e,a
d,rev-400
;return revision level
retval

- Get address of Select table.
de,Seltab

;set select table address

- Return Value to Caller.
h
h
z,retvl
(h I) ,e
hI
(h I) ,d
de,hl

;see i f high level

language ca II

;it assembly level ca II
;store answer in variable
.; leave result

in HL as well

- set configuration.
a, (11 I)
7,a
numcon
nc
e,a
a, (11 I)
hI
b, (tl I)
d,O
tll,contbl
hl,de
hl,de
e, (h I)

;get configuration table index

;it index out of range
;get read/write flag
;get configuration data
;set address of configuration table addresses
;get configurable byte address

·

'.

Balcones Ope,'atill9 System fa,' the XEROX 020-11
Moni tor' Funct ion P,'or.essors
659
660

661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
670
679

»

"'0
"'0

I'D
::J

a..

X

m

FOBb
FOB7
FOBO
FOB9
FOBB
FOBC
FOBD
FOBE

FOBF
FOCI
FOCLl
FOC5
FOCO
FOCA
FOCC

23
56
EB
CB 7F
7E
CO
70
C9

3E
32
AF
32
3E
D3
C9

67
F20E

MACRO-OO 3.44
inc
Id
ex
bit

hI
d, (h I)
de,hl
7,a
a, (h I)
z
(h I) ,b

Id

ret
Id
ret

,,

ssp

ssp:

Id
Id

-

xor"

F224
81
19

09-0L

Id
Id
out
ret
subttl
page

81

;set direction
:get previous value
: i f asking current configuration
:store new configuration

start screen print.
a,3+«24+1) shl
(spact),a
a
(spcnt),a
a,Olh
(ctcl),a
Console I

2)

:start with cr/lf

:start millisecond timer

Printer Drivers

»

"0
"0

it)

::J

a..
><
m

m
--4

.......

Balcones OperatillU System for the XEROX 820-11
I
Console / Pr inter- Drivers
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
71 I
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734

,,

;run this code upstairs

- keyboard status.

kbdst

0_ if no char
-I if char available

Returns A
A
FOCD
FOllO
FODI

FOll2
FOD4

:jA FF30

kbdst:

1:l7

CO

f6 FF
C9

09-Dec-81

above
d&seg

+

OOCD"

MACROr80 3.44

Id
or
ret

,,

soft

soft:

or
ret

,,

kbdin

a,(fifpnt)
a

;get

Z

;if keyboard queue is empty

input f ito bytecount

- record soft error.
-1

;set ready /

error status

- Keyboard Input.

Returns A = character

,
FOD5
FODO
FOOB
FODD
FODE
FOEI
FOE2
FOE3
FOE4

FOE5
FOE?
FOE9
FOEA
FOEC

FOED
FOFO
FOf3
FOf5
FOF7

CD
CD
28
E5
CD
E1
E6

F066
FOCD
F8
FI30
7F

C9

DB 07
E6 01
CO
3E FF

kbd i n 1 : ca I I
kbdin:
ca 1 I
jr
push
ca I I
pop
kbmask: and
equ
mask
I'e t

,,

siost

siost:

in
and
ret
Id
r-et

C9

CD
CD
28
DB

F066
FOE5
F8
05

; ;

sioin

sioinl:
sioin:

ca 11
ca II
jr
in
ret

C9

..
FOfO
FOF9
F[)FC
fOFF
FIOI

F5
CD fl05
CC F066
28 F8
F1

sioout

sioout: puSh
s i ox 1 :
ca II
ca I I
jr
pop

idle
; idle cpu
kbdst
z,kbdinl
; loop until keyboard input ready
hI
remove
;get keyboard entry
hI
07fh
$-1
i*****=>;this byte modified by ESC Olr

- sio ctlanne I

h

input ready status.

a,{siocpb)
00000001b

;-get sio status register

Z

;if no data available

a,-I

- Sio channel b input character.
idle
siost
z,sioinl
a, (siotipb)

-

;idle cpu
;test console status
; loop until data is
;ready at sio data port

SiD channel B output character.
af
siordy
z, id Ie
Z, 5

af

iox 1

; id I e cpu i f transmitter not ready

"

m
-'
())

,

Balcones Oper"atillU SY5tem for the XEROX 820-11
Console / Pr- i nt e. Drivers
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
70 I

»

"0
"0

/l)

::J

a.
><

ni

"

Fl02
Fl04

FI05
FI07
Fl09
F HIB
FlOC
Fl0D
FlOE
Fl0F
FIll
F 112
F 113
F 115
F 116
F 119
F lIB
FIlE
FI20
FI22
FI24
FI26
FI28
FI29
FI2C
FI2D
FI2E
FI2F

D3 05
C9

3E
D3
DB
E6

10
07
07
04

out
ret

,,

siordy

siordy:

Id
out
in
and
equ
xor
equ
jr
xor
ret
or
nop
ca 11
jr
ca II
and
sub
jr
sub
jr
cpt
Id
Id
equ
or
ret

siomsk
EE 04
sioval
28 02
AF
Ul

F6 FF
[JO

CD
28
CD
E6
D6
28
Dli
20

siordl :
xonenb:

FOE5
11
FOFO
7F
13
05
FE
04

2F

32 FI2D
3E FF

siord2:
siord3:
xofflg

67
C9

.,
FI30
FI33
FI34
FI37
FI38
FI3A
FI3C
FI3D
FI3E
FI3F

L I
35
21
34
CB
3E
86
6F
7E

C9

FF30

Remove

09-utlc-81

(siodpb),a

a,IOh
;reset status latch
(siocpll),a
a,(siocpll)
00000100b
;test tbe status bit
$-1
;****·=>;modified at run time
00000100b
$-1
;····*=>;modified at run time
z,siordl
:if hardware is ready
a
- 1

;set ready status
;*****=>;put RET here to disable Xon/Xoff

siost
z,siord3
sioin
7fh
Xoff
z,siord2
Xon-Xoff
nZ,siord3

;if pr"inter said Stop
; if not Resume
printer ready

(xofflg),a
a,-I
$-1
;*****=>iset I\S pending flag
a

- remove key from fifo.
hl,fifcnt
(h I )
hl,fifout

index:

ille

(h I )

subttl
page

;if input not available

;set

Id
dec
Id

res
Id
add
Id
Id
nul int: ret

;output data to sio

- Sio chann'e I B output ready ststus.

remove:

FF32
A6
20

MACRO-80 3.44

4, (h I)
a, low fifo
a, (h I)
I,a
a, (h I)

:decrement fifo count
,:point hI to fifo output offset
;advance f i f'o pointer
:modulo 16
; i nde x into fifo by offset
;fetch character in fifo

Interrupt Service Routines

»

-0
-0
((l

:l

a.
><

m

m

......

U)

Balcones Ope, at i IIU System for' the XEROX B20-Il
I
1 n t e,-r'upt 5el vice Routines
7B2
783
784
7B5
786
7B7
788
7B9
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
80b
807
808
809
BIO
8II
812
813
814
815
816
817
81B
819
1!20
B21
B22
B23
B24
825
826
827
020
829
830
831
832
833
834
835
836

; i

MACRO-80 3.44

isr

- inte'Tupt service routines.

service macro
ld
Id
push
push
endm

FI40
FI40
FI44
FILJ7
FI48
FI49
FI4A
FILJC
FI4D
FILJF
FI51
F154
FI55
FI57
F159
FI5C
F15D
FI60
FIG2
Flb5
FIG7
FlbA
FI6C
FlbE
FIEF
FIN)
F171
F 173
FI75
FI76
FI79
FI7C
F 170
F 1 7F
FIB2
FIU4
FI86
FIB7
Fl09
FI8C
FI8F
F l!lO

ED 73 FIEC
31 FF50
E5

F5
C5
DB IE
2F
FE 9E
LO 16
3A F20E
67
28 06
3E 07
32 F20E
AF
32 F224
IB 20
CD FOBF
IB 28
21 FF30
FE 96
28 II
4F
7E
3C
FE 10
30 IA

,,

keys,'v

keysrv:

service
Id
Id
push
push
push
in
cpl
cp
jr
ld
or

+
+
+
+

key I:
key2:

77

21

FF31

CD FI37
71
IB

10
CD FIEF
06 03
3G 00
2C
10 FB
CD F293
CD F003
CI
II! 57

key3:
key4:

key5:

j '"
Id
Id
xor
Id
j ,ca 11
jr
Id
cp
j.
Id
ld
inc
cp
j ,Id
Id
ca 11
ld
jr
ca II
lei
Id
inc
djnz
ca 11
ca II
pop
jr

09-Dec-BI

(savstk),sp
sp, intstk
hi
af

save user stack pointer and
i;;switch to local stack
i ; i save machine state

;; i

- pa,"a II e I keyboard interrupt service.
;save state

(savstk),sp
sp, intstk
hi
af
bc
a, (kbddat)
$crprt
nZ,key2
a,(spact)
a
z.keyl
a,3+(1 shl
(s'pac t) ,a
a
(spcnt),a
key5
s'sp
key5
hl,fifcnt
Abort
z,key3
c,a
a, (h 1 )
a
16
IIc,key5
(h I) ,a
hl,fitin
index
(hll,c
key5
,-et ins
b,3
(h I) .0
1
key4
c,-toff
warm
bc
rf i

;read keyboard input port
;if not screen print key

2)

;if screen not printing now
;set state to cr/lf/stop
;set screen print state
;restart character counter
,start screen print
,bump input fifo character count
,check user Abort Key
;warm start system

; ex; t now if fifo is fu II
;point hi

to fifo input offset

,store character In fifo

@

hi

,release Pio interrupt cpntroller
,.c lear fifo count
;and fifo inlout pointers
, turn crt memory off
,and warm start system
,return from interrupt

m
N

0

»
"0
"0
(()

::J
0..
X

m

Balcones Ope I"a t i n!J System for
Intel'rupt Service Routines
B37
B3B
B39
840
B41
B42
843
844
845
846
847
B4B
B49
B50
851
B52
B53
854
B55
B56
B57
B58
B59
B60
B61
B62
B63
864
865
B66
B67
B68
869
870
871
B72
873
B74
B75
B76
B77
B78
B79
8BO
BBI
BIl2
B83
884
B85
886
887
8118
889
890
B91
B92

the XEROX B20-11

,,
FEU
FI92
FI96
fl99
FI9A
FI9B
FI9E
FI9f
FIA2
FIA5
flAB
FIA9
FlAB
flAD
FIAF
FIBI
FIB2
FIB4
FIB6
FIB9
FIBA
FIBB
FIBD
FIBF
FICO
FIC2
FIC4
FIC5
FIC6
FIC8
FICA
FICB
FICe
FICD
FICE
FICF
FID2
F 103
FID4
FID5
F 106
F 1D7
FIDB
F ID9
FIDB
F IDD
FIDE
F IDF
FIE I
FIE2
FIE4
F1E6
FIE7
FIE8

MACRO-BO 3.44
timer

09-,

.-:-= ill

- Once per second interrupt.

timer:
ED
31
E5
F5
2A
23
22
CD
21
35
20
DB
E6
D3
C5
06
:3E
21
34
BE
30
36
2B
10
3E
34
8E
30
36
D5

73 flEC
Ff50
fF52
Ff52
F048
fF55
06
IC
FB
IC
02
3B
FF5B
2B
00
F7
17
20
00

28
28

'IE
2B
II
EB
119
7E
EB
DI
34
BE
3D
36
23
:34
3E
BE
30
36
23
34
CI

FIFO

OD
01
DB
04
01

+
+
+
+

service
Id
Id
push
push
Id
inc
Id
ca II
Id
dec
jr
in
and
out
time r I : push
Id
Id
Id
t imer2: inc
cp
jr
Id
dec
djnz
Id
inc
cp
jr
Id
push
dec
dec
Id
dec
Id
ex
add
ld
ex
pop
inc
cp
jr
Id
inc
inc
Id
cp
j r"
Id
inc
inc
timer3: pop

(savstk),sp
sp, intstk
hI
af
hl,(tikcnt)
hI
(tikcnt),hl
usrsec
hl,timout
(h I)
nZ,timerl
a,(syspio)
IIII 1000b
(syspio),a
bc
b,2
a,59
hl,secs
(h I)
(h I )
nC,timer3
(h I) .0
hI
t i mer2
a,23
(h I)
(h I)
nC,timer3
(h I) ,0
de
hI
hI
c. (h I)
hi

de,dpm-I
de,hl
hl,bc
a, (h I)
de",hl"
de
(h I )
(h I )
nc, t imer3
(h I ) , I
111
(h I )
a, II
(h I )
nc, t imel'3
(h I ) • 1
111
(h I )
bc

;advance binary seconds counter
;invoke user's interrupt routine
;decrement disk turn-off t ;mer
; ex i t

if not

timed out yet

;disable all drive selects which
;turns of f spindle motors

;point at wa II clock
;increment seconds
;if not one minute or hour

; increment hours

;if not one day

;get month
;point to day
;point to day/month table
;get number of days
; increment day

;if not end of month
;reset day

in month

; increment month

;if not new years eve
;wrap december to january
;signal Guy Lombardo

);>
-0
-0

tD

:J

0...

><

m

m
N

~

Balcones Opel·ati"~J System for
IntelTlIpt Ser·v i ce ROIlt ines
893
894
B95
896
B97
89B
B99
900
901
902
903
904
905
906
907
90B
909
910
911
912
913
914
915
911'>
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948

,

the XEROX 820-11

,,
,
FIE9
FlEA
FIEB
FIEC
FlEE
FIEF

F 1F I
F IF 2
FIF3
F1F4
F1F5
FIF6
FIF7
FIF8
F1F9
FIFA
FIFB
FIFC

FIFO
FIFO
F201
F2114
F205
F206
F209
F20A
F200
F20E
F20F
F210
F212
F214
F215
F2 HI
F21A
F21B
F210
F21F
F220
F223
F224
F225
F226
F229
F22C
F22D
F22F

FI
EI
31 0000

;restore stack
;*****=>;this word modified at runtime
;re-enable interrupts and return

Table of days per month.

dpm:

db
db
db
db
db
db
db
db
db
db
db
db

31
28
31
30
31
30
31
31
30
31
30
31

OIl I I i

mi I I; :

service
Id
Id
push
push
Id
inc
Id
Id
equ
Id
and
jr
Id
ca II
jr
rJec
jr
in
push
ca II
Id
equ
dec
jp
Id
Id
equ
Id

+
+
+
+

FF50
FF50
00
03
60
FI05
67
48
lC
F29C
00
spcnt

spaddr

; january
;febuary
;march
; apr i I
;may

;june
;jul y
;augLJst
;september
;october
;november
;decelllber

- Millisecond t illler interrupt service.

,,

30
FA F236
32 F224
21 0000
7E

af
hI
sp,O
$-2

,,

spact
67
E6
28
6F
CD
2El
20
20
DB
F5
CD
3E

09-0ec-81

- return From Interrupt.

pop
pop
Id
savstk equ
el
,-etins: reti

IF
IC
IF
IE
1F
IE
IF
IF
IE
IF
IE
IF

73 FIEC
FF50

rfl

rf i :

FB
ED 40

ED
31
E5
F5
2A
23
22
3E

MACRo-on 3.44

(savstk}.sp
sp, intstk
hI
af
hl,(Milsec)
hI
; increment millisecond counter
(Mi Isec) ,hI
a,O
;set screen print flag
$- I
;·.f***=>;this byte modit led at runtime
h,a
3
z,mil16
;it not print ing screen
I,a
siordy
;get printer status
Z ,m; 116
; i t printer not ready
I

f)z,mi1l2
;it not character print state
a,(syspio)
;get pia state
af
crton
a,O
;get character count
$-1
;·**··=>;byte mOdified at runtime
a
m,mi 10
;If end of line
(spcnt),a
hl,O
;set next character address
$-2
i*****=>;wor-d modified at runtime
a, (h I)

m

"-J
"-J

»
"0
"0
/1)

::J

Q.
X

m

Balcones v~,elat ing System for
Interrupt Service Routines
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
96B
969
970
971
972
973
974
975
976
977
97B
979
980
981
902
9B3
904
905
906
987
90B
909
990
991
992
993
994
995
996
997
990
999
1000
IDOl

F230
F232
F233
F234
F236
F238
F2:J9
F2:3A
F23C
F23F
F240
F241
F243
F244
F245
F246
F247
F248
F24A
F24C
F24E
F250
F251
F254
F255
F256
F 2~)8
F25B
F2GE
F25F
F260
F2f)1
F2G3
F265
F26G
F269
F2GB
F26C
F26E
F26F
F271
F273
F275
F277
F278
F27A
F27C
F27E
F280
F201

D3
2C
AF
18
3E
94
IF
CB
CD
E5
C5
06
70
80
6F
20
7E
E6
FE
20
10
70
32
CI
EI
3E
22
21

the XEROX B20-11

05
22
61

milO:

2F
F31E
50

lIIi 101 :
7F
20
02
F6
mi102:
F224
03
F220
F20E

nil III :

Bf)
77
F1
03 lC
10 lC
nli I 12:

20

21
20
7E
06
77
FE
20
3E
03
77
3E
lB
3E
03
35
C3

F20E
11
04
FE
05
01
19
OA
02
00
05

m1113:

F1E9

mi I I?:

mi I 14:
mi 115:

MACRO-80 3.44
out
inc
xor
jr
Id
sub
rra
sra
ca 11
push
push
Id
Id
add
Id
dec
Id
and
cp
jr
djnz
Id
Id
pop
pop
Id
Id
Id
or
Id
pop
out
jr
dec
Id
jr
Id
sub
Id
cp
jr
Id
out
ld
ld
jr
Id
out
dec
jp
subttl
page

09-.

lsiodpb),a
I
a
m; I II
a,I+(24 5hl

-Bl

2)

:flr.e hammer
:advance screen cursor
:do not advance state
: i f not end of line
:set address of next print 1 ine

h

a
cca
hI
bc
b,80
a,l
a,b
I,a
I
a, (h I)
7fh
nZ,mil02
mi 101
a,b
(spcnt),a
bc
hI
a,3
(spaddr),hl
hl,spact
(h 1 )
(h I ) ,a
af
(syspio),a
mi I 16
I
hl,spact
nZ,nlil14
a, (h I.l
1 shl 2
(h I) ,a
2- ( 1 shl 2)
nZ,mil13
a,l
(ctcl),a
(h I) ,a
a, 1 f
III! 115
a,cr
(siodpb),a
(h I )
rfi
Crt Driver.

:computa cursor address
isave next line address
:delete

trailing blanks

:get next character
: if not trailing blank
;set number of characters to print
:set CR next state
:set next display address
:set state variable
:advance state
:get pia back
;check next state
:set state address
: i f not If state
;advance line counter

:disable ctc interrupt
:set

line feed

;set carriage return
;move paper or carriage
;return from interrupt

»

"0
"0

It)

::l

a.
><
m

m

N
W

Balcones Ope,'atillY System f 0"
Crt Driver
1002
1003
1004
10()5
1006
1007
100B
1009
1010
101 I
1012
1013
1014
1015
1016
1017
10lB
1019
1020
1021
1022
1023·
1024
1025
1026
1027
102B
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056

F2U4
F2B7

F2UB
F2UB
F20E
F20F
F290

22

FFAF

the XEROX B20-II,

setcur - set direct display cursor position.

setcur:

Id
ret

,,

out cur - store character directly to crt memory.

outcur: ca II
Id
Id
inc
Id

,,
F293
F294
F296
F29B
F299
F29B

F29C
F29D
F29F
F2AI

F3
DB IC
CB BF
FB
03 IC
C9

F3
DB IC
CB FF
IB F6

09-0ec-BI

' ,
(9

CD F29C
2A FFAF
71
23
22 FFAF

MACRO-BO 3.44

I

crtoff -

crtoff: di
in
crtofl: res
ei
crt on I: out
ret

(di,'cur) ,hi

crton
hl,(dircur)
(II I) ,c
hi
(dircur),hl

up cursor address

; tu,-n on crt bank
;fetch direct cursor
;store character

turn crt ram off.
; lock pia access
a,(syspio)
7,a

ireset crt bank enable
;unlock pio access

(syspio),a

,,

e" t on - turn crt ram on.

erton:

(I i
in
set
jr

,,

;set

a,(syspio)
7,a
crtonl

: lock time-out interrupt
;get pia status
:enable bank

block move from/to crt memory.
Entry:

Source, address
DE
Destination address
BC
Number of bytes to move
A
0
Move crt rami to crt ram
A < 0 - Move sys ram to crt ram
A > 0
Move crt ram to sys ram

HL

-

F2A3
F'LA 7
F2AA
F2AB
F2AE
F2BO
F203
F2B5
F2B7
F2BU
f2BB
F2BD
F2BE
f2CI
f2C4
f2C5

ED
31
A7
CD
28
F2
EE
D3
E5
21
ED
E3
FA
01
C5
D5

73 F31B
FfEO
F29C
37
F2B5
80
IC
FfBO
4A
f2C4
0050

c,'t I d i,' : Id
Id
and
ea I I
jr
jp
x. 0
I d i r- I :
Idir2:
out
push
Id
adc
ex
jp
Id
I d i ,-3:
push
push
I~

(usrstk),sp
sp, c,-tstk
a
crton
z,crtmv
p,Idir2
80h
(syspio),a
hI
hi, -80
hl,bc
(sp) ,hI
m,Idlr3
bc,aO
bc
de

;do not use callers stack
;since i t may disappear
iset entry conditions

:block move within crt ram
:It move from crt ram to system ram
:enable SOlH"Ce bank
;save move source address
:count down one transfer buffer
;save overflow,

retrieve source address

;if less than one buffer
; transfer one buffer
,save byte count
;save destination address

m
N

~

,

Balcones Operatill9 System for' the. XEROX 820-11
Cr' t DI'iver
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1060
1(J69
1070
1071
1072
1073
1074
1075
1076
1077
1070
1079
lOBO
IDOl
1002
1083

F 2U;
F2C9
F2CO
F2Ce
F2CD
F2CF
F201
F20:l
F204
F2D7
F209
F2DA
F2DO
F2DC
F2DD
F2ED
F2El
F2E:3
F2E!j

11
ED
Dl
C1
DB
EE
03
E5
21
ED
E1
C1
78
A7
FA
01

F2E7
F2E9
F2Ee
F2FO

ED 00
CD F293
ED 76 F316
C9

FF5C
BO
lC
80
lC
FF5C
60

F2E9

;,>0 06
DB lC
18 CC

MACRO-OO 3.44
Id
ldir
pop
pop
in
xor
out
push
ld
ldir
pop
pop
ld
and
jp
or
jr
in
jr

cr tmv:.
Idir
crtmvo: ca II
Id
ret
subttl
page

09-l>v..;-01

de,linbuf
de
bc
a,(syspio)
80h
(syspio),a
hi
hl,linbuf

;set upper buffer
;move data to upper ram
;enable destination bank
isave source address
buffer
:set upper
;move data from buffer to destination

hI

bc
a,b
a
m,crtmvo
c
z,crtilivo
a,(syspio)
ldi r 1
crtoff
sp, (usrstk)

;retrieve bytes left to transfer
;no more move,

turn crt ram off and return

;if no more
;continue transfer one buffer at a crack
; turn crt ram off

Resident C,' t Driver.

»

u
u

/l)

::l

a..
)(

m

m

IV

lT1

Balcones Opened illY System for
Resident Crt DI- i ve,'
1084
1085
1086
1007
108B
IOB9
1090
1091
1092
109:3
1094
1095
1096
1097
109B
1099
1100
1101
1102
110:3
1104
1105
1106
1107
1108
I 109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1 127
112B
1129
1130
1 131
1132
1133
11 :34
1135
11 :36
II :37
1138

the XEROX 820-11

MACRO-SO 3.44

09-Dec-81

t

crtout - Crt Output Driver.
Entry:

Character in register A
16 bytes of stack space available
Char displayed, all registers saved

Ex it:
F2FI
F2F:.!
F:!FJ
F2F4
F2F5
F2F6
F2F9
F2FA
F2FB
F2FC
F2FD

F2FE
F:3lJ2
F305
F307
F:309
F30A
F30B
F30E
F30F
F312
F313
F316
F31B
F319
F31A
F31B
F31D

E5
D5
C5
F5
4F
CD F2FE

crtout: push
push
push
push
, Id

ca II
pop
pop
pop
pop
ret

F1
Cl

DI
EI
C9

ED
:.J I
f)D
DB
B7
F5
CD
FB
CD
FI
F4
DD
JE

73 F31B
FFEO
E5
IC
F29C
0169
F:!93
EI
DO

:J 1 F31B

Entry:
Exit:

Cha,-acter ill C
The only register preserved is SP
Peeking in register A reveals valuable characters.

,-e t

67
3A FFBI
134

cca:

3C

cca 1:
cca2:

DB 18
:30 FC
C6 78
67

;set character to process
:process character quickly
;restore callers registers

-

fastcrt:ld
Id
push
in
or
push
ca II
ei
ca II
pop
ca II
pop
Id
gold
equ
Id
usrstk
equ

C9

;maintain users registers on his stack

fastcrt

cca -

F31E
F31F
F322
F:323
F324
F326
F:32B
F3:!A

hi
de
bc
af
c,a
fast crt
af
bc
de
hI

fast crt driver.

(usrstk),sp
sp,crtstk

;read system pio
;set bank enable status
;save status for exit code
;turn on crt memory
:enable interrupts
;execute crt driver rom
:get previous bank enable s~atus
;disable bank now if it was disabled on entry

crtdvr
af
p,crtoff
i x
a,O
;sneak balcones golden characters to FAST users
$-1
sp,usrstk
. ;restore callers stack
$-2
;*****~>:this operand word is modified at runtime
compute cursor address.

= Row

A

Id
Id
add
inc
sub

h,a
a,(base)
a,h

Id

•

i x

a,(syspio)
a
af
crton

Entry:

jr
add

;do not use callers stack
;since it may disappear

a
24
nC,cca2
a,24+2*crtbas
h,a

;entry with base absolute
;ditto

m

IV
0'\

Ilaleolles OperdtillU System f
Resident Crt Or i vel',
1139
1140
II'll
1142
1143
1144
1145
1146
1147
1\48
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160

»

'U
'U

I'D
J

0X

m

F3213
F32D
F32F
F331

0 ('

the XEROX 820-11

2E 00
eB 2C
eB 10
C9

ld
sra
rr
ret
; ;

F332
F333
F335
F336

[) I 0000

F337
F338
F339
F33B
F33E
F342
F34:l

E5
21 OICF

C5
(9

22 F333
EO 43 F339
EI
(9

MACRO-8D 3,44

rstatt

09-Dee-81

1,0
Il
I

- Restore Previous Attribute,

rstatt: Id
Istatt
equ
pUSIl
ret

be,O
$-2
be

setprv: push
Id
prvatt
equ
Id
Id
pop
ret

hI
hl,setlow

subttl
page

;exeeute previous attribute routine

$-2
(lstatt),111
(prvatt),be
hI
Rom-resident Crt Driver

»

o
o

I'D

::J

0...

><
m

m

IV
'-.I

Balcon(;s Oper'dtiliH System tor tl1e XEROX B20-11
Rom-resi(1ent Crt D, iver
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
11BO
1181
1182
1183
11 B4
11B5
1186
l1B7
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215

DODO!

MACRO-OO 3.44

below
defs

+

09-Dec-B1

;execute In banked rom
comres

crtdvr - Crt Driver Proper.
0169
016C
016F
0170
0173
0176
0177
0179
017C
0170
017E
0180
0182
01B5
011:lb
0187
0188
0lB9

o 18B
018D
018F
0190
0191
0194
OHlb
0199
019C
019D

OIAD
01A3
01A5
01A6
0lA7
01A8
01AA

OIAL
OIAD
OlAF
OIBO
0lB2
0lB3

01B4

2A
3A
77
32
3A
B7
20
3A
Al
4F
FE
38
3A

FFAC
FFB4
F319
FFB2
10
FOE3
20
14
FFB3

crtdl:

BI
77

2C
70
E6 7F
fE 50

:W OA
AD
of
CD,02F7
18 03
CO 0230
22 FFAC
7E
32 FFB4
3A FFAE
FE 20
C8
4F
7E
CB BF
FE 20
79
20 03
7E
EE 80
77
C9

01B7

EB
:i6 00
EO

OIBO

30

01B9

20 4E

o 1 )j~i

crtdvr:

crtd2:
crtd3:

crtd4:

mu 1 t i :

Id
Id
Id
Id
Id
or
jr
Id
and
Id
cp
jr
Id
or
Id
inc

hl,(cursor)
a, (chrsav)
(h I) ,a
(gold),a
a,(leadin)
a
nZ,crtd2
a,(mask)

1

;store displayable character
;advance pointer to next column

J'd

a, I
Olllllllb

;extract colunm# from hi

'and
cp
jr
xor
Id
ca II
jr
ca II
Id
ld
ld
Id
cp .
ret
ld
Id
res
cp
ld
jr
ld
xor
Id
ret

;set cursor address
;retrieve character under cursor
;replace character under ·cursor
;bury balcones gold
;set leadin state
;if processing escape sequence
; ge t I<

m

Balcones Ope(,dtill[J System for tile XEROX B20-II
Rom-resident Cr- t Dr·iver
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
122B
1229
1230
12:11
I:o'J2
12:i3
1234
1 :.,>:j5
I:">]b
12J7
1 :.,>:jO
12]9
1240
1241
1242
1:">43
1244
1:">45
1246
1247
1240
1:0'49
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
126D
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271

OIBB

79

Id

,,
UIBC
OIBD
OleO
01C3
0lC5
01C6
010
01CO
0lC9
OICA
01CB
DiCe:
OICO
DICE

MACRO-80 3.44

E5
:0' 1 02BA
01 0011
ED BI
09
09
09
4E
23
46
E1
CO
<:5
C9

a,c

;get second character of sequence

if
(options and o.esct) ne 0
Escape table searcl.

pust.
Id
Id
search: cpi 1add
add
add
Id
inc
III
pop
ret
push
('et
endif
i;

09-Dec-81

III
IIl,esctab
bC,esctbl
hi ,bc
hi ,bc
hl,bc
c, (h I)
hi
b,(IlI)
hI
nz
bC

;options and o.esct

Set attribute modes.

OICf
OlDI

D3 36
C] F337

set low: out
jp

(lowlite),a
setprv

;set

OlD4

OIDI

D3 35
AI"
lU 08

5eti)1 i: out
xor
jr

(cllroI1l2) ,a
a
lIlodel

;select rOI1l 2
;select standard char set

0109
OIOtJ

03 35
IB 02

setinv: out
jr

(chrom2l,a
mode

;5elect rom 2

01 [JO
0101"
olEI
0lE4
0lE5
0lE6
0lE8
OlEA
OltB
OIEC
OIEE

OJ
3E
CD
47
F3
DB
CB
BO
FB
03
<:9

setgra: out
rno,je:
Id
mode I :
ca II
III
di
in
res
or
ei
out
ret

(chrom I ) ,a
a,4oh
setprv
b,a

;select rom I
;select a I ternate char set
;5et up previous attribute

o l[J6

34
40
F337
IC
B7
IC

; ;

DIU
01 F I
011"2
0lF3
OIFb

:lE 1:10
U6

AF
32 FFB3
(9

lJF

(syspio),a

; lock system
;read system pio
;clear rOI1l select bit
;unlocl<
;set or reset display mode

Enable/disabl" (07) (Jisplay of selected attribute mode

enatr:

III
dtJ
disatr: liar
dis I:
Id
ret
i j

01H

a,(5yspio)
6,a
tJ

la-light mode

5etrnsk

setrnsk: rrca

a ,BOil
6 ; Id b,
a
(attrib) ,a
-

;skip liar

Select 7 or 8 bi t data
;get

from keyboard

low order bit as upper bit mask

»

"0
"0

ro

:J

0..
X

m

Balcones Oper'atill!] System for
Rom-,'esiLlent Cr't Dr- i ver'
1272
1273
1274
1275
1276
1277
1278
1279
1-200
1281
1202
1283
12B4
1285
1206
1287
UOB
1289
12~10

1:.i91

1292
1293
1294
1295
1296
1297
1298
1299
1:300

m

IV

l.D

1301
1302
1303
1304
1 :lO5
1306
1307
1:108
1:109
1:110
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1:326
1 ::127

01F8
OIFA
01FB
01FE
01FF
0202
0203
0204

tl.e XEROX 020-11

MACRO-80 3.44
or
ILl
ILl
Id
Id
ld
Id
ret

F6 7F
4F
II FOE3
IA
J2 F319
79
12
C9

09-Dec-81

7fh
e.a
de,mask
a, (de)
(gold),a
a.e
(de),a

Process cursor position sequence.
Id
Id
ret

:3E 02
12
1:9

setxy:

0209
020A
020e
02011
020F
02111
0211
021 :j
0215
0216
02113
0219

3D
20
6F
:iE
1 :.i
79
E6
D6
DB
FE
DO
C3

setxyl: dec
jr
ld
Id
Id
setrow: Id
and
sub
ret
cp
ret
jp

a
nZ,III3tst
I, a
a,3
(de),a
a,c
07fh

0211:
02Hl
021F
022U
0222
0224
0225
0227
022U
0229
022A

3D
20
79
E6
D6
D8
FE
DO
B5
6F
C9

1113tst:

dec
jr
setco I: Id
and
sub
ret
cp
r;'et
or
Id
ret

a
nZ,m4tst
a,c
07fh

O:.i:.iB

m4 t

022E
022F

3D
:.iO 04
Dl
C3 0182

(Jec
jr
pop
jp

a
nZ,m5tst
de
crtdl

0232
0235
0238
0239
023C

JA FFAE
32 F319
79
32 FFAE
(9

rn5tst:

Id
Id
Id
Id
ret

a,(csrchr)
(gold) ,a
a,c
(csrchr),a

onc

03
7F
20
18
F31E
OC
7F
20
50

,
D23D
02411
024:1

11 FFB2
D2 01B4
F-E 05

;store keyboard mask

,,
0205
0207
02l11l

10

;stash balcones gold

5

t :

.

contrl:

contrl
Id
jp
cp

a,2
(de),a

c
24
nc
cca

c
80
nc
I
I, a

;make leadin=2 next time

; if not in state 2
;clear low cursor pas
;set

state 3 for next

t ;me

;strip parity bit
; if

i II ega I character

;compute cursor address

;if not ready for column
;strip parity bit
,row,col
; of esc,

-

imerg e

sequence

in col# with I

; if not escape state 4
; pitch address of crtd3
;display char'acter in C
; stasi. balcones gold
;store new cursor character

- process control character.
de,leadin
nC,multi
'E'-64

;point at

leadin state

;if multi code sequence in prog,'ess

m
W
o

l>

"0
"0

CD
J
0..

><

m

Balcones Op'H"atil\~J System for the XEROX 820-11
Rom-,'esiclent C,"t O,"iver
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
135:3
1354
1355
1356
1357
1358
1359
1:160
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383

0245
0246
0247
024A
024C
024D
024E
024F
0250
0251
0252
0253

D8
E5
21 024A
06 00
09

0254
0256
0258
025A
025C
025E
0260
0262
0264
0264
0268
026A
026e
026E
0270
0272
0274
0276
0278
027A

u2C5
f332

onc

027E
0280
0282
0284
0286
0208

ret
push
ld
ld
add
add
ld
inc
ld
pop
push
ret

Os)

4E
23
46
El
C5
C9

onF

02CE
031F
IJ2F7
O:20C
0204
02F2
02CO
02CO
02CO
0361
02CO
02CO
02CO
02CO
02CO
02CO
0344
02CO
0357
0280
02(0
02CO
02C9
02Cl

0036

MACRO-OO 3.44

09-Dec-Ol

c
;control char is out of range
hI
;save cursor
hI ,ctltab-('E'~64).2
b,O
hl,bc
;index through control character table
hl,bc
c, (11 I)
hi
b,(hl)
;get address of control subroutine
hi
bc
;execute control code driver

if
ct I tab: detw
defw
defw
defw
defw
defw
defw
defw
defw
defw
defw
defw
defw
defw
defw
defw
defw
defw
defw
detw
defw
defw
defw
defw
defw
defw
defw

(options and o.esct) ne
defcur
;Ctrl-e
rstatt
;Ctrl-~
bell
;Ctrl-g
bakspc
;Ctrl-h
tab
;Ctrl-i
Ifeed
;Ctrl-j
upcsr
;Ctrl-k
forspc
;Ctrl-I
return
;Ctrl-m
nona
;Ctrl-n
nona
;Ctrl-o
nona
;Ctrl-p
clreos
;Ctrl-q
nona
;Ctrl-r
nona
;Ctrl-s
nona
;Ctrl-t
nona
;Ctrl-u
nona
;Ctrl-v
nona
;Ctrl-w
clreol
;Ctrl-x
nona
;Ctrl-y
clrscn
;Ctrl-z
escape
;Ctrl-[
nona
;Ctrl-\
nona
;Ctrl-J
;Ctf-I-A
homeup
,Ctrlstuff

ctlsiz

$-ctltab

equ

0
is
is
is
is
is
is
is
is
is
is
is
is
is
is
is
is
is
is
is
is
is
is
is
is
is
is
is

define new cursor character
restore previous attribute mode
the bell
cursor left
tab
cursor down
cursor up
cursor right
carriage return
not acceptable
not acceptable
not acceptable
clear to end-of-screen
not acceptable
not acceptable
not .acceptabl e
not acceptable
not acceptable
not acceptable
clear to end-of-line
not acceptable
clear screen
escape
not acceptable
not acceptable
hallie up
display control chars

Escape sequence table.
Maintains functional compatibility with
ADM-3a style supersets.
028A
02116
028C
028D
028E
028F
0290

28
29
2A
30
31
34
35

esctab: db
db
db
db
db
db
db

,( ,
, ) ,
, '

.

'0'
'I'

'4'
'5'

termin~ls

;disable attribute
;enable atribute
;clear screen
;strip keyboard upper bit
;pass keyboard upper bit
;char font and blinking
;char font and graphics

supporting

,>
J
J
)

I
L
(

n

m
W

~

8alcones Operat i/iU '>ystelll for the XEROX 820-11
CI t DI i ver
ROIII-I'esid~nt
1384
1:385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1"105
14116
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
14113
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1430
1439

0291
0292
0293
0294
0295
0296
0297
0298
0299
029A
0011
029B
0290
029F
02Al
02A3
02A5
02A7
02A9
02AB
02AD
02AF
02Bl
02B3
02B5
0287
02B9
028B

02BD
02AF
02CO

02[1
02[3
02C4

Jb

:n
38
;lD

45
51
52
57
54
59
esctbl
0361
U::l44
03F5
037C
03DC
03A4
0205
01CF
0109
()ID4
I1IDO

(Jl04
1l1F7
U1F7
0:357
01EF
01F2

' 6'
'7 '

db
db
db
db
db
db
db
db
db
db
equ

'a'

-

'E'
'Q'

'R'

'W'
'T'
'V'

09-Dec-81
;char font and blinking
;char font and inverse video
;char font and la-light
;position cursor
; I i.ne insert
;cilaracter inse'rt
; line delete
;character delete
;clear to end of line
;clear to end of screen

$-esctab

escadr: defw
defw
uefw
defw
defw
defw
defw
detw
defw
defw
defw
defw
defw
defw
defw
defw
defw
ifl
if
.printx
endif
endif
endif

clreos
clreol
chrde1
I indel
chrins
lin i ns
setxy
set low
setinv
se t b I i
setgra
setbli
setillsk
setillsk
Cll-SCII
enatr
disatr
($-escadr)/2 ne esctbl
Escape table mismatch
;o.esct and options

- Initialize escape sequence.

,,

escape

3E 01
IL

escape:

a,l
(de) ,a

C9

nona:

Id
Id
ret

,,

stuff -

Enable next char- ta be stored directly.

stuff:

Id
Id
ret

a,4
(de) ,a

:jE 04
I L

(9

.,
02C5
02C7
02CO

MACRO-80 3.44

JE 05

Id
Id
ret

,,

I-,ollltlup

C9

;set sequence state

;for control char output mode

dljfcur -

defcur:

12

iset sequence state
;for escape processing

Enable next chara to be new cursor.
a,5
(de) ,a

- Move cursor to upper left.

Tl
.JJ

,,-,

~
-0
-0
I'D

::s

a.
X

m

Baleones Operat
Rom- ,-es i uen t C,
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
145)
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1460
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
14BO
1481
1482
1403
1484
1485
1486
1487
1480
1409
1490
1491
1492
1'193
1494
1495

U2C9
02CB

i"~1 System
t Dr· i vel'

DE 20
C3 0210

for

tlltl

XEROX 820-11
homeup:

.
02CE
02CF
02Dl
0202
02D3

7D
Eo 7F
C8
2D
C9

,

bakspc:

i i

0204
02D5
02D7
02D9
020A
02DB

02DC
020F
02EO
02EI
02E3
02E4
02E6

\

02E7
02EA
02EB
02EC
02EE
02EF
02Fl

02F2
02F3
02F5
02F6

7D
E6 7F
FE 4F
DO
2C
C9

11 FF80
19
7C
FE 30
DO
26 3B
C9

11 0080
19
7C
FE 3C
DO
26 3D
C9

III

forspc:

EG

4F
Cll 02E7

cursor addressing routine
; to do llOmeup almost for free
i'use

bakspc - Move cursor Ie ft.
Id
and
ret
dec
ret

a,l
01111111b
z
I

;check for left margin
;abort i f if! leftmost column
;back up cursor pointer

forspc - Move cursor right.
Id
and
cp
ret
inc
ret

a, I
01111111b
79
nc
I

; cf,eck for rightmost colunm
;do nothing i f already there
;else advance the cursor pointer

upcsr:

Id
add
Id
cp
ret
Id
ret

de,-12B
hi ,de
a,h
crt bas
nc
Il,crttop-l

;subtract I from row# component
; of cursor pointer in hi
; checl< for underflow of pointer
;wrap cursor a,-ound modulo 3k

,,

dncsr - Move cursor down.

dncsr:

Id
add
Id
cp
ret
Id
ret

de,120
hi ,de
a,h
crttop
c
h,crtbas

;add 1 to row# component
; of cursor' pointer in hi
;check for overflow of pointer
; ,-eset pointer modulo 128*24

; ;

return - Move cursor to

left side,

retun1:

Id
and
Id
ret

;clear column

Ifeed:

1F

c,
setl-o.,

upscr - Move cursor up.

E6 00
6F
C9

7D
17
7C
17

Id
jp

09-Dee-81

; ;

..
02F7
02F8
02F9
02FA
02FB
02FD
02FE

MACRO-80 3.44

a, I
10000000b
l,a

;move cursor pointer back
; to start of line

I feed - Move cursor down with scrol I,
Id
ria
Id
rIa
and
Id
ca II

a, I
a,ll
·;extraet row# component of hi
00011 11 lb
c,a
dncsr

;copy row# into c for scroll test
;move cursor to next row down

I

1>
0

[]
It)

::l

CL
X

I

m

m

W
W

Balcones Oper'a ( i IIU :::'ystem for'
Rom-resident Cr't Dr' i ver
1490
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
151 I
1512
1513
1514
1515
1510
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1521:l
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547·
1541l
1549
1550
1551

0301
0304
0305
0308
0309
030A
0300
030E
0311
0314
0315
0316
0318
031B
0310
031E

OJIF
OJ22
0323
0325
0326
0328
0329
032A
032C
0320
032E

032F
0331
0333
0335
0337
0339
0336
0330
033E
0340

0341

0344
0345
0347
0349
034A
034C

JA FFBI
91
~i 2 F319
CO
E5
3A F31C
3C
C4 040F
CO 0341
29
7C
E6 If
32 FFBI
03 14
EI
C9

II 0008
70
E6 78
83
FE 50

MACRO-I:lO 3.44

tile XEROX 1:l20-11

.

tab

tab:

Id
Id
and
add
cp
ret
Id
and
Id
add
ret

DO
70
Eo f8
6F
19
C9

3E
03
06
10
03
06
10

35
29
61
FE
28
61
FE

; i

be II

be II:
be I 11:

ld
out
Id
djnz
out
Id
djnz
dec
jr
ret

3D
LfJ F 1
U)

CD 02F2

7[)

E6 7f
fE 50
Oll

ED 44
C6 50

a, (base)
c
(gold),a
nz
hi
a, (usrstk+1l
a
nZ,bbg
c I r I in
hl,hl
a,h
000 III II b
(base),a
(scroll) ,a
hi

Id
sub
Id
ret
push
Id
inc
call
ca II
add
Id
and
Id
out
pop
ret

, ,

09-0ec-81

-

,test i f cursor was on bottom row
, of screen before moving down
,send scro II flag back to fast users
,exit i f not at bottom
;prepare scroll screen up
;bury balcones gold, unless monitor running
; f i I I top line with spaces
;get row# component of hi

into a

;store new base Ii ne#
;scroll top line to bottom
;restore cursor

Move cursor to ne.l( t
de,8
a, I

tab stop.

;tabs are every 8 columns
;get column component of
ipreviou5 tab position

01111000u

a,e
80
nc
a, I
11111000b
I,a
hi ,de

;if next tab column past end of line
;advance cursor to next tab stop

- Move speaker back and forth.

; i

c I r lin

c I r I iii:

ca II

,,

clreol

c I reo I:

Id
and
cp
ret
neg
add

a,bltim
(bellon),a
b,blonc
$
(bellof),a
b,blofc
$
a
nz ,ue III

,Bell time constant
;push speaker out
;set Be II on time constant
;pause 6*2 micro seconds
;yank speaker in
;set 6e I I off, time constant
;if more noise

to make

- C I ear' line.
return

- Clear to end

;return cursor and fa II
of

through clreol

line.

a, I
011111110
80
nc

;if someone busted curpos

a,80

;calculate number of characters to clear

;get column component of cursor posistion

m

W

~

)>

-a
-a
lI>
::J

0-

><

m

Balcones Opel-ati,,!) System t or- trle XEROX 820-11
ROlli-resident C, t D. i ver
155:!
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
156U
1569
1570
1571
1572
1573
1574
1575
1576
1577
1570
1579
1580
1581
1582
1583
1584
1585
1586
1587
1580
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
IG06
1607

U34E
034F
0350
0352
0353
0355
0356

0357
035A
035C
035F

47
70
36 20
2C
I [) FB
bF
(9

21
3E
32
D3

3000

c I r I:

O~H\B

7C
17
E6 IF
89
28 08
CD 02E'!
CD 0341
18 E8
E1
(9

039L

0394
0395
0396
0397
0399
039B
039C
039E
039f

040F
IF
4B FF8d
03DI
10

lHl50
ED BO

01

( 1

79
:jC

FE
38
AF
18
EB
CD

18
ED
EA
U341

; i f end of line not clear
;restore cursor column

I (j

clrs2:

hl,crtmem
a,23
(base),a
(scroll),a

;home cursor

;put line 23 at bottom of screen
;note scroll regi'ster gets A8-AI2, not dO-d7

clreos - clear to end of screen.

clreos; ca II
pust)
c I r'sl :
Id

17

E5
CO
29
7C
Eb
ED
CO
BU
2f1
C5

column
location

ld
Id
Id
out

,,
037C
0370
0300
0381
03U2
0384
0388
038B
038C
038E
038F

;save cucsor

;clear next

clr'sen:

; ;

036C
0360
036F
0370
0372
0375
0378
037A
0378

b,a
a, I
(h I) , .
I
c I r-l
I,a

clrscn - c I ear' visible screen memory.

FFBI
14

CD 0344
E5
ED, 4B FFBI
70

Id
Id
Id
inc
djnz
Id
ret

09-Dec-81

,,
17

0361
0364
0365
0369
036A

MACRD-80 3.44

ria
Id
ria
and
cp
jr
ca II
ca II
jr
pop
ret

clreol
hi
bC,(base)
a, I

;clear remainder of current row
;save cursor location
;set bottom screen row to c

a,h

;get row# component of hI
000 I1I11 b
c
z,clrs2
dncsr
c I r I in
clrsl
hi

;if hi is on bottom row of screen
;point hi to next row
;and f i I I tl1a t line with spaces
;restore original cursor pointer

I indel - Line delete,

Ii nde I; pust)
ca I I
add
Id
and
III
lind I;
ca II
cp
jr
pusll
Id
I d i ,pop
Id
inc
cp
jr
xor
jr
1 i n[12:
ex
1 ind3:
ca II

hi
bbg
hi ,Ill
a,h
00011111 b
bc, (base- I )
smp
b
z, 1 i nd2
bc
bc,UO
bc
a,c
a
24
c,lindl
a
lind1
de,hl
c 1 r lin

into a

CUJ-sor address
;bury balcones gold

;save

;extract row
;get base screen row in b
;set move parameters
; if last line
;b=last line, c=row

;wrap
;move next

1 i ne

»
0

6"lculles Ope/uli,,!.! :'ystern for' U'le XEROX 020-11
ROIll-r'esident Crt [Jriver

MACRO-BO 3.44

09-0ec-Bl

0
(1)

::J

0.

><
m

1600
1609
1610
1611
1612
1613
1~14

m

W

Ul

1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
i639
1640
1641
1642
1643
1644
1645
1646
1647
1640
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663

03A2
03A3

pop
ret

1'.1
(9

,,
OJA4
03A5
03A7
03AA
03AO
03AE
03AF
0360
0361
0363
0364
0367
03bO
036A
03B6
03BE
03CO
O3C3
03C4
03C5
03CU
03CA
03C6
03CO
03CE
03CF

0301
0302
0305
0306
0307
030A
0300

030C
03DD
030E
03EO
o3E2
03E4
03E5
03E6
03EO
03EA
03EB
03EC

E5
3E
CO
CO
El
E5
29
7C
E6
47
3A
68
2B
30
F2
3E
CO
EB
C5
01
EO
C1
18
E1
E5
10

17
F31E
040F

IF
FF61
13
03CO
17
0301
0050
BO
EA
CE

4F
CD F324
EB
79
CD F3'23
79

71

7F
44
4F

20
06

I in ins

linins: push
Id
cal I
ca II
pop
PUSll
add
Id
and
Id
Id
lin i I :
cp
jr
dec
jp
Id
1 in i 2:
call
ex
push
Id
Idir
pop
jr
lin i 3:
pop
push
jr

bc
I j nil
hI
hi
I ind3

cursor

;save cursor position

;get bottom line
;compute cursor address
;bury balcones gold

;extract cursor row
;set

last

1 i ne

; if move complete

;set move parameters

;llIove

next

line

;restore cursor
;clear cursor line

- Set move parameters.

smp

smp:

Id
ca 11
ex
Id
ca II
Id
I'e t

,,

ch,'ins

Clll' ills: PUSll
ld
and
neg
add
Id
Id
Id
jr
chrinl: inc
Id
Id

.restore original

- Line insert.
hi
a,23
cca
bbg
hI
hI
hl,hl
a,h
00011111b
b,a
a,(base)
b
z,lln!3
a
p,Iini2
a,23
smp
de,hl
bc
bC,eO

i;

U)

E5
70
E6
ED,
C6
47
7E
36
20
2C
4E

hi

c,a
cca2
de,hl
a,c
ccal
a,c

;save

I~OW

- Character insert.
~d

a,l
01111111 b
a,79
b,a
a, (h I)
(h I) , .
z,chrin2
I
C,(hl)
(h I) ,a

;set cursor column
;set move length = 79-column
;numuer of chars to move
;get char under cursor
;clear char under cursor
; if cursor in last column

m

W

en

B20-1I
Balcones Operating System for the XEROX
ROIll-resichtnt C,-t 0,' i ver
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
16BO
16BI
16B2
16B3
16B4
16B5
16B6
1687
16B8
16B9
1690
1691
1692
1693
1694
1695
1696
1697
169B
1699

»

-0
-0

It)

:::s

0X

m

03ED
03EE
03fO
03f3
03f4

79
10 fA
32 f319
El
C9

MACRO-BO 3.44

chrdel

,

03f5
03f6
03f7
03f9
03ffl
03fD
03fE
0400
0401
0402
0403
0406
0407
040A
040B
0400
040E

E5
7D
E6
ED
C6
4F
06
54
50
lA
32
23
C4
EB
36
EI
C9

7f
44
4f
00

F319
041B
20

chrde I: push
ld
anel
neg
ada
lei
ICI
Id
Id
Id
lei
inc
ca II
ex
ICI
pop
ret

CD
11
01
ED
C9

02F2
FF5C
0050
BO

-

I shit t

hI
a, I
01111111b

;isolate cursor column

a,79
c,a

;number of chars to move

b,O

d,h
e, I
a, (de)
(gold),a
hI
nz,ldirx
de,hl
(h I). .
hI

Imine balcones gold

;blank last char on line
;restore cursor

bury balcones gold.

bbg -

bbg:

call
lel
Id
Idir
ret

return
de, I inbuf
bc,BO

subttl
page

Logical

Idi rx:

line into the gold m\ne

Character" delete.

,

'

040f
0412
0415
04Hl
041A

a,c
chrinl
(gold),a
hi

Id
djnz
chrin2: Id
pop
ret

' ,

09-Dec-BI

to Physical Driver .Executioner

79-column

»
o

o

1'1)

::J

a...
><
m

Balcones Operalill,j Sy!>tem tor the XEROX 1:120-11
Loyical to Plly"icdl Dr'iver- Executioner
1700
1701
1702
1703
1704
1705
1706
1707
170B
1709
1710
1711
1712
1713
1714
1715
1716
1717
171 U
1719
1720
1721
17L2
17~3

1724
17L5

1726
ln7
172U

1729
17]0
1731
1732
1733

m

w

'-J

09-Dec-1:I1

;code goes in ram

above
d&seg

+

051B!

MACRO-BO 3,44

Xqdvr - Execute Physical Driver.

f::l44
f345
f346
f347
f34B
f34B
f34D
f34E
f34f
F350
f351
F352
f355
F356
F357
f358
f359
f35A
f35B
F35C
f35[l
f35E

23
E5
23
5E
21 f360
16 00
19
19
5E
23
7E
21 f3BO
19
19
5E
23
56
E1
71
2B
D5

C9

xqdvr:

Entry:

HL; Pointer to Physical Drive Request Block

inc
push
inc
Id
Id
Id
add
add
Id
inc
Id
Id
add
add
ld
inc
Id
pop
Id
dec
push
ret

hi
hi
hI
e. (h I)
hi, Se I tab
d,O
hi ,de
til ,de
e, (h I)
hi
a, (h 1 )
hl,Drvtab
hl,de
hl,de
e, (h 1 )
hI

subttl
page

;point at physical unit
;set logical drive
;Set driver mapping table address
;index into driver select table
;set physical driver index
;set physical unit
;set Driver table address
;set physical driver address

d, (h I)

hI
(h I)

hI
de

,a

;recover request block address
;store physical unit
;execute physical driver

Physical Disk Driver Area

m

w

00

Balcon",» Operalill,j System for
Physical Disk lJrlver Ar'ea
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752

»
"0
"0
ttl
j

0..,
X

m

XEROX 020-11

; i

+

035f"

,

.

MACRO-80 3.44

f35f

; ;

,
f360

09-Dec-81

Physical Disk 0,- i ver Area.
above
d8.seg
Waste space to get drivers on page boundry.

Wasted:
equ
bndry
if
defs
endif

f35f
OOOf

1/53

1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
17G9
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1700
1781
1702
1783
1704
1785
1786
1707
1780

UHl

Logical

Ofh
($ and bndry) ne 0
bndry+l-($ and bndry), -1
to Physical Drive Mapping Tables.

Se I tab contains two bytes per logical CPIM drive A-P.
The first byte is an index into the physical driver
address table below.
The second byte is a unit number
that is
passed to the driver by the standard deblocker.

Se I tab:

f360
f362
f364
f366

01
01
01
01

00
01
02
03

.A:

f368
f36A
f3GC
f36E

01
01
01
01

04
05
06
07

· E:
· f:
.G:

f370
f372
f374
f376

00 00
00 00
un 00
00 00

f378
f37A
f37C
f 3 7E:

Oll
00
00
UO

00
00
00
00

defb
defb
defb
defb

1,0
I,1
1:2
1,3

;floppy
,; Floppy
;Floppy
;Floppy

defb
defb
defb
defb

1,4
1,5
1,6
1,7

;Rigid
;Rigid
;Rigid
;Rigid

Partition
Partition
Par'tition
Par't it ion

(Iefb
detb
defb
defb

0,0
0,0
0,0
0,0

; Er;ror; E,-ror'
;Err-or
; E,-ror-

DriverDrive,'
Dr-iverDriver

.0:
.P:

(Ie ftl
defb
defb
(Jefb

0,0
0,0
0,0
0,0

;Error
;Error
; Error'
;Error

Driver
Driver
Dr i ver'
Driver

,,

PI1YS i ca I Driver Address Table.

.6:

· C:
.0:

.H:

·1;
· J:
· K:

· L:
.M:
.N:

Unit 0
Unit 1
Unit 2
Unit 3
0
I
2
3

Dvrtab contains the addr'esses of several independent
physical disk driver-so
By convention, driver II 0 always
returns a select error.
f380
f382
F384
f306
f388
f3BA
f30C

f42A
f4BO

nooo
0000
(JUOO

0000
!JOOO

Drvtab: defw
(ie f w
defw
defw
defw
defw
defw

Se ler'r
DSkdvr
0
0
0
0
0

;select error physical driver
;Disk driver (WD or SA)
;Empty physical driver expansion slots

»

"0
"0
(1)

J

a.
><
m

Balco(les Openlt.ill'J ~ystem f
Physical Disk 01 ivel Area
17B9
1790
1791
1792
1793
1794
1795
1796
1797
179B
1799
HlOO

1801
1802
1803
1804
1805
1806
1807
HllJ!l

1809
l!l1 n
10 II
1812
lB13

m
w

I.D

F3BE

01'

tile XEROX B20-11

MACRO-BO 3.44
defw

fFFF

...

0-1

09-Dec-Bl
;Illark

last empty expansion slot

Overlaid Monitor Ram Address Definitions.

FD211
FD40
FD6D
0000
0000
0000
0000

dirbuf
chkOO
chkOl
chk02
chk03
chk04
chk05
chk06
chk07

equ
equ
equ
equ
equ
equ
equ
equ
equ

OfcBOh
OfdOOh
Ofd20h
Ofd40h
Ofd60h
0
0
0
0

;di rector' buffer
;Directory Check
;Directory Check
;Directory Check
;Directory Check
;No Check Vector
;No Check Vector
;No Check Vector
;No Check Vector

FD811
FOAll
FDCC)
FDEl)
fEOO
FE80
fECO
fEEO

a II 00
a 1101
a 1102
a 1103
all04
a II 05
all06
al107

equ
equ
equ
equ
equ
equ
equ
equ

Ofd80h
OfdaOh
OfdcOh
OfdeDh
OfeOOh
Ofe80h
OfecOh
OfeeOh

;Floppy Orive. 0 Allocation Vector
;Floppy Drive 1 Allocation Vector
;Floppy Drive 2 Allocation Vector
;Floppy Drive 3 Allocation Vector
;Rigid Partition Allocation vectors

subttl
page

Disk Parameter Headel's

FeUU

Form

Vector for Floppy Drive
Vector for Floppy Drive
Vector for Floppy Drive
Vector for Floppy Drive
for Rigid Partition 0
for Rigid Part it ion I
for Rigid Partition 2
for Rigid Partition 3

0
1

2
3

m

.J::..
0

Balcunes Opera t i IIU ~ystelll tor tI.e XEROX 820-11
Disk Parameter lie.;ders
IBI4
1815
IBID
IB 17
1818
1819
1820
1821
1822
1823
1824
18251826
1827
1828
1829
1830
1831
1832
1833
1834
18:35
1836
1837
1838
IU39
1 ULJ()
I ULl1
IU42
11:14 :i
IU44
1845
lU46
IU47
1848
1849
1850
1851
IB52
1853
IU54
IU55
IU56
IU57
lU5U

»

1J

"0

lI>
J
0...

><
m

F39fl
F394
F391:1
F39C

UOOO
(Jooo
FC80
FDOO

0000
0000
0000
FD80

F3AO
F3A4
F3AU
F3AC

0000
OUOO
FC80
F020

F3BO
F3B4
F3B8
F3BC

0000
0000
FC80
fD40

F3ClJ
F3C4
F3C8
F3CC

MACRO-80 3.44

09-Dec-BI

Disk Parameter Headers.
; ;
:
Dpbase: dw
0,0,0,0

:Floppy Drive 0

dw
dw

dirbuf,O
chkOO,allOO

0000
0000
0000
FDAO

dw

0,0,0,0

dw
dw

dlrbuf,O
chkol,allOl

0000
0000
0000
FDCo

dw

0,0,0,0

(Jw
dw

dirbuf,O
chk02,all02

nooo 0000
0000 0000
FC80 0000
FD60 FDEO

dw

0,0,0,0

dw
dw

dirbuf,O
ClOk03, a I 103

F30D
F304
F308
f30C

DODO
Ilono
FCUO
UOOO

0000
0000
F470
FEOO

dw

0,0,0,0

dw
dw

dirbuf,Dpbrg4
chk04 ,a I 104

F3EIJ
F3E4
F3EU
F3EC

DODO
DOnO
FCUO
UDnO

0000
0000
F480
FE80

dw

0,0,0,0

dw
dw

dirbuf,Dpbrg5
chk05,all05

F3FLJ
F3F4
F3FU
F3FC

DODO
ooun
fC80
llnDD

0000
0000
F490
FECD

dw

0,0,0,0

dw
dw

dir'buf,Opbrg6
Chk06, a I 106

F40(J
F411'1
F40U
F41)c

IJllOo
11000
FCUO
11000

0000
0000
F4Ao
FEED

dw

0,0,0,0

dw
(Jw

dirlJuf ,Opbrg7
chk07,al1D7

subttl
page

Sector Translate Tables

:Floppy Drive 1

:Floppy Drive 2

:Floppy Drive 3

:Rigid Partition 0

:Rigid Partition 1

;Rigid Partition 2

;Rigid Partition 3

l>

BaicOlle5 Operal;"\) System fo,'

D

Secto,' T'"ollslate Tables

D
ttl

::J

a..
x

m

1859
1860
1861
1862
1863
1864
Itl65
1-866
1867
1868
1869
1870
1871
1872
lt17 3
1874
1875
1876
1877
1878

tile XEROX 820-11

i;

MACRO-80 3.44

09-0ec-81

Sector Translatioll Tables.
For 8 inch single density drives.
Skew by 6

,
F41ll
F414
F418
F41C
F42D
F424
f42U

01 07 00
19 05 DB
17 03 09
15 02 08
14 IA 06
12 18 04
10 16

f42A
F42(J
f42f

21 0000
f6 fF
C9

13
II
OF
DE
DC
OA

trn6:

db
db
db
db
db
db
db

01,07,13,19
25,05,11,17
23,03,09,15
21,02,08,14
20,26,06, 12
18,24,04,10
16,22

selerr:

Id
or
ret

hl,O
-1

subttl
page

Floppy Disk Parameter Blocks

m

.j::o.
N

Bdleont:s 0pt:r"olin9 System tor tile XEROX 820-11
Floppy Disl, Pol"i'llllt:ter Blocks
1879
\!.l00
1081
1882
1883
1884
1085
1886
1887
1888
1889
If:!90
11391
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
19l17
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921

»

"U

"0

it)

::l

a..
X

m

MACRO-80 3.44

09-Dee-81

Floppy Disk Parameter Blocks, one per media format.
:
dpb8s:

F43!J

Singlt: Density,
F43U
F43;!
F435
F439
F43[J
F43F

Single side

UOIA
03 07 00
OOf2 003F
ODCO 0010
OU02

dw
db
dw

26
;spt
3,7,0
:blkshf, blkmsk, nullmsk
242,63,192,16,2 :dsw,dirm,al loeOl,chksiz,trk off

llll

db

o

:128 byte sectors

Single Density, Double Side
F440
F442
F445
F449
F440
F44F

OOIA
04 Of 01
OOF6 007F
(lOCO 0010
U002

dw
db
dw

26
: spt
4,15, I
:blksl1f, blkmsk, nullmsk
246,127,192, 16,2:dsw,dirm,allocOI ,chksiz,trk off

llO

db

o

: 128 byte sectors

F450
Double Density,
F450
F452
F455
F459
F45D
F45F

0034
04 Of 01
DOf2 007F
OOCO 0020
00112
81

dw
db
dw

2"26
4,15,1

db

8 III

Single Side
:spt
:blkshf," blkmsk, nullmsk

242,127,192,3~,2:dsw,dirm,allocOI,chksiz,trk off

:256 byte sectors,

track zero single density

Double Density, Double Side
F46lJ
F462
f465
F469
F46D
f4GF

(J034
05 IF 03
OOF6 007F
OOCO 0020
(J002
81

dw
db
dw

2"26
:spt
5,31,3
;blkshf, blkmsk, nullmsk
246,127,192,32,2:dsw,dirm,allocOI,chksiz,trk off

db

81h

subttl
page

Micro Floppy Disk Parameter Blocks

:256 byte sectors,

track zero single density

}>

o
o

rt>

:l

a..
><

m

Balcolles Operatill!J System for tile XEROX 820-11
Micro Floppy nis~ Parameter' BlOCks
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1~l54
1955
1956
1957
195fJ
1959
1960
1961
1962
1963
1964

09-Dec-01

Single Density,

Single Side

dpb5s:

F47U

F4711
F472
F475
F479
F47(l
F47F

MACRO-OO 3.44

0012
03 07 00
D052 001F
0080 0000
0003
DU

dw
db
dw

18
3,7,0
82,31,128,B,3

;spt
;blkshf, blkmsk, nulmsk
;dsw,dirm,allocOl,chkslz,trk off

db

0

;128 byte sectors

Single Density, Double Side
F4UIl
F482
F405
F489
F4BD
F4f1f

UU12
03 07 00
UDAC 001F
0080 0008
0003

dw
db
dw

18
3,7,0
172,31,128,8,3

;spt
;blkshf, blkmsk, nulmsk
;dsw,dirm,allocOI,chkiiz,trk off

un

db

0

; 12B byte sectors

dpb5d:

F491l

Double Density, Single Side
F491l
F492
F495
F499
F49(1
F49f

11022
llJ 07 00
009C 003F
OOCO 0010
0003
B1

dw
db
(iw

;spt
17*2
;blkshf. blkmsk, nulmsk
3,7.0
156.63.192,16,3 ;dsw.dirm,allocOI,chksiz,trk off

db

Blh

;256 byte sectors,

track zero single density

Double Density. Double Side
F4AO
F4A2
F4Af)
F4A9
F4AD
F4Af

(l022
ll4 OF 01
nOA2 003F
ooeo 0010
(lOO3
81

dw
db
dw

17*2
;spt
;blkstlf, blkmsk, nulmsk
4. 15, 1
162,63.192,16,3 ;dsw,dirm,allocOl,Chksiz,trk off

db

Blh

subttl
page

Westtlrn Digital WD-1797-02 Floppy Disk Driver

;256 byte stlctors,

tr-ack zero single density

m

t

Balcon"s OperdtinQ System for the XEROX 820-11
West"rn Diyltdl wD-1797-02 floppy Disk Driver
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980

);>

"0
"0

(1)

::J

0..

><
m

.

;

MACRO-80 3.44

09-Dec-81

Standard Disk Driver Interface Definitions.
The main entry point (fLOPPY) is called with HL pointing
to a disk driver request block.
All information is passed
in this request as follows:
db
db
db
dw
dw
dw

subttl
page

Assembly Constants

command
phunit
cpunlt
track
sector
a(ldress

=

; 1 = read, 0 = write, -1
select dph
jphysical 'unit for request (0-3)
;CP/M logical drive for request (0-15)
jCP/M track number (offset already applied)
jPhys sector number (after deblocking)
jCP/M dma transfer address

HL->

»
0

fldlculles Ope'"d t i 110
Assembly Constdnt!..

~ystellt

f

0"

tlHl XEROX 820-11

MACRO-80 3.44

'09-Dec-81

0

/1)

::J

0-

><
m

m

+=-

U1

1981
1982
1983
1984
1985
1986
1987
198B
1989
1990
1991
1992
1993
1994
HJ95
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
201 1
2012
2013
2014

equ

..

WD 1797 110 port addresses.

wds,'
w(lcr
wdtr
wdsn
wddt
wdsl
wdsd
wddd

equ
equ
equ
equ
equ
equ
equ
equ

..

External Disk Parameter Tables.

0007
(JOD4
01105
0006
OOAO

fm.un
fm. (15
fm.dd
fm. fv
fm.ddss

equ
equ
equ
equ
equ

7
4
5
6
( I 5hl fm.(ld) or ( 1 shl fm.un)

0040
0028

ntrkB
ntrk5

equ
equ

77
40

0004
0005
0006
OOOA

c.Bin
c. two
t imou
dpbofs

equ
equ
equ
equ

4
5
6
10

subttl
page

Floppy Disk Driver P,'oper

0010'
0010
00 I I
0012
0013
ODIC
0030
0031

00066h

;address of non maskable interrupt

NMI

0066

10h
IOh
I 1h
1211
13h
Icl1
3011
31h

;status
;command
; track
;sector
;data
;dr.ive select port
;select single density
;select double density

,motor I select time out
;offset in dph for dpb address

TI
~

en

l>

-0
-0
(J)

:J
0..

><
m

Bdlcofl~:;

Op~, d l

fluppy D bk 0," i
2(J15
2016
2017
2010
2UI9
2020
2021
2022
2un
2024
2025
2026
2027
2028
2029
2030
2U31
2032
2033
2034
2035
2036
2037
2038
2039
2040
2U41
2042
2043
2044
2045
2046
2047
2048
2049
2050'
2051
2052
2053
2054
2055
2056
2057
2058
2059
2U60
2061
2062
2063
2U64
2065
2066
2067
2068
2069

Sy:;tem fo,- tile XEROX 820-11
I PI-oper

i flU
v

b

,,
f4BO
f4B3
f4B4
f4B5
f4B8
F4B9
F4BB
F4I:JIJ
F4BE
f4Bf
F4CO
F4C3
F4C6
F4C7
f4CO
F4C9
F4CC
F4CD
F4CF
F40U
F4DI
F4D2
F4D3
F4Db
F4D6
F40B
F409
F4DA
F4DB
F40D
F40E
F4EO
F4EI
F4E2
F4E3
F4E4
F4E5
F4EI)
f4E7
F4EU
F4E9
F4EB
F4ED
F4EF
F4FI
F4f2
f4f:;
F4fG
F4F7
f4f8
F4f9
f4fC

CD f647
7E
23
32 f4E7
3C
28 55
06 OA
C5
E5
7E
CO'F544
FA·F506

:n
2:j

4E
CD
'IE
20
23
23
13
IA
E6
7E
20
79
B7
7E
28
::IC
D3
23
23
5E
23
56
EB
]E
B7
(JE
3E
2B
OE

F5A3
37

18
06

01
12

00
AB
A3
03
88

:lD

J2 F4fE
JE UO
UI
4f

CD f61D
71)

MACRO-OO 3.44

09-Dee-Ol

Western Digital floppy Disk Driver.

Dskdvr: call
Id
ine
Id
inc
jr
Id
flopl:
push
push
Id
ca II
jp
inc
inc
Id
ca II
Id
jr
inc
inc
inc
Id
and
Id
jr
Id
or
Id
jr
inc
flop2:
out
inc
inc
ld
inc
I (j
ex
Id
rdop
equ
or
Id
ld
jr
Id
dec
Id
f Ilop3:
Id
rdwrs
equ
add
Id
ca II
flop4:
halt

rde
a, (h I)
hi
(rdop),a
a
z,selec
b,IO
bc
hi
a, (h I)
selunt
m,flop5
hi
hi
c, (h I)
seek"
c, (h I)
nz,flop5
hi
hi
de
a, (de)
18h
a, (h I)
nz,flop2
a,c
a
a, (h I)
z,flop2
a
(wdsn) ,a
hi

til
e, (hi)
hi
d, (h I)
de,hl
a,O
$-1
a
c,Oa8h
a,Oa3h
z,flop3
c,088h
a
(rdwra),a
a,O
$-1
a,c
c,a
stc

,un hang busy controller
;set command
;point to unit

;if select command
;set ,-etry count
i save count
i save conunand
;set unit select
; i f unit not ready
;set track low
;position disk
;retrieve track low
; i f unrecoverable error
;track high
;point to second byte of track table entry
;get diskette type
;sector low
; if single density, cp/m skews
;get current logical track
;set sector
; if single density track zero
;translate for double density
;set sector to read in 1791
;skip sector high
ldmal
;'set transfer address to HL
;dmah
;set

read/write switch

;preset write command
;set second part of OUT!
l i f write
; turn wr it e command into read command
; turn OUT! into INI
,set up i/o direction
;set side compare flag
;start transfer
;wait f 0'- DRQ or INT

l>
::J
:J
b

:l

:l.
0(

n

m

~

Balcones Oper'at illU System tor t I)e XEROX 820-11
Floppy Disk Dr i ver- Pr'oper
2070
2071
2072
2073
2074
2075
2076
2077
2078
2U79
2080
2U81
2082
20B3
20B4
2005
2006
2087
21188
2009
2090
2091
2092
2U93
2094
2095
2096
2U97
2098
2099
21nO
210 I
2102
2103
2104
2105
2106
2107
2108
2109
2 11O
2111
2112
2113
2 114
2115
2 116
2117
2 118
2119
212O
2121
2122
2123
2124
2125

F4FD
F4FE
F4FF
F501
F504
F506
F507
F5U8
F509
F50A
F50D
F50F

F510
F511
F513
F516
F518'
F516
F51C
F51F
F520
F52~j

f525
F526
f527
F528
F529
F52A
F52D
F52E
F52F
F532
F533
F536
f537
f538
F539
F53C
F5~D

F53E
F53F
F54ll
F542
F54:1

f544
F545
f546
F549
F546
f54C

ED A2
ruwra
2U
CD
E6
EI
CI
C8
DB
CD
10
C9

F6
F639
OF
flop5:

F069
AE

If:.

FE
02
26
CD
26
22
2B

select

selec:

Id
cp
jp
Id
ca II
dec
Id
uec
Id
Id
Id
add
aud
add
add
Id
add
pusl)
ca I I
pop
jp
Id
inc
Id
Id
add
Id
dec
Id
sbc
xor
ret

04
F42A
OU
F039
F559
00

F390
F65A
F42A

UOOA

2B
7 :3

ED 42
AF
C9

'IF
EB
21 F700
Ob 00
119
119

inl
equ
jr
cal I
and
pop
pop
ret
ret
call
djnz
ret

,,

L2 F66E

26
6f
29
29
29
29
II
19
1:5
CD
EI
CA
7I
23
70
01
U9
72

MACRO-80 3.44

09-Dec-81
;transfer next byte

$-1
nz,flop4
ttc
Odfh
hi
bc

;if transfer not complete
;ter-mlnate transfer command
;set error bi ts
;recover command pointer

Z

;if no errors

c
softv
flopl

; I f 5.25" not ready

;if retry not exceeded

- select dph for uni t.
a, (h I)
4
nC,selerr
h,O
dayti
hi
(mtradr),hl
hi
(stpadr),hl
h,O
I,a
hi ,hi
hi ,hi
hi ,hi
hi ,hi
de,Dpbase
hi, de
hi
smf
I) I
z,selerr
(h I) ,c
hi
(h I) ,b
bc,dpbofs
hi ,bc
(h I) ,d
hi
(11 I) ,e
111, bc
a

,,

select physical unit.

selunt:

Id
ex
Id
Id
add
add

c,a
de,hl
hi ,trktbl+1
b,O
I'll, bc
hl,bc

;set un it
; if bad unit select
;set address of timers
;point to motor timer
;point to configurable step rate
;store address of step rate for media selector
;multlply by 2**4

;'set address of disk parameter headers
;set dph address
;set media format
; if no ;ned i a
; sto(-e translate table

';point to dpb addr and clear carry
; fill in dpb address
;point back to dph

;5CJ.ve

select

;set track /

density table address

m

~
0;)

»

-a

"0
tD
::J

a.
X

m

Baleo"es Oplll'aliliU System for
Floppy Disk Dr' i vel' PI'oper
2126
2127
2126
2129
2130
2131
2132
2133
2134
2135
2136
2137
2136
2139
2140
2141
2142
2143
2144
2145
2146
2147
214B
2149
2150
2151
2152
2153
2154
2155
2156
2157
215B
2159
2160
2161
2162
2163
2164
2165
2166
2167
2166
2169
2170
2171
2172
2173
2174
2175
2176
2177
217ll
2179
2180
2181

n F601
EB
IA
lB
CO F596
3E 06
32 F559

F540
F550
F551
.F552
F553
F556
F55U
F559
F55B
F55C
F55E
F560
F561
F563
F564
F565
F567
F568
F56A
F56C
F56E
F56F
F571
F573
F576
F570
F579
F57C
F57D
·F57E
f580
F581
F583
F585
F587
F58A
F58C
F58F
F591
F593
F595

FB
CB
DB
47
E6
BI
3C
03
All
E6
28
3E
12
eB
20
CO
06
E5
2A
7E
EI
06
DB
DB
E6
2S
3A
EE
32
10
06
E6
C9

F596
F598
F59B
F59D
F59F
F5AU
F5A2

JE
32
E6
D3
CO
D3
C9

F5A:j
F5A4
F5Ab
F5AB

tile XEROX 620-11

mtradr
ll9
1C
F6
Ie
03
25
FF
60
IE
F647
08
sellw:
F559
04
10
02
Fl
F585
08
F5S5
E7
10
60
16
F632
16
31

sel2:

sel3:

se'l dns:
selden:

30

7u
En
CC F596
13

MACRO-60 3.44

(smfa),hl
de,hl
a, (de)
de
selden
a,timou
(mtradr),a

Id
ex
Id
dec
ca II
Id
Id
equ
ei
res
in
Id
and
or
inc
out
xor
and
jr
Id
Id
bit
jr
ca II
Id
pusl"
Id
Id
pop
sub
ret
in
and
jr
Id
xor'
ld
djnz
in
and
ret

$-2
1, c
a,(wdsl)
b,a
not 7
c
a
(wds I ) ,a
b
3
z,sel3
a,-1
(de),a
c.Sin,b
nZ,sel3
rdc
b,2*4
hI
hl,(mtradr)
a, (h I)
hI
t imou-2
c
a,(wdsr}
2
z, se 11 w
a,(sel2)
6
(seI2),a
se 11 w
a,(wdsr)
80h
a,16h
(dsw) ,a
ISh
(wddd) ,a
z
(wdsd) ,a

Id
Id
and
out
ret
out
ret

,,

seek

sllekx:

Id
or
ca II
inc

09-0ec-61

-

;save address

for media selector

;get previous density switch
;point to track word
,select density
;start motor I select timer
;address f i I led in by once only routine
;insure clock enabled
;map C->A, 0->6
;read current select
;insert new select
;0-1. 1-2
;select drive

;if drive select identical
;force track position recovery
;test S/5 status

;if S"
;set type I status
;watch for four holes (6 transitions,>
;get address of motor select timer
, look for 1-2 seconds

;if drive not spinning
index not under light
;switch index polarity
; ( j r z) xor (jr nz)

;if

;wait for at least three revolutions
;set ready status

;set t r'ack zero single density
;store sw itch for read/write routines
;pre-select dual density
; if dual density
;select single density

position diSk.
a,c
a
z,seldns
de

,set new track
;force single density track 0

»

U
U
tb
J

0..

X

m

m

fD

Balcone,; Operat ill~ :'ystem for ti,e XEROX ll20-I1
floppy Disk [J,' i ve I Pr'oper
2102
2183
2104
2105
2186
21B7
21BB
2 III 9
2190
2191
2192
2193
2194
2195
2196
2197
2190
2199
2200
2201
2202
2203
2204
2205
2206
2207
2200
2209
2210
2211
2212
2213
2214
2215
2216
2217
2210
2219
2220
2221
2222
2223
2224
2225
2226
2227
2220
2229
2230
2231
2232
2233
2234
2235
2236
2237

F5A9
F5AA
F5AB
F5AO
F5AF
F5BI
F583
F5B5
F5B7
F5B9
F5BA
F5BB
F5BO
F5BF
F5CO
F5CI
F5C2
F5C4
F5C7
F5CO
F5C9
F5CA
F5CC
F5CE
F5CF
F5DO
F5D2
F5D3
F5D5
F5D6
F500
F5D9
F5DC
F5DE
F5DF
F5EI
F5E3
F5E6
F5EO
F5E9
F5E8
F5ED
F5EE
F5EF
F5F2
F5F4
F5fb
F5F7

f5FO
f5F9
F5FC
F5FE
F601

IA
IB
E6 01
28 15
DB Ie
C8 67
Ob 4D
20 02
[J6 2B
79
138
JE 00
3U 05
79
90
4F
JE 02
:12 F4F6

sekO:

sekl:

117

47
F3
DB
CB
80
FB
03
IA
D3
B9
28
:JC
CC
28
79
03
3E
CD
E6
79

lC
97
IC
II
17
F5FO
00
seekO:
13
IC
F643
9ll

20 02
f6 FF

12
C9
CD F647
E6 20
28 EO
AF
C9

L5

CD f605
20 05

CD F641
Eb 04

seek I:
seek2:
seek3:
retzr:

MACRO-OO 3.44

a, (de)
de
1
z,sekl
a, (wds I )
c.Bin,a
b,ntrkB
nZ,sekO
b,ntrk5
a,c
b
a,O
c,sekl
a,c
b
c,a
a,2
(rdwrs),a
a,a
b,a

Id
dec
and
jr
in
bi t
Id
jr
Id
Id
cp
Id
jr
Id
sub
Id
Id
Id
add
III
di
in
r·es
or
ei
out
III
out
ep
jr
inc
ca II
jr
Id
out
Id
ca II
and
Id
jr
or
Id
ret
ca II
and
jr
xor
,'et

; i

rse

rse:

push
ca II
jr
ca II
and

09-Dec-81

;if one sided diskette
;set number of eight inch tracks
;if BOO drives
;set seek track
;preset side
;if side a
;wrap to side

a
r

;set side I
;store Fl (update SSO)
;move into select port position

a,( ... L1sl)
2,a
b
(wdsl),a
a, (de)
(wdtr),a
c
z,seek3
a
z,rse

z,seekl
a,c
( ... ddt),a
a,lch
isc
98h
a,c
z,seek2
-I
(de) ,a
,'dc
20h
z,seekO
a
-

;send out REAL SSO
;check current posHlon
; inform 1797 of current track
; if position ok, load head
; checl, for forced recovery
;recover seek errors
; if error not recoverable
;set new track
; in data register
;set seek with verify command
;issue step command
;update current track

;if no errors
;force recovery next time
.set type I status
;test head load
; if head is not loaded
;say seek complete

recover seek error.
bc
rdid
nZ,rsel
recai
4

,read id mark
; if track position identified
; reca librate
;verify track zero flag set

m

1J1

0

p
-0
-0

tt>

::J
0..

><
m

Balcunes Ope,at iliU Systelll f
floppy Disk D,' I ve r PI'opl:!r
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
::'260
2261
::'262
2263
2264
22E5
22E6
2267
22li8
::'269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
22U2
2283
2284
2285
2286
2287
22U8
22U9
2290
2291
2292
2293

F603
F604

Cl

0 ,-

tlH! XEROX 820-11
I-sel :

C~

,
;

F605
F607
F60A
F60B
F60D
F60E
F610
F613
F615
F617
F618
F61A
F61B
F61C

F6lD
F61E
F6?1
F624
F626
FE29
FE2A
FE2D
F62F
F631
F632
F633
F635
FE36
F638

F639
F63A
F63B
F63E
FE3F

F641
F642

OE
CD
76
ED
76
ED
CD
E6
20
70
D3
F6
Af

C4
F61D

.

rdid:

40
48
F639
98
04
II

rdidl:

C~

F3
3A
32
3E
32
79
01
D3
10
3E

dsw
CEl

OE 80
<:9

,,

ttc -

t t c:
ttca

Id
equ
Id
ei
jr

:L! U066

FB
18 OA

c,Oc4h
stc

;set Read Address Command
;start transfer command
;wait for Interrupt
;first byte is track

b, (c)
c, (c)
ttc
98h
nZ,rdidl
a,b
(wdtr),a
Of6h
a

;second byte is side, pitch next 4
;terminate transfer command
; ignore lost data
; if track not identified
; te I I 1797 track head is on now
;or xra to set NZ
;set track not found

a, (NMI)
(ttca),a
a,Oc9h
(NMI),a
a,c
bc,wddt+20*256
(wdcr),a
$
a,O
$-1
1811

z
b,128

a,O
$-1
(NMJ),a

xor
Id

or
equ
jr

;retl-ieve command
; 1797 access t i Iller I
i issue command
;pause 60 usec

data port

;density switch
;say .-eady alHj density
;if double density
;set 128 byte single density sectors

;take interrupts now
;wait for 1797 to complete

woe

reca 1 :

isc:

; stor'e RET tllere

;restore location 66

reca I ib,-ate drive.

isc -

; lock norlllal interrupts
byte at NMI address

isave

tenninate transfer' command.

; ;

stepr
18 02

Id
ca II
halt
In
halt
in
ca II
and
jr
Id
out
defb
XOI'
ret

di
Id
ld
Id
ld
ld
Id
out
djnz
Id
equ
and
ret
Id
ret

E6 18

F6 01

rd I (j - read Id mark.

stc:

..
FE43
F644
F645

bc

stc - start transfer command.

1413
10
FE
00

I\f12

pop
ret

09-Dec-bl

,,
0066
F63A
C9
0066

JE 00

MACRO-80 3.44

a
(de) . a

restore command I
;set t.-ack zero

;set

track 0

issue step command.
1
$-1
icc

; insert step rate
;*****=>;m,?dify here for step rate change

»

u

U
I'D

:J
0-

x

m

Balcontl!i Optl'-d-lill,l Sy!ittlm tor tlltl XEROX 820-11
Floppy Disk D,ivl;!' P,·uper
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2:W5

2306
2307
230B
2309
2310
2311
2312

m

lJ1
-'

F64"f

:JE DO

rdc:

Id

,,

icc

icc:

out

,,

woc

woc:
woc I:

Id

a,20

dec

a

jr

nZ,wocl
idle
a,(wdsr)
O,a
nZ,woe2

,
F649

F64B
F64D
F64E
F650
F653
F655
F657
F659

O:J 10

:JE
3D
20
CD
DB
CB
20
C9

14
FO
F066
10
47
F7

MACRO-BO 3.44

woc2:

a,OdOh

,

09-Dtlc-81
;terminate and set type I status

issue controller command.
(wdcr),a
-

ea II
in
bit
jr

;issue 1797 command

walt operation complete.
;set 60 usee delay
;idle cpu
;set 1797 status
; i f busy,

ret
subttl
page

Media Format Selector

wait

m

lJ1
N

»

"0
"0
(1)

:l

0..
X

m

Bdlcones Opera l i Ill) ~ystelll tor tl1e XEROX U20-11
Media FUrilid t ~'" I ,"c t ur2313
2314
2315
2316
2317
2310
2319
2320
2321
2322
2323
2324
2325
2326
2327
2320
2329
2330
2331
2332
2333
2334
2335
2336
2337
233B
2339
2340
2341
2:142
2343
2:j44
2345
2346
2:147
2:140
2349
2350
2351
2352
2353
2:154
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367

,,

F65A
F65D
F660
F663
F665
F667
F669
F66B)
F66D
F66E
F670
F672
F675
F670
F67A
F67B
F67E
F600
F6B2
F6B3
F685
F607
F609
F60C
F60E
F690
F693
F6H5
F697
F699
F69B
F69C
F69E
F6AI
F6A:1
F6A5
f6Al)
F6A7
F6AO
F6AA
F6AC
F6AE
F6BI
F6B3
F6B5
F6B7

CD
FA
21
36
DB
CB
20
CB
3A

F544
F5F6
F6D5
AD
IC
67
02
F6
F66E

E6
32
CD
E6
CO
FA
OJ
JE
12
3E
(13
:iE
CD
JE
D:1
1I I
10
DB
CB
2B
OD
20
CD
3E
E6
13
12
IB
28

03
F644
F641
04

[)~1

3E
CD

En
:W

CB
CB

:
smf:

smfO:
stpadr
smfOa:

F5F6
31
FF
02
13
10
F643
IC
10
0000
FE
10
47
DB
F5
F647
IB
18

14
30
IC
F643
18
07
7E
BE

slUtl:

5mtla:

MACRO-OO 3.44

09-Dec-01

smf - set media format.
entry:

unit in

exit:

DE
BC

ca II
jp
Id
Id
in
bit
jr
set
Id
equ
anel
Id
call
and
ret
jp
out
Id
lei
lei
out
Id
ca II
Id
out
Id
djnz
in
bit
jr
dec
j r'
ca II
Id
and
inc
Id
dec
.jr
out
Id
ca II
and
jr
bit
res

A

dpb address
translate table

selunt
retzr
111,dtype
(hl),fm.ddss
a, (wds I )
c.Oin,a
nz, slllfO
fm.fv,(hl)
a,(stpadr)
$-2
3
(stepr),a
recal
B411
z
lII,retzr
(wddd) ,a
a,-I
(de),a
a,2
(wddt),a
a,lOh
isc
a, 1 ct.
(welcrl,a
bc,O
$
a,(wdsr)
O,a
z,smfla
c
nZ,smfl
rdc
a,IBh
18h
de
(de) ,a
de
z,smf2
(wdsd),a
a,lch
isc
18h
z,smflb
fm.un, U11)
f 11\. un . (t. I )

III,

:select unit
,if disk not ready
:start out double density, single side, retry
tread select status
:test 0" I 5" status
; if 0 inch drives
illl ove up to 5.25" dpbS
:set configurable step rate for 0" drives
;just so seeks aren't formats
;save step rate in seek command
_,establ ish pos-i t ion
: i f not on track zero
: i f unit not ready

,set double density
:clear drive on track
iuse track 2 for density select
;seek / no verify
; issue seek command
:find id mark
;start verify
:set timers
:pause
: if command completed
: i f mOI-e t illle

:terminate seek
;set pseudo record not found
:check record not found I crc error
;point to density word in track table
: i f density select successful
;use single density

;verify single density
,issue seek
; if single density successful
:test retry
:clear retry

»

"U
"U
lJ)

:J

a..
><

m

m

lJ1
W

Sa I CU'l.,,, Oller a I i flU Syst.,1II for- tile XEROX 820-II
M.,l1 i a For'lIIa t Selector'
23bU
2369
2370
2371
2372
2373
2374
2375
2376
2377
2:HU
2379
2300
2301
2302
2:103
23U4
2305
23H6
2387
2:W H
23U9
2390
2391
:.139:.1
2393
:.1394
:.1:395
2396
2397
:.1398
2399
2400
:.1401
:.I4D2
2403
24D4
2405
24U6
24117
2400
2409
:.1410
2411
2412
:.1413
2414
2415
2416
2417
241B
2419
2420
2421
2422
2423

FbB9
FbBB
FbBC
f6BE
F6rO
F bCi
f6C4
F6C6
F6C9
F6CB
FbCC
FbCE
F6DO
F6DI
F6D3
F6D4
f6D5
F6D7
f6DO
F6D9
f6DA
F6DD
FbDE
F6DF
F6EI
F6E2
F6E5
F6E7
F6EO
F6EB
F6EC

20
(9
C(3
C(3
DB
CB
03
CD
20
OD
2U
CB
21

BA
AE
BE
lC
D7
lC
F605
09

smflb:
slllf2:

Ob
E6
F6DI
slllfa

34
21 0000

slllf4:
dtype

7D

4C
44
II F430
19
EB
CB 6F
CO
01 F6ED
Ul 77
CO
01 F410
3C
C9

F6ED
F6Fl
F6F5
F6F9
F6FD

oI
03
05
07
119

F6FF
f703
f707

7F 00 CO 00
20 00 02 00
U1

06
OB
UA
OC
OE

DB
OD
OF
I1

10
12
02
04

f7UU
F770
070U"

F470

MACRO-OO 3.44
jr
ret
res
res
in
set
out
ca I I
jr
dec
jr
set
Id
equ
inc
Id
equ
Id
Id
Id
Id
add
ex
bit
ret
Id
bit
ret
Id
inc
r'e t

09-Dec-01

nZ,smfOa
flll.dd, (hi)
tm.un,(hl)
a, (wdsl)
2,a
(wdsl),a
rdid
z,slllf4
c
nZ,smf4
fm.ds,(llI)
hI, slOf a
$-2
(h I)
hl,O
$-2
a, I
c,h
b,h
de,dpbOs
hl,de
de,hl
fm.dd,a
nz
bC,trn5
flll.fv,a
nz
bC,trn6
a

; if retrv
; ,'eturn select error
;back up to single density
;clear ,-e t ry
;select side 2

;'read id lIIark
;if no id found, must be one side
;if side 1 1D not read
;bump up to two sided dpbs
;set double sided status in track table
;set diskette type
., save

type
;preset no translate

;set base of disk parameter blocks
;return DPB address In DE
; if diskette is double density
; pr'ese t 5.25" skew table

;if diskette is slllal I
,set 8" translate
;force NZ

; i

Skew by 5 translate table.

trn5:

db
db
db
db
db

01,06,.11,16
03,OB,13,18
05,10,15,02
07,12,17,04
09,14

trktDI: db

7fh,O,OcOh,O,20h,O,2,O,01h

rigdpb
i ot) I oc

0f708h
0f770h

equ
equ
,,\)ove
dli.seg

+

sasstr

.dephase
.phase Of470h
equ
$
Subttl
page

dpb~

Rigid Partition Disk Parameter Blocks.

m

l.11
~

»

"0
"0
/1)

:J

a.

X'

m

Balcones Operalill;! System for t IIII XEROX 820-11
RiUid Partitioll D i !> I, Parameter Blocks.
2424
2425
2426.
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
245B
2459
2460
2461
2462
2463
2464
2465
2466
2467
246B
2469
2470
2471
2472
2473
2474
2475
2476
2477
247B

MACRO-80 3.44

09-0ec-B1

There are 16 4k Blocks per pseudo track.
Track Zero (2 Cylinders) are reserved for CP/M boot.
0040
0020
0010
0010

Nt4
Nt5
Nt6
Nt7

OOOU

aset
irpc
aset
OSIll&n
equ
equ
Rtk&n
aset
Opbrg&n:dw
db
db
dw
dw
db
db
dw
dw
db
endm
Opbrg&4:dw
db
(lb
dw
dw
(lb
db
dw
dw
db
Opbrg&5:dw
db
dl)
dw
dw
db
db
dw
dw
db
Opbrg&6:dw
db
db
dw
dw
db
db
dw
Ow

f47U
f472
F474
f475
F477
F4h)
f47A
F47B
f47D
f47f
f48(}
F4B2
F484
F4B5
f487
F489
f48A
F4BS
F48D
f4Bf
F490
f49L
f494
F495
F497
F498
f49A
f49!:l
F49D

U200
05 1 f
(I 1
U3Ef
01FF
FF
00
0000
00111
n1
(j200
1I5 1 f
01
01Ef
ilIff
ff
IlLl
UOLlO
(J[)41
01
U200
05 1 F
03
!lOEf
Ulff
ff

nn

nooo

0061

+
+
+
+

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+
+
+
+
+
.+
+
+
+

equ
equ
equ
equ

64
32
16
16

;Number
;Number
;Number
;Number

0
n,<4567>
.. + 1
Nt&n*16-17

;first usable track

of
of
of
of

Tracks
Tracks
Tracks
Tracl\s

on
on
on
on

Partition
Part it i on
Partition
Partition

0
1

2
3

;reserve system track

.. +Nt&n-1
512
;spt
5,31
;blkshf. blkmsk
3+2* (Oslll&n ge 256);exlII
Osm&n
;dsm
51 I
;dirmax
-1
;a II ocO (reserve additional dir space)
0
; a I I oc 1
0
;check size
Rtk&n
; track offset
;256 byte sectors
1
512
;spt
5,31
;blkshf. blkmsk
3+2*(Oslll&4 ge 256);exm
OSfl\&4
;dslll
511
;dirmax
- 1
; a 11 ocO (reserve additional dir space)
0
;a 11 oc I
0
;check size
Rtk&4
;track offset
I
;256 byte sectors
512
;spt
5,31
;blkshf, blklllsk
3+2*(Oslll&5 ge 256);exm
Dsm&5
;dsm
;dirmax
511
-\
; a 11 ocO (reserve additional dir space)
0
; a I I oc 1
0
;check size
Rtk&5
; track offset
I
;256 byte sectors
512
;spt
5,31
;blkshf, blkmsk
3+2*(Osm&6 ge 256);exm
;dsn!
OSIll&6
;dirlllax
511
-1
; a II ocO (reserve additional dlr space)
0
;a II oc 1
0
;check size
; t ,-ack offset
Rtk&6

l>

o
o

II)

::J

0..
)(

m

m

V1
V1

Bdleones Oper"atill,) System tor' nle XEROX 820-11
RiUio Pdrtitioll Disk Pdrdmeter- Blocks,
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492

F49F
F4AO
F4A2
F4A4
f4A5
f4A7
f4A9
f4AA
f4AB
f4AO
f4Af

III

O:WO
05 IF
03
UllEf
Olff
ff
00
0000
0071
() 1

...
...
...

...
+
+
+
+
+
+

...

09-Dec-81

MACRO-80 3,44

db
Opbrg&7:dw
db
db
dw
dw
db
db
dw
dw
db
subttl
page

;256 byte sectors
1
;spt
512
,blkshf, blkmsk
5,31
3+2*(Osrn&7 ge 256),exrn
Dsrn&7
;dsrn
,dirrnax
511
-I
,a I ' ocO (reserve additional dir space)
,a\locl
0
;check size
0
;track offset
Rtk&7
;256 byte sectors
1
SA1403

-

Shugart / OTC SASI Driver

n

~

Balcone,; Oper"ati"'J Sy,;tem for tile XEROX 820-11
SAI403 \SlIlI[Jart I DTC SASI O(-iver"
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
250B
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
25:!2
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532

»

u
u

ro

:::l

Q.
)(

m

MACRO-80 3.44

09-0ec-dl

SASl driver.

i;

SA-140~D

rgdbuf

equ

; ;

Sasi Pio Port Addresses.

0011
0010
0013
0012

pioA';
pioAd
pioBs
pioBd

equ
equ
equ
equ

piOAs xor 01b
pioAs xor lOb
pioAs xor lib

0010
0012
0012

Sasid
Sasic
Sasis

equ
equ
equ

pioAd
pioBd
pioBd

;bus data
;bus control
;bus status

001C

syspio

equ

lch

;system configuration port

i;

Sasi controller

b.bsy
b.msg
b. cd
b.req

equ
equ
equ
equ
equ
equ
equ
equ

EEOO

0000
0001
0002
0003
0004
0005
0006
0007

b. i

0

b.,se I
b.par
b.rst

OeeOOIi

;rigid parameter load buffer

;Pio A Status

11 h

00
01
02
03
04
05
06
07

~tatus

bit definitions.
; ( in)
; ( in)
; ( in)
; ( in)
; ( in)
;(out)
; ( in)
;(out)

controller busy status
status byte completion status
control byte or data byte transfer
controller request for data/command
data transfer directior
controller select
buss parity error
controller reset

Logical Unit Assignments.
0000
0001
0000
0002
0003

falun
fblun
fclun
fdlun
rglun

equ
equ
equ
equ
equ

o

subttl
page

Sasi Class Code Definitions

1

o
2
3

;A: Lun
Lun
;C: Lun
;0: Lun
iE: Lun
;6:

l>
~

Balcone!; Operatill0 System tor tile XEROX 820-11
Sa!;i Class CoU~ Uetinition!;

MACRO-80 3.44

09-Dec-BI

J

1)

::l

:l..

><
m

m

111
-..,J

2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2540
2549
2550
2551
2552
2553
2554
2555
2556
2557
2550
2559
2560
2561
2562
2563
2564
2565
2566
2567
2566
2569
2570
2571
2572
257:3
2574
2575
2576
2577
2570
2579
25[10
2581
2502
2583
2584
2505
2586
2507

; ;

Class Command Codes for Prom Set AS31*
DTC Reference Manual Dated February 4,

0000
0001
0002
0003
0004
0005
0006
0007
0008
0009
OOOA
0008
OOOC

ODeD

,,

class

c . t rdy
c.recal
c.rsyn
c.rqsn
c. fmat
c.vtrk
c.ftrk
c.flaw
c.read
c.wrpr
c.writ
c.seek
c.init

equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ

,,

Class 6 commands.

c. f I py

equ

,,

Floppy Format Codes.

1961.

0 commands.
DOh
olh
o2h
o3h
0411
o5h
06h
07h
08h
09h
Oall
Obh
Och

OcOh

;test r-eady status
;recalibrate drive
;request syndrome
;request sense after error
;format drive
;verify track format
;format single track
; format t r-ack with flaw
;read data
;write protect sector
;write data
;initiate seek
;inititiali;;!e drive

;define floppy disk format

;

00000001
0002
0003

fmds
fllldd
flll.s;;!
flll.wr

equ
equ
equ
equ

0
1
2
3

;double side bi t
;double dens i t y b1 t
;sector si;;!e bi t
; log2(fm.ddds+l)

0000
0001
0006
0007
0000

flll.sdss
fm.sdds
flllddss
fm.ddds
fill. hard

equ
equ
equ
equ
equ

DOh
Olh
06h
07h
OOh

;Single
;Single
;Double
;Double
;Rigid

,,

Class 7 commands.

c.tralll

equ

,,

Message Macros.

Plllsg

macro
n,lIIsg
ifl
.print" +MSG NT
andif
andm

pile"

macro
.radix
Pllls9
.radix
andm

OUEO

OeOh

fl,m

16
%(n),
10

Density,
Density,
Density,
Density,

;test ram buffer

Single
Double
Single
Double

Sided
Sided
Sided
Sided

m
U1

00

l:IalcllIHls Op''''ati,,~ Systelll for
Sas i C I ass Cocte l)e tin it i OilS
2588
2589
2590

tile XEROX 820-11

MACRO-80 3.44

subttl
page

09-Dec-81

Sasi Pilysical

Driver.

}>
0
0
t1)

::J

a.
X

m

m

U1

1.0

Ba I COlleti Opel'a till!) Sy;;telll fOI> tile XEROX 820-11
Sasi Physical Drivel.
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
26()5
2606
2607
:2608
2609
2610
2611
2612
2613
2bl4
2615
2616
2617
2618
2bl9
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
26d4
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645

F4BO
F4B2
F4B3
F4B4
F4B5
F4B7
F4B8
f4B9
F4BA
F4BC
F4BE
F4CO
F4C3
F4C4
F4C5
F4C8
F4C9
F4CA
F4CB
F4CC
F4CO
F4CE
F4CF
F402
F4D4
F4D5
f4DO
F4DB
F4DE
F4DF
F4EO
F4EI
F4E2
F4E3
F4E4
F4E5
F4E6
F4E7
F4EA
F4EC
F4EE
F4FI
F4F3
f4F6
f4F7
F4F8
F4F9
F4FA
F4FO
f4fF

Ob 06
7E

Sal403 - Sasi Physical Driver.

Sa1403:
sasOa:

Id
Id
inc
inc
jr
puStl
push
dec
Id
jr
Id
Id
Id
push
ca II
pop
inc
inc
Id
inc
inc
Id
ca II
jr
push
ca II
Id
ca II
pop
inc
inc
Id
inc
Id
ex
Id
equ
Id
cp
jr
ca I I
jr
ca II
pop
pop
dec
ret
ca II
djnz
ret

49

OA
02
08
F6FO

sasO:

F5AF

F607
:ill 22
E5
CD F5C2
21 F6FO
CD F643
EI
23
23
5E
23
56
cB
fl6 00
sec len
dA F6FO
FE OA
~U 05
CD F65F
It! 03
CO F656
CI
EI
2B
C8
CD F069
10 B3
(9

09-Dec-81

' ,

~3

3C
28
E5
C5
3D
3E
20
3E
3L
7E
E5
CO
EI
23
23
56
23
23
5E
CD

MACRO-OO 3.44

sasl:
sas2:

b,6
a, (h I)
hI
a
z,sselec
hi
bc
a
a,c.writ
z,sasO
a,c.read
(opcode),a
a, (h I)
hi
mlu
hi
hi
hi
d·, (h I)
hi
hi
e,(I1I)
cwp
nZ,sas2
hi
mpa
hl,opcode
ices
hi
hi
hi
e, (h I)
hi
d, (11 I)
de,hl
b,O
$-1
a, (opcode)
c.writ
z,sasl
tdi
sas2
tdo
bc
hi
hi
Z
softv
sasOa

:set retry count
:set driver operation
:point to unit
: i f select DPH

:'preset write opcode
;assume read
:set Sasi opcode
:get driver unit

:map to logical unit
:ignore cpm dsk
: track low
:set track
:set sector
:check write protect
: if write protected and track > 0
isave requetit block address
:map physical address to logical address
issue controller command
:get pointer to low sector back
:ignore sector high
:dma low
i

:dllla high
:set transfer address to HL
:set sector length

: i f write command

:transfer data in
:transfer data out

: i f no errors
:report soft error
: i f mor'2 retries
;return error

Balco"es OperalillCl System for"
PI1ysicai

2646
2641

»

"0
"0
(I)

:J

0X

m

Dr-ivel

tile XEROX 020-11

MACRO-OO 3.44

09-Dec-OJ

Select

subttl

page

Physical Driver Select

!>
]
]

D
l

1.
(

n

m

en
.....

BdlcolI"'s OP""dtiIlU System tor tile XEROX 620-11
Physical Dr i VoH' '>elect
2640
2649
2650
2651
2652
2653
2654
2655
2656
2657
2650
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2b76
2617
2678
2679
2600
2bOl
2682
2663
2684
2685
2686
2ri67
2688
2689
2690
2b91
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702

i i

Select

sselec:

Id
cp
equ
ccf
ca 11
ret

,
F500
F501
F502
F503
F504
F507

7E
FE 08

numunt
3F
04 f50E
DO

,,
F508
F50B
F50D

21 OOUO
F6 FF
C9

,
CD F6F6
CD F5AF
EB
70
29

slllfs:

29
29
29
11
19
FE
DO
E5
3E
32
32
OA
F6
U2
3E

n

F390
04
00
F6F5
F5FI
01
07
F53D

slllfs 1 :

C5
CD F57A
C1
60
69
28 14
~i E 00
38 31
35
F2 F548
:H) 07

smfs

09-Dec-Sl

- Physical Driver Select.
a, (h I)
8
$-1

;set ptwsica I ,un it
iverify in range

nC,smfs
nc

iset media format
iif media identified

- Select Error Driver.
hl,O
-1

-

iSel ect Error Driver

Set Media Format.

entry;
Exit:

A = Driver unit index
HL '" DPH address, if no carry

call
call
ex
Id
add
add
add
add
Id
add
cp
ret
push
ld
Id
ld
Id
or
Id
Id
Id

first
mlu
de,hl
a, I
hi ,h I
hl,hl
hl,hl
hl,hl
de,Dpbase
hl,de
4
nc
hi
a,BOh
CdC t r I ) ,a
(lastfm+l) ,a
a ,( be)
1 shl flllds.
(bC) ,a
a,O-l
(sillfsa),a
bc
cdd
bc
h,b
I, c
z,smfs2
a,D
$-1

PUSll

smfsa
D6 01

selerr

xselerr: ld
selerl: or
ret

,,

F5llE
F511
F514
F515
F516
F517
F518
F519
F51A
F51D
F51E
F520
F521
F522
F524
F527
F52A
F52B
F520
F52E
F530
F5::J3
F534
F537
F538
F539
F53A
F53C
F53D
F53E
F540
F542
F543
F546

MACRO-SO 3.44

ca II
pop
Id
Id
jr
Id
equ
Sul1
j ,dec
jp
Id

iexecute first time only routine
illlap to logical unit
iget dph index to hi
iand A
; i nde x *16

i set base of Disk Parameter Headers
i if rigid unit
jsave dph address
idisable el-ror recovery
ialways try double side first
; t I-y each type two times
iset ret :-y count
;save define format table address
icheck drive density
jset

format

table address

i if diskette type identified
idiskette type retry counter

I

c,smfs4
(h 1 )
p,smfsla
(111) ,fln.cldcls

if media not identified
advance disk type code
i f no wrap

m

en

IV

»

"C

-0

tJ)

J

a.
X

m

l:Jalcolles Oper'at ill!) System for the XEROX 820-11
Physical Drivel' Select
2703
2704
2705
2706
2707
2708
2709
2710
2711
27 I 2
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758

f548
F54A
f54C
F54E
f550
f551
F552
F554
f556
F559
f55A
f55B
F55C
F55D
F55E
f561
F562
F563
f565
F566
F567
f568
f569
f56A
F56B
f56E
f56F
f570
F571
F572
f573
F574
f576
f579

\

f57A
F57B
F570
F500
F582
f584
f5C7
F58A
F58C
F58f
F592
F595
f597
F599
f59B
F59E

CB
20
r.B
18
57
5A
CB
:W
II
EI
E5
73
23
72
II
19
OA
E6
EB
6f
29
29
29
29
01
09
EB
73
23
72
EI
3E
32

4E
E4
96
EO
4E
03
F410

0009
03

F430

00
f6f5

C9

OA

E6
II
28
16
CO
21
36
CO
CD
CD
20
ED
IU
CD
C9

01
0201
02
4F
F5C2
F6fO
08
f643
f6CE
F687
04
78'
F7
F669

MACRO-80 3.44

smfsla: bit
jr
res
jr
smfs2:
Id
Id
bit
jr
Id
smfs3:
pop
push
Id
inc
Id
Id
add
Id
and
ex
Id
add
add
add
add
Id
add
ex
Id
inc
Id
smfs4:
pop
Id
Id
r'e t

09-Dec-81

fmdd, (til )
nZ,smfsl
fm.sz,(hl)
smfsl
d,a
e,d
fmdd, (h I)
nZ,smfs3
de,trn6
hi
hi
(h I) ,e
hi
(11 I) ,d
de,IO-1
hi ,de
a, (bc)
3
de,hl
I,a
hl,hl
hi "hi
hl,hl
hl,hl
bc,dpb8s
hi ,bc
de,hl
(h I) ,e
hI
(11 I) ,d
hi
a,O
(dctrl),a

; test for double dens i t y

;if double density
;set sector size = 126
; try more diskette types
.preset no translate

.if diskette is double density
;set single density

;store translate address

;point to dpb address in dph
; ge't selected format

; i nde x by 16

;set dpb base
;set dpb address (clears carry)
;recover dpb pointer address in dph

;get df::h address
;enable error recovery

,,

cdd - check drive density.

cdd:

Id
and
Id
jr
Id
ca II
Id
Id
ca II
ca II
ca II
jr
in
jr
ca I I
ret

cddO:

cddl:

cdd2:

i;

p21

a, (bc)
1

de,2*256+1
z,cddO
d,77+2
mpa
hl,opco(le
(hl>,c.read
iccs
sim
wfr
nZ,cdd2
a, (c)
cddl
wcc

translate

;get dpl. address

;get attempted side
;try s ide· I on ds, a on ss

;if single side
;use back side
;map physical address
;issue controller command
;set input mode
;wait for req
;if timeout or status, not data requested
;eat sector
;wait command complete

- Physical to Logical Mapping Table.

);>

0
0

It)

J

0...
X

m

m

(])

W

Balcun,;!; Opera l i IIU Sy!;ttlm fur
PI,ysical 01' i vel ~),;I,;ct
2759
2760
2761
2762
2763
2764
2765
2766
2767
2760
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2704
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
279B
2799
2800
21101
2802
2803
2804
2805
2806
28117
2808
2809
21110
21111
2812
2813
2814

tile XEROX 820-11

MACRO-80 3.44

09-0ec-81

First byte is the SA1403 Logical Unit Number
Second byte is extendeci drive format code

,
F59F
F5AI
F5A3
F5A5
F5A7
F5A9
F5AB
F5AO

UO UO
;w 01
00 06
40 07
ull 80
6ll .80
6ll 80
6U 80

p21:

.
;

F5AF
F5U2
F5B4
F5B5
F5B6
F5B7
F5B8
f5BB
f5BE
F5BF
f5CO
F5Cl

:! I

F59f
16 00
5F
19
19
7E
32 F6Fl
32 f6EB
23
44
40
C9

mlu:

,,

db
db
db
db
db
db
db
db

falun
fblun
falun
fdlun
rglun
rglun
rglun
rglun

mpa:

A
Physical Driver Unit from Deblocker
DE
dph index
BC
pointer to format code
Sasi LUN stored in command block

Id
Id
Id
add
add
Id
Id
Id
inc
Id
Id
re t

hl,p21
d,D
e,a
hl,de
hi ,de
a,(hl)
( I un) , a
(deflun),a
hi
b,h
c, I

3E 80

;set Rigid Physical

I

2
3

to Logical map table

;point to table entry
;get Sasi
;store in
;store in
;point to

LUN
read/write command
define command
format descriptor

BC
D

p21 format code address
Track
Sector

Ex it:

Logical Address set in command block
Sec len set for transfer
Controller notified of floppy format

ld
ld
ex
Id
cp
jr
cp

hl,seclen
(hl),O
de,hl
a, (bc)
flll.i1al-d
<;,mpa5
fmddss
c,mpal
I

inc
Id
or
j ,-

mpa I:

0

Mpa - Map Physical Address.

jr

:W

;Floppy Drive D
;Floppy Drive 1
;floppy Drive 0
;Floppy Drive 2
;Rigid Partition
;Rigid Partition
;Rigid Partition
;Rigid Partition

Entry:
Ex it:

E

~ 1 F4E6
36 00
EB
OA
FE 80
28 46
FE 06
:38 06
2C
7C
1:l7
20 04

5,fm.sdss
5, fm. sdds
5, fmddss
5,fm.ddds
5, fm. hard
5,fm.hard
5, fm. hard
5, fm.hard

Mlu - Map Logical Unit.

Entry:

F5C2
F5C5
F5C7
f5C8
F5C9
f5CB
F5CD
f5CF
F501
F5D2
F5D3
f5D4
F5D6
f5D7

shl
sIll
shl
shl
shl
shl
shl
shl

dec
Id

;preset sector length

=

;preset Laddr.
Paddr for rigid
;get drive format code

;if Rigid Partition
;if single density
iadvance sector from 0->25 to 1->26

a ,11
a
nz,mpa2
1
a,128

; if not on track zero
;set shol-t sector

m

m

.J::.

»

"0
"0

m

::l

Q..

><
m

BaicUfltl5 Ope.al illu Sy'stem to r- tlte XEROX 820-11
Physical Dr·iver Selec't

MACRO-OO 3.44

2815
2816
28 \1
2818
2819
2820
2821
.2822
21:123
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856

Id
Id
bit
jr
Id
cp
jr
sub
ccf
adc
Id
push
Id
Id
Id
Id
equ
Id
or
sbc
jr
Id
Id
ca II
ca II
pop
Id
Id
Id
scf
sbc
inc
add
djnz
Id
Id
ld
Id
ret

f5D9
f5DA
f 5DU.
f5DD
f5Df
F5ElJ
f5E'L
f5E4
f5EG
F5E7
F5E8
f5E9
F5EA
f5EB
f5EE
F5EF
f5FO
F5F2
F5F5
F5F6
f5f8
f5FA
F5FD
F600
F603
F60G
f60l
f608
F60B
f60C
f60D
f60F
f61D
F611
F613
f614
F615
F616
f619

12
UA
CB
20
7C
I-E
38
D6
3F
8F
67
E5
OA
2A
67
II

mpa2:
47
OA
4D

02
4D
mpa21:
mpa22:
f6EB
FFFf
lastfm

22
B7
ED
28
J2
21
CD
CD
EI
44
II
62
:17
ED
04

f5FO
52
OC
f6Ef
f6EA
f643
F669
mpa3:
OOIA
52

19

10 FO
7C
65
6F
22 f6f2
C9

mpa4:
mpa5:

subttl
page

09-Dec-tll

(de) ,a
a, (bC)
fmds,a.
z,IIlpa22
a,h
77
c,mpa21
77
a,a
h,a
hi
a, (bc)
hi. (def lun)
h,a
de,-l
$-2
(Iastfm),hl
a
hl,de
z,mpa3
(flpfrm),a
hi ,def Ipy
iccs
wcc
hI
b,h
de,26
h,d
hl,de
b
hl,de
mpa4
a,h
h, I
I,a
(addrh),hl
Sasi Bus Control

; i f not double sided disk
;map first 77 tracks to side l:ero

;if side zero tracks
;offset to back side

isave track/sector
;get floppy format
;get new unit

;get previously used format/lun
;save this format/unit for next time

;if unit and format same as last time
; issue define floppy

command

irecover track / sector
;set track
;compute sector-26-1+(Track+l)*26
;clear upper track

;adjust sector
;force one pass
;mu It \p I Y track by sectors/track
;if mwltiply incomplete
;swap H & L
;Store address in command block
Interface

I

l>

"0
"0
I'D
:l

c..
><

m

m

Ol
CJ1

Balcones Ope'dtillU Systelll for
Sa,;i Bus Contlol Intel"face
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
21368
2869
2870
2871
2872
2873
2874
2875
2876
2877
2B7B
2879
2BBO
28BI
2882
2883
2884
2885
2886
2887
28B8
2889
2B90
2891
2892
2U93
2894
2B95
2896
2897
2898
2B99
2900
2901
2902
29U3
2904
2905
2906
2907
2908
2!JU9
2910
2911

F61A
F61U
F61E
F620
F622
F624
F626
F627
F629
F62C
F62E
F630
F632
F634
F63lj
F637
F639
F63C
F63F
F64U
F642

CD
7E
FE
3E
213

FbAO

01
OA
02
3E 03
32 F627
CO
3E
03
3E
03
DB
OF
38
CD
F2
AF
03
C9

F6D2
01
10
20
12
12

tile XEROX 820-11

MACRO-80 3.44

09-D8C-81

' ,

gca - get controller attention.

9 La :

ca II
Id
cp
Id
jr
Id
Id
equ
ca II
Id
out
Id
out
in
rrca
jr
ca II
jp
xor
out
ret

gcaO:
gcaa

gca I:

06
F6A5
F634
gca2:
12

,

.

iccs

r"ese t
;r-eset controller if required
a, (h I)
;get command
c.recal
a,9+1
;set 9+ second time-put
z,gcaO
; if recalibrate, use long time-out
a,2+1
.use short time-out
(gcaa),a
$-2
;·****=>;nlonitor one second timer address goes here
sam
;set output mode
a, I
;Set sasi controller address
(Sasid),a
a, I shl b.sel
;assert Select Line
(Sasic),a
a, (Sas is)
;get sasi status
;get busy bit in C
c,gca2
; if controller is ready
cft
;clleck for t illle-out
p,gcal
;if not timed out
a
(Sasic),a
;drop "Select

- issue Controller Command.

HL => Sasi command block
F64~1

F644
F646
F647
F64A
F64D
F65fJ
F651
F65:i
F655

7E
FE
C8
CD
01
CD
C8
Ell
20
C9

ices:
04
F61A
0610
F687

iccs I:

A3
FB

; i

F656
F659
F656
F65D

F65f
F6b2
F665
fbb7

CO F687
20 DE
ED 63
IB OA

CO
CD
20
EO

fbCE
f687
02
62

tdo:

Id
cp
ret
ca II
Id
ca II
ret
outi
jr
ret
tuo ea II
jr
ot ir
jr

, ,

tdi

t LI i :

ea II
ea II
jr
inir

,,

wec

a, (h I)
c. fma t
Z
gea
bC,Sasid+6*256
wfr
Z

;peek at ope ode
;do not a II ow format entire disk
;get controller attention
;set port / command block length
; wa it for REQ
; if data requested
;send next byte

nZ,iccsl
transmit data out.
wfr
nz,wcc

; wa it for req

;if not data requested
;pitch sector out

wee
t ,"ansmi t
sim
wfr
nz,Wcc

data in.
;set

input mode
for" r"eg
; if status, not data requested
;read sector"
iwalt

- wait command complete.

m

Q)
Q)

Balcolles Opel-dt lilU System tor- the XEROX 820-1 I
Sa"i Bus COllt, 01 Iliterface
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928

F66()
F66t:
F66F
F671
F67:j
1'675
F676
F679
F67B
F67D
F67F
F681
F6B~

F685
F686

CD
CD
28
ED
E6
47
CD
28
DB
CB
28
ED
20
BO
C9

F6CE
F607
2A
78
03

'If

lA
7B
16

»

'U
'U

it)

::J

0..

><

m

2962

2963
2964
291i5
2966
2967

,

F681
F6BA
F68ll
F61lF
F691
F693
F695
F696
F697
F699
F69A

F69B
F69C
F69f
F6AI
F6A4

CD
FA
DB
CB
28

F6A5
F69A
12
5F
F4
ce 77
20 03

.

AF
32 F6AD
F6 FF
32 F5FO
C9

F6AB
F6AC

CD F066
3A 0000

-

input mode
for REO
;if controller not providing status
tread completion status
; ignore unused bits
;set

; wa ;

t

;wait for REQ

;if not status
;recover status

;if not message byte
tread message byte
;if last byte not zero
;set Sasi error status byte

wait for REQ.
A < 0
A
0
A > 0

cft
m,wfrl
a,(Sasis)
b.req,a
z,wfr
b.par,a
nZ,wfrl

wfrl:

ca II
jp
in
bit
jr
bit
jr
equ
and
ret
pop

,

ecr - Enable Control Jer Reset.

wfr:

.

ecr;

..
F6A5
F6AB
F6A9

s im
wfr
z,ecr
a, (c)
3
b,a
wfr
z,ecr
a,(Sasis)
b.msg,a
z,ecr
a, (c)
nZ,ecr
b

in
and
Id
ca II
jr
in
bit
jr
in
jr
or
ret
wfr

09-Dec-81

Exit;

wfra
E6 04
C9
F1

ca II
ca II
jr

F687
20
12

2~)29

2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
295B
2959
2960
2961

wee;

MACRO-80 3.44

cft:
efta

67
C9
i i

xor
ld
or
Id
ret

Timer Expired
Request is for data
Request is for control
;check for time-out

;if controller hung
,read sasi status

;if request not asserted
;check buss parity

;if parity error

$-1
1 shl

b.cd

;test control /

af

data bit

,pitch return address

a
(reset),a

;enable cont,-oller reset next time
;by placing NOP at reset entry point
;return error status
;force define floppy format

- 1

(lastflll),a

Cft - Check for Tillie-out.
ca II
Id
equ
pub Ii c
or
ret

idle
a, (0)
$-2

;idle cpu

;*** •• =>;This word gets the address of the timer

cfta
a

Reset - Reset Controller.
This routine is ca lied prior to every command that is
issued to tl)e control:ler, but disables itself after
I

»

0
0

(I)

j

a.
><
m

m

.....,

0'1

Balcofles Opt:nJli"cI :,ystt:m foc
Sasi 0"5 Cont"o I I IIte,'face
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
298]
2984
2985
2986
2987
2988
2989
299U
2991
2992
2993
2994
2995
2996
2997
2998
2999
:3000
3001
3002
3003
3004
3005
3006
3007
3008
3U09
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019

tl.e XEROX 820-11

MACRO-80 3.44

09-Dec-81

cunnillg.
When, and if the contcollec times-out, this
coutine is re-enabled.
Thus, the controller w I II be
reset again before the next command is issued.
F6AD

tJu

F6AE
F60U
F6B2
F6B4
F6B6
F6B8
F6BA
F6BB
F6BO
F6dF
F6C2
F6C3
F6C()
F6C9
F6CC
F6CO

3E
03
3E
03
]E
0]
AF
03
3E
32
E5
2I
CO
CO
EI
(9

reset:

Id
out
Id
out
Id
out
xor
out
Id
Id
push
I (j
ca II
ca II
pop
ret

CF
13
5F
13
80
12
12
C9
F6AO
F6E8
F643
F669

.,
F6CE
F()OO

F6D2
F604
F606

F6D7
F6D8
F6DA
F6DU
F6DC
F6D[J
F60E
F60F
F6EO
F6EI
F6E2
F6E5
F6E7

3E 4F
18 02

3E OF
03 II
C9

OA
E6 80
C8
:iE UO

j*····::::>iNote RET gets put here aftltr reset
NOP gets put thtlrtl 'If t1mtl-out
I
a , I 100 I I I I b
;initialize pia In mode 3
(pioBs),a
a,OIOlllllb
;d7, d5 are outputs
(pioBs),a
a, I shl b.rst
;assert reset to controller
(Saslc),a
a
(Sasic),a
;de-assert reset
a,Oc9h
(reset),a'
;disatJle reset until time-out
hI
hI, rgreca I
iccs
i issue recursive rigid recal ibrate
wcc
hI

Sim - Set Input Mode.

silO:

Id
jr

,,

Sam - Set Output Mode.

sam:
50101:

Id
out
ret

; ;

cwp -

cwp:

Id
and
ret
Id
equ
or
ret
Id
or
,-et
Id
sub
(-et

a, (UC)
fm.hard
z
a,O
$-1
a
z
a,d
a
z
a,(opcode)
c.read

subttl
page

Sasi Command Blocks

,-doli I y
07
C8
7A
07
C8
3A F6FO
D6 08
C9

nap

a,OIOOllllb
sonl1

a,OOOOllllb
(pioAs),a

;set

pia A input mode

;set

pia A output mode

checl< write protect.
;get d,- i ve type

;if not rigid disk access
;get dirty parameter flag
;if not write protected
;it track zero request
;a Ilow reads, but no writes to f II e system

m
Ol

00

Balcones Ope,·"tillu System for t1)e XEROX 82D-ll
Sasi COIIUlldlld £lloLhs
JU;1U
3021
J022
3D23
3024
3025
J026
3027
302B
3D29
JO:lO
3031
3032
3033
3034
3035
3036
3037
303B
3039
3040
3041

MACRO-8D 3.44

09-Dee-Bl

Sasi Command Blocks.
f6Etl
f6E9

Ul

f6EA
f6F.B
f6EC
f6Ef

CO
00

on no
00

deflpy: db
deflun: db
db
flpfrm: db

f6fO
F6Fl
f6f2
f6f3
f6f4
f6f5

00
00
00
00
01
00

opeode:
lun:
addrh:
addrl:
nblk:
dct r I:

rgreca I: db
reclun: db

60

00

c.recal
3 shl 5
c.flpy

o

;define floppy format

D,O,O

o

db
db
db
db
db
db

o

subttl
page

Overlayable Initialization Code

o

D

o
1

o

;Class eode / Operation
;Logical Unit & Logical Address 20-16
Logical Address 15-8
Logical Addre~s 7-0
;Number of Blocks
;Error Retry Disable Control word

»

"0
"0
II)

:::l

0..
)(

m

m
(J)

W

Biilcolles Ope'"dt 111~J ':>ystelll for' ttle XEROX 82U-II
Over' I ayahl e I'litializdtioll Codt!
3042
3U43
3(J44
3045
3046
3U47
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
306:3
3064
3065
3066
3067
306B
3069
3070
3071
:1Il 7 2
3073
3074
3075
3076
3lJ77
3078
3079
:H180
3081
3082
3083
3084
3085
3086
30B7
3088
3089
3090
3091
3092
3093
3094
3095
3096

FbFb

\

001U
OOOA
F6F7
F6F~1

F6FC
F6FE
F701
F702
F705
F708
F700
F70E
F70F
F712
F714
F717
F711:l
F71A
F71B
F710
F71E
F721
F722

F72:l
F7:!6
1'729
F72B
F72fJ
F72E
F730
F731
F734
F736
F7:37
F738
F7:19
F7JA
F73B
F73D
F73F
F741
F74L
F743
1'745
F746
F7MJ

F5

C9
F6F6
00
F039

21
CO
87
CC
2B
21
7E
C6

F767
F480

f i r-s t :

PUSll
phex
.radix
.radix
Id
ld
Id
ca 11
dec
Id
Id

af
$-dskdvr,
16
10
a,Oc9h
inuke self first t I me
(first),a
h,O
; i nd i ca t e return register value
dayt I
;get address of monitor timer
hi
(efta) ,Ill
;store addr'ess of timer for check routine
(gcaa),hl
;and for command startup

f i r-5 t I :

Id
ca I I
or
ca II
jr
Id
ld
add
Id
jr
cpl
Id
pop
ret

hi, cnfdpb
sal403
a
z,cpb
z,first2
hi, cnfdpb+5
a, (h I)
a,32
(h 1) ,a
nZ,firstl

1'723
00
F76C
20

77

" I
:jA
FE
2U
7E
FE

EEOO
F76C
20
04

f i n;t2:

,,

cpu

cpt) :

Id
Id
cp
j rId
cp
r-e t
Id
let
Id
or
ret
add
Id
and
sra
sra
roe t
inc
djnz
dec
Id
Id

E5

CB
11 OOOF
1I6 04
'IE
87

ell
19

IE
E6 87
C8 21'
C8 2F

CO
23
10 F I
28
11 F4AF
III 0040

- First time only.

First

F6A9
F627

20 E8
2F
32 F6DC
f I
[9

09-Dec-81

' ,

+
+
3E
32
26
CO
28
22
22

3.44

MACRO~BO

cpUI:
cpb2:

jpoint to physical driver read command
jread partition parameters
;if no error-s then check parameter blocks
j if parameters are loaded
jtry backup heads
;get logical sector
; aelvance to next head
j if 4 heads and 2 cylinders not attempted
tracks > 0 read only

;set

(rdofl I y), a
af

- clleck paramete,r blocks.
Ii I , r-g(lt)u t

a, (cnfdpb+5)
32
nZ,cpbl
a,(rll)
Oe5h
Z

de,16-1
b,4
a, (Ii I)
a
nz
hi ,de
a,Ud)
871i
a
a
nz
hi
cpb2
hi
de,Dpbrg4+16*4~1

be,16*4

;point to dpb buffer.
jget sector this dpb set came from
jif not pr i mar-y set

i·u~e. default
dpbs if none configured
;set offset from high spt to deblock control
jverify 4 eJplls
;set low sectors / track

jif bUHunec sectors / track
;advance to deblock control

jif ba(l deblocking constant

m

-....J

a

Balculles Ope,-alillU System for the XEROX 820-11
Overlayable Initial ization Code
3097
309S
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138

»

-0
-0

(1)

::l

a..
><
m

F74C
F74E
F751
F754
F757
F759
F75A
F75B
F75C
f75D
F75E
F75F
F760
F761
F762
F76~
F764
F766

ED
01
11
21
310
F5
7E
3D
U7
12
09
EB
09
EB

B8
0010
F3DE
F47D
04

F767
F76A
F76C
F76E

01 04 00
0000
0020
EEOO

cpb3:

F1

3D
20 f3
C8

MACRO-SO 3.44
Iddr
Id
Id
Id
Id
PUSll
Id
dec
add
Id
add
ex
add
ex
pop
dec
jr
ret

cnfdpb: db
dw
dw
dw

0300

sasidl

FAOU

dloc

09-Dec-BI

,move dpbs into place
bC,16
;set 16 bytes/dpx
de,Dpbase+4*16+14 ;point at al lac vector pointer
hl,Dpbrg4+13
;point at reserved tracks
a,4
;count off 4 partitions
af
a, (h I)
;get reserved tracks for partition
a
;just so nice numbers come out
a,a
; 16 blks/track / 8 blks/byte
2 bytes/track
(de),a
;store low allocation vector address
hl,bc
;advance to next dpb
de ,Ill
hl,bc
;advance to next dph
de,hl
af
a
nZ,cpb3
;if more to allocate
z
,return success

=

01,4,0

o

32
rgdbuf

;read partition 0
; t,-ack zero
;sector 32
;rigid parameter table buffer

equ
$-sasstr
.depl1ase
defl
dloc+sasidl
.phase dloc
above
d&seg

OAOU··
FAOtl

Dvr-Imt:

fAOU

r-qtop

equ

$

s I erT:

Id
or
ret

111,0

subttl
page

820 StyJe Disk Driver Emulator

FA08
fADS
FAOD

21 0000
F6 fF
C9

;disk dr-iver limit
;set required top of reside~t monitor

-1

»

U
U
It>
::l

0.

><
m

m

-...,J
-"

Baleolles Opel'at ; II!] System for' tile XEROX 820-11
020 Style Dish [J,; ver Emulator
313!oJ
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
J165
3166
3167
3160
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3100
3181
3102
3103
3104
3185
3106
3187
3100
3109
3190
3191
3192
3193

',
DADE"
FAOE
fAOf
fAl0
FAil
FAI3
fAI5

ff
00
0000
0001
EOOD

820 Style Disk Driver Emulator.
above
dB.seg

+

ff

;generate code in ram
-I
- I
00
00
01
bootbf

phycmd:
pl1yun t :
phydrv:
phytrh:
physec:
phydma:

defb
defb
defb
defw
defw
defw

,,

Select
Entry:
Ex it:

fA 17
FA10
fAIA
FAIC
fAlf
'fA22
fA24
FA25
FA26
fA27
FA20
fA29
fA2A
fA2B
fA2e
FA2E
FA31
fA32
FA33
FA34
fA36
fA37
fA3£!
FA39
FA38

FA3C

79
FE
30
32
21
06
09
7E
B7
EB
67
of
CO
05
06
CD
70
84
01
28
Af
12
C9
F (i
C9

select:
08
10
fAIO
FA5A
00

Ff
FA51

03

FF

liE 00

se II:

79
32 FA II

Id
cp
jr
Id
Id
Id
add
Id
or
ex
Id
Id
ret
push
Id
ca 11
Id
or
pop
jr
xor
Id
ret
or
ret

,,

Home

hom",:

Id

.

,

FA3l
FA3F

09-Dec-01

MACRO-OO 3.44

seek:

Seek

-

,pl1Ys i ca I Driver Command
,physical unit
,logical unit
,track
,sector
,dma address

- Select Unit for I/O.
C
A
A

Unit

= 0
-I

if no,errors
if errors

a,c
8
nC,sel1
(phydrv) ,a
hl,seltbl
b,O
hi ,bc
a, (h I)
a
de,hl
h,a
I,a
z
de
b,-I
xqphys
a, I
h
de
z, se I I
a
(de) ,a

,set drive selected

;return no errors
,prevent more density re-selects

-I

, r'eturn error

,save logical CP/M drive
,set select table address
i

i nde x into select table

iin case previous select worked, say no dph
internal routines
, if drive has already been selected
isave table address
,set Select operation
,execute physical driver
,get returned dph address

;to

,retrieve select table address

,if select unsuccessful

Position to track zero.
c,O

,force track zero

- Seek Track.

Entry:

C

ld
Id

a,c
(phytrk),a

Track to r'ead/write from next

m
....,
tV

Balcunes Oper-atill;! Systelll tor tile XEROX B20-I1
020 Style Disk D, iver Emulator
3194
3195
3196
3197
3190
3199
3200
3201
3202
3203
3204
3205
3206
3207
320B
3209
3210

FA42
FA43

AF
C9

MACRO-OO 3.44
xor
ret

a

:J>
c

C

I'D

:J

0..
X

m

;return no errors

Wr it e - Wr i te Physical Sector.
FA44
FA46

llo

00

write;

b,O
rd ...

ld
j ,-

18 02

;set Wri te operation

Read - Read Physical
FA40

06 01

read:

Rdwr -

Ex i t :

C
HL
A

A

79

rdwr;

32 FA13
22 FA15
;;

Id
Id
ld

21 FADE
70
CD F344
B7
C9

xqpl1ys;

;;
FA5A
FA5E

FF FF FF FF
FF FF FF FF

Id
Id
ca II
ar
ret

Sector
Transfer Address
o if no errors
-1 if errors

Internal
B
B
B

FA51
FA54
FA55
FA50
FA59

Processor.

a,c
(physec),a
(phydma) ,hI

xqphys Entry;

;set read operation

Rea~/Write

Ent,-y:

FA4A
FA4B
FA4E

Sector.

b,l

Id

3211

3212
3213
3214
3215
3216
3217
3210
3219
3220
3221
3222
3223
3224
::1225
3226·
3227
3220
3229
3230
3231
3232
:1233
3234
3235

09-Dec-01

;set physical sector
;set transfer address

Ex~cute

Physical Driver.

-\ for Select
o for Write
for Read

hI, phycmd
(h I) , b

xqdvr
a

;point ta physical command block
;store aperation
;execute driver
;set flags

Emulator PiSk 1/0 Ram.

seltbl: defb
defb
subt t I
page

-1,-1,-1,-1"
-1,-1,-1,-1

;drive already selected table

Command procest;or

»

'U
'U
([)

:l

0..

><

m

m

"
W

I:ldlcolles Ope.a I i flU System for' tile XEROX 820-11
COIiUlld.ICj P'·OCtlS"Ll.
:J23ti
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3:!57
3258
3259
32tiO
3261
:3262
3263
3264
32ti5
3266
3267
3268
:l2ti9
3270
3271
3272
3273
:J 27 4
3275
3276
3277
3278
3279
3280
3281
3282
3263
3264
3285
3286
3287
3280
3209
3290

+

OAti2"

,,
fAti2
fA63
fA66
fA69
fA6B
fA60
fAtiE
fA71
fA73
fA76
fA78
fA76
fA70
fA7f
fA81
fA83
fA8G
fA86
fA07
fA89
fASC
fASD
fA8E
FAOf
fA90
fA91
fA93
fA95
fA98
fA99
fA9C
fA9D
fA9F
fAAO
FAAI
FAA4
FAA6
FAA7
FAAA
FAA6
FAAC
FAAO
FABO
FA64
FA67
FAB9
FAB£:
FACU
fAC4
FAC7

fB

:n 0000
CD fC3D

00
2A
04
2I
DE
CO

38
3A
fE
28
06
fE
30
87
4f
06
21
09
7E
26
6E
67
E6
20
II
05
01
f3
DB
67
F5
f4
ED
FI
F4
FB
EI
E5
CO
FO

co
DO
".'.A
ED
ED

CD
:W

OA
20
ff5C
50
fB37
51
ff5C
00
E3
40
16
44
00
fAD9

80
17
fC55
0299
IC
F29C
60
F293

FC36
21 FF50
f65F
EI
FFB5
56 FF67
46 FF69
FAD6
99

MACRO-80 3.44

09-0ec-81

above
;put corJe upstairs
d&seg
prompt user for command.

prompt: ei
Id
ca II
defb
defm
defb
Id
Id
ca II
jr
autobt: Id
cp
jr
sub
cp
jr
add
Id
Id
Id
add
Id
dec
Id
ILl
dnd
jr
Id
push
Id
di
in
or
push
ca II
Idir
pop
ca II
ei
pop
prmt I:
push
ca II
Id
ca II
pop
ILl
III
Id
ca II
jr

sp, s.t ack
pnext
cr, If
'

.

eot
hi ,I inbuf
c,80
ge t lin
c,what
a,(linbuf)
cr
z,prompt

,reset system stack

,butfer. of 80 chars (ver. 2.0)
; input a bufered console line
,print '.,hat ? ' i f input error
;get first character in line
, jump i f a null

line

.@'

'Z'-'@'+I
nC,what
a,a
c,a
b,O
hl,cmdtab+1
hi ,bc
a, (h I)
hi
I ,(til)
h,a
8011
nz.prmtl
de,cloc
de
bc, tpamax

,set

a, (syspio)
a
af
p,crton

,enable rom if disabled

af
p,crtoff

,disable rom if enabled

hi
hi
crlf
i y, I i nbu f + 1
params
ix
hl,(paraml)
de,(param2)
bc,(param3)
jpix
nc,prompt

, if not

letter

, i nde x command table with character

;get dl1dress of command processor
; if resident command
jffiOVe transient command t.o RAM area
length of

largest transient

,set e~ecution address

; input numeric parameters from "
, line buffer and test i f error

,ca I I subroutine @ ix
;9° back to prompt i f no errors

m

......
-t>-

):>
"0
"0
([)

::l

a.
><
m

lJalcones Oper'a t i II!J System tor' tt1e XEROX 820-11
Command pr'ocest.ur
3291
3292
3293
3294
3295
3296
3297
3:.!98
3299
3300
3301
3302
:n03
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3:.JLU
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346

FAC9
FACC
FADO
FAD2
FAD3
FAD4

CD FC3D
20 77 68 61
74 3F
U7
04
lEl 8C

wt1a t :

FAD6

DO E9

FAD8
FADA
FADC
FADE
FAEO
FAE2
FAE4
FAE6
FAE8
FAEA
FAEC
FAEE
FAFO
FAF2
FAF4
FAF5
FAF8
FAFA
FAFC
FAFE
FBOO
FB02
FB04
Fa06
Fa08
FBOA
FBOC
0036

177B
I1B8
1353
1436
12F2
1315
1428
12DB
14E2
13CA
FAC9
FAC9
11 B8
1315
FAC9
13F 1
1459
FAC9
1 :367
FAC9
1477
FAC9
1443
1367
13FB
FAC9
FAC9

fBOE
FBOF
FB10
FBll
FB14
FB17
fB1B
FB1E
FBIF
,FB20
FBn
FB25
FB2e
FB29

pnext
what?'

defb
defb
j r'

'G'-64
eat
P'-Olllpt

;say

jpix:

jp

( i x)

; ca II

cmdtab:

oefw
defw
defw
defw
defw
defw
defw
defw
defw
defw
def ..
def ..
defw
defw
defw
defw
oefw
defw
oef ..
defw
defw
defw
defw
defw
defw
defw
defw
equ

help
boot
baud
block
memdmp
view
f i II
goto
term
incllld
what
what
boot
view
what
outcmd
proto
what
dskcmd
.. hat
type
what
vercmd
dsl

1J
1J
(1)

:J

a..
)(

m

3392
3393
3394
3395
3396
:3397
3390
3399
3400
3401
3402

,,
FB2C
FB2E
FB31
FB33
FB36
FB37
FB30
FB3B
FB::IO
FB3F
FB40
FB42
FB43
FB45
FB47
FB48
FB4A
FB4B
FB4C
FB4E
FB4F

MACRO-OO 3.44

ge t lin - read line into buffer.

(,9

Id
Id
Id
Id
ret
getlin: Id
ca II
9 lin I:
ep
jr
Id
cp
ret
cp
jr
cp
ret
inc
dec
jr
scf
ret

2B

gl in4:

3E
32
3E
32
C9
41
CO
FE
28
77
FE
CO
FE
28
FE

40
FF5C

00
FF50
FC27
IE
ED
00
Olj
09
20

LJIj

23
00
it}

:n

EA

FB5U
FB51
FB54
FB56
FBS7
FB50
FB59
FB5A
FB5C

20 00
04
OC
70
91
30 DC
C9

FB5[J
FB5f
FBG2
FBG5
FB67
FBGO
fB6A
fBGe
fB6D
fB6f
FB70
FB71
FB72
FB75
FB76
FB7A
FB7C
FB7E
FB81
FB84

FD
01
FD
D6
CO
06
20
UC
CB
37
CO
C5
CD
CI
DO
DO
DO
OD
DO
FE

gethlp:

CD FC3D

23
DOff
7E 00
00

paraO:
params:

13
FI
para I:
51
paJ'ii2:
FBOA
21 FFB5
09
09
75 00
74 01
20

para4:

09-0ee-01

a. '@'
( I i nbuf i ,a
a,cr
(linbuf+l),a
b,c
echo
Helpkey
z,gethlp
(h I) ,a
cr
Z
'H'-64
z, 9 Ii n4
c
hi
c
nZ,gl in1

.save max line length parameter in b
;get a character from the console

;if user needs help
;check for carriage return
; i f end of line
;check for ctl-h backspace
;other control characters are illegal
;store cllaracter in buffer
;get another if there's more room
;return with carry=\ if too
;many characters are entered
;delete last character from buffer

dec
ca II
defb
defb
inc
Id
sub
jr
ret

III
pnext
' , '1-1' -64
eat
c
a,b
c
nC,glinl

inc.:
Id
Id
sub
I'e t
sub
jr
inc
bit
scf
ret
push
ca II
pop
Id
add
add
Id
Id
cp

iy
be. low -I
a,(iy+O)
cr
Z
' -c,'
z,paraO
c
2,c

;advance character scan
;set parameter index
;fetch character

nz
be
gethex
be
ix,paraml
ix,bc
iX,bc
(ix+O), I
(ix+\),h

jerror if > 4 numbers entered
.save parameter count
;read a number from line buffer

;delete character from screen
j5et

max line length

; if backspace not past the start of the line

; if no parameters

,if leading blanks
,advance pal'ameter index

;point to parameter storage area
;add parameter count in bc
;store data returned from 'GETHEX'

»

"0
"0
it)

:J

a.
><
m

m

-...J
-...J

Balc.ones Ope I-a lin" ~ystelll f
Console SUPPOI-t routines
3403
3404
3405
3406
34t)]
340B
3409
3410
3411
3412
3413
3414
3415
3416
3417
341B
3419
3420
:-1421
3422
3423
3424
3425
3426
3427
342B
3429
3430
3431
3432
3433
3434
3435
3436
3437
3430
3439
3440
3441
3442
::1443
3444
3445
3446
3447
3448
3449
3450
3451
3452
]453
3454
:i455
3456
3457
3450

FBB6
FBBO
FBOA
FBBC
FBBD
FBBE

FBBF
FB90
FB93
fB96
fBDO
fB9A
fB90
FB9F
FBA2
FBA4
FBA7
FBAO
FBA9
FBAC
FBAE
FBBI
fBB2
FBB4
FBB6
FBB9
FBBA
fBBB
FBBE
fBCO
FBC3
FBC5
FBCti
fBCA
fBCB
FBCE
FBDD
FBDI
FBD4
fBD5
FBD6
FBD7
FBD9

01'

tile XEROX B20-11

jr
cp
jr
Id
inc
ret

LU E4
FE 2C
LB EO
79
3C
C9

E5
CD
CD
L16
.iE
CD
3E

FC16
FCIE
10
Of " ,
fC23
07
CD FC23
:iE 03
CD FC23
7E

z,paral

;get anothel- item i f space

z,paral
a,c
a

;get anotl1er item i f comma
;set parameter count

dump

- dump melilory.

dUIIIP:

push
ca II
ca II
Id
Id
ca II
Id
ca II
Id
ca II
ld
inc
ca II
djnz
ca II
pop
ld
Id
ca 11
ld
inc
ca II
djnz
ca II
jr
ca 11
cp
ret
ca II
cp
ret
ca II
dec
Id
or
jr
ret

hI
put4hs
space
b,I6
a,16-1
dlllpfmt
a,B-I
dmpfmt
a,4-1
dlllptmt
a,(tll)
hi
put2hs
dump2
space
hi
b,16
a,lfh
conout
a, (h I)
hi
conout
dump3
canst
z,dump4
conin
cr
z
cunin
cr
z
crlf
de
a,d
e
nZ,dulilp

dump2;

dump3:

L3

CD FOOC
10 f4
CD F006
20 DC
CD F009
FE 00
CO
CD F009
FE OD
CO
CD FC36
lB
7A
B3
20 B6
C9

09-0ec-'BI

,,

L3

CD FCIB
III EA
l.D FCIE
E1
06 10
:iE 1 f
CO FOOC
7E

MACRO-BO 3.44

dump4:

,,

getllex converts ascii

.save star-ting address
;print starting address in hex
;skip 3 columns on 16 byte boundry
;skip 2 columns on 8 byte boundry
;skip

column

:get a data byte

21

54
5D

0000

gethex:

Id
Id
Id

III ,0
d,ll
e, I

@

hI

:print the data in hex
:repeat 16 times
:restore starting address
:force next character
;get back data byte

@

hi

;print ascii character in a
;check console status

;it char not ready
:read char;it user abort
:pause wll i Ie user examines display

; if user found i t
;send end of line

; if dump not complete
to binary.

carry set on il legal conversion result
tenninat ing cllarac t-er retul"ns in a.
III I"eturns with 16 bit binary integer
FBDA
FBDD
FODE

on 4 byte boundry

:pl-eset result

m

"

00

);>
'"0
'"0
ttl
::J

0..

><

m

Bdlcones Oper'at ill e) Sy,;telll f or-

Console suppo,' t
3459
3460
3461
3462
3463
3464
3465
3466
3467
34GB
3469
347D
,3471
3472
:1473
3474
3475
3476
3477
347B
3479
348D
34!l1
34B2
:l4B:l
34!l4
3485
3486
3487
34B8
34B9
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
350b
3507
3508
3509
3510
3511
3512
3513
351'4

fBDf
fBED
fBEI
fBE2
fBE3
fBE4
fBE7
fBEB
FBEA
FBED
fBEE
fBfO
FBFI
FBf2

I

ttle XEROX !l20-11

29
29
29
29
19
fD
4f,
FD
eo
5f
30
79
B7
C9

gnuml :

7E 00

9 nu1ll3 :

23
fBF3
Ef

; i

FBF3
FBf5
fBFb
FBF8
FBf9
fBfA
fBFC
fBfE
FBff
fCOI
fCO:!

MACRO-BO 3.44

09-Dec-Bl

o"t ines

Db 30
DB
FE OA
:IF
DU

06 07
FE OA
DB
FE 10
:Jf
C9

FCD3
fC04
fe05
fC06
FeD7
fCOB
fCOB
fCOC
fCOE
FCIO
fC II
FCI3
fCI4

F5
If
If
If
If
eD FCOC
FI
E6 Of
C6 90

fCI6
fCIl
fCIA
fC 18

7C
CO fe03
70
CD fC03

27

CE 40
27
18 OA

add
add
add
add
add
ld
Id
inc
ca II
Id
jr
Id
or
ret
hexbin

11e"bin: sub
ret
cp
ccf
ret
sub
cp
ret
cp
ccf
ret
put2hx: push
rra
rra
rra
rra
ca 11
pop
putnib: and
add
daa
adc
daa
jr
put4hs:

Id
ca II
Id
put211S: ca II

,,

space

111 I h I
til ,h I
hl .. hl
hl,hl
hl,de
a,(iy+O)
c,a
iy
hexbin
e,a
nC,gnullll
a,c
a

;multiply result by 16

;append next dig It
;get next character from line buffer
;advance buffer address
; conver"t one ascii hex to binary
;return first non hex digit

- convert hex to binary.
'D'
c
10
nc
7
ID
c
16

af

putnib
af
000011 1 III
a,90h
a,40h
output
a,h
put2hx
a,l
put2hx

- output space.

fCIE

3E 20

space:

Id

a,

; fa 11

fC2C

C3 fODC

output:

jp

conout

;display cl1aracter

i;

[jlllpfmt

through to output space

- Dump Command Output formattef'.

l>

a
a
/1')

:l

0...
)(

m

m

-...,J

ID

fli:1ILolle~

O~el"'l

CO/lsole :;"pporl
::1515
:J516
::1517
:J511l
3519
3520
3521
3522
35:l3
3524
3525
:i5L6
::1527
3528
3529
3530
3531
35:i2
3!;33
3534
3535
3536
3537
353B
3539
3540
:i541
3542
3543
3544
3545
3546
:1547
354B
:1549
3550
3551
3552
3553
3554
3555
3556
3557
3558
:i559
3560
3561
3562
3563
3564
3565
3566
3567
3568

FCL::I
FC24
FC25

il'!J

~y~tem

for"

tile XEROX B20-1I

MACRO-BO 3.44

09-Dec-Bl

loutilles

A".)
CO
18 F7

dmpfmt:

,,

and
ret
jr
echo

nz
space

;check address boundry
; if not on boundry
;skip one column

- read and echo console character.

Echo irlputs one character from the console
device, prints i t on the console output and
then returns i t in the A register 1n upper case,
FC27
FC2A
FC2C
FC20
FC30
FC32
FC33
FC35

CD
FE
CH
CD
FE
08
06

F009
IE

ecllo:

FOOC
61
20

<:9

"
FC36
FC39
FC3C

FC3D
FC3E
FC3F
Fe40
FC41
FC43
FC44
FC47

UJ FC30

ca II
defb
ret

,,

pnext

pnext:

ex
Id
inc
ex
cp
ret
ca II
jr

n)

, ,
FC49
FC4A
FC4B
FC4D
FC4E
FC4F
FC50
FC51
FC52
FC53

F.B
67
ED 52
EEl
05
50
59
Cl
03
C9

FC54

(9

cr'lf

crlf:

O[J OA 04

E :1
7E
23
E3
FE 04
CB
CO FOOC
18 F4

ca 11
cp
ret
ca II
ep
ret
sub
ret

conin
Helpkey
z
conout
, a'
c
'a' -' A'

; input "a character and echo it
;do not echo help key

;if not lower case
iconve,..t

lower case to upper case

- carriage return-liflefeed.
pnext
cr,lf,eot

-

;print next message

print mes:;age after- ca 11.
(sp) ,hI
a, (h I)
hI
(Sp),111
eat
z
conout
pnext

;set message address
;set return address

options and (o.move or o.verf)
if
set block address for move and verify.

bloead: ex
or
sbc
ex
PUSll
Id
Id
pop
inc
ret
endif
ret
subttl
page

de,hl
a
III ,(je
de,hl
de
d,b
e,c
be
i)c

;clear carry
:get diffrenee between
;hl & de for by tee aunt
;exchange de,be

;get count+l

Transient Command Area

into bc

m

00

0

Bcd

COlll"Hi

Trails i ,HI t
3569
3570
3571
3572
3573
3574
3575
3576
3577
357U
3579
35UO
3581
35B2
35U3
35B4
35U5
J5B6
3587
3588
35B9
3590
3591
3592
35!13
3594
35!15
~l596

p
-0
-0

(()

:J

a.
)(

m

3597
359B
3599
3600
3601
36112
J603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
:3(j23

Open,t illY
COlllllldnLJ

System for" tile XEROX 820-11
Ar'ea

FC5!)

cloc

OC55"

..

FC55
FC56
FC59
FC5A
FC5t:
FC5D
f UiU
FC62
FCb·1
FC65
FCb7
FC69
FC6B
FCnD
FC6f
FC71
FC73
FC75
Fen
FC79
FC7B
FC7[l
FCn
FC81
FlB3
FCUG
FCUB
FCBA
FC8D
FC90
FC93
FC95
FC9]
FC99
FC9C
FC9l'
FC9f
FCAI
FCA2
FCA3
FCA4
FCA6
FCA9
FCAA
FCAC
FCBU
FCB'l
FCIE;

OU
f:O F293

IJB
L8 4A

UB
11
CB
28
F3
:JE
03
JE
03
D3
:lE
D3
10
DB
CB
:lE
20
CB
:JE
D3
:32
18
CB
21
II

FO!11
47
24
CF
10
J8
10

lC
DO
10
FE
lC
67
02
04
E6
03
10
Ff54
IE
F6
F708
F470
0300
BO
02
00
F361
08

[) 1
EO
E6
20
21
06
7E
EE 04
77
2 ~~

23
10 F8
CD
IA
IB
38
49
2()
34

FC3D
38
32 30 20
49 20 76
2E 30 31

MACRO-80 3.44

defl
$
;estatJlish ove,' I ay execution address
overlay start
cB.seg
signoll
Announce System Ready.

-

signon: ex
ca I I
ex
jr
ex
Id
bit
jr
di
Id
out
Id
out
out
Id
out
signl:
djnz
in
b; t
ld
jr
set
Id
sign2:
out
Id
jr
sign3:
set
Id
Id
Id
Idir
ane!
jr
Id
Id
s i yn:3a: 1(1
x or"
Id
inc
inc
djnz
sign4:

09-0ec-81

af,af'
crt off
af,af'
z,sign4
af,af'
hl,confg
O,a
z,sign3
a , 1 I 00 I 1 1 1 Il
(sysctll,a
a, 00 I 1 1000b
(sysct I) ,a
(syspio),a
a,OdOh
(wdI797),a
signl
a,(syspio)
c.five,a
0,2

nZ,sign2
c.five,(hl)
a,3
(wdI797) ,a
(steprt),a
sign4
c . sas i , (10 I )
10 I ,R igdpb
de,dpb5s
bC,Sasidl
2
nz,sign4
hl,Seltab+l
b,8
a, (h I)
4
(10 I) , a
hI
111
si9n3a

;disable rom/ram

;if Rxl984 loaded disk driver
;get syspio data
;point to configuration byte
; i f SASI
iset
i

interface present

Pia B in Bit Mode

turn around dO, 1,2

:drop al I drive selects
:reset wd-1797:-02
;wait

1797 not busy

;preset 10 rnsec step rate
; if not 5"
:set long step
: I'estore / unload heads
;set Sas;

card installed
:set address of rigid dpb
;set address of 5.25" floppy dpb
:set sasi driver length
;Move driver down

; if not A/E swap

ca I I
defb
defb
defm

pnext
clrs
esc 1'8'
'820-11 v

eJefb

rev/100+'O','.' ,(rev lIIod 100) / 10+ '0' , (rev mod 10)+'0'

;clear screen
;set low light as default mode

»

-0
-0

It)

::J

0..
)(

m

Balcunes 0P""- at ill!) System f 0'- t t,,~ XEROX 1l20-II
Trdllsiellt COlllllldllLi Area
3624
3625
3626
3627
3(;28
3b29
363fl
3631
3Gn
363:i
3634
3635
3636
3637
3630
]639
:.!640
3641
3642
3643
]644
3645
3646
3647
3641l
3649
3650
31151
3652
:J653
:1654
3655
3656
3657
3650
3659
30GO

FCB9
FCBD
FCCI
FCCS
fCC9
FCCe
FCCE
FCCF
F CD:.!
FUll
fCDEl
fCOE

~O
~J1

1F
39
58
78
72
OA

lC
38
65'
20
70

20
32
72
43

20
of
of
OD
flA
4C 20 20 20
4C GF 61 64
:W 53 79 73
74 65 60
00 OA

MACRO-IlO 3.44
deflll

09-0ec-lll

' .31.28; ,

1982 Xerox Corp'

defb
defb
(lefm

cr, If
If
'L - LOdd System'

defb

cr, If

if
defm

options and o. ·'errn
'H - ~Ios t Terminal'

OA

defb
endif

cr, If

if

20 20 20
79 70 65
72 69 74
72
OA

defm

options and o. type
'T - Typewriter'

feEU
fCE4
FCEU
FCEC
FCFO
FCfl

40
48
20
60
be
. 00

20
6F
54
69

FCF:l
FCf7
FCFB
FCff
fOOl

54
54
77
(-i5
LID

fOO:.!

07 04

fDOS
fDUU
FDOO
FDOE

CD
CA
CD
18

20
73
65
6E

f006
fOO3
F009
F5

20
74
72
61

defb
endif
defb
eatkey: ca II
jp

ca II
jr
subttl
page

c r, If
7,eot
canst
z.warm
conin
eatkey

lID byte Drivers

;90

enter monitor

m

00
N

»

"0
"0

tt>

:::l

0)(

m

Balcone5 Operat illU SY5tem for t11e XEROX 820-1 I
I/O lJyte 01' ive. 5
3661
3062
3663
3664
3665
3fi66
3667
3668
3fi69
3670
:167 I
3672
3673
3614
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
36B5
3686
3687
3688
3fi89
3690
3691
3692
3693
3694
3695
3696
3697
3698
'3699
3700
37111
3702
3703
3704
3705
3706
3707
3708
3709
3710
:37 11
3712
3713
3714
3715

OOBB'

MACRO-80 3.44

09-Dec-8'1

overlay iobdvr
c&seg

+

. depllase
.pl1a5e
lobloc

F770
F772
F773
F774

F775
F777
F778
F77A
F77C

DB 06
OF
9F
C9

DB U6
(IF
3ll FB
DB 04
C3 FOE2

,,

comins - Communications input status.

comins:

in
rrca
sbc
ret

\

CD F788
21:l FB
79
(J:l (14
C9

cominp - Communications input data.

cominp:

in
rrca
jr
in
jp

DB 06
Efi 04
C8
f6 FF
C9

.

comots:

i;

F790
F793
f795

3A 0003
E6 03
C9

coniob:

.,
F 79(;
f799
F798
f19C
F79f
f7AD

CD f790
2!l E4
::SD
CA F2fE
79
C3 fOf8

a,(5iocpa)
nC,cominp
a,(siodpa)
kbma5k

comout - Communications output.

CO//lout: ca II
jr
III
out
ret

,
F788
f78A
F78C
f78D
F78f

a,a

,,

,,
F77F
f782
F784
F785
f707

a,(siocpa)

z.comout
a,l:;

(s i odpa) ,a

comots - Communications output 5tatus.
in
and
ret
or
ret

a.(siocpa)
4
Z

-I

coniob - get console i/o byte.
I Ll
and
ret
iocono

iocono: ca II
jr
dec
jp
Id
jp
; ;

comots

a,(iobyte)
00000011b
-

Console output thr.ougtl iobyte.
coniob
z.comout

a
z,fastcrot
a,c
s;oout

iocons - Console 5tatus through iobyte.

»

0
0

ttl

:J

0-

><
m

Balcollt!s Opt!r'at il'"
1/0 uytt! D,-ivt!I S
:1716
3717
3718
3719
3720
13721
3711
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
37:W

m

OJ
W

3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
376J
3764
3765
3766
3767
3768
3769
3770
3771

F7A3
F7Ab
F7A8
F7A9
F7AC

Syst"m for- tl1e XEROX 820-11

co F790
2U CU
,H)

CA FOCD
C:i FOE5

ioeons: ea II
jr
dec
jp
jp

,,
,
F7AF
F7B2
F7B4
F7B5
F7BB

F7BB
F7BE
F7CO
F7C2
F7C5
F7C6
F7":9

CD
28
3D
CA
C3

3A
Eo
28
EA
79
FA

F790
C1

09-Dee-81

eoniob
z,eomins
a
z,kbdst
siost

ioeoni - Console input tl1rough iobyte.

ioeoni: ea II
j ,-

dec
jp
jp

FOD8
FOFO

0003
CO
BD
F70C

MACRO-80 3.44

eoniob
z,eolllinp
a
z,kbdin
sioin

,,

Istout - List output through iobyte.

i a lis t :

Id
and
jr
jp
Id
jp
jp

FOF8

Ci F2FE

,,

a.(iobyte}
1I00OOOOb
z,eomout
pe,pioout
a,e
m,sioQut

fastert

List output through iobyte

;

F7Ce
F7U
F701
F703
F70b
F7D9
F7DB

,jA U003
E6 CO
:!tl B5
EA F7F4
FA 1'105
F6 FF

iolsts:

0'-

CO F7F4
Lll F8
79
OJ 08
DB OA
CB 97
D:J OA
LB 07
D3 OA
:JE OA
:W

20 FD
C9

DB OA
2F
[:,6 10
CO

Para I I e I Output Driver.

pioout: ea II
jr
Id
out
in
,-es
out
set
out
Id
pial:
dec
jr
ret

..
F7F4
F7Fb
F7F7
F7F9

a,(iobyte)
1I00OOOOb
z,eomots
pe,piosto
m,siordy
- I

ret

U)

,,
F7DC
F7DF
F7El
F7E2
F7E4
F7E6
F7EU
F7EA
f7Ee
F7EE
F7FO
F7FI
F7F3

Id
and
jr
jp
jp

piosto:

piosto
z,pioout
a,e
(gpioda),a
a,(gpiodb)
p.strb,a
(gpiodb),a
p.strb,a
(gpiodb),a
a,IO
a
IIz,piol

;if printer not ready
; load ellaraeter data
;assert strobe
;release staDe
;delay fo,- ACK

Parallel Output Status.
in
epl
and
ret

a.(gpiodb)

;read status

shl p.rdyo
Z

;if ready

m

co

.J::>.

Baleu!!"" Oper'ali .. ,.. System tor
liD uyte D,-ive",

3772
3773
3774
3775
3776
3777
3778
3779
3780
3781

FHA
F7fC

OU80

tile XEROX 820-11

f(j FF
(,9

MACRO-80 3.44

or

09-Dec-dl

-1

ret
iO\..J(Jv5

equ

$-iobloc

.dephase
.phase
c\oc+iobdvs
subttl
page

Transient Command Processors

p
:J

Elalcofles OperatillU System for' the XEROX 820-11
Transient Commdnd Processors

MACRO-80 3.44

09-0ec-81

0

It)
j

a..
)(

m

m
00
lJ1

3782
3783
3784
37tl5
3786
37117
3788
37n9
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3UOO
1 3801
3U02
3803
3804
3805
3B06
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3tll7
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3U33
3834
3835
3836

if

1114U'
FC55
FC58
FC59
FC5A
FC:)C
FC5E
FC60
FC62
FC64
FC65
FC67
FC6n
FC69
FC6A
FC6C
FC6F
FC71
FC72
FC73
FC76
FC79
FC7A
FCn

FC7F
FC8lJ
FC82
FC83
FC86
FC87
FC88
FC89
FC8A
FC8D
FC8F
FC90
FC93
FC94
FC96
FC99
FC9A
FC95
FCge
FCH[l
FC9E
FCA~

FCA3
FeAt)
FCA9

overlay boot
c&seg

+

11
7E
2C
06
28
FE
28
06
D8
FE
:1 F
DU
4F
C6
32

Ff50
hoo t I :
00
DB

13
F6
34
10
boot2:

41
FCOO
LE 00
C5
E5
CD FCEE
21 FC09
E5
DE 00
CD FA17
CO
3E Ff
12
II OOOA
19
~) E
23
56
CD FA3C
DE 01
lA
J .) FC04
57
20 00
21 0000
19
4E
46
lJB

ED 4:J FA II

CO

E080
FA48

Id
Id
inc
sub
jr
cp
jr
sub
ret
cp
ccf
ret
Id
add
Id
Id
push
push
call
Id
pusl1
Id
ca II
ret
Id
Id
Id
add
Id
inc
Id
ca II
Id
Id
Id
0,'

~J

'If'
:! 1
eLl

options and o.ddvr
disk boot loader command

boot3:

jr
Id
add
Id
inc
Id
dec
Id
ld
Id
ca II
ret

hi, I i nbu f + I
a, (h I)
I
cr
z,boot2
'-cr
z,bootl
'A'-cr
c
16
c
c,a
a, 'A'
(bootd),a
I ,0
bc
hi
swap
hi ,booter
hi
c,O
select
nz
a,-1
(de) ,a
de ,10
111, de
e, (h I)
111
d, (h I)
home
c,l
a, (de)
(boots),a
a
nZ,boot3
hl,I3
h I ,de
c, (h I)
hi
b. (h I)
bc
(pt'tytrk) ,bc
c,a
hl,bootbf
read
nz

,scan command line

; if no par·ameter. boot from A:
;Skip leading blanks
;if

invalicj drive

;if had drive
;set boot drive selected
;set up error message
;set A:
;switch boot drive with A:
;set boot error return
; then boot from A:
; if drive not configured or density error
;set dpb address offset

\~I

tl1in dpl1

.set dpb adeJ,'ess

sect 0" 1
;get low sector's per track
; inform boot loader

;set

; if not rigid
;set reserved track offset wi thin dpb
;get reserved tracks
;point l:Jehi ;-\d dirE:lctory
;do i IIIP I i e(J seek
;set sector zero for rigid
;point to boot load buffer
jread co I (j start loader
; if ,'ead error

m

00

aa

}>
'U
'U
/1)

:J

a...
X

m

Balcones Opera l i flU System forTr-allsient COlllllla.ld Processors
3837
3£13£1
3!l39
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3U53
3854
3855
3856
3857
3858
3859
3860
3861
3862
3U63
3864
3U65
~j 8 ()()
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3U78
3879
3880
3881
3882
3883
3884
38U5
3886
3887
38U8
:W89
3U90
3891
3892

fCAA
fCAU
fCBO
fCB:j
fCB5
fCBb
fCB7
fCfl9
fCBA
FCBD
fCCD
fCC3
fCC6
FCC9
fCCC
FCCD
FeDD
fCD3
fCD4
fCD5
fCD8

II
2I
01
ED
13
lA
fE
(8
21
22
CO
21
11
01
AF
CD

tI)e XEROX 820-11

DOff
EDff
0080
fl8

E5
fOOD
f004
fD05
112B
f770
008D

f2A3
0080
3E 00
11

boots
11 fADE
E9

,
fCD9
fCDC
fCDD
fCEI
fCE5
fCE9
fCE8
fCEC
fCED

CD
117
64
6f
65
72
LJ4
C1
E1

.

fC3D

booter:

3A 20 4C
61 64 20
72 72 6f
2E

bootd:

,,

feEt
fCfO
fCfl
fCf4
fCf5
fCf()
FCf7
fCf8
fCf9
fCfB
fCfC
FCfO
fCFE
fCff
FDOD
fOOl
F002

lIb llO
fill

II f360
29
19
EB
!l9
09
(16 02
4E
IA
77
19

12
23
13

In

f7

swap:

swapl :

MACRO-80 3.44

09-Dec-81

de,bootld+128-1
hl,bootbf+128-1
bc,128

Id
Id
Id.
Iddr
inc
Id
cp
ret
Id
Id
ca II
Id
Id
Id
xor
ca II
Id
Id
equ
Id
jp

boot

loader address

;move front half of boot
de
a, (de)
Oe511
z
hl,Monitr
(warm+l),hl
Icp
hi, i obdvr
de, i ob I oc
bc, i obdvs
a
crt Idi r
hl,bootld
a,O
$-1
de,phycmd
(h I)

Booter -

Boot

loader to 80h

;verify instructions read in
, if disk I)as no system
,set warm start to reload monitor
, load configuration parameters
, load iobyte driver

,set start address
;sector-s per track
,te II boot loader from whence he came
;execute Boot Loader with return to boater

E r"ror Processor.

ca II
defb
de fill

pneJ

U
U
ttl
~

0...
)(

m

m

00

.......

Balcones Ope,-a l i "~J Systtlfll for
Tr"ansient COIiUlldllll Pr"ocessor-s
3tH) 3
3U94
3095
3896
3897
:1Ol'1O
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
:j921
3922
3923
3924
3925
3926
3927
3928
3929
:1930
39:1 I
3932
3933
3934
3935
39:J6
,,9:17
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948

FDJiI

FOll5
FDOl
FDOA
FDOD
FDOE
FD10
FOl3
FOl5
FD17
FOl8
FDIA
FDID
F020
FD21
FD24
FD2b
FD27
FD2A
FD25
FD2D
FD2F
FD3U
FD33
FD36
FD39
FD3C
FD3f
F042
FD4S
FD48
FD49
FD4A
F04ll
FD4C
f D4fJ
FD50
FD52
FD53
F05'1
FD5!,
FD5G
FD58
FD59
FD56
FD5E
FD60
FDln
F D6!'>
FOGel
FDoll
fObE
F071

tile XEROX 020-11

09-Dec-81

,"et

U)

:jE 81
J2 0003
3A FCD4
67
DE 20
21 E080
20 08
FE 16
08
DE 03
~ 1 EEOO
CD FA48
CO
jA EEOO
Do E5
C8
:lA EE76
57
20 03
FE C9
CO
32 F 115
3A EE60
32 FF54
3A EE5F
32 FD49
3A EE62
32 FD46
CO FC3D
16

,, ,

Icp -

Icp:

Id
Id
Id
or
Id
Id
jr
cp
ret
Id
Id

I cpl:

Icp2:

Icpa:

110

16
00
04
21 EE63
3E 02
46
23
'IE
1:1

ED
3D
20
3A
D3
3A
D3
JA

MACRO-80 3.44

63

F7
EE7D
00
EE7E
OC
EE77
.l2 FlOC
3A EE79
:n FIDE
JA EE7F

Icpb:

Icp3:

ca II
ret
Id
sub
ret
Id
or
jr
cp
ret
Id
Id
Id
Id
Id
Id
Id
ca II
defb
defb
defb
defb
defb
Id
Id
Id
Inc
Id
inc
ot ir
dec
jr
Id
out
Id
out
Id
Id
Id
Id
Id

load configuration parameters.
a,lOOOOOOlo
(iobyte) ,a
a,(ooots)
a
c,32
hi ,oootllf
z,lepl
26+1
c
c,3
hI .bootbf+ 128
read
nz
a,(bootof+128)
Oe5h
z
a.(z.xonp)
a
z ;lcp2
Oc9h
nz
(Xonenb) ,a
a,(z.stpr)
(steprt),a
a,(z.scra)
(Icpa) ,a
a,(z.keym)
(Icpb),a
pnext
esc
0
esc
0
eot
hl,z.sioA
a.2
b, (h I)
hI
c, (h I)
hi
a
nz. I cp3
a,(z.baua}
(bauda),a
a,(z.baub)
(baudb) ,a
a,(z.siom)
(siomsk},a
a.(z.siov)
(sioval) ,a
a,(z.iobt)

;default i/o byte to CRT: and LPT:
,get boot diskette type
;use boot loader buffer
,if rigid, use system track,

sector 32

;no parameters from single density boots
odd configuration comes from track 0, sector 3
;use second half of boot loader buffer

fit can't read configuration

;configure Xon-Xoff

;configure step rate
;configure screen attribute
;configure keyboard mask

; conf i gUf"e Sio channels
;get number" of bytes
;get port address

; conf i gur"e cllanne I A bit rate
;configure channel 6 bit rate
;configure printer ready mask
;configur"e pl'inter ready value
; conf igur'e I/O byte

m

00

CO

Belleones Oper'a t i IIU System for
T ,"ailS i en t [OIlU1kjl){l P,"ocessors
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
:l964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
397B
3979
39BO
39BI
39B2
39B3
3984
39115
39fJ6
39fJ7
39B8
3989
3990
3991
3992
3993
3994
3995
~i996

»

1)
1)
(1)

::J
Q.,
)(

m

3997
3998
3999
4000
4001
41102
4003
4004

FD74
FD77

the XEROX 820-11

32 0003
C9
boot

\

,,
026B'
fC55
FC56
FC57
FC58
FC59
FC5B
FC5C
FC5D
FC5E
fC5F
FC63
FC66
fC69

Id
ret
else
equ
endif
_L

4B FFBB
FAD6
FCIB
FCI6

, ,

jD
28
:30
2B
2A
11
18

FC6]
FC6'1
FC66
FC67
FC69
FC6B
FC6D
FC6F
FC70
FC71
fC74
FC77

EB
ED
DIl
06
CB
CB
10
23
EB
CD
~L

[9

Ob
00
FFBD
0010
OE

04
3C
lD
FA
FBBF
fFBD

mdlllpl :
mdlllp2:

dec
jr
dec
jr
Id
Id
jr

Z
III
ix
de,hl
a, I
d,b
e, I
bC,(param4)
jpix
put2hs
put4hs
~ommand

a
z,mdmp2
a
Z,IIldlllp3
hl,(last)
de,16
mdmp3b

ex
sbc
ret
Id
mdmp3a: srI
rr
djnz
inc
ex
ml11llp30: ca II
Id
ret

-02A5'

location command

--

a

memory dump

mdlllp3:

52

wllat

;if no parameters
;set
; Id
;set
;and
;set

goto address
i x ,hI
second arg to HL
A
third arg to DE

;set fourth arg to BC
;print A reg

--

overlay memdmp
c8.seg

+

FC55
FC56
FC50
FC59
FC5B
FC5E
FC51

(iobyte),a

goto to memory

or
scf
ret
push
pop
ex
Id
Id
Id
Id
ca II
ca II
jp

EI

02B2'

09-Dec-81

overlay goto
c8.seg

+

B7
37
C8
E5
DD
EB
7D
50
5D
ED
CD
CO
C3

MACRO-80 3.44

de,hl
hl,de
c
b,4
h
1
Illdlllp3a
hI
de,hl
dump
( I as t ) ,Ill

; clleck parameter count

;derive bytecount for dump range
; i f addresses backwards
;divide bytecount by 16

;dump de*16 bytes strting at hi

memory examine command

overlay view
c&seg

--

»

"0
"0

It)

:J

0..
)(

m

m

00
\.0

BolLolles OfJero till,) Systelll fo,
T'"olls i ent COllllllalltl P,-ocesso,'s

tile XEROX 820-11

MACRO-80 3.44

09-0ee-81

J

4005
4006
4007
4008
4009
4010
4011
4012
4UI3
4014
4015
4016
4017
4018
41119
4020
4021
4022
4023
4024
4025
4026
4021
4020
4029
4030
40:11
4032
4033
40:14
403!)
4036
4037
403B
4039
4040
4041
4042
4043
4044
4045
4046
4047
404B
4049
4050
4051
4052
4053
4054
4055
4U56
4057
405B
4059
4060

Fc~55

FC50
FC58
FC5ll
FC5f
FCGI
FCG3
FC65
FCG7
FCGA
fC6D
FCGf
FCn
FC73
FC74
FC75
FUG
FC77
FC70
FU9
FUA
FC7D
FC7F
FCUI
FC83
FCU6
FCU7
FCOO
FC!l9
FCOA
FCOB
FCUE
FCOF
FC90
FC91

CO
CO
FE
28
FE
28
FE
20
CO
CD
10
CD
~l F
DO
4F
87
07
07
U7
47
CD

viewO:

FB22
FC27
00
2F
20
20
22

08
F009
FOOC
IB
FBF3

viewl:

FC27

D6 00

28 08
CG 00
CD FBF3
:IF

DO
48
view2:
view3:

B1

77
CD FBOE
2J

view4:

23
2B
I B C2

view5:

ea II
'ca 11
cp
jr
cp
jr
cp
jl'
ca II
ca II
jr
ca I I
ccf
ret
Id
add
add
add
add
Id
ca II
sub
jr
add
ca II
ccf
ret
Id
add
Id
ca II
inc
inc
dec
jr

02E3'
FC55
FC56
FC57
FC5B
FC59
FC5B
FC5D
FC5F
FUji
FCG3
Fe£)5
FCG7

B7
37

CO
02
01
43
00
02
OC
69

nZ,viewl
conin
conout
view3
hexbin
nc
c,a
a,a
a,a
a,a
a,a
b,a
echo
cr
z,view2
a,cr
lIexbin
nc
c,b
a,c
(h I) ,a
check
hI
hi
hI
viewO

B [channe I I

; cllanne I may be 0,1 or AlB

overlay baud
e&seg

+

3D
20
IE
CB
OE
2B
DE
ED
AF

z,view5

options and o.baud
Baud Rate Command

if

*

mdata
echo
cr
z,view4

baud I :

tlaud2 :

or
scf
ret
dec
j r.
Id
bit
Id
jr
Id
out
xor

a
Z
a
nZ,baudl
e,l
O,e
c,bauda
z, baue12
c,baudb
(c) , I
a

;if no parameters
; if channel specified
;set channel 1 (B)
;elleck fJort
;set COllllllunicat ions port
;set

;set

printer port
baud rate

m

lD

0

»
"0
"0
(J)

::J

n..
><

m

Bdleu",,:> 0PtH" l ill\) ~ystelll t u ,- tile XEROX 020-11
Transient COllllHdllll p,-oc t!sso rs
4U61
4062
4063
4064
4065
4066
4(1)7
4068
4U69
4070
4U71
4072
4073
4074
4075
4076
4077
4078
4079
4080
'lOBI
4082,
4083
4084
40U5
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
"1103
4104
4105
4106
4107
4100
4109
4110
"I I I I
4112
4113
4114
4115
4116

FC6U

[9

baud

MACRO-OO 3.44
ret
else
equ
endif
if

; ;

"
"
02F7'
47
3A
06
20
BO
20
4f
CD

FC76
FC79
fC7A
FC78
FC7C
FC7E
FC7F
FC80
FC83
FC86
FC89
FC8B
FC8C
FC8E
FC8F
FC92
FC93
FC94
FC96
FC9U
FC9B
FC9li
FC9f
FCAO
FCA3

:lA FC54
B7
CO
78
fE 04

C:~

16
F2FE
00 II
0015
FC54
F2A3
FC36
dskO:
dsk 1:

:n

CU
21
II
L) 1
ED
23
ED
U5
CD
7D
B4
28
06
:lA
FE
20
114
CD
LA

FFB5
FAIO
OU07
AO
BO
FA51
16
00
Ff5C
57
01
FA51
FFBB

options and o.disk
disk sector read/write command
R    
W Id Id sub jr or jr Id ca II inc 10 Id ex xor Id ca II jp FF5C 57 IE LJ II II I EB Af 32 CD wl1at overlay dskcmd c&seg + fC55 fC56 FC59 FC5B FC5D FC5E fC60 FC61 FC64 FC65 FCbU FC6B fC6C FC6D FC70 FC73 09-Dee-81 dsl,3 ; Id or ret ld cp scf ret Id ld Id Id i inc Idir dec call ld or jr Id Id cp jr inc ca II Id b,a a,(linbuf) 'W' nZ,dskl b nZ,dskO c,a Fastcrt 111 de,I7 bC,21 de,l1l a ($-25),a crtldir crlf a,($-34) a IlZ a,n 4 ;cl1eck parameter count nz 111, paraml de,pl1ydrv bC,3*2+1 ;move parameters to disk command hi ;skip ·upper unit n xqpllYs a, I 11 Z ,dsker-r b,O a,( I illbuf) ;set select operat'i on ;eJ J J 1) :J :l.. ~ " m I.D ~ Balcolles Ope'~dt ill,.) System for T,'dllsient CO"""ii'ltj P,oce5surs 4117 41 Ifl 4119 4120 4121 4122 4123 4124 4125 4126 4127 412B 4129 4130 4131 4132 4133 4134 4135 4136 4137 413B 4139 4140 4141 4142 4143 4144 4145 4146 4147 414B 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 4166 4167 416B 4169 4170 4171 4172 fCAb fCA9 FCAC FCAF FCB3 FCB6 FCB7 II t I,e XEROX B20-11 MACRO-BO 3.44 de,I6 z,dulIlp Id jp 0010 LA FBBF dsk.HT: ca II deflll Cll FC30 44 73 68 20 45 72 72 04 C9 dskcllld FC55 FC56 FC57 FC5!l FC59 FC5A FC50 FC5E FC61 FC63 FC66 FC69 FC6B FC60 FC6F FC71 FCn FC75 FC76 FCn FC78 FC79 FC7A 3D 37 CO 40 44 in 1 : 79 CO FCIB ED 7B in2: CD FCIB CO FE 2!l FE 28 FE F009 20 F4 OD 06 20 28 04 87 C9 in3: (13 113 OB in4: lU DE incmd ., + FC55 FE 02 1 <16-bi t dec scf ret Id Id ca II Id ca II In ca II ca II cp jr cp jr cp jr or ret inc inc dec jr else equ endif if * 03!l1 ' ;(not disk options) what port address> overlay incmd c&seg + CD FC36 eat options and o. inpc read input port command if ,, 035A' ;assume 256-byte sector ;dullIp disk read buffer If no error pnext 'Osk Err' defb f'e t else equ endif • 09-Dec-Bl a I nz c, I b,h crlf a,c put2hs a, (c) put2hs co,li n z, i n2 cr z, in3 ;if not one parameter '; set input port ;display port addrflss ;read character ;read same port again ;if read ne)(t z, i n4 a ;if read previous be be be in 1 .advance to next port ;elear carry what options and O.Dute wr i te to output port eo""nand (] overlay outcmd c&seg ep 2 ; requ i ,'e two parameters m lO IV » U U m ::l 0.. X m Balcolles Opel-iJt ill~J :'y:;telfl fOI' T I-all:' i ell t COllllllalid f'roc es so r- s 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 418b 4187 4188 4189 4190 4191 4192 4193 4194 4195 419b 4197 419t:1 4199 4200 4201 4202 41D3 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 42LI 42L2 4223 4224 4225 4226 4227 4228 FC57 FC58 FC59 FC5A FC58 FC5D FC5E tile XEROX 820-11 37 CO 4D 44 ED 59 87 C9 outcllld MACRO-80 3.44 scf ret Id Id out or I'et else equ endif if ; i FC55 FC57 FC5S FC59 FC5A FC5B FC5C FC5E fC5F FCbl fC62 FCb3 FC64 FC65 FC6!; fCb7 FCbB FC6A fCb8 FCbD FCbE fC6f FC7U FC73 fc/4 FCn F06 fCn FC79 FOA FOC FC7F FCBl FE 02 -:n test1: test2: 77 23 7C BB 20 F7 62 2E 00 70 AC AS CD fBOE CO 23 :output to dO-d7 and address to aO-al7 what options and o.ramt memory read/write diagnostic command -- overlay test c&seg + CO 13 5A 54 Ob DO 62 2E 00 70 AC AS ; if not 2 parameters ;set 16 bit output port address X * 0388' n.: c, I b,h (c) ,e a 09-0ec-81 test3: 7C B8 LO f4 D4 3E 1B CD fC20 28 DO cp scf ret inc Id Id Id Id Id Id xor xor Id inc Id cp jr Id Id Id xor xor ca II ret inc Id cp j rinc I C9 test (j ca II jr ret else equ endif 2 n.: de e,d d,h b,O h,d 1,0 a,l h b (h I) ,a hi a ,II e n':,test2 h,d 1,0 a, I II b check n.: III a ,I. e n':,test3 b a, '+' output .:, t es t 1 what ;check parameter count ;get ending page address into e :get starting page address into d : initial i.:e pass counter" :point hi to start of block :generate test byte ;store byte in ram :check for end of test block ;now read back each byte & compare ;point hi 'back to start ;re-generate test byte data ;verify memory data s til I good ; ex i t if escape request is indicated ; else go on to next byte ; cl.ec k for end of block ;bump pass count ;do another pass i f user not unhappy };. U U tD :::l a. >< m m lD W Baleo"e:; Opera! illU System tor TI'ansient Command P,'ocessors 4n9 4230 4231 4231 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4:147 4248 4249 4250 4251 4252 4253 4:154 4255 4256 42fj'1 4258 4259 42bO 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 tile XEROX 820-11 ·. 0388' FC55 FC57 fC58 FC59 FC5A FC5B FC5C FC5E FC5f FC60 FC62 if fill 1 : f i I I · fE 03 :J7 Cll CD FC49 79, BO C8 ED BO C9 block · , if 3 nz th I) . c hi a hi ,de hi hi c •f i I I1 ;check if parameter count=3 ;compare hi to end address in de ;advance pointer after comparison what options and o.move memory block mO,ve command FE 03 :J7 CO CD FC49 18 08 IA CD FBOE CO 23 cp scf I-e t ca II Id or ret Idir ret else equ endif if 3 ;clleck i f parameter count=3 nz blocad a,c b z ; ex i t now i f bc=O what options and o.vel-t memory block compare cOllI/Band overlay vercmd c&seg + O:j(lj' FC5E FC5F FC6:! FC63 -- overlay block c&seg n:3C ()' FC55 fC57 FC58 FC59 fC5C options and o.fill f i I I memory with constant command cp scf ret Id PUSll or sbc pop inc jr ret else equ elldif , FC55 FC57 FC5f1 FC59 fC5t: FC5D FC5E FC5F fC61 09-Dec-81 overlay f i I I c&seg + FE 03 37 CO 71 E5 B7 ED 52 E1 23 38 F7 C9 MACRO-80 3.44 verf 1 : cp scf ret ca I I jr 3 nz blocad verf2 Id ca II ret inc a. (de) check nz hI ;check if parameter count=3 ; compal'e data I!!> de and @ hi ;exit i f escape request is indicated m lO .t:- ):> U U II) :J a.. >< m Baleoll"''; OP "0 "0 (J) :J 0.. )( m 4424 4425 4426 4427 4428. 4429 4430 4431 4432 4433 4434 4435 4436 4437 4438 / Scr-eell fO/- tI',e XEROX 820-ii MACRO-80 3.44 09-Dee-Bl Md.lager 0472' overlay term c&seg + OOOF 0016 0017 00lA ODIE 001F pass8 ins lin dell in clrchr hOlllscr force equ equ equ equ equ equ 15 22 23 26 30 31 0081 0082 OOBI OOB2 OOOA OOFF OOAE kuplin kdnl in Rllltto9 Rllltalf Localf Typtog Brkkey equ equ equ equ equ equ equ 81h 82h 80h+' I' 80h+'2' 801l+lf 80))+7fll 8011+' . ;Move top line off screen to bu·ffer ;Move bottom line off screen to buffer ;To9gle Remote Echo ;To9gle Remote Auto LF after CR ;Toggle Local Auto LF after CR ;Toggle Local Echo ;Hardware BREAK function 0007 0006 0005 00U4 s. I ecllo s.recho s.autol s.autor equ equ equ equ 7 6 5 4 ;.1 oca I ecl10 iremote echo ; I oca I auto If after cr :remote auto If after cr 0100 EE8D EfOO EFOn T,'mllu f Buftop Siobuf T nns t k equ equ equ equ FC55 FC57 FC58 FC59 FC5A FC5C FC5E FC61 FC63 FC65 fC68 FC6C FC6F FC72 FC7:3 FC75 FC79 FC70 FC81 fC8S FC09 I FE 02 3F DO B7 20 2E 01 CB :w o1 EO 31 CO lA 02 00 0406 45 03 0507 43 fU8 EFOO FC30 1 B :31 54 65 72 69 6E 61 2U 60 6F 65 2E 20' 54 6F 75 68 2U 43 tennl: terlll2: cp ccf ret or jr Id I (j bit jr ld Id Id ca 11 db if [H) 60 6C 64 20 63 54 else dll endif db 100h Tr/llbuf+760~80 Monitr-IOOtI Siobuf 2 :check number of arguments c ;if more than a nz, tenn1 : i f port specifed 1,0 bc,siocpa+siodpa*256 ;preset A channel ports 0,1 z,tenn2 ; if Oil or AlB llc,siocpb+siodpb*256 ;set B channel ports (ports),llc sp,trmstk pnext clrs options and o.esct esc, ' 1 ' passO 'Terminal mode. Touch CTRL+ESC to ex it .• }> -0 -0 In :J C1. )( m m lD "-J tJa1COIlt!5 OPt!"u till,) Sy"tem f Te,.,,, ilia I / Sc ( t:H:!1I Manager' 44::19 4440 4441 444L 4443 4444 444!) 4446 4447 444H 4449 4450 4451 4452 4453 4454 4455 4456 4457 445B 4459 44bO 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4400 4401 4482 448:3 4404 44B5 4486 44B7 448B 44B9 4490 4491 4492 4493 4494 0'- fCHD fC!:)1 fC9S fC99 fC9C fC9E 4C 43 (if 20 6y 74 OD OA 04 2B 45 20 74 65 78 2E fC9f FO 21 fEE5 fCA::I fCAli FCA9 fCAC FCAF C4 CD C4 lU !) " ~J ~:i Cll fOll6 tile XEROX H2O-II MACRO-BO 3.44 09-Dec-Bl du db cr-, If eat Id Iy,status ;set pointer to status byte term3: ca II ca II ca II ca II jr canst 'u,pkl slolst nz,prc term3 ;status keyboard ; p,'ocess keyboard input ;status sio ;process remote character ;untll user escapes ,, pki fCBI FEC8 fD40 f2 - Process Keyboar-d Input. ; jE OU FUll feBL fCBJ fCB'1 fCB7 fCBA fCaC fCBt fCCl fCCS fCeB fCe9 fCeS FCCD fCDO C4 CO CB 20 CO fD C4 C9 fE 20 CD CD f021 f009 7f DB FD5F CB 00 7E fD4C FCD3 IE lB 52 04 pk I: brkfly tn 81 12 fE50 fC3D pk i 1: I'd equ or ca II ca II bit jr ca II bit ca II ret cp jr ca II ca II if fCD', FCDA feDD FCDF FeEl FCE] fCEl; CD fDB9 FeE9 , E lB 45 04 CD fDEB HI 14 FE 82 LO 13 CD fE50 CD feW pki2: deth else defb endif ca II ca II jr cp jr ca II ca II if feED FCFO FCF3 FCFb FCfU FCfA fCfC CD FEUB CD C3 FE :W :iE 10 FDBI FE6E FF 04 60 16 pki3: pki4: defb else defb eodlf ca II ca II jp cp jr Id jr a,O $-1 a nZ,clrbrk conin 7,a nz,pkll sndrmt s.lecho,(ly) nZ,sndloc ;termlnate pending break ;read input ;if function key ;send i t to remote ;if local echo enabled, display console input kup lin nZ,pki2 ;if not scro II up gcp ;98t cursor position pnext ;hom8 screen, then delete top line options and o.esct homscr.esc, 'R' ,eat homscr,dellln,eot It I (lb I ; I Ink top I I ne ;liisplay bottom line pki3 kdn I In nZ,pki4 ;if not scro II down ;get CLIf'SOr pOSition gcP pnext ittome screen. insert blank line options and o.esct homscr,esc, 'E' ,eat homscr-,del I in,eot Ibl dtl rcp Typ to 9 nz,pki5 a, 1 shl s.lecho pkiB ; I Ink bottom , Ine ;display top line ;restore cursor position m lO 00 » "D "D It> :J a.. >< m Balcones Oper-a l i IICJ System forTer-milla I / Screen 11'lanager 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 451U 4519. 4520 4521 4522 4523 4524 4525 4526 4527 4520 4529 4530 4531 4532 4533 4534 4535 4536 4537 4530 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 FCFE FOfJfJ fDU2 f004 fDDG fDOU FDOA fOOe fDOE fDID FOl2 FOl4 fO I I fOIA fOIB fOlD FDIE fD21 fD23 F02() FD28 FD2A fD2e fD3U FD32 FD33 fD35 FD37 fD38 fD'3A FD3tl fD30 f040 fD43 f047 F04A FE LO JE 10 fE 20 3E 18 fE LO jE FD FD C9 FE CO 3A EE 32 16 20 16 ED 3E f3 ED 3E B2 ED fB 3E C3 CD FO C4 10 BI 04 40 DE OA 04 20 06 B2 09 10 AE DO 77 00 AE FCB2 ff fCB2 10 02 00 4B fE78 D5 79 AA 79 FF fE9D FED6 the XEROX 820-11 cp jr Id jr cp pki6: jr Id jr pkl7: cp jr Id xor pkl8: Id ret cp pkl9: ret Id clrbrk: xor Id Id jr Id sett)rk: Id Id d i. out Id or out el Id jp ,, prc flrc: ca II bit ca II jr CB 00 76 fD5f 26 CO f0072 FE 00 CO fD CB 00 6E sndloc: CO jE OA CO f072 :jE 00 t:9 , fD5f fDb2 CD FE90 fE 00 . sndrmt: Brkkey nz a,(brkflg) -1 (brkflg),a d,10h nZ,setbrk d,O bc, (ports) a,5 (c) ,a a,10101010b d (c) ,a a,Offh sloot ;set I I ne SPACING ;set line MARKING ;set up WR5 ;assert OTR, 7 bpc, RTS, Tx Enb isend RUBOUT to allow MARKING - Process Remote Character. sndloc ca II cp ret bit ,-et Id ca 11 Id ret sndrmt ca II cp 09-Dec-81 Rmttog nZ,pl "0 "0 I'D ::J 0.. X m Balcolles Operi.1tillu System for- the XEROX B20-II Terlllinal / Scceell Manager 4G07 4600 4609 4610 4611 4612 4613 4614 4615 4616 4617 461B 4619 4620 4621 4622 4623 4624 4625 4626 4627 4620 4629 4b30 4631 4632 4033 4634 4635 4636 4637 4630 4639 4640 4641 4642 4643 4044, 4645 4646 4647 4648 4649 4650 4051 4652 4653 4654 4655 4656 4657 4658 4659 4660 4661 4662 fDCL fDCJ fDC4 fDC5 fDC7 fDC9 fDCS fDCE fDCf fDDO fDDI fCJD:! fDD] fDD4 fDD5 fD07 fDD9 fDOA fDDC fDDF fDElI fDEI fDE2 fDE3 fDE6 fDE7 fDEO fOEA fDE:O fDEE fDf2 fDF3 fDfG fDf7 FDfA fDHl fDft:: fEOI fElL! fE(jJ fEllb fEOA 1::5 09 26 3E ED 20 EA El EO 41 U4 C5 7E 4f fE 20 A9 03 fDC7 ; ; dIn dIn: push add dec Id cpd jr jp pop ret Id inc push Id Id cp jr push Id ca II pop Id inc push ca II pop pop djnz ret dIn 1: dln2: dln3: 20 :HI OB E5 OE If CD fE96 101 ·1E d dln4: E5 CD fE9B EI C1 III EO C9 CD 16 U4 2A E5 01 CD EI CJ I 09 E6 CD ED fC3D 3D 37 20 nZ,dln2 pe,dlnl hI po b,c b bc a, (h I) c,a ;if not trail ing blank ;if entire line blank nC,dln4 hI c,force out crt hi c, (h I) hi hI outcrt hI bc dln3 ;force next character out ;advance addr·ess ;display character ;if not entire line - Display bqttolll line. ca II db pnext esc, Id push I (j ca II pop Id add ex ca II Id ret hl.(botptr) hi tJc,80-1 dIll hI bC,80 hl,l.lc de ,11 I wup (botptr),de. 004f fDC2 0050 fE34 53 fEE6 42 fE41 fEE6 hI hl,bc hI a, dbl: fEE6 0050 FEE6 - display line. dbl [9 II I '2A 67 ED CD '22 09-Dec-'BI ,, .. fE06 FEOE fE II fEI2 FEI4 fEI7 MACRO-BO 3.44 Ibl: ;plant • +23, • Ibl - link bottom line. Id Id or sbe ca II Id bC,80 hi, (botptr) a hi ,bc wlp (botptr) ,Ill cursor on bottom line ,eDt ;display bottom line » "0 "0 CD ::l Q.. >< m B"lcolle$ Ope I-a till" System fof' the XEROX 020-11 Telminal / SCI-t.h~11 MdflGlSlel 41>6:J 4664 4665 4666 4667 4libl:l 4lib9 4670 4671 4672 4673 4674 4675 4676 4677 4671:1 4679 4680 468 I 4£>1:12 41>1:13 4684 41>05 4686 46137 461:113 4689 4l:iYO 4b9 I 4b92 469:l 4£>94 4695 4696 4697 4698 fEIA FEltl FEIE fElf fE 2 I fE23 fE2li fE21:1 fUB fELE FE31 fE33 [:6 '2A fEEU 57 EO 20 2A EO CO 52 DB fEEO 42 fE41 22 fEES 21 ff5C EO 60 C9 \ fE34 fE3!; fE30 E5 21 EO 52 tI m ~ 0 ~ fE50 fE5·1 fE57 fE5fJ fE5A fE5t:l fE5C fE5E fE5F fE61 fE63 fE65 fE6G fE69 fE6A FE6D ;move gold mine to buffer Wllp: pusl. Id set sbe pop ret III ret DO II 0100 l.Y hi hl,buftop :set end of buffer address hi ,de hi fie de,TrllIbuf : if not past end of buffer :start over at beggining of buffer , , wlp - Wrap lower pointer. wlp: '2 I EE30 push pU$h Id or $be pop pop ret Id C9 ret l:5 D5 II lJ 100 87 ED 52 IJI EI (10 46~19 4.,OU 4701 '1702 4703 4704 4705 4706 4707 4700 4709 4710 4711 4712 4713 4714 4715 4716 4717 4718 de,hl hl,(topptr) a hI ,de nZ,lbll hl,(topptr) hI ,be wlp (topptr),hl hl,linbuf wup - Wrap upper" painter. :17 fE3~1 ex Id Of' sue jr Id sbe ea II Id Id I d i r' ret 09-0ec-Ol ,, EEOO fE.3B fE:3C fE3[) FE4i! f£41 fE4/ fE4] f(41) 1'£47 fE49 fE4A fE4B fE4C fE4f IIJ II : MACRO-OO 3.44 EO 4B ffBI 2A FfAC 45 CB B8 :set gcp - get c.:ur!iu,-- position. gep: Id III Id ('es. add III sub gcpl: $ub add $ub jr III Id allli Id I-e t be, (base) hl,(cursor) II , I 7,b hl,l.1 a ,11 cr-tbas*2 e a,23 24 nC,gcpl 5 t al-t of buffer address ; if not below start of buffer ;start over at end of buffer ,, ~9 7C D6 60 91 1:6 17 D(} 18 ;jlJ FC 4f :!1 If38 09 22 fE73 C9 hi de de, TI'mbuf a tll,de de hi ne hl,tJUftop-OO ;get eolumn to B ;set $ereen row to H trow 23-(base-curh) e,a ;set row '+24-10m. ;offset for = hi, ' hi ,be (repa),hl m a IV }> -0 -0 /1) ::J 0... X m Ope,"ct t i IIU System fo," t I,e XEROX 820-11 TeFII,illd I / SCI eell (via 11 a. ~ e r Bdlc{)IH;!~ 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4765 4766 4767 476fl 4769 4770 4771 4772 4773 4774 , FE6E FE71 FE73 FE75 FE76 CO FUD lB 3D 21l 20 04 C9 1 FE78 FE77 FEUl FE7A FE7C FE7E (j FE7F FEB2 FE84 CD FE77 FEB~l FEB7 FE09 FE8A FEBD FEOF to ca II ,"cpa: dll dtJ CO FE77 CB 57 C9 DO ED 79 C9 FE9U FE9E FEAI FEA2 FEA5 FEA6 CO FEA7 CD F2FE F5 CD FEA7 FI C9 CD FE8A 28 FB 48 FE77 19 78 BF FEEA 02 00 pnext esc, - eot i; sio drivers. sioins: ports Id equ in bit ret bc,ports $-2 a, (c) O,a ;set status port to c ;test' rca sioinp: ca II jr Id in res ret sioins z,sioinp c,b a, (c 1 7,a siordt: ca II bit ret sioins 2,a ;get sio status ;test TX empty sioot: ex siootl: ca I I af,af' siordt z,sioot1 c,b af,af' (c) ,a isave char to send ;test t ransmi t ready status ;if not ready :;iopl fastcrt af siopl af ;po II j" Id ex out ret no C5 CD 28 48 ED CB E5 2A 77 2C 2D 2E 09-0ec-81 Restore cursor pos"ition. db ret 7B 28 FB 4U ED 78 CB BF C9 ,'cp - rep: CB 47 C9 FE90 FE91 FE94 FE9l:i FE97 FE9U FE9A FEA7 FEAU FEAB FEAD FEAE FEBD FEB2 FEB3 FEBfi fEB7 fEDU fEBA . MACRO-80 3.44 outer"t: ca II ca I I pus\) ca II pop ret ,, Siopl S i op I : pUSl1 ca II jr Id in res push Id Id inc jr Id - I Sio Po II ;get status ;if not ready ;set data port address ;pitch parity bi t for" input before & after ;save balcones gold Input Cl1aracters. be sioins z,siopl3 c,b a, (c) 7,a hi hl,(ipoint) (h1),a I nZ,siopll I, low siobuf ;input Sio status ; if input not ready ;set data port address ;pitch parity bit ;set in pointer ;store character in fifo » "0 "0 I'D ::J a.. >< m m ~ 0 W aolcont!s Ope,'a I ill!) '>yst;;111 f lenni Old I I Scr t:H::I, ',Ionoue f' 4775 4776 4777 4778 4779 4780 4781 4782 4783 4704 4785 4786 4787 4780 4789 4790 4791 4792 4793 4794 4795 4796 4797 4798 4799 4000 4801 4802 4003 '1004 4005 4006 4007 4000 4809 4810 4011 4812 4813 4814 4815 4016 4017 4018 4819 4820 4021 4822 4023 4824 4825 4826 4827 4828 4829 4830 fEBt: f EEIffECD fEe:l fEC5 fECb fEC7 fEC8 fECB fECE FEDI fED2 F E[l:l fED5 0,' tile XEROX 8:10-11 Id sub jr Id siopl2: pop siopl3: pop ret fEA7 FEEC fEEA ,, Sioist - Sioist: ca II Id Id sub ret or ret fF ,, Sioin Sioinc: ca II jr Id inc jr Id Id ret , fEC8 FB Siopl hi, (opoint a,(ipoint) I Z - 1 fEE5 OU status: db 0 fEEG fEEO I) 100 UIOO llotptr: dw topptr: dw Trmbuf Trmbuf fEEA FEEC EFOO EfOO ipoint: dw opol"t: dw else term equ endlf slobuf siobuf 1f ,, + 070B' FC5~) fC5B FC5C fC6(J FC64 fC6U fC(lC FC7D FC74 CD fC3D 42 61 75 09 09 3C (l I 74 65 2'0 5B 42 4'1 5D OD 44 75 6D (J9 09 58 74 61 72 ; po II for input ;set out pointer ;if data not ready Sioist z,Sioinc a,(hl) I nZ,Sioil I, low siobuf (opointl,hl ;set input ready status ;advance out what opt i OilS and 0.1,;; I p Help Key COlllmand. overlay help c8.seg ca II 64 72 3E 2f OA 70 73 74 1 - Sio Input Character. CD 28 7E 2C 20 2E 22 (:9 Sioi I: ;if buffer full Sio Input Status. FEDb FED9 fEDB FEDC FEDD FEDF FEEl fEE4 02 00 fEEC 09-Dec-81 a, (opo i nt) I z,siopl2 (ipointl,hl hi bc s i op II: JA fEEC 95 L8 03 22 fEEA EI CI C9 CD 2A 3A 95 C8 fb C9 MACRO-80 3.44 LIe t II pnext 'Baud d;;tb 'Dump (start] [BIAl',cr,If [;;nd] , ,cr,lf m .... a ~ » -0 -C (I) :::I a. X m aalcunes Ope'iit in,) System to ,- ti,e XEROX 020-11 Te,'minal / Sc, een Manage/4831 4032 4tl33 4034 4035 4836 4837 4038 4839 4040 4841 4842 4843 4844 4845 4046 4841 4048 4049 4850 4051 4052 4853 4854 4055 4056 fC70 fC7t: fCO(} FCOI fC85 fC89 fC80 fCOf fC93 fC97 fC9B FC9f fCA3 FCA7 FCAB fCAF fCB3 fCB7 fCB9 fCBA Sf) liE lJA 47 D9 64 00 tiD 66 3C 72 50 6F 09 6E (iD 76 00 04 C9 MACRO-80 3.44 09-0ec-81 20 5B 65 64 50 00 6f 09 64 OA 6f 79 61 3E 72 63 3C 3E 73 61 OA 74 6f 3C 61 72 3E defb 'Goto ' ,cr,lf 64 09 64 00 6f 6f 78 20 6B 6C defb 'Modify ' ,c r, If defb 'Protocol (msk valj',cr,lf 69 09 64 OA 74 6C 6f 5B 2D 50 help defb ret else equ endif subttl page eot "hat Segment Size Information Bdlcufles OpefaliliU ,>ystefjl for- tile XEROX 820-11 ~egment Size i.ltO.1I1dtion 4857 4858 4859 4860 4861 4862 4803 4864 4865 4806 4867 4868 4809 4870 4871 4872 4873 4874 4875 4876 4877 4878 4879 4880 4881 '1802 4803 48B4 4805 4006 4887 4800 4889 4890 4tH) I 4092 m -' a 1TI ·. 0771 . 0299 + tpamax ·. OOOO! + rbase 041B ·. U518! FC55 UC55 + r-estop reslen MACRO-8U 3.44 09-Dec-Bl Top of Overlay Area. overlay stop c&seg equ tpal ;set length of transient move Top of Resident Monitor. below defs equ comres $ Top of Non Resident Monitor. allove d&seg equ equ $ $-mon it r- update ; n~sident top ;Iength of resident monitor ;clear active segment Top of Burned Rom Set. Ill: 1 romtop equ bloc+dloc+tloc-monitr Fil lOut Unused Rom Space. OC55" cseg 0771 • if defs endif (rom+romsiz-romtop) gt 0 (roU\-t-roms i z -romt,op) .-1 subttl page Resident Monitor- System Ram m -> a 0'1 tialcolles OperatilJU ~ystem fOJ- tile XEROX 820-11 Resident ManitoI' ~ystem Ram 4893 4894 4895 .4896 4897 4898 4899 4900 4901 4902 4903 4904 4905 4906 4907 4908 4909 4910 4911 4912 4913 4914 4915 4916 4917 4918 4919 49~0 MACRO-80 3.44 .pllase ;; FFOU FFOO FFIO FFI8 FFIC veutab: siovec: ctcvec: sysvec: genvec: 09-0ec-81 ram Start of Documented Storage Locations . defs -defs defs defs 16 a 4 4 ; interrupt ;space for ;space for ;space for ;space for vector table starts here 8 vectors for sio 4 vectors for ctc 2 vectors for system pia 2 vectors for general pia keyboard data input fifo variables FF20 FF30 FF31 FF32 fifo: flfcnt: fifin: fifout: FF33 .. FF34 16 I I I defs ;console input flto ;fifo data counter ;fifi Input pointer ;fifo output pointer ;round address More interrupt vectors expvec: defs i i Ff3C Ff3E defs defs defs defs 8 ;space for 4 vectors for expansion slot Available memory pointers. availb: defs availt: defs 2 2 ;bottom of available memory ;top of available memory 49~1 49~2 4923 4924 4925 4926 End of documented storage locations. ff40 ·FF50 defs 16 ; local stack for interrupts intstk: 4921 }> U U I'D :l a.. >< m 4928 4929 4930 4931 4932 4933 4934 4935 4936 4937 4938 4939 4940 4941 4942 4943 4944 4945 4946 4947 ff5U fF52 fF54 fl'55 ;; clock-timer interrupt variables Milsec: tikcnt: steprt: t i mou t : defs defs defs defs 2 2 ;One Millisecond timer. Enable int on ctcl ; 16 bit seconds counter (18 hr. 12 min. 16 sec) ;WD 1797 step rate ;time-out. decrements once per second Getime entry returns tile address of DAY FF56 fF51 ff50 fF59 ff5A FF5B day: montl1: year: hrs: mins: secs: defs defs defs defs defs defs ;calendar day month year-1970 ;clock hours minutes seconds (01-3\) (01-12) (1970-2225) (00-23) (00-59) (00-59) crt output driver variables ff5C fFAC linbuf: defs cursor: cJefs ao 2 ;llne buffer & Bcc gold mine ;cursor pointer » "'0 "'0 /1) :J 0.. X· m m -" o -..J Bdleulles Open,lillU System fur tile XEROX 820-11 Resident Monitl"" System Ram 4948 4949 4950 4951 4952 4953 4954 4955 4956 4957 4958 4959 4960 4961 4962 4963 4964 4965 4966 4967 4968 4969 4970 4971 4972 4973 4974 4975 4976 4977 4978 4979 4980 4981 4982 4983 4984 4905 4986 4987 ffAE ffAf fFBI FfB2 ffB3 FFB4 CSrCIH" : dircur: base: leadin: attl"ib: chrsav: . ; ffB5 FFB7 FfB9 FFBB FFBD MACRO-80 3.44 defs defs defs defs defs defs 09-Dec-81 1 2 ,cllarae t e r used for a cursor icursor pointer for direct crt display ;current contents of scrol t· register ,state of lead-in sequence handler ;attribute enable ,character under cusror console monitor program variables paraml: pacam2: param3: param4: last: defs defs defs defs defs i; Configurable parameter address table ffBf contbl: defs FfCB ffCC spal"e 1: defs spare2: clefs ffCD spare: ffDO spar"nd: fFDO ffEO crtstk: FFEO fFE2 ffE4 rstsp: cst 111 : rstpc: FfEb 0000 stack: clefs 2 2 2 2 2 ;storage for numbers read from line input buffer ; by 'PARAMS' subroutine for command processors ; last address used by 'MEMDMP' , 2*numcon ,spare configuration byte ;another spare byte (ram+l00h-48)-$ ;spare ram space ,end of spare ram dets 16 ;crt stack defs defs defs 2 2 2 ;sp register on reset ;hl register on reset ,possible pc from top of stack defs 26 ,monitor stack . depl1ase subttl page Console Messages m Bdlcones 0f-Jer·dtiI10 -" Console Messaues a 00 4988 4989 4990 4991 4992 4993 4994 4995 4996 4997 4998 4999 5000 5001 5002 5003 5004 5005 5006 5007 5000 5009 5010 5011 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021 5022 5023 5024 5025 System for tile XEROX B20-11 MACRO-BO 3.44 09-Dec-81 Console Message Macros.: message macro text,hl,I12 ifl .radix printx .radix endif endm printx 16 ,%(hl),%(h2-1),%«h2)-(hl» 10 macro text,hl,I12,h3 .printx + text hI - h2 endm h3 + If romtop ge (rom+romsiz) message <* The ROM set is Too big *>,rom+romsiz,romtop endif if cloc+tpal gt ram message <* The TPA set is Too big *>,ram,cloc+tpal endif message message message message message message message message message message message message ,rom,bloc ,rom,romtop ,romtop,rom+romsiz-l ,monltr,rqtop ,Wasted,Seltab ,Seltab,Dvrlmt ,200h+bloc+Seltab-Monitr,O <1/0 Byte Drivers from >,iobloc,iobloc+iobdvs ,rqtop,restop ,start,stop ,cloc,cloc+tpal ,spare,sparnd subttl end The"'Emj entry " N Balcones Oper'at ill" :-'ystem tor tile XEROX 1l20-II frle" Elld ffBf f7JI 0000 0182 0lB2 3COO f2E9 f29C ffEO ffAE 0019 fflO ffAC f039 f6F5 F6EA FC80 0lF2 FDCE FC55 fD72 F450 (jOllA F490 f31l0 FCAO FCAC DOEF fbJ2 fBllf f8DI fC27 OIEf OOC4 oncc }> U U t1) :::::J a.. X " OOU9 02BO ff:34 F2fE (J002 Ff2U fC59 F721 F4F2 F6EF OOAO 0000 0002 0001 OOIF F626 F6L7 FF IC FB37 FB50 F319 CONTBl CPBI CR CRTOI CRT04 CRTMAX CRTMVO CRTON CRTSTK CSRCHR CTCI CTCVEC CURSOR DAYTI DCTRl DEFlPY DIRBUF DISATR DLN2 DlOC DOC OPBIlO DPBOFS ()PBRG6 ORvTAB ()SK3 ()SKERR DSM6 DSW DUMP DUMP4 ECHO ENATR . ERR ERR3 ERr~ML ESCAPE EXPVEC FASTCR! FOLUN fIFO FILLI FIflST2 FlOP3 FLPfRM FM.DOSS FM.HARO FM.SZ fMDD FORCE GCAO GCAA GENVEC GETLlN GLIN4 GOLD 0230 f736 fC36 0196 0169 3000 f296 f299 003C 0018 OOIA 0036 f607 f086 0000 F6EB FFAF FDC2 FDD2 FC23 F490 f430 F470 f4AO FC76 1367 03Ef OOEF FDBI FB98 fA08 fb9B OOOO! OOBC 0004 001B 028A 0000 0001 ff30 Ff32 f6f6 F4BO f4FC 0005 0004 0001 0007 0006 0204 F634 FE50 fBOA F097 FBOf 120B CONTRl CPB2 CRLf CRT02 CRTDVR CRTMEM CRTOfl CRTONI CRTTOP CTC CTC2 CTLSIZ CWP DAYTIM DEBUG DEFlUN DIRCUR DlN OLN3 DMPFMT OPB5D DPB8S DPBRG4 OPBRG7 ()SKO OSKCMD DSM4 DSM7 DTL DUMP2 OVRLMT ECR ENTRY ERRI ERRMI ESC ESCTAB fALSE fBLUN FIFCNT flFOUT FIRST FLOPI fLOP4 FM.OO FM.OS fM.SDOS fM.lJN FMDOSS fORSPC GCAI GCP GETHEX GETSEL GNlJMI GOTO MACRO-80 3.44 f723 f759 0030 0199 f2A3 f2E7 f293 f2fl 0000 0018 0016 0254 ff56 fOEB 02C5 0017 0lF3 FDC7 FDEI 02E7 F470 F390 F480 F1Fl FC7B F4BO 01EF 0000 F6D5 FBB4 f005 FOA2 0004 OOCI 0000 029B 0011 0000 0000 fF31 1428 f708 f40E f506 0007 0006 0000 0003 0000 F61A F63F FE61 FB2C fB38 fBE4 0009 CPB CPB3 CRTBAS CRT03 CRTLOIR CRTMV CRTOff . CRTOUT CSPACE CTCO CTC3 CTLTAB DAY DBl DEFCUR DELLIN DISI DLNI DLN4 ONCSR DPB5S DPBASE DPBRG5 DPM DSKI OSKOVR DSM5 DSPACE DTYPE DUMP3 EAT KEY EIRET EOT ERR2 ERRM2 ESCADR ESCTBL FALUN FCLUN FIFIN FILL FIRSTI FLOP2 FLOP5 FM.OODS FM.FV FM.SDSS FM.WR FMDS GCA GCA2 GC!';I GETHlP GLINI GNlJM3 GPIOCA 09-0ec-lll ):> U U ('[) :J a. )< -n -n W Ba I COli"''' Op e,.· ali II ,j TIl,,*End DO DB 177B fA3C FF59 F64D FC61 13CA 00E6 DOIlD F7AF F7BB F643 ODIE FOCD FI62 FI04 0081 FEOB FOlD FD49 F2B5 FF62 FF5C 039F O3CO OOOA FD09 021C FOE3 FC5E Fe71 F246 F265 F27E FF50 OIOF FF57 f5D7 F5E9 F613 F6F4 0040 (J010 FI3F 4000 0020 2000 0100 0000 0080 6FFF F2UO DOOO nOO4 FB5D F676 GPIOeB HELP HOME t-lRS ICCSI IN2 INCMD HHAB IOBDVS IOCONI IDLI ST I SC KBDDAT KBDST KEYI KEY4 KUPLIN LBL LCPI LCPA LDIR2 LEADIN LI N6UF L1N03 L1NI2 LOCALF LTL M3TST MASK MDMP2 MDMP3B MILOI MILL2 MILL5 MILSEC MODE MONTH MPAI MPA22 MPA5 N6LK NT4 NT7 NUll Nl O.AUTO O.DISK O.t-IELP O.OUTe O.RESV O.VERF OPTIONS OUT CUR P.AUTO P.RDYO PARAO PARA4 'Jysttllll fo,- oono ODIE D2C9 F649 F066 FC77 FI37 ff50 F770 F796 F7CC FAD6 FOD8 FOE2 Fl67 FIOF FFBD fE2E FD30 FD4B f2C4 OOOA 0300 037C 03CO 0036 F6FI 0226 F622 FC63 12F2 F250 F270 F201 FF5A o IE I 00E5 F5DA F606 F559 0066 OUZO 0028 0006 0400 0010 0200 1000 0001 F6FO 13F I FC20 0006 0002 F66C FF65 t I\e XEROX 02U-Il GPIODA HELPKEY HOMEUP ICC IDLE IN3 INDEX INTSTK IOBLOC IOCONO IOLSTS JPIX KBDIN KBMASK KEY2 KEY5 LAST LBLI LCP2 LCPB LOIR3 LF LINDI L1NDEL LINI3 LOWLITE LUN M4TST MDATA MDMP3 MEMDMP MIL02 MILL3 MILL6 MINS MODEl MOVLN MPA2 MPA3 MTRADR NMI tH5 NTRK5 NUMCON O.BAUD O.ESCT O. I NPC O. PR·OT O.TERM OPCODE OUTCMD OUTPUT P.ONLN P.STRB PARAI PARAMI MACRO-OO 3.44 OOOA FBF3 DOlE F643 FC5A FC79 0016 112B 0003 F7A3 FEEA 001F F005 0002 F 17F FI40 F5FO FOO5 FD52 F2B3 0410 02F7 039E 0367 03A4 F333 DODO 0232 FC56 FC69 F236 F250 F27C FIFO F5AF FOOD F5C2 F5E6 F610 0164 02CO !J010 0040 F502 0000 0004 0002 0040 0000 FEEC FE9B 0007 0005 F59F FB71 ff67 GPIODB HEXBIN HOMSCR ICCS I NI IN4 INSLIN IOBDVR IOBYTE IOCONS IPOINT KBOCTL KBDINI KONLIN KEY3 KEYSRV LASTFM LCP LCP3 LOIRI LDIRX LFEED L1ND2 LINll LININS LSTATT LXI904 M5TST MOMPI MOMP3A MILO MILLI MILL4 MILLI MLU MONITR MPA MPA21 MPA4 MUL TI NONO NT6 NTRKO NUMUNT O.ODVR O. FILL O.MOVE O.RAMT O.TYPE OPOINT OUT CRT P.ACKN P.RDYI P2L PARA2 PARAM2 o9-Dec-Ol "1l ~ » -0 -0 ID :J a.. >< "1l 6alcolles Oper-a 111l:"Elld ff69 OUOf fAIO fAOf DO I I F70C FCC9 FCf6 FDOE FC3D fAAC fCof OU02 0070 FCIB fCI6 041B F647 F6DC f4fE f641 FoAO fC55 fOAl lJI91 0003 UOB2 1800 F5F8 ffE2 0001 0071 00U4 F4BO f4f3 0010 f470 009E ff5B f5EB f5A3 F5C4 F585 f596 f50B FA5A fD2C F284 OICf 0210 fC73 FC9E f6CE U007 fEU FED6 t j "e! PARAMJ PASSU PtiVORV PliVUNT PIOAS PIOOUT PK 1 I PKI4 PIU 7 PNEXT PRMTI PROT2 PRSI PRS4 PUT2HS PUT4HS RBASE ROC RDONLV RDWRA RECAL RESET RESTOP RETVI REV RGLUN RMTALF ROMSIl RSE RSHll RTK4 RHO S.AUTOR SAI403 SASI \SA SID SASSTR SCRPln SECS SEEKI SEEKX SEKI SEL2 SELONS SELERI SELTBL SETBRK SET CUR SETlOW SETROvl SIGNI SIGN3A SIM SIOCPB SIDI I SIOINC ':)ystem for tile XEfWX 82D-II ff66 fADE fAI:i F7fO 0012 f7f4 FCDf fCFE FDI4 fE7B FA62 1459 003B OOAC fC03 FCOC FE6E F605 F4E7 F4F6 F6E9 OC55 fIEf F09A FIE9 F6E8 OOBI 17EI F603 FFE4 0041 1800 0007 F4CO F4F6 0300 FIEC 0lC3 FA3E F5EO 0518! FA39 f591 F510 f42A F544 021F 0100 0lF7 0205 FC81 FCA6 EFOO 0004 FOFO FE7F PARAM4 PliVCMD PHVSEC PIOI PIOBO PIOSTO PK12 PI05 PKIB PORTS PROMPT PROTO PRS2 PRS5 PUT2HX PUTNIB RCP ROlD RDOP RDWRS RECLUN RESLEN RETINS RETVAL RFI RGRECAl RMTTOG ROMTOP RSEI RSTPC RTK5 RXI984 S.LECHO SASO SAS2 SASlDL SAVSTK SEARCH SEEK SEEK2 SEGA SELl SEL3 SELEE SELERR SElUNT SETCOL SETGRA SETMSK SETXY SIGN2 SIGN4 SIOBUF SIODPA SIOIN SIOINP MACRO-80 3.44 fB5f fA15 fAil 0010 00'13 FeBI FCf3 F006 fDIB fD40 fC6B DODO 0061 f339 fB29 FfOO FE73 F61B fA4A fA48 fl30 F07C 02F2 f5f6 EEOO f708 DODO FA08 f332 FfEO 0061 0005 0006 F4B2 001·2 0012 0014 f4E6 f50E F5EF f5B9 F578 f598 FAI7 f360 0104 FOA4 0109 F337 0209 FC88 fC55 0006 0005 FOEO FE77 PARAMS PHVDMA PHVTRK PIOAD PIOBS PKI PKI3 PKI6 PKI9 PRC PROTI PRS PRS3 PRVATT PUT2J RAM RCPA ROlDI ROWR READ REMOVE RESTART RETURN RETlR RGDBUF RIGOPB ROM ROTOP RSTATT RSTSP RTK6 S.AUTOl S.RECHO SASOA SASIC SASIS SCROLL SEClEN SEEKO SEEK3 SEKO SELIW SELDEN SELECT SELTAB SETBL! SET CON SETINV SETPRV SETXYI SIGN3 SIGNON SIOCPA SIODPB SIOINI SIOINS 09-Dec-UI » U n CD ::J a.. >< "T1 Ba 1cones Ope"a t i Tlw"End IIU Systelll for tile XEROX 820-11 MACRO-80 3.44 I FECU FE91 fEBC F 113 FEOA flOE [1031 F65A F693 F6BE F50E F550 F!:;30 F05f F602 F20E FFCB F224 0000 F610 17E 1 FCEE 0010 031F 14E2 FCA3 FU::i I F192 FIE8 0771 0299 EFOO FFFF· fC5E 1477 F040 1443 1315 FC09 FC90 F669 0031 ODIC 0011 f696 f64B fA44 0008! 00 II FA51 EE7D EE62 EE6D EE60 SIDI ST S lOOT I SIOPLI S IORD I SIORDT SIOVAL SLDDEN SMF SMFI SMF2 SMFS SMFS2 SMFSA SNORMT SOM SPACT SPAREI SPCNT STACI\ STC STOP SWAP SYSCTL TAB TERM TERM3 TEST2 TIMER TIMER3 TLOC J TPAMAX TRMSTK TRUE TYPO TYPE USRSEC VERCMO VI EVJ VIEW2 VIEW5 WCC WODD WDSL WDTR WfRA WOC WRITE XCKSI XON XQPliYS Z.BAUA Z.KEYM Z.SIOB Z.STPR "T1 U1 No Fatal e,'"o,"(" J FlOC FOFO FEC5 FI29 Fl05 FFOO FAOe F660 F6A3 F604 F530 F559 0301 FOO2 F604 F220 FFCC F500 1070 F644 F66E fCFB 001C F65F FC5E 13FB FC60 FIBI 0006 FEE8 F6Ff f6EO f639 fC90 OOfF f31B fC5E fC55 fCOA F003 0010 0013 0012 F6B7 FAC9 f64D fE34 0013 F 115 F50B EE7E EE5F EE77 EE7B SIOMSI\ SIOOUT SIOPL2 SlORD2 SIORDY SIOVEC SLERR SMFO SMFIA SMF4 SMFSI SMFS3 SMP SOFT SOMI SPAOOR SPARE2 SSELEC START STEPR STPADR SWAPI SYSPIO TOI TERMI TEST TEST3 TIMER I TIMOLJ TOPPTR TRKTBL TRN5 TTC TYPI TYPTOG USRSTK VERFI VIEWO VIEW3 WARM WDI797 WDDT WDSN WFR WtiAT \'IOC I WLJP XOFF XONENB XSELERR Z.BAUB Z.SCRA Z.SIOM Z.XONP FE90 FEA7 FEC6 FI2C FOE5 FOF9 0030 F675 F6BC F601 f548 "f573 F04C F069 FC IE FfCO fFOO FOBf FEE5 FF54 02Cl 0069 FF18 F656 FC68 FC5E Ff52 F1B9 ff55 0299 0100 F410 F63A FCA4 020C FFOO fC66 FC6f fCBE F35F 0010 0030 0010 F69A FE41 f650 OOOO! F12D F344 FF5B EE7F EE63 EE79 SIOOT SIOPL SIOPL3 SIORD3 S10ST SIOXI SLSOEN SMFOA SMFIB SMFA SMFSIA SMFS4 SNOLOC SOFTV SPACE SPARE SPARNO SSP STATUS STEPRT STUFF SYNC SYSVEC TOO TERM2 TEST! TlKCNT TIMER2 TlMOLJT TPAL TRMBUf TRN6 TTCA TYP2 UPCSR VECTAB VERf2 VIEWI VIEW4 WASTED WDCR WOSO WDSR WFRI WLP WOC2 XCKS XOFfLG XQDVR YEAR Z.IOBT Z.SIOA Z. SIOV 09-0ec-OI ! "T1 (J) .A .6 .C .0 .E ·F .G .H ·I ·J .K .L .M .N .0 .P ABORT ABOvE ADDRH ADDRL ALLOO ALLOI ALL02 ALLU3 ALL04 ALL05 ALL06 ALL07 ASVNC ATlRIB AUTOBl AVAILB AVAILT B.US,V B.CD B.IO B.MSG B.PAR B.REQ B.RST B.SEL BAKSPC BASE BAUD BAUDI BAUD;! » "U "U ([) J a.. X II 2433# 2470 1756# 1757# 1758# 1759# 1761# 1762# 1763# 1764# 1766# 1767# 1768# 1769# 1771# 1772# 1773# 1774# 96# 177# 2852 3036# 1803# 1804# 1805# 1806# 1807# 1808# 1003# 1010# 73# 1179 3251# 446 4920# 2514# 2516# 2518# 2515# 2520# 2517# 2521# 2519# 1345 1132 3303 4053 4057 ~4S0# :>470 U15 562 :J035# lU20 IU25 1830 18:35 1840 1845 lU50 1055 526 1266 2450 2470# 2450 2470 2450# 24UO# 2450 2480 2460# 2480 2460 2480# 2460 2480 2460# 681 1701 1737 7415 3126 3142 3237 4872 1564 1b'f 1 1592 1623 4702 4950# 4952# 4\:)19# 2943 29:<2 2940 2930 2978 2U71 1445# 14,)6 4(}47d 41155# 4059# 1500 2460 2470# » "'0 "'0 /1) :J 0... X -n SAUDA BAUDB BBASE BBG BELL BELLI BELLOf BELLON BELOW BLOC BLllCAO BLOCK IBLOFC BLONC BL TIM BNORY BOOT BOOTI BOOT2 BOOT3 BOOTBF BOOTO BOOTER BOOTLD BOOTS BOTPTR BRKFLG BRKKEY B::'EG BSPACE BUFTOP C.BIN C.FIvE C.FLAW C.fLPY C.FMAT C.FTRK C.INIT C.KEYM C.REAO C.RECAL C.ROSN 4tl" 54" ~43 1503 1344 153001' 6611 6711 17111 22711 4073 4868 355411 3304 10211 10111 10011 174211 3302 379001' 3793 3B25 31)01' 3803 3B08 3411 3823 45B6 445711 440~II 19111 23111 1702 3238 4003 4233 4820 441011 2008# BOq 2547# 2556# 254411 254611 255211 7B1I 254B# 254111 254311 ~i ~:l ~)07 :!6311 15B8 3941 3943 266 1616 4056 4058 1162 56311 4170 4881 4278 4866 1164 4190 1744 378711 1744 3150 4335 169211 15:!~LIjt 1537 15:13 1530 269 271 4135 487311 4~59 425411 15:34 1531 15.29 1743 3313 3"195 3801# 383411 132 :Jfl6311 3861# 3837 385511 4595 4511 4509 239 270 1702 3572 4(J47 4254 4861 4679 2147 3593 170211 4233 3572 4254 3663 4273 3787 4299 3834 383B 3902 3907 :3910 4652 4658 4662 4806# 270 270 170211 3572 4047 4254 4861 4697 21B7 3596 l163 270# 1738 3663 4073 4273 4867 4867 563 1738 3663 4073 4273 4867 563 2416 3787 4135 4299 4867# 56311 2416 3787 4135 4299 4873 2747 3025 3015 3B53 3899 4643 4513 2327 3028 ~887 L()1l5 :!8b2 682 3127 3958 4170 4327 4873 3958 4327 3977 4387 4003 4820 4047 4861 682 3127 3958 4170 4327 4873# 1163 3143 3977 4190 4387 4878 1163 3143 3977 4190 4387 4878 1163# 3238 4003 4233 4820 -n 00 C.RSVN C.SASI C.SEEK C.TRAM C. TRDV C.TWO C.VTRK C.WRIT C.Wf< " CUll I N CLRS CLRSI CLRS2 CLRSCN CMDSll CMDTAB CNFDPB COLD COMINP COMINS COMOTS COMOUT COMRES COMROM CONFG CONFIG CONIN CONIOB CONOUT CONST CONT6L CONTRL CPB CPBl CPB2 t'RPB3 CRLF CRTBAS CRTOI CRTD2 CRTD3 CRTD4 CRTDVR CRTLDIR CRTMAX CRTMEM CRTMV CRTMVO CRTOFI CRTOFF CRTOtI CRTONI CRT OUT CRTSTK CRTTOP 1504 9011 1571., 1578 1363 3328., 364 3057 56411 595 594 597 596 234., 240., 623# 584 56711 370\.1' 568., . 566., 436 1191 3060 3077 3083., 3102# 8611 3635 4369 3282 40., 1179., 1173 1186 1203 1117 581 39., 3811 1045 1071 1020., 832 940 1022., 568 1042 41., I t:i4:!., :ib 1H 1581 1582., 1410 1580 4337 j260 3062 330111 3075 332B 311611 367711 ::11)70# 3f-l85 36B5., 240 27011 3580 620., 3437 3707 3430 3435 655 1325., 3074# 30B \.I' 3093 3113 995 :3643 4443 :3341 11 :37 I:j 15 1176 1190 1206., I 16711 104111 41 39 lU77., 1073 3679 3717 3693# 3686 267# 1163# 3725 1018# 1010 I U:Jll 1091., 1 i 10 1467 lbD7 4427 156211 3744 3708 270 4867# 3734 563# 1163 170211 4867 4873# 3440 3716 3433 3654 4965# 3525 3724 3511 4364 3656 4013 4·147 4366 4460 3528 444B 3548 4014 4360 4363 4368 4373 3244 3650 4538 3443 1465 3252 3792 4544 3536# 1477 3353 3794 4550 4090 4708 3361 3796 4556 4142 3386 4007 4827 3388 4026 4832 3438 4028 4836 3441 4150 4841 3537 4354 4847 305 307 308 385 426 428 1562 1119 1044 3278 1115 3576 3275 I 191., 1192# 3852 308 40 4089 1078# 1078 1027# 4975# 1475 3629 4361 -n C~PACE -4 0 232# 1738 3663 3977 4073 4190 CSRniR CTC CTCU CTCl CTC2 CTC3 CTCVEC CTLSIZ CTLTAB CURSOR CWP DAY OAYTI DAYTIM DBL DCTRL DEBUG DEFCUR DEFLPY OEfLLJN OHLIN DIRBUF DIReUR 0151 Dl5ATR DLN DU~1 DLN2 Dun OLN4 DLOC DMPFMT DNCSR DOC [)PB5D DPB55 DPB!W DPB8S Df'BA S E );> "0 "0 11> :l 0.. >< -n 427:3 4387 4067 1195 57# 58# 59# 60# 61# 409 ::7U 2416 J(j63 ]977 4073 4190 'I:! l : j 4]117 4867 IJ 17 4/6 480' 404· 488 478 563 2416 3663# 3977# 4073# 4190# 4273# 4387# 4867# 1320 563 3127 3663# 3977# 4073# 4190# 4273# 4387# 4873 4948# 675 991 602 3127 3787 4003 4135 4233 4299 4820 4873 682 3143 3787 4003 4135 4233 4299 4820 4878 1163 3143 3787# 4003# 4135# 4233# 4299# 4820# 4878 1 163 3238 3787# 4003# 4135# 4233# 4299# 4820# 1702 3238 3958 4047 4170 4254 4327 4861 1702 3572 3958 4047 4170 4254 4327 4861 1738 3572 3958# 4047# 4170# 4254# 4327# 4861# 2417 4878# 3123# 4881 3572# 3958# 4047# 4170# 4254# 4327# 4861# 4900# 1370# 1330 425 2617 615 583# 583 ·4477 2683 25# 1342 2837 2785 I :j42# 1167 3UU4# 49:37# 1370 1192 2089 3052 615" 4640# 2735 29 1434# :J028# 2828 3038# 30 4703 123 4947# 128 3029" 439t.v 1793# 1005 1266# 1265# 4609# 4613# 4614 4620# 4624 220# 3124 3417 1472# 4533 1943# 1923# 1901# 1882# 1.817# 1819 1011 1412 4646 4615 4616# 46:35 46:JO# 564 ::11:,'1" 3419 1495 45:j 7 1824 1014 1829 4949# 1834 1839 1844 1849 1854 682# 3128 3421 1579 4543 683 3143# 3515# 1163# 3144 1703 3238# 1738# 3239 1739 3572# 4874 4561# :; blU ~JIHI 21UO 2727 2677 3099 241611 3123 l> 'U 'U I'D :J Q. >< "Tl DPtlOFS DP8RG4 DP8RG5 DPBRG6 DPBRG7 DPM DRVTAB DSKO DSKI USKJ DSKCMD DSKDVR DSKERR DSM4 DSM5 DSM6 DSM7 DSPACE DSW DTL DTVPE DUMP DUMP2 DUMP3 DUMP4 DVRLMT EATKEV ECHO ECR EIRET ENATR ENTRV EOT ERR ~RRI RR2 ERR3 ERRMI ERRM2 ERRML ESC ESCADR ESCAPE ESCTAB 2011# 1839 1844 1849 1854 874 1720 4080 4078 4113 3319 1783 4109 2450# 2460# 2470# 2480# 233# 1738# 3238# 4170 4873# 2169 4489 2324 3412# 3416# 3429# 3436 3129# 3654# 3357 2915 641# 1263# 241# 84# 4444 383 318 329 388# :382 384 385 89# 1391')# 1364 1222 ::109 2450# 2460# 2470# 241lll# 3095 3100 ~)O5# 1782# 4092# '11195# 4115# :3:324 2()I8# 4120# 2452 2462 2472 2482 no 1738# 3238# 4190 4878 2270# ,1600# 2384# 3447 3425 3434 3443# 3657 3525# 2920 1411 264 3246 4472 385# 320 384# :391 394# 397# :JB6 :1619 1422# 1377# 4073# 3048 2453 2463 2473 2483 563 2416 3572 4233 4878# 563# 2416# 3572# 4254 682 2416# 3663 4273 682# 3127 3787 4299 682# 3127# 3958 4327 1163 3127# 3977 4387 1163# 3143 4003 4820 1702 3143# 4047 4861 3143# 4073 4867 1738 3238 4135 4873 4123 4354 3996 4118 4006 2923 4025 2925 2949# 5025 3296 4484 3337 4641 3376 4724 3537 4849 3546 3652 3867 3930 3928 4339 4429 4472 4484 4641 . 4722 382# 400 400# 3926 1394 170U 11 -' tv }> "0 "0 II> :J 0X " ESCTBL EXPvEC FALSE FALUN fASTCRT FBLlJN FCLlJN FOLUN FIFCNT flFIN FIFO FIFOlJT FILL FILLI FIRST FIRSTI FIRST2 FLOPI FLOP2 FLOP] FLOP4 FLOP5 FLPFRM FM.DD FM.DDDS FM.DDSS FM.DS FM. FV FM.HARD FM.SDDS FM.SDSS FM. SZ· FM.UN FM.WR FMDD FMDDSS FMDS fORCE FORSPC GCA GCAO GCAI GCA2 GCAA GCP GCPI GENVEC GETHEX GETHLP 12L] 491511 2311 2525# 569 2526# 252711 252BII 417 B23 774 771 3307 423BII 2669 305711 3061 202511 2042 2060 206911 2029 2B36 200111 25bUII 2003# 200011 200211 256911 256611 256511 256211 1999# 2563# 2561# 256711 2560# 4394# 1349 2B60# 2B64 287311 2B75 2B66 4469 471111 4902# :D95 3351# I ~l~411 :!5 Llf,! 1!J~b 2764 1109# .] 7 10 37~lH 40B2 4755 2B05 3005 2763 2"165 bU9 769 B14 490711 4~nUI1 4911611 4909# 423311 4244 :J04511 3050 H1b6 J()b911 20BO 2046 2Ub311 21172 2035 303111 2003 n02 2325 2:319 2329 n66 2763 27b2 2705 2003 271.13 L7l:i4 2(-)B6 4b2b 1453# 2UB!) 2UbGII 2B77 2U1UII 2Bb7# ·14U 1 4712 :145b# :i:J59 204BII 207511 2370 2765 2391 2394 2767 276B 2769 2366 2367 2371 2709 2B07 2BI7 3055 4702# » "0 "0 It) ::s a.. >< " CETLlN GETSEL GLlNI GLIN4 GNlJMI GNlJM3 GOLD GOTO GPIOCA GP IOCB GPIODA GPIODB HELP tiELPKEV tiEXB I N liOME HOMElJP liOMSCH I-ms ICC lCCS IceSI IDLE I NI IN2 I N:3 Hl4 INCMO INDEX INSLlN INTAB INTSTK IOBDVH IOBOVS IOBLOC I08VTE 10CONI IOCONO IoeOHS IOLIST IOLSTS IPOINT ISC JPIX KBDCTL K8DDAT KBDIN KBDINI K8DST "w...... 3249 5132 3357# 3364 3459# 34649 1122# 3308 51# 53# 50# 52# 3301 94# 3467 574 1367 4393# 4940# 2293 2622 28919 598# 4142# 4145# 4151 4153 3310 772# 4390# 330 796 3663# 447 447 339 590 591 589 592 593 4770 2218 32119 65# 6'1# 567 702# 566 J356# G30# :n69 :U7:3# .1469 1170 3958# 531 5:Hj 3755 541 413209 :3358 :i4 76# 3186# )4,10# 4472 :!29H# 2748 2894 702 4159 4149 4156# 4158# 4135# 824 404# B41 J848 :37759 2413# 3701 3724# 3707# 3716# :3732# J742# 4778 2 :!~ll # 3299# 469 349 7()3# 7(14 bU9# 3380 1276 1318 1498 1666 3756 3758 3760 3768 3526 4016 3820 4029 4484 28B6# 2986 722 732 2305 2957 922 4926# 3849 3B98 3949 2838 3778 3666 3732 3850 3775 3742 4787 2344 3970 4B09# 2363 8UO 3727 703 3719 1682 " .r:. -" KBMASK KONLIN I -0 -0 I'D J 0- >< "T1 MDMP2 MDMP3 MDMP:iA MDMP3B MEMDMP MESSAGE MILO MILOI MIL02 MILLI MILL2 MILL3 MILL4 MILL5 MILL6 MI LLI MILSEC MINS MLU MODE MODEl \ MDNITR 3980 398", - 399111 NT4 IH5tH6 tH7 NTHK5 NTHK8 tHJLl NT NUMCON -- "T1 Ul :198711 _ll)93 3985 3305 399611 397711 499111 501 I 5022 944 96411 968 952 937 989 984 994 932 410 925 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021 355 4190 3572 4233 3663 4254 3787 4273 3845 4299 3958 4327 3977 4387 4003 4411 1356 1357 1358 1359 1360 1362 1365 1366 95JII 969 97011 97511 98211 99311 99511 99611 935 981 99811 92011 927 493011 1670 115011 125111 228 4073 4861 277811 310 4135 4875 243 2620 280!l 2812 2821 2818 2!l35 10611 1745 280111 284711 284!l 494111 2609 1247 1244 '.3711 4047 482Q MONTH MDVLN MPA MPAI MPA2 MPA21 MPA22 MPA3 MPA4 MPA5 MTRAOR MULTI NBLK NMI NOND ::198411 354 4170 4881 493811 2806 2091 121111 303711 198311 135-1 142411 242811 242911 243011 243111 200611 200511 588 435 281411 281611 282311 282611 284011 284911 21"32 1326 213311 2152 "!261 1352 2264 1353 2280 1355 2450 2'160 :2470 2-180 1190 218B 598 443# 2450 2460 2470 2480 771311 648 4965 .... 0\ 11 NUMUNT O.AUTO O.BAUD O.DDVR O.DISK O. E SCT O.F I LL O. rlELP O. I NPC O.MOVE O.OuTC O.PROT O.RAMT O.RESV O.TERM O.TYPE O.VERf OPCODE OPOINl OPT! OtiS OUTCMD OUT CRT OUT CUR OUTPUT OVERLAY P.ACKN P.AUTO P.ONLN P.RDY! P.RDYO P.STRB P2L PARAO PARAI PARA2 PARA4 PARAMI PARAM2 PARAM3 PARAM4 PARAMS PASS8 Pt-IEX PHYCMD PHYDMA PtWDRV » lJ lJ /1) ::J 0.. X 11 2bb:.l# 107# 111 # 110# 1168 117# 119# 108# 112# 120# 113# 109# 115# 1068 121# 118~ 114# 2606 4775 123# 3645 4338 3316 4565 580 3:;00 183# 4232 146# 151# 147# 148# 149# 150# 2762# 3383# 3390# 3394# 3397# 3206 3287 3288 3969 3284 4:389# 2583# 3145# 3150# 3147# UU 41141 123 124 123 125 "iU 1 5 4129 3551 4164 4295 126 124 .3b37 J645 125 2()21 4/flb ;24# J783 4379 4170# 4627 IUIO# 3511# 3571 4253 3783 4066 128 4229 1218 3:j97 49588 4959# 4116 JJU4# ]046 J223 :i215 jl61 4338 4428 4471 4483 3014 3033# 125 4129 4483 126# 4164 4815 126 4184 128# 4229 1218 4250 1341 4269 3551 4295 3637 4323 3957 4326 3976 4386 4002 4819 4046 4860 4072 4134 4169 4189 4250 4184 4379 4323 3551 2632 4801 124 4041 4428 4269 2746 4810# 125# 4066 4471 4632 4754# 4222 3662 4272 3786 4298 3757 3759 542 'J770 542 2778 3389 J4D3 1341 J405 4099 4960# 3856 4100 4957# » "0 "0 t1) :::l 0.. X 11 FiHY SEC PHYTRK PtiYUNT PIOI PIOAD PlOAS PIOBD PlO8S PIOOUT PIOSTO PKI PK I 1 PKI2 PKI3 PKI4 PKI5 PKI6 PI\l7 PKI8 PKI9 PMSG PNEXT PORTS PRe PRINTX PRMTI PROMPT PROTI PROT2 PROTO PRS PRSI PR52 PRS3 PRS4 PRS5 PRVATT PIn 2115 PUT2HX PUT2J PUT 41iS PuTNI8 RAM RBASE RCP RCPA ROC RDID 3149., 3148., 3146., 3762.92502., 2501., 250'1" 2503., 3735 3745 4449 4462· 4468 447& 4480 4492 4496 4500 4494 4504 2577., 3243 4426 4424 4451 4999., 3267 565 4302 4315 3317 276# 278# 311# 331.# 342# 360 1153# 3344 340011 3339 3342 3493 36# 353 4490 4716 2018 2234 14 1~J:j :j~ j 3UJ2 :J1li3 ~5!)6 :!~) nL 2SD7 '!~j 75 3752., 3752 4456., 44li7., 4479., 4490., 4491., 4-'195., 4499., 4503# 4498 45D9# ]048 3292 -'l47!) 4517 4530., JlU1., 3241., 4]12., 4317# 4299# 326 :09 324 340 348 368., 1155 :J424 3503 334411 3413 3495# 355 4068# 472111 472311 2149 224311 2503 2508 2977 3753 3768., 2504 4502 4506# 3334 4482 4729 3374 4640 4730# 3536 4721 3253 3290 3297 392 611 350511 3505 3971 350211 3972 440 2225 2375 2999 3542# 4822 4144 4146 4894 4970 5007 229411 2354 3549 3617 3861 3925 4120 4336 " -" 00 » "0 "0 /1) :J a.. >< " IWID I fWDNL Y RDOP RDWR ROWRA RDviHS READ RECAL RECLUN REMOVE RESET RESLEN RESTART. RESTOP RETINS RETURN RETVI RETVAL RETZR REV RfI RG(lE!lJf RGLLJN RGRECAL RIGDPB RMTALF RMTTOG ROM ROMSIZ RflMTOP RQTOP RSE RSEI RSTATT RSTHL RSTPC RSTSP RTK4 RTK5 RTK6 RTK7 RXI984 S.AUTOL S.AUTOR\ S.LECHO S. RECHO SAI403 SASO SASOA 2;151 3008# 2021 3200 2063 2065# 576 2236 3026# 706 2860 4875# 564 4874# 827 1350 636 616 2228# 16# 835 2497# 2529# 2985 2412# 4399# 4398# 29# 3011 4081# L L~)5# j068 2056# ::1213# 21171# 2199 3204# 2286# 3835 2334 3908 769# 2950 2972# 2983 1542 1692 634# 2337 3623 998 3\19 2767 3623 3623 2768 2769 563 327 4888 1702 4887 5003 4873 4888 361 4540 4552 4493 4531 367 607# 9f11# 1482# b40# 626 2323 625 096# Hl74 2766 :lO25# 3602 4503 4495 2;17 244 4H07 313111 2213 2235 114611 281 283 2BO 245011 2460# 2470# 24BO,v 31# 4·10611 4407# 4404# 4405# 2595# 2604 2596# :n:l311 2138# 1343 4978# 4979# 4977# 245B 246B 2478 2408 357 4501 4505 4464 4497 .:lU5O 2ti06# lh4J 4887 5003 4888 5003 » -0 -0 (1) ::J 0.. >< "T1 SASI SAS2 SASIC SASID SASIDI. SASIS SASSTH SAvSTK SCHOLL SCHPRT SEAHCH SEC lEN SECS SEEK SEEKO SEEKI SEEK2 SEEK3 SEEKX SEGA SEGMENT SEKO SEKI SELl SELIW SEl2 SEl3 SELDEN SELDNS SELEC SELECT SELEHI SElEHH SELTAB SElTBL SElLJNT SEHVICE SETBlI SETBRK SETCOl SETCON SETCuH SETGHA SETINV SETLOW SETMSK SETPRV .... 1.0 "T1 2634 2618 250711 250611 312111 2508# 2420# 795 56# 95# 1224# 2631# 857 575 2215# 2214 2221 2211 2033 241# 199# 3663 4273 2189 2185 3160 2151# 2159# ·2144 2130 2168# 2023 573 2661# 1782 365 3162 2028/ 78511 1242# 4515 1302# 5U6 579 1249# 124611 1152 1271# 115111 2bJ711 2W:lb 2U72 2U70 :3 I 23 2d73 :1121 040 304 BIl2 2638# 2879 2890 3604 2921 2979 2981 2937 899# 1509 921 1565 1164# 563 3958 4327 4868# 682 3977 4387 1163 4003 4820 1702 4047 4861 2087 1713 2105 1754# 3608 3878 2322 839 1407 920 2nOI 494211 3192# 2"'27 '222211 222311 2225# 217811 27111 270 :3787 4299 2191# 2194 3177 2159 2160 2148 2169# 2180 2085# 3158# 187311 630 ::l2J I # 2120# 794 1405 4517# b4b# I fJl)5# 1406 1404 1239# 140B 1240 2199# 3181# 2163 2162 2164# 3811 1403 1409 1251 1738 4073 4867 2416 4135 4873 3127 4170 3143 4190 3238 4233 3572 4254 II SETRO\~ a SETXV SETXVI SIGNI SIGN2 SIGN3 SIGN3A SIGN4 SIGNON SIM SIOBUF SIOCPA SIOCPB S IODPA S IODPI:l S I 011 SIOIN SIOINl SIOINC SIOINP SIOINS SIOIST SIOMSK SIOOT 5100Tl SIOOlJT SIOPL SIOPLI SIOPL2 S IOPL3 S lORD 1 SIORD2 SIOHD3 S IORDT SIORDY S10ST SIOVAL SIOVEC SIOXl SLDDEN 5LERR SLSDEN SMF SMFll SMFOA SMFI SMFIA SMt'18 SMF2 N , » "0 "0 It) ::J Q. x II 129211 120311 1215 359111 3595 3582 3610u 3578 368 2749 441 111 4811 4911 4611 4711 4799 571 722# 4530 473511 472911 4450 437 4526 474711 572 4754 4773 4777 4765 747 757 753 474211 505 570 4311 499 73111 69u 313311 6811 2103 2328 2334u 2340u 2351 2365 2360 1441 1402 12117# 3591 :1590# J60111 3615 3600 :JS7511 2906 4412 513 495 :1<;00 725 400111 723# 724 4795# 4736 4735 478511 744# 4549 4740 73011 4757 ,177511 4779# 4700# 75011 761# 759 4747 731 714# 746# 4899# 733 2::12211 2330# 2360 2353 2356# 237011 237111 3607 361711 2913 4774 3670 714 3600 735 2993# 4800 3677 741 4420 949 754 3728 4809 3693 742 !l810 4420 4423 996 4423 4358 4796 4742 4795 3945 4555 4764 3712 4763# 3737 4785 4367 4372 934 752 4311 3746 3720 4356 4300 4746# 76211 74011 723 3947 };> "'0 "'0 tD :l 0)( "Tl SMF4 SMFA SMFS SMFSI SMFS1A SMF:S2 SMFS3 SMFS4 SMFSA SMP SNOLOC SNDRMT SOFT SOFTV SOM SOMI SPACE SPACT SPAODR SPARE SPAREI SPARE2 SPARND SPCNT SSELEC SSP STACK START STATUS STC stEPR STEPRT STOP STPAOR STUFF SI-JAP SWAPI SYNC SVSCTL SVSPIO SVSVEC TAB TOI TOO TERM TERMI TERM2 TERM3 "Tl N ..... 2376 2126 2655 2689# 2701 2695 2710 2699 2689 1593 4465 4463 599 599# 28611 2994 3414 671 94709' 4970# 441 442 4972# 673 2599 587 325 3572# 4446 2068 2292# 440 41161# 2093 1368 38D7 3885# 74# 6309' 62# 1061 405 1346 2635 2637 3309 4418 4422 4448# L,J7B 2:380 2b69# :!lO4 n03# 2707# 271'2# 27 :j3# 2697# 1629 4537# '1532 695# 2079 :!998# 2999# 3426 804 975 23B3# 238 \# 2706 1642# 4549# 2642 3509# 808 3517 929# 976 94209' 945 971 983 4967# 4968# 810 2651# 670# :J242 812 49.82'# 4t:104# L244 2260# L:J33 3599 3920 233D 2331R' 4932# 142809' 3876# 3892 458 461 1063 471 1515# 2906# 2899# ,n87# 4420# 4424# 4452 464 608 1074 4901# 3585 610 1 112 3587 851 1254 U53 1258 938 2510# 980 3272 1019 3588 1022 3592 1028 1048 -n IV IV TEST TESTI TEST2 TEST3 TIKCNT TIMER TI MER 1 TIMERL 11 MER3 TIMOU TIMOUT TLOC TOPPTR fPAL TPAMAX TRKTBL TRMBUF TRMSTK TRN5 TRN6 TRUE TTC TTCA ~TVPO TVPl TVP2 TVPE TVPTOG UPCSR UPDATE USRSEC USRSTK VECTAB VERCMD VERFI VERF2 VIEw VIEWO VIEWI VIEW2 VIEW3 3325 4199# 4201# 4211 # 044 412 050 050# 060 2010# 04U 229# 3950 4073 4233 4327 4501 2311# 4190 5007 3270 2122 4409# 4412# 2393 1865# 22# 2073 2262 4330 4356# 4357 3321 4401# 1348 200# 3663 4273 508# 1041 351 3323 4201# 4279 3306 4005# 4012 4027 4015 4190# 4123 4LllU ·4219 846 BJ9# B54# U63 067 L 131 4933# :1572# ".3~)77# 4135# 4254# 4307# 4585 ".3663 4233 4U62# 24()8# 4410 4425 24()2# 2396 23 2249 2279# 4336# 4365 4364# 4327# 4491 1462# 270 ]707 4299 847 i079 4098n 4273# 4209 42U7# J:l 14 41)39 4016# '1033# ·H134# 4931# OOL 2155 UU8 U92# 3572 3977 4135 4327 3572 3977 4135 4254 4307 4600 3663# 4254 4387 4604 3707 4273 3663# 4003# 4170# 4273# 4020# 4664 3958 4299 4684 4691 4006 4807 425A 3663 4003 4170 4273 4820 4668 3~58# 3663 4003 4170 4273 4820 4671 3977 4387 3787# 4047# 4190# 4299# 4861# 4807#. 4003 4020 3787 4047 4190 4299 4061 3787 4047 4190 4299 4061 3958# 4073# 4233# 4327# 4881 3958 4073 4233 4327 4047 4820# 4073 4861 4135 4062 4170 4867 1730 4073 4867 2416 4135 4873 3127 4170 4071 3143 4190 3238 4233 3572 4254 271 I 2278# 4370 4374 563 3958 4327 682 3971 4387 1163 4003 4820 1702 4047 4061 1109 1123 1 124# 1501 4003# l> "0 "0 m ::l a. >< " " tv W W017~7 400tj 4010 565# 1741# 2754 55# woeR WOOD WOOT WOSO WOSL WOSN WDSR wOTR WFR WFRI WFRA WHAT WLP wOC WOCI WOC2 WRITE WUP XCKS XCKSI XOfF xOFFLG XON XONENB XQDVf{ XQPHYS XSELERR YEAR Z.BAUA Z.BAUB l.IOBT Z.KEYM l.SCRA Z. 5 I DA Z.510B l.SIOM Z.SIOV l.STPR Z. XOtlP 1~88# '2.2 ()7 1994# 1991# 199311 199211 199011 198711 1989# 2750 2936 2942# 3250 4603 22B2 2301# 2305# 577 4584 243a 24611 BBII 761 B7# 439 578 3173 266011 493911 14011 14111 14211 13411 13211 13511 13611 13711 13811 133a 139a ::' 171 2216 2173 2136 2n48 2157 22D9 2091 vIEW4 VIEw5 wAfiM WASTED wec 4U:J(j# ·i0.HI# iJ:J3 3655 3846 l839 2900 359B 2298 2338 2266 2361 2141 2902 35~0 2908 2913# 2987 2186 2203 2207 2326 2372 ·2164 2253 2306 2349 2B~9 290.7 2914 2919 2935# 2939 3312 3315 3318 3320 2346 2342 ~~41 294511 :1::'56 4661 329211 4670 3311 46B911 4651 4678# ~]ll2a 2]04 FH.lO 319911 4594 ::'53 756 7b311 758 751# 170911 3223# 141 142 :J94B 135 133 136 75B 391B 3225 4106 3940 3942 3923 3921 3~31 1::17 1:30 1::19 134 14 () 3944 3946 3919 3913 4317 4115 2374 3322 3326 3327 Notes F24 Appendix f » u U Ib :J Quick, Fd»t Cold Star-t LOader MACRO-OO 3.44 09--Dec-6 I I Tit 1 e a. 2 3 X G) QuiCk, Fast Cold Start Loader. 4 5 \ Copyright (C) 1902, Balcones Computer- Corporation. 6 7 .zOO o 9 10 Quick, Fast Cold Start Loader F02A 0004 Xqdvr cdisk equ equ 0000' DODO' bios cseg equ Of02ah 0000411 ;Physical Driver Executioner ;current user/disk II 12 13 14 15 16 17 16 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 36 39 40 41 42 43 44 45 46 47 46 49 50 51 52 53 54 55 G) ...... 56 0060 0001 0062 0003 0005 0067 . pl1ase 60h pl1ycmd phyunt phydrv phytrk physec phydma equ equ equ equ equ equ $ ; i quick, Entry: 0060 0081 0064 0006 0069 006B 006C 0000 006F 0090 0091 0092 0093 0095 0096 0097 0096 0099 009A 009B 009C 009D 009E OOAI 00A2 00A5 00A6 00A7 EB 01 ED 21 DE 09 BE 30 CO 23 4E 23 ED qfs: 0005 80 0005 05 qf51 : FC AO AF 12 7E 23 6E 23 29 29 EB 2A 0003 09 22 0063 47 7A 21 FF60' ;origin of bios above ccp & bdos ex Id Idir Id Id add cp jr ret inc Id inc $"- I $"-2 $+3 $+5 $..-7 fast loader. A = Sector» per Track DE = Address of Physical Co~nand Block that loaded QFD Idi de,hl ,transfer command block bc ,pl1ysec-phycmd ,woe be unto he who changes qfs hl,ldrtbl-5 ;set loader control table address c,5 ,set table entry size hI ,bc :advance table address (h I) ;match with loader control table entry c,qfsl ;if match not found yet nz ;if entry not in table hI c, lh I) ;set track offset+1 hI ;move starting sector, adjust track offset xor Id Id inc a (de),a a, (h I) hi III I , (h I ) inc add arid ex Id add Id Id ld Id hI hl,hl hl,hl de,hl hl,(phytrk) hl,bc (phytrk),rd b,a a,d hl,bios-BOh ;clear upper sector :set number of sectors :set (sector size)/4-1 ;sector size I 4 ;set sector size in DE ;ado track offset ;set number of sectors ;check sector size ,set starting address G) N Lhlicl-., 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 8I Fast CO,I U U It) :::l 0.. X G\ G\ U1 BIOS CDISK LDRTBL PHYCMD PliYDMA PHYDRV PliY SEC PIWTRK PliYUtH QfS QfSI QfS2 QfS3 SERNML SEfWUM X()DVR 13# 10# 32 17# 22# 19# 21# 20# 18# 29# 34# 59# 58 75 73 9# 56 70 74 30 60 30 51 6:i 36 69 60# 120# 117# 63 71 93# 62 64 53 120 81 Notes G6 Appendix G » "0 "0 XEROX 820-11 BIOS Biu:; Jump Tabl," MACRO-80 3.44 09-Dec-81 It) :J a.. )( I subttl tit I e 'L 3 4 5 6 7 8 9 10 11 i i Bios Jump Table XEROX 820-11 BIOS XEROX 820+ Rom Resident Bio:; Jump Table. Copyrigllt 1981. Balcones Computer Corporation. .z80 0000' 0003' C:j OOF I' C3 0069 ' bios: bwboot: jp jp cboot wboot ;cold start .warm start OOU6' 0009' OOOC' OOOF' 0012' 0015' Ci F04B C3 e3 C3 C3 C3 bconst: bconin: bcunot: bprint: bpunch: breadr: jp jp jp jp jp, jp' const conin callout lis t punch reader ;con50le status ;.conso 1 e character in lconsole character out l list character on printer lPunch lreader 0018' 001B' 001E' 0021 ' 0024' 0027' 002A' C3 01B6' C3 0154' C3 01B9' C3 01BE' C:j 0lC3' el 01EB' C3 01F3' bhome: bseld: bsett: bsets: bsetd: bread: bwrit: jp jp jp jp jp jp jp horne seldsk settrk setsec setdma reau wr it e ;move head to home pOSition ;select disk iset track number lset sector number ;set dma address ;reacJ a record ;write a record 00:.10' C3 F057 0030' C3 01C8' bprnts: bsctrn: jp jp listst sectrn lprinter ready status ;sector translate 0033' 81 in it i 0: db 10000001b ;initial 110 Byte l'L 13 14 15 16 17 18, 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 I F04E F051 F054 F060 F05D / Subttl page Cold and Warm Start MOdule I tv XEROX 820-11 BI()~ Cold arllj Wann S, t 35 36 37 3B 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 » "0 "0 (1) :J Q. X I MACRO-BO 3.44 MOdule a. 78 79 80 81 82 83 B4 B5 86 87 BB B9 OEOO 0800 0004 002C 0062 00::l4' 0036' 0039' 003A' 003C' 003f' 0042' 0045' 0048' 004B' 004f' 0050' 0052' 0054' 0057' 0058' 005B' 005f' 0063' 0066' 0069' 006C' 006f' 0070' 0072' 0075' ll078' 007B' 007E' 007f' OOBO' 0082' 00H3' 00B4' 0087' OOBB' OOOA' 0000' 008E' 0091 ' 0092' 0095' 0096' 0097' JE 21 BE 20 32 32 22 21 22 ED 21 Cj 09-0ec-Bl bdosln ccplen c(lisk nsects rev equ equ equ equ equ ,, Wboot - Warm Start CP/M. wlJt5 : Id Id cp jr Id ld Id Id Id Id Id equ Id Id jp f206' . 1C 0000 0005 0006 0003' 0001 4B 0004 EAOO' wbtcom JE 03 32 0050' E9 CO 00 6f 72 CD 31 CD 4f 3E 32 21 22 CD 7C B5 28 ,23 7E :j2 E5 OE CD 79 32 E1 11 19 4E 23 0115 ' OA 42 6f 74 20 45 72 00 0009' 0100 013f' 2C DODO' E9BO' 013B' 001B' 06 0122 ' 00 0121' 0133' 0009 wbterr: call db wboot: ca II ld ca II Id Id Id Id Id ca II Id or j r' inc Id Id pU5h Id ca II Id Id pop Id add Id inc OeOOh ;Length of CP/M v 2.2 aDOS OBOOIl ;Length of CP/M v 2.2 CCP 4 ;Current user/disk (ccplen+bdosln)/128 ; numbe ,- of sectors for ccp + bdos 'b' a,Oc3h ;plant jUlllps hl,bios-bdosln+6 (h I) nz, wbterr. ;if no jump to bdos (0) ,a (5) ,a (6) ,h I iset address of jump to bdos 111 ,I;lwboo t ;set warm boot address (1) ,h I bc,(cdisk) ;set current disk / user hi ,bios-bdosln-ccplen ;Enter CCP $-2 ;patch to "03" to disable warm boot command a,3 (wbtcom) .a (h 1 ) pmsg ;display error message 13.10,'Boot Err' ,0 bconin ;wait for key sp,I0011 .use external stack dboot ;inform deblocker c,a ,(zero) select A: a,nsects ;set number of sectors to read ("5eccnt).a ;set sector counter hl,bios-bdosln-ccplen-12B (dlllabas).111 , ; set base track dma address bseld ' ,select boot drive (A: ) a,h I z,wbterr hI ;point to high translate address a, (h I) (xlate),a hI c,O ;translate sector zero 11115 a,c (tran5z),a ;set sector zero translate value hi de,10-1 ;offset to dpb hi ,de c,(I1I) ;get dpb addres5 hi }:> "0 "0 to ::l 0.. >< I I OJ XEROX O:W-II BID'; Cold and Warm S t ,;1 f \:)0 1 92 93 '94 95 96 \:)7 98 99 100 1111 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 13:3 134 135 136 137 1 ~~B 139 140 141 142 143 144 145 ~) 00\:)8' 0099' 009A' 0090' nOAO' OOA 1 ' DOA2' 00A3' 00A4' OOA5' 00A7' OOAO' OOAA' OOAB' OOAD' OOAF' OOBO' OOBI 00B2' 00B5' 00B6' OOB7' OOBA' OOBB' OOBE' OOBF' 00C2' 00C4' OOC6' 00C9' OOCC' OOCD' OOCF' 0000' 0001 ' 0002' 0005' 0006' 0009' OODA' OODB' OODC' DODD' OODF' OOEO' OOU' 00E6' 00E7' 00E9' OOEC' ODED' OOEE' OOEF' t MACRO-OO 3,44 Module 09-0ec-Ol "Ill OA 3:! OODC' L 1 DODD O\:) 4E L] 46 OB 1E 87 :2B 4A FE 38 48 C5 05 CD C1 C5 CD E5 CD r: 1 21 ED 01 06 lB 01 wbtl: ODIE' wbt2: 0121 ' 0021 ' FFFE' 42 38 12 CD 0024' CD 01EB' B7 20 69 3E 00 0(' seccnt 3D 32 DODO' CA 0034' CI DC wbt3: 79 FE FF spt 20 41 :!A 11 19 10 22 C1 Id Id Id ld add Id inc Id dec Id or jr Id cp jr ld push push ca II pop push ca 11 push ca II pop Id sbc jr ca II ca II D7 013B' 0060 wbt4 :' FD 0136' lIC 58 18 BF ; i jc ld equ dec Id jp pop inc Id cp equ jr Id Id Id adll lljnz Id pop inc I (j j r' 13,(111) a, (bc) (spt) ,a hl,13 hl,bc c, (h I) hI b, (h I) bc e,l a z,wbtl c,d 26+1 c,wbtl c,e bc de bsett bc bc IIlls hI bsets bc hl,bios-2 III ,bc c,wbt3 bsetd read a nZ,wbterT a,O $-1 a (seccnt),a z,wbt5 bc c a,c - 1 $-\ nZ,wbt2 b,c hI, (drnaba s ) . de,126 h I ,de wbt4 (dmabas),hl bc c e,l.l vlbt 1 Cold Start CPIM, ;get low sectors per track ;get reserved tracks ;set sector 1 ;test low sectors per track ; if ri.gid disk ;set track 0 ; if single density 6" or 5" ;double density starts on track 1 , sector 1 ;save track ;save starting sector ;position disk ,save sector ;map logical sector ;save add('ess i set sector ; if within bios iset dma address ;read next sector ;if load error ;update sectors read counter ;if end of load ;advance sector ;if not end of track ;advance base drna address ;by spt'" 126 ;advance track ;and restart on sector 0 I .f::- » "0 "0 (\) ::J a.. >< I MACRO-UO 3,44 Module XEROX !UU- I I fjlU~ Co I (j and War-III S t lif" 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 16B 169 170 171 172 173 174 175 176 177 178 179 IBO 18 I 102 IU3 184 185 186 187 188 IU9 190 191 192 193 194 195 196 197 OOF I' 00F4' OOFU' OOFC' DIDO' 0lU4' 0108' OIOC' 0100' oI ~ I ' 0114 ' 0115 ' () I 16' 0117 ' 0118 ' 0119 ' o IIA' 0116 ' o IIC' o Ilf' 0121' 0122' 0123' 0124' 0125' 0127' 0128' 012B' 012C' 012E' o 12f" 0130' 0131 ' 0132' 0133' 0134' 0135' 0136' 0138' Ol3A' 0136' 013(l' 013E' cboot: CD 0115 ' IA 58 65 6F 78 20 :30 66 20 50 2f 40 76 65 72 20 32 2E 62 20 23 32 32 39 34 UO EI 7E 23 67 E5 CU 4F CO OOOC' 10 f4 3E 00 67 79 20 07 2A BO 30 95 3C 3C 4f D6 09-0ec-81 72 36 43 20 73 32 ,, pmsg 1'''"5g: pop Id inc or 0 - print message at f"etur'l\ address, ;print hi a, (h I) hi a hi z c,a bconot Plllsg pUS~1 f"et Id ca II jr - map logical sector, IIIls: xlate Id equ or Id jr add Id cp jr sub inc inc Id sub equ rra Id Id rr Id equ add ret a,O $-1 a a,c z ,ml s2 a,a hl,(spt) Subttl page CHARlO 02 mls I: mls2 : transz after call ;display message at current console 11115 OODC' lIIessa~e ;if end of message ,, dmabas 19 #2-294' db If 67 2E DO CB 10 II DODO C~) prnsg ;Announce CP/M size and version 26, 'Xerox 60k CP/M vel's 2.2' ,f"ev db 20 OB 00 ca i I db ;set translate address ;if not single density ;read by hOI If tracks ;g",t sectors per track I c ,1111 s 1 I a a c,a 0 $-1 h,a 1,0 I de,O $-2 h,I,de ; i f not past end of track ;offset back to beginning of track ; map sector 0->1 ;offset by translate of sector zero ;set base dina for this track ;compute address for this sector - Char'acter I/O Module :l> u uCI) :l a. )( :c :c U1 XEROX B20-II 81()~ CtIARIO - CI1a,·act"," 19B 199 200 201 202 203 204 205 206 207 20U 209 210 211 MACRO-BO 3.44 [/0 Module 09-Dee-BI FOOD monit,. equ OfOOOh F048 F04E F051 F054 F057 F05D F060 canst conin conout list I i5tst ,"eader punch equ equ equ equ equ equ equ monitr+4bl1 lIlonitr+4eh man i t r+5111 lOonitr+5411 monitr+5711 lIlonitr+5dl1 lIlonitr+60h Subttl page CPIM Deblocking Driver ;B20+ Resident Monitor Address I XEROX ,B20-II UIOS 0\ CP/M Dt!blocking D, iver- » "0 "0 to ::l 0. >< :r: 212 213 214 215 216 ll7 21B 219 220 221 222 223 224 "225 226 227 22B 229 230 231 232 233 234 235 236 237 23B 239 240 241 242 243 244 245 246 247 24B 249 250 251 252 253 254 255 256 257 25B 259 260 261 262 263 264 265 266 MACRO-BO 3.44 Og'-Dec-B 1 ; t CP/M Deblocking Driver. cseg 013f' Asc i i . 10 DODA 0008 0000 001B If up cr esc equ equ equ equ I1 13 21 451B 5218 ins lin de 11 in equ equ ( • R' ( 'E' shl B) + esc shl 8) + esc Absolute Machine Addresses. xqdvr cdisk F02A 0004 Of02ah 4 equ equ ;Resident Monitor Driver Executioner ;CCP acti~e user/disk CP/M Wr-i t e Types. 0000 0001 OOOl wra 11 w ,-d i r wrual equ equ equ Skip - ;normal write to allocated sector ;write to directory sector ;first write to unallocated block 0 1 2 skip next instruction. Uses HL to perform very short Skip macro if db endif if db endif endm n «n)-$) eq 2 26h ; i • «n)-$) eq 3 21h ; ; ; set jumps set PC $+2 ( Id h . . . . ) PC $+3 ( Id hi •... ) Dboot - Deblocking Bootstrap. 013F' 014l' 0145' 0148' 014B' 014C' 0140' 21 0000" dboot: '21. 021A" 21 021C" 01 2000 7I 23 10 FC dbt2: Entry: Cal led prior to Warm Start reload. Id Id Id Id Id inc djnz hl.hstpuf (hstdma) ,hi 111,dptltab bC,16*2*256 (h I) ,c ;clear internal DPH table of addresses ;set table length, zero ;clear next byte hI dbt2 ;if table not clear clract - Ol4F' Af clract: xor ;initialize host buffer address Clear host buffer active. a l> U U It) :J 0- >< :r: I '-J XEHOX O£O-ll Bill::> CPIM Del) lock i n~ Dr lver £67 £68 269 270 271 27£ 273 274 275 276 277 270 279 200 281 £82 283 284 285 286 207 288 289 290 291 292 293 294 295 296 297 298 299 300 3D1 302 303 304 305 306 307 ::!GO 309 310 311 312 313 314 315 316 317 310 319 320 321 ::J22 0150' 0153' MACRO-OO 3.44 09-Dec-Ol 32 0£6E' C9 ld f'e t ; i 0154' 0155' 0150' 015A' 015D' 015E' 015f' 0161 ' 0163' 0164' 0165' 0166' 0167' 0168' 016A' 016B' 016D' 016E' 0171 ' 0172 ' 0173' 0174' 0176' 0179' 017A' 0170' o 17C' OIW' 017E' 017f' 0100' 0181 ' 01 O:j' 0184' 0107' 0188' 018!:)' 018A' 018B' o 18C' 010f' 0191 ' 0192' 0193' 0194' 0197' 0199' 79 2 D6 21 09 09 CB £8 7E 23 66 ~j seldsk: 0205" 00 021C" se 11: 43 OA 6F B4 2D 5f 10 E5 2I 71 2B 2B 36 CO EO EI 73 23 72 lOB 7D B4 211 E5 [) I ll9 5E 23 56 EB 19 ED sel2: 0202" FF 02Df' 22 sel::!: OOOA 22 0241 ' DE 03 U9 7E ::Ie ,j2 021B' DE DC 09 select (Ilstact),a iclear 1'05 t lJuffe,- active - select CPIM disk. Entry: C E E CPIM Logical Drive, 0-15. 2*n+0 if media identification required 2*n+l if media previously identified Id Id Id Id add add bit jr Id inc Id Id or jr Id jr push Id Id dec dec Id ca II ex pop Id inc Id ex Id or j r' push Id add Id inc Id ex Id Id add Id inc Id Id add a,c (sekdsk),a b,O hi ,dphtab hi ,be hi ,bc O,e z,sel2 a,(hl) hi h, (hi) I, a h nZ,sel3 e,a se 11 hi hl,selcmd+2 (td),c ; remember disk to seek table of remembered dph's ; i!1 dex by words ;set : i f drive not previously selected ;set disk parameter header address in hi ; if pr-evious select succesful ;fcirce media identification ;save dph table address ;set CP/M Logical drive hi hi (h I) ,- 1 xdr de ,Ill ;point to select command iset driver select operation ;execute driver request hi (h I) ,e hi (h I) ,d de,hl a, I : remember disk parameter header address h z,sel4 hi bC,10 hl,bc e, (h I) hi d, (h I) de, III (dpbadr) ,Ill c,3 hi ,be a, (h I) a (rpb) ,a c,15-3 hl,IJC ;if drive not succesfully selected ;save dph address ;set dpb offset in dph ;set disk parameter block address ;set block shift factor ; form 128 byte records per block ;point to end of dpb ::r: 00 p "'0 "'0 (1) ::J a. X ::r: XEROX 020-\\ B((l', CP/M Deblocki ... u Ol- iver 323 324 325 326 327 328 329 330 331 332 333 334 :135 336 337 338 339 340 341 342 343 :144 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 360 369 370 371 372 373 374 375 376 377 378 019A' 0198' 019E' OIAO' 0lA3' OIM' 0lA5' MACRO-tlO 3.44 09-Dec-81 Id Id and Id pop ret 7E 32 0208' E6 07 32 029B' EI C9 0lB6' 0lB9' OIBD' OIBE' 0lC2' 0lC3' DIU' 21 0004 3A 0205" AE Hi Of 20 04 7E E6 fO ~au: 01 0000 ED 43 0206" cadI: ED 43 020C" C9 ED 43 020A" e9 Id Id and jr Id and Id Id ret hl,cdisk a,(sekdsk) (h I) not 1III0000b nz.cadl a, (h I) not III I b (hl),a I .... ., Home - Set Track Zero. home: Id ; ; Settrk - Set Track. bc,O BC settrk: Id ret (sektrk).bc ,, Setsec - Set Sector. is not default disk log in A: ;retain active user area ;cause CCP to ; indicate select failure Track number ;set track to seek setsec: Id ret (seksec) ,bc , , Setdma - Set Di r"ect Memory Address. setuma: Be Id ret (sehdma) .bc :: ;set sector to seek DMA address Sectran - Sector Translate. Be DE Ex it: HL L H sectrn: Sector number Entry: Entry: 69 ;clear active user BC :: log in ; i f selected disk Entl-Y: ; i OIC13' :: ;get disk that CCP will :get disk that fail ed ;seek track zero Entry: (9 ;set sector mask cad - Clear Active DiSk. ~or 77 6C C9 .set internal parameter ;set track zero single density flag ; fa I I into clear active disk sel4: ,, 0lA5' 0lA8' OIAB' OIAC' OIAE' OIBO' OIBI' 0lB3' 0lB4' 0lB5' a, ( ... 1 ) (trkzfl),a 7 (secmsk),a ... 1 III I,c Sector number~ , 0 <:: BC < Sectors per Track Single byte shew taLJle address Be (DE+BC) B if DE 0 if DE <> 0 wlli cll bet tel- be zero ;set untranslated sector }> -0 -0 /'I) :J 0- >< I XEROX 820-11 8IOS CPIM Det} lock inu [J /' i ver' 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 '116 417 410 419 420 421 01C9' OleA' 0lC8' 01CC' OICO' DICE' 01Cf' OIDO' OIDI ' MACRO-80 3,44 6(J I lD Id Id 7A B3 C8 EB 09 6E 60 C9 or ret ex add Id Id ret , 0102' 0105' 0100' JA 02AE' 21 0203" IU 07 OIDA' 3E 01 OIOC' 26 DIDO' OIOE' AF 21 0213" . Rdwrs rdwrs: Id Id jr ,, Readhs readlls: Id skip db ,, Wr i ths wri tllS: xor Id ,, Rdwrhs + Entry: h,b a,d e z de,hl hl,bc I, (h 1) h,b Exit: 77 rdwrhs: 21 02BE' B6 77 C9 . , OIEB' OIEC' OIEf' o If I' AI' 3') 0226' UE 00 :JC read; id ca II Id or Id ret Read - a, I $+2 26h ;set read operation ; jump over wri te entry point - Write Host Sector. a hl,llstcmd ;set write operation - Read or Wr it e Hos't Sector, HL A Physical command I'eques t address 0 to wr i te I to read 0, A i f no errors if errors condition of A reg - 1• (h I) ,a xdr hl,erflag (h I ) (h I) ,a ;set driver operation ;execute drive.- read or write ;mer'ge error flag for directory protection Read CP/M Sector. Entry: Seldsk, Exit: A A xor Id Id inc skip ;set read/write operation ;set seek request ienter rllad/write dispatcher - Read Host Sector. Z CD 020f' ;single byte translate a,(readop) hl,sekcmd rdwrhs A OlE I' 0lE2' 0lE5' 0lE8' DIE9' OlEA' ; if no translate table - Read or Write Single Density. A ~22 423 424 425 426 427 420 429 430 431 432 433 434 09-0ec-tll Settrk, Setsec, Setdma previously ca I led 0 i f no e,','ors i f e,'r'or's -I a (unacnt),a c,wrall a $+2 ;clear una II oc processing ; i nh i bit buffer flush after read ,'ead operation ;set I -" a » -0 -0 m ::J a.. >< I XEROX 820-11 BIO'> CPIM Deblockinv 0, ive, 435 436 437 438 4:39 <140 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 46:l 404 465 466 467 408 469 470 471 472 473 474 475 476 477 478 479 480 481 48;: 483 484 485 486 487 488 489 490 MACRO-IlO 3.44 09-Dec-81 dLJ + 0lF2' ; ; 0lF3' AF write: 261, CP/~ Write - Write Sector. Entry: Seldsk, Settrk, Ex it: A A C xo,' a Setsec, Setdma previously called 0 if no errors -I if errors Write type ;set write operation Rdwr - Read or Write. Entry: A o A 0lF4' 0lF7' 0lF8' OIFB' OIFE ' 0201 ' 0204' 0205' 0207' 020S' 0209' 020C' 020F' 0210' 0212' 0213' 0216' 021B' 021A' 0216' D21C' 021F' 0222 ' 0225' 0226' 0227' 022B' 022A' 0226 ' 022E' 0231 ' 0234' 0237' 0239 ' 023C' 023D' 32 02AE' AF 32 02BE' 2A 020C" 22 0208" :3A 029B' 67 28 CB F6 00 0240' II 0000 0241 ' 024::1' rdwr: trkzfl F2 0212' 3A 0206" B7 28 CO 79 ~j2 02BA' FE 02 20 OB ::IE 00 rpb 32 0226' 11 020E" CO 0206' ,iE 00 writl: unacnt 67 28 2E .HJ 32 'LI II CD 0226' 0205" 020E" 02CC' :W 16 'LA 0211" 2 :1 22 0211" dpUdd'" EO 52 to write to read Id (readop),a xor a Id Id Id Id or jr or equ jp Id or jr Id Id cp jr Id equ Id Id ca II Id equ or jr dec Id, Id Id ca I I jr Id inc Id Id equ (erflag),a hl,(seksec) (sekhst),hl a,(secmsk) sbc iset read/write switch ireset error flag iset seek host sector iset sector size a z,rdwrs o iif deblocking not required icheck track zero single density flag $-1 p,rdwrl a,(sektrk) iif track zero not single density iset seek track a z, ,'dwrs a,c (wrtype),a wrual nZ,writl a,O $-1 (unacnt),a de, unarJsk. cpb a,O $-1 a z,writ4 a (unacnt),a hl,sekdsk de,unadsk CIllP nZ,writ3 hi, (unasec) hI (unasec).hl de,O $-2 hI, de iif track 0, read or write without deblocking isave write type ;if not write to unallocated group iset records per block istart counting unallocated writes iset unal located parameter block address iCOPY parameter block iset remaining unallocated sectors iif not processing unallocated group iupdate unallocated sectors remaining ;set seek parameters iset unal located parameters icompa,'o parameter blocks iif not seek to unallocated sector ;advance unal located sector ;set sectors per track ):> "0 "0 ttl ::l a. x I I ..... ..... XEROX 020-11 BIO~ CPIM Deblocking [Jr-ive,' 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 ti07 500 509 510 511 512 513 514 515 516 517 510 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 5:lti 536 537 538 539 540 541 542 543 544 545 546 0245' 0247' 024A' 024[J' 024E' 0251 ' 0252' 0254' 0255' 0250' 20 22 2A 23 22 AF MACRO-80 3,44 09-0ec-UI OA 0211" 020F" j " Id 1d inc Id 020F" HI 05 Af 32 0226' 3C jr writ3: w,'it4: xor Id inc nZ,w"it2 (unasec),hl hl,(unatrk) hi (una t rk) ,11 I a rwop'er a J2 3A 2A CO CO CO 20 22 f6 028B' 0290' 020C" 3C 10 3f f8 0208" 00 a CD 28 CD 1I CD JE iset pl'e-read block flag iset shift countel' rwopl: 51'1 h ;compute host sector rl' sri I jr rwop2: rwop3: secmsk 1f 5"1 JE 00 1f 5f 2A 19 ED 01 :lE Id or equ Id Id jl' Id Id ca II jl' ca II Id ca II Id equ or ca II or ca II Id Id and equ a nZ,rwopl (sekl1st),hl o $-1 a,l (hstact),a z,rwop2 hl,hstdsk de,sekdsk cmp z,rwop3 flush de,hstdsk cpb a,O $-1 cpmsec/(2**sekmsk) ;if shift incomplete iset seek host sector icheck host active flag ;host buffer always becoms active ;if host buffel' was not active ;set active host buffer identification ;set seek identification ;compare seek request with active host sector ;if host buffer contains seek sector ;flush buffer if previously written ;set host request block address ;copy seek parameter block to host ,check pre-read required a nZ,readhs ;read host sector if preread required a nZ,clract (hstwrt) ,a a, (se),sec) o ;clear host buffer active if read errors ;mark buffer not written into ,set seek sector ;form host buffer index from sector mask $-1 rra 021A" 50 020A" 0080 00 readop H7 20 05 Read or Write Operati6n Proper, (I'sflag),a a,(secmsk) hi, (seksec) I'stlag 87 C4 OIDA' 87 <:4 014F' :32 02C3' ClA 020C" E6 00 imark pre-read required Id Id Id JE 01 026E' OE 0215" 0205" 02CC' 16 02C2' 0215" 0206' 00 ,clear unallocated processing rwoper: hstact 32 28 21 1I ,mark pre-read not required (unacnt),a Rwoper - 0259' 025C' 025f' 0262' 0264' 026b' 0260' 02GA' 026D' 026E' 026f' 0271 ' 0274 ' 0276' 0279' 027e' 027f' 0281 ' 0284' 028 '/' 02BA' 020t:!' 020e' 0280' 0290' 0291 ' 0294' 0291' 029A' 029U' 029C' ()29() , 029E' 02AO' 02A l ' 02A:.? ' 02A5' O"Ao' 02AA' 02AD' 02AE' 02AF' 020lJ' if not end of track reset to sector zero advance unal located track Id Id rra Id Id add Id ld Id equ or' j " d,a a,O ,multiply index by 128 bytes/sector e,a hi ,(hstdma) 111,de de,(sekdma) bC. 128 a,D $-1 ;set host buffer address ;form seek buffer address ;set user transfer address ;set CP/M sector length ;set transfer direction a nz, r'wop4 ;if read operation I ....... XEROX B20-11 BIO~ CP/M Oeulockino 01 lVt:'" MACRO-BO 3.44 09-0ec-Ell N » '0 '0 tt> :l a.. X I 547 54B 549 550 551 552 553 554 555 556 557 55B 559 560 561 562 563 564 565 566 567 560 569 570 571 572 57;'1 574 575 576 577 578 579 500 501 582 583 504 585 586 587 588 509 590 591 592 593 594 595 596 597 59B 599 600 601 602 02B2' 02B3' 02B4' 02B7' 02B9' 02BA' 02BB' 02B[l' 02BE' 02BF' 02CO' 02( I' 02(2 . 02C3 . 02(4' 02(5' 02(8' 02(8' EB :H: 32 02C3' EO BO ::IE 00 rwop4: "jrtype FE 01 3E 00 erflag CO B7 CO 3E 00 ex inc Id Idir Id equ cp Id equ ret or ret Flush flush: hstwrt Id equ or ca II ld ret B7 (4 DIDO' 32 02(3' C9 06 05 lA cmp: cmpl: AE CO 13 23 10 F9 (:9 i i 0206' 0209' 020(' 02DE' 21 0205" 01 0005 EO BO C9 a,O $-1 wrdir a,O $-1 nz a nz ,, Cmp 02C(' 02CE' 02CF' 020U' 0201 ' 0202' 0203' 0205' de,hl a (hstwrt),a cpb: ; ; - ,mark buffer written into ;move sector to/from user buffer ,set ~Iri te type ,set error flag ,if errors, do not clobber directory Flush buffer to diSk. a,O $-1 a nZ,wriths (hstwrt),a - ,switch directions ,check host written flag , if buffer written into, write host sector ;clear host written flag i f no errors Compare Paramater Blocks. Entry: HL DL Parameter block Parameter block Ex it: Z Z Set if parameters identical Clear i f parameters different Id Id )lor ret inc inc djnz ret b,5 a, (de) (h I ) nz de hI cmpl ,set length of parameter block ,compare next byte ,if parameters different , if more bytes Cpb - Copy Parameter Block, Entry: DE Address of Unallocated or Host parameter block Ex it: Seek parameter block copied into block at DE Id Id Idir ret III ,sekdsk bC,5 ;set .source parameters ;set block length ;copy parameter block Xdr - E)lecute Driver Reques t . Entry: ttL = po,inter t) Physical Ex it: Physical Driver exit condition are maintained i f no errors or user did not request warm start, Driver Request Block » -0 -0 t'D :J 0.. X I I -" W XEROX 820-11 BIOS CPIM DetJlockinu 0, i ve r~ 603 604 605 606 607 600 609 610 611 612 613 614 615 616 617 610 619 620 621 622 623 624 625 626 627 628 629 630 6:31 632 633 634 635 636 637 638 6:39 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 ()57 658 02DF' 02E2' 02E5' 02EO' 02E9' 02EA' 02EC' 02ED' 02EE' 02FO' 02F I' 02F2' 02F3' 02F5' 02F6' C2F7' 02F8' 02F6' 02FC' 02FD' 02FE' 0300' 0303' 0304' 03U6' 0309' 030D' 0310' 0312' 0313' 0315' 0318' 031C' 031E' 0320' 0323' 0327' 0328 ' 032B' 032F' 033U' 0333' 0337' 033B' , 033D' 0341 ' 0345' 0347' 034B' 034F' 0350' 0353' 0354' 0357' 0350' 22 2A CD 47 3A MACRO-OO 3,44 D2EA' 02EA' F02A 09-Dec-!Jl xdr: xdr 1: Id Id ca II Id Id equ Id inc jr or or ret jr Id or ret Id inc inc Id add Id inc jr ca II db (xdrb),a c nZ,xdr4 pmsgi 'Select',O ;if not select request jr dec jr ca II db xd,-6 c nZ,xdr5 pmsgi 'Write' ,0 : if not write request jr ca II db xdr6 pmsgi 'Read' ,0 ;must be read request xdr6: ca II db p rns 9 Err xdrb: db db 'd: 'A(ccept), 6E 29 db 'I(gnore). 74 20 db 'R(etry) no db ca II push ca II db 5218 dw 0 bconin af pmsg cr de II in 02EA' xd,-a 4F 3C :w 05 65 64 CO 1U 78 B7 C8 2A 23 2:3 7E C6 32 DC 2[] CD 5:3 6:3 18 03 xdr2: 02EA' xdr3: 41 0330' OC 0375' 65 6C 65 74 00 16 00 xdr4: 2U CD 57 65 18 CD 06 0375' 72 69 74 00 08 0375' 52 65 61 64 xdr5: (xdra),hl hl,(xdra) Xqdvr b,a a,(xdra) $-2 c,a a nz, xd,-2 I h nz "dr3 a ,l) a z hi, (xdra) hi hI a, (h I) ;save f'equest for retrys request address :execute physical driver ;save read/write error status ;get driver operation ;restor~ ;set message index : i f not select request : i f dpll address returned by driver :set recHI/wri te error status : i f no read/write errors :put drive name in message a, 'A' Ul) CD 2(] 2U b4 41 b5 2C 49 uF 0115 ' 45 7L. 72 3A 20 20 63 70 74 20 28 67 72 65 £C 20 52 28 65 72 79 29 ilO CD 0009' F5 CD 01 15' 63 29 ;read char'acter from console I XEROX B20-11 BIOS CP/M OeblockillU 0, iver 659 660 661 662 663 664 665 666 667 66B t)09 670 t)71 672 673 674 675 676 677 678 679 680 t)1l1 682 683 » "'0 "'0 it) ::J 0.. >< I \ MACRO-BO 3.44 035A' 035C' 0350' 035E' 035F' 0361 ' 036:j' 0365' 0367' 0360' 036A' 0360' 036E' OB 07 6F FI E6 FE :!B 06 CB ot) C2 2F (9 036F' 0372 ' CD 01A5' C3 0003' CD 0115' 0375' 0378' 037A' 037C 037D' 09-D"c-BI db Id Id pop and cp jr sub ret slIb jp cpl ret up,O h,a l,a af 5fh 3 z,xdr7 'I' Z 'A' - , I ' nZ,xdrl xdr7: ca II jp cad bwboot pmsgi: ca II db dw pmsg cr, If ins lin 0 pmsg 00 5F 03 OA 49 FB 02E2' llO OA 4518 00 C3 0115' db jp subttl paU e ;zero dpll for' accepted or ignored select errors ; ignore parity, case ;if warm start requested ;if user ignored error, don't te II BOOS ;retry request ;clear active disk Deblocker Storage Area XEROX HZO-II BIOS Deblocker Storaue Ar·ea 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 7U4 705 706 707 708 0000 0380' MACRO-80 3.44 09-Dec-81 reser've rnacro s equ aset endm aset dseg ; ; reserve selcmd,3 714 715 716 717 718 719 Seek Sector Parameter Block. reserve reserve reserve reserve reserve reserve reserve sekcmd,l sekunt,l sekdsk, I sektrk,2 sekhst,2 sekdma,2 seksec,2 , Unal located Sector Parameter Block. . ;kindly leave these bytes alone ;kindly leave these Host Sector Parameter Block. reserve reserve reserve reserve reserve reserve 720 ..... iselect command, unit, drive ; ; reserve unadsk,l reserve unatrk,2 reserve unasec,2 713 Ul Host Sector Deblocking Buffer. Physical Driver Select Command. 709 I 0 rese.rve hstbuf,512 710 711 712 721 722 723 724 725 726 727 728 729 730 731 s,n $+. .-tn hstcmd, I hstunt, I hstdsk, I hsttrk,2 hstsec,2 hstdma,2 ;kindly leave these bytes alone Disk Parameter Header Addresses. reserve dphtab,('P'-'A'+I)*2 0000" cseg end I -" 0\ XEROX B20-11 fllOo, Del)locker Sto"clue AI"ea Macr'os: RESERVE » -0 -0 ::J )( I 09-0ec-BI SKIP Symllols: 02:3C 0006' BCONST 0000' BIOS 0012' BPUNCH 0030' BSCTRN 0021 ' BSETS 002A' BWRIT OOF 1 ' CBOOT 014F' CLRACT F04E CONIN 02D6' CPB 014B' DBT2 0241 ' DPBAOR 001B ESC U2fiE' HSTACT 021A" HSTOMA 0216" HSTTRK 0033' INITIO F054 LI ST 0130' MLSI 002C NSECTS F060 PUNCH OlE 1 ' ROWRH5 F05D READER 0062 REV 0262' RWOPI 02B7' RI'IOP4 029B' SECMSK 020A" SEKDMA 020C" SEKSEC 015A' SELl 01A5' SEL4 011:3' SETDMA OUOC' SPT 0226' UNACNT 020F" UNATRI\ OOBO' WBT1 00E6' WBT4 0058' WBTERR 0225' WRITI 0258' WRIT4 02BA' WRTYPE 02E2' XDRI 0312' XDR4 036F' XDR7 0122' XLATE it) a.. MACRO-BO :1.44 No Fatal e rr'o I" (s ) 0009' OEOO OOOF' 0027' 001B' DOlE' 01A5' OSOO 02CC' F051 0000 521B 021C" 02C2' 0000" 0215" 0214" 451B F057 0132' 0115 ' 01F4' D1D2' 0IDA' 021B' 02S4' 0259' 01CS' 0205" 0206" 0160' 0200" 01BE' 0133' 020E" OOOB 00B6' 0034' oono 0251 ' 01F3' 0002 02F5' 0320' 02EA' F02A BCONIN BOOSLN BPRINT BREAO BSELO BSETT CAD CCPLEN CMP. CONOUT CR DELLI 1'1 OPHTAB FLUSH HSTBUF HSTOSK HSTUNT INSLIN LI STST MLS2 PMSG RDWR ROWRS REAOHS RPB RWOP2 RWOPER SECTRN SEKDSK SEKTRK SEL2 SELCMD SETSEC TRANSZ UNADSK UP WBT2 WBT5 WRALL WRIT2 WRITE WRUAL XDR2 XDR5 XORA XQDVR OOOC' 001S' 0020' 0015' 0024' • 0003' 01B4' 0004 02CE' F04B 013F' 0138' 02BE' 01B6' 0213" 021S" 02C3' OOOA 0121 ' FOOD 0375' 0212' 01EB' 02AE' 028B' 0297' OODO' 0203" . 020S" 0204" 01S3' 0154' 01B9' 0208' D211" 0069' OOOS' 0050' 0001 0254' OIDD' 020F' 02FS' 0328' 0330' BCONOT BHOME BPRNTS BREAOR BSETO BWBOOT CADI CDISK CMPI CONST OBOOT DMABAS ERFLAG HOME HSTCMO HSTSEC HSTWRT LF MLS MONITR PMSGI RDWRI READ READOP RSFLAG RWOP3 SECCNT SEKCMO SEKHST SEKUNT SEL3 SELDSK SETTRK TRKZFL UNA SEC WBOOT WBT3 WBTCOM WRDIR WRIT3 WRITHS XDR XDR3 XDR6 XDRB );. U U (I) :J a. >< I I 8CONIN BCONOT BCONST BDOSLN BliOME BIOS BPRINT BPRNTS BPUNCi-\ BREAD BREADR BSCTRN BSELD BSETD BSETS BSETT BWBOOT BWRIT CAD CADI CBOOT CCPLEN CDISK CLRACT CMP CMPI CONIN CONOUT CONST CPS CR DBOOT (JBT2 DELLlN DMABAS DPBADR DPI-HAB ERFLAG ESC FLUSli HOME HS1ACT I-ISTBUF 689# 704 708 715 722 14# 15# 13# 37# 20# 10# 16# 28# 17# 25# lB# 29# 21# 24# 23# 22# 11# 26# 333# ::137 10 38# 39# 266u 483 578# 14 15 13 474 222u 67 260u 226# 72 315 250 410 223u 521 20 '167 256 b95 705 709 719 723 65 167 b95# 705# 709# 719# 723# 654 695 705 709 719 723 699 706 713 720 724 40 46 55 71 46 55 7I 115 73 118 113 lOB 52 674 b73 341# 146# 40 54 529 519 503 2ll3u 204# 202# 523 b57 256# 262 b58 134 489# 279 454 225 55 231# 577# 592# 677 138 728# 555# 226 562u 346# 51::1u ()95# 71 333 515 192# 699# 706# 713# 720# 724# 699 706 713 720 724 703 707 714 721 728 703# 707# 714# 721# 728# 703 707 714 721 728 704 708 715 722 704# 708# 715# 722# I HSTCMD -A ~ISTDMA 00 ~jSTDSK HSTSEC HSTTRK HSTUNT ~ISTWRT INITIO INSLlN LF Ll ST LI STST MLS MLSI MLS2 MONITR NSECTS PMSG PMSGI PUNCH HOWR ROWRI ROwRIiS ROWRS READ READER REAOHS READOP RESERVE REV RPB RSFLAG RWOPI RWOP2 RWOP:.J RwOP4 RWOPER 5ECCNT SECMSK SECTRN SEKCMD SEKDMA SEKOSK SEKHST SEKSEC SEKTRK SEKUNT SEll » "'0 "'0 It> ::J a. X I 404 257 517 723,(t 722,(t 720,(t 530 3\,(t 225,(t 22(),(t 16 28 82 180 176 200,(t 40# 61 628 17 452# 462 393 391,(t 25 18 397# 391 685,(t 714 4\,(t 320 504 507,(t 516 520 546 497 70 326 29 392 366 277 456 359 352 704,(t 279# 719,(t 539 522 724,(t 72 \,(t 549 563,(t 678 677 205# 206# 111 183# 185# 202 69 146 6:.J4 566 172# 203 2D4 205 206 207 208 160# 638 168 676# 641 656 676 680 702 720 703 721 704 722 705 723 706 727 518 592 705# 531 709# ~[J8# 4b6,(t 416,(t 459 119 207,(t 527 452 694 718 152 471# 525# 510 522# 5:31 # 550# 504,(t 123# 457 378# 70:JoIt 541 334 511 455 463 191 465 430# 544# 698 719 12~ 505 708# 481 707# 506 706# 533,(t 707 708 712 713 » "U "U I'D ::J Q. )( I SEL2 SEL3 SEL4 SELCMD SELDSK SETDMA SETSEC SETTRK SKIP SPT TRANSZ TRKZFL UNACIH UNADSK lJNASEC UNATRK UP wBaaT WBTI WBT2 WBT3 wBT4 WBT5 WBTCOM WBTERR wRALL WRDIR WRITI WRIT2 WRIT3 WRIT4 WRITE WRITHS WIHVPE WRLJAL XDR XDRI XDR2 XDR3 XDR4 XDR5 XDR6 XllR7 XDRA XDRB XLATE XQDVR 283 289 307 293 21 24 23 22 243# 92 84 324 431 473 485 493 221# II 101 110# 117 136 ... 45# 56 ... 48 235 ... 236# 469 491 484 478 26 403 ... 467 237# 298 605# 612 616 627 633 631 665 604 625 79 2JO ... :<92 ... 308 ... 329 ... b99# 276# 36G# 359# 352# :398 131 # 186# 461# 472 402 487 495 659 66# 104 132 127 ... 137 126 50 ()\# 432 553 475# 496 ... 498# 500# 445# 5G5 552# 460 417 669 617# 620# 6J2# 638 ... (-i:j 7 673 ... 605 644 ... 173 ... "U6 434 178 476# 713# 492 714# 480 106# 142 76 121 499 7Hi# 604# 641# 6DB 609# 620 Notes H20 Appendix H » "0 "0 ttl :::J a.. >< MACRO-BO 3.44 Banked Phy!;Ical 0, ive,- Title I 09-Dec-81 Banked Physical Driver 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 lB 19 20 21 22 23 24 25 26 27 20 29 30 31 32 i j Banked Physical Driver Copyright (C) 19B2, Balcones -Computer Corporation Transferred to Public Domain - (PO) 19B3 After executing this program by entering BANK x:(where x is any valid CPIM (Jisk drive A-P). The BANK program wi II load a physical disk driver into memory. This phy!;ical driver is executed when drive x: is accessed by CP/M. This particular disk driver will map normal CP/M files onto the address space of the alternate memory bank (bank 0) in the 820-11. This utility demonstrates the flexibility of the logical to physical diSk mapping in the B20-11. The BANK program moves the physical disk driver up to high memory. It then updates the entry for drive x: in the logical to physical disk drive mapping table telling the system to use physical disk driver #3 when CPIM requests service from drive x:. The execution address of the BANK driver is then placed in entry #3 of the physical disk driver address table. If BANK is executed by entering: Then doing a A>DIR P: BOOT .ROM A>BANK P: would display tile following directory: OPTION .ROM SCREEN .MEM EXPAND .RAM Entering: A>STAT P:*.* will display the following: 33 34 35 36 37 3B 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 Recs 64 256 Bytes Ext Acc 12k 1 RIO 32k 1 R/W 16 2k R/W 24 4k R/W Bytes Remaining On P: P:BOOT.ROM P;EXPAND.RAM P: OPTION. ROM P:SCREEN.MEM Ok The files map to the fol lowing memory addresses in bank 0: BOOT.ROM EXPAND. RAM OPTION.ROM SCREEN.MEM 0000h-2fffh 400otl-bfffh 17ffh-1 fffh 3000h-3bffh The BANK program can also be a very useful tool in that after it has been executed a high level language program can access it-ems in ttle alternato memory bank as disk files on drive Xl Of particular interest is the file SCREEN.MEM, notice that it is 24 records long. Each record (12B bytes) corresponds to a line Oil the CRT (only the first BO bytes of each record are in the display window). The first record of the file corresponds to the first I ine of the CRT on I y if tt,e CRT has not been Banhed Pllysical 57 58 59 60 61 [Jr iver- MACRO-80 3.44 09-Dec-Bl per-mitted to scroll to i t . Subttl page Constants & since the last clear Program Mover screen command was sent » "tl -0 t1) :J Q.. )( BallktHJ Physical Driver Constants 8- P,-oUfalll Movtlr 62 63 64 65 66 67 68 69 70 7I 72 73 74 75 76 MACRO-80 3.44 fOOO F033 f036 Monitr Xcrtlllv Xgetsl equ equ equ OfOOOh • lIIonit,-+33h lIIonitr+36h ;Base address of resident monitor ;Crt <-> Ram Move LDIR Simulator ;Get c1rlver select table address to hI ff3C ff3E Bava I I Eava i I equ equ Off3ch Off3eh ;Pointer to beginning of available memory ;Pointer to end of available memory 0005 005C bdos dfcb equ equ 5 5'ch fA80 0000 drvadr stack equ equ Ofa80h 0 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 \06 107 108 109 1 I0 III 112 113 114 115 116 W 09-0ec-81 ; add,-ess for Bank driver .<:UO 0000' 0100 18 5A 0102 0106 OIOA OIDE 0112 0116 OIIA 011 E 0122 0126 012A 012E 0132 0136 013A 013E 0142 0146 014A Ol4E 0152 0156 015A 43 6f 72 69 74 20 29 20 38 32 61 6C 6E 65 43 6f 75 74 20 43 70 6f 74 69 2U 54 6E 73 72 72 20 74 50 75 69 63 6f 60 6E 20 28 50 2f1 31 33 IA 015C 015F 0162 0163 0165 0166 0169 Ol6A CD 0308 3A 005C 87 20 30 f5 CD U3f8 f I OlbB 4f 3D 70 67 28 31 20 63 73 60 65 6f 72 6f 72 66 65 6f 62 20 61 20 44 39 79 68 43 39 42 6f 20 70 72 72 61 6E 61 65 64 20 6C 44 69 20 29 38 Aseg Org jr 100h loadit db 'Copyright (Cl db ioadit; ca II Id or jr push ca II pop dec Id 1982 Batcones Computer Corporation' Transferred to Public Domain req822 a, (dfcb) a <:,bnk us 9 af ckspac af a c,a - (PO) 1983' ,26 ;see i f machine is 820-11 :see if room for driver ~ MACRO-BO 3.44 Bdllkt".! PI.ysical 0/" i v t! f" COllstallts & Pf'U~1 dill Mover 117 lIB 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 13B 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 0259 FABO 09-Dee-B1 Id Id push pusl. Id Idir ld ea II pop push add add Id inc Id pop Id add pop Id inc Id Id jp hl,driver de,banked de bc bC,drvlen 01BF 0190 0192 21 11 05 C5 01 ED 26 CD C1 E5 09 09 36 23 36 El 11 19 01 7J 23 72 OE C3 0195 (J198 019A 11 0190 DE 09 C3 0005 bnkusg: Id Id jp de , bnklllsg c,9 bdos OHlD DIAl OlA5 0lA9 55 65 41 7B tll.klllSg: db 'Usage: BANK x:$' ds 200h-103h-($-loadit),-1 .phase Drvadr Subttl page Bank Driver 016e 016F 0172 0173 0174 0177 0179 0176 O17E o 17F 01BO 0181 0182 0184 0185 0187 0188 018B 018C 018D o JOE 01AC 0259 017F BO 00 F036 03 00 0026 OD 0005 73 3A 4E 3A 61 67 20 42 4B 20 24 h,O XGetsl bc hi hl,bc hi ,bc (h I) ,3· hi (h I) ,0 hi de,2*16+3*2 hi ,de de (h I) ,e hi (h I) ,d c,13 bdos driver": ; i nd i ca t e re9ister return ;get select table address )::. 0 0 ttl :J 0- >< U1 Banked Physical Bank Driver 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 20B 209 210 L 11 FA80 FA81 FA82 FA83 FA84 FA86 FA87 FA88 FA89 FA8A FA8B FAilC FA8D FA8E FA8F FA90 FA91 FA92 FA93 FA94 FA96 FA97 FA99 FA9B FA9C FA9D FA9E FAAO FAA2 FAA3 FAA4 FAA7 FAA9 FAAA FAAO FAAF FABO FAB2 FAB4 " FAB5 FAB7 FAB8 FAB9 FABP FACO FAe3 FAC4 FAC6 fAC7 FAC8 FACB FACC FACE Dr; MACRO-80 3.44 Vel" 7E 4F bankeej: L3 3C 28 51 L3 L3 56 23 L3 7E OF ~)F 23 23 7E 23 66 bF 06 00 7C FE CO 30 01 (J5 79 67 La 02 06 01 C5 B2 FA FAC8 FE 30 79 01 0080 3B 05 B7 20 05 DE 50 B7 28 01 EB F1 EP 73 FAC4 :n 0000 CO F033 :n 0000 bankl: bank2: banl<3 : bank4: bank5: stksav AF C9 11 FAPB OD 20 01 EB bank6: Id Id inc inc jr inc inc Id inc inc ld I-rca Id inc inc Id inc Id Id Id Id cp jr dec Id or jr ld pllsh or jp cp Id Id jr or jr Id or jr ex pop Id Id ca II Id equ xor ret Id dec jr ex 09-Dec-81 a, (I) I) c,a hI a z.,selbnk III hi d, (I) I) hI hi a, (I) I) e,a hi hi a, (h I) hi I), (h I) ;get driver op ;if select op ;set track ;set sector ;set transfer address 1,5 b,O a,h OcOh nC,bankl b a,c a z.,bank2 b,l bc d m,bank6 030h a.c bC. 128 c,bank3 a nz.bank4 c,80 a z,bank5 de,hl af (stksav) ,sp sp.stack Xcrtmv sp.O $-2 a de,Dil-ect c nZ,bank7 de,lll ;preset crtldir op ; if transfel- outside banked area i set ram->crt ;set read/write op ; if write ;set crt.->ram ;save direction op ;check directory track ; if di r"ectory operation ;set read/write switch ; if not within screen memory ;if read ;only write one line ;test read/write ; i f write ;set read ;get mover op to A ;use high stack ;move it to/from crt bank ;always succeeds ;set directory address ;if directory write (To Banl "0 "0 ttl :J a.. >< FACF FAD2 FAD4 FAD5 FA06 () 1 0080 ED BO F1 AF (9 FA07 FAOA C9 11 FB5B MACRO-80 3.44 bank7: selbnk: ld ldir pop xor ret 09-Dec-81 be,801l ;read or re-write directory af a ld ret hl,dph Subttl page Directory Sector, Opb & Oph l:> J J 1> :J :l.. K Balik ",(I PllYS i ca I 0, i v,,..' Oi r'ectory Secto, , Opt) & Oph 22::1 224 225 226 227 228 229 230 2::11 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 27:3 274 275 276 277 -....J \ MACRO-80 3,44 u'O FADn FADC FAEO FAE4 FAE5 FAE7 FAEB FAEF FAF3 FAF7 42 20 02 'IF 00 01 05 00 00 40 00 02 06 00 00 00 03 00 00 00 40 04 00 00 00 FAFB FAFC FBOO FB04 FB07 FBOB FBOF FB13 FBI7 00 4F 'IF 52 00 04 00 00 00 50 4E 4F 00 00 00 00 00 54 20 40 00 00 00 00 00 49 20 10 FBIB FBIC FB20 FB24 FB27 FB2B FB2F FB3::1 FB37 00 53 45 4D 00 07 00 00 00 43 'IE 45 00 08 00 00 00 52 20 40 00 00 00 00 00 FB3B FB3C FB40 FB44 FB47 FB4B FB4F F853 FB57 00 45 4E 52 01 09 00 11 15 58 44 41 00 OA DE 12 16 50 20 40 00 DB OF 13 17 FB5B FB5F fB63 FB67 0000 0000 onoo 0000 FB7F FB6B 0000 FB7B dpl1: FB6B FB60 FB70 FB74 fB78 FB7A, 0002 04 OF 01 0018 0003 n080 0000 fFF8 dpb: on 4F 4F 54 20 20 20 Direct; db de 00 00 00 00 45 20 18 00 00 00 00 41 20 80 DC 10 14 18 0 'BOOT 09-0ec-81 R' db db db db db db 'OM' 00,00,00,64 01,02,03,04 05,06,00,00 00,00,00,00 00,00,00,00 db 0 db 'OPTION db db db db db 00,00,00,16 04,00,00,00 00,00,00,00 00,00,00,00 00,00,00,00 db db 0 ' SCREEN db db db db db 0,0,0,24 07,08,00,00 00,00,00,00 00,00,00,00 00,00,00,00 dl) db 0 'EXPAND db (Ib db db db 01,OO,OO,80h 09,10,11,,12 13,14,15,16 17,18,19,20 21,22,23,24 dw 0,0,0,0 [iw dw dirbuf,dpb o ,a II DC dw db dw 2 4,15, I 24,3,128,0,-8 ;spt ;blkshf, blkmsk, nullmsk ;dsw ,di rm, a I I ocOI ,Chksi z, trk off db 0 ; 128 byte sector's ;Bank 0 Memory locations OOOOh-l fffh 2000h-2fffh ROM' ;Bank o ,lAemory locations 17ffh-lfffh MEM' ;Bank 0, Memory locations 3000h-3bffh ;Bank 0, Memory locations 4000h-5fffh 6000h-7fffh 8000h-9fffh aOOOh-bfffh RAM' MACRO-BO 3.44 Ballked PI~lysical [wiver Dir"ectur'y Secto,", Dpt) & Dpl\ 00 nil £19 200 201 2B2 2B3 284 285 » "U "U t1) ::J a.. X F676 f67F a I I oc: ds dirbut: ds 017F drvlen 4 120 09-Dec-Bl ;al location vector ;directory buffer . deplldse equ i-driver Sullttl page System Identification » "U "U lD ::J 0... >< lO Ballked Physical Olivel' System Identification 286 2B7 2BB 2B9 290 291 292 293 294 295 296 297 L9B 299 300 301 302 303 304 305 306 307 30B 309 310 311 312 313 314 315 316 317 31B 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 0308 030B 0300 030F 03E2 03E3 03E5 03E7 03E8 03E9 03EB 03EC 03EO 03FO 03F2 03F5 D3F8 03FC 03FF 0400 3A FE 20 2A 7E FE LO 23 7E FE C8 EI II DE CO C~ MACRO-80 3.44 FOOO C3 00 FOOl ,, Verify The machine this program is being run by Murphy or a Xerox B20-I1 ReqB22: Id cp jr Id Id cp jr inc Id cp ret pop Id Id call jp F3 05 DB Notii: 0434 09 0005 0000 09-0ec-Bl pm5g: a,(monitr) Oc3h nZ,notii hi, (monltr+l) a, (h 1 ) Of3h nZ,notii hI a, (h I) Odbh Z hI de,msg c,9 bdos 0 ;make certain system is an B20-1I ; stlOu I d be a jump instruction i f B20 ; i f not give error message ; fo II ow reload monitor jump ; if interrupts not disabled ;pltct. return address ; ; The pointer at Bava i I pOints to the start of free memory, Eavai I points to tl1e end of free memory. This test verifies that there is enough space for this program to fit in this un-allocated memory space. I f 50 the Eava i I pointer is updated to the start of the driver -1. If not an error message is sent to the console. Ckspac: Id Id or sbc jr Id Id sbc jr Id Id r'et Id jr 5B FF3C FABO 04D4 0407 040A 040C 040E 0411 0414 0415 041B ED LI B7 ED 38 2A II ED 38 21 22 C9 II IB 041A 041E 0422 0426 042A 042E 0432 46 20 6F 73 65 20 2E 72 60 72 70 20 75 24 65 65 79 61 69 73 65 60 20 63 6E 65 Nspace: db ' Free memory space in use.$' 0434 0438 043C 0440 54 6B 69 20 70 72 67 72 61 20 72 65 73 6F 60 71 Msg: 'This pr'ogram requires a Xerox B20-II Information Processor.$' 040L 52 11 FF3E FBFF 52 07 FABO FF3E 041A 06 nroom: db de,(bavail) hl,drvadr a hl,de ;get pointer to start of free address space ;start of driver c,nroom ;if drvadr < bava i 1 then no space hl,(eavail) ;get pointer to end of available space de,drvadrTdrvlen hi ,de c,nroolll ;if driver end > end of eavall then no space hi, drvadr ;else ,update end pointer (eavai I) ,hI de,nspace pmsg -' a Bdllke(j PlIy,;ical [J, i Vel" Sy,;tem IU"lltiticdliufI j41 342 343 344 345 346 347 j48 349 350 351 352 353 354 » -0 -0 I'D ::l a. X 0444 0448 044C 0450 0454 045U 045C 04£0 0464 0468 046C 75 69 73 20 58 65 78 20 jO 20 20 49 6f 72 74 69 20 50 63 65 6f 72 MACRO-EiO 3.44 72 61 72 38 49 6E 60 6f 72 73 2E 09-0ec-ElI 65 20 6f 32 49 66 61 6E 6f 73 24 Subttl end Symbol Table Banl\tHJ Physical SYllllj() I Tab I e (J,-iv8r- MACRO-BO 3.44 Macros; SYlllllols; FBlB ALLOC FAB4 BANK3 FACe BANK6 FF3C BAVAIL 0195 BNKUSG FB7F DIRBUF FI:l5B DPH 017F DRVLEN FOOD MONITR 0415 NROOM 03D8 REQ822 FAC4 STI(SAV No Fatal error(s) FA9C FAB7 FACF 0005 03F8 FADB 0259 FF3E 0434 041A FAD7 F033 BANKI BANK4 BANK7 BDOS CKSPAC DIRECT DRIVER EAVAIL MSG NSPACE SELBNK XCRTMV FAA2 FAB8 FA80 019D 005C FB6B FA80 015C 03EC 03FO 0000 F036 BANK2 BANK5 BANKED BNKMSG DFCB DPB DRVADR LOADIT NOTll PMSG STACK XGETSL 09-Dec-Bl ..... N l> "tJ "tJ I'D ::l a. X ALlOC BANKI BANK2 BANK3 BANK4 BANK5 BANK6 BAtlK7 BANI(ED BAVAIL BDOS BNKMSG BNKUSG CKSPAC DFCB DIRBUF DIRECT OPB DPH DRIVER DRVADR DRVlEN EAVAIl LOADlT MONITR MSG NOT! I NROOM NSPACE PMSG REQ822 SELBNK STACK STKSAV XCRTMV XGETSL 26~ 181 185 193 195 198 189 210 118 68# 71# 142 111 113 72# 268 20B 268 218 117 74# 121 69# B1 64# 303 293 318 326 30411 108 163 7511 201 6511 66# 270# 103# 187# 1~17 # 199# 200# 208# 212# 159# 314 140 146# 142# 314# 109 279# 225# 271# 266# 152# 153 282# 319 108# 65 337# 297 322 32911 327 291# 218# 202 :W511 203 124 144 282 315 320 324 151 66 302# 326# 305 320 323 291 294 P05ition encoded I--eyboard handler MACRO-SO 3.44 09-Dec-81 Tit Ie 1 2 3 4 5 6 Position encoded keyboard handler Position encoded keyboard handler for the B20-11 professional computer. Copyright , This is the stand alone rom addition to the Xerox 820-11 monitor. It is called once during monitor restart and at that time patches the monitor in ram to call the modified k/b,crt,Screenprlnt and printer routines. It then moves in its own SIGNON overlay and jumps into it. • i This SIGNON in addition to selecting the disk driver also moves into ram (in the spare driver area) trans laUon tables and code for k/b and printer routines (crt Is run out of rom). 17 18 19 20 21 22 23 24 25 26 is also a RX BOOT overlay which is selected instead of the Xerox one. This loads the national translation ta~les from disk and then Calls the Xerox BOOT. Ther~ . z80 27 28 29 30 31 16/B 1983 ,(Cl XEROX Corporation 7 8 9 10 11 12 13 14 15 16 & OOOU ver defl 013 subttl page Xerox ROM dependant equates ~ tv Positioll ellCo{j~d "eytJoal'd I)amll er Xel'ox ROM depel,dallt equates MACRO-80 3.44 09-0ec-81 3L 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66· 67 68 69 70 71 72 73 74 75 76 17 78 79 » "0 "0 tl) ::J a.. >< '- 80 8I 82 83 84 85 86 .. The following equates are dependant on the revision of the Xerox ROM These are compatible with Ver. 4.02 ; 1800 0800 FOOD FIEC FFIO FFI8 FFIA FC5D 0002 0018 0019 OOOA 0010 0012 F006 F009 F003 FOIB FOIE F024 F03C F03F f066 F06C f06C F06F F072 f075 f078 DI82 0196 0100 1078 n060 IICO fl67 FI8F F22F f232 F293 F339 FA62 FA95 FC3D rxl984 rOlllsiz 1II0nitr savstk ctcvec sysvec kbvec tca boffl boff2 sioff kboff fcrtof I crtcall const conin warm select home read config siordy idle mntrex I< ~ '- W Pusition encuded ".,ylloard handler Xerux ROM tiepe,.ddll t equates 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 130 139 140 141 142 F20E F319 F360 F470 F700 F800 FAll FF3C FF50 FF54 Ff5C FFAC FFB2 FFB3 FFB4 OOlD 001C 0005 0010 001E 0019 MACRO-OO 3.44 09-Dec-81 spact gold seltab fivdpll rigdpb tabled phytrk ava i I b intstk steprt linbuf cursor leadin attl-ill chrsav equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ . Port addressess sysctl syspio siodpb wd1797 kbdat ctcl equ equ equ equ equ equ x' f 20e' Of319h Of360h Of470h Of708h 'Of800h: Ofa llh, x'ff3c:' x'ff50! Off54h Ott5ch Otfach Oftb2h Offb3h Offb4h ldh lch 05h 10h leh x' 19' ;space for rx code ;bottom available ram memory ;tempory stack address ; addres's of attributes enabled flag ;ctcl port address Other Equates 0081 0001 0000 0001 0064 003C 0006 0008 0000 0001 007B 0061 0020 0000 OOFF 0004 0006 0001 0300 encntr stcntlrevO revl rev50 cnfgoff cnfbyte klllp romofs Ipkofs upper lower upascii zero setflg equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ . Equates c.tive c.sasi o. term sasidl equ equ equ equ x' 81 ' x' 01' x'OO' x' 0 1 ' 5*100-400 x'3c' x'06' x'08' x'08' x' 01' . z' + 1 . a' 'a' -' A' 0 x' f t ' ;enable ctc command ;stop ctc command ;4.00 Revision Level ; 4.01 Revision Level ;5.00 Revision level ;monitor configuration offset ;configuration subroutine byte offset ;configuration bit id for LPKYBD ;PROMPT offset between 4.02 & 4.01 monitor ;additonal sector required for table storage ;upper I imi t for alpha test ; lower Ii mi t for alpha test ;set to upper case ASCII mask izera ;set flag 04 06 0001h 300h Internal equates OU lD ODIE 0004 0005 rtalll rtab2 ftabl ftab2 equ equ equ equ 29 30 04 05 .. ;rigid disk tables sector 1 2 ;floppy 1 2 . '~ UI' enc o (JtH.I I- eytJuanj lIalid I e I Xel"OX ROM dependant equates f'os 1 t i 143 144 145 146 147 14B 149 150 151 152 153 154 155 156 0006 0000 0001 0002 0003 0004 OOIA 0018 0004 0000 OOOA MACRO-!.lO 3.44 ftab3 lang I< <- Pusition enc orJell heyUua,'d "and I e,RXI984 Resta,"t 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 In 173 /174 175 176 177 178 179 100 181 182 183 184 1!:l5 106 187 10!:l 189 190 191 192 193 194 195 196 197 190 199 200 201 202 203 204 205 206 207 208 209 210 211 "- 111 0000' MACRO-80 3,44 09-Dec-81 start: .phase ; i rx1984 RX1984 En t roy here from Xerox moni tor- bfore entering SIGNON. Input:hi de bc 1800 1!:l01 1802 1803 1806 1809 180A 180C 180F 1811 1814 1817 1819 1818 181 E 1821 1824 1825 1827 182B 102E 1830 1833 C5 05 E5 21 CO 7C FE CA FE 02 21 FE 28 21 0000 F03C 00 187E 64 187E 181A 01 03 1829 11 F06C 01 OOOF F5 EO 80 00 2A F030 00 7E 06 F6 00 00 77 06 F1 push push push Id ca II Id cp jp cp jp Id cp jr Id tbxfer: Id Id push Idir Id ld or Id pop ,, \ 1!:l34 1036 ll130 103C 1840 1844 1048 184A 184: 1850 1854 185!:l 00 DO DO DO DO DO FE 28 OD DO DO DO El E5 36 36 36 36 01 10 36 36 36 36 02 03 10 19 45' 06' 45' 06' ., bc de hi hl,O config a,h revO z,noload rev50 nC,noload hl,rvltbl revl z,tbxfer hl,rv2tbl de,mntrex bC,jtblsz af ;oet monitor configuration ;skip if below 4.01 ;s~ip if 5.00 or above ;4.01 spring board table ;skip if 4.01 ;4.02+ spring board table ,save monitor level ;append monitor table with Ipkybd jmp vectors j x , (1110 nit r + c n f go f f + 1 ) ;set address at monitor config: a,(ix+cnfbyte) kblp ;set low profile bit flag (ix+cnfbyte),a af ;recover monitor level Alter' BOOT commnd vectors pop push Id ILl ILl Id cp jr Id Id ILl Id 02 3~' 03 06' 18 30' 19 06' - cmdtab - se I tab - cloc ix ;cmdtab address ix (ix+boff!) ,low rxboot ;assume 4.01 monitor (ix+boffl+l),high rxboot (ix+boff2), low rxboot (ix+boff2+1),high rxboot rev1 ;monitor check z,soout. ;skip if 4.01 monitor (ix+boffl), low (rxboot+romofs) ;4.02+ monitor boot over addr (ix+boffl+1),high (rxboot+romofs) (ix+boff2), low (rxboot+romofs) (ix+boff2+1),high ( ,-xboot+romofs) A Iter keyboard interrupt service .n Position t:Hlcodtd IH-,ylloanJ 1"lan(11 RXI984 Resta,"t 2 I2 2 I :j 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 » u U to :l 0... >< '- 185C 1860 1064 IU60 lOGe 1860 106E 186f 1870 1073 1876 1879 1876 187E 107F 1800 1801 1803 1804 2A DD :16 [JD :36 DO :36 O[) E1 DI C1 CI 21 II l11 ED C3 E1 01 C1 0552' fC5D OOEB BO FC50 ::iE FF A7 C9 fFIA OA CD DB 6C OC fO tHO MACRO-80 3.44 09-Dec-OI Soou t : Id Id Id Id ,, Move iX,(kbvec) ;k/b int vector (ix+kboff),Ocdh ;CALL operation (ix+kboff+I), low kybdlp (ix+kboff+2),high kybdlp in RX SIGNON to 0/1 pop pop pop pop Id Id Id Idir jp noload: pop pop pop Id and ret subt t I page III de bc bc hi "",,sign de,tca bC,rxsigl tca hi de bc a, x 'f f ' a area and execute i t ,throw away return address ;roln address ; 0/ I area ; length ,GO SIGN ON ;wrong monitor ; load si9non from monitor ROM resident CRT D,'iver Position encoded heylJOard IlaneJler ROM ,'esiLiellt ern 0, iver 237 230 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 250 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 n5 276 277 278 279 280 201 202 283 284 285 286 207 200 289 290 291 MACkO-OLl 3.44 09-Dee-Ol Crtdvr - Crt Driver RX Addition. 1885 1080 100B IBoe 100F 1092 1093 1096 1099 109A 109B 1090 10AO IOA3 2A 3A 77 32 3A B7 C2 ~jA FFAC FFB4 Rxer·t; F319 FFB2 0196 FOE3 AI 4F FE OA CO C3 20 0196 IOA6 0102 Id Id Id ILl Id or jp Id and Id cp jp ca II jp hi, (cursor) a,(chrsav) (h I) ,a (gold),a a,(leadin) a nZ,crtd2 a,(mask) c c ,a c,crtd2 fonchk crtdl ;set cursor address ;retrieve character under cursor ;replace character under cursor ;bury balcones gold ;set leadin state ;if processing escape sequence ;get keyboard mask ;if control code :do font translation :go to XR code Subroutine fonchk does the font .translation for national character sets. entry: C contains the character exit: C contains the translation 10Ab IOA7 10AO 10AA 10AB 10AE lOAF lOBI IOB4 18B7 IOB9 10BB 10BC 10UE 10C I IOC4 IOC6 10C7 10CA 10CB 10CC lOCO 10CE E5 79 Eb 00 F5 21 FFB3 5b OA DIDO F339 52 :W OF 79 CB BF 21 F960 Lli LlOOO ED BI 4F CC 10CF Fonchl,: push Id and' pusb Id or 20 II '2A ED f 1 BI 4F EI C9 jr Id Id sbc jr fon I; f01l2; Id res Id Id cpir Id ca II pop or Id pop ret hi a,c 10000000b af h'l,attrib (h I ) z,fonl de,grpad hi, (prvatt') hi ,de z,fon2 a,e 7,a hl,fontbl bC,fontsz e,a z,fntran af c c,a hi :save cursor posn. ;get char in a :preserve attribute bit ;point to attribute enabled flag ;test if set ;no attribute bit - go do translation ;check if graphics mode ;current attribute mode :grahics mode - no translate ;here to do translate ;clear attribute bit ;address of exceptions table ;size of exceptions tabl~ :search for char. in exceptions ;restore char to c ; if found do translation ;retrieve attribute bit ;or it in ;retrieve cursor sir fntran translates font characters entry: (HL) - address+1 of char to be translated in fontbl exit: (c) - translated character 10CF 1000 1003 2B 01 0000 09 Fntran: dec Id add hI be,font z 1\ I ,bc back to byte to be translated size of table add to address of char. to be translated '-- 00 Pus it i un enL:ud .... h',yllUar'lJ hand I er ROM ,'esident ern Driver 292 293 294 295 296 297 298 .299 300 301 302 303 304 305 306 307 300 309 310 311 312 313 314 315 :J16 317 318 319 320 321 322 323 324 ~j25 326 327 32B 329 3;W » u u it) ::l a... >< '- 331 332 333 334 335 336 337 338, 339 340 341 342 343 344 345 346 347 1804 1805 MACRO-BO 3.44 09-0ec-81 ld ret 4E C9 c, (h I) ;get translated value This routine is called from the Xerox screenprint handler. It picks up the character to be printed from the crt ram, does a reverse font tr3nslate,replaces any control codes with a space, does a printer translate and outputs the character to the printer. entry:- HL - ~ddress of byte to be printed 1806 IBD7 1000 1809 E5 C5 7E 1006 lODE 18EI 18E3 21 111 ED 20 IOE5 18E8 18E9 18E::6 18EC 18Ee 18EE 18FO 18F2 IOF5 01 0000 37 EO 42 7E lBF7 18F9 lBFB 10FC lBFE 1901 1902 1904 1907 1908 1909 CB 20 4F ]E CD 79 CB CD CB BF scrpr't: push push ld res Id Id cpir F960 0000 61 07 jr Id scf sbc Id hI bc a, (h I) 7,a ;byte for printing ;ignore attribute bit ;do reverse font translate hl,fontbl+fontsz ;point to translates bC,fontsz ;search for char. nZ,scrOl ;not in table ;in table convert to media code bC,fontsz ;uffset back to media code hl,bc a, (h I) scrO 1: FE 20 ClO 02 :~E 20 CD 1966 20 00 cp jr scr02: jr 7F 09 bit jr lB 1959 6F 1959 l:1 EI C3 F232 Id call scr03: Id Id ca II ld res call pop pop jp 20h nc, sc,'02 a,2011 potran nZ,scr03 7,a z,scr03 c,a a,esc posout a,c 7,a posout bc hI sprnt2 ;points to media code ;here with media code ;is it a control code ;no ;yes. substitute a space ;do printer translation ;no translation done. go output char. ;translation done.check escape bit ;escape bit ;not set go output char ;set. save char. ;outplJt an escape ;output routine ;restore char. ;clear escape bit ;print cllar ;return to Xerox code' Exception print driver - ROM entry point 19UC 1900 190E 1911 1912 1913 1914 1915 (5 C9 Rmposend:pllsh push ca II pop pop ret 4F 3A F9A6 Po send - dea I s with cila,-ac t er trans I at i on and escape sequences for the diablo 630 input--- a contains char for output to channel b Posend: I d c,a Id a,(escsq) ;in an escape sequence? E5 CD 1914 E1 CI be hI posend hI bc POo>itioll e"cuLied keyboard handler ROM resident CRT Driver 348 349 350 351 352 :353 354 355 356 :l57 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 :375 376 377 37El 379 :380 381 382 383 384 385 386 387 38B 3B9 390 391 392 393 394 395 396 397 39B 399 400 401 402 403 191B 1919 191B 191C 191 E 192() 1923 1926 1927 1927 192A 192C 192E 1930 1931 1933 19:36 1937 1939 1939 1939 193C 193D 193D 193F 1941 1942 1945 1947 1948 1946 194E 1950 1952 1954 1955 195B 1959 195A 195D 1960 1962 1963 1965 B7 20 79 FE 20 CD 32 MACRO-BO 3.44 22 IB 07 1959 F9A6 (9 09-0ec-BI or jr ld cp jr ca II Id ret a nz,pos04 a,c esc nz,posOl posout (escsq),a call jr bi t jr Id Id ca II Id res potran nZ,pos03 7,a z,pos02 c,a a,esc posout a,c 7,a posOI ; CD 20 CB 28 4F 3E CD 79 CB 1966 00 7F 09 IB 1959 BF pos02; pos03; CD 1959 ca I I posout ret L9 pos04; FE FF 20 06 19 CD lB 79 CD CD 2fl :lE lB AF 32 C9 47 CD CC 21l 7B OJ C9 1959 00 1959 19B6 04 FF 01 F9A6 F03F F066 FB 05 cp jr Id ca II jr pos05; Id ca II ca II jr Id jr pos06; xor pos07; Id ret posout; Id sloxl: ca II ca.!1 jr Id' out ret Offh nz,pos05 :yes ;escape char? ;no ;output char ;set escape sequence flag :not escape char ;dO translation if neccessary ;wasn't neccessary ;escape marker set? ;no ;output escape char ;clear escape marker ;escape marker not set ;no translation ;output char ;escape sequence : 3nj byte? ;no 2nd ale posout pos06 a,c posout poesc nz,pos06 a,Offh pos07 a (escsq) ,a :output char :2nd byte of ~scape sequence :output byte :search escape table for char :not present---2 byte sequence :set sequence for 3rd byte :end of 2 byte sequence :t0991e escape sequence flag b,a siordy z, id I e z,sioxl a,b (Siodpbl,a Potran - dues printer translation if neccessary and returns a flag to indicate if translation has been done. input- a char for translaatlon Olltput- a Z 1966 1969 196C 1911t: 21 F97A III 0016 ED Bl CO Potran: Id Id cpir ret hi ,prntbl bc ,,Prntsz nz (trans I ated) cl1ar set if char is translated (otherwise reset) ':print exceptions table' :size of table :no matcl. - don't translate ..... .... 0 }> "0 "0 (J) ::J 0... X '- Positioll encotl"U i·,eylloar-u 11aflLII er' ROM ."es l(Jellt CHr Or' i ver' 404 405 406 407 400 409 410 411 412 413 414 415 416 417 418 419 420 421 422 42:1 424 425 426 427 420 429 4:10 431 432 433 434 435 436 437 430 439 440 441 442 443 444 445 446 447 440 449 450 451 452 453 454 455 456 457 450 459 196f 197U 1973 1974 1975 1976 1970 1979 197A 1970 197f 1982 19U3, 1904 1905 MACRO-OO 3.44 :W () 1 0016 09 7E B7 20 OB 23 7E 1959 3E 00 CD 1959 23 AF 7E C9 Cll 1986 1909 190C 19UE 21 190f 01 0007 EO 81 C9 190f 1993 0007 119 OB OC If ptrOI: IE 09-Dec-Ol dec Itl add Id or jr hi oc,prntsz til , bc a, (h I) a nz,ptrOI inc Id ca II Id ca II inc xor ld ret hi a, (h I) posout a,OOl1 posout ,, Poesc Poesc: Id Id cpir ret '" a a, (h I) - ;tl-anslate ;offset to translation ;translation byte ;if zel~o • requires overstriking sequence ;non-zero - go output char ;zero - use next 2 bytes In table as sequence ;first byte ;oackspace ;second byte i set z for return flag ;get translation sear'ches the escape table for a match with the char passed ill a. if found returns with z set otherwise z is clear til, pesctb bc,esctsz ;table of escape sequences ii size of table ; 63 9 daisy printer pescttl: defb 09h,Obh,Och,1eh, Ith, 16n,Ilh esctsz equ $-lJesctb ,, Function:- to deal with characters form a position encoded keylloard. input:A cllcll-acter read from PIO CMO/STATUS byte bit 7 -eMD/STATUS byte if set bi t 6 -upstroke flag bit 5 -y axis negative (mouse) bit 4 -x axis negative (mouse) bit 3 -mouse active bi t 2 -ctrl key station active bit I -shift key station active bi t 0 -lock key station active First data byte bit 7 -Always r'eset blts(6-0} -key station or x mouse displacement Second mouse data byte bi t 7 -Always reset oits(6-0) -y mouse displacement 16 11 output:- 1 ) Carry set - - command byte or sequence error Carry clear -- translated character returned in A 2) 1996 1997 1990 2F D5 Hi 00 Pekl1d I: cpl push Id de d,zero ; cOlllpl ement keyboard byte ;sav~ registers ;get flags Position eneodeH key~oard handler HOM resilient CRT D,-Iver 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 470 479 400 401 482 403 484 485 4116 487 4118 409 490 491 492 493 494 495 496 497 490 499 500 501 502 503 504 505 506 507 500 509 510 511 512 513 514 515 199A 199C 199E 19AO 19AO 19AI 19A4 19A6 19AO 19AB 19AD 19BO 19BI 19B2 19B5 19B6 19B9 19BB 19BD 19BF 19C2 19C4 19C6 19C9 19[8 19CE 19DI 19D4 19D7 19D8 19£)9 CB 7F 2!J 17 18 01 7A 32 CB 20 21 CB CD 37 Dl C3 5F 21 CB 20 CB C2 CB 20 CD 20 Cll F9A7 5F 05 F95D OE IA66 F9B7 F9A 7 7E FO 5E IA7D 76 20 19DB D5 19FF IA23 IA3D F9A 7 CD CD 21 72 A7 10 D6 MACRO-1I0 3.44 09-Dee-8J bit jr jr noellar equ peknoe2:ld el1ldb: Id bit jr Id res peknoc: ca I I peknocl:scf pekex: pop jp kypos: Id Id bi t jr bit jp bit jr ca II jr ca II call call charout:ld Id and jr D; 19DB 190C 19DF 19E2 19E4 19E5 E5 2 I F953 UI U006 ED BI EI C9 ;command byte? ;sklp to position byte handler ,skip to command byte handler $ <+I.) u,(lx+2) mice2 (ix+5),1 (ix+6},h i x peknocl 1,(ix+7) h,(ix+8} a,e yneg,b micel (ix+x'b'),e (ix+x'c'),d e,(lx+3) d,(ix+4} mice2 (ix+7),1 (lx+B),11 h I ,illS tb I msmov, (hi) mintrp, (hi) z,micexl a, (i' x) i x cl1arou t test yin. mouse byte flag skip if y axis delta fetch current x position ;save unsigned mouse delta byte ;test polarity of x delta ;add delta & do min value check ;save signed mouse delta word ;fetch lIIax position value ;do max value check ;save position ;restore regiser ireturn to wait for y mouse byte ;fetch current y position isave unsigned mouse delta byte ;test polarity of y delta ;add delta & do min value check ;save signed mouse delta word ;fetch max position value ;do max value check ;save position ;update mouse status ;set the mouse update flag :test for interrupt mode ;bye bye if polling mode ;user interrupt byte ;restore regiser :bye bye • Tilis ,'outine adds the delta to either the x or y position and does minimum ~osltlon check input e= mouse delta (absolute) zero set if positive mouse delta reset if negative mouse delta 723 724 72B 09-Dec-BI IAEB IAEO IAEF IAFI IAF3 IAF4 IAF5 IAF7 IAFB IAF9 IAFA IAFB :!Il D4 It) DD 10 07 Hi FF 7B 2F Cll DI ~) f 19 7C A7 FO : Micel: output IlI~ j,' IlZ ,lIIice II u,zero lIIicel2 d,-I a,e Id jr IIIlce11: Id Id cpl ade! Id rrrlcel2: add Id and ret update position ;skip if delta negative :set msb positive ;set msb negative :recover delta ;2's complement a,l e,a 111 • de a,h ;put negative value back iadd delta to mouse position ;get msb d p ;skip if msb is positive .... en f>ositioll enco(Jcd ROM resilient CR r 740 741 142 743 744 745 146 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 162 763 764 165 766 767 76U 769 170 » -0 -0 ro a.. ::J X '- 771 -'-'2 773 714 715 776 777 778 779 lUn 7BI 782 78:.1 7U4 705 786 7B7 7BB 189 7!J0 791 792 793 194 795 IAFC IAfF I~ eytH)drd lJ, i ver- hanlll e ,- MAClW-UIJ 3.44 09--0",c--81 III ret 2 I 0000 C9 hl,zero ;s~t to minimum boundary This routine does a maximum x or y position <;:heck input hl= x or y position x or y max value de= IBOO IBOI IB02 IB04 1805 IB06 IB08 IB09 IBOC IBOE IBID IBI2 IBI4 IBI6 IBI9 Mice2: 7A BC 38 04 7B BO 30 01 EB 3A CB 2B CB 18 CB 32 C9 F950 4F 04 8F 02 CF F950 C3 C3 C3 C3 IBIA IBID IB20 IB23 IB26 UflOF f9AF fl67 FIBf fC30 [:.I fA95 IB29 IB2C IB2f IB32 IB35 [3 F9Af C3 f16] C3 FIBF C:.I fC45 Ci fA!JO mice21: mice22: mice23: mice24: (,5 1839 IB3A IB3B IBJE 1841 1844 IB46 lB47 IB4U IB49 D5 E5 21 U34A' II FBOO IJ I UI59 ED fJO E1 DI CI C9 a = IrJ cp j ,Id cp jr ex Id bit jr res jr set Id ret a,d h c,mice21 a,e I nC,mice22 de,hl a, (ms tb I ) xY,a z,mice23 xY,a mice24 xY,a (illS tb I ) ,a IIlstbl illl 5 b position test ;skip i f IIlsb too big ; Isb position test ;skip i f Isb is not too big ;force maximulll I lmi t .mouse table ;complement xy flag ;update table ,, Jump table for keyboard translator and interrupt handler. Edt points anll monitor adjustment points for the SIGNON overlay linll boot overlay Rvltbl: jp jp jp jp jp equ Ipkybll mkey2 IlIkey5 mpnext mpnutO $-rvltbl ;4.01 monitor Ipkybd jump table jp jp jp jp jp Ipkybd IlIkey2 mkey5 IIIpnext T rolllots mprmtO+romots ;4.02 monitor Ipkybd jump table jtblsz 1B::!fJ output rv2tbl: .. The keyboar-ll tables ar-e restored to the original default values that a,-e sto,-ed in rom Movtbl: Pllsh push push Id Id Id Idir pop pop pop ret bc rle III II I , t-ab I es lie, tabl.HJ be, tab I ex hi de be » u Position enco(Ju(j l<-eylJOanj liarHller MACRO-SO 3.44 09-Dec-81 ROM ,-esidellt CRT DI ivel- U tD ::l 0- x L- ..... L- -...J 796 797 798 799 .dephase subttl RAM resident page (Tables) ...... ;):) » U U It) :J a.. x L- Pus i t i UII i:HlCtHJc(J h '" yllUd' U 11allU lee RIll,1 cesiuent ('1,,1, I <',,) 8110 BOI 80;! 803 804 !:lO5 B06 807 !:l0!:l B09 BIU 011 BI2 BI3 BI4 815 !:l16 BI7 018 019 B20 .021 Bn 823 824 U25 026 B27 82B B29 830 831 832 U:B B34 035 B36 8:17 838 B39 B4D' 841 042 843 B44 045 846 847 B4B 1:149 850 851 852 053 854 O:j4A' MACRO-'UO 3.44 tables; un Il) \ FBnO F804 FBDB F80C fBln' f814 F818 FBIC FB20 F824 F828 F02C f030 F034 f03U F83C F840 fB44 f840 f84C F850 F054 F858 F05C f860 f864 ou 18 31 :3 :3 34 35 37 38 39 20 3D DB 71 77 65 74 79 75 of 70 56 OD EE 61 04 66 67 loA 68 6C 27 OA EC 7A 78 63 6;! 6E 60 2E 2F ED Ef 20 E8 f2 F3 F4 F6 F7 f8 FA F8 FC 38 39 2C 35 36 80 :12 33· 30 82 84 83 8 I E6 FO 2!:l 20 2A FO 18 OE AI) A2 A4 32 36 30 09 72 69 5D 73 68 36 2E 76 2C IE F1 F5 f9 37 34 31 E7 80 7f 2F 8F 2:J :!l-l 5F 51 !:i4 41' tiD 44 .ciA 22 ~-)A 42 :lE EF F:! F6 FA IB ;!4 2A 28 57 59 50 EE 46 48 OA 58 "IE 3F 20 F3 f7 F8 21 25 28 08 45 55 7B 41 47 4C EC 43 4D ED EB F4 fB Fe 40 5E 29 09 52 49 70 53 48 3A 2E 56 3C IE FI F5 1'9 37 tabled . ,'ad; x 16 iram addcess kill unsl1ifted table Tab I: defb 00h,lbh,31h,3211,33h,34h,35h.36h ;nul,ese.I.2.3.4.5,6 defb 3711, 3Bh, 3911,3011. 2dl1, ;7.B,9,O,-,=,bs,tab defll 7111,77h,6511,7211.7411,7911,75h,69h iq,w,e,r,t,y,u,i defb 6fl., 7011, 5ul1, 5dll, Odll, Dee, 6111,7311 ;o.p,l,J,er,letrl,a,s defb 6411, 66h, 6711. 6UI1, 6all, 6bl1, 6eh, 3bh ;d,f,9,h,j,k.l,; (jefl) 2711, Oal1, Dec, 2ell, 7all. 78h, 63h, 7611 ; ',If,lshift, .,z,x,c,v deft] 6211, 6ell, 6dh, 2cll, 2ell, 2fh, Oed. 1 eh ;b,n,m, ••. ,I,rshift,help defb Oef,20h,Oeb,Ofl,Of2,Of3,Of4,Of5 ;retrl,sp,fl,f2,f3,f4,f5 defb Of6,Of7,OfB,Of9,Ofa,Ofb,Ofe,37h ;f6,f7.fB,f9,fIO,fll,fI2,7 defll 3Uh,39h;2ch,34h,3511,36h,Oud,31h ;B,9" defu 32h, 33h, 3011, Oe7, 8211, 84h, 83h, BOIl ;2.3.0,next,darr,larr,rarr.h defu 81I1,Oe6,Ofd,7fh.2bh,2dh.2ah,2fl1 iuarr,prev,acc,del ,+,-,rnul ,d defb Of 0, 18n,Beh,Bfh.OaO,Oa2.0a4 ;ins,ean,mswl,msw2,rxl,rx2,r ; 1111 ;rom add cess .phase ; ; , fU!)7 F8lS8 FB6f f073 fU77 F07B FIJ7F fBO:3 F8B7 FBBB F8BF FB9:l F!:l97 F898 F89F F8AJ FOA7 F8AB 09-0ec-81 . Shtab: 3d~I, 0811, 09h ,4,5,6.=enter, 1 kill sllifted detll nOh,1bh,2111,40ll,23h,2411,25h,5eh ;nul,ese,! .@,#,$,%," detu 26h,2al1,28h,29h,5fh,2bh,08h,09h ; &, defll 5111,5711,4511,521., 54h, 591.,5511,4911 ;Q,W,E,R,T,V,U,I defb 4th, 5011, 7bll, 7dl.,Ddh ,Dee ,41h ,53h ;O,P,{,l,er,lertl,A,S defb .44h, 461',4 7h, 4811, 4all ,4bh, 4Ch, 3ah ;D,F,G,H.J,K,L, : defu 221'1, Oall, Oec , 2et., 5ah, 5811,4311, 56h ; .. , If, I sh 1ft, . ,Z, X, C, V defb 42h,4eh,4dh,3ch,3eh,3th,Oed,Ieh ;B,N,M,<,>,?,rshift.help defb Det,20h,Oeb,Dfl,Of2,Ut3,Of4,Of5 ;retrl ,sp, loek,fl,f2,f3,f4,f defb Df6,Of7,OfB,Of9,Ofa,Ofb,Ofc,37h ;f6.f7,fB,f9,fIO,fll,fI2,7 *,(,) , .+,bs,tab ~ u u roj a.. )( L- Po~itio'l RAM ellLuded h..,yIJOar·LI IlanLlI". cesident (ldtdes) 855 056 057 050 059 060 061 062 Ob3 064 065 866 067 060 B69 fl70 071 072 073 074 fl75 076 077 070 079 000 BOI 002 003. 004 OU5 006 007 000 009 090 091 092 093 094 fl95 fl96 fl97 fl90 fl99 900 901 902 903 904 905 906 907 9no 909 91n FBAF FOB3 FOB7 FOBB FOBF FOC3 FOC7 FOCB 3U 35 32 U2 01 2B FO Al 39 36 33 04 E6 20 10 A3 2C BD 3U 03 FD 2A OE A5 MACRO-OO 3.44 34 31 E7 00 7F 2F OF 09-Dec-01 defb 30h,39h,2ch,34h,35h,36h,Obd,31h ;0,9" defb 3211,33h,30h,Oe7,02h,04h,03h,OOh ,2,3,O,next,darr,Iarr,rarr,h defb 0lh,Oe6,Ofd,7fh,2bh,2dh,2ah,2fh ,uarr,prev,acc,del,+,-,mul,d defb Of 0, 10h,8eh,8fh,Oal,Oa3,Oa5 ,ihs,ean,mswl,msw2,rxl,rx2,r ,4,5,6,=enter,1 k/b coded , FBCE FOD2 FOD6 FODA FODE FOE2 FOE6 FOEA FOEE FOF2 FOF6 FOFA FOFE F902 F906 F90A F90E F912 F916 F91A F91E F922 F926 F92A F92E F932 00 93 97 IF 1I 14 OF OD 04 OA 60 IA 02 7C EF D2 06 DA BO B5 82 112 01 AB DO CO 9B 94 90 9A 17 19 10 EE 06 DB OA 10 DE 5C 00 D3 07 DB B9 B6 B3 04 C6 AD DE C9 91 92 95 96 99 90 00 09 05 12 15 09 lB 10 01 13 07 DO DC 7E EC AE 03 16 ODIC ED 9E EB 01 04 05 DO 09 DC B7 AC B4 FE Bl BO C7 03 IE DO FF AA AF OE OF CA Ctltab: OUCA F935 F930 0003 F93B F93C F93D F93E F93F 01F4 OU3F F940 F944 F947 F94B F94F UO 00 00 no 00 00 :IF LID 00 2F 7B 03 ED 00h,9bh,91h,92h,93h,94h,95h,96h ,nul,esc,1,2,3,4,5,6 defb 97h, 90h, 9911, 90h, I fh, 9ah, 08h, 09h ,7,O,9,O,-,=,bs,tab defb 1111, 17h,0511, 12h, 14h, 19h, 15h,09h iq,w,e,r,t,y.u,i defb Ofh,10h,1bh,1dh,Odh,Oee,01h,13h ,o,p,l,l,cr,lctrl,a,s defb 04h,06h,07h,OOh,Oah,Obh,OCh,7eh ,d,f,g,I1,J,k,I,- defb 60h,08a,Oec,Oae,1ah,I8h,03h,I611 ,',If,1sh1ft" defb 02h,Oeh,Odh,1ch,7ch,5ch,Oed,geh ,b,n,m" defb Oef ,0011, Oeb, Od I, Or12, Od3, Od4, Od5 ,retrl,sp,lock,fl,f2,f3,f4,f deft) Od6,Od7,Od8,Od9,Oda,Odb,OdC,Ob7 ,f6,f7,fO,f9,fl0,fl1.fI2,7 eJefb Ob8,Ob9,Oac,Ob4,Ob5,Ob6,Ofe,Obl ,0,9" defb Ob2,Ob3,ObO,Oc7,~2h,04h,03h,leh ,2,3,O,next,darr,larr,rarr,h defb 01h,Oc6,Odd,Off,Oab,Oad,Oaa,Oaf ,uarr,prev,acc,del,+,-,mul,d defb OdO,Ode,Oeh,8fh,Oc8,Oc9,Oca ,ins,can,mswl,msw2,rxl,rx2,r ,radix 10 captab: defb cptex: defb cptbsz equ sl1ftlck: defb tick: defb defb tock: defb deft} hlfsec equ tenths equ ()O F4 01 UO OA 2D 2E ;lD 50 01 02 EO EO defb 20 7F 04 EO r'ptbl: r-ptex: defb deft;) defb defb defb 0,0,0 0,0,0 ($-captab)/2 o low hlfsec high hlfsec low tenths 11 i 911 ten tllS 500 63 ,I ,Z,S,c,V ,\,rshift,help ,4,5,6,=enter,1 ;table of exceptions requiring shifting for ;ca~s lock key.(3 excepts then 3 translates) ;size of table ;if set, locks all keys to shift table i f lock set ;Isb - repeat char speed i JUsb ; Isb ;l\Isb ,0,5 second count ,16 chars/sec x' 08' , x 'Oa' , x 'Od' , " ' 20' x'2d' ,x'2e' ,x'2f' "'3d',x'50',x'78',,,'7f' x'OI' ,x'02' ,x'83' ,x'04' x ' eO' , x ' eO' , x 'eO' , x 'eO' ;bs,lf,cr,sp ;- t· • / i-,X,x,del iueur,dcur,reur. leur ,16 TBD repeat keys ..... N o Position encoded ~~yboard handler RAM resident (Tallies) 911 912 913 914 915 916 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 9::J5 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 » -0 -0 m :J 0X ..... 960 961 962 963 964 965 966 cntrp 0013 '917 F953 F957 F958 0006 0159 ID 2A 36 38 3A EO F959 F95B 0002 F95D 0007 EO EO EO EO 00 equ $-nptbl x ' I d' , x ' 2a' , x '36' , x '30' , x '3a' ;lctr, lshft,rshft,rctr, lck ctrlex: db cntctr equ tablex equ x'eO' $-ctrltb $-tabl ; 19 T6D additional key stations illS III 0 V IIIsptr: ktabsz 0000 09-0ec-:81 c t r It b: db ups: upsx: upssz mstbl: IIIsflg rnintrp strkup xy OOOb 0003 0001 0000 F95E 0160 MACRO-OO 3.44 (lefb defb equ defb equ equ equ equ equ defw equ x' eO' ,x' eO' x' eO' ,x' eO' ($-ups)/2 o 7 6 3 I o o $-tabl ;~pstroke exception key stations ;upstroke char or code translations ; 5 i z,e ;lIIouse table ;lIIouse translator enabled if set ;user interrupt with Illbyte else user polls ;upstroke user enable flag ;set for x delta else y delta ;Illouse table contains new data ;user address containing the following table ;size of k/b tables Font translation table. first the exception codes , \ F960 F964 F961J F96C :!3 3C 3E 40 56 5C 50 5E 60 76 7C 7D 7E Fontbl: defb defb 23h,3cn,3eh,40h,5bh,5ch,5dh,5eh 60h,7bh,7ch,7dh,7eh ;,' , (, I , ) ,- Now their translations F9bO F971 F975 F979 DODD L:j 3C 3E 40 56 5C 50 5E . bO 76 7C 70 7E fontsz detb 23h,3ch,3eh,40h,5bh,5ch,5dh,5eh defb 60h,7bh,7ch,7dh,7eh equ ($-fontbl)/2 ;size of font tables Printer translation table first the exception codes F97A F97t F902 F986 F98A F98E LI 2C 40 5E 70 FF 23 2E 56 60 7E FF LA 3C 5C 76 FF 26 3E 50 7C FF Prntbl: defb 2lh,23h,2ah,2bh,2ch,2eh,3ch,3eh ;! defb 40h,5bh.,5ch,5dn,5eh,60h,7bh,7ch ;@,l.\,I.J\,',LI defb 7dh,7eh,x'ff' ,x'ff' ,x'ff' ,x'ff' ;l,-,TBD,TBD,TBD,T6D Now the translations F99lJ F994 F991J F99( F9AO F9A4 0016 ..' I 23 2A 26 :!C 2E 3C 3E 40 56 5C 50 ~)E 60 76 7C 70 7E FF FF FF FF pr-ntsz defb 2Ih,23h,2ah,2bh,2ch,2eh,3ch,3sh defb 40h,5bh,5ch,5dh,5eh,60h,7bh,7ch defb 7dl1, 7eh,x'ff' ,x'ff' ,x'ff' ,x'ff' equ ($-prntbl)/2 ;size of printer table .#.*.+" I· ,<,> Pos i t ion encud,," h"ylJOa,-d 11alld 1 e,· RAM residellt (Tallies) ,x ....... I '- N ..... 967 968 969 970 971 972 973 974 975 976 9n 97B 979 980 981 9B2 983 984 985 9B6 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 10 1 1 1012 1013 1014 1015 1016 If) 17 1018 1019 1020 1021 1022 MACRO-BO 3.44 09-0"c-Bl F9A6 IJU lIef I) F9A7 0007 0006 U005 0004 0003 0002 0001 0000 F9A8 F9AA F9AB F9AC HIAE 0007 OlAF UD cmd.6tat :defb ClOd equ u5trk equ yneg equ xneg equ mOU5e equ ctr I equ shift equ lock equ mi Ilcnt :defw rptchar:defb rptflg: defb 5ave: defw romram: defb 5iderom equ olsiz equ flOOD llO 00 0000 un ;; o 00 7 6 5 4 3 2 1 o o o o o o 7 ;e5cape sequence flag ;0=> no 5equence in progre5s ;lb=> expecting 2nd byte ;ff=> expecting 3rd byte ;comand-status byte ;co~nand-status flag ;up stroke ;mouse y axis negative ;mouse x axis negative ;mouse active ;control key active ;shift key active ;Iock key active ;current millisecond count ;repeat character ;repeat flag ;save address of the interrupt vector ;rom/ram memory bank status ;ram side $-tabled k/b interrupt handler for the low profile position encoded k/b. The interrupt interrupt service routine inputs two or three bytes from the keyboard port. The first byte is the cmd/status byte. Appropriate information Is saved in memory and the return from interrupt code i5 invoked. The 5econd and third byte(mouse) i5 position encoded data or mOU5e di5placement is analyzed, translated, and return to the existing keyboard handler if the information i5 valid; otherwi5e it is truncated and a return from interrupt i5 invoked. All registers saved except for the A regi5ter. input- keyboard input port (data complemented) kbdat output- Carry flag set - Command byte or truncated character Carry flag reset - Tran51ated character in A register F9AF F9Bl F9B4 DB IE CO F9BE C3 1996 Lpkybd: F9B7 F9BA (0 F9C8 Ipkext: call ret F9BB F.9BC C1 DO in co II jp pop jr 18 :3B a.(kbdat) rom5ide pekhdl. ramside nc bc rptclk2 ;read k/b port ;5witch to rom5ide ;decode posn. enc. k/b ;jp in5tead of call - interrupt stack"small ;re5tore original memory side ;return fo xerox code with char. ,here if command byte ;throw away return addre55 ;return from interrupt (via xerox) Romside save5 the status of the current side of memory and switches to rom5tde. output romram= status of syspio ; F9BE F9BF F9Cl F9C4 f5 DB lC 32 F9AE CB FF ROlllside:pusll in Id set af a.(5yspio) (rollwam) ,a shlerom,a ;save regi5ter ;read ram/rom status ;save it ;force rom side encolled I< '- 1062 1063 1064 1065 1066 1067 106B 1069 107fl 1071 1072 1073 1074_ 1075 1076 1077 107B f9C6 MACRO-BO 3.44 09-Dec-Bl jr 10 04 ;; Ramside restores the ram/rom memory back to where it was input f9CB f9C9 f9CC f9CE f9Cf f5 3A F9AE 03 1 C f 1 [9 rm~ide2 Rams i de: pusr. Id rlllside2:out pop ret romram= ;status of prior ram/rom af a,(romram) (sysplo),a af ;save register ;recover prior ram/rom status ;swltch i t This routine is the repeat key timer interrupt handler. If the the repeat flag or the count is not zero, then the return from Interrupt is invoked. If the count is zero, then the repeat character is passed to tne ASCII keyboard handler. F9DU f9D4 f9D7 f9DO f9D9 f9DA F9DD f9DE f9Eo f9E:! f9E4 F9E5 f9E7 f9EB F9EB f9ED F9fO F9f3 f9F6 f9f9 100 :11 105 F5 C5 :lA A7 2B 2A 73 FIEC Ff50 f9AB 19 F9AB 7C 65 20 06 20 22 F9AB lB OC LA F93E n F9AB 3A F9AA C3 f06f C3 f072 input rptf'lg -repeat flag rptcllar -repeat char millcnt -tlmer'table output a Rptclk: Id Id push push push Id and jr Id Id or jr dec Id jr rptcJkl:ld Id Id jp rptclk2:jp Siout - f9fC f9fO fAOO fAD3 fA06 fA07 FA07 020B f3 CO F9BE CD 190C CO F9CB fB C9 Rxsioo: di ca II ca II ca II ei ret kbr"amend equ 0lsiz3 equ .dephase -repeat char if count is zero (savstk),sp sp,lntst.k hi af bc a,(rptflg) a z,rptclk2 hl-, (mi Ilcnt) a ,11 I z,rptelkl hi (mi Ilent') ,hi rptclk2 ' hl,(tock) (mlllcnt),hl a, (rptchar) keyZ key5 ;save current stack ptr ;temporary Interrupt stack isave registers ;repeat key flag ;set flags ;qult If not in repeat key mode icurrent millisec count ; test count ;sklp If time elasped ;der count ;save milllsec count iquit if not time ireset millisec count ;fetch repeat char ;give char to keyboard key output to ellannel b after translation and escape sequence handling ;char" in a rOllIside ;switch to romside rmposend ;does real work ralllside ;restore original memory side $-1 $-tabled ; last location of code in ram ;size of relocatable code l> u U ttl ::l Q.. >< '- "- tv W Pu!>itioll ellcuded heylJoanJ handler Over'lay (sigllonJ 1079 1080 MACRO-80 3.44 09-Dec-81 subtt1 page Overlay (signon) "- N ~ » "D 'tJ (I) ::J a.. X "- Posltjon enc o(lt,d h"ylJ(}a,-eI tlan(l I e r' Over'lay (SIUIIOII) lOBI IOB2 IOB3 1084 1085 IOB6 IOB7 10B8 10B9 1090 1091 1092 1093 1094 1095 1096 1097 109B 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1 12:1 1124 1125 1126 1127 112B 1129 1130 1131 1132 1133 1134 1135 MACRO-BO 3.44 ; i OU-Dec-BI slgnon - Announce System Ready. 0552' rxsign: fC5D fC60 fC62 fC64 fC66 fCC7 fCbB fC6B fe6D fC6f fC71 fC73 fC75 fC77 fC79 fC7B fC7D fC7F fCBl fC83 fCB5 FCB7 fC8A fCat: fCBE fC91 fC94 fC97 fC99 fC9B fC9D fCAO fCA2 fCA3 fCA5 fCA6 fCA7 fCA8 fCAA fCAD fCBD fCB:J fCB5 fCBB fCBB fCBE fCCI fCC2 fCC5 .phase Signon: Id in bit jr dl Id out ld out Id out lei out sign 1 : djnz in bit Id jr set Id sign2: out lei jr sign3: set lei Id Id Idir and jr Id Id slgn3a: Id xor lei Inc inc djnz sign4: lei Id Id Idlr Id lei lei ca II Id Id cp 21 DB CB 28 f3 3E 03 3E 03 31: 03 3E D3 10 DB CB 3E :!O t:B 3E D3, 32 18 CB 21 11 01 ED E6 20 L1 Ub 7E EE 77 23 :!3 10 21 11 Ul ED 21 22 21 f091 lC 47 26 Cf 10 38 10 80 lC DO 10 FE IC 67 02 04 E6 03 10 ff54 IE F6 F70B f470 0300 BO 02 OD f361 08 04 fB 034A' fBOO 020B BO fAOB ff3C DODO CD f03C 7C 2 I 1000 FE 01 tca hl,confg a,(syspio) O,a z,slgn3 a, 1100111 It.> (sysctl),a a,001110000 (sysctl),a a, 1000000Ot.> (syspio),a a,OdOll (wdI797) ,a slgnl a,(syspio) c.flve,a a,2 nZ,sign2 c.five, (hI) a,3 (wdI797) ,a (steprt),a sign4 cosasi, (Ill) Ill, R I gdpo de, f I vdpl) bC,Sasldl isource address in rom ;executlon in transient command area ;point to configuration byte ;check configuration ; if SASI interface present ;set Pia B in Bit Mode ; turn ar'ound dO, 1,2 ;ensure rom switched on ;drop all drive selects ;reset wd-1797-02 i wa ; t 1797 not busy ;preset 10 msec step rate ;if not 5" ;set long step ; ,"estore I unload heads Sasl card installed add,-ess of rigid dpb ;set aeldroess of 5.25" floppy dpb .set sasi driver length ;Move elrlver down ;set ,::let 2 nz.sign4 ;if not AlE swap 11l,Sertab-tl b,B a, (h I ) 4 (h I) ,a hI hi slgn3a hl,tabl~s .llIove '"X residen~ code to ram (le, tallied tlC ,'a 1 s I z3 ;move on top of GETHLP III ,kbramend-tl jnext available ram lac (aval Ib) ,Ill ; te 1 I the world III ,0 conflg ;get monitor configuration a,h ;monitor level hi ,xrslgn-tsigoff-romofs ;assume 4,01 level location revl p -0 -0 11) :::J Cl. >< <- '-' N V1 Putiition tHICUCj,,(j Over'lay (tiignoli) 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 116B 1169 1170 1171 1172 1173 1174 1175 1176 1177 117B 1179 1180 1 181 1182 1103 1184 1185 1186 1187 1188 11 B9 11090 , 1 \ 9.,1, FCC7 FCC9 FCCC FCCF FCD2 FC04 FCD7 FCOA FCOEI FCOO FCE1 FCE5 FCE6 FCEA FCEt: FCF2 FCF6 FCFA FCFD FOOD F003 F006 F007 FOD8 FOOF FD J:j FD16 I- eylJuanJ hand I "" MACRO-80 3.44 28 03 21 11 () 1 ED CO CD 1A lB 3B 49 20 00 20 31 20 6F 6F 20 30 29 OA 4C 4C 1008 FCE6 0004 80 F293 F075 tiign7: 38 32 30 2D 49 20 76 00 IF 39 5B 7B 72 2B 31 00 00 lC 3B 65 20 70 76 33 OA 00 20 33 72 43 20 6F :w 53 74 65 00 OA 20 20 61 64 79 73 6D FD18 FDIC FD20 F024 F028 F029 4B 48 20 60 6C 00 20 73 65 6E F028 F02f F03:3 F037 F039 54 20 20 20 54 79 70 65 71 72 69 74 65 72 liD OA FO~jB lJl 04 FD3(J F040 F043 F046 00E8 CD F006 20 6f 54 69 sign6: 20 74 72 61 OA devour: CA F003 CD F009 18 F5 rxsigl 09-Dec"81 jr Id I (I Id Idir ca II ca II defb defb defm crt off pnext clrs 'esc. 'B' 'B20-II v defb defm 0,0,0,0 ' ,31. 2B, ' defm deflll deHl defb defm (v' ver/l00+'O' ,ever iliad 100)110+'0', (ver mod 10)+'0' ' ) , • cr, If If 'L - Load Sys,tem' defb cr, If if defro o. t erlll 'H - Host Terminal' defb endif cr, If if defb o.term 'T - Typewriter' defb endif cr, If defb 7,eot ca II jp ca II jr equ canst z,warm conin devour $-signon z,sign7 ;skip if 4.01 111, xrtiign+sigoff ;4.02+ level location de,sign6 :put it in our signon message bC,4 ;disable rom bank :clear screen :set low ligl1t as default mode i*********** space for the XR rev value 19B3 Xerox Corp' .dephase subttl Overlay (boot) page :go enter monitor flus i t i Ull e/lculled heyL)uar-cl llanelli.. MACRO-80 3.44 09-Dec-81 dve.-Iay (boot) , 1192 1193 1194 1195 1196 1197 1198 1199 1:.!00 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 12Hl 1219 lnO 1221 1222 1223 U24 ):> 0 0 t1) ::l Q.; >< '- 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1230 1237 123B 1239 1240 1241 1242 1243 1244 1245 1246 0030' rxboot: FCA4 46 08 ED 43 FA II .phase ds ld Id inc sub jr cp jr sub ret cp ccf ret ld add ld ld push push ca II Id push Id ca II ret Id Id ld add Id inc Id ca II Id Id or jr Id add Id inc Id dec ld' fCAB FCAA FCAD FCBO FC81 FCB:! UE 21 CD CO OE 21 Id Id ca II ret Id Id FC55 FC5D FC60 FC61 FC62 FC64 FC6b FC68 FCb" fC6C fC6D FC6F FC7!) FC71 FCn FC74 FC77 FC79 FC7A FC7B FC7E FCOI FUl2 FC04 FC1l7 FCOB FCllA FC8B FCOE FCllF FC90 FC91 FC92 FC95 FC9b FC99 FC9A fC9C FC9F FCAO FCAI FCA2 FCA~j :n FF5D 7E 2C [Jo 28 FE 28 D6 DO FE 3F DO 4F Co 32 2E C5 E5 CD 21 E5 OE CD boot I: 00 ·OB 13 f6 34 10 boot2: 41 F072 00 FD1l9 F06E 00 FOIB CO 3E FF 12 11 OOOA 19 5E 23 56 CO IA :J 2 87 20 L1 19 4E F01E FOGO 20 0000 L:i 10 EOllO F024 IE EEBO tca-romofs romofs,O hl,linbuf+1 a,(hl) I cr z,boot2 '-cr z,bootl 'A'-cr c 16 c c,a a, 'A' (bootd), a 1,0 bc hi swap hl,booter hi c,O select nz a,-1 (de) ,a de,10 hi ,de e,(I.I) hi d,It)I) home a, (de) (boo t s) ,a a nZ,boot3 hl,I3 hl,de c, (h I) .rom source address :execution address 0/1 area : 4.01 overlay start address :4.02 overlay start address :scan command line : if no parameter, boot from A: :skip leading blanks : i f invalid drive ;if bad drive ;set boot drive selected :set up error message ;set A: ; switch boot drive with A: ;set boot error return ;then boot from A: ; i f drive not configured or density error ;set dpb address offset within dph ;set dpb address ;get low sectors per track ;inforrn boot loader rigid reserved track offset within dpb : i t not ;set ;get reserved tracks hi b, (h I) bc (phytrk) ,bc ;point behind directory ;do implied seek :here for rigid ;first rigid sector ;buffer ; layout and k/b tables c,rtabl Ill,bootbf read nz c,rtabl1"lpkofs :2nd rigid sector hi ,bootbf+x'100' :buffer I» jO 0 1/1) :J 0... X '- L- N. .....a Position eftCOded l-eytlOa,'O handler Ove,"1 ay (boot) 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 127B 1279 1280 1281 12B2 12B3 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 ,13.0~ FCB6 FCB9 fCBA fCBC FCBC fCBE fCCI FCC3 FCC6 FCC9 FCCA fCCC FCCF FCD2 FCD3 FCD5 FCD8 FCOB FCDC FCOC FCDF FCEI FCE3 FCE6 FCE8 FCEA FCED FCEF FCFl FCF4 FCF6 FCFB FCFB FCfE FOOl FD03 FD05 FDD8 FD09 FDDB FDOD FOlD FD13 FDI4 FOl7 FD19 FD16 FDIE FD21 FD24 MACRO-BO 3.44 CD F024 CO 18 20 ca 11 ret jr boot3: FE DA OE 21 CD CO DE 21 CO CO OE 21 CD CO IB FD52 04 ED80 F024 3A FE 2B 3A FE 20 3A FE 20 3A FE 20 21 11 01 ED OE 3A B7 28 OE ED80 E5 6F EDBI 6B 68 ED82 66 61 ED83 70 5A EDB4 F800 0160 60 IF FD6D cp jp Id Id ca II ret Id Id ca 11 ret Id Id ca II ret 05 EEOO F024 06 EE80 F024 rxbOI : 02 07 L 1 ED80 CD F024 CO ;jA EDBO FE E5 28 37 21 ED80 11 F960 01 0046 EO 60 boot5: ., i"'" FO:6 FD2A , ,FD2E O~-Dec-Bl DD 2A F019 DO 30 00 C3 DD 36 01 Fe Id cp jr Id cp jr Id cp jr Id cp jr Id Id Id Idir Id Id or jr Id Id ca II ret Id cp jr ld Id Id ldir read nz rxbOI ; layout. and k/b tables ;here for floppy 27 ;double density? c,boot4 ino - exit c,ftabl ;first floppy sector hi ,bootbf ;buffer read I ; layout table and half of k/b nz c,ftab2 ;second floppy sector hl,bootbf+12B read ;midle third of k/b tables nz c,ftab2+lpkofs ;third floppy sector hi ,bootbf+12B+128 ,"ead ; last third of k/b tables nz ;check tables are present a,(bootbf+lang) ; language no. set? Oe5tl z,boot4 ina - exit a,(bootbf+kbrd) ;k/b taples present? 'k' nZ,boot4 ;no - ex i t a, (bootl)f'rfont) ;font tables present? 'f' nZ,boot4 exit ;no a,(bootbf+prnt) ;printer tables prsent? 'p' nZ,boot4 ;no exit hi ,bootbf+kbrdtb ;llIove in k/b tables de, tab I ed bt,ktabsz - - c.rtab2+lpkofs ;3rd rigid sector a,(boots) ;rigid or floppy? a z,boot5 ;rigid c,ftab3+lpkofs ;floppy - 4th sector hi ,bootbf ;buffer read ;font and print tables nz a,(bootbf) ;configured? Oe5h z,boot4 ina -exit hi, bootbf imove font & print tables in de,fontbl bc,fontsz*2+prntsz*2 a Iter SIOOUT Id Id Id iX,(monitr+sioff);sioout address (ix),Oc3h ; jump instruction (ix+1),low rxsioo I f?"iJ.;s it ion CI\COdelJ heylJoanj hand I e,Ovcer I ay (boot) 1303 1304 1305 1306 FD32 I:W7 FD36 FD3A FD3E FD42 FD46 FD4A F04E FD52 FD52 FD53 fD54 FD55 F058 F059 F05C F05F F060 F063 F065 fD67 F06A F06D 1308 1309 1310 1311 1312, 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 I ,~ a a /'I) ~ 0.. >< L.... 1325 1326 1327 1328 1329 1330 1331. 1332 1333 133'4 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 MACRO-80 3.44 09-Dec-81 Id DD 36 02 F9 (i x+2) ,higl. ,-xsioo a Iter FU6E FD71 F072 FD76 f07A F07E FDI:l2 FD86 FD87 FDI:l8 DO DD DD DD DD DD DO 2A 36 36 21 36 36 36 FOlD 12 85 13 18 F22F 00 C3 01 06 02 18 Clot Id Id Id Id Id Id Id iX,(monitr+fcrtof) ;address of fast crt handler (ix+crtcall), low rxcrt (ix+crtcall+l) ,high rxcrt ix,sprntl ;address of screenprint patch (ix),Oc3h ; jump instruction ( i x + 1 ) , low scrprt (ix+2),high scrprt ;here to exit llc ; throw away boater return bc ;get disk swap parameters hi swap ;swap them back for xerox boot bc ;throw away return address hi ,0 config ;get rnoni tor configuration a,h hl,xrboot-romofs ;assumed 4.01 monitor boot overlay address revl z,hoot6 ;skip i f 4.01 hl,xrboot ;address of 4.02+ monitor boot overlay prboff ;enter xerox code to execute boot 0 ;workbyte to save disk type boot4: Cl Cl El CO Cl 21 CO 7C 21 FE 28 lloot6: boots: pop pop pop ca II pop Id ca 11 Id Id cp jr Id jp defb , Booter - FD89 0000 F03C l1B8 01 03 £ 1 llCO C3 F078 00 CD F075 07 b4 3A 54 52 5C 65 20 4C 6F 64 20 65 72 6F 72 04 CI E1 61 73 61 72 2E . Booter: ca 11 detb def", bootd: Swap Boot Error Processor. pnext 7 'd:Tables Load error. eot bc hi defb pop pop .. driver :switch drives· back - swap logical drives. Elltr"y: C L first drive index, 0-15 second drive index, 0-15 Id Id Id add add ex add add Id Id Id b,O h,b de, se I tab hi. h I hI • cle d·e, h I hI ,bc hi. bc b.2 c • (111 ) a. (de) , FDB9 F08B FOUL FD81' F090 F091 F092 FD93 F094 FD96 FD97 lib 00 bO Swap: 11 F360 29 19 EB 09 09 06 02 'IE lA swapl : ;clear·upper indices ;set select table address ;set second address to DE, get se I tab to HL ;set first address to HL ;swap two bytes » "0 -0 ttl ::J 0.. >< '- P,H' it iOll e"coOed "'eylJOduJ hdlluler 1dy (boot) MACRO-!lO 3,44 09-0ec-01 OvtH' 1359 1360 1361 1362 1363 1364 1365 1366 1367 1360 1369 1370 1371 1372 1373 1374 1375 1376 1371 1370 1379 . .1300 , il30 1 ,1382 1303 13!l4 1385 1386 1307 1300 1309 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 ,1402 .1403 1404 F090 F099 F09A F09B f09C F090 F09F n ILl (hl),a ILl a,c Id (de),a inc 11 I inc de djnz s ... apl ret . depllase 79 12 23 13 10 F7 C9 0780' 0700' rOllltop: defs ;; \ 070C' 07OE' 07EO' 07E2' 07E4' 07E6' 07E8' 07t::A' 07EC' 07EE' 07FO' 07F2' 07F4' 07F6' , 07F8' 07FA' 07FB' : F97A F960 f,950 , F'959 F950 F953 F94F F940 F93C F93B F938 F935 F.I:!CE F067 F!lOO 00 00 FF Ipid: AA 55 ()(j (romsiz-x'24')-(romtop-start),-1 Drctry is a table containing the RAM addresses of the keyboard tables. Tilis table is located pn ROM side of memory. The ROM address 'must be offset· by x' 1800' since resides tn the fourth 2kxO ROM slot. This directory is helpful i f future release require the RAM tables to reside in a different RAM location Orctry: defw defw def ... defw def ... defw def ... defw defw defw def ... def ... defw defw detw ,, D7FO' 07FF' ; if s ... ap not complete defb . nefb prntbl fontbl mstbl ups ctrlex ctrltb rptex rptbl tick i?llftlcl< cptex captab cdtab stl t ab tabl ;print exception table ;font exception table ,mouse table ,upstroke table ;function key inhibit expansion table ;function key inhibit table ,repeat key expansion table ;repeat key table ;repeat speed table ,shift lock flag ,alpha lock expansion table ,alpha lock table ;code + table ,shit t table ,unshifted table ver x '00' , x ' f f . ;revision level , low profile kybd id . ' define check ... ord to let xerox know that we ·are pl'esent defb detb Oaah,5511 0 Subttl end Syml)o I., Tab 1 e , id ;space for Checksum' U :l \ t ion erlco<.Je,i "",yIJlliiUJ lIanej Ie,' SyllltlO I Tatll e P,?!,~ MACRO-80 3.44 09"Oec-81 Mae,'o,,: }> "0 "0 It) :::I 0X L- SymllO Is: ALPt-tEXC IA30 AVAILB FF3C BOOT I fC60 600T4 f052 ED80 BOOTBf f060 BOOTS f935 CAPTAB ffB4 'CHRSAV CMOB 19AI 0006 CNfBYTE CNTRP OUI3 CONIN F009 CPTEX f938 CRTOI 0182 0019 CTCI CTRLEX F950 CURSOR fFAC ENCNTR 0001 f9A6 ESCSQ f47D flvDPB FON2 HICA fONTBL F960 0005 fTAB2 J 0100 GRPAD F066 WLE DOlE KBDAT fA!)7 KBRAMENO KBVEC ff I:A 0160 KTA6SZ 0000, lANG FF5,C LlN6Uf 07fB,' lPID F91iF LPKVBO IAE6 MICEI MICE:! IBDO MICE23 1614 IAB8 MICEV MKEV2 fl67 FOOD MONITR fC30 MPNEXT 0000 MSMOV 19AO NOCHAR OlAf OLSIZ PEt(HOl 1996 PEKNOCL 19AO PNEXT f075 1939 POS02 POS05 1947 1914 POSENO PRBOff f070 0016 PRNTSZ 1903 PTROI IA23 0002 fC71 fOOO f072 0004 f8CE OOIA IAlf 003C f091 F006 0000 0196 FFIO f953 f030 0004 0007 IBCf, 18A6 0000 0006 OlF4 fF50 OOOB 0001 f06f f06C, ff62 0000 f9B7 " fOE3: • IAfl. IB08 1616 f9AB fl8f 0003 fA95 f95E 107E 0208 19AO 198f 1986 1939 1954 1959 0003 fA62 f9CB ALPHTST 60FF I BOOT2 BOOT5 BOOTO C.fIVE COTAB CLRS CMOBI CNfGOff CONFG CONST CR CRT02 CTCVEC CTRLTB OEVOUR EOT ESCTSZ fNTRAN fONCHK fONTSZ FTAB3 HLfSEC INTSTK KBlP KBRD KEV2 KV60LP LEAOIN lOCK lPKEXT MAS.K " MICEll" MICE21 MICE24 MILLpn MKEV5 MOUSE MPRMTO MSPTR NOlOAO OLSIZ3 PEKNOC PESCTB POESC POS03 POS06 POSOUT PRNT PROMPT RAMSIOE ff63 0018 fC6C f06A f06E 0006 1904 0007 f9A7 0006 F03C 0003 0012 f293 0002 190B 070C' OOIB DOlO IBBB 0002 0004 F319 fOIE OOOf OOOA 0004 F072 1965 OOOA 0061 0001 IA7D IAf6 1609 IA63 0006 F06C 1638 0007 f950 0001 1961 1960 fA 11 1927 1930 1955 1966 f97A f339 f024 ATTRI6 BOff2 BOOT3 BOOT6 BOOTER C,SASI CHAROUT CMO CMOSTAT CNTCTR CONflG CPTBSZ CRT CALL CRTOFf CTRL CTRTST ORCTRY ESC fCRTOf fONI fONT FTABI GOLD HOME JTBLSZ KBOff KBROTB KEV5 KVPOS If LOWER LPKOfS MICE MICEI2 MICE22 MICEXI MINTRP MNTREX MOVT6l MSfLG MST6L O.TERM PEKEX PEKNOCI PHYTRK POSOI POS04 POS07 POTRAN PRNTBl PRVATT REAO » Position enCO(hHj i",yllOcaf'u 11 W 195A QQQ3 0010 FGOO 0159 Fe50 F93E F959 F0EiB ,I'OD3 11 CO 0005 09-D.;c-81 REV50 RMSIDE2 ROMSIOE RPTBL RPTCLKI RPTfLG RTAS2 RXI984 RXeRT RXSIOO SAVSTK SeRO:} SELTAS SHIFT SIGNI SIGN3A SIGN7 SlOOP8 SIOXI ' ,SPRNTl STCNTR STRl\UP SVSeTL ,TA8L TABLEX TeA TOCK UPS UPSX ". WARM XRBOOT VNEG '- Lt.J r\J ALPHEXC ALPHTST ATTRIB AVAILB BOFFI BOH2 BOOTI BOOT2 B .0 1° iT) Pa.. Ix' ,L- CTRTST ClJRSOR DEvOlJR DRCTRY ENCNTR EDT ESC ESCSQ ESCTSZ fCRTOf fIVDPB fNTRAN fONl fON2 fONCliK fONT fONTBL fONTSZ FlABl 482 9130 1 11330 13700 4,)00 241 1 113 (j 1140 1510 b07 1181 325 ;j54 432# 1307 1112 2139# 272# 279# 261# 1272 150# 347 426 490 900 278 267 271 253 1460 ; 27.4 30~\ 93'4N 2i5 290' 306 F,TAfj2 142" 1430 1:t4-;I[,~EC. ilj>,L,\= , 1~§, I'tBJlH l'2!J~} 714# 10CJ4 i91 '2 i,l .1:i'\iI ',4}30 10750 ,),l;.P.J P ,':L,f,'Kf XT iA:,PK~)F S ,i'4.Bo ,, :?7'8 6.2.# ; 6'3# ;B.2,90 1'0134 1065 1''1 t1 (f , 214 : ,~f3# , 610 j;~50 3950 473 )23# L- 1170 1178 , 12-82 1286 12th 9030 ~ ,i 214 1'129 215· ;~ .. :'2'1'5 '4740 1'2'6'6 245 1'156 ' 1)1197 , '562 :J6? I 1157 979# ltmilo ,'245 " W W 1162 9450 lzi2 ;461' p4) 1379 ,l: ,2'6'9 :1:4:5# ' :97# 1294 311 "I.·, 1047 lU90 'l;~!4'# 945' 307 387 ~~o i.' 1530 ;~,9# 1144 2GB! '9'0'0' 12'i8' .KBf!~MEND KBHD K.BRPTB KBVEC, KEY2 KEY5, KTABSZ KYBDLP KYPOS LANG LI'ADIN LF :1 LINBUF c"LOft); il.L.PI(IFR I 362 9670 -244' " 8~'~''{' HH~TK ,JJ;~L.sf KBDAT. ,KBl,f! , , ! 1257'~ 8S# !?'!?'~ .,5,9,# HOM.~. 125~f lfl # IilillEl3 GOLp GRP.AO, 1339 351 383 1~61 1295 (if p''f rtPKYBD MASK MICE MICEI MI CE 11 MICE12 MICE2 MICE21 MI CEn MI CI;;23, " MI C!:24 ," ~:~~C:r.' f, , ; , MltLCNT , MINTRP MKEV2 MKEY5 , , MNT,REX MONITR ,~ ModsE MOlllEH-MPNEXT, : MPRMTO MSFt~ , r MSMOV MSPTR MSTBC I, ' NOC~jA~',' _ NOL\14p , g~~a~, :' 169 85# 479 690 J;?8 130 695 151 154 158 160'0' 698~ 72';/' 4b::ii 17fi' 134#'; 91:li3~ 107ijll OLS'iZ,3 PE~E.~' :;, 47''1'# ' 45ii/' Pf',IHi 0,':" PE~,NQ{':,,,, Pf',I:,N,Q(,) P E,I',I;{OC 2,' ,_ Pr::~CtB' " pHVT~K ' PNEXT POESC POSOI POS02 POS03 POS04 POSn5 POS06 POS01 l> J J n l :l.. >( " 685'! \ 591 114 73# 60#' 39# 62 466 185# 8'0# 1911 680 113" j 683 -., 468 1004# 176 ~!4U G7b# 704 131# 736# 709 155# 756# 761# 162# i 715 700# i ;-, 980#' 924'# " 710' 771 ; , 185' 51 63 " 418"- 149# 1054 1059 1062 53 65 54 189 711"- 118 52 64 916# 712 719 773' " 780 9234" , 921'i1 'Ii 928# 619-' 5i2 518 514' 228#' 180 1164' 1113 112 681 156 ,),r,;_ 4 ~1'O " " 1!.IO'l)" : • 4i(),k"'" 47'1'11'; 4648' 699" 483:);) 9JN r;1411 ' 378 352 360 358 349 372 375 381 1239" 1142" 4 25#1 :l56# 366# :l67# :nn# :176# 319 :183# 43(J#)':' .... ..- 477 432,,' I"~ i 1332" ~ 382# 55 1300 56 1301 57 ,:i 1 1 'I."/" " 46i:- 4:15':; 128# ~ " , 162 922# 58 ., t \ • 1380 ~ 59 60 61 }> "0 "0 CD ::s 0.. )(' "- POSENO 33t1 PO SOlJT 326 POTRAN 319 65,v PRBOFF 147d PRNT 400 PHNTBL 401 PRNTSZ 78d PROMPT 77,v PRVATT 409 PTR01 RAMS IDE 1008 HEAD 56d 116,v REVll 117 d REV1 110d REV50 91d RIGOPB RMPOSEND RMS,IDE2 lb23 ::;~q~qFS ,I R!!tvj~fM ",JNfi\;SI,DE , ;~(lMS 1Z ,M)Atop "i22d :9}j4d 1005 ""'38,v ;L~F;r;~L "i368,v "'592 ' '5~8 :-' ~%.+~~~ 'll:~~~ ,~f'TCHAR " ' 1 ! '" ~, ~ " : .. ~P![;LK2 ·,\ql:.:' ,; .. ~Pl~X J ,'!;!IO'\/ ".J~.P,T LG ,'1?)5 : R'rdsT " 486 , RT:ABI"'b9'\/ ,,', HT'ABL "; i 40# ~'VlTBL '\ 8 I 'dV2TBL >;;'\04 'RXI'98'1 " ''.3H ~f~~49 r-:- '~>\!l'O I RiXBOOT 199 RX'CRT""24 \d '-225 RXSlliL "'2'23 1~~SlGN RXSIOO 1069# i35# ~ASIDL \ "604 SA.I(E ' '.1 40d '$~YI~TK .' "309 r'CR I ;,,'317 §CR02 "'320 , C~03 "'''301d ;>!=RPRT \ t .' ~-: 4- W V1 , J ;:'t J4b,v ,129 :157 lJ27 353 363 368 374 377 1263 1288 385,v 413 415 1195 \196 400d 1:05 950d 965 965d 405 137B 1295 269 417,v 10:.:'9d 1243 177 18:.:' 179 1111 :d'6,v 103"1,v 1 205 1021 1072 1247 1255 1259 203 1135 1324 207 208 779 780 1134 205 206 207 208 1071 2'06 1030 ,,\U70 '~lb19d 'i':H,9 • j'J'69 g'06d "91 I 1385 ""9'81# 1063 '.'1'046,\/ ! 1 1061# 1060 1065# , ! 1053 1'Jtl4 : ; ,,\ -j' ,"'982# ,1051 ' j 592,\/ i>; , 1241 1-245 "Y:i82 ,) ..,69# 774 1',,76# :.;: 160 ,1 '1265# 200 201 202 ',1'309 1:308 >i 1187# 1'()05# ' '1302 1303 , 'rl \3 \ \,983# " \"620 !'(f4a )1. 315,\/ . I',; ! -n ~ " ' li 319d ! ;.'323 131:.:' . '" ..... 329d 1313 1194d 1323 ) i\ !l> iU ,-0 i(1) :~ !Cl. >< ..... SELECT SELTAB SETFLG SHfTLCK SI1I fT SHTAB SIDEROM SIGNI SIGN2 SIGN3 SlGN3A SlGN4 SIGN6 SIGN7 SIGNON SIGOff SIODPB SIOff S IORDV SIOX 1 SOOUT SPACT SPRNTI SPRNT2 START STCNTR STEPRT STPCTCI SfRKUP SWAP SWAPI SVSCTLSVSPIO SVSVEC TABL TABLED TABLES TABLEX Tl3L SEL TBXfER TCA TENTHS TICK TaCK UPASCII UPPER UPS uPSSZ UPSTRK 54# 89# 128# 543 535 534 985# 1100# 1104 1090 1119# 1109 1138 1136 1087# 70# 107# 47# 58# 386# 204 87# 74# 75# 159# 115# 96# 470 513 1215 1357011 105# 106# 42# 540 92# 780 790 484 183 44# 901 596 90 \oli 126011 124# 515 516 481 1:!19 1117 6U2 ll98# 9-'8# 546 1022 1100 1107 # 1110# 1124 1116 1148# 1138# 1187 1134 390 1300 386 388 1350 1387 837# 1391 1125# 1137 212# 622 1310 332 1369 625 1108 615# 925# 1310 1364 1m)] 1020 43 808# 789 001011 917# 532# 185# 224 902 II 99 011 1348# 1-095 1031 1088 1097 1101 929 986 1392 1076 1126 227 904# 1386 1086 1195 921 92 \oli 1381 917 802 1125 lDGl 5G8 5li4 919# f):.! (J r,l '211 1279 ):> "0 "0 II) :::J a. >< '- LJPSX USTRK VER WARM W01797 XNEG XRBOOT XRSIGN XV VtlEG ZERO !ol;Wg 400 28# 53# 108# 689 71# 69# 469 703 127# ~)73g 1155 111:14 1099 975# 1323 1134 604 974# 459 1155 1394 1326 1137 757 759 761 729 740 1155 H07 926# Notes ·j38 Attributes 43 U57, U58 ROMs A A66 Control Switch Abbreviations, list of Access cover 225 Enable, Disable 189 General 183 Set mode 191 Auto-repeat keys -ASCII 195 - LPK 205 249,250 N1 - 40 CPS 238,239 -io CPS 227,228 Access times, disk 207-211 Accessi bl e 1-second 171,174, Bl interrupt 151 Accessing BIOS Allocation, CRT RAM 45 Alpha lock key -ASCII - LPK 197 205,206 Altitude requirements 18 41, Application programming 42, 151, 152, 155, 170 ASCII keyboard ROM, How it Works 133 13 Dimensions . Product Codes General 3 195-199 B BOOS, General 5 BIOS Entry points Alpha lock key Auto-repeat keys Function key priority . A2-A5 Banked Physical Driver listing App. I Device Initialization 133,134 Execute Physical Driver 161,162 Op. Sys.lnt. 152,174-176,178-181 Physical Driver Address Table Programmable Functions Backspace or cursor left Bank switching Example System PIO Z80-A Example Banked physical driver listing Basic monitor calls Baud rate CTRLkey (3 170 187 D4 134 171,172 11-112 01-03 Function key uses 1/0 Channel 135 Key code chart Command 144 Main key array Generator 1:36 Numeric key pad Host Terminal 145 Repeat keystations Asynchron~us, I/O Port # Port sele~ion Index Configuration sector General 135 157 42 Port assignments 156 Printer port 135 Table Kl , Business graphics, (desc.) 16,17 Bell (tone, speaker) Control code 187 Description 47 Port assignment 157 BIOS CRT Controller 43 158-160 CRT entry points 43,134 CRT font selection CP/M-80 2.2 5, 151 CP/M-861.0 151 44 7 Attributes Attribute selection Accessing 151,152 Configuration sector 225 Cold boot Al Display specification 15 Console input 167. 168,A2 168,A2 Console output Console status Graphics mode 167,A2 Entry vector table AI-AS Example 152 A2 Home disk 10BYTE-directed 110 167-169 Interface 151. 152 Jumptable - 40 CPS 243 -20 CPS 232 153,154,167-169 List output A2 Prog. considerations 186-193 Scroll register 46 168 Printer status (108YTE) 169 Punch output A2 Read sector A4 Reader input C AS Printer output (IOBYTE) A2 CCP, Description CP/M-80, (disk contents) Accessing BIOS Sector translate 152,A5 Digital Research files Select disk 152,A3 Entry Vector Table Set DMA address A4 Set sector A3 Set track A3 Vectors 151 Accessing BIOS Write sector A4 Xerox files 225 240 CPU, (general) ROM Description Connector 27 Go To Command Electrical/environmental 18 System display 28-32 Bl AI-AS Xerox files Digital Research files Bit mask, keyboard Break switch, printer Bus, system 6, 7 7-9 CP/M-86, (disk contents) Al CRT, (general) CRT output RAM 5 6-9 151,152 Prog. considerations Warm boot Specific~tion 45 Memory allocation 151 List device List status 2 183 CRT control 9, 10 151,152 9,10 10 2 133,134 41-44 140 183 3, 158, 183 158 41,45 'Index Block move 160 Direct CRT display 160 Entry points 158-162 Fast CRT output 159 Character sets (pictures) Graphics 185' Text 184 Character spadng Font selection 10BYTE 43,134 167,168 -40 CPS - 20 CPS 235 Read sector Select media format 162 161,162 Set direct CRT cunor 159 188, 190 188, 193 188, 193 Write sector 162 Clear screen Clear to end of line Clear to end of screen Clock CRT controller, (general) 43,44 Attributes 16, 17.44 Control signals (sync & video) Design Font ROMs 43 16. 17 43 Functional description CTC (Counter Timer Circuit) Cabling requirements: 16 42,134 -40 CPS 252 - 20 CPS 236 Capacity, disk 207-211 Carriage return, disp. code 188 Carriage movement -40 CPS - 20 CPS Caution, rigid disk Centronics Interface Channel A 510 Controller 242 231 47 2,43,135 135,136 42 Entry pOints 165 Channel B 42 Entry pOints 163,164 Character codes, display 186-193 Character delete 192 Character devices 153, 154 Character insert ' 192 Character ~ets (information) Specificitions Index 2 I-second interrupt 174 Z80-Aspeed 2 Code charts K1-K2 Baud rate table K1 151,Al Cold boot Cold start 177 Cold start loader listing G1-G6 Command codes: 40 CPS 242-244 Carriage movement Control codes Hex codes 245 Margins & formatting Miscellaneous commands Paper movement Printing WPcommands 20 CPS 231-233 Carriage movement Control codes 135,136, Description ROM B086 speed Remote Diagnostics Description SIO Controller 251 43 15.16 Hex codes 234 Margins & formatting Miscellaneous com mands Paper movement Printing Remote Di~gnostics WPcommands Command set (monitor) 137-149 Summary table 137 Baud rate 3 Backspace or cursor left Extended memory test Bell (tone) Fill memory Carriage return Goto Host Terminal Clear to end of line Clear to end of the screen Input Clear screen !lnd home cursor Load from disk Cursor down-or line feed Modify memory Cursor left or backspace Output Protocol Cursor right Cursor up Read disk sector Display next character direct Typewriter Escape Verify memory block Write disk sector Home cursor Horizontal tab Communications: Line feed or cursor down 135,136 42 144 156,157 19 144-146 167,168 165 165 165 5 148,149 249,250 25,26 510 Controller 510 Ports, description Baud rate command Comm channel (Port #s) Connector (J4) Host Terminal 10BYTE \ Input Data Input ready status Output status Port (J9), description Protocol command Settings, 40 CPS Printer Strapping Options Configuration sector Configuration status Connectors 225,226, 181 Console devices Console input IOBYTE BIOS entry point Console output IOBYTE BIOS entry point Console sta~us IOBYTE BIOS entry point Restore previous attribute mode , Set cursor character Control key, keyboard 197 206 - ASCII -LPK Control panel indicators- 40 CPS 239,240 Break switch Cover Form feed Here is switch Line feed Overflow Parity Power indicator Print chk Printwheel select (see Hardware Connectors) . 186-188 Control codes, display Copy memory Display memory Reset 153,154 167 ' A2 168 A2 167 A2 Ribbon/paper Scroll Spacing select Control panel.switches - 20 CPS 228 Form feed Line feed Pause 4 Index Power indicator Get Config Status Reset Host Terminal Control sequences, CRT Codes Table 187,188 186 Copy memory, (Monitor Command) Counter Timer Circuit Cover switch, (40 CPS) CRT memory block move CRT output FAST CRT output CRT RAM 140 134 240 160 158 159 Memory allocation 45 Scroll register 46 CTRL key, keyboard - ASCII - LPK Pass 8 bits/keyboard 190 Pass 7 bits/keyboard 190 Data format, (LPK) Daughter board 186 -ASCII 195 - LPK 200 Cursor control codes 200,201 47 ROSR monitor SASI interface Floppy connectors 38 J1 connector 1~ Rigid connector 39 Devices, character & physical assignments 153, 154 Device names, logical & physical 153, 154 Diablo printers 197 206 Cursor, (general) Cursor keys 181 144-146 - 40 CPS (630) 237-252 - 20 CPS (620) 227-236 Diagnostics, remote printer -40 CPS 244 - 20 CPS 233 Digital Research CP/M-80 files Up, Down, Left, Right Host Terminal cursor control 187. 147 CP/M-86 files Dimensions 6-9 9,10 13 8" Floppy disks 8" Rigid disk st" Floppy disks 40 CPS Printer 20 CPS Printer o ASCII keyboard Display/Processor Low profile keyboard DC system power DTR, SIO default Daisy-chain 18 135 SIO Controller 42 Rigidlfloppy interface 47 Data bits Direct CRT display Disable attributes Disk access connector (J 12) Description Disk connector (J 1) Floppy . 160 189 33 34-37 19 38 SIO defaults 135 Illustration 20 Baud rate command 144 Rigid 39 Configur.ation sector 225,226 Index Disk drive format 14 5 14 3,5 Disk drive storage Disk drives Graphics character set 185 Programming considerations 186 Caution 47 Text character set 184 Connector 47 Display, control codes 207-211 Access times 13 Dimensions 207-212 Specifications Backspace or left cursor Bell (tone) Clear to end of line Bytes'per sector Capacity 186-188 Carriage return Access times • Clear to end of the screen Encoding method Clear screen and home cursor Formats Cursor down or line feed Heat dissipation Cursor left or backspace Latency Cursor right Power dissipation Cursor up Recording density Display next ,:haracter direct Sectors per track Escape Transfer rates Home cursor Voltage requirements Horizontal tab Disk driver Line feed or cursor down 161,162 Execute physical Firmware 4.7 213 Media identification Disk mapping 48 Description 153,154 Device mapping Drive mapping table C2 223,224 Interleave Disk parameter block (DPB) 214-218 Restore previous attribute mode Set cursor character Display, functional desc. 16 189-193 Display, ~scape codes Display manipulation '186,189 Display memory command· 138 . Display next character 188 . Display/Processor 13, 183-193 . Display specifiCations 15 Pixel resolution 8" Floppies Refresh rate 8" 10 Mb rigid Video bit rate st" Floppies Video rate Translate tables Disk parameter header (DPH) 213-218 Select media format 161 Value(s) returned 162 Display 3,15-17,183-193 16,183 Attributes : Business graphics Charact~r 6 13 Dimensior'is mode 16 183 Documented system storage C1, C2 Double density, Select Media Format 161 Downcounter 42 Drive mapping tables C2 Drive selection PIO Controller Description 134 43 Index Dual parallel port Printers (40 & 20 CPS) PIO Controller Description 252,236 DC 134 Disk drives 43 207-211 15 Display Expansion slot 18 (See also Hardware Connectors) E Electrical interface 40 CPS Printer 246-250 A66 control switch 8" Disk access times', 8" Drives, dimensions 8" Floppy disks 207-211 HPROS circuit board Dipswitch module A Double-sided Interleave EIA interface 13 210,216 Rigid 223,224 211,217,218 ' Single-sided 209,215,216 Track formats 221,222 820-11 Device mapping General Character devices Dipswitch module B Enable attributes 189 Enter key, unique codes 204 Entry points, CRT 158-160 Entry vector table A 1-A5 Environmental req. 18 153,154 Altitude Humidity 10BYTE Temperature Escape codes Logical device names Physical device names Physical devices 8086 Clear screen 1/0 Port assignments 156 Clear to end of line CPU Port II- 157 Clear to end of screen Configuration ,status Description Disable attributes 181 2,6,48 Enable attributes Dual CP/M-80/86 158 Line delete HostTerminal 147 Line insert Lock instruction 155 LogicallPhysical device mapping 154 Memory expansion PWB Operating system files Operating system interface Schematics System bus connector Pass 8 data bits from keyboard Pass 7 data bits from keyboard 132 Position the cursor 9-11 Set blink attribute 151 Set graphic mode 128-132 Set inverse video 27-32 Set low intensity Electrical Requirements AC 189-193 Character delete Character insert Escape sequences 13 CRT 189-193 820-11-16/8 display 40 CPS Printer 242,243 Disk driv~s ROSR translations Index I 43 7 20 CPS Printer 221.222 Etch 1 CPU Power indicator 239 Specifications J9 - strapping options 25 Schematics 109-116 Serial 110 Ports 42 Etch 2 CPU 26 J9 - strapping options Keyboard FIFO 48.166 Schematics 117-124 Serial 110 Ports 42 Even parity, host terminal Examples 145 04 Bank switching Host Terminal 145.146 List device status 152 Monitor calls/BASIC 01-03 Protocol command 148.149 Start/Stop 8086 155 Z-80A Assembly Language 171·173 Execute physical driver 161, 162 Expansion slot, (general) 6 18 Electrical Extended memory test command 139 251.252 48, 166 FIFO Variables C1 159 Fast CRT output Fill memory command 139 207,208 5·1-" Disk access times 5·1" Drives, dimensions 13 5·1-" Floppy disks Disk Parameter Header 213 Double-sided 208.215 Interleave 223.224 Single,sided. 207.214 Track formats 219.220 Floppy disks 213-226 Connector (1) 19 Illustration 20 Disk parameter block (DPB)214-218 Disk parameter header (DPH) 213 Interleave 223.224 Track formats 219-222 157 Font generator, 1/0 Port # Font ROMs (U57 & US8) 43 Font selection 43,44, 134 40 CPS Printer 249.250 Form feed ·40 CPS F ·20 CPS Format, floppy disks Front cover switches 4.03 ROM 40 CPS Printer DC1/0C3 135 237-252 237 HPR05 Description 237.238 Interface 247·249 Access cover 238.239 Command codes 242-244 Cont. parael switches 239.240 238.239 227.228 • ASCII 196 -LPK 205 -ASCII 196 - LPK 205 4,5 BOOS Electrica,l interface 246-250 BIOS 249.250 CCP 241 qps Functional description Font selection OperatiQg codes 8 Uses 228 219-222 ·20 CPS -40 Function key Priority 239 ROSR Index -Interface Operating systems 33 Floppy disk (J1) Ports System monitor - ROM - Connt;!ctor 19 -illustri;ltion 20 -Interface Keyboard connector (J2) Parallel port (J8) G· -Connector -Illustration . - Picture General Purpose PIO Ports A & B, Description 43 Specifications 135 Get address of timeof-day variables Get config status Get disk map table address Go to command Graphics character set Mode Power supply·(JS & 6) Printer connector (J3) Rigid disk (J 1) 180 181 38 19 23 21 24 22 19 - Connector 19 - Illustration 20 -Interface 39 System bus connector (J 13) 178, 179 140,141 18S 183 -Connector 27 - Description 28-32 Vid.eo connectors (J7) Hardware description 22 2-4 Disk drives Display Keyboards Printers H System board Hardware handshaking Hardware interface • HMINMI COMM port - 40 CPS 241 Disk drive - 20 CPS 230 Expansion slot 237,238 HPR05 desc. - 40 CPS Hardware connectors 19-39 COMM connector (J4) 19 COMM port (J9) connector - Etch 1 CPU 25 - Etch 2 CPU 26 Daughter board - Floppy 38 -Rigid 39 Disk access (J 12) - Description Index 148 5,6 34-37 Keyboard Parallel port Printer Hardware scrolling Head Step Rate,' Configur.com Configuration sector Here Is Switch, (40·CPS) Hex codes 46 8 225 239 - 40 CPS 245 - 20 CPS 234 9 Home cursor (ESC code) Home disk, BIOS Horizontal Motion Index 188 GP-PIO channel B A2 SIO channel A SIO channel B -40 CPS 241' - 20 CPS 230 ZSO-A Baud rate 187 Horizontal tab - display 144 Host computer 144-148 Host Terminal mode Double density select Font generator Scroll register Baud rate Single density select Speaker Interleave, (flo'ppy disks) Channel Command set Interrupt mode 2 Interrupt vectors Data bits Monitor output command Option Summary CTC Parity GPPIO Port SIO Disk Stop bits Humidity requirements 223,224 41, Cl Cl, C2 18 System PIO Interrupts CTC 134 GPPIO 135 510 135 Daisy-chain vectoring I/O Channel, setting baud rate 10BYTE 144 CP/M-SO, device mapping 153 CP/M-a6, device mapping 154,155 Console input 167 Console output 168 Console status 167 Directed 1/0 168 Printer status 169 Input command (Monitor) 141 Input/output Port assignments 156, 157 SOS6 CTC GP-p,IO channel A 10 34-37 Expansion slot 2S-32 134 System PIO J 167-169 Printer output CRT! 42 Disk J 1 (Disk access) 19, 20, 38, 39 J2 (Keyboard) , 19 J3 (Pri nter) 19 J4 (Communications) 19 J5 (Power supply) 22 J6 (Power supply)' 22 J7 (Video) 22 J8 (Parallel' connector) 23, 24, 43 25 J9 (Parallel port, Etch 1) Index J9 (Parallel port, Etch 2) 26 111 (Option connector) 43, 135 J 12 connector 33-37 J 13 connector 27-32 151, 158, A l-A5 Jump vectors K Line feed switch (40 CPS) 239 Line feed or cursor down 187 Line insert 192 List device 153, 154, 167-169 A2 List output, BIOS List status, BIOS A4 Listings: Appendix BIOS jump table H ROM E Banked physical driver Key code chart: Cold start loader G Macros & Symbols F J Position-encoded kybd handler - ASCII -lPK Keyboards 198.199 202-204 3, 5, 195-206 FIFO variables Cl 133 195-199 ROM ASCII 224.225 Connector (J2) 19 157-165.C1 Data input Device Mapping 153.154 Dimensions 13 204 Enter key, unique codes Handler 201 Input (System PIO) 43.166 Input channel 134 Interface (FIFO variables) 48.(1 low profile 200-206 Product Codes 3 Status 166 201 Translation tables Bit mask 142 820-11 153 1~ 1~ Logical to Physical Dis~ Mapping Table 178, 179, C2 Logical/physical 213 translate tables Low profile keyboard 200-206 Auto-Repeat Cursor'keys Data format Dimensions Enter key. unique codes Function key' uses Key code chart Keyboard handlef Main key array Numeric key pad Low profile ROM 133,134,204 M L 153,154, 167-169 (device mapping) , Line delete .. Load from disk command Logical device names LsT Index 192 MS-DOS 10,11,151 Macros & Symbols listing Fl-F24 11 Main key array Protocol • • ASCII 195 ·lPK 200 Margin & formatting codes ·40 CPS ·20 CPS ROSR Read disk sector Typewriter 242 231 Memory allocation 44,45 Memory banks 41-43 138 Memory contents Memory pointers C2 Memory size: RAM/ROM 2 Microsoft 10,11,151,01 Miscellaneous f.unctions 117-182 Verify memory block Write disk' sector Monitor entry vector table More interrupt vectors B1 C2 N Cold start Numeric key pad Get configuration status Get disk map table address Get TOO variable -ASCII 195 -LPK 200 Start screen print Warm start Miscellaneous printer codes: ·40 CPS 243 -20CPS 232 o Mode 2 Interrupt Vectors Cl, C2 Modem 42, 135, 136 (channel, baud rate generator) Modes of operation 145 (Host terminal) Modify memory Monitor calls in BASIC Monitor commands Summary table 137 241·244 - 20 CPS 230-233 Operating environment Operating mode switches: Baud rate - 40 CPS -20CPS Fill memory Goto Host Terminal Input load fro'!'disk Modify memory Output. 170, 174 46 -40 CPS Copy memory Display memory Extended memory test 12 138, 139 01-03 137-149 1-second interrupt Offset, display Operating codes: 13 238-240 227-230 Operating System General 4,5 Interface 151-18:! Output codes, keyboards: - ASCII 198,199 -low Profile 202-204 Output command Output ports Output status, comm 141, 142 134-136 165 Index Overflow Switch (40 CPS) 240 Printer 4,5, 19,135 Position-encoded keyboard Handler p 201 J1-J3B Listing 191,192 Position the cursor Power indicator: PIO, (general) 43, 134, 135 Paper movement, printer: - 40 CPS - 20 CPS 243 231 Parallel 110 controller 134, 135 Bank switching -40 CPS 239 - 20 CPS 22B Power on sequence • 133-136 Power supply (J5 & 6) 22 Print Chk switch (40 CPS) 240 Printers, general 4,227-252 Floppy drive select A66 Control switch Floppy side select 40CPS 20CPS Baud rate command Font selection Keyboard input channel Parallel port 2,6,43 Connector 23,24 Parallel printer Parity 43, 135 Host Terminal 145,146 249,250 237 227 144 136 Baud rate generator 238,251 Buffer Channel 42 Connector (J3) 19 Dimensions 13 40 CPS switch 240 Entry points 163,164 20 CPS switch 229 Output 163,,164 Pass upper bit of data from keyboard Pause switch (20 CPS) Physical device names 190 228 820-11 153 - 40 CPS 16/8 154 Physical Disk Interleave 223,224 Physical driver ~ 20 CPS C3 Request block 161, 162, 176, C3 Physical format, disk drives 219-222 Physical to Logical Device Mapping 167 Pixel resolution 15 Ports Commun,ication 4,5,19,25,26,135 Parilliel • Index 42,43,135,136 Port Status 163 Printing commands Address table General 163 Overview 4 23,24 243 232 Printwheel selection (40 CPS) 238 Product code numbers 3, 4 Programmable functions: 170-176 l-second interrupt Processing while 1/0 pending Sample program Soft disk error Soft error recording System exit points Programming considerations: BIOSA 1-A5 CRT Control codes 187,lB8 13 CRT Escape codes 189-193 Display 186-193 Rate -40 CPS 242.243 - 20 CPS 231.232 - 40 CPS 245 - 20 CPS 234 -40CPS 241 230 XONIXOFF I Serial printers A2 R RAM, CRT 41-46 243.244 - 20 CPS 232.233 -ASCII 195 -LPK 205 Reserved 148, 149 Hardware handshake -40CPS Repeat keystations: Proportional spacing, (HMINMI) -20CPS 15 Remote Diagnostics: Printer control codes Punch output, BIOS 183 Memory Escape sequences Protocol command 43 Refresh RAM" ASCII Keys 198.199 Low Profile Keys 202-204 Ports Tracks 214-218 157 Reset Switch (40 CPS) 239 Reset, Power on 133-136 Resident monitor 137-149 commands 15 Resolution, screen Restore previous attribute mode 187 Ribbon/Paper switch (40 CPS) 240 Rigid disk conn. (J1) 19,20,39 Attributes Driver Font Selection s Memory Allocation Offset Power on Refresh RAM Scroll Register ROM 5,41,42, 133-136, 158 ROM listings E1-E 11 0 158 ROM/O.S. Interface ROSR 5,41,44,47,133-136,170 RS232 (See Comm port) RTS 135, 136 Read disk sector command 143 162, AS Read sector • Reader inP4t A2 Real Time C'lock 174 (See also pock) 14 7 data bits (SIO controller) 110 1797 - Western Digital 279-302 6-8k ROM 2, 42 16/8 physical device mapping 153, 154, 167-169 Application programs Communication channel IGBYTE Logical device names Physical device names Physical devices 64k RAM 2,42 ROSR monitor Index Z80-ACPU SA 1403 Proce~sing while 1/0 pending 174 Soft Error Recording 176 SA 14030 controller 254-278 SA400l207, 214, 219, 220,223, 224 SA450 208,215,219,220,223,224 SA800 209,215,216,221,224 SA8S0 210,216,221,224 SA 1004211,217,218, 2i3. 224 SASI interface 47 510, (general) 42 510 Channels: -A 135,136 - B 135,136,163,164 510 controller 42, 135, 136 SIO-B Input data 163 Input ready status 163 Output data 163 Output ready status 164 Sample programs Z80-A assembly 171-173 Monitor calls - BASIC 01-03 Bank switching 04 Schematics 109-132 Screen attributes - see Attributes Screen codes 186-193 Screen print 182 Screen resolution: Description 16 Specification 15 Scroll switch (40 CPS) 239 Scroll register . 45,46 Hardwa~e scrolling Offset Sectors per track 207-211 Sector translate, BIOS AS Table 213 Vector 152 Sectran 152, A5 Seldsk 152, A3 Index Select media format 161 Serial I/O Controller 42, 135, 136 Async modem port Baud rate ChannelB Printer port Set blink attribute 191 187 Set cursor character A4 Set OMA address 159 Set direct CRT cursor Set graphic character 191 191 Set inverse video 191 Set low intensity A'3 Set sector A3 Set track 253-278 Shugart - 14030 Side selection 43,134, 161 161 Single density . 223,224' Skewing Soft disk error 176 Soft error recordiflg 176 Spacing select (40 CPS) 238 47, 157 Speaker (bell, tone) Specifications . 13-16 - 820-11 & 16/8 Dimensions Disk drive format Disk drive storage Display Electrical Operating environment Specifications 40 CPS 251,252 Cabling requirements Character set Character spacing Power requirements Print buffer Print line Printwheels 20 CPS 235,236 Cabling -requirements 15 Character set Character spacing Operating codes Power requirements Print buffer Speci fications Vertical motion index (VMI) Operating mode switches Print line Printwheels Start screen print Storage capacity Strapping options, Comm port Strobe, printer Synchronous 1/0 Port 182 207-211 25,26 135 . Port selection System board System bus 2 18~48 Connector (J 13) 27-32 181 183-193 CPU CRT controller PIO Controller 510 Controller Bus expansion Daughter board Dual parallel ports Memory allocation Parallel keyboard interface Graphics character set Programming considerations Scroll register Serial 110 ports .Text character set Speaker Time constant 170-176 4, 133-136 43,134 C1 T 20 CPS Printer Dimensions General' 13 227-237 Cabling requirements Command codes Control panel switches Fronf cover switches Horizontal motion index (HMI) Powt!r indicator 16 6-Bk ROM memory CTC 157 42 System exit points System monitor, ROM System PIO System storage 18 184 41-48 64k RAM # System configuration System display Temperature req.· Text character set Theory of Operation Time-of-oayand timer variables 47, 180,C4 180,(4 Timer variables Tone generator .. 47,157 (speaker, bell) Track format, disk. 207-211 drives 207-211 Transfer rates 144 Typewriter command v Vector table Verify command Vertical Motion Index: -40 CPS - 20 CPS 81 140 241 230 Index Video bit rate Video connector (J7) Video rate 15 22 15 z w Z80-A WD1797 174, 176, Warm boot Warm start Western Digital General Reprint 279-30~ A1 177 2,41,42,47-108 133, 158, C1, c2 Assembly language ex. Zilog Reprint' r 171·173 49-108 174.176 279-302 WP commands: 40 CPS printer 243 20 CPS printer 232 Write disk sector command 143 Write sector, BIOS 162, A4 x XON/XOFF protocol Xerox files 148 CP/M·60 disk 7·9 CP/M-66 disk 10 Xtended memory test command Index 139 17 18 Index

Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.3
Linearized                      : No
XMP Toolkit                     : Adobe XMP Core 4.2.1-c043 52.372728, 2009/01/18-15:56:37
Producer                        : Adobe Acrobat 9.2 Paper Capture Plug-in
Modify Date                     : 2010:01:14 20:44:44-08:00
Create Date                     : 2010:01:14 20:44:44-08:00
Metadata Date                   : 2010:01:14 20:44:44-08:00
Format                          : application/pdf
Document ID                     : uuid:f3499c06-8029-4c44-8262-1b7899f69140
Instance ID                     : uuid:d963354d-7ecb-4c9f-abc8-5b89f9696ea7
Page Layout                     : SinglePage
Page Mode                       : UseOutlines
Page Count                      : 340
EXIF Metadata provided by EXIF.tools

Navigation menu