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 "
,.' . _ .
253-278. Reprint permission granted bYVVest~rn 'plglt,ill for .WesternOigltal Reprint on pages 279302. ZlIog,
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
is a trademark of Microsoft Corporation.
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
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
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
15- 1 7 18
19 20 21 22
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
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
Cold Start Loader
H. BIOS Jump Table
Banked Physici;11 Driver
Position-Encoded Keyboard Handler
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.
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.
Appendices continued 1<. L.
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
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.
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
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.
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.
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.
Xerox Files BACKUP.COM
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
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
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
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.
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
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.
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.
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
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.
Miscellaneous Hardware Information
DISPlA V SPECIFICATION SIZE: TYPE:
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
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
SYSTEM BUS EXPANSION SLOT ELECTRICAL The DC system power available at the expansion slot is as follows:
5t" system PIN 50 PIN45
+5VDC + 12V DC #1
8" or Rigid system
ENVIRONMENTAL The following temperature, humidity and altitude environmental requirements are specified:
Operating Non-operati ng
Temp. COCelsius) , 10 to 32 -77 to 66
Rel.Hum. (%) 20 to 80 15 to 90
Altitude (miles) 1830
Any optional or additional electronic assembly using the expansion slot must be capable of performing to design specification when the host is subjected to the environmental range, above. Furthermore, the presence of such an assembly in the expansion slot must not degrade performance with regard to. the above environmental requirements.
Value Port A Strobe PortA Ready PortA Bit 0 PortA Bit 1 PortA Bit 2 PortA Bit 3 PortA Bit 4 PortA Bit 5 PortA Bit 6 PortA Bit 7 Port BReady Port B Strobe Port B Bit 0 Port B Bit 1 Port B Bit 2 Port B Bit 3 Port B Bit 4 Port B Bit 5 Port B Bit 6 Port B Bit 7 Ground
Value (M) TXO to Pin 3 (T) TXO to Pin 2 (M) RXO from Pin 2 (T) RXO from Pin 3 (M) RTS to Pin 5 (T) RTS to Pin 4 (M) CTS from Pin 4 (T) CTS from Pin 5 (M) OTR to Pin 8 (T) OTR to Pin 20 (M) OCO from Pin 20 (T) OCO from Pi n 8 Clock supplied to Modem as RX Clock Clock supplied to SID with RX Clock Modem supplies SID with RX Clock . Clock supplied to SID with TX Clock Modem supplies SID with TX Clock Clock supplied to Modem with TX Clock
The filled-in pins indicate the options as they are jumpered on an 820-11 or 16/8. Note:
(M) indicates modem (data communications equipment) function. (T) indicates terminal data equipment) function. For instance, exercising the (M) strap option will allow communication with a modem; exercising the (T) strap option will allow communication with a terminal. The above shows factory settings for (T).
(M) TXO to Pin 3 (T) TXO to Pin 2 (M) RXO from Pin 2 (T) RXO from Pin 3 (M) RTS to Pin 5 . (T) RTS to Pin 4 (M) CTS from Pin 4 (T) CTS from Pin 5 (M) OTR to Pin 8 (T) OTR to Pin 20 (M) OCO from Pin 20 (T) OCO from Pin 8 Clock supplied to Modem as RX Clock
The filled-in pins indicate the options as they are jumpered on an 820-11 or 16/8.
Note: To change from ASYNC to SYNC on the Etch 2 CPU requ.ires modification to the operating system rather than moving jumpers. .
(M) indicates modem (data communications equipment) function. (T) indicates termioal data equipment) function~ For instance, exercising the (M) strap option will allow communication with a modem; exercising the (T) strap option will allow communication with a terminal. The above shows factory settings for (T).
Pin Name Data bus Data bus Data bus Data bus Data bus Data bus Data bus Data bus Address bus Address bus Address bus Address bus Address bus Address bus Address bus Address bus Address bus Address bus Address bus Address bus Address bus Address bus Address-bus Address bus Write·
Meaning Data Bus (Tri-state, inputJoutput, active high) cbnstitutes an 8-bit bi-directional data exchange with memory and 1/0 devices.
Address Bus (Tri-state, output, active high) makes up a t 6-bit address for up to 65k bytes of memory for 1/0 devices data exchange. I/O addressing uses the lower 8 bits for direct selection of up to 256 output ports. AO is the least significant address bit. During refresh time, the lower 7 bits contain a valid refresh address for dynamic memories.
Write (Tri-state, output, active low) indicates that the CPU data bus holds valid data to be stored in the addressed memory or I/O device. Read (Tri-state, output, active high) indicates that the CPU wants to read data from memory or an I/O device. The addressed 1/0 device or memory should use. this signal to gate data onto the CPU data bus. InputJOutput Request (Tri-state, output, active low) signal indicates that the lower half of Miscellaneous Hardware Information
Machine Cycle One
the address bus holds a valid I/O address for an 1/0 read or write operation. This signal is also generated with a "/M1" signal when an interrupt is being acknowledged to indicate that an interrupt response vector can be placed on the data bus. Interrupt Acknowledge operations occur during "/M1" time, while 1/0 operations never occur during "/M1" time .. Halt (Output, active low) signal indicates that the C;:PU has executed a Halt Software instruction and is awaiting either a non-maskable or maskable interrupt before operation can resume. Memory' Request (Tri-state, output, active low) signal indicates that the address bus holds a valid address for a memory read or memory write operation. Refresh (Tri-state, output, active low) indicates that the lower 7 bits of the address contain a refresh address for dynamic memories and the "/MEMRQ" signal should be used to perform a refresh cycle for all dynamic RAMs in the system. During the refresh cycle" AT' is a"logic zero and the upper 8 bits of the address bus contain the "I" register. Machine Cycle One (Tri'state, output, active low) indicates that the current machine cycle is in the op-code fetch cycle of an instructi"on. Note
that during the e?
Priority Chain In
I\l1icrAIl::.nA"",c H:u.hM::.r", Infnrmrltinn
for as long as this signal is active. This signal allows memory or 1/0 devices of any speed to be synchronized to the cpu. Use Of this signal postpones refresh as long as it is held active. System Reset (Output, ~ctive low) indicates that a reset has been generated either from push button reset or the power on reset circuit. The system reset will occur only once per reset and will be approximately 10 microseconds in duration. Processor Clock (Output, active low) is a single-phase system clock of4 MHz. Priority Chain In (Input, active high) is used to form a priorityinterrupt daisy chain when more than one interrupt-driven device is being used .. A high level on this pin indicates that no other devices of higher priority are be~ng serviced by a CPU interrupt service routine. Memory. Expansion (Output,.active low) signal is low during "/MEMRQ" for a block of addresses from" 4000 thru 7FFF" if the Bank Switch is set for the ROM side of memory. Memory Expansion (Output, active low) signal is low during "/MEMRQ" for a block of addresses from "sooo thru BFFF" if the Bank Switch is set for the ROM side of memory. Speaker pin provides access to the speaker on the CPU Board. This pin is connected to the open collector output of the speaker 31
DC Power Ground
+ 12VDC 47,45
36 38 43 46
Not Not Not Not
driver (75451). This output is normally connected thru the speaker and parallel 100 ohm resistor to a + 12 VDC, but can be disconnected by jumper option. + 5VDC system power. Ground-System is signal ground and DC return. + 12VDC system p~wer.
Data bus Data bus Data bus Data bus Data bus Data bus Qata bus Data bus Address Bus Address Bus Address Bus Address Bus Address Bus Address Bus Address Bus Address Bus Address Bus Address Bus Address Bus Address Bus Address Bus Address Bus Address Bus Address Bus SYS-PIO Port A SYS-PIO Port A SYS-PIO Port A SYS-PIO Port A SYS-PIO PortA SYS-PIO Disk Wait Read Memory Request
Data Bus (Tri-state. inputJoutput. active high) constitutes an 8-bit bi-directional data exchange with memory and 110 devices.
Address bus AO-A 15 provides addresses for 6Sk bytes of memory. Bit AO and A 1 while under fRD and IWR control select the register to receive transfer of data on DO-07: fRO IWR A1 AO 0 Status REG Command REG 1 Track REG Track REG Sector REG Sector REG . , 1 Data REG Data REG AS while under fRO and IWR Control Select Density: = double density 1 = singledensity Port A bit 0 Port A bit 1 ; PortA bit 2 PortA bit 4 PortA bit 5
Generates Wait signal to CPU. Controls input on the data registers 00-07. IMREQ indicates that the address bus holds a valid address for a memory read or memory write operation.
Mic;cp.llaneous Hardware Information
Machine Cycle 1
Mi .. callaneow; Hardware Information
IIORQ indicates that the lower half of the address bus holds a valid 1/0 address for an 1/0 read or write operation. IIORQ is also generated concurrently with 1M 1 during an interrupt ackn~wledge cycle to indicate that an interrupt response vector can be placed on the data bus. Controls output on the data registers 00-07. IBUSACk indicates to the requesting device that the CPU address bus, data bus, and control signals IMREQ, IIORQ, IRO, IWR have entered the high impedance states. The external circuitry can now control these lines. 1M 1, together with fM REQ indicates that the current machine cycle is the op-code fetch cycle of an instruction execution. 1M 1, together with fIORQ, indicates an interrupt acknowledge cycle. IBUSREQ has the highest priority and is always recognized at the end of the current machine cycle. IBUSREQ forces the CPU address bus, data bus, and control signals IMREQ, IIORQ, IRD, and IWR to go to a high impedance state so that other devices can control these lines. IBUSAK 1 is daisy-chained Bus Acknowledge output which indicates to the reqw~sting device that the CPU address bus, data bus, and control signals IMREQ, JlORQ, IRO, IWR have entered the high impedance states. The
external circuitry can now control these lines. 11797CS logic low selects the Chip Select Floppy Disk Controller chip and enables computer communication with the device. INT is generated by I/O devices. Interrupt The CPU honors a request at the Request end of the current instruction if the internal software controlled interrupt enable flip-flop (IFF) is enabled. Non-Maskable NMI is always recognized at the Interrupt end of the current instruction, independent of the status of the interrupt enable flip-flop and automatically forces the CPU to restart at location 0066h. IHAlT indicates that the CPU has .Halt executed a Halt instruction and is awaiting either a non-maskable or a maskable interrupt (with the mask enabled) before operation can resume. While halted, the CPU executes NOPs to maintain memory refresh. Clock 16 MHz clock. Clock 4 MHz clock. Device 110 All interface lines use Interface negative logic. Device I/O Interface Device I/O Interface Device I/O Interface Device I/O Interface Device I/O Interface Device 110 Interface Device I/O Interface Device I/O Interface Device I/O Interface Device I/O Interface Device I/O Interface Device I/O Interface _Miscellaneous Hardware Information
Device 1/0 Interface Device 1/0 Interface Device 1/0 Interface Device I/O Interface Device 1/0 Interface DC Voltage + 12 Volts DC Ground Ground and DC Return Ground Ground and DC Return DC Voltage + 5 Volts DC DC Voltage + 5 Volts DC Reset Reset indicates that a System Reset has been generated either from push button reset or power on reset. Not Used Not Used Not Used
-27 ~-S""'T--E-P-- g -----10--=-";"::';-- L -2B WRITE DATA 10 -11 ..........:.:.:..;~~..:.. M -
9L10WAITE DATA MSTEP
WRITE GATE TRACK 00 WRITE PROTECT READ DATA +5VDC +5V RET + 12VOC +12RET
Miscellaneous Hardware Information
Miscellaneous Hardware Information
Theory of Operation The display processor houses the system board, disk drive daughter board, the CRT, the power supply, and one bus expansion slot. The system • • • • • • • • • • • • •
board has the following: Central Processing Unit (CPU) 6 to 8k of Read Only Memory (ROM) 64k of Random Access (ReadIWrite) Memory (RAM) Counter Timer Circuit (CTC) Serial Input/Output Controller (SIO) Parallel Input/Output Controller (PIO), Two RS-232-C Serial 1/0 Ports Dual 8-bit Parallel Ports CRT Controller and CRT Refresh Memory Speaker Disk Drive Daughter Board Connector Bus Expansion Connector • 8086 Co-processor (1618 system) Parallel Keyboard Interface i ,I
CPU The CPU is a Zilog Z80-A operating with a clock rate of 4 Mhz. It is initialized to use Interrupt Mode 2 by the ROSR monitor at power on. The Z80-A also provides refresh to the 64k of dynamic memory on the system board. Therefore, the I and R registers should not be altered by an application program.
ROM and RAM Memory The System Board has two banks, of memory. Bank 1 has 64k of RAM. Bank 0 has up to 8K of ROM. When power is turned on or RESET is pressed, the Monitor, ROMICRT RAM (Bank,o), is enabled by the hardware and the contents of the monitor ROM are moved by the CPU to the program memory starting at location fOOOH. When the move is complete, the CPU transfers control to A1
location FOOOH and RAM (Bank 1) is enabled. Bank 0 is also enabled when a character is sent to the screen. 6-8k ROM The CPU board has provisions for 4-2k x 8 Read Only Memory devices. The first 3 (U33, U34 & U35) store the firmware for the ROSR monitor. The fourth (U36) provides translation tables and related firmware for the position-encoded low profile keyboard. 64k RAM The 64k byte (65536 x 8) RAM provides space for a portion of the ROSR monitor (upper 4k FOOOh - FFFFh), and 60k (OOOOh - EFFFh) is free for programs to execute in such as an operating system and an application program. This RAM is dynamic and refresh is provided by the Z80-A CPU.
Counter Timer Circuit (eTC) The CTC has four independently-programmable counter/timer channels, each with a readable downcounter and a selectable 16 or 256 prescaler. Downcounters are reloaded automatically at zero. Each channel isprogrammed with two bytes. Once started, the CTC counts down, reload~ its time constant automatically, and resumes counting. Internally, the CTC generates a unique vector for each channel.
SeriallnputlOutput Controller (S10) The Serial,l/O Controller has two independent, full-duplex channels with separate control and status lines for modems or other devices. Data rates are from 50 to 19,200 bits/second. Channel A (modem) supports both Asynchronous and Synchronous protocols. Channel B (printer) is dedicated to Asynchronous. The receiver is quadruple-buffered and the transmitter is double-buffered. The controller also supports daisy-chain interrupt vectoring for interrupts without external logic. Serial I/O Ports The 820-11 CPU board contains a Z80-A SIO that provides two useraccessible serial ports to the 25-pin printer and modem connectors on the rear of the display processor. The Communications port is capable of operating in synchronous or asynschronous modes, while'the Printer port is only cap~ble of operating asynchronously. On an Etch 2 CPU, there is a 30-pin connector. Selection of synchronous or asynchronous mode is under program control as opposed to the Etch 1 CPU (with a 40-pin .47
Theorv of Operation
connector) where a physical change is required to make the sync or async selection.
Parallel Input/Output Controller (PIO) There is a System and a General Purpose Parallel 110 Controller which provides direct interface between the CPU and the peripheral devices. Each controller has two 8-bit 110 ports. The System PIO is dedicated for keyboard input, memory bank and CRT font selection, and floppy disk drive and side selection. The General Purpose PIO provides the user with a dual 8-bit parallel 110 port for interfacing with peripherals.
Parallel Port The Z80-A General Purpose PIO is accessible on the main CPU board on connector J8. This PIO is programmed by the ROSR monitor at power-on to provide a parallel Centronics-compatible interface for a parallel printer. A transceiver is physically located between the Z80-A PIO and the J8 connector. Jumpers must be installed on option connector J 11 to select whether the transceiver will transmit or receive data. See also page 24.
CRT Controller The CPU board contains the 2k of refresh RAM where the characters that are to be displayed on the screen are stored. It also has the necessary electronics to provide the control signals (sync and video) to the CRT monitor. The CPU board has two character font ROMs; each font ROM contains two character sets. US7 US8
Normal white on black font Reverse video font Normal whi~e on black font Graphic chqracter font I
The CRT driver in the ROSR monitor translates character-level escape sequences into commands as to which of the font ROMs to select and which of the two fonts inside the selected font ROM to select. Basically, characters that are stored in the CRT's refresh memory address the selected font ROM; the font ROM provides dot information to the video input of the CRT so the character can be displayed. .
ThoarH o-fI'Ioor"ltinn ...
The characters on the CRT can have one of the following attributes: Blink Inverse video Graphics Low intensity The most significant bit of the character stored in the CRT's refresh memory determines if the character is to be displayed with its attribute enabled. The ROSRmonitor provides a character-oriented command format for controlling the screen and font ROM selection. It is recommended that programs use this method to control the CRT and its attributes.
Theory of Operation
CRT RAM Memory Allocation The CRT RAM occupies 3000H - 3fFFH in bank 0 (System Bank). Each 80character line on the CRT is allocated 128 bytes in the CRT RAM. Listed below are the starting and ending addresses for each of the 24 rows in the CRT RAM. The example (at the bottom) shows some character locations in CRT memory. (Assumes scroll register = 23) Row
Scroll Register To eliminate the delay associated with software scrolling, hardware scrolling is employed. Writing into the scroll register (Port 14h) adds an offset to the line address developed by the line counter. Fqr instance, with an offset of zero (scroll register 0), the data at locatjon 3000H (in the CRT refresh memory) will be displayed on the bottom row of the . display. If the offset is 23, the data at location 3000H will be displayed on the top row of the screen. The scroll register is loaded from AS to A 15 rather than 00 to 07. Therefore, the scroll value must be in the B register' if an indirect OUT instruction is used.
Speaker The 820-11 and 16/8 have an audio speaker connected to two I/O ports (28h and 29h). Outputting to one I/O port causes the speak~'!r cone to be pushed out; outputting to the other I/O port pulls in the speaker cone. The actual value output to these ports has no significance. To generate a beep, the application program can simply send an ASCII Bell character to the CRT. To generate a tone other than the standard bell character, the program must move the speaker cone in and out at the desired frequency.
Disk Drive Daughter Board The disk drive connector on the rear is a "dual personality" connector, depending on which disk drive daughter board is installed on the mother board. Presently; there are two types of disk interface: Shugart SASI interface controller suitable for interfacing to a SA 14030 Rigid Disk Controller. Floppy-only interface suitable for interfacing to Shugart SA800/SA400USA8S0/SA450 dual daisy-chained disk configurations. The ROSR monitor detects which daughter board is installed at power-on and selects the appropriate physical disk driver firmware to process physical disk drive requests. Caution: If a rigid disk drive unit (U07, U08) is connected to a floppy display/processor (U03JH69, U04), the rigid controller PWB will be destroyed when power is switched on. The rigid disk drive unit must be connected only to a rigid display/processor (U05/H70, U06). Connecting a floppy disk drive unit (929IT66/973/Fl 0, E41/E44/E42/E89) to a rigid display/processor (UOS/H70, U06) may c'ause the processor PWB to fail. Before connecting any disk drive unit to a display/processor, check that the configuration of the display/processor is compatible with the disk drive unit. The configuration can be determined in one of two ways. (1) Check the product code of the display/processor. The product code is the first three digits of the serial number, located on the underside of the display processor. (2) Verify that the proper drive interface PWB is installed by checking the part number. .
System Bus The System Bus contains an 8-bit Data Bus (Tri-state, Input/Output) bidirectional Data exchange with memory and I/O devices. It has a 16-bit Address Bus to address up to 64k of memory for 1/0 devices data exchange.
Keyboard Interface The keyboard FIFO (Etch 2 CPU only) has space for 16 (decimal) entries. Associated with the keyboard FIFO are input and output position pointers and a count of the number of entries curr'ently in the FIFO. The available memory pointers provide the addresses bounding the available unused RAM in the memory reserved for system use. Although these pointers are a supported feature, there is no guaranteed available memory size. There are twotables used to disk map a logical disk to its physical driver; The first table, Seltab, associates a logical disk number with a physical disk number; The second table, Drvtab, identi'fies which physical disk driver is appropriate to use with the selected physical disk. The physical driver command block is a collection of all information necessary for the disk system to perform the requested disk activity. The timer and clock variables are a collection of locations used for main.taining the one second timer and the time-of-day clock and calendar; The console command line buffer immediately follows these variables.
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).
400 msec maximum fc;>r 13.1 inches (332.77mm) of motion.
Left or right.
1/48 inch (.53mm) minimum.
Bidirectional, except with unidirectional forms tractor and unidirectional pin feed platen.
20 & 40 CPS Printers
Paper Feed Speed:
4 inches (101.6mm) per second plus 40 msec (typical) settling delay time .
.000 - .0tO inch (.2S4mm) at low setting (1-3 part forms) .010 - .027 inch (.254 - .686mm) at high setting (46 part forms)'.
End of ribbon, paper out, and cover open.
Self test; host program control through escape sequences; data receive/transmit speed selection.
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.
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.
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 interleaving is programmable with up to a 16 way interleave.
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
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..
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
Temperature FIC Max. Wet Bulb Relative Humidity Altitude
32°/0° to 131 °/55°
-40°/-40° to 1670175°
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
CD 0 CD 0 ®
4 - ... 24 VDC
I.!::=~=:::J FIGURE 1. J10 DC POWER CONNECTOR 2.3 PHYSICAL PARAMETERS Length: Width: Height: Weight:
3.0 SA1403D DISK DRIVE INTERFACE Shugart.SA 1000 and SA8001850 disk drives are interfaced to the controller via J1 , J2, J3, J4 and JS. Refer to Figure 2 for connection blqck diagram. SA14030 SERIES CONTROLLER
Jl 50 PIN EDGE J2 20 PIN SOCKET
J6 HOST INTERFACE
50 PIN SOCKET
J3 20 PIN SOCKET J4 .20 PIN : SOCKET
Jl0 6 PIN SOCKET
JS 20 PIN SOCKET
CONTROUDATA. SA I 000/SA800/SASSO
"',..,. ____ .1"' ... DATA
"'-..r-' SA1000 . L. _ _ ,..", ,.,,-1. ___ -.
. ....r-., DATA
-:'1 '---. ,."
... I '----"" SAl 000
SA 14030 Controller Reprint
SA1403D INTERCONNECT DIAGRAM
NOTE: The last physical device on the contrOl cable (drive to be terminated) must be an SA 1000. J1 is a 50 pin edge type connector which connects all drives ill a daisy, chain configuration. This connector carries control and data information for the floppy disk drives and control information only for the SA 1000 disk drive. Maximum cable'length should not exceed 20 feet (6 meters). The recommended mating clmnector for J1 is a 3M Scotchflex ribbon connector PIN 3415-0001. J2 through J5 are 20 pin socket type connectors used to radially connect the SA1000 data lines to the controller. Maximum cable length should not exceed 20 feet (6 meters). The' r,ecommended mating connector for J2 through J5 is a 3M Scotchflex PIN 3421-3000. Figure 3 shows the pinouts for J1 and J2 through JS. Jl
• SEEK COMPLETE
10 12 14
• TWO SIDED • HEAD SEL 2°
· SIDE SEL·,
• HEAD SEL 2'
• HEAD LOAD
• HEAD LOAD
• DRIVE SEL 1
· DRIVE'SEL 1
· DRIVE SEL 1
· DRIVE SEL 2
• DRIVE SEL 2
· DRIVE SEL 2
• DRIVE SEL 3
• DRIVE SEL 3
· DRIVE SEL 3
• DRIVE SEL 4
· DRIVE SEL 4
· DRIVE SEL 4
• DIRECTION SEL
• DIRECTION SEL
· DIRECTION SEL
• WRITE DATA
• WRITE DATA
• WRITE GATE
• WRITE GATE
· WRITE GATE
· TRACK 000
· TRACK 00
· TRACK 00
• WRITE FAULT
· WRITE PROTECT
· WRITE PROTECT
· READ DATA
· READ DATA
46 48 49 50
J2 THROUGH J5 . DRIVE SELECTED
... TIMING CLOCK
2 GROUND 4
GROUND 11 ... MFM WRITE DATA 13 GROUND IS ... MFM READ DATA 17 GROL/ND 19
10 • TIMING CLOCK 12 GROUND 14 · MFM WRITE DATA 16 GROUND 18 · MFM READ DATA 20 GROUND
FIGURE 3. SA1403D DRIVE CONNECTOR PINOUTS
3.1 CABLE TERMINATION The last physical drive at the end of J1 (50 pin) cable must be properly terminated. Termination networks are provided on the drives (refer to SA 1000. SA800 or SA850 OEM manuals for location of termination networks). Termination networks must be removed from all drives except the last drive on the cable to avoid multiple termination. NOTE: If a combination of fixed and floppy drive are used., the last drive at the end of the control cable must be an SA 1000.
4!O HOST CPU INTERFACE The SA1400 series controller interface is a general purpose 8 bit parallel D MA. The Host CPU is interfaced to the controller via connector J6 J6 is a 50 pin socket type connector. The· recommended mating connector'for J6 is a 3M Scotch flex ribbon connector PIN 3425-3000. The J6 interface cable should not exceed 20 feet (6 meters). t
4.1 HOST CPU ELECTRICAL INTERFACE All Host CPU interface signals are negative true. The signals are "Asserted" at 0 VDC to 0.4 VDC. The signals are "Deasserted" or inactive at 2.5 VDC to 5.25 VDC. 4.1.1 HOST CPU INTERFACE TERMINATION All Host CPU interface timing lines are terminated with a 220/330 ohm network. The Host CPU adapter should be terminated in a similar fashion (see Figure 4). The devices driving the controller inputs should be open collector devices capable of sinking at least 48 milliamps to a voltage level of less than 0.5 VDC (7438 or equivalent). ' , Jhe devices receiving the controller outputs s'hould be of the SCHMITT trigger type to improve the noise margin (74LS240. 74LS14. or equivalent). The Host adaptor should not load the bus with more than' standard TTL input load per line. TYPICAL HOST AOAPTOR
SA' 4030 CONTROLLER
3300 74LS240. 74LS14 OR EaUIVALENT
SA 14030 Controller Reprint
HOST ADAPTOR BUS TERMINATION
HOST CPU SIGNAL INTERFACE
The Hos! CPU signals are interfaced via J6. See figure 5 for J6 pinouts. J6 GROUND
• DATA BIT 0
• DATA BIT 7
• PARITY BIT
20 22 24 FOR FUTURE USE
26 28 30 32 34 36
... OUTPUT II
INPUT INPUT .... OUTPUT
GROUND NOTE: ALL SIGNALS ARE TIL NEGATIVE TRUE
FIGURE 5. J6 HOST INTERFACE CONNECTOR PINOUT 4.2 SA14030 HOST BUS 4.2.1 THEORY OF OPERATIONS Disk commands are issued to the SA 14030 via the host bus following a defined protocol. The host initiates a command sequence by selecting the controller on the bus. If the controller is not busy, it requests command bytes from the host for task execution. (Command structure is described in 4.5). Depending on the type of command. the controller wilrrequest either 6 or 10 bytes. Upon reception of the last command byte, the con. troller begins execution of the command.
SA 1403D Controller Reprint
For the data transfer commands. a check is performed on the disk address and status flagged if It exceeds tne drive limits. The data IS stored In a sector buffer before transfer to the host or disk drive. This buffer eliminates any possibility of data overruns between the host and the disk. Upon completion of the command. the controller will send completion status to the host. Further delineation of the completion status may be requested by issuing the appropriate sense commands. Odd parity is' generated by the SA 14030 for all information that it puts on the I/O bus. If ena,bled. the SA 14030 checks all information that it receives for odd parity. 4.3 SIGNAL DEFINITION Unidirectional Signals Oriven By Controller
Input/Output. When asserted. the data on the bus is driven by the controller; when deasserted. the data on the bus is driven by the host adapter. The host adapter will use this line to enable its drivers onto the data bus.
Control/Data. When asserted the data transmitted across the bus will be the command or status bytes; when deasserted the data will be the disk data bytes.
This bit is asserted as a tesponse to the SEL line from the host adapter and to indicate that the host bus is currently in use.
Message. When asserted indicates that the command is completed and status has been transferred. The assertion of this bit is always followed with the assertion cf I/O, and the assertion of REO, to cause a message byte transfer.
Request. This bit operates in conjunction with 1/0. C/O, & MSG. When asserted and 1/0 is asserted. REO will mean that the data on the host bus is driven by the contr.oller. When asserted' and 1/0 is deasserted, REO will mean that the data is driven by. the host adaptor (HI A). 1/0
d d a a a
a d d a a
d 'd d d a
Get command from H/A Get data from H/A Send data to H/A Send status byte to H/A Command done to H/A
TABLE 2. a
= asserted. d =. deasserted, H/A = host adaptor
4.4 UNIDIRECTIONAL SIGNALS DRIVEN BY HOST ADAPTOR ACK
Acknowledge. This bit is asserted as a response to REO from the controller. The timing requirements on this-signal with respect to thF' data is cescribed in REQuest section. ACK must be returned for each REQ assertinn
SA 1403D Controller Reprint
Reset. Assertion by the Host causes the controller to cease all 9perations and return to an idle condition. This signal is normally used during a power up sequence. A reset during a write operation would cause incorrect data to be writter on the selected disk. The controller may take a maximum of 2 seconds to respond to the select sequence following deassertion of the RESET line.
Select. When asserted indicates the beginning of the· command transaction. The H/A asserts SEL to gain the attention of the controller. Data bit zero on the host bus must also be asserted during SEL time to select the controller address. The controller will return BUSY within approximately 1tLs. 4.4.1 DATA BUS BITS 0·7 (DB)
These bidirectional data lines are used to transfer 8 bit parallel data to/from the Host adaptor. Bit 7 is most signifant bit. NOTE: All ifF lines utilize negative logic. 4.4.2 PARITY BIT This bit is asserted to maintain odd parity on all data and status information transfered to the Host. If enabled, the controller will test for odd parity on all command and data information transfered to the controller (see section 9:1). 4.5 HOST INTERFACE PROTOCOL There are 4 sequences required to initiate and complete a command to the SA 14030 series controller: 1)
Controller Selection Sequence
Command Transfer Squence
Data Transfer Sequence
Status and Message Transfer Sequence
4.5.1 CONTROLLER SELECTION SEQUENCE In order to gain the attention of the controller it is necessary to perform a selection sequence. Refer also to Figure 6. The Host must first test BSY to determine if the controller is available. If BSY is deasserted. the Host will assert data bit 0 (cortroller 10) and then assert SEL. The controller will then respond by asserting BSY. At this point the Host must deassert SEL and data bit O. 110 will remain deasserted throughout the selection sequence. 4.5.2 COMMAND TRANSFER SEQUENCE Following the selection sequence the controller will assert REO (see Figure 6). The Host will then place the first byte of the command descriptor block (see section 5.0) on the data bus. The Host will then assert ACK (if ACK is not asserted within 256 microseconds after the assertion of REO. the controller will abort the com· mand transfer sequence and attempt to transfer a status byte). The controller will respond by reading the byte on the data bus and then deasserting REO. The Host then must deassert ACK to begin the next REO/ACK handshake. This handshake must be completed to assure that all command and data bytes are transferred.
SA 1403D Controller Reprint Rev.-A
f-250 NS MIN 10~S MAX
. DB (J.7
t- 'I I-
-l . BUSY
460 NS MI'N (NOTE 11
690 NS MIN-l
· em 690 NS MIN
o NS MIN NO MAX
I I- -1
1-----460 NS MIN
1 - 0 NSMIN NO MAX
NOTE 1 ·2 SEC IMMEDIATELY AFTER" RESET
FIGURE 6. SELECT SEOUENCE TIMING
4.5.3 DATA TRANSFER SEQUENCE Following the command transfer sequence, the controller will respond on one of four ways: 1)
Begin seeking the drive.
Begin accepting write data from the Host.
Begin transferring read data to the Host.
Return status to the Host.
If the command sent to the controller involves a data transfer (see Figure 7), the controller will deassert the
C/O line to indicate a data transfer. If the data transfer is from the Host to the controller (write data) the 110 line will be deasserted. If the data transfer is from the controller to the Host (read data) the I/O line will be asserted. The controller will then set the REO line to request a byte transfer. The Host will respond by transferring a byte across the data bus and then asserting ACK (if ACK is not asserted within 256 microseconds after the assertion of REO, the controller will abort the data transfer sequence and attempt to transfer a status byte - see section 4.5.4). The Host will then deassert ACK and wait for the next assertion of REO. This handshake continues until all data has been transferred
4.5.4 STATUS AND MESSAGE TRANSFER SEQUENCE Following a command transfer or data transfer, the controller will initiate a status byte and completion message transfer. When a status byte transfer is required, the controller will assert C/D and 110 (see Figure 8). The controller will then assert REO. The Host must then read the status byte on the data bus and then assert ACK (if ACK is not asserted within 256 microseconds after the assertion of REO, REO will be deasserted. REO will then be asserted again).The controller will then deassert REO. The host will then deassert ACK.
.. Following the s~atus byte transfer, a completion message byte of all zero's will be transfered to indicate operation complete. The controller will assert the MSG line (along with 1/0 and C/O) and then assert REO. The Host may read the completion message byte on the data bus and assert ACK (if ACK is not asserted within 256 microseconds, the controller will deassert the MSG line and attempt to transfer a status byte). The controller will respond by deasserting REO. The Host will then deassert ACK. At this pOint BSY and all other controller 1/0 lines will be deasserted and the controller will return to an IDLE LOOP awaiting the nexiselection sequence.
SA 1403D Controller Reprint
262 ._Rev.·A ..
• DB ().7
100 NS MIN.
690 NS MIN.
FIGURES. STATUS AND COMPLETION SEQUENCE TIMING
5.0 CONTROLLER COMMAND DESCRIPTOR BLOCK Follow(ng the controller 'selection sequence the controller will request a command descriptor block (CDS)' which, depending on the class of command, may be either 6 or 10 bytes in length. The first byte of the CDS co~tains ~he command class and the command operation code. The re!!'Jalning b¥tes. specify the drive. logical unit number (LUN), logical sector address, number of ~ectors to be transfered or a destination device (Copy Command), and a control field byte. Commands are categorized into four classes as indicated: Class Class Class Class
0 1 2-5,7 6
Utility, Data Transfer and Status Commands Disk Copy Commands Reserved Floppy Disk Track Format Selection
The command descriptor blocks in Command Class 0 and 6 are 6 bytes'long, and those in CI9-sS 1 are 10 bytes long. The controller will check all incoming command descriptor blocks for validity ana will also check (if enabled) all COB's and data for odd parity (see section 9.1). A parjty error will cause an immediate halt of the command or data transfer. This will not cause incorrect data to be written because the write does not occur until the sector buffer has been filled. An error in the command structure will cause a status byte transfer to occur' upon completion of the CDS transfer.
SA 1403D Controller Reprint Rev.-A
5.1 COMMAND DESCRIPTION (CLASS 0) *'* WARNING!"'* Commands READ and WRITE require that the floppy diskette used be formatted. If unformatted, the controller will appear to "hang" - i.e., continue waiting for a data address mark. (Reset to clear this condition if it should occur).
Test drive ready - Selects the drive and verifies drive ready. The ready condition is indicated by the status byte. A no~-ready drive .will cause bit 1 of the status byte to be set.
Recalibrate. Positions the RIW of selected drive arm to Track 00, clears error status in the drive.
Request Syndrome - returns two bytes of error offset and syndrom to the Host System for Host error correction capability (see Table 3). The first byte is offset in the data field of the error location. The most significant 3 bits of the second byte point to the beginning of the error location. The least significant 4 bits of the second byte are the syndrome which is a data correction mark to be exclusive or' ed with the faulty data. This command is only valid of the automatic data correction has been disabled.
BYTE 1 BYTE 2
BYTE OFFSET BIT OFFSET
Request Sense. This command must be issued immediately after an error. It returns 4 bytes of drive and controller sense for the specified LU N: (See copy block for exception)
Format Drive. Formats all blocks with 10 field set according to interleave code. The data field contains E5 Hex.
Format Track. "'Formats the specified track with bad block flag cleared in all blocks of that track. Writes E5 Hex in the data fields.
Format Bad Track "'(bad block flag). Formats the s'pecified track with bad block flag set in the 10 fields (bit 7 of the Head Address byte set). Writes E5 Hex in the data fields.
Read. Reads the specified number of blocks starting from initial block address given in the COB. (See Warning above!)
Write. Writes the specified number of blocks starting from initial block address given in the COB. (See Warning above!) , . Seek. Initiates seek to specified block and immediately returns completion status before the seek is complete for those drives capable of overlap seek.
The track is addressed via the logical sector address, which may be any address within the desired track. jkA
Description Copy Siocks. Copies the specified number of blocks from Source LUN starting at the specified Logical address to Destination LUN starting at the specified Logical address. The number of sectors transferred may be from 1 to 256. The completion status byte will indicate the source LUN. If an error occurs, a Request Sense command is issued to the source LUN. The sense will indicate the type of error for the appropriate LUN. Note the, data in the blocks will be truncated or appended with undefined data if the Source and Destination block sizes are not the same (e.g. Source block size - 128 bytes/sector, and Destination block size - 256 bytes/sector). '
where 's' indicates the source device and 'd' indicates the destination device. * Refer to Section 5.5 Logical Address
SA 1403D Controller Reprint
5.2.3 CLASS 6 COMMANDS
byte #1 byte
I I I. I a 3
Track Format Code
NOTE: See Class 6 Command Description for more information and default modes for floppy drives. 5.3 STATUS FORMAT 5.3.1 Completion Status Byte Format At the normal termination of a command or following a fatal error. the controller will cause a status byte to be transferred from the controller to the Host. Bit 0, the least significant bit of the status byte, will be set equal to 1 if the controller detects a parity error during a command o·r data transfer to the controller. Bit 1 will be set = 1 if the controller detects an error condition. Bits 5 and 6 represent the LUN of the device where the error occured. If no error occurs, bit a - 4 will be set equal to O. . Following the transfer of the status byte, the MSG line will be asserted to indicate a completion message. At this time the message consists of a single byte transfer with all bits set = O. Prior to an error condition the controller, unless diabled (see section 5.2.1 Control Field), will retry 3 times before posting the error.
5 LS LUN
spare 0) (set
Bit Bit 1 Bit 2-4 Bit 5-7
Parity error during transfer from host to controller .. Error occured during command execution. Spare (set to zero). Logical unit number of the drive.
SA 14030 Controller Reprint
5.3.2 DRIVE AND CONTROLLER SENSE BLOCK
Following an error indication from the status byte. the Host may perform a REQUEST SENSE command to obtain more detailed information about the error. The REQUEST SENSE command will transfer a block of 4 bytes to the Host system.
t t 1
Error type spare (set to zero) Block address valid
. 7 byte #2
LUN logical adr1 •
byte #3 byte #4
logical adrO· * Refer to Section 5.5 Log.ical Address
5.4 ERROR CODES 5.4.1 TYPE 0 (DRIVE) ERROR CODES
2 3 4
No error No Index Signal No Seek Complete Write Fault (SA 1000 only) orive not ready Drive not selected (SA1000 only) No Track 00
5.4.2 TYPE 1 (CONTROLLER) ERROR CODES
o 1 2 3 4 S 6 7 8 9 A
10 read error. ECC or CRC (floppy) error in the 10 field (uncorrectable). Uncorrectable data error during a read. 10 Address Mark not found (pOSSibly unformated disk). Data Address Mark not found. Record not found. Found correct cylinder and head but not sector. Seek error. R/W head positioned on a wrong cylinder and/or selected a wrong head. OMA Data time out error. No Host acknowledge within 256JLs. Write protected. (SA800/850 only) Correctable data field error. ECC error (automatic correction if not disabled). Bad track found Format Error. The controller detected that during the Check Track command. the format on the drive was not as expected.
SA 1403D Controller Reprint
5.4.3 TYPE 2 (COMMAND) ERROR CODES ,
Invalid Command received from the host. Illegal logical sector address. Address is beyond the maximum address for the type of drive. Illegal function for the specified drive.
5.5.4 TYPE 3 (MISC) ERROR CODES
RAM error. Data error detected during Sector buffer RAM diagnostic.
5.5 LOGICAL ADDRESS The logical address is computed as follows: Logical adr Where:
= (CYADR * HDCYL +
= cylinder address
CYADR HDADR SEADR HDCYL SETRK =
= head address = sector address = number of heads per cylinder number of sectors per track
Bit 0 at Logical adr 0 Bit 4 of Logical adr 2
= the least significant bit. = the most significant bit.
Note: All addresses begin with 00.
SA 14030 Controller Reprint
6.0 SECTOR INTERLEAVE CODES In order to tailor host system data transfer speed to the disk rotational speed, sector interleaving is offered. Sixteen interleave codes are offered numbered 1 to 16. Not all interleave codes will result in optimum sector interleave, therefore the interleave should be chosen carefully. In order to maintain IBM floppy disk compatibility in interleave code of 1 should be used. This will result in a non-interleave condition.
6.1 SELECTING THE RIGID DISK INTERLEAVE CODE The interleave code given during the format command is used to calculate the logical sector number for the (Physical Sector x Interleave code) (mod 32). Note: when the logical rigid disk as follows: Logical Sector sector number exceeds 31 the next logical sector is the lowest available physical sector. This does not always create a true modulo function.
Two examples of interleave codes are shown: Interleave code of 2:
Interleave code of 11:
Time available to Transfer oile Byte of Data (including c:ontroller time)
Minimum Number of Idle Seeton Between Reada
Number of Diu Revolutions Required to Read One Trac:k
\tor SA 1400 series controllers operating with SAI000 series drives· double density. 32 sectors. 256 bytes/sector.) Note: Other codes will work. but require more revolutions of the disk to read all sectors of one track.
TABLE 3. INTERLEAVE CODE SELECTION CHART"
SA 14030 Controller Reprint
7.0 DIAGNOSTIC PHILSOPHY 7.1 BOARD RESIDENT MICRODIAGNOSTIC Fault Isolation Microdiagnostic (Optional) The controller can be further checked out off-line by initiating explicit microdiagnostic routines via optional firmware diagnostic sets. The routines are initiated by a ·set of control switches. Errors will be dislayed in a set of LED's. Each microdiagnostic checks the funtionality of a particular section of the controller and is able to isolate failures in the following major categories: .
ALU Registers Sector Buffer ECC Logics F~ult-isolation
.techniques can be concentrated on the failing section.
SA 14030 Controller Reprint
8.0 STATUS LED ERROR INTERPRETATION Drive/controlier error conditions are displayed on the 8 LED display lights provided near the J1 0 DC power connector (see Figures 11). The following list of hexadecimal numbered error codes describe error meanings. Note that these error codes do not necessarily match the request sense block error codes. LED number 7 is the MSB. 01
No Index Detected
No Track Zero Detected
Illegal Logical Sector Address - beyond maximum sectors available for type of drive
Drive Not Selected (SA10000nly)
No Seek Complete Detected
10 Address Mark Not found (unformatted)
. Data Address Mark Not found
Seek Error - R/W head not positioned on correct track
Record Not found - found correct cylinder and head but not sector
10 ECC or CRC error (uncorrectable)
DMA Timeout Error - no Host acknowledge within 256ILsec after request.
Invalid Command Received from Host
Incorrect Data Address Mark
Incorrect 10 Address Mark
Incorrect Cylinder Address
Incorrect Sector Address
Incorrect Head Address
Uncorrectable Data Field ECC or CRC error
Correctable Data Field ECC error
0 rive Not Ready
Write Fault (SA 1000 and SA4000/4100 only)
Write Protected (SA800/8S0 only)
RAM Diagnostic Error
Bad Sector found - a sector within a track that has been flagged bad has been found.
Invalid function for this drive type.
SA 1403D Controller Reprint
9.0 CONTROLLER OPTION SELECTION 9.1 PARITY SELECT JUMPERS Odd parity may be used by the Host system for data integrity verification. The controller will always output odd parity to the Host system. Odd parity checking by the controller may be allowed or inhibited by moving a 3 position jumper plug at W2 located near the J6 Host connector (see Figure 11). With jumper at position A + B the controller will test for odd parity on all data input to the controller. With jumper at positon B + C the controller will not check for parity (normally shipped in A + B).
9.2 DRIVE TYPE SELECTION DIPSWITCH The dipswitch settings for various types of drives for the SA 14030 are shown below: Prom Set AS30 -I, II, III, IV
10.0 TRACK FORMAT DESCRIPTION 10.1 26 SECTOR FORMAT The 26 sector format is an IBM compatible format which employes FM single density encoding on all tracks of the single density format (IBM 3740 compatible) and on track O. side 0 of the double density format. This format yields ~6 sectors of 128 bytes per sector. The remainder of the tracks on the double density formats are encoded with MFM double density which yields 26 sectors of 256 bytes per sector (IBM system 34 compatible). Figure 9 shows the two type of encoding utilized.
REPeATED 26 TIMES (lea BYTES! PAE INDEX GAP
INDEX INDEX SYNC AIo.I
NU M. OF BYTES
DATA DATA SYNC AM
FM FORMAT IBM 3740
REPeATED 26 TIMES (372 BYTES)
PAE INDEX GAP HEX DATA
NU M. OF BYTES
PAE INDEX INDEX INDEX GAP 10 1 SYNC SYNC AM AM
PAE DATA DATA OAT,.. AM SYNC AM
GAP 4' 4E
WRITE UPDATE MFM FORMAT IBM SYSTEM 34
FIGURE 9. 26 SECTOR FORMAT - SASOO/S50
10.232 SECTOR FORMAT The 32 sector format employs M FM encoding on all tracks of the SA 1000. This format yields 32 sectors of 256 bytes per sector. Figure 10 shows the 32 sector format.
_\ ....- - - - - - - - - R E P E A T E O 32 TII.4ES (31S BYTES)
PRE GAP I
HEX DATA NU 1.4. OFB YTE!
PRE DATA DATA AI.4 AI.4
FIGURE 10. 32 SECTOR FORMAT - SA1000
SA 1403D Controller Reprint
11.0 DRIVE JUMPER SETTINGS 11.1 JUMPER SETTINGS FOR SA800/801 FLOPPY The following information is contained in the SA800/801 Diskette Storage Drive OEM Manual, Shugart Associates, 1977. Jumper Name
Function (Enabled if Jumper Installed)
Install enable DRSEL to drive selection
Install, Head Load on Drive Select
Remove, Drive Select loads heads
Remove, In Use to LED is disabled
Remove, Disable Disk Change to return to controller
Install enable stepper on 0 rive Select
Install one only, DSi = LUN 0 (Drive Select)
Remove, Head load on Drive Select
Jumper for -SV (remove for -1SV), controller requires -SV only
Remove, Head Load terminator
Install, Pullup for Drive Select lines
Install, Direction terminator
Install, Step terminator
Install, Write Data terminator
Install, Write Gate terminator
Install, Head Load Enable
Remove, Disable Hdld from driving LED
Install drive select drives in use LED
Install, enables 800 index only operation
Remove, disables 801 mode operation
11.2 JUMPER SETTINGS FOR SA850/851 FLOPPY Jumper Name
Function (Enabled if Jumper Installed)
Controller is compatible with the factory jumper configuration. See SASSO/SS1 OEM Manual. Note: Jumpers must be set for SA8S0, not SASS1 11.3 JUMPER SETTINGS FOR SA1000 WINCHESTER Jumper Name
Function (Enabled if Jumper Installed)
Controller is compatible with the factory jumper configuration. See SA 1000 OEM Manual.
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.
(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.
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:
(Bbase + 18) - Bhome Sets track number to zero in preparation for disk access. None None None None
BIOS Sel~d Disk Entry Point: Function(s):
(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
(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):
(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
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
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
; 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:
M: N: 0:
defb defb defb defb
1,0 1,1 1,2 1,3
; Floppy unit ; Floppy unit 1 ; Floppy unit 2 ; Floppy unit 3
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.
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
ds db dw dw dw
Ldrive Track Sector Address
= = =
;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
; 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
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.
' 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
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.
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
' 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
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.
DI IN A,(lCh)
;read port ;set bit
EI OUT (1 Ch),a .
DI IN A,(lCh)
EI OUT (lCh)
for the XEROX 820-11
MACRO-80 3.44 Ie .z8D
2 3 4 5
Baleones Operating System for the XEROX 820-11
Baleones Operating System for XEROX 820-11.
Copyright 1982 (C) Baleones Computer Corporation
10 11 12 13 14 15 16
Robert Burns. Bee.
18 19 20
Balcolles Ope,-a t i 118 System fur tile XEROX 820-11 Symbol Definitiulls
23 24 25 26
-I not true
Absolute Memory Addresses.
rom romsiz Rxl984 Lxl984 iobyte boot I d bootbf ram monitr crtme," crtmax crtbas crttop
,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
Balcones O!-,erat ill;) Syllluol Definit illllS
Configuration Status Byte Bit Defin1tions.
c.keym c.sasi c.five
equ equ equ
82 83 84 85 86 87 88 89 90
OOU4 OOOA 0000 0011 0013 OOIB OOIA
: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
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
: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
EE6:! EEb3 EE6D
EE77 EE79 EE7B
EE7D EE7E EE7F
0007 0006 0005 0004 0002 0000
z.scra z.stp" z.keyur z.sloA z.sioB z.slom z.siov z. xonp z.baua z.baub z. lobt
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
; ;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
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
; 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
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
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
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
Monitor Function Processors
jp jp jp jp
jp jp jp jp jp jp jp jp
jp jp jp
jp .ip usrsec: jp jp
.iP jp jp jp
;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
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
service Id Id push push push in cpl cp jr ld or
+ + + +
key I: key2:
CD FI37 71 IB
10 CD FIEF 06 03 3G 00 2C 10 FB CD F293 CD F003 CI II! 57
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
(savstk),sp sp, intstk hi af
save user stack pointer and i;;switch to local stack i ; i save machine state
- 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
;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
,release Pio interrupt cpntroller ,.c lear fifo count ;and fifo inlout pointers , turn crt memory off ,and warm start system ,return from interrupt
,, 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
- 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
'IE 2B II EB 119 7E EB DI 34 BE 3D 36 23 :34 3E BE 30 36 23 34 CI
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
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
; increment month
;if not new years eve ;wrap december to january ;signal Guy Lombardo
;restore stack ;*****=>;this word modified at runtime ;re-enable interrupts and return
Table of days per month.
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
; 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
- 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
rf i :
FB ED 40
ED 31 E5 F5 2A 23 22 3E
(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)
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
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:
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
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
lsiodpb),a I a m; I II a,I+(24 5hl
:flr.e hammer :advance screen cursor :do not advance state : i f not end of line :set address of next print 1 ine
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
: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
;set carriage return ;move paper or carriage ;return from interrupt
Cha,-acter ill C The only register preserved is SP Peeking in register A reveals valuable characters.
67 3A FFBI 134
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
;maintain users registers on his stack
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.
;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.
Id Id add inc sub
h,a a,(base) a,h
a,(syspio) a af crton
;do not use callers stack ;since it may disappear
a 24 nC,cca2 a,24+2*crtbas h,a
;entry with base absolute ;ditto
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
F3213 F32D F32F F331
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
22 F333 EO 43 F339 EI (9
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
;exeeute previous attribute routine
$-2 (lstatt),111 (prvatt),be hI Rom-resident Crt Driver
: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
EB :i6 00 EO
o 1 )j~i
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)
;store displayable character ;advance pointer to next column
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
c c,a c ,crtd2 a,(attrib)
;if control code
c (h 1) ,a
BO c,crtd3 I I, a
Ifeed crtd3 contrl (cursor),hl a, (h I) (chrsav) ,a a, (csrchr) Z
;if end of
line not reached
;return cursor to left side ;execute line feed ;process control character ;save cursor pointer for next time ;get character at new cursor location ;save for next time 'CRTOUT' is called ;get cursor character ;if no cursor
c,a a, (h I) 7,a a,c z,crtd4 a,(I1I)
;set character used for cursor ;if character is a space ;toggle attribute
;store cursor character
Process multiple character escape sequence.
ex Id ex dec jr
de,hl (111),0 de ,Ill
;unconditionally reset the lead-In ;,state to zero
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
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
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
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
tile XEROX 1:l20-11
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
be II: be I 11:
ld out Id djnz out Id djnz dec jr ret
3D LfJ F 1 U)
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
,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
;store new base Ii ne# ;scroll top line to bottom ;restore cursor
Move cursor to ne.l( t de,8 a, I
;tabs are every 8 columns ;get column component of ipreviou5 tab position
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.
c I r lin
c I r I iii:
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
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
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-
(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.
· C: .0:
·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
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
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
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
CD f647 7E 23 32 f4E7 3C 28 55 06 OA C5 E5 7E CO'F544 FA·F506
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
00 AB A3 03 88
J2 F4fE JE UO UI 4f
CD f61D 71)
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
;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
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
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
26 6f 29 29 29 29 II 19 1:5 CD EI CA 7I 23 70 01 U9 72
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
;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.
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
(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
Id or ca II inc
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)
;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
;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
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
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
smf - set media format. entry:
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
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 )
: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)
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
;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.
macro n,lIIsg ifl .print" +MSG NT andif andm
macro .radix Pllls9 .radix andm
16 %(n), 10
Density, Density, Density, Density,
;test ram buffer
Single Double Single Double
Sided Sided Sided Sided
l:IalcllIHls Op''''ati,,~ Systelll for Sas i C I ass Cocte l)e tin it i OilS 2588 2589 2590
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
OA 02 08 F6FO
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
3C 28 E5 C5 3D 3E 20 3E 3L 7E E5 CO EI 23 23 56 23 23 5E CD
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
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
i if diskette type identified idiskette type retry counter
c,smfs4 (h 1 ) p,smfsla (111) ,fln.cldcls
if media not identified advance disk type code i f no wrap
(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
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
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
06 F6A5 F634 gca2: 12
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
F656 F659 F656 F65D
F65f F6b2 F665 fbb7
CO F687 20 DE ED 63 IB OA
CO CD 20 EO
fbCE f687 02 62
Id cp ret ca II Id ca II ret outi jr ret tuo ea II jr ot ir jr
t LI i :
ea II ea II jr inir
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.
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
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.
Sam - Set Output Mode.
Id out ret
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
Sasi Command Blocks
,-doli I y 07 C8 7A 07 C8 3A F6FO D6 08 C9
pia A input mode
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
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
" I :jA FE 2U 7E FE
EEOO F76C 20 04
f i n;t2:
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
CB 11 OOOF 1I6 04 'IE 87
IE E6 87 C8 21' C8 2F
CO 23 10 F I 28 11 F4AF III 0040
- First time only.
20 E8 2F 32 F6DC f I [9
+ + 3E 32 26 CO 28 22 22
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
(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
;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
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
,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
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
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
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
boot cp/m bit rate memory block move dump memory in hex/ascii enter memory f i I I memory goto program host terminal read from input port not used not used load systelll memory examine/change not used write to output port printer protocol not used display disk sector data not used typewriter 1II0de not used memory block compare disc sector write command ram diagnostic not used not used
;return i f (h I ) =a ; pr i nt what was actually read
Sulcunes Open,tillu Systelll for (OIlSO I '" SllPPOI t /Llllt i nes 3347
the XEROX 820-11
Balconl:s 0pl:ratill!J System for the XEROX 020-11 CUlisole suppurt I'uut int:s 3340 3349 3350 3351 3352 3353 3354 3355 3356 3::157 :1::150 3:j59 3:i6D 3361 3362 ::13(;3 3~164
FD 01 FD D6 CO 06 20 UC CB 37 CO C5 CD CI DO DO DO OD DO FE
23 DOff 7E 00 00
13 FI para I: 51 paJ'ii2: FBOA 21 FFB5 09 09 75 00 74 01 20
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'
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
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,'
'If' :! 1 eLl
options and o.ddvr disk boot loader command
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
;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
; 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
EST QuickStart QS1 Free PDF Download at Fire Alarm Resources, Your Home for Free ... Edwards lss1 manual download on iubmb-2013-3.org free books and ...
Installation in accordancewiththis manual, applicable codes, and the ... Protected Premises Fire Alarm System in accordance with .... the panel in alarm or activate the alarm relay. ...... EST 4/2 (SIA DC-02 P3 with hexadecimal event codes).
Manufacturer. Edwards, A Division of UTC Fire & Security .... FireShield Plus conventional fire alarm control panels are available in the models listed below.
Installation in accordance with this manual, applicable codes, and the instructions .... FireworX conventional fire alarm control panels are available in the models listed ..... Note: EST 4/2 is SIA DCS-02 P3 with the ability to transmit hexadecimal
QS1 Technical Reference Manual. About this manual. This manual provides information on how to install, program, and operate a QuickStart single loop ...
Nikon cameras are designed to the highest standards and include complex electronic circuitry. Only Nikon brand ... Camera Settings. The explanations in this manual assume that default settings are used. ...... green, black, or brown (Graphic). ......
Edwards, A Division of UTC Fire & Security. Americas Corporation, Inc. 8985 Town ... EST iO64 and iO500 Technical Reference Manual i. Content. Important .... Protected Premises (Local) Fire Alarm System Control panel. Appropriately sized ...
13. 1. Introduction. Technical Reference Manual-1.6.0en. 1.3 The TR500 Terminal. The TR500 Terminal provides a full user interface to all System 500 GPS.
Mar 8, 2018 - The Green Globes for New Construction rating system is suitable for a wide range of commercial buildings, including large and ..... Answers: â¢ Yes (3 points). â¢ No (0 points). (check as many key disciplines below as apply). â¢ 3.1.
the APD (EPSON Advanced Printer Driver). Guide for TM-U220 right side up printing. This provides information on the TM-U220 printer for anyone who is.
Dec 1, 2009 - 4. 12-1-09. Radiant/Electric Char-Broiler. 3-11 ... Natural Charcoal Char-Broiler. 3-12. Mesquite ... Nieco Broiler â Model MPB-84. New. 12-1-09.
Newmarket, Inspired Services, 2007 http://odi.dwp.gov.uk/docs/wor/uncon/un-agree.pdf. (Fecha de la consulta: 15 de ..... Ãlcera por presiÃ³n previa o en curso. ..... de cuatro ruedas con distancia larga entre los ejes tienen las ruedas orientables d
in whole or in part this ARM Architecture Reference Manual to third parties, other than to your subcontractors for the purposes of having ...... However, this manual is not intended as tutorial material for ARM assembler language, nor does it describ
For installation instructions, see Chapter 4 [Installing], page 34. ... The base upon which MySQL is built is a set of routines that have been used in a highly ..... PHP: A server-side HTML-embedded scripting language (http://www.php.net/) ..... Befo
Tip. For more information about the Yocto Project Documentation set, see the "Links and Related Documentation" section. ..... Various features such as multilib , sub architectures (e.g. x32 , poky-tiny , musl , no-x11 and and so forth), bitbake-selft
Sep 16, 1973 - Embedded Studio Reference Manual. Version: 3.10i ...... Use. Google to find TortoiseSVN, TortoiseGit, and TortoiseHG and see if you like them.
se sont introduits dans l'appareil, si celui-ci a été exposé à la pluie ou à ...... Brightness: 30. Tip: For an interesting overtone effect, set the Brightness Value relatively high (80 or above) and then set the Overdrive Amount very low (less ... T
Feb 1, 2015 - hold true for J-series also, unless mentioned otherwise. ..... ALTER SAVED-DISKFILE-PATTERN Command 8-83 ..... Decision Table for Event Exit, Safeguard, and Guardian Results 15-27 ... Disk-File Access Evaluation B-2 ...... and identifie
The CSI LogoÂ®, SAP2000Â®, ETABSÂ®, SAFEÂ®, CSiBridgeÂ®, and SAPFireÂ® are reg is tered trade marks of Com put ers & Struc tures, Inc. Model-AliveTM and Watch. & LearnTM are trade marks of Com put ers & Struc tures, Inc. Win dowsÂ® is a reg is - tere
1.1 Introduction. This designer reference manual describes a sensorless, 3-phase, brushless DC (BLDC) motor drive based on Freescale's MC9S08AW60 dedicated motor control device. BLDC motors are very popular in a wide application area. Because the BLD