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 .
Page Count: 340
Download | |
Open PDF In Browser | View 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
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 : 340EXIF Metadata provided by EXIF.tools