PC Technical Reference Apr83
PC Technical Reference Apr83
PC Technical Reference Apr83
Limited Warranty service may be obtained by delivering the Product during the
90-day warranty period to an authorized IBM Personal Computer dealer or IBM
Service Center and providing proof of purchase date. If this Product is delivered
by mail, you agree to insure the Product or assume the risk of loss or damage in
transit, to prepay shipping charges to the warranty service location and to use the
original shipping container or equivalent. Contact an authorized IBM Personal
Computer dealer or write to IBM Personal Computer, Sales and Service, P.O.
Box 1328-W, Boca Raton, Florida 33432, for further information.
THIS WARRANTY GIVES YOU SPECIFIC LEGAL RIGHTS, AND YOU MAY
ALSO HAVE OTHER RIGHTS WHICH MAY VARY FROM STATE TO STATE.
---
----
-- ---
- ---- Personal Computer
-
-----
--_.- ---
- - --- Hardware Reference
Library
Technical
Reference
Federal Communications Commission
Radio Frequency Interference Statement
Changes are periodically made to the information herein; these changes will be
incorporated in new editions of this publication.
Products are not stocked at the address below. Requests for copies of this product and for
technical information about the system should be made to your authorized IBM Personal
Computer dealer.
A Reader's Comment Form is provided at the back of this pUblication. If this form has
been removed, address comments to: IBM Corp., Personal Computer, P.O. Box 1328-C,
Boca Raton, Florida 33432. IBM may use or distribute any of the information you supply
in any way it believes appropriate without incurring any obligations whatever.
ii
PREFACE
iii
Prerequisite Publication:
Suggested Reading:
iv
TABLE OF CONTENTS
Section 1: Hardware
IBM Personal Computer System Unit ................. 1-3
IBM Personal Computer Math Coprocesser ............ 1-33
IBM Keyboard .................................... 1-73
IBM Expansion Unit ............................... 1-79
IBM 80 CPS Printers .............................. 1-91
IBM Printer Adapter ............................... 1-117
IBM Monochrome Display and Printer Adapter ........ 1-123
IBM Monochrome Display .......................... 1-131
IBM Color/Graphics Display Adapter ................ 1-133
IBM Color Display ................................ 1-157
IBM 5-W' Diskette Drive Adapter ................... 1-159
IBM 5-W' Diskette Drive ........................... 1-183
Diskettes ......................................... 1-185
IBM Fixed Disk Drive Adapter ...................... 1-187
IBM 10MB Fixed Disk Drive ....................... 1-203
IBM Memory Expansion Options .................... 1-205
IBM Game Control Adapter. . . . . . . . . . . . . . . . . . . . . . . .. 1-211
IBM Prototype Card ............................... 1-217
IBM Asynchronous Communications Adapter. . . . . . . . .. 1-223
IBM Binary Synchronous Communications Adapter ..... 1-251
IBM Synchronous Data Link Control (SDLC)
Communication Adapter .......................... 1-271
IBM Communications Adapter Cable ................. 1-301
vi
INDEX TAB LISTING
Section 1: Hardware ............................. .
vii
viii
Appendix E: Specifications ....................... .
Glossary ........................................ .
Bibliography ..................................... .
Index ........................................... .
ix
x
SECTION 1: HARDWARE
1-1
SYstem Unit Expansion Unit
Oscillator
8 Interrupt Speaker
levels Adapter
4 Channels
Direct Memory Keyboard
Access Adapter
Memory Read-Only
Memory
Math
Coproctlssor
(Optional) 8 Slot Expanded
110 Channel
Receiver
Card
5 Slot
110 Channel
Extender Card
The system unit is the standalone tabletop unit that contains the
power supply, the speaker, and the system board.
The system unit contains one of two system boards. One system
board supports 16K to 64K of read/write memory. The other
system board supports 64K to 256K of read/write memory. Both
system boards are functionally identical.
The power supply provides dc voltage to the system board and the
internal drive( s).
System Board
The system board fits horizontally in the base of the system unit
and is approximately 8-1/2 by 12 inches. It is a multilayer,
single-Iand-per-channel design with ground and internal planes
provided. DC power and a signal from the power supply enter the
board through two six-pin connectors. Other connectors on the
board are for attaching the keyboard, audio cassette, and speaker.
Five 62-pin card edge-sockets are also mounted on the board. The
I/O channel is bussed across these five I/O slots.
System Unit 1· 3
The heart of the system board is the Intel 8088 microprocessor.
This processor is an 8-bit external bus version of Intel's 16-bit
8086 processor, and is software-compatible with the 8086. Thus,
the 8088 supports 16-bit .operations, including multiply and
divide, and supports 20 bits of addressing (1 megabyte of storage).
It also operates in maximum mode, so a co-processor can be
added as a feature. The processor operates at a 4.77 MHz. This
frequency, which is derived from a 14.31818-MHz crystal, is
divided by 3 for the processor clock, and by 4 to obtain the
3.S8-MHz color burst signal required for color televisions.
At the 4.77-MHz clock rate, the 8088 bus cycles are four clocks
of 210 ns, or840 ns.I/O cycles take five 21O-ns clocks or 1.05
microseconds.
Three of the four DMA channels are available on the I/O bus and
support high-speed data transfers between I/O devices and
memory without processor intervention. The fourth DMA channel
is programmed to refresh the system dynamic memory. This is
done by programming a channel of the timer-counter device to
periodically request a dummy DMA transfer. This action creates
a memory-read cycle, which is available to refresh dynamic
storage both on the system board and in the system expansion
slots. All DMA data transfers, except the refresh channel, take
five processor clocks of 210 ns, or 1.05 Jls if the
processor-ready line is not deactivated. Refresh DMA cycles take
four clocks or 840 ns.
The system board supports both ROM and R/W memory. It has
space for 48K x 8 of ROM or EPROM. Six module sockets are
provided, each of which can accept an 8K by 8 byte device. Five
of the sockets are populated with 40K bytes of ROM. This ROM
contains the cassette BASIC interpreter, cassette operating
system, power-on self-test, I/O drivers, dot patterns for 128
characters in graphics mode, and a diskette bootstrap loader. The
ROM is packaged in 24-pin modules and has an access time of
250 ns and a cycle time of 375 ns.
The system board contains the adapter circuits for attaching the
serial interface from the keyboard. These circuits generate an
interrupt to the processor when a complete scan code is received.
The interface can request execution of a diagnostic test in the
keyboard.
The system unit has a 2-1/4 inch audio speaker. The speaker's
control circuits and driver are on the system board. The speaker
connects through a 2-wire interface that attaches to a 3-pin
connector on the system board.
NMI Parity
0 Timer
1 Keyboard
2 Reserved
3 Asynchronous Communications (Secondary)
SDLC Communications
BSC (Secondary)
4 Asynchronous Communications (Primary)
SDLC Communications
BSC (Primary)
5 Fixed Disk
6 Diskette
7 Printer
0 00000
16K 04000 16 to 64K Read/Write Memory
32K 08000 on System Board
48K OCOOO
64K 10000
80K 14000
96K 18000
112K lCOOO
128K 20000
144K 24000
160K 28000
176K 2COOO
192K 30000
208K 34000
224K 38000
240K 3COOO Up to 576K Read/Write
256K 40000 Memory in I/O Channel
272K 44000
288K 48000
304K 4COOO
320K 50000
336K 54000
352K 58000
368K 5COOO
384K 60000
400K 64000
416K 68000
432K 6COOO
448K 70000
464K 74000
480K 78000
496K 7COOO
512K 80000
528K 84000
544K 88000
560K 8COOO
576K 90000
592K 94000
608K 98000
624K 9COOO
640K AOOOO
656K A4000 128K Reserved
672K A800D
688K ACOOO
704K BOOOO Monochrome
720K B4000
736K B8000 Color/Graphics
752K BCOOO
768K COOOO
784K C4000
800K C8ODO Fixed Disk Control
816K CCOOO
832K 00000
848K 04000 192K Read Only Memory
864K 08000 Expansion and Control
880K OCOOO
896K EOOOO
912K E4000
928K E8000
944K ECOOO
960K FOOOO Reserved
976K F4000
992K F8000 48K Base System ROM
100BK FCOOO
0 00000
16K 04000
32K 08000
48K OCOOO
64K 10000
80K 14000
96K 18000
112K lCOOO 64 to 256K Read/Write Memory
128K 20000 on System Board
144K 24000
160K 28000
176K 2COOO
192K 30000
208K 34000
224K 38000
240K 3COOO
256K 40000
272K 44000
288K 48000
304K 4COOO
320K 50000
336K 54000
352K 58000
368K 5COOO
384K 60000
400K 64000
416K 68000 Up to 384K Read/Write
432K 6COOO Memory in I/O Channel
Up to 384K in I/O Channel
448K 70000
464K 74000
480K 78000
496K 7COOO
512K 80000
528K 84000
544K 88000
560K 8COOO
576K 90000
592K 94000
608K 98000
624K 9COOO
I/O devices are addressed using I/O mapped address space. The
channel is designed so that 512 I/O device addresses are
available to the I/O channel cards.
• An 8255A-5 PPI output bit. The address and bit are defined
in the "I/O Address Map."
Pin Function
1 Data
2 Key
3 Ground
4 +5 Volts
Speaker Connector
System Unit 1-23
Power Supply
The system power supply is located at the right rear of the system
unit. It is designed to be an integral part of the system-unit
chassis. Its housing provides support for the rear panel, and its fan
furnishes cooling for the whole system.
It supplies the power and reset signal necessary for the operation
of the system board, install able options, and the keyboard. It also
provides a switched ac socket for the IBM Monochrome Display
and two separate connectors for power to the 5-1/4 inch diskette
drives.
The + 5 Vdc powers the logic on the system board and the
diskette drives and allows approximately 4 A of +5 Vdc for the
adapters in the system-unit expansion slots. The + 12 Vdc power
level is designed to power the system's dynamic memory and the
two internal 5-1/4 inch diskette drive motors. It is assumed that
only one drive is active at a time. The - 5 Vdc level is designed
for dynamic memory bias voltage; it tracks the + 5 Vdc and + 12
Vdc very quickly at power-on and has a longer decay on power-off
than the +5 Vdc and + 12 Vdc outputs. The + 12 Vdc and -12
Vdc are used for powering the EIA drivers on the communications
adapters. All four power levels are bussed across the five
system-unit expansion slots.
Input Requirements
The following are the input requirements for the system unit
power supply.
Frequency Current
Voltage (Vac) (Hz) (Amps)
Vdc Output
The following are the dc outputs for the system unit power supply.
Voltage
(Vdc) Current (Amps) Regulation (Tolerance)
Vac Output
The power supply provides a filtered, ac output that is switched on
and off with the main power switch. The maximum current
available at this output is 0.75 A. The receptic1e provided at the
rear of the power supply for this ac output is· a nonstandard
connector designed to be used only for the IBM Monochrome
Display.
c: c: c: c: c: c: c: c:
a:: a:: a:: a:: a:: a:: a:: a::
<II
Q)
.:::
...o
(.)
o
Q)
c:
Q)
o c:
III 0
t:
~
en
~ 0 E
Q) Q)
.~ t) ti :t:
Cl ~ > 0
(J)Q.
.s: c:
(.) 0
Eu
~ Q;
..., 0:t:
L!lQ.
Primary (Input)
The following table describes the primary (input voltage)
protection for the system-unit power supply.
120 Fuse 2
Secondary (Output)
On over-voltage, the power supply is designed to shut down all
outputs when either the +5 Vdc or the +12 Vdc output exceeds
200% of its maximum rated voltage. On over-current, the supply
will turn off if any output exceeds 130% of its nominal value.
Power-Good Signal
When the power supply is turned on after it has been off for a
minimum of 5 seconds, it generates a power-good signal which
indicates that there is adequate power for processing. When the
four output voltages are above the minimum sense levels, as
described below, the signal sequences to a TTL-compatible up
level (2.4 Vdc to 5.5 Vdc), which is capable of sourcing 60 /LA.
When any of the four output voltages is below its minimum sense
level or above its maximum sense level, the power good signal will
be a TTL-compatible down level (0.0 Vdc to 0.4 Vdc) capable of
sourcing 500 /LA. The power good signal has a turn-on delay of
100 ms after the output voltages. have reached their respective
minimum sense levels.
Cassette Interface
The cassette interface is controlled through software. An output
from the 8253 timer controls the data to the cassette recorder
through pin 5 of the cassette DIN connector at the rear of the
system board. The cassette input data is read by an input port bit
of the 8255A-5 programmable peripheral interface (8255A-5
PPI). This data is received through pin 4 of the cassette
connector. Software algorithms are used to generate and read
cassette data. The cassette drive motor is controlled through pins
1 and 3 of the cassette connector. The drive motor on/off
switching is controlled by an 8255A-5 PPI output-port bit
(hex 61, bit 3). The 8255A-5 address and bit assignments are
defined in "I/O Address Map" earlier in this section.
A 2 by 2 Berg pin and a jumper are used on the cassette 'data out'
line. The jumper allows use of the 'data out' line as a O.075-Vdc
microphone input when placed across the M and C pins of the
Berg connector. A O.68-Vdc auxiliary input to the cassette
recorder is· available when the jumper is placed across the A and
C pins of the Berg connector. The "System Board Component
Diagram" shows the location of the cassette Berg pins.
M A M A
c c c c
Microphone Input Auxiliary Input
(0.075 Vdc) (0.68 Vdc)
-5V
Silicon
GND Diode
Data From VIR=.4V Cathode
Cassette
Recorder
GND
Earphone
Jack
+5V
74lS38
8253 Timer # 2 t O
Output OR
o
0----------------.
0.678V
toAUX
Input
0----------------·
O.075V
to MIC
Input
GND
I
GND
VSS
*AII voltages and currents are maximum ratings and should not be exceeded.
**Data out can be chosen using a jumper located on the system board.
(Auxiliary - 0.68 Vdc or Microphone - 0.075 Vdc).
Interchange of these voltages on the cassette recorder could lead to damage
of recorder inputs.
The first five bits of every instruction opcode for the coprocessor
are identical (11011 binary). When the processor and the
coprocessor see this instruction opcode, the processor calculates
the address, of any variables in memory, while the coprocessor
checks the instruction. The coprocessor will then take the memory
address from the processor if necessary. To access locations in
memory, the coprocessor takes the local bus from the processor
when the processor finishes its current instruction. When the
coprocessor is finished with the memory transfer, it returns the
local bus to the processor.
The IBM Math Coprocessor works with seven numeric data types
divided into the three classes listed below.
Coprocessor 1-33
Programming Interface
The coprocessor extends the datatypes, registers, and instructions
to the processor.
*The short and long real data types correspond to the single and double precision
data types
Data Types
1-34 Coprocessor
Hardware Interface
The coprocessor utilizes the same clock generator and system bus
interface components as the processor. The coprocessor is wired
directly into the processor, as shown in the coprocessor
interconnection diagram. The processor's queue status lines (QSO
and QS 1) enable the coprocessor to obtain and decode
instructions simultaneously with the processor. The coprocessor's
busy signal informs the processor that it is executing; the
processor's WAIT instruction forces the processor to wait until
the coprocessor is finished executing (wait for NOT BUSY).
Coprocessor 1-35
The NMI Mask REG and the coprocessors interrupt are tied to
the NMI line through the NMI interrupt logic. Minor conversions
of software designed for use with an 8087 must be made before
existing software will be compatible with the IBM Personal
Computer Math Coprocessor.
8284
Clock
Generator
ClKI--+-----'----'~ CLK Math
Coprocessor
'------lINT
RU/GTt
Coprocessor Interconnection
1-36 Coprocessor
Control Unit
The control unit (CU) of the coprocessor and the processor fetch
all instructions at the same time, as well as every byte of the
instruction stream at the same time. The simultaneous fetching
allows the coprocessor to know what the processor is doing at all
times. This is necessary to keep a coprocessor instruction from
going unnoticed. Coprocessor instructions are mixed with
processor instructions in a single data stream. To aid the
coprocessor in tracking the processor, nine status lines are
interconnected (Q80, Q81, and 80 through 86).
I
r-....&....--.I
I
I
I
I
Data"'-+-...-.l~
I
I
I
! I
Status
Addressing & ! Reg;"" Stack I
~
Bus Tracking
I I
Address
I I ~:~:~:::n 0 (D) I
r-- ----I
L _____ l __________ _ BO BIts J
Coprocessor Block Diagram
Coprocessor 1-37
Register Stack
Each of the eight registers in the coprocessor's register stack is 80
bits wide, and each is divided into the "fields" shown in the figure
below. The format in the figure below corresponds to the
coprocessor's temporary real data type that is used for all
calculations.
79 64 63 o
I( Exponent Significand
Sign
Register Structure
1-38 Coprocessor
Status Word
The status word reflects the overall condition of the coprocessor.
It may be stored in memory with a coprocessor instruction then
inspected with a processor code. The status word is divided into
the fields shown in the figure below. Bit 15 (BUSY) indicates
when the coprocessor is executing an instruction (B= 1) or when it
is idle (B=O).
15 7 0
ST [CZICllcoIIR[ IPEluEloEIZEloEllEI
-'-~ Exception Flags (1 = Exception Has Occurred)
IJ~
Invalid Operation
Denormalized Operand
Zerodivide
Overflow
Underflow
Precision
(Reserved)
Interrupt Request
Condition Code
Stack Top Pointer (1)
Busy
(11 ST values:
000 = register 0 is stack top
001 = register 1 is stack top
Coprocessor 1-39
Control Word
The coprocessor provides several options that, are selected by
loading a control word register.
15 o
I I I I
-,-- -~ -,- Exception Masks (1 = Exception is Masked)
~
Invalid Operation
Oenormalized Operand
Zerodivide
Overflow
Underflow
Precision
(Reserved)
Interrupt-Enable Mask (1)
Precision Control(2)
Rounding Control(3)
Infinity Control(4)
(Reserved)
1-40 Coprocessor
Tag Word
The tag word marks the content of each register, as shown in the
Figure below. The main function of the tag word is to optimize the
coprocessor's performance under certain circumstances, and
programmers ordinarily need not be concerned with it.
Tag values:
00 = Valid (Normal or Unnormal)
01 = Zero (True)
10 = Special (Not-A-Number, 00, or Denormal)
11 = Empty
Exception Pointers
The exception pointers in the figure below are provided for
user-written exception handlers. When the coprocessor executes
an instruction, the control unit saves the instruction address and
the instruction opcode in the exception pointer registers. An
exception handler subroutine can store these pointers in memory
and determine which instruction caused the exception.
I OPERAND ADDRESS(1)
I INSTRUCTION OPCODE(2)
I INSTRUCTION ADDRESS(1)
10 o
(1 )20-bit physical address
(2) 11 least significant bits of opcode: 5 most significant bits are always
COPROCESSOR HOOK (110118)
Coprocessor 1-41
Number System
The figure below shows the basic coprocessor real number system
on a real number line (decimal numbers are shown for clarity,
although the coprocessor actually represents numbers in binary).
The dots indicate the subset of real numbers the coprocessor can
represent as data and final results of calculations. The
coprocessor's range is approximately +4.19x 10-307 to
+ 1.67x 10308 •
The coprocessor can represent a great many of, but not all, the
real numbers in its range. There is always a "gap" between two
adjacent coprocessor numbers, and the result of a calculation may
fall within this space. When this occurs, the coprocessor rounds
the true result to a number it can represent.
, ., .... , ,. ,
J L~9~
, .. , n I
I I
-5 -4 -3 -2 -1 4 5 I
L'
I
~ ., 0
-2
• • •
tQ 2.00000000000000000
(Not Representable)
1.99999999999999999
1-42 Coprocessor
Instruction Set
On the following pages are descriptions of the operation for the
coprocessor's 69 instructions.
source/destination, source
FADD
FADD source
F ADD destination,source
Coprocessor 1-43
FABS
FABS (absolute value) changes the top stack element to its
absolute value by making its sign positive.
FADD
Addition
F ADD / / source/destination,source
F ADDP destination,source
FIADD source
The addition instructions (add real, add real and pop, integer add)
add the source and destination operands and return the sum to the
destination. The operand at the stack top may be doubled by
coding FADD ST,ST(O).
1-44 Coprocessor
FADDP Exceptions: I, D, 0, U, P
Operands Execution Clocks Trans- Bytes Coding Example
fers
Typical Range 8088
FIADD Exceptions: I, D, 0, P
Operands Execution Clocks Trans- Bytes
fers Coding Example
Typical Range 8088
FBLD
FBLD Source
FBLD Exceptions: I
Operands Execution Clocks Trans- Bytes Coding Example
fers
Typical Range 8088
Coprocessor 1-45
FBSTP
FBSTP destination
FBSTP Exceptions: I
Operands Execution Clocks Trans- Bytes
fers Coding Example
Typical Range 8088
FCHS
FCHS (change sign) complements (reverses) the sign of the top
stack element.
FCLEX/FNCLEX
FCLEX/FNCLEX (clear exceptions) clears all exception flags,
the interrupt request flag, and the busy flag in the status word.
1-46 Coprocessor
FCOM
FCOM/ /source
FCOM Exceptions: I, 0
Operands Execution Clocks Trans· Bytes
fers Coding Example
Typical Range 8088
IIST(i) 45 40·50 0 2 FCOM ST(1)
short·real 65+EA 63·70+EA 4 2·4 FCOM [BP.] UPPER_LIMIT
long·real 70+EA 65·75+EA 8 2·4 FCOM WAVELENGTH
C3 CO Order
0 0 ST >source
0 1 ST <source
1 0 ST = source
1 1 ST? source
FCOMP
FCOMP / /source
FCOMP Exceptions: I, 0
Operands Execution Clocks Trans· Bytes
fers Coding Example
Typical R~nge 8088
IISTO) 47 42-52 0 2 FCOMP ST(2)
short-real 68+EA 63-73+EA 4 2-4 FCOMP [BP].N_REAOINGS
long-real 72+EA 67-77+EA 8 2-4 FCOMP DENSITY
Coprocessor 1-47
FCOMPP
FCOMPP/ /source
FDECSTP
FDECSTP (decrement stack pointer) subtracts 1 from ST, the
stack top pointer in the status word.
FDISI/FNDISI
FDISI/FNDISI (disable interrupts) sets the interrupt enable
mask in the control word.
1-48 Coprocessor
FDIV
Normal division
FDIVP destination,source
FIDIV source
The normal division instructions (divide real, divide real and pop,
integer divide) divide the destination by the source and return the
quotient to the destination.
FDIV Exceptions: I, D, Z, D, U, P
Operands Execution Clocks Trans- Bytes
fers Coding Example
Typical Range 8088
/lST(il.ST 198 193-203 0 2 FOIV
short-real 220+EA 215-225+EA 4 2-4 FOIV DISTANCE
long-real 225+EA 220-230+EA 8 2-4 FOIV ARC [011
FDIVP Exceptions: I, D, Z, D, U, P
Operands Execution Clocks Trans- Bytes
fers Coding Example
Typical Range 8088
ST(i),ST 202 197-207 0 2 FOIVP ST(4), ST
FIDIV Exceptions: I, D, Z, D, U, P
Operands Execution Clocks Trans- Bytes
fars Coding Example
Typical Range 8088
word-integer 230+EA 224-238+EA 2 2-4 FIOIV SURVEY_OBSERVATIONS
short-integer 236+EA 230-243+EA 4 2-4 FIOIV RELATIVE_ANGLE[OI)
Coprocessor 1-49
FDIVR
Reversed Division
FDIVRP destination,source
FIDIVR source
FDIVR Exceptions: I, D, Z, 0, U, P
Operands Execution Clocks Trans- Bytes
fers Coding Example
Typical Range 8088
//ST,STO)/ST(i),ST 199 194-204 0 2 FDIVR ST(2), ST
short-real 221+EA 216-226+EA 6 2-4 FDIVR [BX].PULSE_RATE
long-real 226+EA 221-231+EA 8 2-4 FDIVR RECDRDER.FREQUENCY
FDIVRP Exceptions: I, D, Z, 0, U, P
Operands Execution Clocks Trans- Bytes
fers Coding Example
Typical Range 8088
STO),ST 203 198-208 0 2 FDIVRP sHU, ST
FIDIVR Exceptions: I, D, Z, 0, U, P
Operands Execution Clocks Trans- Bytes
fers Coding Example
Typical Range 8088
word-integer 230+EA 225-239+EA 2 2-4 FIDIVR [BP].X_CDDRD
short-integer 237+EA 231-245+EA 4 24 FIDIVR FREQUENCY
1-50 Coprocessor
FENI/FNENI
FENI/FNENI (enable interrupts) clear the interrupt enable mask
in the control word.
FFREE
FFREE destination
FICOM
FICOM source
Coprocessor 1-51
FICOMP
FICOMP source
FICOMP Exceptions: I, D
Operands Execution Clocks Trans- Bytes
fers Coding Example
Typical Range 8088
word-integer 82+EA 74-88+EA 2 2-4 FICOMP [BPl.LlMIT [SI)
short-inter 87+EA 80-93+EA 4 2-4 FICOMP N_SAMPLES
FILD
FILD source
FILD (integer load) loads (pushes) the source onto the stack.
flLD Exceptions: I
Operands Execution Clocks Trans- Bytes
fers Coding Example
Typical Range 8088
word-integer 50+EA 46-54+EA 2 2-4 FI LD [BXl.SEQUENCE
short-integer 56+EA 52-60+EA 4 2-4 FILD STANDOFF[DI)
long-integer 64+EA 60-68+EA 8 2-4 FILD RESPONSE.COUNT
FINCSTP
FINCSTP (increment stack pointer) adds 1 to the stack top
pointer (ST) in the status word.
1-52 Coprocessor
FINIT/FNINIT
FINIT/FNINIT (initialize processor) performs the functional
equivalent of a hardware RESET.
Control Word
Infinity Control 0 Projective
Rounding Control 00 Round to nearest
Precision Control 11 64 bits
Interrupt-enable Mask 1 Interrupts disabled
Exception Masks 111111 All exceptions masked
Status Word
Busy 0 Not Busy
Condition Code ???? (Indeterminate)
Stack Top 000 Empty stack
Interrupt Request 0 No interrupt
Exception Flags 000000 No exceptions
Tag Word
Tags 11 Empty
Coprocessor 1-53
FIST
FIST destination
FIST (integer store) stores the stack top to the destination in the
integer format.
FIST ExceptiDns: I, P
Operands Execution Clocks Trans· Bytes
fers Coding Example
Typical Range 8088
word·integer 86+EA 80·90+EA 4 2·4 FIST OBS.COUNT[SIl
short·integer 88+EA 82·92+EA 6 2-4 FIST [BP].FACTORED_PULSES
FISTP
FISTP destination
FISTP (integer store and pop) operates like FIST and also pops
the stack following the transfer. The destination may be any of the
binary integer data types.
FISTP ExceptiDns: I, P
Operands Execution Clocks Trans· Bytes
fers Coding Example
Typical Range 8088
word·integer 88+EA 82·92+EA 4 2·4 FISTP [BX].ALPHA_COUNT[SIl
short·integer 90+EA 84·94+EA 6 2·4 FISTP CORRECTED_TIME
long·integer 100+EA 94·105+EA 10 2·4 FISTP PANEL.N_READINGS
1-54 Coprocessor
FLD
FLD source
FLD (load real) loads (pushes) the source operand onto the top of
the register stack.
FLD Exceptions: I, D
Operands Execution Clocks Trans- Bytes
fers Coding Example
Typical Range BOB8
STOl 20 17-22 0 2 FLO ST(O)
short-real 43+EA 38-56+EA 4 2-4 FLO READING[SII.PRESSURE
long-real 46+EA 40-60+EA 8 2-4 FLO [BPI.TEMPERATURE
temp-real 57+EA 53-65+EA 10 2-4 FLO SAVEREADING
FLDCW
FLDCW source
Coprocessor 1-55
FLDENV
FLDENV source
FLDLG2
FLDLG2 (load log base 10 of 2) loads (pushes) the value of
LOG 102 onto the stack.
FLDLN2
FLDLN2 (load log base e of 2) loads (pushes) the value of
LOG) onto the stack.
1-56 Coprocessor
FLDL2E
FLDL2E (load log base 2 of e) loads (pushes) the value LOG 2e
onto the stack.
FLDL2T
FLDL2T (load log base 2 of 10) loads (pushes) the value of
LOG210 onto the stack.
FLDPI
FLD PI (load 1T) loads (pushes) 1T onto the stack.
Coprocessor 1-57
FLDZ
FLDZ (load zero) loads (pushes) +0.0 onto the stack.
FLDI
FLD 1 (load one) loads (pushes) + 1.0 onto the stack.
1-58 Coprocessor
FMUL
Multiplication
FMUL / /source/destination,source
FMULP destination,source
FIMUL source
FMUL Exceptions: I, D, 0, U, P
Operands Execution Clocks Trans· Bytes
fers Coding Example
Typical Range 8088
/ /ST(i),ST/ST,ST(i) [ 97 90-105 0 2 FMU L ST,ST(3)
//ST(i),ST/ST,ST(i) 138 130-145 0 2 FMULST,ST(3)
short-real 118+EA 110-125+EA 4 2-4 FMU L SPEED_FACTOR
long-real I 120+EA 112-126+EA 8 2-4 FMUL [BP].HEIGHT
long-real 161+EA 154-168+EA 8 2-4 FMUL [BP]_HEIGHT
I occurs when one or both operands is "short" - it has 40 trailing zeros in its fraction.
FMULP Exceptions: I, D, 0, U, P
Operands Execution Clocks Trans- Bytes
fers Coding Example
Typical Range 8088
STm,ST I 100 94-108 0 2 FMU LP ST(1 ),ST
ST(il.ST 142 134-148 0 2 FMULP ST(l).ST
I occurs when one or both operands is "short" - it has 40 trailing zeros in its fraction.
FIMUL Exceptions: I, D, 0, P
Operands Execution Clocks Trans- Bytes
fers Coding Example
Typical Range 8088
word-integer 130+EA 124-138+EA 2 2-4 FIMUL BEARING
short-integer 136+EA 130-144+EA 4 2-4 FIMUL POSITION.LAXIS
Coprocessor 1·59
FNOP
FNOP (no operation) stores the stack top to the stack top (FST
ST,ST(O» and thus effectively performs no operation.
FPATAN
FPATAN (partial arctangent) computes the function
() =ARCTAN (Y/X). X is taken from the top stack element and
Y from ST( 1). Y and X must observe the inequality O<Y <X < 00 •
The instruction pops the stack and returns () to the (new) stack
top, overwriting the Y operand.
FPREM
FPREM (partial remainder) performs modulo division on the top
stack element by the next stack element, that is, ST( 1) is the
modulus.
FRNDINT
FRNDINT (round to integer) rounds the top stack element to an
integer.
FRSTOR
FRS TOR source
FSCALE
FSCALE (scale) interprets the value contained in ST(1) as an
integer, and adds this value to the exponent of the number in ST.
This is equivalent to:
ST-- ST .2ST(I)
FSQRT
FSQRT (square root) replaces the content of the top stack
element with its square root.
1-62 Coprocessor
FST
FST destination
FST (store real) transfers the stack top to the destination, which
may be another register on the stack or long real memory operand.
FSTCW/FNSTCW
FSTCW/FNSTCW destination
Coprocessor 1-63
FSTENV/FNSTENV
FSTENV/FNSTENV destination
FSTP
FSTP destination
FSTP (store real and pop) operates the same as FST, except that
the stack is popped following the transfer.
1-64 Coprocessor
FSTSW/FNSTSW
FSTSW/FNSTSW destination
FSUB
Subtraction
FSUB / /source/destination,source
FSUBP destination,source
FISUB source
Coprocessor 1-65
FSUBP Exceptions: I, D, 0, U, P
Operands Execution Clocks Trans- Bytes
fers Coding Example
Typical Range 8088
ST(i),ST 90 75-105 0 2 FSUBP ST(2),ST
FISUB Exceptions: I, D, 0, P
Operands Execution Clocks Trans- Bytes
fers Coding Example
Typical Range 8088
word-i nteger 120+EA 102-137+EA 2 2-4 FISUB BASE_FREQUENCY
sh ort-i nteger 125+EA 108-143+EA 4 2-4 FISUB TRAIN_SIZE[DIl
FSUBR
Reversed Subtraction
FSUBR / /source/destination,source
FSUBRP destination,source
FISUBR source
FSUBR Exceptions: I, D, 0, U, P
Operands Execution Clocks Trans- Bvtes
fers Coding Example
Typical Range 8088
//ST,ST(i)!ST(i),ST 87 70-100 0 2 FSUBR ST,ST(1)
short-real 105+EA 90-120+EA 4 2-4 FSUBR VECTOR[SI]
long-real 110+EA 95-125+EA 8 2-4 FSUBR [BXl.INDEX
1-66 Coprocessor
FSUBRP Exceptions: I, D, D, U, P
Operands Execution Clocks Trans- Bytes
fers Coding Example
Typical Range 8088
ST(j),ST 90 75-105 0 2 FSUBRP ST(I),ST
FISUBR Exceptions: I, D, D, P
Operands Execution Clocks Trans- Bytes
fers Coding Example
Typical Range 8088
word-integer 120+EA 103-139+EA 2 2-4 FISUBR FLOOR[BX] [SIl
short-integer 125+EA 109-144+EA 4 2-4 FISUBR BALANCE
FTST
FTST (test) tests the top stack element by comparing it to zero.
The result is posted to the condition codes.
C3 CO Result
0 0 ST is positive and nonzero
0 1 ST is negative and nonzero
1 0 ST is zero (+ or -)
1 1 ST is not comparable (that
is, it is a NAN or projective 00)
Coprocessor 1-67
FWAIT
FWAIT (processor instruction)
EXAM
1-68 Coprocessor
Condition Code
Interpretation
C3 C2 Cl CO
0 0 0 0 + Unnormal
0 0 0 1 +NAN
0 0 1 0 - Unnormal
0 0 1 1 - NAN
0 1 0 0 + Normal
0 1 0 1 +00
0 1 1 0 - Normal
0 1 1 1 _00
1 0 0 0 +0
1 0 0 1 Empty
1 0 1 0 -0
1 0 1 1 Empty
1 1 0 0 + Denormal
1 1 0 1 Empty
1 1 1 0 - Denormal
1 1 1 1 Empty
FXCH
FXCH/ /destination
FXCH Exceptions: I
Operands Execution Clocks Trans· Bytes
fers Coding Example
Typical Range 8088
//ST(j) 12 10·15 0 2 FXCH ST(2)
Coprocessor 1-69
FXTRACT
FXTRACT (extract exponent and significant) "decomposes" the
number in the stack top into two numbers that represent the actual
value of the operand's exponent and significand fields contained in
the stack top and ST(1).
FXTRACT Exceptions: I
Operands Execution Clocks Trans- Bytes
ters Coding Example
Typical Range 8088
(no operands) 50 27-55 0 2 FXTRACT
FYL2X
FYL2X (Y log base 2 of X) calculates the function Z=Y.LOG 2 •
X is taken from the stack top and Y from ST( 1). The operands
must be in the ranges O<X < and - 00<Y< + The 00 00.
instruction pops the stack and returns Z at the (new) stack top,
replacing the Y operand.
1-70 Coprocessor
FYL2XPI
FYL2XP 1 (Y log base 2 of (X + 1» calculates the function
Z = y. LOG 2( X + 1). X is taken from the stack top and must be
in the range 0< IXI «1-(v'2/2». Y is taken from ST(1) and
must be in the range - <Y < 00 FYL2XP 1 pops the stack and
00 •
F2XMI
F2XMl (2 to the X minus 1) calculates the function Y=2x-1.
X is taken from the stack top and must be in the range O<X <0.5.
The result Y replaces the stack top.
Coprocessor 1-71
Notes:
1-72 Coprocessor
IBM Keyboard
Keyboard 1-73
The microcomputer (Intel 8048) in the keyboard performs several
functions, including a power-on self-test when requested by the
system uilit .. This test checks the microcomputer ROM, tests
memory, and checks for stuck keys. Addition~l functions are:
keyboard scanning, buffering of up to 16 key scan codes,
maintaining bidirectional serial communications with the system
unit, and executing the hand-shake protocol required by each
scan-code transfer.
The following pages have figures that show the keyboard, the scan
codes, and the keyboard interface connector specifications.
1-74 Keyboard
8255A5 LS322
PAO OH OH'
PA1 OG
PA2 OF
PA3 OE
PA4 OD
PA5 OC
PA6 OB
PA7 QA
OE
D1
DO
PB7 CLR
PB6
PC LK --+-+-l
Keyboard 1-7 5
-,
-J
0'1
a.~o
~
0.. ;;0\
59EJ60EJ 1n 2[] 31@l41#1 5[J 61%1 7Fl8r&l91*110f(l11f)l12~13r+TOQOOr;.:]OD [;
CD
<tr
o
...
I»
l 1 J lLJ1~ llLJlliJI! 1~1~1LtJ1~1LLJ1tL1u 1~ J LJ
F' F2 ~ ~ ~ ~:::'
a.
lEJrEJJ to§CiEJIEJI[]IEJr[)I[)lrJl[]l~I[)I[]llJ[]Ub1~I[]r~IEJJ
tDEOEJt[]lrJr[]l1:JrEJl[]I~l"[]IODiD~l"[]l'[r~
o
Qi'
te
ci
3 "lElrEJJ
6[EJIEJJ luE}ulDrDrEJrEJrEJr[]lEJIEJlEJt[JY[]JOEJDlBI[gllDrg. ll +
67EJ68
l !uj
F9
0 5DO'J[
~ LJU
57 rI~ capsOOrolOO~'
ill ~ ill ~ Lock
Note: Nomenclature is on both the top and front face of the keybutton as shown. The number to the upper left designates the button
position.
Key Position Scan Code in Hex Key Position Scan Code in Hex
1 01 43 2B
2 02 44 2C
3 03 45 2D
4 04 46 2E
5 05 47 2F
6 06 48 30
7 07 49 31
8 08 50 32
9 09 51 33
10 OA 52 34
11 OB 53 35
12 OC 54 36
13 OD 55 37
14 OE 56 38
15 OF 57 39
16 10 58 3A
17 11 59 3B
18 12 60 3C
19 13 61 3D
20 14 62 3E
21 15 63 3F
22 16 64 40
23 17 65 41
24 18 66 42
25 19 67 43
26 1A 68 44
27 1B 69 45
28 1C 70 46
29 1D 71 47
30 1E 72 48
31 1F 73 49
32 20 74 4A
33 21 75 4B
34 22 76 4C
35 23 77 4D
36 24 78 4E
37 25 79 4F
38 26 80 50
39 27 81 51
40 28 82 52
41 29 83 53
42 2A
Keyboard 1-77
Rear Panel
Connector
1-78 Keyboard
Expansion Unit
Expansion Board
The expansion board is a support board that carries the I/O
channel signals from the option adapters and receiver card. These
signals, except 'osc,' are carried over the expansion cable.
Because 'osc' is not sent over the expansion cable, a
14.31818-MHz signal is generated on the expansion board. This
signal may not be in phase with the 'osc' signal in the system unit.
-
Expansion
Channel
Slot 1 Slot
-
2 I----
Slot
3
Slot ~
4
Slot
5 ~
Slot
6
Slot t--
7
Power
Slot Supply
8 Connector
Timing
---- Generation
(8284)
-
'---
----
---
14.31818
MHz Crystal
L.......
The following table contains a list of all the signals that are
redriven by the extender and receiver cards, and their associated
time delays. The delay times include the delay due to signal
propagation in the expansion cable. Assume a nominal cable
delay of 3 ns. As such, device access will be less than 260 ns.
Nominal Maximum
Delay Delay
Signal (ns) (ns) Direction (*)
AO - A19 27 39 Output
AEN 27 39 Output
DACKO - DACK3 27 39 Output
MEMR 27 39 Output
MEMW 51 75 Output
lOR 51 75 Output
lOW 27 39 Output
ALE 27 39 Output
ClK 27 39 Output
T/C 27 39 Output
RESET 27 39 Output
IRQ2 - IRQ7 36 (**) Input
DRQ1 - DRQ3 36 (**) Input
I/O CH RDY 36 51 Input
I/O CH CK 36 51 Input
DO - D7 (Read) 84 133 Input
DO - D7 (Write) 19 27 Output
(**) Asynchronous nature of interrupts and other requests are more dependent on
processor recognition than electrical signal propagation through expansion
logic.
The power supply is located at the right rear of the expansion unit.
It supplies operating voltages to the expansion board, and provides
two separate connections for power to the fixed disk drives. The
nominal power requirements and output voltages are listed in the
following tables:
Input Requirements
Vdc Output
Vac Output
~~~I~~
::G
'"
....o
u
CIl
CIl t:
> c: t:
';: o 0
0<11
..>::
"'
,- ....
u
0
,- (.)
't:"
~ ;=
..
CIl
OCll >< 0
t: we..
'0 t:
........o
CIl 0
,~ (.)
u.. ..
~ CIl
'c ~
:::> t:
o ~ (S) c:t:
o 0
... e.. 'iii (.)
t: ..
0.;=
'" CIl
/~J.
~ 0
\..Y <ttl
C! ~
... t:
. 0
u(.)
~ a3
o ;=
NO
... e..
The DIP switch on the extender card should be set to indicate the
maximum contiguous read/write memory housed in the system
unit. The extender card switch settings are located in "Appendix
G: Switch Settings." Switch positions 1 through 4 correspond to
address bits hex A19 to hex A16, respectively.
Location Function
Memory FXXXX(*) Write to memory to latch address bits
Port 210 Write to latch expansion bus data (EDO - ED7)
Port 210 Read to verify expansion bus data (EDO - ED7)
Port 211 Read high-order address bits (AB - A 15)
Port 211 Write to clear wait test latch
Port 212 Read low-order address bits (AO - A7)
Port 213 Write 00 to disable expansion unit
Port 213 Write 01 to enable expansion unit
Port 213 Read status of expansion unit
DO = enable/disable
D1 = wait-state request flag
D2-D3 = not used
D4-D7 = switch position
1 = Off
O=On
(*) Example: Write to memory location F123:4=00
Read Port 211 = 1 2
Read Port 212 = 34
(All values in hex)
-
Buffer liD CH RDY
MEMW,MEMR,DACKO
A16-A~ ~o-~
Wait-State liD Address
-
G'."";'"~
Decode
~
~
~ ~
AO-A19
Address
~ l::
-h
I/) Buffer
~
::l a>
m r:-'
"tl
E 3'
~
I/) (")
> 0
Vl ::l
~
>' ::l
--.. Data Latch ~
<1>
!l
~
and Disable
?Z2 Circuits
DO-D7
I EXT DISABLE l
Data
'If,
Buffer
,.. T
DIR ENABLE
~ "", D;",•••
and Enable
I Control
---
Extender Card Block Diagram
-
Location Function
Memory FXXXX(*) Write to memory to latch address bits
Port 214 Write to latch data bus bits (DO - 07)
Port 214 Read data bus bits (DO - 07)
Port 215 Read high-order address bits (AB - A15)
Port 216 Read low-order address bits (AO - A7)
(*) Example: Write to memory location F123:4=00
Read Port 215 =12
Read Port 21 6 =34
(All values in hex)
00-07 Data
~u
.,
I:
Bus
Buffer
I:
o
U
I:
a::
N Data Latch
<Q
Circuit
Control Signal
AO-A19
2',(@ • • • • • • • • • • • • • • • • • • • @ )~1
42 @ • • • • • • • • • • • • • • • • • • • @ 22
62 @ • • • • • • • • • • • • • • • • • • @ 43
E = Extended
Connector Specifications
Printers 1-91
(1 ) Print Method: Serial-impact dox matrix
(2) Print Speed: 80 cps
(3) Print Direction: Bidirectional with logical seeking
(4) Number of Pins in Head: 9
(5) Line Spacing: 1/16 inch (4.23 mm) or programmable
(6) Printing Characteristics
Matrix: 9x9
Character Set: Full 96-character ASCII with descenders
plus 9 international characters/symbols.
Graphic Character: See "Additional Printer Specifications'~
(7) Printing S.izes
Maximum
Characters characters
per inch per inch
Normal: 10 80
Double Width: 5 40
Compressed: 16.5 132
Double Width-Compressed: 8.25 66
(8) Media Handling
Paper Feed: Adjustable sprocket pin feed
Paper Width Range: 4 inch (101.6 mm) to 10 inch (254 mm)
Copies: One original plus two carbon copies (total
thickness not to exceed 0.012 inch (0.3
mm)). Minimum paper thickness is 0.0025
inch (0.064 mm).
Paper Path: Rear
(9) Interfaces
Standard: Parallel 8-bit
Data and Control Lines
(10) Inked Ribbon
Color: Black
Type: Cartridge
Life Expecta ncy: 3 million characters
(11 ) Environmental Conditions
Operating Temperature Range: 41 to 95° F (5 to 35° C)
Operating Humidity: 10 to 80% non-condensing
(12) Power Requirement
Voltage: 120 Vac, 60 Hz
Current: 1 A maximum
Power Consumption: 100 VA maximum
(13) Physical Characteristics
Height: 4.2 inches (107 mm)
Width: 14.7 inches (374 mm)
Depth: 12.0 inches (305 mm)
Weight: 12 pounds (5.5 kg)
Printer Specifications
1-92 Printers
(6) Printing Characteristics
IBM 80 CPS Matrix Printer
Graphics: 64 block characters.
Printers 1-93
Setting the DIP Switches
There are two DIP switches on the control circuit board. In order
to satisfy the user's specific requirements, desired control modes
are selectable by the DIP switches. The functions of the switches
and their preset conditions at the time of shipment are as shown in
the following figures.
Switch Factory-Set
Number Function On Off Condition
1-1 Not Applicable - - On
1-2 CR Print Only Print & On
Line Feed
1-3 Buffer Full Print Only Print & Off
Line Feed
1-4 Cancel Code Invalid Valid Off
1-5 Delete Code Invalid Valid On
1-6 Error Buzzer Sounds Does Not On
Sound
1-7 Character Generator N.A. Graphic Off
Patterns
Select
1-8 SLCT IN Signal Fixed Not Fixed On
1-94 Printers
Switch Factory-Set
Number Function On Off Condition
2-1 Not Applicable - - On
2-2 Not Applicable - - On
2-3 Auto Feed XT Signal Fixed Not Fixed Off
Internally Internally
2-4 Coding Table Select N.A. Standard Off
Switch Factory-Set
Number Function On Off Condition
1 -1 Not Applicable - - On
1-2 CR Print Only Print & On
Line Feed
1-3 Buffer Full Print Only Print & Off
Line Feed
1-4 Cancel Code Invalid Valid Off
1-5 Not Applicable - - On
1-6 Error Buzzer Sound Does Not On
Sound
1-7 Character Generator Set 2 Set 1 Off
1-8 SLCT IN Signal Fixed Not Fixed On
Internally Internally
Switch Factory-Set
Number Function On Off Condition
2-1 Form Length 12 Inches 11 Inches Off
2-2 Line Spacing 1/8 Inch 1/6 Inch Off
2-3 Auto Feed XT Signal Fixed Not Fixed Off
Internally Internally
2-4 1 Inch Skip Over Perforation Valid Not Valid Off
Printers 1-95
Parallel Interface Description
Specifications:
• Logic level: Input data and all interface control signals are
compatible with the TTL level.
BUSy-----,
ACKNLG
0.5 flS (Minimum)
DATA--~
STROBE ---+-....
1-96 Printers
Signal Return
Pin No. Pin No. Signal Direction Description
1 19 STROBE In STROBE pulse to read
data in. Pulse width must
be more than 0.5 /1S at
receiving terminal. The
signal level is normally
"high"; read-in of data is
performed at the "Iow "
level of this signal.
2 20 DATA 1 In These signals represent
3 21 DATA 2 In information of the 1 st to
4 22 DATA 3 In 8th bits of parallel data
5 23 DATA 4 In respectively. Each signal
6 24 DATA 5 In is at "high" level when
7 25 DATA 6 In data is logical "1" and
8 26 DATA 7 In "low" when logical "0."
9 27 DATA 8 In
10 28 ACKNLG Out Approximately 5 /1S pulse;
"low" indicates that data
has been received and
the pri nter is ready to
accept other data.
11 29 BUSY Out A "high" signal indicates
that the printer cannot
receive data. The signal
becomes "high" in the
following cases:
1. During data entry.
2. During printing
operation.
3. In "offline " state.
4. During printer error
status.
Printers 1-97
Signal Return
Pin No. Pin No. Signal Direction Description
12 30 PE Out A "high" signal indicates
that the printer is out of
paper.
13 - SLCT Out This signal indicates that
the printer is in the
se Iected state.
14 - AUTO In With this signal being at
FEED XT "low" level, the paper is
automatically fed one line
after printing. (The signal
level can be fixed to
"low" with DIP SW pin
2-3 provided on the
control circuit board.)
15 - NC Not used.
16 - OV Logic GND level.
17 - CHASSIS- - Printer chassis GND. In
GND the printer, the chassis
GND and the logic GND
are isolated from each
other.
18 - NC - Not used.
19-30 - GND - "Twisted-Pair Return"
signal; GND level.
31 - INIT In When the level of this
signal becomes "low" the
printer controller is reset
to its initial state and the
print buffer is cleared.
This signal is normally at
"high" level, and its
pulse width must be
more than 50 f.JS at the
receiving terminal.
1-98 Printers
Signal Return
Pin No. Pin No. Signal Direction Description
32 ERROR Out The level of this signal
becomes "Iow " when the
printer is in "Paper End"
state, "Offline" state and
"Error" state.
33 - GND - Same as with pin
numbers 19 to 30.
34 - NC - Not used.
35 Pulled up to +5 Vdc
through 4.7 k-ohms
resistance.
36 - SLCTIN In Data entry to the printer
is possible only when the
level of this signal is
"low." (Internal fixing can
be carried out with DIP
SW 1-8. The condition at
the time of shipment is
set "low" for this signaL)
Printers 1-99
Printer Modes for the IBM 80 CPS
Printers
The IBM 80 CPS Graphics Printer can use any of the
combinations listed below, and the print mode can be changed at
any place within a line.
Printer Modes
Normal X X X
Compressed X X X
Emphasized X X X
Double Strike X X X
Subscript X X X
Superscript X X X
Double Width X X X X X X X X X
Underline X X X X X X X X X
1-100 Printers
Printer Control Codes
On the following pages you will find complete codes for printer
characters, controls, and graphics. You may want to keep them
handy for future reference. The printer codes are listed in ASCII
decimal numeric order (from NUL which is 0 to DEL which is
127). The examples given in the Printer Function descriptions are
written in the BASIC language. The "input" description is given
when more information is needed for programming considerations.
ASCII decimal values for the printer control codes can be found
under "Printer Character Sets."
The descriptions that follow assume that the printer DIP switches
have not been changed from their factory settings.
Printers 1-101
Printer
Code Printer Function
NUL Null
Used with ESC B and ESC D as a list terminator. NUL is also used
with other printer control codes to select options (for example,
ESC S).
Example:
LPRINT CHR$ (0);
BEL Bell
Sounds the printer buzzer for 1 second.
Example:
LPRINT CHR$ (7);
HT Horizontal Tab
Tabs to the next horizontal tap stop. Tab stops are set with ESC D.
No tab stops are set when the printer is powered on. (Graphics
Printer sets a tab stop every 8 columns when powered on.)
Example:
LPRINT CHR$ (9);
LF line Feed
Spaces the paper up one line. Line spacing is 116-inch unless
reset by ESC A, ESC 0, ESC 1, ESC 2 or ESC 3.
Example:
LPRINT CHR$(1 0);
VT Vertical Tab
Spaces the paper to the next vertical tab position. (Graphics Printer
does not allow vertical tabs to b.e set; therefore, the VT code is
treated as LF.)
Example:
LPRINT CHR$ (11);
FF Form Feed
Advances the paper to the top of the next page.
Note: The location of the paper, when the printer is powered on,
determines the top of the page. The next top of page is 11
inches from that position. ESC C can be used to change the
page length.
Example:
LPRINT CHR$ (12);
CR Carriage Return
Ends the line that the printer is on and prints the data remaining in
the printer buffer. (No Line Feed operation takes place.)
Note: IBM Personal Computer BASIC adds a Line Feed unless
128 is added [for example, CHR$ (141 )].
Example:
LPRINT CHR$ (13);
1-102 Printers
Printer
Code Printer Function
SO Shift Out (Double Width)
Changes the printer to the Double Width print mode.
Note: A Carriage Return, Line Feed or DC4 cancels Double Width
print mode.
Example:
LPRINT CHR$( 14);
SI Shift In (Compressed)
Changes the printer to the Compressed Character print mode.
Example:
LPRINT CHR$(15);
DC1 Device Control 1 (Printer Selected)
(Graphics Printer ignores DC1)
Printer accepts data from the system unit. Printer DIP switch 1-8
must be set to the Off position.
Example:
LPRINT CHR$(17);
DC2 Device Control 2 (Compressed Off)
Stops printing in the Compressed print mode.
Example:
LPRINT CHR(18);
DC3 Device Control 3 (Printer Deselected)
(Graphics Printer ignores DC3)
Printer does not accept data from the system unit. The system unit
must have the printer select line low, and DIP switch 1-8 must be in
the Off position.
Example:
LPRINT CHR$(19);
ESC Escape
Lets the printer know that the next data sent is a printer command.
(See the following list of commands.)
Example:
LPRINT CHR$(27);
Printers 1-103
Printer
Code Printer Function
ESC- Escape Minus (Underline)
Format: ESC -;n;
(Graphics Printer only)
ESC - followed by a 1, prints all of the following data with an
underline.
ESC - followed by a 0 (zero), cancels the Underline print mode.
Example:
LPRINT CHR$(27);CHR$(45);CHR$(1);
ESC 0 Escape Zero (1 IS-Inch Line Feeding)
Changes paper feeding to 118 inch.
Example:
LPRINT CHR$(27);CHR$(48);
ESC 1 Escape 1 (7/72-lnch Line Feeding)
Changes paper feed to 7/72 inch.
Example:
LPRINT CHR$(27);CHR$(49);
ESC 2 Escape Two (Starts Variable Line Feeding)
ESC 2 is an execution command for ESC A. If no ESC A command
has been given, line feeding returns to 1/6-inch.
Example:
LPRINT CHR$(27);CHR$(50);
ESC 3 Escape Three (Variable Line Feeding)
Format: ESC 3;n;
(Graphics Printer only)
Changes the·paper feeding to n/216-inch. The example below sets
the paper feeding to 54/216 (1/4) inch. The value of n must be
between 1 and 255.
Example:
LPRINT CHR$(27);CHR$(51 );CHR$(54);
ESC 6 Escape Six (Select Character Set 2)
(Graphics Printer only)
Selects character set 2. (See "Printer Character Set 2. ")
Example:
LPRINT CHR$(27);CHR$(54);
ESC 7 Escape Seven (Select Character Set 1.)
(Graphics Printer only)
Selects character set 1. (See "Printer Character Set 1.")
Character set 1 is selected when the printer is powered on or reset.
Example:
LPRINT CHR$(27);CHR$(55);
ESC 8 Escape Eight (Ignore Paper End)
Allows the printer to print to the end of the paper. The pri nter
ignores the Paper End switch.
Example:
LPRINT CHR$(27);CHR$(56);
1-1 04 Printers
Printer
Code Printer Function
ESC 9 Escape Nine (Cancel Ignore Paper End)
Cancels the Ignore Paper End command. ESC 9 is selected when
the printer is powered on or reset.
Example:
LPRINT CHR$(27);CHR$(57);
ESC < Escape Less Than (Home Head)
(Graphics Printer only)
The print head will return to the left margin to print the line
following ESC <. This will occur for one line only.
Example:
LPRINT CHR$(27);CHR$(60);
Printers 1-105
Printer
Code Printer Function
ESCC Escape C (Set Lines per Page)
Format: ESC C;n;
Sets the page length. The ESC C command must have a value
following ino specify the length of page desired. (Maximum form
length for the printer is 127 lines.)
The example below sets the page length to 55 lines. The printer
defaults to 66 lines per page when powered on or reset.
Example:
LPRINT CHR$(27);CHR$(67);CHR$(55);
Escape C (Set Inches per Page)
Format: ESC C;n;m;
(Graphics Printer only)
Escape C sets the length of the page in inches. This command
requires a value of 0 (zero) for n, and a value between 1 and 22 for
m.
Example:
LPRINT CHR$(27);CHR$(67);CHR$(0);CHR$(12);
1-106 Printers
Printer
Code Printer Function
ESC H Escape H (Double Strike Off)
Stops printing in the Double Strike mode.
Example:
LPRINT CHR$(27);CHR$(72);
ESCJ Escape J (Set Variable Line Feeding)
Format: ESC J;n;
(Graphics Printer only)
When ESC J is sent to the printer, the paper will feed in increments
of n/216 of an inch. The value of n must be between 1 and 255.
The example below gives a line feed of 50/216-inch. ESC J is
canceled after the line feed takes place.
Example:
LPRINT CHR$(27);CHR$(74);CHR$(50);
ESC K Escape K (480 Bit-Image Graphics Mode)
Format ESC K;n,;n 2 ;v,;v 2 ; ... v k ;
(Graphics Printer only)
Changes from the Text mode to the Bit-Image Graphics mode. n,
and n 2 are one byte, which specify the number of bit-image data
bytes to be tra nsferred. v, through vk are the bytes of the bit-image
data. The number of bit-image data bytes (k) is equal to n, +256n 2
and ca nnot exceed 480 bytes. At every horizonta I position, each
byte can print up to 8 vertical dots. Bit-image data may be mixed
with text data on the same line.
Note: Assign values to n, and n 2 as follows:
n, represents values from 0 - 255.
n 2 represents values from 0 - 1 x 256.
MSB is most significant bit and LSB is least significant bit.
I MSB LSB I
15 14 13 12 11 10 9 8
222 2 2 2 2 2
n,
I MSB LSB I
7 6 5 4 3 2 1 0
22222 222
Printers 1-107
Data sent to the printer.
Text (20 characters) T ESCTK Tn=360 TBit-image data I Next data I
In text mode, 20 characters in text mode correspond to 120 bit-image
positions (20 x 6 = 120). The printable portion left in Bit-Image mode is 360
dot positions (480 - 120 = 360).
Data sent to the printer.
Example:
TYPE B:GRAPH.TXT
1 'OPEN PRINTER IN RANDOM MODE WITH LENGTH OF 255
2 OPEN "LPn:" AS #1
3 WIDTH "LPT1",255
4 PRINT #1 ,CHR$(13);CHR$(1 0);
5 SLASH$=CHR$(1 )+CHR$(02)+CHR$(04)+CHR$(08)
6 SLASH$=SLASHS+CHR$(16)+CHR$(32)+CHR$(64)+CHR$(128)+CHR$(0)
7 GAP$=CHR$(O)+CHR$(O)+CHR$(O)
8 NDOTS=4HQ
9 'ESCKN1 N2
10 PRINT #1 ,CHR$(27);"K";CHR$(NDOTS MOD 256);CHR$(FIX (NDOTSI256});
11 ' SEND NDOTS NUMBER OF BIT IMAGE BYTES
12 FOR 1=1 TO NDOTS/12 'NUMBER OF SLASHES TO PRINT USING
GRAPHICS
13 PRINT #1 ,SLASH$;GAPS;
14 NEXT I
15 CLOSE
16 END
This example will give you a row of slashes printed in the 480 Bit-Image mode.
1-108 Printers
Printer
Code Printer Function
ESC L Escape L (960 Bit-Image Graphics Mode)
Format: ESC L;n1;n2;v1;v2; ... vk;
(Graphics Printer only)
Changes from the Text mode to the Bit-Image Graphics mode. The
input is similar to ESC K. The 960 Bit-Image mode prints at half the
speed of the 480 Bit-Image Graphics mode, but can produce a
denser graphic image. The number of bytes of bit-image Data (k) is
n 1 + 256n 2 but cannot exceed 960. n 1 is in the range of 0 to 255.
ESC N Escape N (Set Skip Perforation)
Format ESC N;n;
(Graphics Printer only)
Sets the Skip Perforation function. The number following ESC N
sets the value for the number of lines of Skip Perforation. The
example shows a 12-line skip perforation. This will print 54 lines
and feed the paper 12 lines. The value of n must be between 1 and
127. ESC N must be reset anytime the page length (ESC C) is
changed.
Example:
CHR$(27);CHR$(78);CHR$(12);
Printers 1-109
Printer
Code Printer Function
ESCW Escape W (Double Width)
Format: ESC W;n;
(Graphics Printer only)
Changes the printer to the Double Width print mode when ESC W is
followed by a 1. This mode is not canceled by a line-feed operation
and must be canceled with ESC W followed by a 0 (zero).
Example:
LPRINT CHR$(27);CHR$(87);CHR$(1);
ESCY Escape Y (960 Bit-Image Graphics Mode Normal Speed)
Format: ESC Y n,;n 2 ;v,;v2 ; ... v k ;
(Graphics Printer only)
Changes from the Text mode to the 960 Bit-Image Graphics mode.
The printer prints at normal speed during this operation and cannot
print dots on consecutive dot positions. The input of data is similar to
ESC L.
ESC Z Escape Z (1920 Bit-Image Graphics Mode)
Format: ESC Z;n,;n 2 ;v,;v2 ; ... v k;
(Graphics Printer only)
Changes from the Text mode to the 1920 Bit-Image Graphics mode.
The input is similar to the other Bit-Image Graphics modes. ESC Z
can print only every third dot position.
DEL Delete (Clear Printer Buffer)
(Graphics Printer ignores DEL)
Clears the printer buffer. Control codes, except SO, still remain in
effect. DIP switch 1-5 must be in the Off position.
Example:
LPRINT CHR$(127);
1-110 Printers
Matrix Printer Character Set (Part 1 of 2)
Printers 1-111
Matrix Printer Character Set (Part 2 of 2)
1-112 Printers
Graphics Printer Character Set 1 (Part 1 of 2)
Printers 1-113
., XX' I « » :::: : ::
• • ii ii ! ~
r=-
---I·
--- ':-::-
1-114 Printers
Graphics Printer Character Set 2 (Part 1 of 2)
Printers 1-115
130 131 132 133 134 135 136 137 138 139
e a a a.. a «; 0
e e e I
1-116 Printers
IBM Printer Adapter
The output ports may also be read at the card's interface for
diagnostic loop functions. This allows faults to be isolated
between the adapter and the attaching device.
.. 8
-. Enable
~ Clock
~ Trans-
ceiver
.... .
... 8 ..
r DIR
I DIR O.C.
Read Drivers SLCTIN
A.~ Data STROBE
Write Data AUTO
Command FD XT
Decoder Write Control INIT
Read Status
Read
Control
r-
Bus Control
Buffers Latch
~ Enable
~ 4 Clock -
5
4 Enable
... --.
r
Clear
- --
ERROR
SLCT
PE
ACK
R eset
BUSY
The instruction captures data from the data bus and is present on
the respective pins. These pins are each capable of sourcing
2.6 rnA and sinking 24 rnA.
It is essential that the external device not try to pull these lines to
ground.
Bit 4
-
Bit 3 Bit 2
-Bit 1 - -
Bit 0
This instruction causes the data present on pins 1, 14, 16, 17, and
the IRQ bit to read by the processor. In the absence of external
drive applied to these pins, data read by the processor will exactly
match data last written to hex 3BE in the same bit positions. Note
that data bits 0-2 are not included. If external drivers are dotted
to these pins, that data will be ORed with data applied to the pins
by the hex 3BE latch.
These pins assume the states shown after a reset from the
processor.
14
• •
•
• •
•
• ••
•
•
•
25
Connector •
Note: All outputs are software-generated,
and all inputs are real-time signals
(not latched).
0
-Strobe 1
+Data Bit 0 2
+Data Bit 1 3
+Data Bit 2 4
+Data Bit 3 5
+Data Bit 4 6
+Data Bit 5 7
+Data Bit 6 8
Printer +Data Bit 7 9 Printer
- Acknowledge 10 Adapter
+Busy 11
+P.End (out of paper) 12
+Select 13
-Auto Feed 14
- Error 15
-Initialize Printer 16
- Select Input 17
Ground 18-25
Connector Specifications
• 80 by 25 screen
• Direct-drive output
• 9 by 14 character box
• 7 by 9 character
• 18 kHz monitor
• Character attributes
Monochrome Adapter 1-123
Processor
Address ..
(12) ..
Memory
Address
(1~ Multiplexer (10) (10)
2K Memory
2K Memory
Character
Attribute
Code
(8)
Data 1.0.
Processor
Data
Bus
Gating
. (8)
Character
Clock 'F
I
~
(8)
BDO-7
MA Octal
Latch
1. Octal
Latch
. r--
AO .. (4)
RA
.. Character
Generator
Attribute
Decode
Chip MC6845
CRTC
Select DOTCLK
Timing
Signals
.. Shift
Register
Video
Process
Serial Dots Logic
r ..
HSYNC, VSYNC, CURSOR, DISPEN
Characte.r
Clock
I +
Monitor
Direct Drive
Outputs
IBM Monochrome
Register Register Program Display
Number File Unit (Address in hex)
7 6 5 4 3 2 0
Character Code
Even Address (M)
7 6 5 4 3 2 0
Attribute Code
BL
I IG R I B II
I
R I
G
I
B I Odd Address (M+1)
I Foreground
~
Intensity
I I I Background
I Blink
Background Foreground
R G B R G B Function
0 0 0 0 0 0 Non-Display
0 0 0 0 0 1 Underline
0 0 0 1 1 1 White Character IBlack Background
1 1 1 0 0 0 Reverse Video
The figure below breaks down the functions of the I/O address
decode for the adapter. The I/O address decode is from hex 3BO
through hex 3BF. The bit assignment for each I/O address
follows:
1/0 Register
Address Function
3BO Not Used
3B1 Not Used
3B2 Not Used
3B3 Not Used
3B4* 6845 Index Register
3B5* 6845 Data Register
3B6 Not Used
3B7 Not Used
3B8 CRT Control Port 1
3B9 Reserved
3BA CRT Status Port
3BB Reserved
3BC Parallel Data Port
3BD Printer Status Port
3BE Printer Control Port
3BF Not Used
Bit
Number Function
0 +Horizontal Drive
1 Reserved
2 Reserved
3 +Black/White Video
o
6
o
o
Connector
Note: Signal voltages are 0.0 to 0.6 Vdc at down level and +2.4 to 3.5
Vdc at high level.
Connector Specifications
Operating Characteristics
Screen
Video Signal
Horizontal Drive
~~
(')
• .
o V
0- Output
~ ~
-
o flrocessor Address Data Data
Latch
~ 6845 ~ f-
..
'0
t:r'
Data
...... CRT
Latch Latch Latch
(')
[Il
Controller
y Graphics
~ - •.... Serializer
-
~
(t
'"I
... Character ~R
rL:...
Alpha
Generator ~ ~G
Serializer
ROM Color
Encoder
Palettel
~B
. ~
4.....
Overscan
- --....
I ..... Vertical
Horizontal
Composite
4 Mode
Control ...
Timing
Generator
. Color
Generator
~
& Control
Display Buffer
The display buffer resides in the processor-address space, starting
at address hex B8000. It provides 16K bytes of dynamic
read/write memory. A dual-ported implementation allows the
processor and the graphics control unit to access the buffer. The
processor and the CRT control unit have equal access to this
buffer during all modes of operation, except in the high-resolution
alphanumeric mode. In this mode, only the processor should
access to this buffer during the horizontal-retrace intervals. While
the processor may write to the required buffer at any time, a small
amount of display interference will result if this does not occur
during the horizontal-retrace intervals.
Character Generator
This attachment utilizes a ROM character generator. It consists of
8 K bytes of storage that cannot be read from or written to under
software control. This is a general-purpose ROM character
generator with three different character fonts. Two character fonts
are used on the color/graphics adapter: a 7-high by 7-wide
double-dot font and a 5-wide by 7-high single-dot font. The font is
selected by a jumper (P3). The single-dot font is selected by
inserting the jumper; the double-dot font is selected by removing
the jumper.
Alphanumeric Mode
Every display-character position in the alphanumeric mode is
defined by two bytes in the regen buffer (a part of the monitor
adapter), not the system memory. Both the color/graphics and the
monochrome display adapter use the following 2-byte
character/attribute format.
7 6 5 4 3 2 o 7 6 5 4 3 2 o
Normal B 0 0 0 I 1 1 1
Reverse Video B 1 1 1 I 0 0 0
Nondisplay (Black) B 0 0 0 I 0 0 0
Nondisplay (White) B 1 1 1 I 1 1 1
7 6 543 2 1 0
IBIR G Bill R G BI
Foreground Color
I
~
Intensity
I Background Color
I Blinking
Monochrome vs Color/Graphics
Character Attributes
Foreground and background colors are defined by the attribute
byte of each character, whether using the IBM Monochrome
Display and Printer Adapter or the IBM Color/Graphics Monitor
Adapter. The following table describes the colors for each
adapter:
Remember that not all monitors recognize the intensity (I) bit.
Graphics Mode
The IBM Color/Graphics Monitor Adapter has three modes
available within the graphics mode. They are low-resolution color
graphics, medium-resolution color graphics, and high-resolution
color graphics. However, only medium- and high-resolution
graphics are supported in ROM. The following table summarizes
the three modes.
7 6 5 4 3 2 o
C1 CO C1 CO C1 CO C1 CO
Fi rst Second Third Fourth
Display Display Display Display
PEL PEL PEL PEL
Memory
Address
(in hex) Function
B8000
Even Scans
(0,2,4, .. 198)
8,000 bytes
B9F3F
Not Used
BAOOO
Odd Scans
( 1.3,5 .. 199)
8,000 Bytes
BBF3F
Not Used
BBFFF
C1 co Function
0 Dot takes on the color of 1 of 16 preselected background colors
0
°
1 Selects first color of preselected Color Set 1 or Color Set 2
1 0 Selects second color of preselected Color Set 1 or Color Set 2
1 1 Selects third color of preselected Color Set 1 or Color Set 2
Memory
Address
(in hex) Display Buffer
B8000
(Even) Character Code A
Starting B8001
Address Attribute A
B8002 (Example of a 40 by 25 Screen)
Character Code B
B8003 AB
Attribute B
X
B87CE
Character Code X Video Screen
Last B87CF
Address Attribute X
In the graphics mode, the displayed dots and colors (up to 16K
bytes) are also fetched from the display buffer. The bit
configuration for each graphics mode is explained in "Graphics
Mode."
I R G B Color
0 0 0 0 Black
0 0 0 1 Blue
0 0 1 0 Green
0 0 1 1 Cyan
0 1 0 0 Red
0 1 0 1 Magenta
0 1 1 0 Brown
0 1 1 1 White
1 0 0 0 Gray
1 0 0 1 Light Blue
1 0 1 0 Light Green
1 0 1 1 Light Cyan
1 1 0 0 Light Red
1 1 0 1 Light Magenta
1 1 1 0 Yellow
1 1 1 1 High Intensity White
The following table defines the values that must be loaded into the
6845 CRT Controller registers to control the different modes of
operation supported by the attachment:
Hex
Address A9 AS A7 A6 A5 A4 A3 A2 Al AD Function of Register
308 1 1 1 1 0 1 1 0 0 0 Mode Control Register (DO)
309 1 1 1 1 0 1 1 0 0 1 Color Select Register (00)
30A 1 1 1 1 0 1 1 0 1 0 Status Register (01)
30B 1 1 1 1 0 1 1 0 1 1 Clear Light Pen Latch
3DC 1 1 1 1 0 1 1 1 0 0 Preset Light Pen Latch
3D4 1 1 1 1 0 1 0 Z Z 0 6845 Index Register
3D5 1 1 1 1 0 1 0 Z Z 1 6845 Data Register
3DO 1 1 1 1 0 1 0 Z Z 0 6845 Registers
3D1 1 1 1 1 0 1 0 Z Z 1 6845 Registers
Color-Select Register
This is a 6-bit output-only register (cannot be read). Its I/O
address is hex 3D9, and it can be written to by using the 8088
I/O Out command.
C1 co Set Selected
0 0 Background (Defined by bits 0-3 of port hex 309)
0 1 Cyan
1 0 Magenta
1 1 White
C1 CO Set Selected
0 0 Background (Defined by bits 0-3 of port hex 3D9)
0 1 Green
1 0 Red
1 1 Brown
Bit 5 When on, this bit will change the character background
intensity to the blinking attribute function for
alphanumeric modes. When the high-order attribute bit is
not selected, 16 background colors (or intensified colors)
are available. For normal operation, this bit should be set
to 1 to allow the blinking function.
Bit 0 This bit, when active, indicates that a regen buffer memory
access can be made without interfering with the display.
Read/Write Memory
Address Space (in hex)
01000
System
Read/Write
Memory
AOOOO
B8000
Display Buffer 128K Reserved
(16K Bytes) Regen Area
BCOOO
COOOO
• 6
•
• 9
o
Color Direct
Drive 9-Pin
D-Shell Connector
Color/Graphics
Adapter
+12 Volts 1
(key) Not Used 2
RF Color/G raphics
Mo dulator Composite Video Output 3 Adapter
logic Ground 4
RF Modulator Interface
The display has a 13-inch (340 millimeters) CRT. The CRT and
analog circuits are packaged in an enclosure so the display may sit
either on top of the system unit or on a nearby tabletop or desk.
Front panel controls and indicators include: Power-On control,
Power-On indicator, Brightness and Contrast controls. Two
additional rear-panel controls are the Vertical Hold and Vertical
Size controls.
Operating Characteristics
Screen
Video Signal
• Red, green, and blue video signals and intensity are all
independent.
Horizontal Drive
The 5-1/4 inch diskette drive adapter fits into one of the
expansion slots in the system unit. It attaches to one or two
diskette drives through an internal, daisy-chained flat cable that
connects to one end of the drive adapter. The adapter has a
connector at the other end that extends through the rear panel of
the system unit. This connector has signals for two additional
external diskette drives; thus the 5-1/4 inch diskette drive adapter
can attach four 5-1/4 inch drives - two internal and two external.
L"
0'1 and
Precompensate
o Timing
t:j
Circuit C;,,""
;;.
~
1
• .~
Write !'--
.. ~-
::+ Data Read Data
~ ...... Data I"""" <}- I I
:>
I"
VCO SyNC...... Separator f-
Q. STD. DATA
~
'0
.....
~
i"'Data Windovyj
I"""" ,reo
'"I NEC Step
Floppy ~
~ Buffer rv-
Direction
Disk
rv' Controller
V Write Enable
l/"" Head Select
~
Index
I"""" Write Protect
~'-J
i'" Track 0
.v"""1..
I""""
--"
Digital
~
I--C
Control Decoder ~D Drive A Select
~
Port 1/'"
r-B
t--C
INTR.
~
r r-D
Digital-Output Register
The digital-output register (DOR) is an output-only register used
to control drive motors, drive selection, and feature enable. All
bits are cleared by the I/O interface reset line. The bits have the
following functions:
Bit 1 0 Drive
o 0 o (A)
o 1 1 (B)
1 0 2 (C)
1 1 3 (D)
The bits in the main status register (hex 34F) are dermed as
follows:
Bit
Number Name Symbol Description
DBO FDD A Busy DAB FDD number 0 is in the Seek mode.
Command Phase
The FDC receives all information required to perform a particular
operation from the processor.
Execution Phase
The FDC performs the operation it was instructed to do.
Result Phase
After completion of the operation, status and other housekeeping
information is made available to the processor.
SRT Step Rate Time SRT stands for the stepping rate for the
FDD (2 to 32 ms in 2-ms increments).
STO Status 0 ST 0-3 stand for one of four registers that
ST 1 Status 1 store the status information after a
ST 2 Status 2 command has been executed. This
ST 3 Status 3 information is available during the result
phase after command execution. These
registers should not be confused with the
main status register (selected by AO =0).
ST 0-3 may be read only after a command
has been executed and contain
information releva nt to that particula r
command.
STP Scan Test During a scan operation, if STP =1, the
data in contiguous sectors is compared
byte-by-byte with data sent from the
processor (or DMA), and if STP =2, then
alternate sectors are read and compared.
usa, Unit Select US stands for a selected drive number
US1 encoded the same as bits 0 and 1 of the
digital output register (DOR).
Data Bus
Phase R/W D7 D6 D5 D4 D3 D2 D1 DO Remarks
Read Data
Command W MT MF SK 0 0 1 1 0 Command Codes
W X X X X X HD US1 usa
w C Sector ID information
W H prior to command
W R execution.
W N
W EOT
W GPL
W DTL
Execution Data tra nsfer
between the FDD
and main system.
Result R STO Status information
R ST 1 after command
R ST 2 execution.
R C Sector I D information
R H after command
R R execution.
R N
Read Deleted Data
Command W MT MF SK 0 1 1 0 0 Command Codes
W X X X X X HD US1 usa
w C Sector ID information
W H prior to command
W R execution.
W N
W EOT
W GPL
W DTL
Execution Data tra nsfer
between the FDD
and main system.
Result R STO Status information
R ST 1 after command
R ST 2 execution.
R C Sector ID information
R H after command
R R execution.
R N
Read 10
Command W a MF a a 1 a
1 a Command Codes
W X X X X X HD US1 usa
Execution The first correct ID
information on the
cylinder is stored in
data register.
Result R STa Status information
R ST 1 after command
R ST 2 execution.
R C Sector ID information
R H during execution
R R phase.
R N
Command W MT MF SK , ,
Scan Low or Equal
0 0 , Command Codes
W X X X X X HD US, usa
w C Sector ID information
W H prior to command
W R execution.
W N
W EOT
W GPL
W STP
Execution Data compared
between the FDD
and main system.
Result R STO Status information
R ST' after command
R ST 2 execution.
R C Sector ID information
R H after command
R R execution.
R N
Command W MT MF SK , , ,
Scan High or Equal
0 , Command Codes
W X X X X X HD US, usa
w C Sector ID information
W H prior to command
W R execution.
W N
W EOT
W GPL
W STP
Execution Data compared
between the FDD
and main system.
Result R STO Status information
R ST' after command
R ST 2 execution.
R C Sector ID information
R H after command
R R execution.
R N
Programming Summary
OPC Registers
Drive Constants
Head Load 35 ms
Head Settle 15 ms
Motor Start 250ms
Comments
• Head loads with drive select, wait HD load before R/W.
Adapter Outputs
-Drive Select A and B (Driver: 7438)
These two lines are used by drives A
and B to degate all drivers to the
adapter and receivers from the
attachment (except motor enable) when
the line associated with a drive is
inactive.
Adapter Inputs
-Index The selected drive supplies one pulse
per diskette revolution on this line.
Component
Side
20
•
• ••
•
• ••
• ••
• •
•• ••
• •
•
•
•
• •
• • 37
•
o
Pin
At Standard TTL Levels Number
Unused 1-5
Index 6
Motor Enable C 7
Drive Select D 8
Drive Select C 9
Motor Enable D 10
Direction (Stepper Motor) 11
External Drive
Step Pulse 12
Drives Adapter
Write Data 13
Write Enable 14
Track 0 15
Write Protect 16
Read Data 17
Select Head 1 18
Ground 20-37
The system unit has space and power for one or two 5-1/4 inch
diskette drives. A drive can be single-sided or double-sided with
40 tracks for each side, is fully self-contained, and consists of a
spindle drive system, a read positioning system, and a
read/write/erase system.
To load a diskette, the operator raises the latch at the front of the
diskette drive and inserts the diskette into the slot. Plastic guides
in the slot ensure the diskette is in the correct position. Closing the
latch centers the diskette and clamps it to the drive hub. After 250
milliseconds, the servo-controlled dc drive motor starts and drives
the hub at a constant speed of 300 rpm. The head positioning
system, which consists of a 4-phase stepper-motor and band
assembly with its associated electronics, moves the magnetic head
so it comes in contact with the desired track of the diskette. The
stepper-motor and band assembly uses one-step rotation to cause
a one-track linear movement of the magnetic head. No operator
intervention is required during normal operation. During a write
operation, a 0.013-inch (0.33 millimeter) data track is recorded,
then tunnel-erased to 0.012 inch (0.030 millimeter). If the diskette
is write-protected, a write-protect sensor disables the drive's
circuitry, and an appropriate signal is sent to the interface.
I
I
I
__ I
0.140 Inch -I L 0.25 ± 0.01 Inch
(~.56 mm) ~llf6.30 ± 0.25 mm)
J----c
Sealed
Protective
Jacket
Oxide Coated
Mylar Disk
....... ,
"-
\
.r: E
gE \
---(0, @
: : It) 5.25 Inch
66 1(133.4mm) I
I
I
+1 +1 /
o ~ Liner /
m COlO
C'l-
~
·co
'---5.25Inch-l
1~(133.4m~ Head
I Aperture
Recording Medium
Diskettes 1-185
Notes:
1-186 Diskettes
IBM Fixed Disk Drive Adapter
The fixed disk drive adapter attaches to one or two fixed disk
drive units, through an internal daisy-chained flat cable
(data/control cable). Each system supports a maximum of one
fixed disk drive adapter and two fixed disk drives.
The adapter is buffered on the I/O bus and uses the system board
direct memory access (DMA) for record data transfers. An
interrupt level also is used to indicate operation completion and
status conditions that require processor attention.
The fixed disk drive adapter provides automatic II-bit burst error
detection and correction in the form of 32-bit error checking and
correction (ECC).
The device level control for the fixed disk drive adapter is
contained on a ROM module on the adapter. A listing of this
device level control can be found in "Appendix A: ROM BIOS
Listings. "
"!1
~.
('I>
0.
o
iii·
Serializer I
Deserializer
~
J2
>
0. To
Data
~
....
Serdes
ECC Separator
) Drives
('I>
"" 1/0
Edge
Connector
Data Bus
DB7-DBO'
Control Sector
r-- Buffer
8-Bit
Processor
Status Register
At the end of all commands from the system board, the disk
controller returns a completion status byte back to the system
board. This byte informs the system unit if an error occurred
during the execution of the command. The following shows the
format of this byte.
~I
6 5 4 3 2
o d o o o e
Sense Bytes
If the status register receives an error (bit 1 is set), then the disk
controller requests four bytes of sense data. The format for the
four bytes is as follows:
Bits 7 6 5 4 3 2 1 0
Byte 0 Address I 0 Error Type Error Code
Valid I I
Byte 1 0 0 d Head Number
Byte 2 Cylinder High Sector Number
Byte 3 Cylinder Low
Remarks
d = drive
The following disk controller tables list the error types and error
codes found in byte 0:
Bit 7 6 5 4 3 2 1 0
Byte 0 Command Opcode
Class
Byte 1 0 0 d Head Number
Byte 2 Cylinder High
I Sector Number
Byte 3 Cylinder Low
Byte 4 Interleave or Block Count
Byte 5 Control Field
Byte 2 - Bits 6 and 7 contain the two most significant bits of the
cylinder number.
Bits 0 through 5 contain the sector number.
Byte 3 - Bits 0 through 7 are the eight least significant bits of the
cylinder number.
Bits 7 6 5 4 3 2 0 Remarks
I I a 0 0 0 s s s r = retries
s = step option
a = retry option on data ECC
error
Bits 2, 1, 0 These bits define the type of drive and select the step
option. See the following figure.
Bits 2. 1. 0
0 0 0 This drive is not specified and defaults to 3 milliseconds per
step,
0 0 1 N/A
0 1 0 N/A
0 1 1 N/A
1 0 0 200 microseconds per step,
1 0 1 70 microseconds per step (specified by BIOS),
1 1 0 3 milliseconds per step,
1 1 1 3 milliseconds per step,
*Initialize Drive Characteristics: The DCB must be followed by eight additional bytes.
Maximum number of cylinders (2 bytes)
Maximum number of heads (1 byte)
Start reduced write current cylinder (2 bytes)
Start write precompensation cylinder (2 bytes)
Maximum ECC data burst length (1 byte)
DO-D7 Positive 8-bit data bus over which data and status
information is passed between the system board and
the controller.
Pin 20
Pin 2
Scrubbing
Filter
sting
Disk
Operating Characteristics
The system board operates at a frequency of 4.77 MHz, which
results in a clock cycle of 210 ns.
Normally four clock cycles are required for a bus cycle so that an
840-ns memory cycle time is achieved. Memory-write and
memory-read cycles both take four clock cycles, or 840 ns.
*Switch 8 may be set on the 64K memory expansion option to use only half the
memory on the card (that is, 32K). If switch 8 is on, all 64K is accessible. If
switch 8 is off, address bit A 15 (as set by switch 5) is used to determine which
32K are accessible, and the 64K option behaves as a 32K option.
Bit ........ 4 3 2 1 0
Bit value ... 16 8 4 2
Switch
bit
'-----0
The following method can be used to determine the switch settings for the 64K
memory expansion option.
Bit ........ 3 2 0
Bit value ... 8 4 2
Switch
rn hlr 00001
bit
L------O
Bit ........ 3 2 0
Bit value ... 8 4 2
Switch
Amount of memory
installed on option
' - - - - 256K
' - - - - - 192K (on = logical 1)
' - - - - - - 128K
64K
bit
'-------0
A9 AO - ... .
I 10 )
r
Convert
AResistive Input
AEN Instruction Resistance
F
Digital K.. 4 I
lOW ..
F
Decode
Pulse
lOR ..... - ~
4--
Typical Frequency
D7-DO 833 Hz
A A
. 8 Data Bus
Buffer/
Driver
(
...
4
K. 4 J
Address Decode
The select on the game control adapter is generated by two
74LS138s as an address decoder. AEN must be inactive while
the address is hex 201 in order to generate the select. The select
allows a write to fire the one-shots or a read to give the values of
the trigger buttons and one-shot outputs.
Trigger Buttons
The trigger button inputs are read by an In from address hex 201.
A trigger button is on each joy stick or paddle. These values are
seen on data bits 7 through 4. These buttons default to an open
state and are read as "1." When a button is pressed, it is read as
"0." Software should be aware that these buttons are not
debounced in hardware.
AI9-AI0: Unused.
MEMR,MEMW: Unused.
DACKO-DACK3: Unused.
IRQ7-IRQ2: Unused.
DRQ3-DRQ1: Unused.
CLK,OSC: Unused.
RESETDRV: Unused.
The typical input to the game control adapter is a set of joy sticks
or game paddles.
The joy sticks will typically be a set of two (A and B). These will
have one or two buttons each with two variable resistances each,
with a range from 0 to 100 k-ohms. One variable resistance will
indicate the X-coordinate and the other variable resistance will
indicate the Y-coordinate. This should be attached to give the
following input data:
1'---1-_-,-1~11.. ! ! i I
Y -Coordinate I 12 5 I
I • I Y-Coordin;lte
oil I I • 6 I
I 11 3 • I
I I. I
I 114 7 I
I
I I • I I
I. 8 I I
IL _____________ JI (15 • L_____________ J
'-- -----.",
Note: Potentiometer for X- and Y -Coordinates has a range of 0
to 100 k-ohms. Button is normally open; closed when
pressed.
0
• • 9
• •
• •
8 •
G
• •
G
• •
G
• • 15
8 •
G
~ G 0
Button 6 10
Position 2 11
Ground 12
Position 3 13
Button 7 14
+5 Vdc 15
Connector Specifications
The card contains a voltage bus (+5 Vdc) and a ground bus (0
Vdc). Each bus borders the card, with the voltage bus on the back
(pin side) and the ground bus on the front (component side). A
system interface design is also provided on the prototype card.
I/O Read/Write
Memory Read/Write
Spare-E18
Address Bit 0 Buffered
Address
Addrets Bit 2
Lines
Address Bit 3 E2
Addrest Bit 9 Address E5
Buffer
1--I6t..-_ _-I1/0 Address
Address Enabl Decode
t-t-----i Logic
H .... --1. E11
L...-_ _- - '
-I/O Decode
(Hex 300 - 31 F Inclusive)
Ground Bus
2~l
O-Shell Connector
Pin Positions
!
Card-Edge Tabs
Hole for Option
Retaining Bracket
Component Side
Component Side
The pin side has a +5 Vdc bus [0.05 inch (1.27 millimeters)
wide] screened onto it and card-edge tabs that are labeled B 1
through B31.
Pin Positions
Pin Side
Option Retaining
Bracket
~
•
• • 9
• •
• •
• •
• •
• •
• 15
~
8
0
15-Pin D-Shell
Female Connector
Component Side
Current Loop
25-Pin D-Shell
Connector
Modes of Operation
The different modes of operation are selected by programming the
8250 asynchronous communications element. This is done by
selecting the I/O address (hex 3F8 to 3FF primary, and hex 2F8
to 2FF secondary) and writing data out to the card. Address bits
AO, AI, and A2 select the different registers that define the modes
of operation. Also, the divisor latch access bit (bit 7) of the line
control register is used to select certain registers.
I/O Decodes
0 0 1 0 Interrupt Enable
0 1 0 x Interrupt Identification
0 1 1 x Line Control
1 0 0 x Modem Control
1 0 1 x Line Status
1 1 0 x Modem Status
1 1 1 x None
0 0 0 1 Divisor Latch (LSB)
Note: Bit 8 will be logical 1 for the adapter designated as primary or a logical 0
for the adapter designated as alternate (as defined by the address jumper
module on the adapter).
A2, Aland AO bits are "don't cares" and are used to select the different
register of the communications chip.
Address Bits
00 01 02 05 06 07
Interface Description
The communications adapter provides an EIA RS-232C-like
interface. One 25-pin D-shell, male type connector is provided to
attach various peripheral devices. In addition, a current loop
interface is also located in this same connector. A jumper block is
provided to manually select either the voltage interface, or the
current loop interface.
I
T" ..m" C;re"" I
~~~
~ 49.9 Ohm
Pin 9
Tx Data _ _ _....,~2vO'hm
L.._- - - - - - - - . :
_ Pin 11
+5Vdc
I Receive Circuit
5.6 k-Ohm
OPTO Isolator
Pin 18 X J I - - - - - Rx Data
Pin 25 ...--+-.....
+5Vdc
Interface
Interchange Voltage Binary State Signal Condition Control Function
Positive Voltage = Binary (0) = Spacing =On
Negative Voltage = Binary (1) = Marking =Off
Invalid Levels
+15 Vdc
On Function
+3 Vdc
-3 Vdc
Off Function
-15 Vdc
Invalid Levels
Input Signals
Chip Select (CSO, CS1, CS2), Pins 12-14: When CSO and
CSI are high and CS2 is low, the chip is selected. Chip selection
is complete when the decoded chip select signal is latched with an
active (low) address strobe (ADS) input. This enables
communications between the INS8250 and the processor.
Register Select (AO, At, A2), Pins 26-28: These three inputs
are used during a read or write operation to select an INS8250
register to read from or write to as indicated in the table below.
Note that the state of the divisor latch access bit (DLAB), which
is the most significant bit of the line control register, affects the
selection of certain INS8250 registers. The DLAB must be set
high by the system software to access the baud generator divisor
latches.
DLAB A2 A1 AO Register
0 0 0 0 Receiver Buffer (Read), Transmitter
Holding Register (Write)
0 0 0 1 Interrupt Enable
,
X 0 1 0 Interrupt Identification (Read Only)
X 0 1 1 Li ne Control
X 1 0 0 Modem Control
X 1 0 1 Line Status
X 1 1 0 Modem Control Status
X 1 1 1 None
1 0 0 0 Divisor Latch (Least Significant Bit)
1 0 0 1 Divisor Latch (Most Significant Bit)
Master Reset (MR), Pin 35: When high, clears all the registers
(except the receiver buffer, transmitter holding, and divisor
latches), and the control logic of the INS8250. Also, the state of
various output signals (SOUT, INTRPT, OUT 1, OUT 2, RTS,
DTR) are affected by an active MR input. Refer to the
"Asynchronous Communications Reset Functions" table.
Data Set Ready (DSR), Pin 37: When low, indicates that the
modem or data set is ready to establish the communications
link and transfer data with the INS8250. The DSR signal is a
modem-control function input whose condition can be tested by
the processor by reading bit 5 (DSR) of the modem status register.
Bit 1 (DDSR) of the modem status register indicates whether the
DSR input has changed since the previous reading of the modem
status register.
Output Signals
Data Terminal Ready (DTR), Pin 33: When low, informs the
modem or data set that the INS8250 is ready to communicate.
The DTR output signal can be set to an active low by
programming bit 0 (DTR) of the modem control register to a high
level. The DTR signal is set high upon a master reset operation.
Request to Send (RTS), Pin 32: When low, informs the modem
or data set that the INS8250 is ready to transmit data. The RTS
output signal can be set to an active low by programming bit 1
(RTS) of the modem control register. The RTS signal is set high
upon a master reset operation.
Input/Output Signals
Data Bus (D7-DO), Pins 1-8: This bus comprises eight tri-state
input/output lines. The bus provides bidirectional communications
between the INS8250 and the processor. Data, control words,
and status information are transferred through the D7-DO data
bus.
Bit 7 6 5 4 3 2 0
Bits 0 and 1: These two bits specify the number of bits in each
transmitted or received serial character. The encoding of bits 0
and 1 is as follows:
Bit 3: This bit is the parity enable bit. When bit 3 is a logical 1,
a parity bit is generated (transmit data) or checked (receive data)
between the last data word bit and stop bit of the serial data. (The
parity bit is used to produce an even or odd number of l's when
the data word bits and the parity bit are summed.)
Bit 4: This bit is the even parity select bit. When bit 3 is a
logical 1 and bit 4 is a logical 0, an odd number of logical 1's is
transmitted or checked in the data word bits and parity bit. When
bit 3 is a logical 1 and bit 4 is a logical 1, an even number of bits
is transmitted or checked.
Bit 5: This bit is the stick parity bit. When bit 3 is a logical 1
and bit 5 is a logical 1, the parity bit is transmitted and then
detected by the receiver as a logical 0 if bit 4 is a logical 1, or as a
logical 1 if bit 4 is a logical O.
Bit 6: This bit is the set break control bit. When bit 6 is a logical
1, the serial output (SOUT) is forced to the spacing (logical 0)
state and remains there regardless of other transmitter activity.
The set break is disabled by setting bit 6 to a logical O. This
feature enables the processor to alert a terminal in a computer
communications system.
Bit 7: This bit is the divisor latch access bit (DLAB). It must be
set high (logical 1) to access the divisor latches of the baud rate
generator during a read or write operation. It must be set low
(logical 0) to access the receiver buffer, the transmitter holding
register, or the interrupt enable register.
L:
Bit 7 6 5 4 3 2
I I~Bitl
.,,0
Bit 2
L...-_ _ _ _ _ _ ~ Bit 3
1....-_ _ _ _ _ _ _ _ _ Bit 4
L...-_ _ _ _ _ _ _ _ _ _ ~ Bit 5
L...-_ _ _ _ _ _ _ _ _ _ _ _ _ _ Bit 6
1....-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Bit 7
1_:
Bit 7 6 5 4 3 2 o
I I~Bit9 B;>8
Bit 10
I..-_ _ _ _ _ _ _ ~ Bit 11
'--------------1~ Bit 12
' - - - - - - - - - - - - - - - Bit 13
' - - - - - - - - - - - - - - - - + - Bit 14
1..-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _.... Bit 15
The following figure illustrates the use of the baud rate generator
with a frequency of 1.8432 MHz,. For baud rates of 9600 and
below, the error obtained is minimal.
Bit 0: This bit is the receiver data ready (DR) indicator. Bit 0 is
set to a logical 1 whenever a complete incoming character has
been received and transferred into the receiver buffer register. Bit
o may be reset to a logical 0 either by the processor reading the
data in the receiver buffer register or by writing a logical 0 into it
from the processor.
Bit 2: This bit is the parity error (PE) indicator .. Bit 2 indicates
that the received data character does not have the correct even or
odd parity, as selected by the even parity-select bit. The PE bit is
set to a logical 1 upon detection of a parity error and is reset to a
logical 0 whenever the processor reads the contents of the line
status register.
Bit 4: This bit is the break interrupt (BI) indicator. Bit 4 is set to
a logical 1 whenever the received data input is held in the spacing
(logical 0) state for longer than a full word transmission time (that
is, the total time of start bit + data bits + parity +stop bits).
[I L~
I~ 0 If 'oW,"p' P, odi0 9
Interrupt 10 Bit (0)
Interrupt 10 Bit (1)
=0
1....-_ _ _ _ _ _ = a
I....--------~ = a
1....-_ _ _ _ _ _ _ _- . . = a
L...-_ _ _ _ _ _ _ _ _ _..... = a
Bits 1 and 2: These two bits of the IIR are used to identify the
highest priority interrupt pending as indicated in the "Interrupt
Control Functions" table.
Bits 3 through 7: These five bits of the IIR are always logical O.
~
L 1 = Enable Data
Available Interrupt
1 = Enable Tx Holding Register
Empty Interrupt
1 = Enable Receive Line
Status Interrupt
L...-_ _ _ _~ 1 = Enable Modem Status
Interrupt
L...------~·=O
'---------~ = a
' - - - - - - - - - -..... = a
' - - - - - - - - - - - -. . . = a
Bit 0: This bit enables the received data available interrupt when
set to logical 1.
Bit 2: This bit enables the receiver line status interrupt when set
to logical 1.
Bit 0: This bit controls the data terminal ready (DTR) output.
When bit 0 is set to logical 1, the DTR output is forced to a
logical O. When bit 0 is reset to a logical 0, the DTR output is
forced to a logical 1.
Bit 1: This bit controls the request to send (RTS) output. Bit 1
affects the RTS output in a manner identical to that described
above for bit O.
II I:
o
De", CI,,, '" Seod ,DCTSI
Delta Data Set Ready (DDSR)
Trailing Edge Ring
Indicator (TERI)
L -_ _ _ _~ Delta Rx Line Signal
Detect (DRLSD)
'-------~ Clear to Send (CTS)
'----------....,~ Data Set Ready (DSR)
' - - - - - - - - - - - Ring Indicator (RI)
' - - - - - - - - - - - - , . . Receive Line Signal
Detect (RLSD)
Bit 0: This bit is the delta clear to send (DCTS) indicator. Bit 0
indicates that the CTS input to the chip has changed state since
the last time it was read by the processor.
Bit I: This bit is the delta data set ready (DDSR) indicator. Bit
I indicates that the DRS input to the chip has changed since the
last time it was read by the processor.
Bit 5: This bit is the complement of the data set ready (DSR)
input. If bit 4 of the MeR is set to a logical 1, this bit is
equivalent to DTR in the MeR.
Bit 6: This bit is the complement of the ring indicator (RI) input.
If bit 4 of the MeR is set to a logical 1, this bit is equivalent to
OUT 1 in the MeR.
~
I ~ Data Bit 0
~ Data Bit 1
Data Bit 2
Data Bit 3
' - - - - - - - _ Data Bit 4
' - - - - - - - -__~ Data Bit 5
1--_ _ _ _ _ _ _ _..... Data Bit 6
Bit °
is the least significant bit and is the first bit serially received.
~
I '-- Data Bit 0
~ Data Bitl
Data Bit 2
Data Bit 3
'----------1~ Data Bit 4
' - - - - - - - - -.... Data Bit 5
' - - - - - - - - - -....... Data Bit 6
' - - - - - - - - - - - -.... Data Bit 7
Bit 0 is the least significant bit and is the first bit serially
transmitted.
D
D
o
D
Asynchronous
Communications
A d a pte r u.J.J..LJ...L..L.U..!..J.jI-l.U..L.L.L..JL.J.J.J..LJ...L..L..L.f.J.J..L.J...U..J
o
25
•
•
•
14
o
At standard RS-232C Levels
(with exception of current loops)
Description Pin
NC 1
Transmitted Data 2
Received Data 3
Request to Send 4
Clear to Send 5
Data Set Ready 6
Signal Ground 7
Received Line Signal Detector 8
+Transmit Current Loop Data 9
NC 10
-Transmit Current Loop Data 11
NC 12 Asynchr onous
External NC 13 Commu nications
Device Adapter
NC 14
(RS-232 C)
NC 15
NC 16
NC 17
+Receive Current Loop Data 18
NC 19
Data Terminal Ready 20
NC 21
Ring Indicator 22
NC 23
NC 24
-Receive Current Loop Return 25
Connector Specifications
1-250 Asynchronous Adapter
Binary Synchronous
Communications Adapter
TIMER
EIA
Drivers/
8253 Receivers
- Data
System Comm unication
Bus Equip ment
'
I
I Data p:L 'i
:L:L
Bus I I
I I
I I
r
I I Control USART
I I
I I I
I I /, I
I I
I 8251A I I
I r- '------ I
I I I
I Address t Programmable I I
I
L....J Peripheral L....J
Interface
~
[;j r-----
~
V;
~'--
'/); 8255A5
TxD
TxRDY
TxE
TxC
RxD
RxRDY
RxC
INTERNAL
SYNDET
DATA BUS
Transmitter Buffer
The transmitter buffer accepts parallel data from the data-bus
buffer, converts it to a serial bit stream, and inserts the
appropriate characters or bits for the BSC protocol. The output
from the transmit buffer is a composite serial stream of data on the
falling edge of Transmit Clock. The transmitter will begin
transferring data upon being enabled, if CTS = 0 (active). The
transmit data (TxD) line will be set in the marking state upon
receipt of a master reset, or when transmit enable/CTS is off and
the transmitter is empty (TxEmpty).
Receiver Buffer
The receiver accepts serial data, converts it to parallel format,
checks for bits or characters that are unique to the communication
technique, and sends an "assembled" character to the system unit.
Serial data input is received on the RxD (Receive Data) pin, and
is clocked in on the rising edge of RxC (Receive Clock).
Receiver Control
This control manages all receiver-related activites. The
parity-toggle and parity-error flip-flop circuits are used for
parity-error detection, and set the corresponding status bit.
Operation
The complete functional definition of the BSC adapter is
programmed by the system software. Initialization and control
words are sent out by the system to initialize the adapter and
program the communications format in which it operates. Once
programmed, the BSC Adapter is ready to perform its
communication functions.
Transmit
In synchronous transmission, the TxD output is continuously at a
mark level until the system sends its first character, which is a
synchronization character to the 8251A. When the CTS line goes
on, the first character is serially transmitted. All bits are shifted
out on the falling edge of TxC. When the 8251A is ready to
receive another character from the system for transmission, it
raises TxRDY, which causes a level-4 interrupt.
Receive
In synchronous reception, the 8251A will achieve character
synchronization, because the hardware design of the BSC adapter
is intended for internal synchronization. Therefore, the SYNDET
pin on the 8251A is not connected to the adapter circuits. For
internal synchronization, the Enter Hunt command should be
included in the first command instruction word written. Data on
the RxD pin is then sampled in on the rising edge of RxC. The
content of the RxD buffer is compared at every bit boundary with
the first SYNC character until a match occurs. Because the
8251A has been programmed for two synchronization characters
(bisynchronization), the next received character is also compared.
When both SYNC characters have been detected, the 8251A
ends the hunt mode and is in character synchronization. The
SYNDET bit in the status register (not the SYNDET pin) is then
set high, and is reset automatically by a Status Read.
Bit 7 6543210
IIII -
I_I~
L - - I ___L. ~ : Ei~::t~~~~:~~~~;{:s:~ E~~~~ertace
: 0 = Clear-to-Send is on from Interface
' - - - - - - - - - _ Oscillating = Receive Clock Active
1 = TxROY Active
' - - - - - - - - - - - - -__ 1 = Timer 2 Output Active
' - - - - - - - - - - - - - - - _ + _ 1 = Timer 1 Output Active
Bit 7 6 5 4 3 2 o
I I I ~ 0 ~ To," "" 0•• Si,",IA,OS,'oc,",
0= Turn on Select Standby
0= Turn on Test
1 = Not Used
' - -_ _ _ _ _ _ __ + _ 1 = Reset 8251 A
1_:
Bit 7 6 4 3 2 1 0
I
I L-- 1 = Gate Internal Clock (Output Bit)
1 = Gate External Clock (Output Bit)
I
,-,- - - - _ - 1 = Electronic Wrap (Output Bit)
' - - - - - -__ 0 = Enable Timer 1 and 2, Interrupt 6 and
Receive Interrupt 3
' - - - - - - - - - _ _ + _ Oscillating = Receive Data (Input Bit)
'--_ _ _ _ _ _ _ _ _ _ Oscillating = Timer 0 Output (Input Bit)
' - - - - - - - - - - - - -__ 0 = Test Indicate Active (Input Bit)
' - - - - - - - - - - - - - - - _ _ . 0 = BSC Adapter
Definition of Control
SC - Select Counter:
SC1 SCO
a 1 Select Counter 1
1 a Select Counter 2
1 1 Illegal
RL - Read/Load:
RL1 RLO
M - Mode:
M2 M1 MO
I I I I I Terminal Count
a a a Mode a
Interrupt
BCD:
J
3AB c/o = 0 Oata
II
Bit 7 6 5 4 3 2 1 0
I ~ N",","dlAI~" 01
I
Not Used (Always 0)
Character Length Bit - - - - - - .,
Character Length Bit - - - - - 1 I
Bit 2 These two bits are used together to define the character
and length. With 0 and 1 as inputs on bits 2 and 3,
Bit 3 character lengths of 5,6, 7, and 8 bits can be
established, as shown in the preceding figure.
Bit 7 6 5 4 3 2 1 0
~
Transmit Enable
I Error Reset
Request to Send
Internal Reset
Enter Hunt Mode
Bit 0 The Transmit Enable bit sets the function of the 8251A
to either enabled (1) or disabled (0).
Bit 1 The Data Terminal Ready bit, when set to 1 will force
the data terminal output to O. This is a one-bit inverting
output port.
Bit 4 The Error Reset bit is set to 1 to reset error flags from
the command instruction.
The format for a status read word is shown in the figure below.
Some of the bits in the status read format have the same meanings
as external output pins so the 8251A can be used in a completely
polled environment or in an interrupt-driven environment.
Note: TxRDY status bit does not have the same meaning as the 8251A
TxR DY output pin. The former is not conditioned by CTS and TxEnable.
The latter is conditioned by both CTS and TxEnable.
Bit 3 The Parity Error bit sets a flag when errors are
detected. It is reset by the error reset in the command
instruction.
Bit 7 The Data Set Ready bit is a one bit inverting input. It
is used to check modem conditions, such as data-set
ready.
Additional lines, not standardized by the EIA, are pins 11, 18,
and 25 on the interface connector. These lines are designated as
Select Standby, Test, and Test Indicate. Select Standby is used to
support the switched network backup facility of a modem that
provides this option. Test and Test Indicate support a modem
wrap function on modems that are designated for
business-machine, controlled-modem wraps.
+15 Vdc - - - - - - - - - - - - - ,
Active/Data =0
+5 Vdc
+5 Vdc
Invalid Level
-5 Vdc
-5 Vdc
Inactive/Data = 1
-15Vdc
+25Vdc .--------------------,
Active/Data =0
+3 Vdc
+3 Vdc
I nval id Level
-3 Vdc
-3 Vdc
Inactive/Data = 1
-25 Vdc
Hex Address
Device Register Name Function
Primary Alternate
• 25
• •
C'J •
•
•
•
•
C'J eC'J •
•
•
• •
C'~C'J
• •
•
J •
•
•
• 14
No Connection 14
Transmitter Signal Element Timing 15
No Connection 16
Receiver Signal Element Timing 17
Test (IBM Modems Only)- 18
No Connection 19
Data Terminal Ready 20
No Connection 21
Ring Indicator 22
Data Signal Rate Selector 23
No Connection 24
Test Indicate (IBM Modems Only)- 25
Connector Specifications
System EIA
Bus Drivers DCE
Receivers
Address
Address Decode
Modem
logic Status
L - -_ _ _~ Controller Change
logic
• TTL compatibility.
Registers
Txl/R Command
Rxl/R Parameter
Reset Status
Result
Data
Bus
Buffer
TxD
TxC
TxDRQ
TxDACK
i5PLL
32 x CLK
RxDRQ
RTS
RxDACK
PB 1 _4
TxlNT
CTS
RxlNT
CD
RD Read
Write
WR
DMA
Ao Control
Logic
A1
RESET RxD
RxC
CS---...J
CLK--------' L..-_ _+_ FLAG DET
Internal Data Bus--
Control/Read/Write Logic
The other elements of the C/R/W logic are the interrupt lines
(RxINT and TxINT). Interrupt priorities are listed in the
"Interrupt Information" table in this section. These lines signal
the processor that either the transmitter or the receiver requires
service (results should be read from the appropriate register), or a
data transfer is required. The status of each interrupt line is also
reflected by a bit in the status register, so non-interrupt driven
operation is also possible by the communication software
examining these bits periodically.
Port A is a modem control input port. Bits PAD and PAl have
dedicated functions.
II~
PAO Clear to Send
PA 1 Carrier Detect
PA2 Data Set Ready
PA3 CTS Change
PA4 DSR Change
Not Used
Bit PAD This bit reflects the logical state of the clear to
send (CTS) pin. The 8273 waits until CTS is
active before it starts transmitting a frame. If
CTS goes inactive while transmitting, the frame
is aborted and the processor is interrupted. A
CTS failure will be indicated in the appropriate
interrupt-result register.
Bit PAl This bit reflects the logical state of the carrier
detect pin (CD). CD must be active in
sufficient time for reception of a frame's
address field. If CD is lost (goes inactive) while
receiving a frame, an interrupt is generated with
a CD failure result.
Bit PA2 This bit is a sense bit for data set ready (DSR).
Bits PAS to P A 7 These bits are not used and each is read as a 1
for a read port A command.
Port B is a modem control output port. Bits PBO and PBS are
dedicated function pins.
1- ~
II I~ PBO Re,,"" '" Seod
PB 1 - Reserved
PB2 - Data Terminal Ready
PB3 - Reserved
' - - - - - - - _ PB4 - Reserved
'--------~ PB5 - Flag Detect
'-----------~ PB6 - Not Used
' - - - - - - - - - - - - - - . . PB7 - Not Used
Bit PBO This bit represents the logical state of request to send
(RTS). This function is handled automatically by the
8273.
Bit PB 1 Reserved.
Bit PBS This bit reflects the state of the flag detect pin. This pin
is activated whenever an active receiver sees a flag
character.
Elements of the serial data logic section are the data pins TxD
(transmitted data output) and RxD (received data input), and the
respective clocks. The leading edge of TxC generates new
transmitted data and the trailing edge of RxC is used to capture
the received data. The figure below shows the timing for these
signals.
TxC
TxD
RxC
RxD
Bit 7 6 5 4 3 2 1 0
~
0= Ring Indicator is on from Interface
0= Data Carrier Detect is on from Interface
Oscillating = Transmit Clock Active
0= Clear to Send is on from Interface
Oscillating = Receive Clock Active
1 = Modem Status Changed
1 = Timer 2 Output Active
1 = Timer 1 Output Active
Bit 7 6 5 4 3 2 1 0
'Port C is defined for internal control and gating functions. It has three input
and four output bits. The four output bits are defined during initialization, but
only three are used.
Programming Considerations
The software aspects ofthe 8273 involve the communication of
both commands from the processor to the 8273 and the return of
results of those commands from the 8273 to the processor. Due to
the internal processor architecture of the 8273, this system
unit/8273 communication is basically a form of interprocessor
communication, and must be considered when programming for
the SDLC communications adapter.
Bit 7 6 5 4 3 2 1 0
Bit 4 This bit is the command result buffer full (CRBF) bit.
It is set when the 8273 places a result from an
immediate-type command in the result register, and
reset when the processor reads the result or performs
the data transfer.
Bit 6 This bit is the command buffer full (CBF) bit and, when
set, it indicates that a byte is present in the command
register. This bit is normally not used.
Bit 7 This bit is the command busy (CBSY) bit and indicates
when the 8273 is in the command phase. It is set when
the processor writes a command into the command
register, starting the command phase. It is reset when
the last parameter is deposited in the parameter register
and accepted by the 8273, completing the command
phase.
Using bit 4 of port B, the 8273 reset line is brought high, held and
then dropped. This resets the internal registers of the 8273.
To setup the counter modes, the address for the 8253 counter
mode register is selected (see the "SDLC Communications
Adapter Device Addresses" table, later in this section), and the
control word for each individual counter is written to the device
separately. The control-word fonnat and bit definitions for the
8253 are shown below. Note that the two most-significant bits of
the control word select each individual counter, and each counter
mode is defined separately.
D,
I SCl sca RL 1 RLa M2 Ml Ma BCD
Definitions of Control
SC - Select Counter:
SCl sca
a a Select Counter a
a 1 Select Counter 1
1 a Select Counter 2
1 1 Illegal
RL - Read/Load:
RL 1 RLO
a a Counter Latching operation
1 a Read/Load most significant byte (MSB)
a 1 Read/Load least significant byte (LSB)
1 1 Read/Load least significant byte first,
then most significant byte.
M - Mode:
M2 Ml Ma Mode
a a a Modea
a a 1 Mode 1
X 1 a Mode 2
X 1 1 Mode 3
1 a a Mode 4
1 a 1 Mode 5
BCD:
Binary Counter l6-bits
Binary Coded Decimal (BCD) Counter (4 Decades)
~
I L 1 = Flag Stream Mode
~1 = Two Preframe Sync Characters
1 = Buffered Mode
1 = Enable Early Tx Interrupt
'-----~ 1 = EOP Interrupt Enable
'------~ 1 = HDLC Abort Enable
' - - - - - - - Not Used
'---------~ Not Used
Bit 2 If bit 2 is set to a 1, the 8273 buffers the first two bytes
of a received frame (the bytes are not passed to
memory). Resetting this bit (to 0) causes these bytes to
be passed to and from memory.
~
I L 1 = NRZI Mode
~ 1 = Clock Loopback
1 = Data Loopback
Not Used
'-----~ Not Used
' - - - - - -.... Not Used
' - - - - - - - _ Not Used
' - - - - - - - -.... Not Used
I I I II I IL
L--L--L.---1-.-1--1--1-----;.~
1 = Interrupt Data Transfers
Not Used
I I I I I I
L---------I_~
I: Not Used
1 = One-Bit Delay Enable
When one-bit delay is set, the 8273 retransmits the received data
stream one-bit delayed. Reset of this bit stops the one-bit delay
mode.
Hex
Register Command Code Parameter
One-Bit Delay Mode Set A4 Set Mask
Reset 64 Reset Mask
Data Transfer Mode Set 97 Set Mask
Reset 57 Reset Mask
Operating Mode Set 91 Set Mask
Reset 51 Reset Mask
Serial 1/0 Mode Set AO Set Mask
Reset 60 Reset Mask
No
Result Phase
During the result phase, the 8273 notifies the processor of the
outcome of a command execution. This phase is initiated by
either a successful completion or error detection during execution.
General Receive
Receiver operation is very similar. Like the initial transmit
sequence, the processor's DMA controller is loaded with a
starting address for a receive data buffer and the 8273 is
commanded to receive. Unlike the transmitter, there are two
different receive commands; a general receive, where all received
frames are transferred to memory, and selective receive, where
only frames having an address field matching one of two
preprogrammed 827 3 address fields are transferred to memory.
Selective Receive
In selective receive, two parameters (AI and A2) are required in
addition to those for general receive. These parameters are two
address match bytes. When commanded to selective receive, the
8273 passes to memory or the processor only those frames having
an address field matching either A I or A2. This command is
usually used for secondary stations with A I designating the
secondary address and A2 being the "all parties" address. If only
one match byte is needed, Al and A2 should be equal. As in
general receive, the 8273 counts the incoming data bytes and
interrupts the processor if the received frame is larger than the
preset receive buffer length.
The first two codes in the receive result code table result from the
error free reception of a frame. Since SD LC allows frames of
arbitrary length (> 32 bits), the high order bits of the receive result
report the number of valid received bits in the last received
information field byte. The chart below shows the decode of this
receive result bit.
Interrupt Information
Additional lines used but not standardized by EIA are pins 11,
18, and 25. These lines are designated as select standby, test and
test indicate, respectively. Select Standby is used to support the
switched network backup facility of a modem providing this
option. Test and test indicate support a modem wrap function on
modems which are designed for business machine controlled
modem wraps. Two jumpers on the adapter (PI and P2) are used
to connect test and test indicate to the interface, if required (see
Appendix D for these jumpers).
C
Drivers Receivers
+15VdC~ +25VdC
+5Vdc - +3 Vdc
-5Vdc ~
Invalid Level
Connector Specifications
14
14
Communications Modem
Adapter Connector
·· .. Connector
·.
13 25 25 13
Communications Modem
Adapter Connector Connector
Pin # Name Pin #
NC Outer Cable Shield 1
2 Transmitted Data 2
3 Received Data 3
4 Request to Send 4
5 Clear to Send 5
6 Data Set Ready 6
7 Signal Ground (Inner Lead Shields) 7
8 Received Line Signal Detector 8
NC NC
NC NC
11 Select Standby 11
NC NC
NC NC
NC NC
15 Transmitter Signal Element Timing 15
NC NC
17 Receiver Signal Element Timing 17
18 Test 18
NC NC
20 Data Terminal Ready 20
NC NC
22 Ring Indicator 22
23 Data Signal Rate Selector 23
NC NC
25 Test Indicate 25
Connector Specifications
Use of BIOS
Access to BIOS is through the 8088 software interrupts. Each
BIOS entry point is available through its own interrupt, which can
be found in the "8088 Software Interrupt Listing."
Generally, the BIOS routines save all registers except for AX and
the flags. Other registers are modified on return only if they are
returning a value to the caller. The exact register usage can be
seen in the prolog of each BIOS function.
Memory locations hex 300 to 3FF are used as a stack area during
the power-on initialization, and bootstrap, when control is passed
to it from power-on. If the user desires the stack in a different
area, the area must be set by the application.
Address Interrupt
(Hex) (Hex) Function
80-83 20 DOS Program Terminate
84-87 21 DOS Function Call
88-8B 22 DOS Terminate Address
8C-8F 23 DOS Ctrl Break Exit Address
90-93 24 DOS Fatal Error Vector
94-97 25 DOS Absolute Disk Read
98-9B 26 DOS Absolute Disk Write
9C-9F 27 DOS Terminate, Fix In Storage
AO-FF 28-3F Reserved for DOS
100-17F 40-5F Reserved
180-19F 60-67 Reserved for User Software Interrupts
1AO-1FF 68-7F Not Used
200-217 80-85 Reserved by BASIC
218-3C3 86-FO Used by BASIC Interpreter while BASIC is
running
3C4-3FF F1-FF Not Used
Offset
(Hex Value) Length
Line number of current line being executed 2E 2
Line number of last error 347 2
Offset into segment of start of program text 30 2
Offset into segment of start of variables 358 2
(end of program text 1-1)
Keyboard buffer contents 6A 1
if O-no characters in buffer
if 1-characters in buffer
Character color in graphics mode 4E 1
Set to 1, 2, or 3 to get text in colors 1 to 3.
Do not set to O.
(Default = 3)
Example
100 Print PEEK (&H2E) + 256*PEEK (&H2F)
~ L H
100
I Hex 64
I Hex 00
I
BASIC Workspace Variables
00000 BIOS
Interrupt
Vectors
00080 Available
Interrupt
Vectors
00400 BIOS
Data
Area
00500 User
Read/Write
Memory
C8000 Disk
Adapter
FOOOO Read
Only
Memory
FEOOO Bios
Program
Area
When altering I/O port bit values, the programmer should change
only those bits which are necessary to the current task. Upon
completion, the programmer should restore the original
environment. Failure to adhere to this practice may be
incompatible with present and future applications.
Byte 0: Hex 55
Byte 1: HexAA
Byte 2: A length indicator representing the number of 512 byte
blocks in the ROM (length/512).
A checksum is also done to test the integrity of the
ROM module. Each byte in the defined ROM is
summed modulo hex 100. This sum must be 0 for
the module to be deemed valid.
When the POST identifies a valid ROM, it does a far call to byte
3 of the ROM (which should be executable code). The adapter
card may now perform its power-on initialization tasks. The feature
ROM should return control to the BIOS routines by executing a
far return.
Encoding
The keyboard routine provided by IBM in the ROM BIOS is
responsible for converting the keyboard scan codes into what will
be termed "Extended ASCII."
Character Codes
The following character codes are passed through the BIOS
keyboard routine to the system or application program. A "-1"
means the combination is suppressed in the keyboard routine. The
codes are returned in AL. See Appendix C for the exact codes.
Also, see "Keyboard Scan Code Diagram" in Section 1.
Key
Number Base Case Upper Case Ctrl Alt
1 Esc Esc Esc -1
2 1 ! -1 Note 1
3 2 @ Nul (000) Note 1 Note 1
4 3 # -1 Note 1
5 4 $ -1 Note 1
6 5 % -1 Note 1
7 6 A RS(030) Note 1
8 7 & -1 Note 1
9 8 * -1 Note 1
10 9 ( -1 Note 1
11 0 ) -1 Note 1
12 - - US(031) Note 1
13 = + -1 Note 1
14 Backspace (008) Backspace (008) Del (127) -1
15 -1(009) I--(Note 1) -1 -1
16 q Q DCl (017) Note 1
17 w W ETB (023) Note 1
Key Num
Number lock Base Case Alt Ctrl
71 7 Home (Note 1) -1 Clear Screen
72
73
8
9
t (Note 1)
Page Up (Note 1)
-1
-1
-1
Top of Text and Home
74 - - - -- -- -- - ---- - ---- --- -1 -1
75 4 -(Note 1) -1 Reverse Word (Note 1)
76 5 -1 -1 -1
77 6 -(Note 1) -1 Advance Word (Note 1)
78 + + -1 -1
79 1 End (Note 1) -1 Erase to EOl (Note 1)
80
81
2
3
~ (Note 1)
Page Down (Note 1)
-1
-1
-1
Erase to EOS (Note 1)
82 0 Ins -1 -1
83 Del (Notes 1,2) Note 2 Note 2
Notes: 1. Refer to "Extended Codes" in this section.
2. Refer to "Special Handling" in this section.
Extended Functions
F or certain functions that cannot be represented in the standard
ASCII code, an extended code is used. A character code of 000
(Nul) is returned in AL. This indicates that the system or
application program should examine a second code that will
indicate the actual function. Usually, but not always, this second
code is the scan code of the primary key that was pressed. This
code is returned in AH.
Alt Q, W, E, R, T, Y, U, I, 0, P
30-38 Alt A, S, D, F, G, H, J, K, L
44-50 Alt Z, X, C, V, B, N, M
59-68 F1 to F1 0 Function Keys Base Case
71 Home
72 t
79
73
75
77
--
Page Up and Home Cursor
End
80
81
l
Page Down and Home Cursor
82 Ins (Insert)
83 Del (Delete)
84-93 F11 to F20 (Uppercase F1 to F1 0)
94-103 F21 to F30 (Ctrl F1 to F1 0)
104-113 F31 to F40 (Alt F1 to F1 0)
114 Ctrl PrtSc (Start/Stop Echo to Printer)
115 Ctrl-(Reverse Word)
116 Ctrl-(Advance Word)
117 Ctrl End [Erase to End of Line (EOL)]
118 Ctrl PgDn [Erase to End of Screen (EOS)]
119 Ctrl Home (Clear Screen and Home)
120-131 Alt 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, = (Keys 2-1 3)
132 Ctrl PgUp (Top 25 Lines of Text and Home Cursor)
Shift
This key temporarily shifts keys 2-13,15-27,30-41,43-53,55,
and 59-68 to upper case (base case ifin Caps Lock state). Also,
the Shift key temporarily reverses the Num Lock or non-Num-Lock
state of keys 71-73,75,77, and 79-83.
Ctrl
This key temporarily shifts keys 3, 7, 12, 14, 16-28, 30-38,43-50,
55,59-71, 73, 75, 77, 79, and 81 to the Ctrl state. Also, the Ctrl
key is used with the Alt and Del keys to cause the "system reset"
function, with the Scroll Lock key to cause the "break" function,
and with the Num Lock key to cause the "pause" function. The
system reset, break, and pause functions are described in "Special
Handling" on the following pages.
Alt
This key temporarily shifts keys 2-13, 16-25,30-38,44-50, and
59-68 to the Alt state. Also, the Alt key is used with the Ctrl and
Del keys to cause the "system reset" function described in
"Special Handling" on the following pages.
°
The Alt key has another use. This key allows the user to enter any
character code from to 255 into the system from the keyboard.
The user holds down the Alt key and types the decimal value of
the characters desired using the numeric keypad (keys 71-73,
75-77, and 79-82). The Alt key is then released. If more than
three digits are typed, a modulo-256 result is created. These three
digits are interpreted as a character code and are transmitted
through the keyboard routine to the system or application
program. Alt is handled internal to the keyboard routine.
Keyboard Encoding 2-17
Caps Lock
This key shifts keys 16-25, 30-38, and 44-50 to upper case. A
second depression of the Caps Lock key reverses the action. Caps
Lock is handled internal to the keyboard routine.
Scroll Lock
This key is interpreted by appropriate application programs as
indicating use of the cursor-control keys should cause windowing
over the text rather than cursor movement. A second depression
of the Scroll Lock key reverses the action. The keyboard routine
simply records the current shift state of the Scroll Lock key. It is
the responsibility of the system or application program to perform
the function.
Special Handling
System Reset
The combination of the Alt, Ctrl, and Del keys will result in the
keyboard routine initiating the equivalent of a "system reset" or
"reboot." System reset is handled internal to the keyboard.
Pause
The combination of the Ctrl and Num Lock keys will cause the
keyboard interrupt routine to loop, waiting for any key except the
Num Lock key to be pressed. This provides a system- or
application-transparent method of temporarily suspending list,
print, and so on, and then resuming the operation. The "unpause"
key is thrown away. Pause is handled internal to the keyboard
routine.
Print Screen
The combination of the Shift and PrtSc (key 55) keys will result
in an interrupt invoking the print screen routine. This routine
works in the alphanumeric or graphics mode, with unrecognizable
characters printing as blanks.
Other Characteristics
The keyboard routine does its own buffering. The keyboard buffer
is large enough to support a fast typist. However, if a key is
entered when the buffer is full, the key will be ignored and the
"bell" will be sounded.
--
Scroll down
Scroll left In scroll lock mode
Scroll right In scroll lock mode
Delete from cursor to EOL Ctrl End Text, command entry
Exit/Escape Esc Editor, 1 level of menu, and so on
Start/Stop Echo screen to Ctrl Prt Sc Any time
printer (Key 55)
Delete from cursor to EOS Ctrl PgDn Text, command entry
Advance word Ctrl- Text entry
Reverse word Ctrl- Text entry
Window Right Ctrl- When text is too wide to fit screen
Window Left Ctrl- When text is too wide to fit screen
Enter insert mode Ins Line editor
°°
Secondary function keys Shift F1-F1 Extra function keys if 10 are not
Ctrl F1-F1 sufficient
Alt F1-F1 °
Extra function keys Alt Keys Used when stickers are put along
2-13 top of keyboa rd
(1-9,0,-,=)
Extra function keys Alt A-Z Used when function starts with
same letter as one of the alpha
keys
Function Key
~250f.1s-+l
Zero Bit
The read-block routine then searches for the leader and must
detect all 1 bits for approximately 1/4 of the leader length before
it can look for the sync (0) bit. After the sync bit is detected, the
sync byte (ASCII character hex 16) is read. If the sync byte is
read correctly, the data portion can be read. If a correct sync byte
is not found, the routine goes back and searches for the leader
again. The data is read a bit at a time and assembled into bytes.
After each byte is assembled, it is written into memory at location
ES:BX and BX is incremented by 1.
After each multiple of 256 data bytes is read, the CRC is read and
compared to the CRC generated. If a CRC error is detected, the
routine will exit with the carry flag set to indicate an error and the
status of AH set to hex 01. DX will contain the number of bytes
written memory.
Motor Motor
On Off
Component Description
Leader 256 Bytes (of All 1 's)
Sync Bit One 0 Bit
Sync Byte ASCII Character Hex 16
Data Blocks 256 Bytes in Length
CRC 2 Bytes for each Data Block
Error Recovery
Error recovery is handled through software. A eRe is used to
detect errors. The polynomial used is G(X) = X16 + X12 + Xs + 1,
which is the polynomial used by the synchronous data link control
interface. Essentially, as bits are written to or read from the
cassette tape, they are passed through the eRe register in
software. After a block of data is written, the complemented value
of the calculcated eRe register is written on the tape. Upon
reading the cassette data, the eRe bytes are read and compared
to the generated eRe value. If the read eRe does not equal the
generated eRe, the processor's carry flag is set and the status of
AH is set to hex 01, which indicates a eRe error has occurred.
Also, the routine is exited on a eRe error.
Line
Page Number
...
5'4
0014 42 INT5_PTR LABEL WORD
0020 43 ORG
0020 44 INT_ADDR LABEL WORD
0020 45 INT_PTR LABEL DWORD
0040 46 ORG 10H*4
0040 .7 VIDEO_IHT LABEL WORO
0074 48 ORG lOH*4
0074 49 PARM_PTR LABEL aWaRD ; POINTER TO VIDEO PARMS
0060 50 ORG 18H*4
0060 51 BASIC_PTR LABEL WORD j ENTRY POINT FOR CASSETTE BASIC
0078 52 ORG 01EH*4 ; INTERRUPT 1EH
0078 53 DISK_POINTER LABEL OWORD
007C
007C
54
55 EXT_PTR lABEL
"".
DWORD
01FH*4 J LOCATION OF POINTER
J POINTER TO EXTENSION
0100 56 ORG 04QH*4 ; ROUTINE
0100 11?1 57 IO_ROM_INIT ow
0102 ?11? 58 IO_ROM_SEG ow j OPTIONAL ROM SEGMENT
0400 59 ORG 400H
0400 60 DATA_AREA LABEL BYTE I ABSOLUTE LOCATION OF DATA SEGMENT
0400 61 DATA_WORD LABEL WORD
7COO 62 ORG 7COOH
7COO 63 BOOT_LOCN LABEL "R
6. ABSO ENOS
65
66 I --- --------------------- - - - - -- ------- --- - --- - - - - - -- -----
67 STACK -- USED DURING INITIALIZATION ONLY
68 I --- --------------- - -- ----- - - - - -- ---- - --- - - - - - - - - -- - - - ---
69 STACK SEGMENT AT 30H
0000 1128 70 OW 128 OUPI? I
0018 ??
9'
100 DB ; SECOND BYTE OF KEYBOARD STATUS
101
0080 10' INS_SHIFT EQU 80H I INSERT KEY IS DEPRESSED
0040 10' CAPS_SHIFT EQU 40H I CAPS LOCK KEY IS DEPRESSED
0020 104 NUtCSHIFT EQU 20H ; NUtl LOCK KEY IS DEPRESSED
0010 105 SCROLL_SHIFT EQU lOH ; SCF<OLl LOCK KEY IS DEPRESSED
0008 106 HOLD_STATE EQU 08H I SUSPEND KEY HAS BEEN TOGGLED
107
0019 ?1 108 ALI_INPUT DB I STORAGE FOR ALTERNATE KEYPAD ENTRY
OOIA ?1?1 109 BUFFER_HEAD 0" I POINTER TO HEAD OF KEYBOARD BUFFER
ODIC ???? 110 BUFFER_TAIL DW ; POINTER TO TAIL OF KEYBOARD BUFFER
DOlE (16 III KB_BUFFER D" 16 DUP(?) I ROOM FOR 15 ENTRIES
003E ll2
"'
114 ;----- HEAD = TAIL INDICATES THAT THE BUFFER IS EHPTY
ll5
0045 ll6 NUMJEY EQU 6. ; SCAN CODE FOR NUt1BER LOCK
0046 ll7 SCROLl.-KEY EOU 70 I SCROLL LOCK KEY
0038 ll8 ALT_KEY EOU 56 I ALTERNATE SHIFT KEY SCAN CODE
0010
003A
".
120
CTl_KEY
CAPS_KEY
EOU
EOU
29
58
; SCAN CODE FOR CONTROL KEY
; SCAN CODE FOR SHIFT LOCK
002A 121 LEFT_KEY EOU 42 I SCAN COOE FOR LEFT SHIFT
0036 122 RIGHT_KEY EOU 54 ; SCAN CODE FOR RIGHT SHIFT
0052 123 INS_KEY EOU 82 I SCAN CODE FOR INSERT KEY
0053 124 DEL_KEY EOU 8. I SCAN CODE FOR DElETE KEY
125
126 ; ----------------------------------------
127 DISKETTE DATA AREAS
128 1----------------------------------------
003E ?? 129 SEEK_STATUS DB ; DRIVE RECALIBRATION STATUS
130 BIT 3-0 = DRIVE 3-0 NEEDS RECAL BEFORE
m NEXT SEEK IF BIT IS :: 0
ooao 132 INTJLAG EQU 080H ; INTERRUPT OCCURRENCE flAG
003F ?? 133 MOTOR_STATUS DB I MOTOR STATUS
13' BIT 3-0 :: DRIVE 3-0 IS CURRENTLY RUNNING
135 BIT 7 :: CURRENT OP IS A WRITE. REQUIRES DELAY
0040 ?? 136 HOTOR_COUNT D. ; TIME OUT COUNTER FOR DRIVE Tlnm OFF
0025 137 MOTOR_WAIT EQU 37 ; TWO SEC OF COUNT FOR MOTOR TlIRN OFF
138
0041 11 13' DISKETTE_STATUS DB J BYTE OF RETURN CODE INFO FOR STATUS
0080 140 TIME_OUT EQU 80H ; ATTACHMENT FAILED TO RESPOND
0040 141 BAD_SEEK EQU 40H I SEEK OPERATION FAILED
0020 142 BAD_NEC EQU 20H ; NEC CONTROllER HAS FAILED
0010 14. BAD_CRC EQU lOH ; BAD CRC ON DISKETTE READ
0009 144 DNA_BOUNDARY EQU O'H ; ATTENPT TO DNA ACROSS 641< BOUNDARY
0006 145 BAD_DHA EQU D8H ; OMA OVERRUN ON OPERATION
0004
0003
0002 ..
146
147
,
RECORD_NOT_FND
WRITE_PROTECT
BAD_ADDR_MARK
EQU
EQU
EQU
04H
OJH
O2H
; REQUESTED SECTOR NOT FOUND
I WRITE ATTEMPTED ON WRITE PROT DISK
I ADDRESS HARt( NOT FOUND
0001
'"
15.
E.... .," I BAD COMtlAND PASSED TO DISKETTE 110
152
153 1----.. ----- - ------.. -- ---------- ----- -----
154 VIDEO DISPLAY DATA AREA
1S5 ; ----------- - --- --- ----- ------- ----- -- .. --
0049 11 IS. CRT_HOOf DB I CLRRENT CRT tIODE
004A ???? 157 CRT_COLS DW J tU1BER OF COLlR1NS ON SCREEN
D04C ???? 158 CRT_LEN DW f LENGTH OF REGEN IN BYTES
004E ???? IS. CRT.START DW ; STARTING ADDRESS IN REGEN BUFFER
0050 (8 I •• CURSOR.POSH DW e DUP(?) ; CURSOR FOR EACH OF UP TO 8 PAGES
????
I
007C (4 I •• '" DUP(?) J RS232 TIME OUT COUNTER
'NDS
2: 21 ; ------ -- - -- - - -- -- -------- --- --- --- ------
222 ROM RESIDENT CODE
223 1----------------------------------------
224 CODE SEGMENT AT OFOOOH
0000 (57344 225 DB 57344 aUPI? 1 ~ FILL LOWEST 56K
226
EOOD 31353031343736 227 DB '1501476 COPR. IBM 1~~1' ; COPYRIGHT NOTICE
20434F50522EZO
49424020313938
32
228
2: 2: 9 1--- --------------- - - ---- ----- ---- -- - - - --------- - -- --- --- - - -- - ---
230 INITIAL RElIABILITY TESTS -- PHASE 1
231 ;----------------------------------------------------------------
232 ASSUME CS:COOE ,SS:CODE .ES:ABSO .DS:DATA
233 1----------------------------------------
234 DATA DEFINITIONS
235 ; ----------------------------------------
E016 DIED 236 C1 OW Cll ; RETURN ADDRESS
237
238 J -- - --- --------- - - - - -- -- ------ ---- - - - - - ------- - - - -- - ---------------- - ----
239 THIS SUBROUTINE PERFORMS A READ/WRITE STORAGE TEST ON
240 A 16K BLOCK OF STORAGE.
241 1 ENTRY REQUIREMENTS:
242 ES = ADDRESS OF STORAGE SEGMENT BEING TESTED
243 OS = ADDRESS OF STORAGE SEGMENT BEING TESTED
244 WHEN ENTERING AT STGTST_CNT, CX MUST BE LOADED WITH
245 THE BYTE COUNT.
246 ; EXIT PARAMETERS:
247 ZERO FLAG:: 0 IF STORAGE ERROR {DATA COMPARE OR PARITY CHECK.
248 AL ;: 0 DENOTES A PARITY CHECK. ELSE AL;:XOR'ED BIT
Z49 PATIERN OF THE EXPECTED DATA PATTERN VS THE
250 ACTUAL DATA. READ.
251 AX,BX,CX,DX.DI, AND SI ARE ALL DESTROYED.
252 ; -- - ----- ------- - - ---- - -- ----- - ------ - - - - - - - -- - - - - - - -- - ------------------
253
E018 254 STGTST PRDC NEAR
E018 890040 255 MOV CX,4000H ; SETUP CNT TO TEST A 16K BLK
EOIB 256 STGTST_CNT:
EOIB Fe 257 ClD i SET oIR flAG TO INCREMENT
EDIt 8809 258 I10V BX,ex ; SAVE BYTE CNT (4K FOR YIDEO OR 16K)
fOIE BBAAAA 259 MOV AX,OAAAAH ; GET DATA PATTERN TO WRITE
EOZI BA55FF 260 MaY' DX,OFF55H ; SETUP OTHER DATA. PATTERNS TO USE
E024 2BFF 261 SUB 01,01 ; 01 = OFFSET 0 RELATIVE TO ES REG
E026 f3 262 REP STOSB ; WRITE STORAGE LOCATIONS
E027 AA
E028 263 C3: , STSOI
E028 4F 264 DEC DI ; POINT TO LAST BYTE JUST WRITTEN
E029 FD 265 STD I SET OIR FLAG TO GO BACKWARDS
EOlA 266 C4:
EOlA 8BF7 267 MOV SI,DI
foze 86ce 268 NOV CX,BX ; SETUP BYTE CNT
f02E 269 C5: I INNER TEST LOOP
EDa AC 270 LOOSB ; READ OLD TST BYTE FROM STORAGE [SI)+
E02F 32C4 271 XOR .H,AH ; DATA READ AS EXPECTED?
E031 7525 272 JNE C7 ; NO - GO TO ERROR ROUTINE
E033 BAC2 273 MOV AL,OL I GET NEXT DATA PATTERN TO WRITE
E035 AA 274 STOSB I WRITE INTO LOCATION JUST READ [011+
E036 E2F6 275 LOOP C5 , DECREMENT BYTE COUNT AND LOOP CX
276
E038 22E4 277 AND AH,AH I ENDING ZERO PATTERN WRITTEN TO STG l'
E03A 7416 278 JZ C6X I YES - RETURN TO CALLER WITH Al::O
E03e BAEO 279 MDV AH,AL ; SETUP NEW VALUE FOR COMPARE
E03E e6F2 280 XCHG DH.OL ; MOVE NEXT DATA PATTERN TO OL
E040 22E4 281 AND AH.AH I READING ZERO PATTERN THIS PASS?
E042 7504 282 JHZ C6 I CONTINUE TEST SEqUENCE TILL ZERO DATA.
E044 8AD4 283 MDV DL,AH ELSE SET ZERO FOR END READ PATTERN
E046 EBED 284 JMP C3 ; ANO MAKE FINAL BACKWARDS PASS
'ooa 285 C6:
ESAD
E5AE 07
,. 1250
1251
1252
PUSH
POP
OS
ES
E5AF BF7800 1253 MOV OI.OFFSET PRINT_TIM_OUT
E5B2 681414 1254 HOV AX,1414H ; PRINTER DEFAULTS (COUNT=20)
E565 AB 1255 STOSW
E586 AB 1256 STOSW
E587 B60101 1257 MOV AX,OIDIH ; RS232 OEFAULTS=OI
E5BA AB 1256 STOSW
ESBB A6 1259 STOSW
1260
U~61 ;----- ENABLE NHI INTERRUPTS
1262
E5BC 8080 1263 HOV AL , 60H , ENABLE NHI INTERRUPTS
ESBE E6AO 1264 OUT OAOH,AL
CMP MFG_TST,1 , MFG MODE?
ESCO 803E120001
E5C5 7406
1265
1266 JE F21 , LOAP_BOOT_STRAP
E5C7 BAOI00 1267 HOV DX,l
E5CA E60200 1268 CALL EIU'_BEEP ; BEEP 1 SHORT TONE
1269
ESCD 1270 F21: , LOAD_BOOT_STRAP:
ESCO C019 1271 IHT 19M , BOOTSTRAP
1272
1273 ;--------------------------------------------------------
1274 INITIAL RELIABILITY TEST -- SUBROUTINES
1275 ;--------------------------------------------------------
1276 ASSUME CS:CODE,DS:DATA.
1277 ; --- --------------------------------------- --------------------
1278 ; SUBROUTINES FOR POWER ON DIAGNOSTICS
1279 THIS PROCEDURE WILL ISSUE ONE LONG TONE (3 SECS) AI«) ONE OR
12:80 MORE SHORT TONES 11 SEC) TO INDICATE A FAIllRE ON THE Pl.ANAR
1281 BOARD. A BAD RAM MODULE, OR A PROBLEI1 WInt THE CRT.
1282 I ENTRY PARAMETERS:
1263 OH = HUMBER OF LONG TONES TO BEEP
1284 Dt = NUt1BER OF SHORT TONES TO BEEP
12:85 I---------~--------------------------------------------------------------
,
LOOP
lOOP
GS
GO
I lONG DELAY BEFORE RE~N
,---------------------------------------------- -- --------
1458 ;
1459 THIS SUBROUTINE WILL PRINT A MESSAGE ON THE DISPLAY
1460
1461 I ENTRY REQUIREMENTS:
1462 SI = OFFSET I ADDRESS I OF MESSAGE BUFFER
1463 ex = MESSAGE BYTE COUNT
1464 MAXIHI.JH MESSAGE LENGTH IS 36 CHARACTERS
1465 ; --------------------------------------------------------
EbBA 1466 P_MSG ""OC NEAR
EbBA E88118 1467 CALL O~S
1508
1509 1----- IPL WAS SUCCESSFUL
1510
E6E4 1511 H4:
E6E4 EAOO7COOOO 1512: JMP BOOT_LOCH
E6f2 1513 ORG OE6F2H
E6F2: 1514 BOOT_STRAP PROt NEAR
E6F2 FB 1515 STI I ENABLE INTERRUPTS
E6F3 ZBca 1516 SUB AX,AX
E6F5 SEDS 1517 MOV DS,AX
1518
1519 ; ----- RESET DISKETTE PARAMETER TABLE VECTOR
1520
E6F7 C7067800C7EF 1521 MOV
E6FD 8COE7AOO 1522 MOV WORD PTR DISK_POINTER+2,CS
E701 AllOO4 152:3 MOV AX,DATA_WORD(OFFSET EQUIPJLAGl ; GET THE EQUIPMENT SWITCHES
E704 ASOI 1524 TEST AL,l ; ISOLATE IPL SENSE SWITCH
E706 741E 1525 JZ H3 ; GO TO CASSETTE BASIC ENTRY POlm
1526
152:7 ;----- MUST LOAD SYSTEM FROM DISKETTE -- CX HAS RETRY COUNT
1528
E708 690400 152:9 NOV CX,4 ; SET RETRY COUNT
E70B 1530 HI: ; IPL_SYSTEN
E70B 51 1531 PUSH ex ; SAVE RETRY COUNT
E70C 9400 1532 MOV AH,O ; RESET THE DISKETTE SYSTEM
nOE con 1533 INT 13H ; DISKETTE_IO
E7lD 720F 1534 Je H2 ; IF ERROR, TRY AGAIN
E712 BaOlO2 1535 NOV AX,20IH ; READ IN THE SINGLE SECTOO
E7lS 2B02 1536 SUB OX,DX
E717 8ECZ 1537 MOV ES,DX
E7l9 BBOO7e 1538 MOV BX,OFFSET BOOT_LOCN
E7le 690100 1539 MOV CX,! ; SECTOR l, TRACK 0
E71F con 1540 INT 13H ; DISKETTE_IO
E721 59 1541 H2: POP ex ; RECOVER RETRY COUNT
E722 73CO 1542 JNe H. I CF SET BY UNSUCCESSFUL READ
E724 E2E5 1543 LOOP HI I DO IT FOR RETRY TINES
1544
1545 ;----- UNABLE TO IPL FROM THE DISKETTE
1546
En6 1547 H3: I CASSETTE_JUHP:
E726 COl8 1548 INT 18H ; USE INTERRUPT VECTOR TO GET TO BASIC
1549
1550
1551 ;-----INT 14-------------------------------------------------------------
1552 ; RS232_IO
1553 nilS ROUTINE PROVIDES BYTE STREAM I/O TO THE COMMUNICATIONS
1554 PORT ACCORDING TO THE PARAMETERS:
1555 I AH )=0 INITIALIZE THE COMMUNICATIONS PORT
1556 (All HAS PARAMETERS FOR INITIALIZATION
1557
1558
1559 ----- BAllO RATE -- -PARITY-- STOPBIT --WORD LENGTH--
1560 DOD - 110 XO - NONE o - 1 10 - 7 BITS
1561 001 - 150 01 - 000 1 - 2 11 - 8 BITS
1562 010 - 300 11 - EVEN
1563 011 - 600
1564 100 - 1200
1565 101 - 2400
1566 110 - 4800
1567 111 - 9600
1568
1569 ON RETURN, CONDITIONS SET AS IN CALL TO C0t1t10 STATUS (AH=3)
1570 (AHI=l SEND THE CHARACTER IN {All OVER THE COMMO LINE
1571 {All REGISTER IS PRESERVED
1572 ON EXIT, BIT 7 OF AH IS SET IF THE ROUTINE WAS UNABLE
1573 TO TRANSMIT THE BYTE OF DATA OVER THE LINE.
1574 IF BIT 7 OF AH IS NOT SET, THE REMAINDER OF AH
1575 IS SET AS IN A STATUS REQUEST, REFLECTING THE
1576 CURRENT STATUS OF THE LINE.
1577 {AH)=2 RECEIVE A CHARACTER IN {All FROM COMMa LINE BEFORE
1578 RETURNING TO CALLER
1579 ON EXIT, AH HAS THE CURRENT LINE STATUS, AS SET BY THE
1580 THE STATUS ROUTINE, EXCEPT THAT THE ONLY BITS
1581 LEFT ON ARE THE ERROR BITS (7,4,3,2,1)
1582 IF AH HAS BIT 7 ON (TIME oun THE REMAINING
1583 BITS ARE NOT PREDICTABLE.
1584 THUS, AM IS NON ZERO ONLY .... EN AN ERROR
1585 OCC~RED.
1586 IAH)=3 RETURN THE COtlt1Q PORT STATUS IN (AX)
1587 AH CONTAINS THE LINE STATUS
1588 BIT 7 = TIME OUT
1589 BIT 6 = TRANS SHIFT REGISTER EMPTY
1590 BIT S = TRAN HOLDING REGISTER EMPTY
1591 BIT 4 = BREAK DETECT
1592 BIT 3 = FRAMING ERROR
1593 BIT 2 = PARITY ERROR
1594 BIT 1 = OVERRUN ERROR
1595 BIT 0 = DATA READY
1596 AL CONTAINS THE MOOE" STATUS
1597 BIT 7 = RECEIVED LINE SIGNAL DETECT
1598 BIT 6 = RING INDICATOR
1599 BIT 5 = DATA SET READY
1600 BIT 4 = CLEAR TO SEND
1601 BIT 3 = DELTA RECEIVE LINE SIGNAL DETECT
1602 BIT .2 = TRAILING EDGE RING DETECTOR
1603 BIT 1 = DELTA DATA SET READY
1604 BIT 0 = DELTA CLEAR TO SEND
1605
1606 (OX) = PARAMETER INDICATING WHICH RS232 CARD (0,1 AllOWED)
1607 I
1608 I DATA AREA RS232_BASE CONTAINS THE BASE ADDRESS OF THE 8250 ON THE
1609 CARD LOCATION 400H CONTAINS UP TO It RS232 ADDRESSES POSSIBLE
1610 DATA AREA LABEL RS2:32_TIH_OUT (BYTE) CONTAINS OUTER LOOP COUNT
1611 VALUE FOR TIMEOUT (DEFAULT=lJ
1612 ; OUTPUT
1613 AX MODIFIED ACCORDING TO PARI15 OF CALL
1614 ALL OTHERS UNCHANGED
1615 ; - - --- - -- - - -- --- - - - -- --------- - - ---- -------------------------------------
1616 ASSUHE CS:CODE,DS:DATA
£729 1617 ORO OE729H
£729 1616 Al LABEL WORD 1 TABLE OF INIT YAWE
E729 1704 1619 DW 1047 J 110 BAUD
E72B 0003 1620 DW 7.8 J 150
£720 6001 1621 DW 384 I 300
E72:F CODO 1622 DW I" 1 600
£731 6000 1623 DW 9. ; 1200
E733 3000 1624 DW 48 I 2.400
£735 1800 1625 DW 2. ; 4800
£737 Deoo 1626 DW 12 1 9600
1627
£739 1626 RS232_1O PROC FAR
1629
1630 J----- VECTOR TO APPROPRIATE ROUTINE
1631
E739 FB 1632 srI I INTERRUPTS BACK ON
E73" IE 1633 PUSH DS ; SAYE SEGMENT
E738 52 1634 PUSH DX
E73C 56 1635 PUSH SI
El3D 57 1636 PUSH DI
£73£ 51 1637 PUSH CX
E73F 53 1636 PUSH BX
E740 8BF2 1639 MOY SI,DX I R5232 YALUE TO 51
E742 8BFA. 1640 MDY DI,DX
£744 DIE6 1641 SHL SI,I I WORD OFFSET
E7lt6 E8FS17 1642 CALL DDS
E749 6814 1643 ttOV DX,RS232_BA5E[SI J J GET BASE ADDRESS
£74B 0802 1644 DR DX,DX I TEST FOR 0 BASE ADDRESS
£740 7413 1645 JZ A3 I RETURN
E74F DAE4 1646 DR AH,AH J TEST FOR IAH)=O
E751 7416 1647 JZ A4 1 COHMUN INIT
£753 FEte 1648 DEC AH J TEST FOR (AH}=1
£755 7445 1649 JZ AS ; SEJ.Il AL
E757 FEee 1650 DEC AH I TEST FOR ("H)=2
E759 746. 1651 JZ Al2 i RECEIVE INTO At
£758 1652 A.2:
£758 FEee 1653 DEC AH ; TEST FOR IAM)=3
E750 7503 1654 JHZ A'
E7SF £98300 1655 JMP Al8 J COt1t'lINlCATION STATUS
£762 1656 .1.3: ; RETURN FROM RS232
E762 58 1657 pop BX
£763 S9 1658 pop CX
E764 SF 1659 pop DI
E765 5£ 1660 pop SI
£766 5A 1661 pop DX
1616
1817
1818 ; ---- INT 16 -------.-------------------------.--------------------------
1619 1 KEYBOARD lID
1820 THESE ROUTINES PROVIDE KEYBOARD SUPPORT
1821 INPIlT
1822 (AH ):0 READ THE NEXT ASCII CHARACTER STRUCK FROM THE KEYBOARD
1823 RETURN THE RESULT IN (All, SCAN CODE IN (AH)
1824 (AH )=1 SET THE Z flAG TO INDICATE IF AN ASCII CHARACTER IS
1625 AVAILABLE TO BE READ.
1826 (ZFl=l -- NO CODE AVAILABLE
1827 (ZF )=0 -- CODE IS AVAILABLE
182:8 IF IF = O. THE NEXT CHARACTER IN THE BUFFER TO BE READ
1829 IS IN AX. AND THE ENTRY REMAINS IN THE BUFFER
1830 (AH)"2 RETURN THE CURRENT SHIFT STATUS IN AL REGISTER
1831 THE BIT SETTINGS FOR THIS CODE ARE INDICATED IN THE
1832 THE EQUATES FOR KB_FLAG
1833 ; OUTPUT
1834 AS NOTED ABOVE , ONLY AX AND FLAGS CHANGED
1835 All REGISTERS PRESERVED
1636 ;------------------------------------------------------------------------
1837 ASSUME CS:CODE ,DS:DATA
E82E 1636 ORG OE82EH
E82E 1839 KEYBOARD_IO PROC FAR
E82E FB 1640 STI ; INTERRUPTS BACK ON
E82F IE 1841 PUSH OS ; SAVE CURRENT OS
£830 53 1842 PUSH BX ; SAVE BX TEMPORARILY
E831 E80AI7 1843 CALL DOS
E834 OAE4 1844 DR AH,AH ; AH=O
E836 740A 1845 JZ Kl ; ASCII_READ
E838 FEte 1846 DEC AH ; AH=l
E83A 741E
Ea3C FEte
1847
1848
JZ
DEC
'2AH ; AH=Z
E83E 7428 1849 JZ K3 ; SHIFT_STATUS
E840 EBZC 1850 JMP SHORT INTIO_END ; EXIT
1651
1852: ; ----- READ THE KEY TO FIGURE OUT WHAT TO DO
1853
£842 1854 KI: ; ASCII READ
E842 FB 1855 STI ; INTERRUPTS BACK ON DURING LOOP
E8 .. 3 90 1856 NOP ; AllOW AN INTERRUPT TO OCCUR
E844 FA 1857 CLI ; INTERRUPTS BACK OFF
E845 BBIElAOO 1858 MOV ex,BUFFER_HEAD ; GET POINTER TO HEAD OF BUFFER
E849 381EICOO 1859 CMP ex.BUFFER_TAIL ; TEST END OF BUFFER
E840 74F3 1860 JZ Kl ; LOOP UNTIL SOMETHING IN BUFFER
E84F 6B07 1861 MOV AX,[BXl ; GET SCAN CODE ANO ASCII CODE
E651 E81000 1862 CALL K4 ; MOVE POINTER TO NEXT POSITION
E854 891ElAOO 1863 110v BUFFER_HEAD,BX ; STORE VALUE IN VARIABLE
E858 EBl4 1864 JMP SHORT INTIO_END ; RETURN
1865
1866 ;----- ASCII STATUS
1867
E85A 1868 K2:
E85A FA 1869 CLI I INTERRUPTS OFF
EMe 881EIAOO 1870 MOV ex,BUFFER_HEAD ; GET HEAD POINTER
E85F 3BIEICOO 1871 CMP eX,BUFFER_TAIL I IF EQUAL {Z=ll THEN NOTHING THERE
E863 8B07 1872 MOV AX,[BX]
E865 FB 1673 STI , INTERRUPTS BACK ON
E866 56 1874 POP BX ; RECOVER REGISTER
E867 IF 1875 POP OS ; RECOVER SEGMENT
E868 CA02:00 1876 RET 2 ; THROW AWAY FLAGS
1877
1878 1----- SHIFT STATUS
1879
E86B 1880 K3:
E86B "01700 1881 MOV AL,KBJLAG ; GET THE SHIFT STATUS FLAGS
E86E 1882 INTIO_END:
E86E 58 1883 pop BX ; RECOVER REGISTER
EMF IF 1884 POP OS I RECOVER REGISTERS
E870 CF 1885 IRET ; RETURN TO CALLER
1886 KEYBOARD_IO EHOP
1887
1888 ; ----- INCREMENT A BUFFER POINTER
1889
E871 1890 K4 PROC NEAR
E871 43 1891 INC BX ; MOVE TO NEXT WORD IN LIST
E812 43 1892 INC BX
EBB9 lA
ESBA 18
ESBB 03
ESBt 16
ESBD 02
ESBE DE 1923 DB 14,13,-1,-1,-1,-1,-1.-1
E6BF 00
ESCO FF
ESCI FF
EBC2 FF
EaCl FF
E8C4 FF
Eacs FF
EaC6 20 1924 DB • ,-I
ESt7 FF
1925 ;----- tTL TABLE SCAN
,Be. 1926
'9 LABEL BYTE
Esce 5E 1927 DB 1;14,95,96,97,98,99,100.101
ESC9 SF
ESCA 60
Esce 61
Esce 62
EeCD 63
EBCE 64
E8CF 65
E8DO 66 1928 DB 102,103,-1,-1,119,-1,132.-1
E8Dl 67
E8D2 FF
E8D3 FF
E604 77
E805 FF
E806 84
E6D7 FF
f6D8 73 1929 DB 115.-1,116,-1,117 ,-1,116.-1
E8D9 FF
ESDA 74
f6DB FF
ESDC 75
EBDD FF
E8DE 76
-.
E6DF FF
E8EO FF 1930 DB
1931 ;----- lC TABLE
E8El
E8El IB
1932
193]
••• lABEL BYTE
DB DISH. I 1234567890-=' ,06H,09H
E6E2 31323334353637
3639302030
ESEE 06
EaEF 09
EBFO 71776572747975 1934 DB 'qwel"tyuiop[ J I ,DOH .-1.' asdfghjkll ' ,027H
696F70SBSD
E6Ft 00
E6FD FF
E8FE 61736466676864
bBbe3B
E90B 27
E909 60 1935 DB 60H,-1 ,5CH. 'zxcvbnnh .1' • ~1, '*' ,-1, '
E90.A FF
E90B 5C
E90C 7A7B6376626E6D
2C2:E2F
E916 FF
E917 2A
E918 FF
E919 20
E91A FF .9..
1937 1----- UC TABLE
DB
-.
E91B 193B .11 LABEL BYTe
E91B IB 1939 DB 27, • !~I$' ,37, 05EH,' &*t 1_+' ,OBH.O
E91C 21402324
E920 25
E921 5E
E922 262A28295F2B
E92B OB
E929 00
E92A 51574552545955
494F507B7D
.... DB 'QWERTYUIOPO' .ODH,-I, • ASDFGHJKU'"
£936 00
E937 FF
E938 4153444647484.
484C3A22
E943 7E 1941 DB 07EH.-I, I IZXCVBNM<>?' ,-1.0.-1.' •• -1
E944 FF
E945 7C5A584356424£
4D3C3E3F
E950 FF
E951 00
E952 FF
E953 20
E95<+ FF
1942 ;----- UC TABLE SCAN
E955 1943 K 12 LABEl BYTE
E955 54 1944 DB 84,85,86,87.88,89,90
E956 S5
E957 56
E958 57
E959 58
E95A 59
E958 SA
E<;ISC 58 1945 DB 91,92.93
E950 5C
E95E 50
1946 ;----- AlT TABLE SCAN
E95F 1947 K13 LABEL BYTE
E95F 68 1948 DB 104,105,106,107,108
E960 69
E961 6.1.
£962 68
E963 be
E964 60 1949 DB 109,110,111,112,113
E965 bE
E966 6F
E967 70
E968 71
1950 ;----- t-ruM STATE TABLE
E969 1951 Kl' LABEL BYTE
E969 37363920343536 1952 DB '789-456+1230. '
2B313233302E
1953 ; ----- BASE CASE TABLE
E976 1954 K15 LABEL BYTE
E976 47 1955 DB 71,72,73,-1,75,-1,77
£977 48
E978 49
E979 FF
E97A 4B
Ens FF
E97C 40
E97D fF 1956 DB -1,79,80,81,82,83
EnE 4F
E97F 50
E980 51
E981 52
E982 53
1957
1958 ; ----- KEYBOARD INTERRUPT ROUTINE
1959
E987 1960 ORG OE987H
E987 1961 KB_INT PROC FAR
£987 FB 1962 sn ; ALLOW FURTHER INTERRUPTS
E988 50 1963 PUSH AX
E989 53 1964 PUSH BX
E98A 51 1965 PUSH ex
E988 52 1966 PUSH ox
E<;I8C 56 1967 PUSH SI
E98D 57 1966 PUSH OI
E98E IE 1969 PUSH OS
E98F 06 1970 PUSH ES
E990 Fe 1971 ClO ~ FORWARD DIRECTION
E991 EaAA15 1972 CALL DOS
E994 E460 1973 IN AL,KB_DATA ; READ IN THE CHARACTER
£996 50 1974 PUSH AX ; SAVE IT
E997 E461 1975 IN AL,KB_CTL ; GET THE CONTROL PORT
E999 8AEO 1976 MOV AH,AL ; SAVE VALUE
E99B OC80 1977 OR AL,80H I RESET BIT FOR KEYBOARD
EA90 49
2124 ;----- SUPER-SHIFT-TABLE
fA9l 10 2125 DB 16.l7,18.19,20.21.22,23 ; A-Z TYPEWRITER CHARS
fA92 11
EA93 12
EA94 13
EA95 14
EA96 15
EA97 16
EA98 17
E.6.99 18 2126 DB 24,25,30,31,32.33.34.35
EA9A 19
EA9B IE
EA9C IF
EA9D 20
EA9E 21
EA9F ZZ:
EAAO 23
EAAl 24 2127 DB 36,37,38,44,45,46,47,48
fAA2: 25
fAA] 26
EAA4 2C
EAA5 20
EAM 2E
EAA7 2F
EAA8 30
EAA9 31 2128 DB 49.50
EAAA 32
2129
2130 ;----- IN ALTERNATE SHIFT. RESET NOT FOUND
2131
EAA8 2132 K31: ; NO-RESET
EAAS 3C39 2133 CHP Al,S7 ; TEST FOR SPACE KEY
EAAD 7505 2134 JHE K32 ; NOT THERE
EAAF B020 2135 HDV AL, ' ; SET SPACE CHAR
EASl E92101 2136 JHP K57 ; BUFFERJILL
2137
2138 ; ----- LOOK FOR KEY PAD ENTRY
2139
EAB4 2140 K32: ; ALT-KEY-PAD
EAB4 8F87EA 2141 HDV OI,OFFSET K30 ; All-INPUT-TABLE
fAS7 890AOO 2142 HOV CX,10 I LOOK FOR ENTRY USING KEYPAD
fABA F2 2143 REPNE SCASB ; LOOK FOR MATCH
EABS AE
EABC 7512 2144 JHE KJ3 ; NO_AlTJEYPAD
EABE SlEF88EA 2145 SUB DI,OFFSET K30+1 ; 01 NOW HAS ENTRY VALUE
EAt:;: A01900 2146 HOV AL,ALT_INPUT ; GET THE CURRENT BYTE
EAtS 840A 2147 MOV AH.IO ; MULTIPLY BY 10
EAt7 F6E4 2148 MUL AH
EAC9 03C7 2149 ADD AX.DI ; ADO IN THE LATEST ENTRY
EAce A21900 2150 HDV ALT_INPUT,Al ; STORE IT AWAY
fACE E689 2151
2152
JMP "b ; THROW AWAY THAT KEYSTROKE
2638 ; RW_OPN
2639 THIS ROUTINE PERFORMS THE READIWRITE/vERIFY OPERATION
2640 ; ----------------------------------------------------------------
ED4A 2641 RW_OPN PROC NEAR
ED4A 7308 2642 JNe J11 ; TEST FOR DHA ERROR
ED4C C606410009 2643 MOV DISKETTE_STATUS,DHA_BOUNOARY ; SET ERROR
E051 BODO 2644 NOV AL,O ; NO SECTORS TRANSfERRED
E053 C3 2645 RET I RETURN TO MAIN ROUTINE
E054 2646 Jll:
E054 50 2647 PUSH AX I SAVE TIlE COHMAND
2648
2649 ; ----- TURN ON THE MOTOR ANO SELECT TIlE DRIVE
2650
f055 51 2651 PUSH CX ; SAVE THE TIS PARHS
E056 8ACA 2652 MOV Cl,Ol ; GET DRIVE NUMBER AS SHIFT COUNT
EOSS BOOI 2653 MOV Al,l MASK fOR DETERMINING HOTOR BIT
ED SA 02EO 2654 SAL AL,CL SHIFT THE MASK BIT
E05C FA 2655 eLI I NO INTERRUPTS WHILE DETERMINING
2656 HOTOR STATUS
EDSO C6064000FF 2657 MOV MOTOR_COUNT ,OFFH ; SET LARGE COUNT DURING OPERATION
E062 84063FOO 2658 TEST Al,MOTOR_STATUS TEST THAT MOTOR FOR OPERATlNG
E06b 7531 2659 JNZ J14 If RUNNING, SKIP THE WAIT
E068 80263fOOFO 2660 AND MOTOR_STATUS,OFOH TURN OFF All MOTOR BITS
f06D 08063FOO 2661 OR MOTOR_STATUS,Al I TURN ON THE CURRENT MOTOR
E071 FB 2662 STI INTERRUPTS BACK ON
E072 BOlO 2663 NOV Al,lOH ; MASK BIT
E074 o2EO 2664 SAL AL,Cl ; DEVElOP BIT MASK FOR MOTOR ENABLE
f076 DAC2 2665 OR AL,DL ; GET DRIVE SELECT BITS IN
E078 ceDe 2666 OR AL,OCH ; NO RESET, ENABLE DMA/INT
f07A 52 2667 PUSH OX ; SAVE REG
E07B BAF203 2666 MOV OX,03F2H ; CONTROL PORT ADDRESS
f07E EE 2669 OUT OX,Al
ED7F SA 2670 POP OX I RECOVER REGISTERS
2671
2672 ;----- WAIT FOR MOTOR IF WRITE OPERATION
2673
E080 F6063F0080 2674 TEST MOTOR_STATUS,60H IS THIS A WRITE
E085 7412 2675 JZ J14 ; NO, CONTINUE WITHOUT WAIT
ED87 861400 2676 MOV BX,20 ; GET THE MOTOR WAIT
EDBA EBOFOD 2677 CAll GET_PARM ; PARAMETER
E08D OAE4 2678 OR AH,AH I TEST FOR NO WAIT
EoaF 2679 J12: I TEST_WAIT_TINE
ED8F 7408 2680 JZ J14 ; EXIT WITH TIME EXPIRED
ED91 28C9 2681 SUB ex,cx ; SET UP 1/8 SECOND LOOP TINE
E093 2682 J13:
E093 E2FE 2683 lOOP J13 ; WAIT FOR THE REQUIRED TlME
ED95 FEee 2684 DEC AH ; DECREMENT TINE VALUE
E097 fBF6 2665 JMP J12 ; ARE WE DONE YET
E099 2666 J14: I MOTOR_RUNNING
E099 FB 2667 STI ; INTERRUPTS BACK ON FOR BYPASS WAIT
ED9A 59 2666 POP ex
2689
2690 ;----- 00 THE SEEK OPERATION
2691
ED9B fBOFOO 2692 CAll SEEK ; HOVE TO CORRECT TRACK
E09E 58 2693 POP AX ; RECOVER COMMAND
ED9F SAFe 2694 MOV BH,AH ; SAVE COMMAND IN BH
EOAI B600 2695 MOV OH,O ; SET NO SECTORS READ IN CASE OF ERROR
fOAl 7248 2696 JC J17 ; I f ERROR, THEN EXIT AFTER MOTOR OFF
EDAS BEFOED90 2697 MOV SI,OfFSET J17 ; DUMMY RETURN ON STACK FOR NEC_OUTPUT
EDA9 56 2698 PUSH SI SO THAT IT WIll RETURN TO MOTOR OFF
2699 ; LOCATION
2700
2701 ;----- SEND OUT THE PARAMETERS TO THE CONTROLLER
2702
EDAA E89400 2703 CALL NEC_OUTPUT ; OUTPUT THE OPERATION COMMAND
EOAD SA660l 2704 MOV AH,EBP+IJ ; GET THE CURRENT HEAD NUMBER
EDBO 00E4 2705 SAL AH.l I MOVE IT TO BIT 2
EDBl 00E4 2706 SAl AH,l
EDB4 80E404 2707 AND AH,4 ; ISOLATE THAT BIT
EOB7 OAfl 2708 OR AH,DL ; OR IN THE DRIVE HUMBER
EDB9 E88500 2709 CAll NEC_OUTPUT
2710
2711 ;----- TEST FOR FORMAT COMMAND
2712
fDBC 80FF4D 2713 eMP BH ,04DH ; IS THIS A FORMAT OPERATION
fOSF 7503 2714 JNE J15 ; NO. CONTINUE WITH R/W/V
2797 ; ------------------------------------------------------------------------
2798 ; NEC_OUTPUT
2799 THIS ROUTINE SENDS A BYTE TO THE NEC CONTROLLER AFTER TESTING
2800 FOR CORRECT DIRECTION AND CONTROLLER READY THIS ROUTINE WILL
2801 TIME OUT IF THE BYTE IS NOT ACCEPTED WITHIN A REASONABLE
2802 AMOUNT Of TIME, SETTING THE DISKETTE STATUS ON COMPLETION.
2803 INPUT
2804 (AH) BYTE TO BE OUTPUT
2805 ; OUTPUT
2806 CY =0 SUCCESS
2807 CY = 1 FAILURE -- DISKETTE STATUS UPDATED
2808 IF A FAILURE HAS OCCURRED, THE RETt.lRN IS MADE ONE LEVEl :
2809 HIGHER THAN THE CALLER OF NEC_OUTPUT.
2810 THIS REMOVES THE REQUIREMENT OF TESTING AFTER EVERY
2811 CALL OF NEC_OUTPUT.
2812 (All DESTROYED
2813 J------------------------------------------------------------------------
EE41 2814 NEC_OUTPUT PROC NEAR
EE41 52: 2815 PUSH OX ; SAVE REGISTERS
EE42 51 2816 PUSH ex
EE43 BAF403 2817 MOY DX,03F4H ; STATUS PORT
EE46 33C9 2818 XOR CX,CX ; COUNT FOR TIME OUT
EE48 2819 J23:
EE48 EC 2820 IN AL,DX ; GET STATUS
EE49 A840 2821 TEST AL,040H ; TEST DIRECTION BIT
EE4B 740C 2822 JZ J25 ; DIRECTION OK
EE4D E2F9 2823 LOOP J23
EE4F 2824 J24: ; TIME_ERROR
EE4F 800E410080 2825 OR DISKETTE_STATUS, TIME_OUT
EE54 59 2826 POP ex
EE55 5A 2827 POP OX I SET ERROR CODE AND RESTORE REGS
EE56 58 2828 POP AX I DISCARD THE RETURN ADDRESS
EE57 F9 2829 STe ; INDICATE ERROR TO CALLER
EE58 C3 2830 RET
EE59 2831 J25:
EE59 33C9 2832 XOR ex,cx ; RESET THE COUNT
EE5B 2833 J26:
EE5B EC 2834 IN AL,OX I GET THE STATUS
EE5C AB80 2835 TEST AL,oaOH ; IS IT READY
EE5E 7504 2836 JNZ J27 ; YES. GO OUTPUT
EE60 E2F9 2837 LOOP J26 I COUNT DOWN AND TRY AGAIN
EE62 EBEB 2838 JMP J24 ; ERROR CONDITION
EE64 2839 J27: I OUTPUT
EE64 8AC4 2840 MOY AL,AH ; GET BYTE TO OUTPUT
EE66 B2F5 2841 MOY DL,OF5H ; DATA PORT (3F5)
EE68 EE 2842 OUT OX,AL ; OUTPUT THE BYTE
EE69 59 2843 POP ex I RECOVER REGISTERS
EE6A SA 2844 POP OX
EE6B C3 2845 RET ; CY = 0 FROM TEST INSTRUCTION
2846 NEC_OUTPUT ENDP
2847 j------------------------------------------------------------------------
2848 I GET _PARM
2849 THIS ROUTINE FETCHES THE INDEXED POINTER FROM THE DISK_BASE
2850 BLOCK POINTED AT BY THE DATA VARIABLE DISK]OINTER. A BYTE FROM:
2851 THAT TABLE 15 THEN MOVED INTO AH. THE INDEX Of THAT BYTE BEING
2852 THE PARM IN BX
2853 ; ENTRY --
2854 BX = INDEX OF BYTE TO BE FETCHED * 2:
2855 IF THE LOW BIT OF BX IS ON, THE BYTE IS IMMEDIATELY OUTPUT
2856 TO THE NEC CONTROLLER
2857 I EXIT --
2858 AH = THAT BYTE FROM BLOCK
2859 i ------------------------------------------------------------------------
EE6C 2860 GET_PARM PRDC NEAR
EE6C IE 2861 PUSH as ; SAVE SEGMENT
EE60 2BCO 2862 SUB AX , J,Y.. ; ZERO TO AX
EE6F 8ED8 2863 HOY OS,AX
2864 ASSUME oS:ABSO
EE7l C5367800 2865 lOS SI,DISK_POINTER POINT TO BLOCK
EE75 DlEB 2866 SHR BX,I DIVIDE BX BY 2. AND SET FUG
2867 FOR EXIT
EE77 8A20 2868 MOY AH,rSI+BX] GET THE WORD
3156 ; NUN_TRANS
3157 THIS ROUTINE CALCULATES THE NUt1BER OF SECTORS THAT
3156 WERE ACTUALLY TRANSFERRED TO/FROM THE DISKETTE
3159 INPUT
3160 (CH) = CYlINDER OF OPERATION
3161 (Cll = START SECTOR OF OPERATION
3162 ; OUTPUT
3163 (AL) = NUMBER ACTUAU Y TRANSFERRED
3164 NO OTHER REGISTERS MODIFIED
3165 ; ----------------------------------------------------------------
EFAE 3166 HUM_TRANS PROC NEAR
£FAE A04500 3167 MOV Al,NEC_STATUS+3 ; GET CYlINDER ENDED UP ON
EFBI 3ACS 3168 CMP AL,CH ; SAME AS WE STARTED
EFB3 A04700 3169 HOV Al,NEC_STATUS+5 ; GET ENDING SECTOR
EFB6 740A 3170 JZ J45 I IF ON SAME cn, THEN NO ADJUST
EFB8 BB0800 3171 MOV BX,8
H8B E8AEFE 3172 CAll GET_PARH ; GET EDT VALUE
EFBE 8AC4 3173 MOV AL,AH I INTO AL
EFCO FECO 3174 INC AL I USE EOT+l FOR CALCULATION
EFe2 3175 J4S:
£Fez 2;.el 3176 SUB Al,Cl I SUBTRAt;T START FROM Et«J
FOCb 20
FOC7 DA.
Face 7F
FOC9 06
FOCA 64
Face 70 3535 DB 70H,2.1,6,7
Foce 02
FOCO 01
FOCE 06
foeF 07
FOOD 00 3536 DB 0,0,0,0
FOOl 00
F002 00
FOOl 00
3537
FOD4 61 3538 DB 61H,50H.52H .OFH.19H.6, 19H J SET UP fOR 80X25 B&W CARD
fODS SO
FOD6 52
FOD7 OF
FOD8 19
FOD9 06
FOCA 19
FODS 19 3539 DB 19H.2 .DOH .OSH ,OCH
FOOt 02:
FOOD 00
FODE 08
FOOF DC
FOED 00 3540 DB 0.0,0,0
FOE I 00
FOE2 00
FOE3 00
3541
FOE4 3542 M5 LABEL WORD ; TABLE Of REGEN LENGTHS
rOf4 0008 3543 OW 2048 ; 40X2:5
FOe6 0010 3544 ow 4096 ; 80X25
FOE8 0040 3545 ow 16384 j GRAPHICS
FOEA 0040 3546 ow 16364
3547
3548 ; ----- COLUMNS
3549
FOEC 3550 M6 LABEL BYTE
FOEt 28 3551 DB 40 .40 ,80.80 ,40,40.80.60
FOED 28
FOEE 50
FOEF 50
FOFO 28
FOF 1 28
FOF2 50
fOF3 SO
3552
3553 ;----- C_REG_TAB
3554
FOF4 3555 H7 LABEL BYTE I TABLE OF HOOf SETS
FOF4 2C 3556 DB 2~.2~.20H.2~.UH.2EH.IEH.2~
FOF5 28
FOF6 20
FOF7 29
FOF8 2A
FOF9 2£
FOFA lE
FOFB 29
3557
FOFC 3558 SET_HOOE PROC NEAR
FOFC 13A0403 3559 tfOV OX.0304H ; ADDRESS OF COLOR CARD
FOFF 8300 3560 HOV BL.O ; HODE SET FOR COLOR CARD
FlOl 63FF30 3561 CH" DI.30H ; IS BW CARD INSTALLED
FI04 7506 3562 JHE HB ; OK WITIf COLOR
Fl06 B007 3563 tfOV AL.7 ; INDICATE BW CARD HODE
FI08 B2B4 3564 HOV DL.OB4H I ADDRESS OF BW CARD (3B4)
FIOA FEC3 3565 INC Bl I HaDE SET FOR BW CARD
FlOC 3566 M8:
FlOC 6AEO 3567 HOV AH.Al ; SAVE MODE IN AH
FlOE A24900 3568 HOV CRT_MOOE.AL I SAVE IN GLOBAL VARIABLE
FIll 69166300 3569 HOV ADDR_6845.DX ; SAVE ADDRESS OF BASE
F1l5 IE 3570 PUSH OS j SAVE POINTER TO DATA SEGMENT
F1l6 50 3571 ruSH AX I SAVE HODE
FIl7 52 3572 ruSH OX I SAVE tJUTPUT PORT VALUE
3725 1------------------------------------------------
3726 ; SET_CPOS
3727 THIS ROUTINE SETS THE CURRENT CURSOR
3728 POSITION TO THE NEW X-V VALUES PASSED
3729 ; INPUT
3730 OX - ROW,COLUt1N OF NEW CURSOR
3731 BH - DISPLAY PAGE OF CURSOR
3732 ; OUTPUT
3733 CURSOR IS SET AT 6845 IF DISPLAY PAGE
3734 IS CURRENT DISPLAY
3735 ; --------------- ---------------------------------
FlEE 3736 SET_CPOS PROC NEAR
FlEE 8ACF 3737 MOV CL.BH
FIFO 32EO 3738 XOR CH,CH ; ESTABLISH LOOP COUNT
FIFe! DIEI 3739 SAL CX.l ; WORD OffSET
FIF4 88Fl 3740 MOV SI,CX , USE IHDEX REGISTER
FIF6 895450 3741 MOV [SI+OFFSET CURSOR_POSN1,DX i SAVE THE POINTER
FIF9 383E6200 3742 CMP ACTIVE_PAGE .BH
FIFO 7505 3743 JHZ M17 , SET_CPOS_RETURN
FIFf 8BC2 3744 MOV AX,DX ; GET ROW/COLUMN TO AX
flOl E80200 3745 CALL M18 ; CURSOR_SET
F204 3746 MI7: I SET _CPOS_RETURN
Fl04 EBBF 3747 JMP VIDEO_RETURN
3748 SET_CPOS ENOP
3749
3750 ,----- SET CURSOR POSITION. AX HAS ROW/COLUHN FOR CURSOR
3751
fZOb 3752 M18 PROC NEAR
FlOb E87COO 3753 CAll POSITION ; DETERMINE LOCATION IN REGEN BUFFER
Fl09 88C8 3754 MOV CX,AX
flOB 030E4EOO 3755 ADO CX,CRT_START ; ADD IN THE START ADDR FOR THIS PAGE
F20F DIF9 3756 SAR CX,l ; DIVIDE BY 2 FOR CHAR ONLY COUNT
Flll 840E 3757 MOV AH,14 ; REGISTER NUMBER FOR CURSOR
FZ13 EBC2FF 3758 CALL M16 ; OUTPUT THE VALUE TO THE 6845
F216 C3 3759 RET
3760 MI8 ENOP
3761 ; ---------- ------------------------------------------------------
3762 ; ACT_DISP_PAGE
3763 THIS ROUTINE SETS THE ACTIVE DISPLAY PAGE, ALLOWING THE
3764 FULL USE OF THE RAM SET ASIDE FOR THE VIDEO ATTACHMENT
3765 INPUT
3766 AL HAS THE NEW ACTIVE DISPLAY PAGE
3767 ; OUTPUT
3768 THE 6845 IS RESET TO DISPLAY THAT PAGE
376 <;I ; -------------- --- --------------------- --------------------------
fl17 3770 ACT_DISP_PAGE ?ROC NEAR
fl17 A26200 3771 MOV ACTIVE_PAGE.AL I SAVE ACTIVE PAGE VALUE
fZu' 880E4COO 37TZ. MOV CX,CRT_LEN ; GET SAVED LENGTH OF REGEN BUFFER
F21E 98 3773 CBW ; CONVERT AL TO WORD
F21F 50 3774 PUSH AX ; S.a.VE PAGE V.a.LUE
f220 f7Et 3775 HUL ex 1 DISPLAY PAGE TIMES REGEN LENGTH
F2ll A34EOO 3776 MOV CRT_START .AX ; SAVE START ADDRESS FOR
3777 ; LATER REQUIREMENTS
F225 88C8 3778 MOV CX.AX ; START ADDRESS TO CX
F227 DIF9 3779 SAR CX,1 i DIVIDE BY 2 FOR 6845 HANDLING
F229 B40C 3780 MOV AH.12 ; 6845 REGISTER FOR START ADDRESS
F22B EBAAFF 3781 CALL MI6
FZ2E 58 3782 POP ax ; RECOVER PAGE VALUE
F22F DID 3783 SAL BX.I ; *2 FOR WORD OFFSET
fZ31 884750 3784 MOV AX,[BX + OFFSET CURSOR_POSH] j GET CURSOR FOR THIS PAGE
F234 E8CFFF 3785 CAll HI8 ; SET THE CURSOR POSITION
F237 EBec 3786 JMP SHORT VIDEO_RETURN
3788 ;----------------------------------------------------------------
3789 ; READ_CURSOR
3790 THIS ROUTINE READS THE CURRENT CURSOR VALUE FROM THE
3791 6845. FORMATS IT. AND SENDS IT BACK TO THE CALLER
3792 INPUT
3793 BH - PAGE OF CURSOR
3794 I OUTPUT
3795 ox - ROW, COLUHN OF THE CURRENT CURSOR POSITION
3796 CX - CURRENT CURSOR MODE
3797 ; ----------------------------------------------------------------
fZ39 3798 READ_CURSOR PROC NEAR
F239 8AOF 3799 MOV BL,BH
FZ38 32FF 3800 XOR BH,BH
FZ3D DIE3 3801 SAL BX.l j WORD OFFSET
4108
F39E 4109 FIND_POSITION PROC NEAR
F39E SACf 4110 "OV CL,BH J DISPLAY PAGE TO ex
F3AO 32EO 4111 XOR CH,CH
F3A2 8BF 1 4112 MOV SI,CX I MOVE TO SI FOR INDEX
F3A4 01E6 4113 SAL 51.1 I ,. 2 FOR WORD OFFSET
F3A6 884450 4114 MOV AX,(SI+ OFFSET ClmSOR_POSNI ; GET ROW/COLUMN OF ntAT PAGE
F3A9 3308 4115 XOR aX.BX ; SET START ADDRESS TO ZERO
nAB E306 4116 JCXZ P5 ; NO_PAGE
F3AO 4117 P4; ; PAGE_LOOP
F3AO 031E4COO 4118 ADD I LENGTH OF BUFFER
FlBI E,FA 4119 LOOP
F3B3 4120 1'5: I NO_PAGE
F3B3 E8CFFE 4121 CALL POSITION ; DETERMINE LOCATION IN REGEN
nB6 0308 4122 ADD BX,AX ; ADD TO START OF REGEN
F368 C3 412:3 RET
412:4 FIND_POSITION ENOl'
4125 ; ------------------------------------------------
412:6 ; WRITE_AC_CURRENT
412:7 THIS ROUTINE WRITES THE ATTRIBUTE
4128 AND CHARACTER AT THE CURRENT CURSOR
412:9 POSITION
4130 INPUT
4131 (AH 1 :: CURRENT CRT MODE
4132 (BH) :: DISPLAY PAGE
4133 {CXI :: COUNT OF CHARACTERS TO WRITE
4134 (All :: CHAR TO WRITE
4135 (Bll :: ATTRIBUTE OF CHAR TO WRITE
4136 (DSI :: DATA SEGMENT
4137 (ESI :: REGEN SEGMENT
4138 ; OUTPUT
4139 NONE
4140 j------------------------------------------------
F3B9 4141 WRITE_At_CURRENT PROt NEAR
F3B9 80FC04 4142: CMP A,H,4 I IS THIS GRAPHICS
F3et 7208 4143 JC P6
F3BE 80FC07 4144 CMP AH,7 ; IS THIS BW CARD
F3Cl 7403 4145 JE P6
F3C3 £96201 4146 JMP GRAPHICS_WRITE
nC6 4147 P6: I I,~IHTE_AC_CONTINUE
4472
4473 ;----- MEDIUM RES DOWN
4474
F509 00E2 4475 SAL OLd ; • COLlJ'flS * 2. SINCE
4476 ; 2 BYTES/CHAR (OFFSET OK I
F50B DIE7 4477 SAL 01.1 ; OFFSET *2 SINCE 2 BYTES/CHAR
F50D 47 4478 INC 01 ; POINT TO LAST BYTE
4479
4480 ; ----- DETERMINE THE SOURCE ADDRESS IN THE BUFFER
4481
F50E 4482 R12: ; FIND_SOURCE_D~
F~6
F506 8AD3
....
4667
4669
57:
HOY CL.St I SAVE HIGH COLOR BIT
F5De DIE7 4670 SAL 01,1 j OFFSET*2 SINCE 2 BYTEs/CHAR
F5DA £8Dl00 4671 CAll 519 ; EXPAND BL TO FULL WORD OF COLOR
FSDD 4672 58: I MED_CHAR
FSDD 57 4673 PUSH DI ; SAVE REGEN POINTER
FSDE 56 4674 PUSH 51 ; SAVE THE CODE POINTER
F5Df 8604 4675 i10V OH.4 ; NUMBER OF LOOPS
F5El 4676 59:
F5El At 4677 Loose I GET CODE POINT
FSE! E8DEOa 4678 CALL 521 J DOUBLE UP ALL THE BITS
F5£5 23C3 4679 AND AX,BX ; CONvERT THEM TO FOREGRotHJ
4680 ; COLOR ( 0 BACK )
F5£7 F6C280 4681 TEST Dt,eOH ; IS THIS XOR FUNCTION
F5E'" 7407 4682 ; NO. STORE IT IN AS IT IS
....
JZ 510
F5EC 263225 4683 XOR AH.~S:[DI1 ; DO FUNCTION WITH HALF
FSEF 26324501 XOR AL,ES:[DI+ll ; AND WITH OTHER HALF
F5F3 4685 SID:
FSn 268825 4686 ttOV ES:[OIJ.AH J STORE FIRST BYTE
F5F6 26864501 4687 t10V ES:[OI+1J ••U ; STORE SECOND BYTE
FSf" At 4688 LODse I GET CODE POINT
F5fS E8C500 4689 CAll 521
F5FE 2.le3 4690 AND AX,8X J CONVERT TO COLOR
F600 F6C280 4691 TEST Dl,80H I AGAIN, IS THIS XOR FUNCTION
F603 740A 4692 JZ 511 ; NO. JUST STORE TME VALUES
F605 2632 ...5002:0 4693 XOR AH,ES:[OI+2:000H1 J FUNCTION WITH FIRST HALF
F60 ... 2632850120 4694 XOR AL,ES:[OI+2001HJ J At«) WITH SECOND HALF
F60F 4695 Sl1:
F60F 2688AS0020 4696 HOY ES: (OI+2000Hl,AH
F614 2688650120 4697 HOV ES:loI+2000H+ll,Al J STORE IN SECOND PORTION OF BUFFER
F619 83C750 4698 ADD 01,80 ; POINT TO NEXT LOCATION
F61C FEtE 4699 DEC DH
F61E 7SCI 4700 JNz S9 ; KEEP GOING
F620 5£ 4701 pop SI J RECOVER CODE PONTER
F621 SF 4702 pop 01 ; RECOVER REGEN POINTER
F622 47 4703 INC DI J POINT TO NEXT CHAR POSITION
F623 47 4704 INc DI
F624 £287 4705 LOOP S8 ; MORE TO tRITE
F626 E99CFB 4706 JHP
4707 GRAPHICS_~iTE ENDP
4706 j----':"'-------------------
4709 I GRAPHICS READ
4710 J .. -----------------------
F629 4711 GRAPHICS_READ PROt NEAR
F629 £80600 4712 CALL S26 I CONVERTED TO OFFSET IN REGEN
F62C 88FO 4713 I10V SI,AX I SAVE IN SI
F62.£ 83Eeoe 4714 SUB SP,8 ; AlLOCATE SPACE to SAVE THE
4715 I READ CODE POINT
F631 8BEt 4716 MOV BP,SP J POINTER TO SAVE AREA
4717
4718 1----- DETERMINE GRAPHICS HODES
4719
4830 EXPAND_BYTE
4831 THIS ROUTINE TAKES THE BYTE IN AL AND DOUBLES
4832 ALL OF THE BITS, TURNING THE 8 BITS INTO
4833 16 BITS. THE RESULT IS LEFT IN AX
4634 j--------------------------------------------------------
F6e} 4835 521 PROC NEAR
F6e3 52 4836 PUSH ox I SAVE REGISTERS
F6C4 51 4837 PUSH ex
F6es 53 4638 PUSH BX
F6C6 lBOZ 4839 SUB OX,OX ; RESULT REGISTER
Foes 690100 4840 MOV CX,1 j MASK REGISTER
F6eB 4841
F6te SBD8 4842 MOV BX,AX i BASE INTO TEMP
F6CD 2309 4843 AND BX,CX ; USE MASK TO EXTRACT A BIT
F6CF OB03 4844 OR oX,ex ; PUT IHTD RESULT REGISTER
F601 DIED 4845 5HL AX,!
F603 olEl 4846 SHL CX,1 ; SHIFT BASE ANa MASK BY 1
F6DS 8808 4847 MOV BX,AX ; BASE TO TEMP
F607 2309 4848 AND BX,CX ; EXTRACT THE SAME BIT
F609 0603 4849 OR OX,BX i PUT INTO RESULT
f6DS olEl 4850 5HL CX,l ; SHIFT ONLY MASK NOW,
4851 I MOVING TO NEXT BASE
FoOD 73Et 4652 JNe 522 ; USE MASK BIT COMING OVT TO TERMINATE
F6DF 8BC2 4853 MOV AX,OX ; RESULT TO PARM REGISTER
f6El 58 4854 POP BX
F6E2 59 4855 POP ex ; RECOVER REGISTERS
f6B SA 4856 POP ox
F6E4 C3 4857 RET I ALL DONE
4858 S21 ENDP
4859 ; --------------------------------------------------------
4860 j MED_READ_BYTE
4861 THIS ROUTINE WILL TAKE 2 BYTES FROM THE REGEN
4862 BUFFER, COMPARE AGAINST THE CURRENT FOREGROUND
4863 COLOR, AND PLACE THE CORRESPONDING ON/OFF SIT
4864 PATTERN INTO THE CURRENT POSITION IN THE SAVE
4865 ; AREA
4866 j ENTRY
4867 51,05 = POINTER TO REGEN AREA OF INTEREST
4868 ex = EXPANDED FOREGROUND COLOR
4869 SP = POINTER TO SAVE AREA
4870 j EXIT
4871 SP IS INCREMENT AFTER SAVE
4872 i - --- - - - - - --- -- --- -- - -- ----- -- - - - - - -- ----- ---- --- ----- ---
4950
4951 ; ----- OX NOW HAS THE CURRENT CURSOR POSITION
4952-
F723 3e08 4953 CHP AL.a I IS IT A BACKSPACE
F7ZS 7452 4954 JE U8 ; BACK_SPACE
F727 3COO 4955 CHP AL,OOH I IS IT CARRIAGE RETURN
F729 7457 4956 JE U' ; CAR_RET
F72B 3eOA 4957 CMP AL,OAH I IS IT A LINE FEED
F720 7457 4958 JE UIO I LINE3EED
F12F 3C07 4959 CHP Al,07H I IS IT A BELL
F731 745A 4960 JE U11 ; BELL
4961
4962- ;----- WRITE THE CHAR TO THE SCREEN
4963
4964
F733 640.60 4965 NOV AH,10 ; WRITE CHAR ONLY
F735 B90100 4966 MOV eX.l ; ONLY ONE CHAR
F738 COlO 4967 INT 10M ; WRITE THE CHAR
4968
4969 1----- POSITION THE CURSOR FOR NEXT CHAR
4970
F73A FEel 4971 INC DC
F73C 3AI64.6oOO 4972 CMP Dl.BYTE PTR CRT_COLS ; TEST FOR COLUMN OVERFLOW
F740 7533 4973 JNZ U7 ; SET_CURSOR
F742 8200 4974 MOV OL.O ; COLUMN FOR CURSOR
F744 SOFEl6 4975 CMP OH,24
F747 752.60 4976 JNZ U. J SET_CURSOR_INC
4977
4978 ; ----- SCROLL REQUIRED
4979
F749 4980 U1:
F749 B402 4981 MOV AH ,2
F74B COlO 4982 INT 10M j SET THE CURSOR
4983
4984 j----- DETERMINE VALUE TO FILL WITH DURING SCROLL
4985
F74D A04900 498b NOV AL,CRT_MODE I GET THE CURRENT MODE
F7s0 3C04 4987 CMP AL,4
F752 7206 4988 JC U2 j READ-CURSOR
F754 3C07 4989 CMP AL.7
F7s6 B700 4990 MOV BH,O j FILL WITH BACKGROUND
F758 7506 4991 JNE U3 ; SCROll-UP
F75A 4992 U2: ; READ-CURSOR
F75A B408 4993 MOV AH.8
F75C COlO 4994 INT 10M j READ CHAR/ATTR .l.T C~RENT CURSOR
F75E 8AFe 4995 MOV BH,AH I STORE IN BH
F7bO 4996 U3: ; SCROLL-UP
F760 B80106 4997 HOV AX,60lH j SCROLL ONE LINE
F763 2BC9 4998 SUB eX,ex ; UPPER LEFT CORNER
F7bS B618 4999 MOV DH,24 LOWER RIGHT ROW
F767 8A164AOO 5000 MOV DL,BYTE PTR CRT_COLS ; LOWER RIGHT COLUMN
F768 FEeA 5001 DEC DC
F76D 5002 U4: j VIDEO-CALL-RETURN
F7bD COlO 5003 1NT 10M j SCROLL UP THE SCREEN
F7bF 5004 us: j TTY-RETURN
F76F 58 5005 POP AX j RESTORE THE CHARACTER
F770 E952FA 5006 JMP VIDEO_RETURN j RETURN TO CALLER
F773 5007 U6: I SET-CURSOR-INC
F773 FEC6 5008 INC OM j NEXT ROW
F775 5009 U7: ; SET -CURSOR
F775 B402 5010 NOV AH,2
F777 EBF4 SOIl JMP U4 j ESTABLISH THE NEW CURSOR
5012
5013 j ----- BACK SPACE FOUND
5014
F779 5015 U8:
F779 80FAOO 5016 CMP DL,O I ALREADY AT END OF LINE
F77C 74F7 5017 JE U7 I SET_CURSOR
F77E FECA 5018 DEC DC I NO -- JUST HOVE IT BACK
F780 EBF3 5019 JMP U7 I SET_CURSOR
5020
5021 j----- CARRIAGE RETURN FOUND
5022
F782 5023 U9:
F782 B200 5024 "OV DL,O ; MOVE TO FIRST COLUMN
F784 EBEF 5025 JMP U7 ; SET_CURSOR
5026
5097
5098 ;----- AX HAS THE VALUE READ IN FROM THE 6845
5099
nCB 8AIE4900 5100 MaV Bl.CRT_HOoE
F7CC 2AFF 5101 SUB BH,BH I MODE VALUE TO ex
F7eE ZE8A9F94F7 5102 MaV BL.CS:Vl[BX] I DETERNINE AMOUNT TO SUBTRACT
F703 2&3 5103 SUB AX,BX ; TAKE IT AWAY
F70S 861E4EOO 5104 MOV ex. CRT_START
F7D9 DlEB 5105 SH' BX,l
F1DB 2BC3 5106 SUB Ax,ex
F1DO 7902 5107 JNS V, ; IF POSITIVE, DETERMINE MODE
F70F 2BCO 5108 SUB AX,AX I <0 PLAYS AS 0
5109
5110 j----- DETERMINE NODE OF OPERATION
5111
F7El 5112 V2: I DETERMINE_HODE
F7El 8103 5113 MOV CL,3 ; SET *8 SHIFT COUNT
F7E3 803E490004 5114 CMP CRT_MODE ,4 ; DETERMINE IF GRAPHICS OR ALPHA
F7EB 722A 5115 JB V4 I ALPHA_PEN
F7EA 803E490007 5116 CMP CRT_MODE.7
F7EF 7423 5117 JE V4 i ALPHA_PEN
5118
5119 ; ----- GRAPHICS MODE
5120
F7Fl 8228 5121 MOV DL.40 ; OIVISOR FOR GRAPHICS
F7F3 F6FZ 5122 OIV OL ; DETERMINE ROW( AL) AND COLlJMN( AH)
5123 ; AL RANGE 0-99, AH RANGE 0-39
5124
5125 ; ----- DETERMINE GRAPHIC ROW POSITION
5126
F7F5 8AE8 5127 MaV CH,AL ; SAVE ROW VALUE IN CH
F7F7 02EO 5128 ADD CH,CH ; *2 FOR EVEN/ODD FIELD
F7F9 8ADC 5129 MOV BL,AH ; COLUMN VALUE TO BX
F7FB 2AFF 5130 SUB BH,BH ; NULTIPL Y BY 8 FOR MEDIUM RES
F7FD 803E490006 5131 CMP CRT_MODE,6 ; DETERMINE MEDIUM OR HIGH RES
F802 7504 5132 JHE V, I NOT_HIGH_RES
F804 BI04 5133 MaV CL,4 ; SHIFT VALUE FOR HIGH RES
FM6 DOE4 5134 SAL AH.l 1 COLUMN VALUE TIMES 2 FOR HIGH RES
Faoa 5135 V3: I NOT_HIGH_RES
F80S D3E3 5136 SHL BX,CL ; MULTIPLY *16 FOR HIGH RES
5137
5138 1----- DETERMINE ALPHA CHAR POSITION
5139
F80A 8A04 5140 HOV DL,AH ; COLUt1H VALUE FOR RETURN
FSOC 8AFO 5141 MaV DH,AL ; ROW VALUE
F80E DOEE 5142 SH, DH,l ; OIVIDE BY 4
F810 DOEE 5143 SHR DH,l FOR VALUE IN 0-24 RANGE
F812 EBI2 5144 JMP SHORT V5 LIGHT _PEN_RETURN_SET
5145
5146 1----- ALPHA MODE ON LIGHT PEN
5147
F814 5148 V4: I ALPHA_PEN
F814 F6364AOO 5149 OIV BYTE PTR CRT_COLS ; DETERMINE ROW,COLUMN VALUE
F818 8AFO 5150 MOV DH,AL ; ROWS TO DH
F81A 8AD4 5151 MOV OL,AH I COLS TO DL
FalC 02EO 5152 SAL AL,CL ; MUL TIPL Y ROWS * a
F8tE 8AE8 5153 MOV CH,AL 1 GET RASTER VALUE TO RETURN REG
F8Z0 8ADC 5154 MOV BL,AH I COLUMN VALUE
F822 32FF 5155 XO, BH,BH TO ex
F824 D3E3 S156 SAL BX,CL
F626 5157 VS: LIGHT_PEN_RETURN_SET
F8l6 B401 5158 HOV All. 1 INDICATE EVERTHING SET
Fa28 5159 V6: , LIGHT_PEN_RETURN
Fa28 52 5160 PUSH OX ; SAVE RETURN VALUE (IN CASE)
F829 88166300 5161 MOV DX,ADDR_6a45 ; GET BASE ADDRESS
F82D a3C207 5162 ADD OX.7 ; POINT TO RESET PARM
F830 EE 5163 OUT DX,AL ; ADDRESS. NOT DATA, IS IMPORTANT
f831 SA 5164 POP OX ; RECOVER VALUE
F832 5165 V7: ; RETURN_NO_RESET
Fa32 SF 5166 PDP 01
F833 5E 5167 POP SI
Fa34 IF 5168 POP OS I DISCARD SAVED 8X,ex,Ox
F835 IF 5169 POP OS
FS36 IF 5170 POP OS
5171
F837 IF 5172 PDP OS
F838 07 5173 POP ES
5207
5206 ;--- INT 11 -----------------------------------------------------
5209 ; EQUIPMENT DETERMINATION
5210 THIS ROUTINE ATTEMPTS TO DETERHINE WHAT OPTIONAL
5211 DEVICES ARE ATTACHED TO THE SYSTEM.
5212 ; INPUT
5213 NO REGISTERS
5214 THE EQUIPJLAG VARIABLE IS SET DURING THE POWER ON
5215 DIAGNOSTICS USING THE FOLLOWING HARDWARE ASStR1PTIONS:
5216 PORT 60 = LOW ORDER BYTE OF EQUPMENT
5217 PORT 3fA = INTERRUPT 10 REGISTER OF 8250
5218 BITS 7-3 ARE ALWAYS 0
5219 PORT 378 = OUTPUT PORT Of PRINTER -- 8255 PORT THAT
52:20 CAN BE READ AS WELL AS WRITTEN
5221 ; OUTPUT
5222 (AX) IS SET, BIT SIGNIFICANT. TO INDICATE ATTACHED I/O
5223 BIT 15.14 ::: NUMBER OF PRINTERS ATTACHED
5224 BIT 13 HOT USED
5225 BIT 12 = GAME I/O ATTACHED
5226 BIT 11.10.9 ::: t-U1BER OF RS232 CARDS ATTACHED
5227 BIT 8 UNUSED
5228 BIT 7.6 = NUMBER OF DISKETTE DRIVES
5229 00=1. 01=2. 10=3. 11=4 ONLY IF BIT 0 = 1
5230 BIT 5.4 = INITIAL VIDEO HOOE
5231 00 - UNUSED
5232 01 - 40X25 BW USING COLOR CARD
5233 10 - 80X25 BW USING COLOR CARD
5234 11 - 60X25 BW USING BW CARD
5235 BIT 3.2 = PLANAR RAM SIZE (OO=16K,01=32K,10=48K.ll=6410
5236 BIT 1 NOT USED
5237 BIT 0 :: IPl FROM DISKETTE -- THIS BIT It«IICATES THAT
5238 THERE ARE DISKETTE DRIVES ON THE SYSTEH
5239
5240 NO OTHER REGISTERS AFFECTED
5241 ;----------------------------------------------------------------
5242 ASSUME CS :CODE .DS:OATA
f840 5243 ORG Of840H
F840 5244 EQUIPMENT PROC FAR
F84D FB 5245 ST! ; INTERRUPTS BACK ON
F84E IE 5246 PUSH DS ; SAVE SEGMENT RESISTER
F84F E8Ee06 5247 CALL DDS
F852 AllOOO 5248 MOV AX,EQUIP _FLAG ; GET THE CURRENT SETTINGS
F655 IF 5249 POP DS ; RECOVER SEGMENT
F856 CF 5250 IRET ; RETURN TO CALLER
Fe6 .. OAElt
5300
5301 OR AH.AH ,
; - - - - ------ - -- -- - -------- -- - - - -- - - - ---- ------- -- - --------
TURN ON MOTOR?
FMC 7413 5302 MOTOR_ON , YES. DO IT
F86E FEte 5303
JZ
DEC AH , TURN OFF MOTOR?
Fa70 7418 5304 JZ MOTOR_OFF , YES. DO IT
,
F672 FEte
F874 74l.A.
5305
5306
DEC
JZ
AH
READ_BLOCK , READ CASSETTE BLOCK?
YES. 00 IT
Fe76 FEte 5307 DEC AH , WRITE CASSETTE BLOCK?
F878 7503 5308 JNZ W2 , NOT_OEF~NEO
5405
FeES SE 5406 POP 51 I RESTORE REGS
FaE6 59 5407 pOP ex
FaE7 58 5408 POP BX
5409 1----------------------------------------------------------------
5410 ; READ 1 OR MORE 256 BYTE BLOCKS FROM CASSETTE
5411
5412 I ON ENTRY:
5413 ES IS SEGMENT FOR MEMORY BUFFER (FOR COMPACT CODE)
5414 ex POINTS TO START OF MEMORY BUFFER
5415 CX CONTAINS NUMBER OF BYTES TO READ
5416 I ON EXIT:
5417 BX POINTS 1 BYTE PAST LAST BYTE PUT IN MEM
5418 CX CONTAINS DECREMENTED BYTE COUNT
5419 OX CONTAINS NUMBER OF BYTES ACTUALLY READ
5420 1----------------------------------------------------------------
feE8 51 5421 PUSH CX ; SAVE BYTE cout·n
F8E9 5422 IoUO: ; COME HERE BEFORE EACH
5423 I 256 BYTE BLOCK IS READ
F8E9 C7Q66900FFFF 5424 MOV CRC_REG,OFFFFH I INIT CRC REG
FeEF BMOOI 5425 MOV DX,256 ; SET OX TO DATA BLOCK SIZE
FeF2 5426 1411: I RO_BLK
FeF2 F606710080 5427 TEST BIOS_BREAK. 80H ; CHECK FOR BREAK KEY
FaF7 7523 5428 W13 I JUMP IF BREAK KEY HIT
f8F9 E84FOO 5429 CALL READ_BYTE ; READ BYTE FROM CASSETTE
FaFC 721E 5430 JC 10113 j CY SET INDICATES NO DATA TRANSITIONS
faFE nos 5431 JCXZ 10112 ; IF WE'VE ALREADY REACHED
5432 ; END OF MEMORY BUFFER
5433 ; SKIP REST OF BLOCK
f900 268807 5434 MOV ES:tBX),AL ; STORE DATA BYTE AT BYTE PTR
F903 43 5435 INC BX ; INC BUFFER PTR
F904 49 5436 DEC ex ; DEC BYTE COUNTER
f905 5437 10112: ; LOOP UNTIL DATA BLOCK HAS BEEN
5438 ; READ FROM CASSETTE.
F905 4A 5439 DEC OX ; DEC BLOCK CNT
F906 7FEA 5440 JG 1411 j RD_BLK
f908 E84000 5441 CALL READ_BYTE I NOW READ TWO CRC BYTES
F90B E83000 5442 CALL READ_BYTE
F90E 2AE4 5443 SUB AH.AH ; CLEAR AH
f910 813E69000FID 5444 CMP CRC_REG, !.DOFH I IS THE CRC CORRECT
F916 7506 5445 JNE 10114 ; IF NOT EQUAL CRe IS BAD
Fna nOb 5446 JCXZ 1415 I IF BYTE COUNT IS ZERO
5447 I THEN WE HAVE READ ENOUGH
5448 ; SO WE WIL L EXIT
F9U, EBCD 5449 JMP
f91C 5450 1413: "" ; STILL HaRE. SO READ ANOTHER BLOCK
; HISSING-DATA
5451 ; NO DATA TRANSITIONS SO
f91C 8401 5452 MOV AH,OlH ; SET AH=02 TO INDICATE
5453 I DATA TIMEOUT
F91E 5454 1414: ; BAO-CRe
f91E FEC4 5455 INC AH ; EXIT EARLY ON ERROR
5456 ; SET AH=Ol TO INDICATE CRe ERROR
Fno 5457 10115: ; RO-BLK-EX
Fno SA 5458 POP ox ; CAl'.CULATE COUNT OF
F921 2BOI 5459 SUB OX.CX ; DATA BYTES Acru.6.lLY READ
5460 ; RETURN COUNT IN REG OX
F923 50 5461 PUSH AX ; SAVE AX (RET CODE)
F924 F6C490 5462 TEST AH. 90H j CHECK FOR ERRORS
F927 7513 5463 JNZ 10118 ; JUMP IF ERROR DETECTED
F929 ESlFOD 5464 CALL READ_BYTE j READ TRAILER
Fnc ESCE 5465 JHP SHORT 10118 ; SKIP TO TURN OFF MOTOR
F92E 5466 1416: j BAD-LEADER
F92E 4E 5467 DEC 51 ; CHECK RETRIES
F92F 7403 5468 JZ W17 ; JUMP IF TOO MANY RETRIES
F931 E965FF 5469 JMP W4 ; JUMP IF HOT TOO MANY RETRIES
F934 5470 Wl7: j NO VALID DATA FOUND
5471
5472 ;----- NO DATA FROM CASSETTE ERROR, I.E. TIMEOUT
5473
f934 SE 5474 pop SI I RESTORE REGS
F935 59 5475 POP CX I RESTORE REGS
F936 58 5476 POP BX
f937 ZBDl 5477 SUB OX.OX I ZERO HUMBER OF BYTES READ
F939 8404 5478 MOV AH.04H ; TIME OUT ERROR {NO LEADER l
f938 50 5479 PUSH AX
F93C 5480 IU8: I HOT-OFF
5663 ; --------------------------------
5664 ; WRITE A BYTE TO CASSETTE.
5665 ; BYTE TO WRITE IS IN REG AL.
5666
FAID 5667 PROC NEAR
FAID 51 5668 PUSH CX I SAVE REGS CX,AX
FAll 50 5669 PUSH AX
FAl2 8AE8 5670 MOV CH,AL ; AL=BYTE TO WRITE.
5671 (MS BIT WRITTEN FIRSTi
FAl4 B106 5672 HOV CL,8 ; FOR 8 DATA BITS IN BYTE.
5673 NOTE: TWO EDGES PER BIT
fAl6 5674 W27: I DISASSEMBLE THE DATA BIT
FA16 0005 5675 RCl CH,I I ROTATE HS BIT INTO CARRY
FAIS 9C 5676 PUSHF ; SAVE FLAGS.
5677 NOTE: DATA BIT IS IN CARRY
FA19 E80BOO 5678 ; WRITE DATA BIT
F Ale 90 5679 POPf ; RESTORE CARRY FOR CRC CALC
FAID E82400 5680 CAll CRC_GEN ; COMPUTE CRC ON DATA BIT
FAZO FEC9 5681 DEC Cl I LOOP TIll All 8 BITS DONE
FAZZ 75F2 5682 JNZ 10127 ; JUHP IF NOT DONE YET
FA24 58 5683 POP AX ; RESTORE REGS AX,ex
FA25 59 5684 POP CX
FA26 C3 5685 RET ; WE ARE FINISHED
5686 ENOP
5687 ; ----------------------------------------- ---------------
5688 PURPOSE:
5689 TO WRITE A DATA BIT TO CASSETTE
5690 CARRY FLAG CONTAINS DATA BIT
5691 I.E. IF SET DATA BIT IS A ONE
5692 IF CLEAR DATA BIT IS A ZERO
5693
5694 NOTE: TWO EDGES ARE WRITTEN PER BIT
5695 ONE BIT HAS 500 USEC BETWEEN EDGES
5696 FOR A 1000 USEC PERIOD (1 MIlLISEC)
5697
5698 ZERO BIT HAS 250 USEC BETWEEN EDGES
5699 FOR A 500 USEC PERIOD (.5 MIllISEC)
5700 ; CARRY flAG IS DATA BIT
5701 ; --------- ______________________________________________ _
.21
22
24
25
; INPUT (AH = HEX VALUE)
.43
44
46
47
(AH )=DF WRITE SECTOR BUFFER.
IRECO\"I1ENDED PRACTICE BEFORE FORMATTING)
IAHI=10 TEST DRIVE READY
UH 1=11 RECALIBRATE
(AH 1=12 CONTROLLER RAM DIAGNOSTIC
48 (AH )=13 DRIVE DIAGNOSTIC
4. (AH )=14 CONTROLLER INTERNAL DIAGNOSTIC
5.
51 REGISTERS USED fOR FIXED DISK OPERATIONS
52
53 (DLI DRIVE HUt1BER (BOH-B7H FOR DISK, VALUE CHECKED)
54 (DH) HEAD NUMBER 10-7 AllOWED. NOT VAlUE CHECKED)
55 IC!"!J CYlINDER HUMBER (0-1023. NOT VALUE CHECKEDHSEE ell
56 tcU - SECTOR tM1BER (1-17, HOT VALUE CHECKED)
57
58 NOTE: HIGH 2: BITS OF CYLINDER NUt1BER ARE PLACED
87
Cl = I1A.XII'M1 USEABLE VALUE FOR SECTOR NlI1BER
AND CYLINDER NIA1BER HIGH BITS
00
8. REGISTERS WILL BE PRESERVED EXCEPT WHEN THEY ARE USED TO RETURN
.,
•0
'i2
IHFORI1ATION •
.
.. I
95 1------- --------- ------- ----------------- - -- ----- ---- ---- - --- ------- -- ---
LABEl OWORO
I DISK ItHERRUPT VECTOR
..
0076 11 14. CONTROL_BYTE DB ; ConTROL BYTE DRIVE OPTIONS
"S
0077 11
,,.7 PORT_OFF
DATA ENDS
DB I PORT OFFSET
..
00E6 I •• WR_LONG_CND EQU 111001108 WLONG IE6H)
0020 ,,.,
'" INT_CT~PORT EQU 20" J 8259 CONTROL PORT
0020 EOI EQU 20" ; END OF INTERRUPT CotIMAND
2"
0008 2.3 EOU
0002 2" EOU
2 ••
JHP
AX.4460 I ~5 SECONDS
Olbt 00
0160 0'\
0006 375 F17l EOU $-F17
37.
016E 377 HD_RESET_I PROt NEAR
016E SI 378 PUSH ex ; SAVE REGISTER
016F 52 379 PUSH ox
0170 Fe 3.0 CLC I CLEAR CARR'(
0171 890001 381 MOV eX,OIDOH I RETRY COlJt.lT
0174 382 L6:
0174 E80706 383 CALL PORT_I
0177 EE 384 OUT DX,Al ; RESET CARD
0178 Ee,030b 385 CAll PORT_l
0178 EC 38. IN AL,DX ; C!lEeK STATUS
Ol7t 2402 387 ANIl AL,2 I ERROR BIT
Ol7E 7403 388 JZ R3
0160 E2F2 389 LOOP L.
0182 F9 390 STC
01133 J9l R3:
0183 5A. 392 POP ox , RESTORE REGISTER
0184 59 393 POP CX
0185 Cl 394 RET
395 HD_RESET_l ENDP
39.
:97 DISK_SETUP ENOP
398
399 ,----- INT 19 -----------------------------------------".---------
400
401 1 INTERRUPT 19 BOOT STRAP LOADER
402
403 THE fIXED DISK BIOS REPLACES THE !IlrERRUrT 19
404 BOOT STRAP VECTOR IHTH A POINTER 10 THIS Boor RUUHNE
405 RESET THE DEFAULT DISK ANO DISKETTE PARAMETER VECTOOS
406 THE BOOT BLOCK TO BE READ IN WILL BE ATTEMPrED FROM
407 CYLINDER 0 SECTOR 1 OF THE DEVICE.
408 THE BOOTSTRAP SEQUENCE IS:
409 ;;> ATTEMPT TO LOAD FROM THE DISKETTE INTO THE BOOT
410 LOCATION (0000:7COO) ANO TRAtlSFER cmUROl THERE
411 > If THE DISKETTE FAILS THE FIXED DISK IS TRIED FOR A.
412 VALID BOOTSTRAP BLOCK. A VALID BOOT BLOCK ON THE
413 FIXED DISK CONSISTS OF THE BYTES 055H OAAH AS THE
414 LAST TWO BYTES OF TIlE BLOCK
415 > IF THE ABOVE FAILS CONTROL IS PASSED TO RESIDENT BASIC
41.
417 1----------- --- -------------------------- ------ ------------------
418
0186 419 BOOT_STRAP:
420 ASSUME OS: DUt1MY I ES:OUNMY
0166 28CO 4" SUll AX,AX
0188 8E08 422 MaV OS,AX I ESTABLI511 SEGMENT
423
4Z4 ;----- RESET PARAME1ER VECTORS
4ZS
018A FA. 42. CLI
0188 C7060401E703 427 MaV WORD PTR HF_TBL_VEC. OFFSET FO_TBL
0191 8eOf0601 428 HOV I~ORD PTF! HF _TBl_VEC.Z. CS
0195 C70678000102 429 MOV WORD PTR DISKETTE_PARH, OFFSET DISKETTE_TBl
0198 8COE7... 00 430 MOV HORD PTR DISKETTE_PARM.Z, CS
019F FB 431 srr
432
433 ;----- ATTEMPT BOOTSTRAP FROM DISKETTE
434
DIAD 890300 435 MOV CX,3 I SET RETRY COUNT
01A3 43. HI: ; IPl_SYSTEM
01A3 51 437 PUSH CX I SAVE RETRY COUNT
OlA4 2BOl 438 SUll DX,OX ; DRIVE ZERO
OlA6 28CO 439 SUll AX,AX I RESET THE DISKETTE
01A8 tOl3 440 INT IlH ; FILE 10 CAll
OlAA nOF 441 JC H2 I IF ERJ;!OR. TRY AGAIN
OlAe B80102 442 HOV AX,02:01H I READ IN THE SINGLE SECTOR
443
OlAF 2B02 444 SUB OX,DX
01Bl 8EC2 445 tlOV ES,DX ; ESTABLISH SEGMENT
0183 BB007e 446 HOV BX.OFFSET BOOT_LOCN
447
0186 890100 448 MOV C)(tl I SECTOR 1. TRACK 0
0189 COB 449 INT 13H I FILE 10 CAll
597
0290 598 M1 LABEL WORD I F~CTION TRANSFER TABLE
D29C 3803 59' OW DISK_RESET I OOOH
029[ 4003 .00 DW RETUIHCSTATUS I OOIH
02AO 5603 601 OW DISK_READ I 002:H
02A2 6003 .02 OW DISK_WIBlE I 003H
020'.4 6AD3 .03 ow DISK_VERF I 004H
6"
02t6 C606740000 62. I RESET THE STATUS INDICATOR
02C8 51 6" PUSH CX J SAVE CX
626
627 ;----- CALCULATE THE PORT OFFSET
628
02ec 8AEA. 629 HOV CH,OL J SAVE Dl
02eE 80CAOI 630 OR DL,l
0201 FEeA 631 DEC OL
0203 DOE2 6" SIlL DL,l ; GEtIERATE OFFSET
0205 88167700 633 HOV ; STORE OFFSET
0209 8AD5 634 HOV DL,eH ; RESTORE DL
0208 80E201 63S AHO OL,l
636
OlOE 8105 637 HOV CL,S J SHIFT COUNT
02EO 02E2 638 SHL OL,CL I DRIVE NI..It1BER {O,lI
02E2 OAD6 63. DL,DH I HEAD tU1BER
02E4 88164300 640 NOV CND_BLOCK+l,DL
02E8 59 641 pop ex
02E9 C3 64' RET
644
02EA 64S
02EA 50 646 PUSH AX
02E8 884000 647 NOV AX,DATA
OHE 8ED8 648 HOV OS,AX I ESTABLISH SEGMENT
DHO 58 64. POP AX
DlFl aOFCOI 650 eHP AH,OIH ; RET~N STATUS
OlF4 7503 651 JHZ .4
02f6 E85590 652 JHP RETURN_STATUS
02F9 653 A4:
OlF9 80EA80 654 SUB OL ,80H J CONVERT DRIVE NUMBER TO 0 BASED RANGE
02fC BOfMa 655 eHP OL,MAXJIlE J LEGAL DRIVE TEST
02FF 732F 656 JAE BA~_COMMAND
657
0301 E8C2FF 658
659
660 ; ----- SET UP COMMAND BLOCK
661
0304 FEC9 662 DEC ; SECTORS 0-16 FOR CONTROLLER
0306 C606420000 663 NOV
0308 880E4400 664 MOV CHO_BLOCK+2,CL I SECTOR AND HIGH 2 BITS C'l'LItIDER
OJOF 882E4500 665 NOV CMD_BLoeK+3,CH I CYlINDER
0313 A24600 666 HOV CHO_BLOCK ... 4,AL J INTER LEAVE I BLOCK COUNT
0316 A01600 667 MOV AL,CQtffROl_BYTE ; CONTROL BYTE (STEP OPTION I
0319 A24700 668 HOV CHO_BLOCK+5,AL
ollt SO 669 PUSH AX I SAVE AX
0310 8AC4 670 HOV AL,AH I GET INTO LOW BYTE
031F 32E4 671 XOR Ali,AH ; ZERO HIGli BYTE
0321 DIED 6n SAL AX,1 I *2 FOR TABLE LOOKUP
0323 BBFO 673 MaV SI,AX ; PUT INTO SI FOR BR.A.HCH
0325 302.4.00 674 CMP AX,MIL ; TEST WITHIN RANGE
0328 56 675 pop AX , RESTORE AX
0329 7305 676 JHB BAD_COMMAND
0328 2:EFFA49C02 677 JHP WORD PTR CS: [SI ... OFFSET HI J
0330 678
0330 C606740001 67. DISK_STATUS ,8AO_Cf1O ; COHM.A.t.() ERROR
0335 BOOO 680 AL,O
0385
0385 ... 04400 759 MOV AL,CMO_BLOCK-t, I ZERO OUT SECTOR FIELD
0388 24CO 760 AND Al.llOOOOOOB
038A A24400 761 HOV CI'Il_BLOCK.Z,AL
0380 E9A601 76. JHP NOHA_OP"
763
764 1------------------------------------------------
765 GET PARAMETERS (AH = 8)
766 1------------------------------------------------
767
0390 766 GET_PARM_N LABEL NEAR
0390 769 GET_PARM p,oc FA, J GET DRIVE PARAMETERS
0390 IE 770 PUSH as J SAVE REGISTERS
0391 06 77l PUSH ES
0392 53 772 PUSH BX
773
77' ASSUME DS: DUtfHY
0393 2BtO 775 SUB AX,AX I ESTABLISH ADDRESSING
0395 8E08 776 "OV OS.AX
0397 C41E0401 777 LES BX.HF _TBL_VEe
776 ASSUME 05:0.6.1"
0398 884000 779 MOV AX.DATA
039E 8EDe 760 MOV OS,AX I ESTABLISH SEGNENT
781
03,.1..0 8OEA80 782 SUB Ol.aOH
03A3 80FA08 763 CMP Dl,MAX_FILE ; TEST WITHIN RANGE
OJA6 732F 78. JAE O'
765
OlAS E8tBFF 766 CALL SETUP _A
767
03A6 EBOFO] 768 CALL SW2_0FFS
03AE 7227 769 JC G,
03BO 0308 790 ADO eX,AX
791
03B2 268B07 792 HOV AX,ES:[BX] ; MAX NUt!BER OF CYLIt4)ERS
0385 200200 793 SUB AX.2 I ADJUST FOR O-N
79. ; AND RESERVE LAST TRACK
03B6 8Af8 795 MOV CH,AL
03BA 250a03 796 AtlD AX,0300H I HIGH nlO BITS OF en
03BO OlEB 797 SH' AX,I
OlBF DIE8 796 SH' AX,l
03el oell 799 OR Al,OllH I SECTORS
03e3 8AC8 600 MOV CL,AL
801
03es 268A7702 80. MOV DH,ES:[BXJ[l] ; HEADS
03C9 FEtE 603 DEC DH I O-N RANGE
03te 8.60167500 80. "OV Ol,HF _HUM ; DR IVE COUNT
OleF 2BCO 605 SUB AX.AX
0301 806 G5:
0301 58 607 POP BX ; RESTORE REGISTERS
0302 07 608 POP ES
0303 IF 809 POP os
03D4 CA0200 810 RET
0307 811 64:
0307 C606740007 612 HOV DISK_STATUS ,INITJAIl , OPERATION FAILED
OlOC 6407 8" HOV AH,INIT_FAIL
030E U.CO 81' SUB AL,AL
03EO 2B02 815 SUB OX,OX
03E2 2Be9 816 S,", CX,CX
03E4 F9 8" STC I SET ERROR fLAG
03E5 EBEA 818 JHP OS
819 GET_PARM ENDP
8"
821 1--------------------------------------------------------
822 • INITIALIZE DRIVE CHARACTERISTICS
6"
824 i fIXED DISK PARAMETER TABLE
825
826 I - THE TABLE IS COMPOSED OF A BLOCK DEFINED AS:
827
626 (I WORD) - MAXIt1Ut1 NUMBER Of CYLINDERS
8.9 (1 BYTE) - HAXlt1Ut1 ~ER OF HEADS
630 (1 WORD I - STARTING REDUCED WRITE CURRENT cn
831 (1 WOF1D I - STARTING WRITE PRECOMPENSATION CYl
8" (1 BYTE I - MAXlt1Ut1 ECC OAT A BURST LENGTH
8" (1 BYTE I - CONTROL BYTE (DRIVE STEP OPTION)
.,.
83. BIT
BIT
7 DISABLE DISK-ACCESS RETRIES :
6 DISABLE ECC RETRIES
6"
840
11 BYTE) - TIME OUT VAlUE FOR FORMAT DRIVE
11 BYTE I - TIME OUT VALUE FOR CHECK DRIVE
8"
842
(4 BYTES I
- RESERVED FOR FUTURE USE
84'
84. - TO DYNAMICALLY DEFINE A SET OF PARAMETERS
84. BUIlO A TABLE OF VALUES At-Il PLACE TliE
8" CORRESPOUDIHG VECTOR INTO INTERRUPT 41.
847
8.8 NOTE:
849 THE DEFAULT TABLE 15 VECTORED IN FOR
.80
ow
DB
OW
03060
020
03060
03EC 0000 .81 OW 00000
GlEE 08
OlEF 00
•••
853
oli
DB
O.H
0011
Q3FO DC 884 DB OCH I STAUOARO
03Fl B4 8.5 DB OMH I FORHAT DRIVE
03f, 28 86. DB 028H ; CHECK DRIVE
03f] 00000000 887 D. 0.0,0,0
888
869 1----- DRIVE TYPE 01
690
03F7 7701 8n ow 03750
03F9 08 8" DB OBO
03FA 7701 8" Ow 03750
03FC 0000 8.4 DH 00000
03FE DB 8 •• 08 OBH
03FF 05 8 •• DB O.H
0400 DC 897 DB OCH I STAtlDARD
OttO I 84 8.8 DB OB4H 1 FORHAT DRIVE
0402 28 8 •• DB 028H ; CHECK DRIVE
0403 00000000 .00 DB 0,0,0,0
.01
902 1----- DRIVE TYPE 02
.03
0407 3201 .04 ow 03060
0409 06
04QA 8000
040C 0001
.0.'0'
.07
DB
ow
OW
0.0
Olzeo
02560
040E DB
040F 05 .0.
.08 DB
DB
OBH
B5H
0410 DC
0411 84
"0
.11
08
DB
OtH
064H
I STAt.JDARD
I FORMAT DRIVE
.., 'SH
041E DB '21 DB
041F 05 .22 DB OSH
0420 DC
0421 Bit .,. DB
DB
'CH
OB4H
I STANDARD
I FORMAT DRIVE
0422 28 .25 DB 028H I CHECK DRIVE
0423 00000000 92. D. 0,0.0,0
0427 ...
927
92.
IHIl_DRY PROC NEAR
0427 C60642000C
042C C606430000
0431 E81000
........,
." MOV
MOV
CALL
CMD_BLOCK"O. INIT_DRY_tHD
tHO_BLOCK+l,O
INIT_DRV_R
0434 nOD
...
."
. .7
JC
0436 C60642000C
0438 (6064)0020
...
"6
9.,
MOV
MeV
CHD_BLOCK+D .INlT_DRV_CI'1D
CMD_BlOCK+l.OOlOOOOOB
0440 E80100 .41 CALL INIT_DRY_R
0443 942 INIT_DRY_OUT:
0443 C3 94> RET
944 INIT_DRY ENOP
.45
0444 '4. INIT_DRV..;,R PRoe NEAR
947 ASSUHE ES:COOE
0444 2ACO .46 SUB AL,AL
0446 E81901
0449 7301
0448 C]
...
94.
951
CALL
JHe
RET
COMMA,.,
.1
I ISSUE THE COMMAND
0456 £83403
0459 7257
%.
.5.
9'1
ASSlR1E
CALL
JC
DS:OATA
.,
SW2_DFFS
977
0475 8F0400 976 MOV 01,4
0478 E84700 .7. CAll INIT_DRV_S
0478 7235 '8' JC B'
.61
0470 BF030D 962 MOV 01,3
0480 E83FOD
0483 7220
96'
.64
CALL
Jt .,
IH1T_DRV_S
0485 8F0600
'B'
9Sb MCV 01,6
0486 E83700
0488 7225
987
966
CAll
JC .,
INIT_DRV_S
.91
MOV 01,5
......",
0490 E8HOO CALL IHIT_DRV_S
0493 7210 JC BJ
0490 BroeDO
.....,
•• 5
••8
CALL
JC
MOV
UllT_DRV_S
BJ
1066 1----------------------------------------
1067 SEEK (AH = OCH)
1068 1----------------------------------------
1069
04F2 1070 DISfCSEEK PROC NEAR
04F2 C60642000B 1071 CMO_BlOCK.SEEK_Ctl)
04F7 EB3D 1072 SHORT tl)11A_DPH
1073 ENDP
1074
1075 1-------- ----------------------------------------
1076 READ SECTOR BUFFER IAH = OEH)
1077 ; ------------------------------------------------
1078
04F9 1079
04F9 C60642000E 1080
04FE C606460001 1081 NOV CMD_BlOCK.J-4,l I ONLY ONE BLOCK
0503 8047 1082 HOV
0505 EBlE 1083 JMP
1085
1086 1------------------------------------------------
1087 WRITE SECTOR BUFFER IAH = OFH)
1068 f------------------------------------------------
1069
0507 1090 WR_BUFF PROC NEAR
0507 C60642DCOF 1091
osoe C606460001 1092 MOV CHD_BLOCK+4.1 ; ONLY ONE BLOCK
0511 B048 1093 HOV AL.DMA_WRITE
0513 E630 1094 JMP SHORT OMA_OPN
1095 WR_BUF F EHOP
1096
1097 ;------------------------------------------------
1096 TEST DISK READY (Aft OlOHI =
1099 1-- ----------------------------------------------
1100
OS15 1101
0515 C606420000 1102
OSIA EBIA 1103
1105
1106 i ------------------------------------------------
1107 RECALIBRATE (AH = 011H)
1106 ; ------------------------------------------------
1109
051C 1110 HDISK_RECAl PROC HEAR
OSlC C606420001 1111 MOV CtID_BLOCK .RECAl_CMD
0521 EBl3 1112 JMP SHORT NDMA_OPN
1113 ENDP
1114
1115 ; --------------------------------------------------------
1116 CONTROLLER RAM DIAGNOSTICS IAH = 012HI
111"1 J --------------------------------------------------------
1116
0523 1119 PROC HEAR
0523 C6064200EO 1120 CMD_BlOCK+O ,RAI''-DIAG_CMD
0528 EBOC 1121 JMP SHORT t-IlHA_OPN
1122 ENDP
1123
1124 1------------------------------------------------
1125 DRIVE DIAGNOSTICS (AH = 013H)
1126 J ------------------------------------------------
1127
0524 1126 CHK_DRV PRot NEAR
0524 C6064200E3 1129 HOV CMD_BLOCK+O .CHK_ORV_CMD
052f EB05 1130
1132
1133 i ----------------------------------------------------------
1134 CONTROLLER INTERNAL DIAGNOSTICS I AH = 014H)
1135 ,----------------------------------------------------------
1136
0531 1137 CNTLR_DIAG PROC NEAR
0531 t60642:00£4 1138 MOV CND_BLOCK + O. CHTlR_DIAG_CMD
1139 CHTLR_DIAG EtilP
1140
...
1Z56 G22:
05BC E8CBOO 1257 CALL liD_WAlT_REq
05BF 7220 12:58 JC
05CI E8AD01 1259 CALL PORT_O
QSCit EC 1260 IN AL.DX
OSCS 26884542 1261 HOV ES:HD_ERROR[DI J,AL I STORE AWAY SENSE BYTES
OSC9 47 1262 INC DI
OSC'" E8B101 1263 CAll PORT_l
oseD E2ED 1264 LOOP 022
OSCF E8B800 1265 CAll HV_WAlT_REQ
05D2 720D 1266 JC 0. .
05D4 E89AOl 1267 CAll PORT_O
05D7 EC 1268 IN AL.OX
0508 A802 1269 TEST AL,2
OSDA 740F 1270 JZ STAT_ERR
05DC 1271 SENSE_ABORT:
05DC C6067400FF 1272 HOV DISK_STArus.SEHSE]AIL
05El 1273 &24:
05El F9 1274 STC
05E2 C3 1275 RET
1276 ERROR_CHK Et<lP
1277
05E3 lA06 1278 T_O OW TYPE_O
05E5 2706 1279 T_I OW TYPE_l
05E7 6A06 1280 T_' OW TYPE_2
05E9 7706 1281 T_' DW TYPE_l
1282
05EB 1283 STAT_ERR:
05E8 268AIE4200 I'" MOV BL.ES:HD_ERROR I GET ERROR BYTE
OSFO 8AC3 1285 HOV AL.Sl
05F2 240F I'" .'" AL,OFH
05F4 80E330
OSF72AFF
1287
1288
'SUB
NIl BL,00110000B
SH.BH
; ISOLATE TYPE
072"'E809
onc 80Fcn
1506
1507
1508 W5:
MOV
JMP
CMP
SHORT ...
BL,BYTE P1R ES:[SIHOAHI
AH,CHK_ORV_CHO
I FORHAT DRIVE
AX: AH AL Accumulator
BX: BH BL Base
CX: CH CL Count
DX: DH DL Data
General
Register File
SP I Stack Pointer
BP Base Pointer
~--------------------~
~__________S_I__________~ Sou rce Index
CS I Code Segment
DS Data Segment Segment
I------------------------i
I--__________S_S__________.-, Stac k Seg ment } Register File
ES
L -____________________ ~ Extra Segment
15 7 0
, X , X , X , X , OF , DF 'IF' TF , SF , ZF , X , AF , X , PF , X , CF ,
x = Don't Care
mod Displacement
00 OISP=O*, disp-Iow and disp-high are absent
01 OISP=disp-low sign-extended to 16-bits, disp-high is absent
10 OISP=disp-high: disp-Iow
11 rim is treated as a "reg" field
7 0
logical
.t.r--,:t. FF F FFH
Memory Space
f
sr B }
Code Segment
XXXXOH
"'.::::: ~
DisPlac~me~
15 0 I ......
Offset
I :"
Addre ss r---
,, r--iI
i=
I MSB
15 : 0 I Word {
lSB
Selected
Segment
Register
CS.SS.DS.ES
CS
SS
OS
ES
0000
0000
0000
"'""
0000 I---
. :
BYTE
~
or none I 1---,,
for 1/0. INT II
I
I
I
,,
I
,
I
ill.
T""
7"
,
I
:I Adder
I
I
,
I
.
Yj-
}
Extra Data
Segment
OOOOOH
I T
~
I I
19 0 Physical
I I Address
latch
I 0 0 1 reg 1 1 0
MOV = Move
Register/memory to/from register
11 0 0 0 1 0 d w 1 mod reg r/ m
Immediate to register/memory
11 1 0 0 0 1 1 w 1 mod 0 0 0 r / m data data if w=1 1
Immediate to register
11 0 1 1 w reg data data if w=1 1
Memory to accumulator
11010000wl addr-Iow addr-high
Accumulator to memory
11010001wl addr-Iow addr-high
PUSH = Push
Register /memory
1111111 mod 1 10 rim
Register
I0 1 0 1 0 reg
Segment register
10 0 0 reg 1 0 1
POP = Pop
Register/memory
1100011 1 1 mod 0 0 0 r /m
Reg ister
10 1 0 1 1 reg
Segment register
10 0 0 reg 1
ADD = Add
Register /memory with register to either
I0 0 0 0 0 0 d w I mod reg rIm
Immediate to register/memory
I1 0 0 0 0 0 s w I mod 0 1 0 r /m data data if s:w=01
Immediate to accumulator
10001010wl data data if w=1
INC = Increment
Register /memory
1111111 w I mod 0 0 0 rIm
Register
1 0 1 0 0 0 reg
SUB = Su btract
Register/memory and register to either
10 0 1 0 1 0 d w I mod reg r / m
DEC = Decrement
Register/memory
1111111 w 1 mod 0 0 1 r /m
Register
1 0 1 0 0 1 reg
CMP = Compare
Register/memory and register
10 0 1 1 1 0 d w 1 mod reg r/ m
logic
NOT = Invert
11 1 1 1 0 1 1 w mod 0 1 0 rim
AND = And
Registerlmemory and register to either
I0 0 1 0 0 0 d w 1 mod reg rim
Immediate to registerlmemory
11 0 0 0 0 0 0 w 1 mod o 0 rim data data if w=1
Immediate to accumulator
10010010w data data if w=1
OR = OR
Register/memory and register to either
10 a a a 1 a d w I mod reg rim
Immediate to register/memory
11 a a a a a a w I mod a a 1 rim data data if w=1
Immediate to accumulator
10000110wl data data if w=1
XOR = Exclusive or
Register/memory and register to either
Ia a 1 1 a a d w I mod reg r /m
Immediate to register/memory
11 a a a a a a w I mod 1 1 a r /m data data if w=1
Immediate to accumulator
10 a 110 10 w data data if w=1
String Manipulation
REP = Repeat
11 1 1 1 0 01 z
Control Transfer
CALL = Call
Direct within segment
11 1 1 0 1 0 0 0 1 disp-Iow disp-high
Direct intersegment
110011010 offset-low offset-high
seg-Iow seg-high
Indirect intersegment
11111111 mod 0 1 1 rim
Direct intersegment
111101010 offset-low offset-high
seg-Iow seg-high
Indirect intersegment
11111111 mod 1 0 1 rim
Intersegment
1110010111
JO =Jump on overflow
I 0 1 1 1 0 0 0 oI disp
JS =Jump on sign
10 1 1 1 1 0 0 oI disp
'''Above'' and "below" refer to the relation between two unsigned values, while
"greater" and "less" refer to the relation between two signed values.
INT = Interrupt
Type specified
11 1 0 0 1 1 0 1 type
Type 3
11 10011001
Footnotes:
if d =1 then "to"; if d =a then "from"
if w =1 then word instruction; if w =a then byte instruction
if s:w = 01 then 16 bits of immediate data from the operand
if s:w = 11 then an immediate data byte is sign extended to form the 16-bit operand
if v = a then "count" = 1; if v =1 then "count" in (Cl)
x = don't care
z is used for some string primitives to compare with ZF FLAG
AL = 8-bit accumulator
AX = 16-bit accumulator
CX = Count register
DS = Data segment
DX = Variable port register
ES = Extra segment
Above/ below refers to unsig ned value
Greater = more positive;
Less = less positive (more negative) signed values
LO 8 9 A B C D E F
HI
0 OR OR OR OR OR PUSH
b,f,r/m w,f,r/m b,t,r/m w,t,r/m b,i w,i CS
1 SBB SBB SSB SBB SBB SBB PUSH POP
b,f,r/m w,f,r 1m b,t,r 1m w,t,r/m b,i w,i DS DS
2 SUB SUB SUB SUB SUB SUB SEG= DAS
b,f,r/m w,f,r/m b,t,r/m w,t,r/m b,i w,i CS
3 CMP CMP CMP CMP CMP CMP SEG= AAS
b,f,r/m w,f,r/m b,t,r/m w,t,r/m b,i w,i CS
4 DEC DEC DEC DEC DEC DEC DEC DEC
AX CX DX BX SP BP SI DI
5 POP POP POP POP POP POP POP POP
AX CX DX BX SP BP SI DI
6
where:
modor/m 000 001 010 011 100 101 110 111
Immed ADD OR ADC SBB AND SUB XOR CMP
Shift ROL ROR RCL RCR SHLISAL SHR - SAR
Grp 1 TEST - NOT NEG MUL IMUL DIV IDIV
Grp 2 INC DEC CALL CALL JMP JMP PUSH -
id I,id id I,id
03 3 •• Ctrl C
I
Black
GI
Cyan
Normal
Normal
04 4
+ Ctrl D Black Red Normal
05 ~ Black Magenta No
06
07
08
6
8
•
• Ctrl G
Ctrl H,
Black
Black
Black
Brown
Light Grey
Dark Grey
Normal
Normal
Non-Display
Backspace,
Shift
Backspace
15
16
17
21
22
23
-
~
~ Ctrl U
Ctrl V
Ctrl W
Blue
Blue
Magenta
Brown
Light Grey
Normal
Normal
Normal
Color/Graphics IBM
Value As Characters Monitor Adapter Monochrome
Display
Hex Dec Symbol Keystrokes Modes Background Foreground Adapter
- Esc, Shift
Esc, Ctrl
Esc
22 34
.. .. Shift Green Green Normal
Color/Graphics IBM
Value As Characters Monitor Adapter
Monochrome
Display
Hex Dec Symbol Keystrokes Modes Background Foreground Adapter
Color/Graphics IBM
Value As Characters Monitor Adapter Monochrome
Display
Hex Dec Symbol Keystrokes Modes Background Foreground Adapter
7E 126 ~ ~
Shift White Yellow High Intensity
8B 139 'I Alt 139 Note 6 Black Light Cyan High Intensity
B2 178
I Alt 178 Note 6 Cyan Green Normal
B5
B6
181
==
182 ----l
Alt 181
Alt 182
Note 6
Note 6
Cyan
Cyan
Magenta
Brown
Normal
Normal
Color / GraphicsIBM
Value As Characters Monitor Adapter
Monochrome
Display
Hex Dec Symbol Keystrokes Modes Background Foreground Adapter
B7 183
--n Alt 183 Note 6 Cyan Light Grey Normal
I Underline
BD 189
~ Alt 189 Note 6 Cyan Light
Magenta
High Intensity
BE 190
P Alt 190 Note 6 Cyan Yellow High Intensity
C3 195
~ Alt 195 Note 6 Red Cyan Normal
C6 198
== Alt 198 Note 6 Red Brown Normal
C8
C9
200
201
'-== Alt 200
Alt 201
Note 6
Note 6
Red
Red
Dark Grey
Light Blue
High Intensity
High Intensity
---.J L -
Ii Underline
CE 206
~~ Alt 206 Note 6 Red Yellow High Intensity
Color/Graphics IBM
Value As Characters Monochrome
Monitor Adapter
Display
Hex IDec Symbol '~y~"v~~~ Modes Background Foreground Adapter
1209 6 Mag' i
E8 232 1> Alt 232 Note 6 Yellow Dark Grey High Intensity
F4 244
r Alt 244 Note 6 White Red Normal
F9 249
• Alt 249 Note 6 White Light Blue High Intensity
Underline
FE
FF
254
255
•
BLANK
Alt 254
Alt 255
Note 6
Note 6
White
White
Yellow
White
High Intensity
High Intensity
NOTE 6 The 3 digits after the Alt key must be typed from
the numeric key pad (keys 71-73, 75-77, 79-82).
Character codes 000 through 255 can be entered in
this fashion. (With Caps Lock activated, Character
codes 97 through 122 will display upper case
rather than lower case alphabetic characters.)
DECIMAL
lv, . 0 16 32 48 64 80 96 112
• I~~~I~AL 0 1 2 3 4 5 6 7
p , P
IVALUE
0 0 BLANK
(NULL) ~
BLANK
(SPACE)
0 @
1 1 g ...... .I 1 A Q a q
2
3
2
3 -• " !
..
I I
=#=
2
3
B
C
R b r
S c s
4 4
+ err $ 4 D T d t
5 5 ~ § <Yo 5 E U e u
6
7
6
7
•-
• !
&
,
6
7
F
G
V f v
W g W
8 8 i ( 8 H X h x
•
9 9 0 1 ) 9 I Y 1. y
•
10 A --+
* • J Z J z
11 B cf ....- + , •
K [ k {
12 C ~ L , < L "'- I
I
I
13 0 ) ...-.. - - M ] m }
14 E ~ ... • > N 1\ n ~
15 F -¢; ... / ?
• 0 - 0 L:,.
DECIMAL
VALUE
•
•
HEXA
~!~luMtL
128 144 160 176 192 208 224 240
8 9 A B C 0 E F
, ..
0 0 <; E a, ... """"
"
"
I ex ---
1 1 U ce 1 ~~~
••
, ,
(J +
-
2 2 e IE 0, I II r-' >
-
3 3
1\
a 01\ u - lL 1T -<
4 4 a,•• 0,•• n -
~
b ~ r
5 5 a 0 N= F a J
..
a u, a y
0 1\
6 6 -
---t ~ r- -
7 7 ~ 0 T ,......",.,
U 11 ,......",.,
1\ ••
e y•• G
0
Q
0
8 8 ~
9 9 e,•• 0 I d - e •
10 A
••
e U -, f-L n •
~ :1
••
11 B 1 ¢ r--
0 -r
12 c 1, £ ~ d 00 n
13 0
1 ¥ ,U
0
cJ> 2
14 E A Pt « bd ~ E I
15 F A f' » n n BLANK
'FF'
p
~
§~~~
o
....
'0
........
Q)
Q)
..r::.
en
~
,.,.
I~~ I;)
~ ~I~ <
~ §£:i oc N
:;
I~ Ii ~I:::l Ii ~ I; ~
[il !
~
'S ~
~ ;
~
~I~I
Ii 1>l1;;;1~lg ::;: I~ ::l
Ii
;:j
'S
[il
Ii .. . .:
~
.: ~
Ii
~ §:§: ;;: ;;: - §:ff '" -
" " ::::.::::.::::.::::. - §[
" §[
ii i
~
g
;i~~ II ~~B~5 ~ I~ ~ § ~flE~~eE
IIIIII
'\
'-- '\
I~
'--
'\
'\ ~
!l ~ .'\
- = = = "- ~
~~
.s. iii
; "-
~J ~~ ~\~ '1: ~ '1: "-
'\
........o
o
'\
~~5!l~ I -
IE
1"-1>--
1"-
M
...
'" "iE-
QI
'\
~l=~
zl<: QI
..c:
"
~;:-
>---
'\
'\
'\
II ~
...
"'C
1["'
~
I" £
It"'
l- ~
~
I"
~
L---- I"
I"
-- ....
CD
- -- - --
~",~l'il'~:e>o
J
>---
= "
~["' ~ l' ~ ; ~ ~ >0]
-- --
g[",~l'~l'~:e >0
:~I:lm
---l-=~
",~l' ~l' ~:e >0 1
~ = c
~ ~ Ci
l<:~
~~
_ ~cmu ::J~~~
"~cmu ~
~ 5~~ =oemu ~ ~~~
_
COlI u
= =
~N
- ~l~ -N "lj;I- _
4~= NI~I
=T~ =
N
~
~
=1
I-
~ I
co
~
<0 .... 01
!! S ~ ~s
i
~=
ecce
Ii Cc C
II; ;!
...o
....o
~~~<
~cc\:!;\~\;I~ ""...
<Il
<Il
c::>c:>c:::>c:::.c::>==<=> .J:
§~cccccccd~ ~
---- ...
"'0
~ I~;"~ ~ ro;~~I;~~I;;;~
~I~~:
-
c:;> _ <'? c:;> O_N<":> .... " ' l Q .... CIl
~~ ~ ~~ ~><~~SSSS o
III
'" ...E
<Il
en
>
en
~
~
...
co
II 111111
if 5
L
~
z~ o
.-
~~
....o
~
...
Ll'l
I
r§=~a;:!ai§:;
; Q)
Q)
.J::.
rt
I en
r - ~
_x
['l
:~;;:~~::~~<~~:i::i~~ ['l
~ ~ ~ ~
~~~['l -- ~-
"-------L- t -
.....
~WJ~~
~[~»~i~ ~~
cc<cc<c""c61~
J,.,
~
~~~~~>~~
~
- ' « « « < ... i<!i~
~I
~~I~~
~=====~==
;;;!;~ ~l
««~«CClt:lS
::::l
~I
~
....J
-~ -~
««
~
S
ICO
C<:
C
I
,.~~
1i'ilrlllll~I~Ii'l 5 I'Ti
~:;C~::l;::!:E~:.o:
::!l!"";,~::l;
gc~g;,g:g~::;
~;
Ii
'i-~~1!:i
Ii
=:=:=:=:=:=:=:=: §§:§:§:ffi2 =:=:~=:=:=:~~ =:=:=:=:=:=::=:=:
" ---- E
-6 z.n
~ ~~ Ern
:! !r;:::~C---;;
..:;;-n- - - - - - - - " - ,
~! ""n
II !2" :~~:i;1~S
I! Ii I~e
~:;;.:c:!:t:!
~
iii
1111
~
--
co
.-
IIIIIII I111I1
~ ~ ~ II
Ei 'l
~~
!E ..,o~o
i ~
~
I ""
[]
""'"
~ o~
:i& 0 ....
0-
.......
0
c
~,..~
~~s
:=
...
CO
Q)
Q)
~ ..c:
ig~
ill 3I:ffiz ~
~~~
...ca
"C
0
III
E
;;; ...
Q)
en
>
(I)
::c:
~
~
...
CO
111111
~ I~
~ ~
~ ~
1~1~1~:!:i !H~ll!l~Hl~~ =
:=
i! I;
§: ;f i£ !1'f!2§:!!iei£~::2!2:e§:§: §:
'"
y~ "
- ~I~, ;~~
~~
I'
e--
~
~~,
I'
"I ~~
~I~~
"'
§ ~g~~gg",~~" gldSI~~';:;
,,~,,=,,~!"~ ~'r
o U ~ :1 f,1~
~ ~i~4-
---
I
":~l
~
,II!I
0
,~ r¥
-
f'
;;;
~ ~ .,..oc...J ~
dJ
if--'S!:c> I'
"
c J~J; ~f ~
~
- ~
is - !e
r §~
~
.19 - d
-i -"
~ 0
~
~ ~
c ~ I'
is ~ U
i~~~i~I~~ ~
~:nunu
~
c
~~
~ """"'''<t= ~
~IJJ11~~
'?
c
.;
-
f»»»>
-N-~-~~i J,,~
;;;
~~
-.. ,%
--' ""co::c...::",,«clC:;;~
~~~c:::; gj~;::!;~ ~
:!~~:::"<t
~I:ie~~g;;~~~
~g
j!ii'itiH'~1i'H~ ~ii' ~iiliil~
I
c
~
N
-
No-"", ' " a:>
- "-LL
1ii!1!i11l ii!" ~ g;;~~;g~~~ ~ ~ ~
-
Tl,. ~ :'"
~
~- - ----
~I HUbHtl
~I~=ttrrt
~U o-~ lJlllL ~..:>- ~~!~~!~~
I'
~="
--
A31 B24
[II AD J4 IIIQ4 [1) 1/0 CARD
'3D B23 FACES
[1) AI "05 [II
.29 J5 B22
....
111 02 O2B B21 IIIQ6 [II
[II A3 IROl [II 831 A31
A27
.."
[II JI
III '28 15 CONNECTORS TOTAL]
025 BIB
..
[II 01101 [41
A24 BOG r---------PWRGDDD II]
111 OR02 [41
.23 B16
[II UIIQ3 [41
A22 PI
[1) 'B .21 POWER
[II AI.
.20 CONN.
[1) All Al9 Ir:I
[II POWER GOOD
[11 '"
Al3
AlB
----m- KEY
[1) .14 ----m- +12VDC
---m-
.
111 Al5 -12VDC
[II Al6
-------mI
[1)
[II
[II
A17
• 18
Al9
------m'
--AI "
B141 -svnc
[1) iOJi --ai3
[II lOW +5vnc
[II MEMII -----ail
[1) MEMW BI1 ~J
P2
[51 CLK B201
----alii
~
[II .sc --m
[41 TIC .11
....
!JQ
(')
[51
[21 '" BI
AESETDRV--
BI9
[51
---...
DACKO
o [41 O.CKI
----ai'7
JJ. [41
[41
DAm
DACK3
B15
9
rn
~.O~[L CAPS ARE 8.2~ TANTALUM ON THIS PACE.
- I
a X1pu;}ddV
S' S'
iil'~---;;;
e:!!£ !£
o
....o
......
CIl
CIl
.l:
~
...
"t:I
'"o
!Xl
...E
CIl
~
~
!.C
LO
N
-..
;g
!
~
l[
In
!~
I
~~
"
0-12 Logic Diagrams
I~ Ii
"
~4~
~ ~ d
! iii
....o
....o
...
M
C1)
C1)
.I:
CI)
"C
....
ctl
o
co
...E
C1)
£
~
<0
It)
N
"'"'-
~
!£!£ §:
" e~ §: ~===
" -- ;[
- §:~ ;[
111111111111111111
=:=:=:===:=:E: i2fitifififi
C::;
:::::::==f:l:f ::::::::E==
i
!! ---- E
J~
i§ ill
~
J J
~ f;j ~
I ~ EgnX
~Irl
I~
~ ""6£" I ~ i~ .."X I
~'~
..
;:; iii 0>"
I
g~ ~ ,~m'
~I~
N" .."X
I !
! It" I --~ ...; .".Q LSnX
I
I :: ; agnX
I
N
""£t" ;;5 g
I "". I
N
N
_
= tt. I ~ J ;; ~I~ "OX IX......
090X
,I
~I~ ~
~_St'n lX)lt9WVII . ;;;,g
g
;; "r::8~lii:C:!:I::I:!::::; emu"" ....... c:I:a::- ~ ~ EH5~lii":!:I::I:!::::;
~ rr- I. ill];
il
.!. I
-~
1,~ .
/'
I~ lii :!:I
:I:::E lEa:
:!:::----:;-
lEE IE
- ~~. ~N ~ ~ I~
I!- ---- i
c
~~
3!~~
iii
- --
"n
f--
11= ::l
.~
~ =
~-~ ~ =5
::l:ll:;l:'!:>:: :Il:;l:'!:>::
lI/~
1:1= c
.... c c e c c e ceCil'" ~N=§~=:i:l ~~==!I..., § ~""~::l ::u~::Je"" ....
N
- - --- _~,.N
~
"" -"4,. ~~ ~
IlEIHI:!!i!l!iSli
e~ ~::c:!~;::~ :;~~S~;;:C;~
1~15
II
::::=: :::=:::!2:
~
i
!'!
Ii
!'! §:~
IIIIIII IIIIII
iii
! - ~ 0:
!:i 'l
~~
~.::0
.... ~o 0
!
~
I
...
C
:=
[]
,....,
~ O~~
ON
~
0
CO
....
G)
G)
..c
~.-~
c ~!l8 ~
~
...
n~
"'C
ill
(Q
0
III
E
~~
....
G)
'"
>
en
" ~
CO
It)
N
.......
.;t
CO
111111
rl;OI!l,.:cg"IlIB1!I!ii!!~ ~
I~
! ! ~ ......... ,... ... ..c ............
:s 1=~ ~
;
~ =
;0 1 12 !!ifi2!!i!i!!!!:!i!!!i2:!!!!i!i!! ;0 ..
o....
I ....o
;; 0')
....
Q.l
Q.l
.r:.
en
f"L--======t:;1_." "0
....
C'CS
o
§~ al
Q .... a E
~
'">
en
~
co
LO
--(b
N
£-
~
CO
It)
--;:z;
N
~;lS
;)
;;;;:;:!
"~ 1
N
C$~ ~
....o
f-11"1
~~ '" ~
D:!
"!
Q)
0:
If : "
:!
~
*
iii ~
c.
I
.
"'C
ca
o
..c
>-
Q)
~
13
if
~
~ 5"
~
~
i!l
~
I~~~§ : ~I'
, -)
N
....
o
N
....<I>
<I>
.r:.
i:IIOI ~
"g <I>
0..
~
I
"g ...
"'C
«I
c
~
o
if .c
>
<I>
~
!ol
~
c
i~
~:i
W
• >--11.
§~
~ ~ ~
! ! r r i !1
~ ~ ~ ~ ~ ~
s
i!.
i
~
'"
'f
g
'f
'0
tJ 1 I
c
~~
.-
...
Q)
:= Q)
.c::
~ ~ ~
('oj
Q)
0.
~ ~ ~ ~
"::l II;; "::l := I
"
I::> Ii <
:=1"1 ")::L
'-----+-------1IH1.
~f tru ......o
C1>
~r t:1tJ .s::.
C1>
~
...
"'C
~r~ CO
o
al
r::
f.-it" o
';;;
~~ c:
l:l
x
w
J
I
I
I
I
I
'§';5
~.
...
Ql
"C
r::
Ql
+"
X
r------,'"
W
:
1
"'=
~: I,
1 ~
1 I,
L
1 __ = '"
r ----..,-
: O__---"'N'---..jf+f-t-j_l_<
: ....._-I'_"-++H-1~
.1 ~----i",-'--1f+H
1
: .....~-J"--+-I~
: ,~
rB" L ____ J
.- ...... ~~"
I
2i~
g1"ii<i;;;;;;;;i<i;;;i<io;;;~
~~~i~~~~~i
. .·"'T
~;::";;;'=MM;;;M== Me;;
~::2: ;;:OM'" M.., M'
~
~ I~I§I~ ~I~~I~ ; ~
:E~~=~:: ::~.5 In~[~ I~ Id ~~~~~~
I
:~ I
~: I~
~ ---'"
:~
: I."
~,I ~
I_
-...
~ - - "~'-tt++H
I +---f''-Hf-H~ M
~! 1~'-H-t1 o
N
:~
L~ 111
111
.c:
en
...
111
r - ,""
"...c:
111
I I X
~ :~ W
~ __ J
12&
'111
A06
.04
03
04
D5
(SHTII
(SHTII
(SHTII
(SNT ~ 1004 A03 DB (SHTII
12'
f_.
(SH ~ lROS 123 A02 D1 (SHTII
(SH ~ 122 B-SHELL TYPE
lROB
,...
(SH ~ IRQ7 121 131 AD (SHTll CONIECTOR
A30 AI (SNTII
... u
A2 (SHTI) H ~ ED7 (8HT2.11
n (SHT ~ DRQI BIB A2t1
13 (SHT II
(SHT II
~ '1111 (S'72.11
tj
(SHT ij
(SHT ~
I1R02
DR03
B11B
B"
121
127
.2&
(SHT I)
(8IITI)
(SHTII
(SHTII
(BHTII
!AlB
EAI8
!A11
~
7
"
22
~
ED5
ED4
ISHT2.1J
(SHT 2.11
'2& A6 (SHTII (SHTI) EA16 8 Y '03 (SHT 11
12. AI (S.TII )SHT II £A15 11 12 '02 (SHT I)
.23 AI (SHTII (SHT II EAI4 ~ a EDI (8KT2.1)
i' ...
.22
121
A20
AI
'ID
.11
(SHTII
(SHTII
(SHTII
(SHTI,
(SHTII
(SHT II
!A13
Ell2
!All
~
U
11
II
~
'1111
E1R02
(SHTII
(SNT ~
,..
1211 Al9 AI! (SHTII (SHTI) !AID n a E1R03 (SNT~
rn Al8 A13 (SHTI' (SHT II !A9 u ~ E1R04 (SH72)
A17 A14 )SNT IT (SHTII AD M !lR05 (SHT~
AI. Al5 (SNT 11 (8HT1) EA1 U I EIROB ISIIT2I
AI.
,.. .•
A15 (SHT~ )SHT I) EA. U a !lR07 (SHT2)
A14 A17 (SHT~ (SHT1) !A5 I
801
810
831
Al3
Al2
'"
...
AlB
Al9
(SHT~
(SHT~
)SHTII
(SHTII
)SHT I)
(SHTII
(SHT II
EA3
EA2
EAI
""
"15 2&
23
EI/OCHRDYISNT!)
I1irniCI{ (SHT ~
ERESERVEG ,SHT21
E ORO! (SHT 21
BI'
813
ilif
iiiW
(SHTII
(SHT~
(SH711 EAO
• H
2 'OR02
'0103
(SNT~
(SHT 2)
812 ii!MlI (SNT121 (SHT 11 !Imli ID
mm !1111 (SNT~
-
811 MEMW (SNT~ (SHT~ 11
(SHT~ mm 18 "MIL' (SNT 2)
120 Cll( (SHT~ (SHT~ EOACK3 »
127 TIC (SHTII ISHT~ rnMii -~
8112 RESET (SHT~ (SHT2.11 !1m M
(SH12.11 2&
819 mKIi )SHT2.11 (SHT~ IiDIi U
Bl7 ffiiIT (SHT ij (SHTII EALE 2&
82& DOCK2 )SHT~ (SH7~ EeLK 5 8 lM'M.lH 'X'.(SHTII
815 nm )SHT~ (SHTI) ET/C U AI
828 .LE (SHTI) (SHTij nmi' H Y
9
CARD EDGE TAIS 1111
II
D2
~ ~COClClClC"::::"'><::>~
~+J-.I.-j..j....I~~
~:~-,' M
....
......
o
C1>
C1>
..I:
en
...
"'C
ca
U
...
C1>
>
"(j3
t.l
C1>
CC
II
8~~
~
_:;i
-
0
~i ~ ~
...
Q)
>
"a:;
tJ
Q)
a:
~
.;
~Olct
-
{" 'I'
-
e ct ; a ct --
"" " " "
D- 30 Logic Diagrams
. "'"
::"
".::"
'n::"
L..·::"
'~::~
",....,
rU -,
~ I
l____~..;
,",it! !ill
~
'"
.. ,~
! "
...
CI)
>
.~
..
CI)
a:
"~~ F~f&
~I'
" I
~
~
•• ,-3r---
I. OJ ..... 01
AIIOI·2414
~
.."'
13
.r--- !2. lIIl
"'
" .. 5r---
~ ~
11 .. .r---
~
DC .Am H•
H5
~ ~
7..--
ID H5
CM
. .,..-..
~
De Z1I3
H6
H
~ ~
ar---
H7
HI
~
IDr- DI Z1I4
HI
,,..-.. H
" 1M
~ ~
" " ATD lID
H25C·l
lII7
SOL ID
••ow
CM I _
*
I
•
iQ
~8V+ Dl5
IS2015K
11111
L----: SOL
R4
11
~ ~c:Lg:L~ "
Vee
1~· ... .,
555 V., ED 15
IIA,
, 15K 0.0111 II
"
" 11
CIIS 7 HEAD
TRIllER
RI res • v, W le.
T VT •
BIStr- .
17
r' if 1~II r~
100 *~DI'
17 R lO
-
0.0111
-f
CM
'5
.. 3rf"D+:Oll
DADBOI
,~
.
C.
H12-8 I I A "
.A {vID
er+* :
19 .. .~ ~II
~ 5rf-*
I
I
I
C. "
.C
5~ 1'0"
I lO5
Clit: 23
7~
'-; ,1 !... ...I c. D ,.
AD ~13
n
85277H
13
CI5
III
...ow
HI
UK Oil +C.
O.Olp 2
....,,,
DID
AUDl-24
RI'
I!II
5W
IC'
eM 20 132
1I.2-3~ ...... 3 ' D.'
art* ,,
LFA 25
LF A 01.
.~ LFI
• Ii~ ,,
LF "015 I
LF C
.~ (016 -'" ., "'l lD. ssm.
LFe "
014
,1 L :J
Clii ID LF 0
,~ 1"'017 AUDI.2.]
LFO
"-
~
....,,, ILF I•
'"'W
B2D 1.21 O!ll f~111 Dl3
,.
3
...
ILF
....,..,.~
17430
15
11
17
CMU
"~
G,
I,
el15 111 " "'---".1,....,c""l- -
'5
mE=~"t=================================:
eli 13
11 ala om II
I lEo oft 20
eM 18 OPE 18
Printer (Sheet 1 of 2)
0-32 Logic Diagrams
:: !O\ /~ -\
Al 094
llLIL
R38
2.2K
8 184B1
:~""'~'3
7C 2 7C
7C
c~.r- 2E
1500P I.
~tl~lO~C" '~E
T 4700P
~
8
137 38 21 22 23, 24 25 2fi 27 28
14J
15 CNS
PeD PCI PAD 1 2 3 4 5 6 7 PC2 pea
16
11
18BI BI55
'5V !}N4
RMfi.9 13
12J
C12 IB CN5
101' 22
.......:.:40'-_ _...,20 21
~r
&7
v.. v.. 6 S
.......,.tXI
I"
CRI C R26 -2
10K
6MHZ~ RIO
M 1.2K 10 CN4
X2 13
P17~,~~-4~~8--<r~ /~;t-t-t-~~ri-+-----ri-t-t-t~+-t-~ri-t--------------------------_+4-~---------------, 78
1m 101'
INT 10':::----.";;--0::---,,,...""0"',
P27 38
f...-
13 r-....>7E=----'--"--+_--'
7B . 11
12
PIS 32 Vl2 IS 78
PI' ~33:_-------------l 13
P2' ~~7~------------_4_4-+_-----+_~~~~_4_4_+_+~---------J 3C L-_ _ _ _ _ ~7~~~
C6~8----'6-----------o 14
TO " r-----------...:.'~'
-,.......>'~°___ir-------, 6 68 10
DBD Vee VIS L---~V" .0 15
r----1-.----------_t-+_---t1~-~~rlr1_t_t_t_t_t----_t~----------+_+_._----+-----~~-~~--------1_e----1__t1_~1_------~:~: I L._ _ _ _ _ ...:.........:.:......_--;:;;;;-;;:=====:;;;;::===:::g
r_---1_+-t~._------r_~--_+_t~~~--4~_t+_~r_---~+_~r.~-----_i_+~~+_-~~---_+t+-~_+~~-----~_+_+-~_i44~~-----~'~6 :
IS 2
L_____________~--Q~S~~R~36~OI6~ rT~O'-2-S~-----OSS~
3.3K ~68 1
Al015n~
HEAOTRIGGER
FP
ilJ
16
CN5
"18 5 7D
CN4
19 ' PIO 27 CRB
9 ~.!!.8--~--------------()CRA 22
r_--_+_r+_~_t~+_---+__r---+_r+_~_+_r+_--~~---_+_rt_~_+_rt_---_r+_~~-~_+_rt_~_++4-~_++_+-~--~_+4_~~_i~~~+_-----~8 ~ Tl~~_~O
~~6rlf---------------<>CR8 19
10 WR
~'»O'"--f_--------------<l CRC
'S
f
'S 'S
i
R3I P11 28 CRO
}-
"
24'~_L.9:.l.:':J0 T ~~'0r--!0
1.2K
'S S
(lCI
'S 9 1011 13 14 IS 16" 21 '24 910" 13 14 IS 16" 21 16C1..:.:"_--'-
t.:.':.J1L:;13:J.:.14='S;J..:; i,,21'-, 945121311 9 4 512~3 357 91113 1113351 9 1981
8041 ~~8;-f---------------OCRO
_~~O
~f ~
,VCCDO 1 2 3 4 5 6 7
8~9 Vee Vpp 20 All CK A 0 COl'" CK ABC 0 1 '01 2 3 4 !I 6 05 IJ6 UI 2 3 4
s~ 5~
Vee 00 I 2 3 4 5 6 7 All
8039 24 GND
O.Olp 233U2716 1181 #2 DE B.Ol 12 21161301112 DE p20 O.Olp 12 GND 27161281 DE l~~~5 ClR
'I l~2~~5 ClR lS361 i3AI lS367 14AI GI p.' P13 30 10 H32 12
~').4_--',f~---......!..,11'o.J
12 AD 1 2 3 4 5 6 7 8 9 IDes p GND AD 1 2 3 4 ~ 6 7 B 9 1011 AD I 2 3 4 5 6 7 0 9 10 Ce QA QBQC60f 6A 68QC60 Gill 2 J 4 5 6112 6215611234 8:- f:~t ~7~5~E~!.!,0+----------------<: BOC,I,m",
':" 8 7 6 5 4 3 2 I 23 22 9 18 ':" B 1 6 5 4 J 2 123221918 liliTsls 43212322,918 2 710 IS /2 7 lOIS 2 4 5 10 12 !31 ~ ISY 12 14 2 4 6 10
15 +5
29
~VOO PI2 '" 7D~ 0132 Columns 20 CN4
R18 Pl4 31 lFA " ~';';'"--+---------------<llF8
~
12K El070
~PROG 9 13 ~;;-r_------------<: m
P20~2~1------------------~~~~~4-~~----~__------------~4_.~+_+_--------------------~ ~ss IF'
70 3 8 12
PIS 32
i>.,.--~--------------c lFC
21
22
23
!~
24
'O/O/0/SW2
4 2 1 '"L3_ _ _+-H-+-~
I
'S
~ 3 7E
4
,4 70
0-"2-4--------------0lFO 10
~tn~'5 •~4
9
....' ) .... RMS
,.-<t-- Vffii PSEN 2C HM2 3E 2C LF 60 6 3.:K 5E
R17 6 5 10K x7 Pl6 33 lIIlIII $lt():-;,,---+-------------<l SlF
~'0
1.2K 5 6 CNS
P24 35
MASK
ROM
RI6 ~ PROG
1.2K'--- ss Xlm~2
C c~;~:J4 6MHz H28
rC....
l':" Jl---I EA
X2 3
CIS -= 114 I R39
ISK
r--w"""
Tl 39 lOP 11
3E "
13
10K UK .L.
~il8
:~:
, H40
10K
I!
':"
R43,.".......
4.7K 1
70~~'------------------------~~IOa 3! ...."'""'...... e-"'""'..........--;;:;::-~-o PT8
T ea3 R23 "
,iDOl ~
vPE 18
I 113S1.2K 37
P26
ii 4 4 ii CN4
~
R15 I
~3E~T:=---~T--'~·2~K--~0~1-------------------------~L_-_-_-_-_-_-_-_++:.J
4 3C 3 3 ____________________________ ~~
r
~CIO~!lK
Jl~OP L-________________________________________________________ ~~----
"2
SE -----------------oi
-::: 1127
1S'
"
vxI
NOPAPEII ON IIOY DNIII' lFSW FFSW 8UZZER +12 Gl
\~~lP~~_;lI~NE~l~P~l~P----~II~.,~'~W------------------------------------~1
PURPLE GRAY WHiff YIIIOW BlUE ORANGE liED OROWN BLACK
Printer (Sheet 2 of 2) Logic Diagrams D-33/D-34
....
....'0...
Q)
Q)
.c
(I)
...
$
.:
Q:
~ ~ ~~~
en = . . \D'"
}::l'S.
_ ilHli :0 i;il
-.~
'"
-. ~ If
'"
~
= ~ ~ ~ ~ 11
~
~
><l
;;;
;!
~
><l
~
N
....0
....0
...
Of'"
Q)
Q)
..c:
~
...
...c-
Q)
eo
1il "C
<C
>
eo
0..
'"
C
Q)
E
~
..c:
0
0
c:
0
2:
lHl iii;;;",
'~"
~~
~.r-E
~~ . ~
W"
~I~I~I=I ~I~I~I=I
I€€€€;; ~ I ~€€€~
--
~=~~
~
V ~ I -'7;i~tF ~€€€
;;
s ~
l::l
~1~"~<:l:::::1::1:;:::
~
V " ;;
V '1.i1!>1:l u
~ ~:c~~:::~~<~~I~I~ ~
<'-+-
~ !ttl:tl-mr~
~ ~ ~tS= Ie'-- ....o
....o
~ VJ 1;;1 N
....
CIl
It~~
CIl
.c
~
...
~;~; ~j;~ (~
CIl
-~~-~~- _N_~~_~~~
§
ll-T
;
-~~t
I·
~~~~ I;~i is
E
CIl
~ ;::! ...o
.c
t.l
o
c:
o
2
~Il-~-~=~~ ~ ~ :;;l'l~ ~~5i~
!~~~
~c~~:::~~:c~~~
:E:E:E:E:E:E:E:E:E::E; ~~:1~
i g;;~g~:g:g::;:;
ill
~ ...I~I~Ir5~~ ~
a
~~~~gJg;n;;:;~ ;:!;~ gj""~ - " ,
L---1I'
~i roo
!>~~
. -1~C=f=
'f
== = = iO iO iO " "
- -
'" - '" - '" - - -
'"
~ '" ~;;
'" -
'" '" '"
~
I
00
r J1o-~---+--~ ~U.PER
(SHT1)
(SNT 4,5)
(SNT 11 +RESET +JUMPfR
n~~~ffi~~~~ff=~~~=~~---------_CERO.
(SHT 10)
t"'"
o t-----~~------~--------------------05
....
(JQ
(') rl-J.++-h~~~!..I-U:t==::::::lfu2') SII
(SHT 5)
(SliT 101
o
JJ. -WE (SliT 2,8)
""I (SliT II·RESET --~+---------~w::t::==Lt
9
til (8NT lj·MEMW ---,,=0-+-------.; +CACS CC[K (SHT 21
1::i:1
(8I1T4) ->ti845C~E
~~S~~======~ll
=-CPU MSEl
+CCLK
·celK
[SliT 5.101
(SliT 21
·XACK
[SKT 2J HA3
DOTCLK (SliT 7.101
RoMAll [SliT 10)
~~§~~~§§~~~~~~~~~J I
+HSYNC OLY [SliT 4.71
[SliT ZI VSYlle +VSYNC DU [SHT 5.7)
[SHT2)HSYNC
ISNT 3] + CCLK ------,..;
.5VI-.....~~C:J
; ~
_ ~ il~;~ f; c
!!
m
" a
i;j
m m m
~ ~
;!
l:::~:; ,~
;!:a::~ !5
-~-~-~~
'I'
o
........o
<:t
.....
C1)
C1)
..c:
(I)
...
C1)
.....
a.
CI:I
~
>-
CI:I
is.
In
i5
C1)
E
~
..c:
u
o
c:
~
-- -- --
~
~ ~~ ~~ . --
~
!i;
~
~!! ~ ~~ ~ ~ ~ ~~ ~
"
~ ."
"
~g
~
;! <Jc
N-_
~i 11 'C
itl
7
'if "
". . ";a ~~~~ >0 iN'
'" '" '" " '"
.... N
~~ - ;a ~~--~
'" '" '"
J( .......o
o
...
CD
l )l )l )
G>
G>
..c::
~
...
G>
0.
<0
~
>-
c.'"
'"
is
G>
N 0> _ _ _ _
"' .... <D"" ___ _
N <CI ----
E
...
o
..c::
u
o
c:
~
~~
~
ill
~ ~
-...
0
0
r-.
'"'"
.c
~
...
...'"0..
>- ca
J
"'C
~ C_ ;g
~ ~
-
'" <t
>
ca
a.
- --
"L, "
is'"
>- '"
E
~ ~ E
~
~ .c
tJ
0
r::
0
" 2
~
:J-
-
~ N~
- ~ ~
g
~ ill
~~ ~ S~
'l'
~
-n
~ ,.
~~~
~ ~
"
~
~
"
~
"
'" .
-,
~
0
u
"'"
;;0;;0«>
~~~
" "
'" - '"
"
'" '" '"
"
'" '" ~~
- -
'"
-" "
~ ~
ii:
~
~
~
~~f,~
-IHI'
;g"
~L-t ~
...o.....
- <! o
- -jHi' CO
~-+---l------I---~HI'
~~->--+---<
....
G.>
G.>
.J:.
~
...
G.>
'5.
ro
~
>-
ro
Q.
15'"
G.>
E
o
..cu
o
!:
o
::2
IIIIII
....o
..-
o
en
....
CI>
CI>
l<3 l<3 .s::.
~
~J ~4ih ~
...
a.
co
"0
«
>
co
C.
en
i5
CI>
E
...o
.s::.
c..I
o
c:
o
2:
~ ~
':' ~ ~
co _ .......... o.n <0 ....
'"
"'" ~ ~ .,
~
"'" !'!
~
~ ~
'" '" '" '" '"
iO iO iO
~ :I'~~ iO iO iO iO iO iO
~
~~~~ - ~ ~
'" '" '" '" '"
c .......
~
u...t!:>~
z
~~~~~
~~~ j ~
CIl
CIl
.r:.
N ~ ~
- -- - - ~~ '" ~L,I' ....
~
'----< 0-
eo
"C
<C
>
eo
~ -- - -- - -
g;g:g:g::;
is..
II)
~I g 5 ~ g is
CIl
:IE ~:;;:;;;! ~::;~~~~~;
.n..,. ""
::;",,1 E
~~~ ~N~
E
~ ~ ~ N
.r:.
t.l
o
c:
N ~ ~
~'" - -- ~
11-' ,
'Tm:ITI'( "
N N N
~ ~
N
~
N
'" '" '" '"
-....
CD
o
..
....o
DIlIIIZ8l!1~~~ D~II:Gl!I~~~
·2
- --- ~ - - ~I~- ~
.~
.s::.
Q.
I'CI
g..
o
;i;i;:;; iiiiii 8
!1l~
gD~=ZI!l!IS=ml~w~~~
~ i!I
~ ~
ii:a;~~=:gijd
:rm L
,::::' .1 11
Jf L~-
~ dS 'I~~;i;;;~
~:
~
~.
~
~
"-
~~ ~~ ~-~~
-.•
~
~
" "
Logic Diagrams 0-47
...
........ ...; ... ...; ..........
~~~~ ~~~~ ~
~
~ ~ ~
~~
8&a.i ~Nia
+++- +qo ..........
~
~ ~
, '~"'
!l!
~"
¥~ ~ i Of
51 ~
!IIO~
;i~
-.... ~
g
i:;:li:;:j~
C?O?G?
i'i
~
-f ...
...Co
o
:2:
'"
!:!
.s:.
Cl.
~
--...
C!'
o
8
_ 5~
~~~ =~~
~l ,,'r,; m",
I
N_C> ~
1'1'1' -:'
==~ =
ii
~=
.
g iii
~
~
~~~ ".. ~
:::i
~~ ~ u_
'~" ~~
~~ l' . "~ ':' 'I'
i;;a
o:;:'IIi"
ll;;a
iii 'f'f
lit, ~ t
~ "'?IIi"
~ ~~
. ~;~:: ~~
~
~~
co
....
o
"'..."
CIl
CIl
~
en
.
CIl
E-
.'"o
"'C
<C
:~
c
o
2:
l3
~
Co
~
'"
--.
o
8
~~Ii
~
<;
"
cc
....
o
...
L.I')
CI>
CI>
..r::
~
...
...
CI>
~~ ~~~ Q.
co
~~ ~~ ~
'--------, o
.!::
c:
o
~
~5~~
=uuQ... ~~ ....
N<'>_ ..... en
.!::!
§~~~ ••t<.~
..r::
Q.
~
'\'
--
Co!)
(5
8
_~c;~s.~gg
~~
-~SC!;:g:g~d
MT="J"'r-~
• N 1 •
~
- ~~ ~ ~
"~
"
"" ~ ~ ~ ~
" ~
1); ~
U)
....o
...
U)
CIl
CIl
~
~
...
...
CIl
Q.
CQ
~
...
o
.~
t:
o
::2:
N .... <0 OD
o<C~~:: ~~:;;::!
""r- -------
~
coo_m
gc;~a;g:g§::;:;
NNNNNNC'.IN
~~~~~~~~
....""8,
oz·
R514 .~
41K \f2W
L-
,J
;.
1•
~
ii
I
~ "
:KFOOi:'-300
_______________ ~ _ _ _ _ _ _ _ _ _---.J
6~
~
r------~1
1I
~ L __ -,
0 lASE "" ... 1 I
(JQ :~:' I!Il ASP!S.! 0]) 15 I
O· I.l.C104-
"" 82 R50IiI I
l~~~ ~:: I
....0 ~
~
(JQ
'"I
tf.12 .,
1
1 DANGER
~
I
3
CIl
112113
120 111)(17
1
I HAZARDOUS VOLTAGES
DUALla 8211. C507 I I
112W ~V I I
UP TO 450 VOLTS EXIST
-- -
~
®I,
---[jjjj=.~-I"""o-?W__ . 2
~~
~
II,.
:
ON THE PRINTED
CIRCUIT BOARDS
D403
'"
r --------,
I :::~(B3 : r------.,
+ ~:) I -- ml ~~p i
- 25V I J liSP I I
11407 I 1 15J I I
!18K 1 11502 I+ C502 I llil +.1 C50lI
I 111. - 111 ..J I _T 2ZOJi Ions
+ C405 : I 50V ® - I 25' 1,RES1STORVALUESAREINIOHM)al(- 100001- 1.000,0000
2. ALL RESISTOR ARE 1/4WEXCEPT WHEIIE OTHERWISE INDIC.l.TEIi.
Mt-+_......___- -..................--<~--~RW!l.2-__"-,.::1~::.~~f"-'-~,J
11501
:I : OTIJ
un
11505
680
::L502
I: l503
:
I
3. .I.LLC.l.P.l.CITOIIS.l.RESOVexCEPTWHEIIEOTHERWISEINDlC.l.TED
4.C.l.P.l.ClTORSVALUESAREJJfUIiUSSOTHERWISEINOIC.l.TEDp= >IF =
~~~~;~~~~~~~~¥7~9~~~~9~~
c c
i~ i!1~
"
-
~
"
" N
"
E!
~ ~
iii
iii
~!
"i"
C
!\l "$
c
!\l "
¢
....o
~l<l ~~ -- ~
~~~
ig~
~I
~~
'\'
~ ~
+~
, -
!<iO
- - ~ ~:,
"'\'
,
c~-
~
-
~
- =---~ - -,
~
1 I 1
-,
~I I
~I
I
~~ I
1
L J .J
·~l--
_N -;;", •
I
i i I
I
N _
-.~
.....J
""
.....o
...
N
r~-!5i!.~i:l ~~-",!~~~-i:l
CIl
CIl
.... :::I;:! := ;:! := ;:! :::I ..s::
~!:? NI"> ~
~
L--...
ca
~ ::~:~I~,~jk j~ IT~g=s:~ :~ g~ :1 ~i
~ ~~~ :.--~~!
~I /7,
~'----------'Jf ~ ~~ .wi
g",~gW
:gg~l ;; -:'1
l!!~
L,...~~~,....;;'
I N
; "'" ~~ -
,
;
..
~ g=sa~~l!iO;~~
~
-: 5i~~. N_
~;;'
--
~~ ~~~!fHiil~
~
~ 2 I ..WAITEOATA
.. '------<0'
YA~+DIIIEt:TlO •
74LS93 74lS I 09
NOTE I!l
U3 U2
ysf!.-
~
P3~~1~B98-1
~'"
2'
'5-
IIP-2 WOA 30
250nSEC
WRITE PAECOMPUSATION
I~
0:-
3 38
1 EB
~Ul0
+ 35 ROY
FR/STP 31 914LS08
,"QTU4ls I +STEP
+WRITE PROTECT 1 34 WP/TS SEEK 39
1 74lSOB
~~ ~ NC
NC
+TRACK 0 USI 28 NC
~3 331 FlTlTRO MFJI 3B NC
LC/V~~ 24
b
(JQ HO r1I .. 14LS08
~6
!... +VFO SYNC
L +SELECT HEAD I
(;' +STANDARD DATA/eLK -
.. DATA WINDOW- "I ROD
22 ROW 1U6 +DACK a Tt
o CONTlNUt&U~ SIIEET 2
I
-BACK
Sl'
13 74LS08
3rI.I +OMA GATE
U12 74LS04
NOTE:
oI
~a,~14iW g~~Sp~t ~1~"E CONNECTED ONLY ON CARDS BUILT
Ul
-..J 5-1/4 Inch Diskette Drive Adapter (Sheet 3 of 4)
a x!pu;}ddv
~I
~
~ N
-I ~I
I~~&
~
&
~
~ ~
§
~~ ~
;
:1
!:l
-~ "
-~~ ~
~L, =GL-.~
~ 1li ~
~~=~§
=>
~ ~ ~~~ '\'
; ~~ ~ >< ~ - I'
~~E~-
'¢
....o
N
= ~r ~~t- ~ - - ;l~':i"
~I i'i I '¢
L __ ~ ....
- - c Ql
Ql
H= '~~~ "
.t::.
te ~ '\' ~
"~~~~
::::> ..,. :: § ::1
-,
,
;1
~
~ N
e-
n ~~
~H~5 § ~ ~~~ ~ - ~
-~
<
'5 :;;
~L
W N <
I
Si
i;i
;; c :< ~
'"
~ ~
~I ~
t~
~
~~~ =
=>
~
: : ;N;
= d ~L ~ ~
~ _ N
""
-I -,= ~<
N
- ,;;
;;;
:~I' ;1
~~: ..,. g: §
N s ~",;
1l ~ ~ ~
-w-I <I ~ 5!
N ~~
=j~j ~
N
I~~"
,
w -,
<
~
- ~
~ ~ ~c3
.
~
E 8~
• 'f 'f~
TP10
~
III
,PO
JI 116.1
11K
b •
I .1 ..
J2
11] .,
....
(JQ
(')
SIDE
ONE
.5V
I • I ~l 11 ., '26,C30. ..
o
;. II ., 6NOI31"'" "
'38,1'311
,.,
'-'
GND
(JQ !! -:-
a
"1 2F
'PI
•
150
.- LS14
WRITE I ~ ~~~____~5~~~'________~
NW,,2 1I 'I
~
DATA
oI
Ul
1.0 5-1/4 Inch Diskette Drive Type 1 (Sheet 1 of 3)
a x!pu;JddV
o.
0'1
o
INDEX!
~ SECTOR
o
(JQ
PHOTO
ASSY
(;'
o-,
~
..,
~
3
til
J1
DIRECTION 1181 3Lf. 51
462
NOTES: UNLESS OTHERWISE SPECIFIED
1. ALL RESISTORS ARE IN OHMS. 1/4 W,
5%,
2. ALL CAPS ARE IN tkO.
3. ALL DIODES ARE IN 4446.
4. ALL TRANSISTORS MPM ARE 2n4124 iii
PNP ARE 2..4125.
)
I I +
~
- ""
~
::;;:;
~
~~ ~~
~~
y~~
~
I M
....o
...
M
Q)
Q)
..c:
~
Q)
Q.
~
Q)
>
C
Q)
:::
Q)
~
'"
is
..c:
(,)
c:
N )
r-~n :~ ~
~l~~ ~l '~l ~l~~ ~i ~ N
Lt~", ~j'~~
+" ~i:!'
;g ~
-"0
N
.-
...
CIl
CIl
.c
~
N
CIl
Co
~
CIl
>
";:
Cl
~CIl
~
'"
C
"fis:::
~
.-
til
~
~
en
C
.J:.
U
..:
~
...Ih
~T ~ ~
~~i
~1
E-
m
~
Ql
.::
C
~
CIJ
i5
"C
Ql
X
u::
i
:; ~
Ii
~
+ +
iii
~ ~i -
~
I"
-
iii
11
c
T1TnTI~IJI
N
-
~
,~ c l:iI
~----!i
~~
117 ~
~u_
- -;-'
~=
~ - ;1 ~ ~ ~
~
:! - .
0
til 0
::II ~It! ~
~
~~N
1]]]]1:0 cg
I r
IJ.
• l:iI"
'0
N
- ....
.,
(II
bbbbbld..l Ie
(II
.c
if _ ;l;;;iiU
- ~ .. L =-I! j
81~
~
...
lIi"N Ie :1~~WlJ~~I~
cc:C c;c:l
$I
a.
«II
~
(II
>
'i:
C
~
is'"
'C
(II
)(
~
i't iii!
!i
T ~
cC
~:;;:
Ie
(l)
'0
...
M
Q)
Q)
..c:
CI)
...
Q)
E-
m
~
Q)
>
";:
o
.:t:-
V>
i5
"C
Q)
)(
~
....
~
Q)
Co
(0
"t:I
<t
Q)
.~
c~
."
is
"t:I
Q)
X
u:::
?
~~
§
~ z
~ i
~ 'j'
~ ~ ...
;::;:::
H>"i::
"
~:;
~
,.
:::;
"'f
~
~~
to
....o
...
LO
Q)
Q)
.j;
en
......a.
Q)
<a
~
Q)
>
";:
o
.:.:
is'"
"t:I
Q)
X
u::
=!illl
~
"
cc
....o
CC
....go
"' :.l~ i ~ ~
go
.r:.
"-
"
....Q.
go
<0
"'C
~
go
>
";:
C
~
II>
C
"'C
go
X
I
" I u::
~ ~ ~ i
:;;
17 " " ~ .
ii
ci
ill
g
-
'" ill
+~(!H
;;
~J
+!!~
M
....0
...
N
Q.)
Q.)
~
~
"'~
~: ...
Q.)
Co
>-
I-
Q.)
>
';:
C
.lo:
~ 1<\ is'"
" 'tl
Q.)
,~
u..
ii i~
,
Gil!
-...
M
0
M
Q)
Q)
.s:.
~
...
Q)
Q.
>
I-
Q)
>
'':::
C
~
".
i5
"C
Q)
><
u::
5~
B~~ ~~
M
....
o
C1>
>
';:
C
.!JI!
II>
o
'0
C1>
X
u:::
~
~ ~
g
"i
~
~ ~
a
~
"~ ~
~
"
~
. ~~~~
;;:;;:a::;;: . ~ ~ . ~~ .
...
M
~
~
.s:::
~
N
~
Co
~
~
.::
0
~
is'"
"0
~
)(
if i.i:
:,;
"'
~
~~
'"
§:
'"
-
I; f:ll:i
~~ ~ I~
'" \'il
II
;!
=
M
~
....
0;
'I -~"~:l- -
-
~
<-< "".:c
~""
~EM m= -
=!!
iil,"~g; I
o
....
...
~
~
c~
~::
.s::.
U'"
~--
c:ci"" ,. ~
'? ~ = ~
c:
~-~
o
- - -~~
~~
~
"';:;
"
M
-
- ~
o
a.
c:
L--
1- -,II o
~
L---
Lj ~~
~"lU
~I ~~~~ ~~~~
;! c~u" ~!';l
I ~I ~~~~ ~ ~~ ~
;! <~U ~ "lill1,l
1~
--
=
g
"Vi
w
c:
'"
a.
x
M
o>E
< c < c<
N M
~ ~~
- ~
Tl~"
~~~I
_ N
~ ~t~,.
lL
N
M
\'il
,.
- ~ M
,.
eeeee
"
I!'" i
;;; ;;;
~--~
~ ~
'" '"
§:
M
....
o
...
N
Q)
Q)
r.
~
:~~ ~OOWWVIILX)l9L §~ ~ DOWWVII!X)491 c:
"';;:I~ "<~!;I:;::I:i!I" ~~I~ "<~":;::I:i!I" o
'';::;
o>E
Q)
2:
~
N
M
g;;;;~g;:g;:g~6 ~::;::;;;:~~~~~
~
I; lili I~I~ ::;~~~~
~~ "'-~'"
e:, ~
- !!:.~ ~~
~--~
~ !! ~--~
! ~
if
:il
~
~
,. o
Co
c:
o
o ". " . !l
";;;
c:
(C
Co
:! "" "" ~ ><
y
W
>
!'J ::
" i'l o
E
~'"
~
I~
N
M
~ -' L -'L
" y
~ II
y" " y
rHh-~r. "
~r. rJ
liil~ ~ I~ I~ I~ I~
I
...o
M
...
CI)
CI)
.l:
~
I:
o
".;::;
c.
o
I:
- o
"iii
I:
ca
C.
~
x
- W
...o>
E
CI)
~
2
~
- N ~ ~ ~ ~T- ~ c
cg
:1-'-:.. :'\!' :,\:.,,~~\ ;;; 1
-------
" " " ' . . , . . . , .... c::><;n
:c;:c ;; ;; ;; ;;
c;:; CO>
'"
II'"
~---~
"
~~
cae S CI CI
:iai :ia;
;0'" ~'" ~ I'
9 ~ ,---- ~
"
~
I~~=:;~ o,.=.p -
~~~ ~~ 5
~
~
~~=N
~ M
N~;; ~~ ....0
~Sl~
N
L.
....
Q)
Q)
.I:
c\y~.1l~c~~~~~.
~~~~ -~
~~~c~~~~~~
~
C
~ "~ ~~~I~ll~l~
M
0
'';::;
c.
" - 0
c:
0
'iii
c
IU
C.
~~ '-- W
X
L=t
,---------> 1>--- ...0>-
~~
~
Ii-----
~
iE
"
SNooL
~ "08~
:5
SM09
SMI»'
i= SNOe: ~
<o~g
~
8
on ....
·'''''··lJAl
~r~~~ ~~N~i
--- - - --
~ ~~
f-
~
E
Q)
2:
'<t
co
L.,:.~
L- ~'t
r,; ~ ],..
JJLIJLlJ
~c_
~~
~~
~
I ~
:~
.......
;: ~~~
g>~
~ >-~~;!
m~I
~~~ ili~ ~ N~fg~(~ .... :; .....
;:!~~~~t:!!i~::;~"""", ~ c""~:e;:!!i~:::::V.II""
M
......
o
M
....
Q)
Q)
..l::
!!!
s:::
o
I "DO 190J .." 'E-
o
s:::
o
'r;;
il...jf-.!>-H-'fl s:::
ca
Q.
X
i'i04I--...Jf--!l W
iHI--...j f-- il
...o
>-
E
Q)
!l.,I-->-lf--i'i :2:
~
~
,'H I-- >-l f-- " co
HI--~H;
;$ ...JI--f-if--!l
1l...J1--...Jf--::l
iHh...Jh1'l
~
I; I~ I~ liiil~ I~ I~ I~ I~
...."'o"
.......
a>
a>
.J:
~
c:
o
'E-
o
c:
o
'u;
c:
ca
C.
x
w
> ...o
E
a>
2:
~
co
It)
--;g
N
uruw -
- - ~
r:
~
.c
I
~
;; I ~
g ~ I ;; I t:
l!
;; I ;; I ....o
;; I ~
~
;; I c.
~ ~ o
;; I ~
;; 1
. ~
'il
;;
~
'"
I
I
L
;;
~
;;
;;
I
I
t:
o
.;;;
~ gj t:
;;
"~
g '"
C.
~§
'1i
~~ !:I oo~
I X
W
i~::!~!i!:CI;o lili!~:C:C:1::!~!i!:CI;o ...o>-
.. ~ .... e:! ....
~
_~ao
]7 - ---
E
CI)
:2:
~
u;)
It)
;;:::
--
N
1111111 II I II I
f-H-'" ..,1-
f-"ll- ..,t-
f-"lt- Hf-,
f-"lt- ..,t-
f-"lt- ..,1-
f-"ll- ..,t-
r--<I- ..,1-
"".....o
f-"ll- HI- ""...
CIl
CIl
.s::.
r--<I- HI- ~
f-- - c:
o
.';:::;
Q.
c:
iliE~ ~ ~
<0
Q.
O! ill i;i ~~ ><
W
Gf-"l~ ..,~ .
>-
o
E
CIl
r--<I- "'1- ~
:=.=:
~I- .... 1- <0
LO
r--<I- ..,1- N
-...
r--<I- ..,1- ;2j
r--<t--< ..,t-
f-"lt--< ..,1-
f-it--< "'1-
f-"lf- .... 1-
r--<f- ..,t-
~f- .-'\r-
~l~
L __
1
1
.J
.-
....0
.......
(I.)
(I.)
.r::.
r-------,
1
~ ~
.
...
(I.)
C.
-I <'0
1:;1 -I -C
;; 1 ~ ~I ~
«
....
+ ~L _______~J
l'l "0
rJ
!::
0
U
" ;;;
(I.)
E
11 <'0
(!l
~ ~ a;~
~~ ~~
'lI ~:;c~~:: ;~ c ~ ~
!~ !ill ::;l§:g~~ ~c; .
i!i!
~
~
a:l-n:;;u;;"iiiiii;;,,;;;;;:ii:ii!Hi!HI11ii!l~il~:lii!!iii '"I ~
ii:
.-
....o
.-
....
CIl
CIl
..c:
~
"C
l3
CIl
c.
~
So
Q:
~
_.
0
(JQ
~~
l09
"08
RESET
DO
01
35 MR
-osn
_.
~
tj
AD7
A06
"05
'AD3
04
02
03
04
0
lNTRPT
"~~.
06
~
..,
(JQ A02 7
oms Ne 23 '5'
~ " He
22'E1A HI
7
9
fI>
814 ~ ill 33
!!!..!IT..!!..fzo L-_~
813 lOW
A31 :, I 2Kn
Hl15
:~ "2 RlS 32
EIA RlS 14
." 'EN
A28
A27
:!
A5 SIG GNO'7
A?~ .Ill ',l LS30 '5'
-ENABLE
-;~~1ft:ir I~ 1
A23
+RE~~ ~~ ~:i: 12
-Rev Cl RET
RECEIVE DATA
....'0...
Q)
Q)
..c:
~
...
...
Q)
Co
ro
-c
~
U>
c::
o
".:;
ro
tJ
"2:
::I
E
E
o
u
U>
::I
o
c::
~i,:B'~
o...
.
:e. ~~
,
..c:
tJ
c::
6i
...>-ro
c::
iXi
t- ,J ,J ,J ,J ,J ,J
i![i
--::: :
....
s~~~~s
....
e
Q
I
el
L
~=
I
h
Ie
IQ
r---,
~Ii:i ~~ ~1
e
Ii
t;~
e Ie
Q Q
Ie
I
......
c
-:::-
I
c e l l
c.:IU
L--
~fflr~ ~ ifI
c.:I Cl:
1.1:0 Ii! ~~l"
z ....
" N
....
o
Q= ill~ 1:::;~!2~ Q~te~
I a~~; ~g; ~ ~ ;~~~ iff ~CL.CL.""'''''' :C0l!:1!:j ~ ..........
"'j'!
f!'~
....................
>l!
IH~t
~~ ::: t
I-
r1 :l ~= c
~18.
~
., U)
t:
e Q s~~Q I J h o
.';:;
;1 r~l
<a
i~
!=- ~~~II~
:;~ .!::!
:;~ ~
Vol
g~ ~ ; t:
~~~i~'f
c.:I
~li!i1l
::l
E
E
8
()
..J
C
CI)
~ ~~i1\:T I. .. (."l.. I
I,.t!tCLK ~
____+-+++-i!"I19 ,~~~E EXT
--tmClK~
~ UI4 • ¥SIGIALGRDUND J17
----+~rr::j],RCVCll( ....!l..!8
System Unit
Size:
Length--19.6 in (SOO mm)
Depth--16.1 in (410 mm)
Height--S.S in (142 mm)
Weight:
20.9 lb (9.S kg) Without a diskette drive unit
2S.0 lb (11.4 kg) With one diskette drive unit
Power Cable:
Length--6 ft (1.83 m)
Size--18 A WG
Environment:
Air Temperature
System ON, 60 0 to 90 0 F (1S.6° to 32.20 C)
System OFF, SOD to 110 0 F (10 0 to 43 0 C)
Humidity
System ON, 8% to 80%
System OFF, 20% to 80%
Heat Output:
1083 BTU/hr
Noise Level:
S6 dB Without printer
66 dB With printer
Electrical:
Nominal--120 Vac
Minimum--l04 Vac
Maximum--127 Vac
kVA--0.317S (maximum)
Keyboard
Size:
Length--19.6 in (SOO mm)
Depth--7.87 in (200 mm)
Height--2.2 in (S7 mm)
Weight:
6.S lb (2.9 kg)
Specifications E-l
Color Display
Size:
Length--15.4 in (392 mm)
Depth--1S.6 in (407 mm)
Height--11.7 in (297 mm)
Weight:
26lb (11.8 kg)
Heat Output:
240BTU/hr
Power Cable:
Length--6 ft (1.83 m)
Size--18 AWG
Signal Cable:
Length--S ft (1.S m)
Size--22 A WG
Expansion Unit
Size:
Length--19.6 in (500 mm)
Depth--16.1 in (410 mm)
Height--S.S in (142 mm)
Weight:
33lb (14.9 kg)
Power Cable:
Length--6 ft (1.83 m)
Size--18 AWG
Signal Cable:
Length--3.28 ft (1 m)
Size--22 AWG
Environment:
Air Temperature
System ON, 60° to 90° F (lS.6° to 32.2° C)
System OFF, SOo to 110° F (10° to 43° C)
Humidity
System ON, 8% to 80%
System OFF, 20% to 80%
Heat Output:
717 BTU/hr
Electrical:
Nominal--120 Vac
Minimum--104 Vac
Maximum--127 Vac
E-2 Specifications
Monochrome Display
Size:
Length--14.9 in (380 mm)
Depth--13.7 in (350 mm)
Height--ll in (280 mm)
Weight:
17.3 lb (7.9 kg)
Heat Output:
325 BTU/hr
Power Cable:
Length--3 ft (0.914 m)
Size--18 AWG
Signal Cable:
Length--4 ft (1.22 m)
Size--22 A WG
80 CPS Printers
Size:
Length--15 .7 in (400 mm)
Depth--14.5 in (370 mm)
Height--4.3 in (110 mm)
Weight:
12.91b (5.9 kg)
Power Cable:
Length--6 ft (1.83 mm)
Size--22 A WG
Heat Output:
341 BTU/hr (maximum)
Electrical:
Nominal--120 Vac
Minimum--104 Vac
Maximum--127 Vac
Specifications E-3
tr1
~
I Front View (Component Side)
liB) (')
...c..
OJ
en
"C
til I I---------~
m
n
'0
(1) ~ Loc. Ho)e ::;;
(') n'
s
(')
0.125 ± .002 (3.175 ± .05)
...0'
OJ
:::I
o·~
II>
0.125 +
_. 005 (3.175 ± .127) iii iii
=
00
iii
'"
to
0 '"'
'S"'
0
Copper Pad
(To Ground)
~
<t
coi
.. .
0
N
0.4 (10.16) t
0.705 (17.907)
Notes:
1. All Card Dimensions 2. Max. Card Length is 13.15 (334.01) 4. 31 Gold Tabs Each Side. 5. Numbers in Parentheses
are ± .01 0 (.254) Tolerance Smaller Length is Permissible 0.100 ± .0005 (2.54 ± .0127) Center are in Millimeters All Others
(With Exceptions Indicated 3. Loc. and Mounting Holes are to Center, 0.06 ± .0005 (1 .524 ± .0127) are in Inches.
on Drawing or in Notes). Non-Plated Thru. Width
(Loc. 3X. Mtg. 2X).
APPENDIX F: COMMUNICATIONS
Information processing equipment used for communications is
called data terminal equipment (DTE). Equipment used to
connect the DTE to the communications line is called data
communications equipment (DCE).
An adapter is used to connect the data terminal equipment to the
data communications line as shown in the following illustration:
Data Communications
Data Communications Line
Terminal Equipment
Equipment
Z-
Voice Line
Communications F -1
The following is an illustration of data terminal equipment
connected to an external modem using connections defined by the
RS-232C interface standard:
Data
Terminal
Equipment
Communications
Line
~...==--------
--~----~'"," . . . . '"
"
Adapter ,,/ Cable Conforming "" '
///// To RS-232C Standards """""" """"
Test ~**I'**
I
External Modem Cable Connector
131211109 8 765 4 3 2 1
+
0 0 0 0 0 0 0 0 0 0 0 0 0/
\ ooooooooooooj
252423222120191817161514
Pin Number
F -2 Communications
Establishing a Communications Link
The following bar graphs represent normal timing sequences of
operation during the establishment of communications for both
switched (dial-up) and nonswitched (direct line) networks.
Request to Send
Transmitted Data
Transmitted Data
Communications F-3
"t1
I Establishing a Link on a Nonswitched Point-to-Point Line
~
(l 1. The terminals at both locations activate the 'data terminal ready' 11. Terminal A and modem A now become receivers and wait for a
0 linesaand • . response from terminal B, indicating that all data has reached
3 2. Normally the 'data set ready' linesElandllfrom the modems are
terminal B. Modem A begins an echo delay (50 to 150
3 active whenever the modems are powered on. milliseconds) to ensure that all echoes on the line have
=
....
=
()
3. Terminal A activates the 'request to send' linea, which causes
diminished before it begins receiving. An echo is a reflection of
the transmitted signal. If the transmitting modem changed to
the modem at terminal A to generate a carrier signal. receive too soon, it could receive a reflection (echo) of the signal it
~
.... just transmitted.
4. Modem B detects the carrier, and activates the 'received line
0
=
~
signal detector' line (sometimes called data carrier detect)m.
Modem B also activates the 'receiver signal element timing' line
12, Modem B deactivates the 'received line signal detector' linelm
and, if necessary, deactivates the receive clock signals on the
(sometimes called receive clock)lIIto send receive clock signals to 'receiver signal element timing, linelll,
the terminal. Some modems activate the clock signals whenever
13. Terminal B now becomes the transmitter to respond to the
the modem is powered on,
request from terminal A. To transmit data, terminal B activates the
5, After a specified delay, modem A activates the 'clear to send' line 'request to send' linem, which causes modem B to transmit a
II, which indicates to terminal A that the modem is ready to carrier to modem A.
transmit data.
14. Modem B begins a delay that is longer than the echo delay at
6. Terminal A serializes the data to be transmitted (through the modem A before turning on the 'clear to send' line. The longer
serdes) and transmits the data one bit at a time (synchronized by delay (called request-to-send to clear-to-send delay) ensures that
the transmit clock) onto the 'transmitted data' linellto the modem A is ready to receive when terminal B begins transmitti~
modem, data. After the delay, modem B activates the 'clear to send' linelU
7. The modem modulates the carrier signal with the data and to indicate that terminal B can begin transmitting its response.
tra nsmits it to the modem B II. 15. After the echo delay at modem A. modem A senses the carrier
8. Modem B demodulates the data from the carrier signal and sends from modem B (the carrier was activated in step 13 when terminal
it to terminal B on the 'received data' linem, B activated the 'request to send' line) and activates the 'received
line Signal detector' line.to terminal A.
9. Terminal B deserializes the data (through the serdes) using the
receive clock signals (on the 'receiver signal element timing' line) 16, Modem A and terminal A are now ready to receive the response
IDfrom the modem. from terminal B. Remember, the response was not transmitted
until after the request-to-send to clear-to-send delay at modem B
10, After terminal A completes its transmission, it deactivates the (step 14).
'request to send' Iinea,whiCh causes the modem to turn off the
carrier and deactivate the 'clear to send' linell.
Term~na~ _ = ==~ Terminal B
r;:======ll
rr--- .
Communications I
I
II Communications I
Modem B Adapter
II Adapter II ____ -,
Modem A Communications
II i I
U
r-----, II III
L.._Sup~~...l
II ipower.: I Power I
II I Supply I
Data Terminal Read r-'
L _ _ _ _ ..J
Data Set ReadvD
1c :
G.ne~a~J
) a I
II r-c-;';;;';--j I n I
r~ iT.';;;s~~-'
II II i'I :I
II
III
III; L---J,
I Clrc",'s J
" L_J
r
I a I
'I :
rr
9
"I:
II"
IIII
""
____ -, I.,I I I" I
II"
I r Modem I I
J ": iI
II II
III
II'
Transmitted
Da'a
III
I Clock
L___
~_J
I ~ I
I _____ ,
III I" Echo
III
I
I
L ___
Delay
=___ ,
'I---l~
III r Receive
C.;'.~l ~
(") ' , "".,. C "
o III 'i ."
3
"! II iI:; ! II
~
~::I ",
' , ".._J
---- "
"
, II,
'II
,
III
r ., r
L-"
I I
I
Clear to Sendl
I I
II
D I
let
III
: Transmit
L ____ ~
~
1
Receiver I
L ____ J I
Detector' I I I
"L_~
I II
II
I I '--- Rece;ve, 8;9 nol
II I a I r-M- - ., Element Timingl II
IVI M' I adem
II c_J :: L~~c':_J III II II
Transmitter Signal I I r - - - - - --a Received Data II
~ I Element Timingl
,-----,-
liB
r
I
AAL ____
::.1I-M" d - -,
CI~C:m
-'I,I
I I Demodulator
L _______ --' II
II
II
II
Transmitted Data I 0 : II I
cU iii I
II f'c;;-ri;,. -.., Request to Send II
~
1111
Received Line Signall
Detector r----.,
I
~====~ ~ I:rt,
Gene,.'e II II
Clear to Send
II
II
C":l II !!
Receiver Signal
I L~:;:l'
i__ _ ~ ~ LIT':~m~J :~!
~_,=-_.J
I:
Transmitter Signal
II
II
o Element Timing1 r Modem i i Modem"" Element Timing II
9 Art, ~_C~o':k_J ~':~c~_J r
g II
II
II
II i8
II
II
...
::I
()
II
III ,
II
8 :
re II
d I
II
II
r------
IL...... _Demodulator
_____
--,
...JI
r
LI __
------,
Modulator
_ _ _ _ ....JI II
II
II er
I d
II
II
~ Iq
I e I
•:
I e
o·::I II L_ LrJ
II
II III
II
II
:s
LT
II
_J II
III II 1 Received Data EOT Transmitted Data I II
II II II II
'T1
I
-....l t..=======~
1These lines are active continuously
L.::======:J
d X!pU~ddV
71 Establishing a link on a Switched Point-To-Point line
00
1. Terminal A is in communications mode; therefore, the 'data 8. The autoanswer circuits in modem B activate the 'off hook' line to
(') terminal ready' lineais active. Terminal B is in communication the couplerEl.
o mode waiting for a call from terminal A.
9. The coupler connects modem B to the communications line through
3 2. When the terminal A operator lifts the telephone handset, the the 'data tip' and 'data ring' linesllland activates the 'coupler cut-
§ 'switch hook' line from the coupler is activated D. through' linellto the modem. Modem B then transmits an
.....
::1 answer tone to terminal A.
3. Modem A detects the 'switch hook' line and activates the 'off
(')
hook' linea, which causes the coupler to connect the telephone 10. The terminal A operator hears the tone and sets the exclusion key
~
o·
::1
set to the line and activate the 'coupler cut-through' linellto the
modem.
or talk/data switcr. to the data position (or performs an equivalent
operation) to connect modem A to the communications line
til through the 'data tip' and 'data ring' linesll.
4. Modem A activates the 'data modem ready' linellto the coupler
(the 'data modem ready' line is on continuously in some modems). 11. The coupler at terminal A deactivates the 'switch hook' line II.
This causes modem A to activate the 'data set ready' lineD
5. The terminal A operator sets the exclusion key or talk/data switch
indicating to terminal A that the modem is connected to the
to the talk position to connect the handset to the communications
communications line.
line. The operator then dials the terminal B number.
The sequence of the remaining steps to establish the data link is
6. When the telephone at terminal B rings, the coupler activates the
the same as the sequence required on a nonswitched point-to-
'ring indicate' line to modem Bim. Modem B indicates that the '
point line. When the terminals have completed their transmission,
'ring indicate' line was activated by activating the 'ring indicator'
they both deactivate the 'data terminal ready' line to disconnect
linellto terminal B.
the modems from the line.
7. Terminal B activates the 'data terminal ready' line to modem Bm,
which activates the autoanswer circuits in modem B. (The 'data
terminal ready' line might already be active in some terminals.)
Terminal A Terminal B
r;:======:;-JII
II Communications CBS CBS
r;:======,-,II
Communications
II
Coupler II
II Ada.'., II
D
Modem A
r-----' IIr
Coupler
-, Modem B
r~i ~-An;~;rl II
II
II
Adapter
II
'" :ur-:
II II Switch Hook Switch Hook
J----rr
I Carrier I r-1
II rC' Data Terminal I Generate I iSFii Data Terminal CI II
ISHI _I -~eady
:~I D:::~.' it '0 ,
II _ Off Hook IOH)1I Off Hook II I Data Set Ready
nl _, II
II
III •
rSIt I I 'I
~:~~~sttoSendl rill
Ie I
Ml
10 I Coupler II
IOH)
Coupler II
10 I
la I
n
I I
r--'
10 I
e
I I
Aeceived Line
Si nal Detector _i'i
I' ,
S II
t II
,0 I
i id ,
II: ~
III 0
III
I 0 1,
l~J
1\.,le8r to ;,eno
II
II
I,
18 I
L~J
Iu I
:I Ia I,
Cut-Through
6~~T~Odemll
Cut-Through
ICCTI
Data Modem
Is J
: w:
lei
Iml Aing Indic110rlll
10 I
H II
L~J
II
a II
9 II
9 II Ready (oA) Ready IDA) Ir I Iu I II
r-' r-l
Iii· II " , I,eRtI I R)
I eI
Aing II!! L_J I' I
Ia I
II II
11\ II
Transmit Data
10:
1'1 B III 'II
Indicate (A)
1'1
II
Aeceived Data
II
III
,' I i Data Tip (DT)II 10 II
III
II
II
II
1
L_
Data Tip lOT)
Data
Data Ring (DAI
Ia
Y,
's ,
L_J
IY
a I
IS,
LJ
Data
Data Ring (DR)
, I
_J II 1 II
II
II II II
r--, II
II II IE CI
II II Ic I I III
II II Ih •
10 ml
i II
I II , • I II
L __ .J
II II
r~l II r-M-od;mj iM~~;l II III
ISI
• I II L_c.:o~~J I Clock
L_~_....J
I II III
(") , I II ill
o d i II i"
• I III
3 L_
s I
L_J
II II
II _J II
~::s
II
Transmit Clock Aeceive Clock II
.... II II II
L':======::J
II
(')
~=======.J
~
o·::s Communications
Line
Vl
'Tl
,
1.0
d X!pU~ddV
Notes:
F -10 Communications
APPENDIX G: SWITCH
SETTINGS
The following switch settings are divided between two groups. The
first group contains the switch settings for the 16/64K system
board. The second group contains the 64/256K system board
switch settings.
Switch Block 1
~DDOOODDO
Switch Function
Switch Block 2
Switch Function
IBM Monochrome
Display (or IBM
Monochrome Display
plus another display)
~tDDDDQ~OO 40x25
Color Display (Do not
use if an IBM ;DDDDOQQQ Mode
Monochrome ' , 3 , 0 , , ,
80x25
Display is connected) mDDD~~DD ;DDDDOQQQ Mode
=-
til System Board Switches Switch Block 1 I~DD~~DDDD I Switch Block 2 I~~~~~~QQQ I
n>
;:::::
s·
(JQ
v.> 32K Total Memory
1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 B
1 2 3 4 5 6 7 6 1 2 3 4 5 6 7 B
mD~~DDDD ;~~~~~~~~
System Board Switches Switch Block 1 Switch Block 2
96K Total Memory
32K + (64K on System Board)
I 1 - 32K option
I~~~~Q~~~~ I
r.tl
~,
.....
(')
::r
r.tl
~
::::
5'
(JQ
rI>
91.0
D X!pU~ddV
o
-
o
I
rJ}
128K Total Memory
64K + (64K on System Board)
~
~.
System Board Switches Switch Block 1 I~DDQQDDDD I Switch Block 2 ~~Q~~~QQQ
t:r'
rJ}
(1) 64/256K Option 64K Option 32K Option
~ Card Switches Card Switches Card Switches
5·
I~~~~Q~QQQ I
OQ
[Il
1 - 64/256K option with 64K installed
1 - 64K option
1~~~~Q~~~~ I
2 - 32K options
I~~~~Q~~~~ I
I~~~~QQ~~~ I
- --
l60K Total Memory
96K + (64K on System Board)
I;~~~Q~QQQ I I~~~Q~~~~~ 1
1 - 64/256K option with 64K installed
1 - 32K option
l;~~~Q~~~~ I I~~~Q~~~~~ I
1 - 64K option
1 - 32K option
I;~~~Q~~~~ I
I;~~~QQ~~~ I
Vl 3 - 32K options
-
:.E
.....
( ')
t:r'
Vl I~~~Q~~~~~ 1
~
::::
iJ'
I:Il
o
-I
D x!pu~ddV
o
-
N
I
192K Total Memory
128K + (64K on System Board)
til
....
~
....
()
::r
System Board Switches
I _S~itch Block 1 ~DDQQOODO 1 Switch Block 2 ~~~Q~~~~Ql
til 64/256K Option 64K Option 32K Option
(I) Card Switches Card Switches Card Switches
~
5'
I~~~~Q~QQQ I If~~Q~~~~~ I
1 . 64/256K option with 64K option installed
(JQ
~ 1 . 64K option
2 . 64K options
li~~~Q~~~~ I
I~~~Q~~~~~ I
I;~~Q~~~~~ j
I~~~~Q~QQQ I
1 . 64/256K option with 64K installed
2 . 32K options
~~~Q~Q~~~J
I;~~Q~~~~~ I
I;~~~Q~~~~ I
1 . 64K option
2 . 32K options
If~~Q~Q~~~ I
1 . 64/256K option with 128K installed
I;~~~QQ~QQ I
224K Total Memory
160K + (64K on System Board)
1 2 34 S 6 7 8
~~~Q~~~~~ I
tZl
I;~~~QQ~QQJ I;~~QQ~~~~J
1 - 64/256K option with 128K installed
:i.
..... 1 - 32K option
()
=-
tZl
"'::::
s·
(JQ
t;IJ
o
-I
tH
D X!pU;)ddy
o
-
256K Total Memory
I 192K + (64K on System Board)
.j:;o.
I;~~~QQ~QQ I I;~~QQ~~~~ I
1 - 64/256K option with 128K installed
1 - 64K option
I;~~Q~~~~~ I
,
I;~~~Q~QQQ I
1 - 64/256K option with 64K installed
2 - 64K options
I;~~QQ~~~~ I
I
I
I;~~~Q~~~~ I i
3 - 64K options
I;~~Q~~~~~ I
I;~~QQ~~~~ I
I;~~QQ~~~~ I
I;~~~QQ~QQ j
1 - 64/256K option: with 128K installed
2 - 32K options
I;~~QQQ~~~ I
288K Total Memory
224K + (64K on System Board)
I;~QQ~~QQQ
1 2 3 4 5 6 7
I;~~~QQQ~Q I I;~Q~~~~~~ I
1 - 64/256K option with 192K installed
1 - 32K option
\I'.l
~
~.
t:r'
\I'.l
('!)
::::
s·
(JCl
(Il
-
o I
VI
D X!pU;}ddV
o
-I
0'1
320K Total Memory
256K + (64K on System Board)
Vl
~
~.
System Board Switches Switch Block 1 I~DDQQDDDD I Switch Block 2 I;~~~Q~QQQJ I
::r'
Vl 64/256K Option 64K Option 32K Option
~ I
:::: Card Switches Card Switches Card Switches
I
S·
(JQ
l~~~~Q~~~~ I
(Il
I~~~~QQ~QQ I
1 - 64/256K option with 128K installed
2 - 64K options
I;~Q~~~~~~ I
I~~~~QQQ~Q I I;~Q~~~~~~ I
1 - 64/256K option with 192K installed
1 - 64K option
I;~Q~~~~~~ I
I;~~~QQQ~Q I
1 - 64/256K option with 192K installed
2 - 32K options
I;~Q~~Q~~~ I
1 - 64/256K option with 256K installed
I;~~~QQQQ~ I - - - -----
I
_ _ _ _ ~I
352K Total Memory
288K + (64K on System Board)
CZl
~ .
.....
~
=-
CZl
('1)
::::
S·
(JQ
~
-9
- .l
D X!pU;}ddV
o. 384K Total Memory
-
00 -- _ .. ----_ .. _ - - ---------
320K + (64K on System Board)
1 :2 3 4 5 6 7 8 1:2345678
Vl
....
~
System Board Switches Switch Block 1
mD~~DDDD Switch Block 2
~~~~~~~~~
- ... - --- ----
f)
=-
Vl
64/256K Option
Card Switches
64K Option
Card Switches
32K Option
Card Switches
,
Q
::::
....
I~~Q~~~~~~ I
::s
0Cl
I~~~~QQQ~Q I
rIl
1 - 64/256K option with 192K installed
2 - 64K options
I~~Q~Q~~~~ I
I;~~~Q~~O~ I
I~~~~QQQQ~ I I~~Q~Q~~~~ I
1 - 64/256K option with 256K installed
1 - 64K option
I~~Q~Q~~~~ I
1 - 64/256K option with 256K installed
2 - 32K options I~~~~QQQQ~ I
1;~Q~QQ~~~ I
416K Total Memory
352K + (64K on System Board)
=-
C/:l
~
.....
.....
s·
(JQ
til
-
<;1
\0
D X!pU~ddV
oI
448K Total Memory
384K + (64K on System Board)
N
o
Vl 1 2 3 4 5 6 7 8
~
~.
System Board Switches Switch Block 1
~DDQQDDDO Switch Block 2
~~~~~~~~~
=-
Vl 64/256K Option 64K Option 32K Option
~
....
~ Card Switches Card Switches Card Switches
=
rl~~~QQQQ~ I
(JQ
~
1 - 64/256K option with 256K installed
1 - 64/256K option with 64K installed
11~QQ~~~~~l
r~~Q~Q~QQQ l
1 - 64K option
11~Q~Q~~~~l
1 - 641256K option with 256K installed
2 - 64K options rl~~~QQQQ~l
11~QQ~~~~~l
11Q~~QQ~QQ 1
480K Total Memory
416K + (64K on System Board)
I;~~~QQQQ~ I
I;~Q~Q~~~~ I
1 - 64/256K option with 256K installed
1 - 64/256K option with 128K installed
I;~Q~QQ~QQ I
1 - 32K option
til
§.
.....
(')
t:r'
til
('I)
::::
s·
(JQ
!;Il
9N
- D X!pUJddV
oI
512K Total Memory
448K + (64K on System Board)
N
N
r.Il 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8
~
~.
System Board Switches Switch Block 1
;DD~~DDDD Switch Block 2
m~~~~~~~
::r
r.Il
~ 64/256K Option 64K Option 64K Option
::+ Card Switches Card Switches Card Switches
5·
(JQ
r~~~~QQQQ~ I
v.I
1 - 64/256K option with 256K installed
1 - 64/256K option with 128K installed
I~~QQQ~~~~l
I~~Q~QQOWJ
1 - 64K option
I~~Q~QQQ~O I
- - - - - _ .. _ - - - _ .. _ - - -
544K Total Memory
480K + (64K on System Board)
I~~~~QQQQ~ I
[;Q~~~~~~~ I
1 - 64/256K option with 256K installed
1 - 64/256K option with 192K installed
I;~Q~QQQ~Q I
1 - 32K option
- - - - - - _.. -
-
til
~
....
( ')
t:T'
til
('t>
::::
s·
OQ
tI>
o
N
~
D X!pU~ddV
576K Total Memory
9N 512K + (64K on System Board)
"'"
~O~~QQQQ I
Vl
~
g.
System Board Switches Switch Block 1 IrDOQQOODO I Switch Block 2
::r'
Vl 64/256K Option 64K Option 32K Option
~
Card Switches Card Switches Card Switches
~
5·
I~~~~QQQQ~ I
(JQ
Vl
1 - 64/256K option with 256K installed
1 - 64/256K option with 192K installed
I~Q~~~~~~~ I
I;~Q~QQQ~Q I
1 - 64K option
CIl
~.
....
n
:r
CIl
~
~
5'
(JQ
~
9N
Ul
D X!pU;}ddV
o I
640K Total Memory
576K + (64K on System Board)
N
0'\
~DDQQDDDD I
-
CI:l
~. System Board Switches Switch Block 1 Switch Block 2 ~~Q~~QQQQ
( ')
::r
CI:l 64/256K Option 64K Option 32K Option
~
:::: Card Switches Card Switches Card Switches
5'
0Cl
I~~~~QQQQ~ I
(/l
2 - 64/256K option with 256K installed
1 - 64K option
I;Q~~Q~~~~ I
I~~Q~QQQQ~ I
I;~Q~QQQQ~ I
I;Q~~Q~QQQ I
Extender Card Switch Settings
Extender Card
System Memory Switch Block Memory Segment
160K to 192K 11 ~ ~ ~ ~I 3
288K to 320K \1 D ~ ~ ~I 5
352K to 384K
11 D ~ ~ DI 6
416K to 448K II D ~ ~~ 7
544K to 576K
11 ~~~~ 9
608K to 640K
~I~~~DI A
G- 30 Switch Settings
Switch Setting Charts
Switch Block 1
~DDDDDDDD
Switch Function
Switch Block 2
Switch Function
1 2 :3 4 5 6 7 8 1 2 3 4 5 6 7 8
System Board Switches Switch Block 1 1;00 QQ0000I Switch Block 2 I;~~Q~~QQQ I
-- ---- -- --
1 - 32K option
l~~Q~~~~~~J I
I.f.l
~
g.
::r'
I.f.l
~
::::
5·
(JQ
tI.>
o I
(H
VI
D X!puaddV
320K Total Memory
<;) 64K + (256K on System Board)
w
0'1
til
~
System Board Switches Switch Block 1 l~ODQQDDDDJ Switch Block 2 ~~~~Q~QQQ I
~.
:::r' 64/256K Option 64K Option 32K Option
til Card Switches Card Switches Card Switches
~
::::
s·
(JQ
~
1 - 64/256K option with 64K installed
I~~Q~~~QQQ I
1 - 64K option
I;~Q~~~~~~ I
2 - 32K options
~~Q~~~~~~J
I~~Q~~Q~~~ I
352K Total Memory
96K + (256K on System Board)
I;~Q~~~QQQ I I;~Q~Q~~~~ I
,
1 - 64f256K option with 64K installed
1 - 32K option
I;~Q~~~~~~J I;~Q~Q~~~~ I
1 - 64K option
1 - 32K option
I;~Q~~~~~~ I
I;~Q~~Q~~~ I
-
til 3 - 32K options
~.
( ')
::r
til
~ I;~Q~Q~~~~ I
::::
s·
(JQ
rJl
oI
I.H
-...J
D X!pU;JddV
oI
384K Total Memory
128K + (256K on System Board)
<.H
I l
00
til
~
System Board Switches
Switch Block 1 ~ODQ~OODO_ Switch Block 2 I~~~~]~Q~
....
.....
(')
::r 64/256K Option 64K Option 32K Option
til Card Switches Card Switches Card Switches
~
:=:
s· I;~Q~~~QQQ I I~~Q~Q~~~~ I
1 - 64/256K option with 64K option installed
(JQ 1 - 64K option
(I>
2 - 64K options
I;~Q~~~~~~ I
I~~Q~Q~~~~ I
I~~Q~Q~~~~I
1;~Q~~~QQQ I
1 - 64/256K option with 64K installed
2 - 32K options
I;~Q~QQ~~~ I
I~~Q~Q~~~~ I
I;~Q~~~~~~ I
1 - 64K option
2 - 32K options
I;~Q~QQ~~~ I
1 - 64/256K option with 128K installed
I;~Q~~Q~QQ I
416K Total Memory
160K + (256K on System Boardl
oI
W
\0
D X!pU~ddV
o 448K Total Memory
192K + (256K on System Board)
~
o
CJ)
System Board Switches I Switch Block 1 I~ODQQDDDD I I Switch Block 2 I~~~QQ~QQQ I
~.
....
n 64/256K Option 64K Option 32K Option
t:r Card Switches Card Switches Card Switches
CJ)
I~~Q~~QQ~QI
~
:::: 1 - 64/256K option with 192K installed
5'
(JQ
I~~Q~~Q~QQ I I;~QQ~~~~~ I
~ 1 - 64/256K option with 128K installed
1 - 64K option
I;~Q~Q~~~~ I
I;~Q~~~QQQ I
1 - 64/256K option with 64K installed
2 - 64K options
I;~QQ~~~~~ I
l;~Q~~~~~~ I
3 - 64K options
I;~Q~Q~~~~ I
I;~QQ~~~~~ I
I;~QQ~~~~~ I
I~~Q~~Q~QQ I
1 - 64/256K option with 128 installed
2 - 32K options
I;~QQ~Q~~~ I
~--
-
480K Total Memory
224K + (256K on System Board)
I~~Q~~QQ~Q I I~~QQQ~~~~ I
1 - 64/256K option with 192K installed
1 - 32K option
CIl
:i,
.....
(')
::r'
CIl
~
.....
.....
5'
(JQ
Vl
o
-
~
D X!pU;)ddy
oI
.j::o.
512K Total Memory
256K + (256K on System Boardl
N
Vl
~
System Board Switches Switch Block 1 l~DDQQDDDD I Switch Block 2 11~QQQ~QQQ I
~.
::r'
64/256K Option 64K Option 32K Option
Vl Card Switches Card Switches Card Switches
~
::::
S·
(JQ
rn l1~QQ~~~~~J
11~Q~~Q~QQ I
1 - 64/256K option with 128K installed
2 - 64K options
11~QQQ~~~~ I
I~~Q~~QQ~Q I ~~QQQ~~~~ I
1 - 64/256K option with 192K installed
1 - 64K option
I~~QQQ~~~~ I
I~~Q~~QQ~Q I
1 - 64/256K option with 192K installed
2 - 32K options
11~QQQQ~~~
1 - 64/256K option with 256K installed
l~~Q~~QQQ~ I
544K Total Memory
288K + (256K on System Board I
CI.l
~
.....
(')
.
::r
CI.l
.....
~
.....
s·
(fQ
rIl
o,i.
w
D X!pU~ddV
576K Total Memory
Q 320K + (256K on System Board)
J;..
~
til
~
~.
System Board Switches
I Switch Block 1
1 2
;oD~~DDDD
J 4 5 6 7 8
I Switch Block 2
~~~~~QQ~Q -l
::r' 64/256K Option 64K Option 32K Option
til Card Switches Card Switches Card Switches
~
::+
s·
(JQ 1~~QQQ~~~~ I
'" 1 - 64/256K option with 192K installed
2 - 64K options 1~~Q~~QQ~Q I
I~Q~~~~~~~ I
I~Q~~~~QQQ I
1;~Q~~OQQ~ I I~Q~~~~~~~ J
1 - 64/256K option with 256K installed
1 - 64K option
I~Q~~~~~~~
1 - 64/256K option with 256K installed
2 - 32K options I~~Q~~QQQ~ I
I~Q~~~O~~~ J
- - --_._- -- - -
608K Total Memory
352K + (256K on System Board)
Vl
1 - 64K option
1 - 32K option I~~Q~~QQQ~ I I;Q~~~~~~~ I I;Q~~Q~~~~
~.
~
- - - - - - _.. - - - - - - - - - - - -
('l
::r'
Vl
~
~
S·
(JQ
'"
o
,i:..
til
D X!pU;}ddV
o 640K Total Memory
384K + (256K on System Board)
~
0\ - - - - - _ .. _ - - - _.. ---- ---- ---
CI.l
~.
System Board Switches Switch Block 1
liDOQQODDD I Switch Block 2
l;~Q~~QQQQ I
.....
n
:T 64/256K Option 64K Option 32K Option
CI.l Card Switches Card Switches Card Switches
(1) I
::+ I
:r
(JQ
1 - 64/256K option with 256K installed I;~Q~~QQQ~ I
I;Q~~Q~~~~ I
t:Il
1 - 64/256K option with 64K installed !
I;Q~~~~QQQ I
1 - 64K option
I;Q~~~~~~~J
I;~Q~~QQQ~ I
1 - 64/256K option with 256K installed
2 - 64K options
I;Q~~Q~~~~ I
I;Q~~~Q~QQ I
Extender Card Switch Settings
16K to 64K
r~~~~1 1
96K to 128K
r~~~~1 2
160K to 192K
r~~~~1 3
224K to 256K
r~~~~1 4
480K to 512K
r~~~~1 8
544K to 576K
r~~~~1 9
J.Ls: Microsecond.
A/N: Alphanumeric.
Glossary H-l
ASCII: American Standard Code for Information Interchange.
H-2 Glossary
binary synchronous communications (BSC): A standardized
procedure, using a set of control characters and control character
sequences for synchronous transmission of binary.:.coded data
between stations.
Glossary H-3
CAS: Column address strobe.
H-4 Glossary
configuration: (1) The arrangement of a computer system or
network as defined by the nature, number, and the chief
characteristics of its functional units. More specifically, the term
configuration may refer to a hardware configuration or a software
configuration. (2) The devices and programs that make up a
system, subsystem, or network.
cylinder: (1) The set of all tracks with the same nominal distance
from the axis about which the disk rotates. (2) The tracks of a
disk storage device that can be accessed without repositioning the
access mechanism.
Glossary H-5
decoupling capacitor: A capacitor that provides a low-
impedance path to ground to prevent common coupling between
states of a circuit.
H-6 Glossary
EBCDIC: Extended binary-coded decimal interchange code.
Glossary H-7
gate: (1) A device or circuit that has no output until it is triggered
into operation by one or more enabling signals, or until an input
signal exceeds a predetermined threshold amplitude. (2) A signal
that triggers the passage of other signals through a circuit.
Hz: Hertz.
H-8 Glossary
light-emitting diode (LED): A semi-conductor chip that gives
off visible or infrared light when activated.
rnA: Milliampere.
MHz: Megahertz.
Glossary H-9
millisecond (ms): One thousandth of a second.
H-I0 Glossary
nonconjunction: The dyadic boolean operation the result of
which has the boolean value 0 if, and only if, each operand has
the boolean value 1.
Glossary H-ll
parallel: (1) Pertaining to the concurrent or simultaneous
operation of two or more devices, or to the concurrent
performance of two or more activities. (2) Pertaining to the
concurrent or simultaneous occurrence of two or more related
activities in multiple devices or channels. (3) Pertaining to the
simultaneity of two or more processes. (4) Pertaining to the
simultaneous processing of the individual parts of a whole, such as
the bits of a character and the characters of a word, using separate
facilities for the various parts. (5) Contrast with serial.
H-12 Glossary
PROM: Programmable read-only memory.
RGBI: Red-green-blue-intensity.
Glossary H-13
ROM/BIOS: The ROM resident basic input/output system,
which provides the device level control ofthe major I/O devices in
the computer system.
scan line: The use of a cathode beam to test the cathode ray tube
of a display used with a personal computer.
serdes: Serializer/deserializer.
H-14 Glossary
software: (1) Computer programs, procedures, rules, and
possibly associated documentation concerned with the operation
of a data processing system. (2) Contrast with hardware.
Glossary H -15
Synchronous Data Link Control (SLDC): A protocol for the
management of data transfer over a data communications link.
track: (1) The path or one of the set of paths, parallel to the
reference edge on a data medium, associated with a single reading
or writing component as the data medium moves past the
component. (2) The portion of a moving data medium such as a
drum, tape, or disk, that is accessible to a given reading head
position.
H-16 Glossary
BIBLIOGRAPHY
Bibliography 1-1
Notes:
1-2 Bibliography
INDEX
A
A/N mode (alphanumeric mode) 1-131
AO-AI9 (Address Bits 0 to 19), I/O channel 1-18
adapter card with ROM 2-10
adapter,
asynchronous communication 1-223
binary synchronous communication 1-251
color/graphics monitor 1-131
diskette drive 1-159
fixed disk drive 1-187
game control 1-211
monochrome display and printer 1-129
printer 1-117
synchronous data link control 1-271
Address Bits 0 to 19 (AO-AI9), I/O channel 1-131
Address Bits (asynchronous communication) 1-225
Address Enable (AEN), I/O channel 1-22
Address Latch Enable (ALE), I/O channel 1-20
address map, I/O 1-10
AEN (Address Enable), I/O channel 1-22
ALE (Address Latch Enable), I/O channel 1-20
all points addressable mode 1-129, 1-132
alphanumeric mode, 1-136
high resolution 1-137
low resolution 1-137
alt (keyboard extended code) 2-15
APA mode (all points addressable mode) 1-131, 1-132
asynchronous communications adapter, 1-223
adapter address jumper module 1-249
address bits 1~ 225
block diagram 1-224
connector specifications 1-250
current loop interface 1-227
divisor latch least significant bit 1-237
divisor latch most significant bit 1-238
I/O decode 1-225
INS8250 functional pin description 1-229
INS8250 input signals 1-229
INS8250 input/output signals 1-233
INS8250 output signals 1-232
interface descriptions 1-226
interface format jumper module 1-249
Index J-l
interrupt control functions 1-237
interrupt enable register 1-243
interrupt identification register 1-240
interrupts 1-226
line control register 1-235
line status register 1-239
modem control register 1-244
modem status register 1-246
modes of operation 1-224
programmable baud rate generator 1-237
programming considerations 1-234
receiver buffer register 1-247
reset functions 1-230
transmitter holding register 1-248
voltage interchange information 1-228
attributes, character
(see character attributes)
B
BASIC reserved interrupts 2-7
BASIC,
DEF SEG 2-8
reserved interrupt 2-7
screen editor keyboard functions 2-20
workspace variables 2-8
baud rate generator 1-237
bell (printer) 1-102
bibliography 1-1
binary synchronous communications adapter, 1-251
8251A programming procedures 1-262
8251A universal synchronous/asynchronous
receiver/transmitter 1-252
8253-5 programmable interval timer 1-257
8255A-5 programmable peripheral interface 1-256
block diagram 1-252
command instruction format 1-264
connector information 1-269
data bus buffer 1-253
interface signal information 1-266
interrupt information 1-268
mode instruction definition 1-263
read/write control logic 1-253
receive 1-258
J-2 Index
receiver buffer 1-255
receiver control 1-255
status read definition 1-265
transmit 1-265
transmitter buffer 1-254
transmitter control 1-255
typical programming sequence 1-259
BIOS,
cassette logic (see cassette logic BIOS)
fixed disk ROM A-87
memory map 2-9
parameter passing 2-3
software interrupt listing 2-4
system ROM A-2
use of 2-2
bisync communications
(see binary synchronous communications)
block diagram
8251A universal synchronous/asynchronous
receiver/transmitter 1-252
8273 SDLC protocol controller 1-272
asynchronous communications adapter 1-224
cassette circuits 1-29
color/graphics monitor adapter 1-134
coprocessor 1-37
diskette drive adapter 1-160
expansion board 1-80
extender card 1-87
fixed disk drive adapter 1-188
game control adapter 1-211
keyboard interface 1-75
monochrome display adapter 1-124
printer adapter 1-118
prototype card 1-218
receiver card 1-89
speaker drive system 1-24
synchronous data link control adapter 1-271
system 1-2
break (keyboard extended code) 2-17
BSC adapter
(see binary synchronous communications)
Index J-3
c
cable
communications adapter 1-301
expansion unit 1-79
printer 1-91
cancel (printer) 1-103
cancel ignore paper end (printer) 1-103
cancel skip perforation (printer) 1-109
caps lock (keyboard extended code) 2-16
card dimensions and specifications E-4
card,
dimensions and specifications E-4
extender 1-85
prototype 1-217
receiver 1-88
carriage return (printer) 1-102
cassette circuit block diagram
motor control 1-30
read hardware 1-29
write hardware 1-29
cassette interface, 1-28
connector specifications 1-31
cassette logic,
BIOS 2-21
cassette read 2-23
cassette write 2-22
data record architecture 2-24
data record components 2-24
error recovery 2-24
interrupt 2-21
software algorithms 2-28
cassette read 2-23
cassette ROM BIOS 2-21
cassette write 2-22
CCITT, F-l
standards F-l
character attributes
color/graphics monitor adapter 1-140
monochrome display adapter 1-140
character codes
keyboard 2-11
J-4 Index
character set,
graphics printer (set 1) 1-113
graphics printer (set 2) 1-115
matrix printer 1-111
quick reference C-12
clear printer buffer (printer) 1-110
CLK (system clock), I/O channel 1-19
color display 1-157
operating characteristics 1-157
specifications E-2
color select register 1-149
color/graphics monitor adapter 1-131
6845 register description 1-148
alphanumeric mode 1-136
alphanumeric mode (high-resolution) 1-144
alphanumeric mode (low-resolution) 1-142
block diagram 1-134
character attributes 1-140
color-select register 1-149
composite connector specifications 1-155
connector specifications 1-156
direct-drive connector specifications 1-155
display buffer basic operation 1-145
graphics mode 1-141
graphics mode (high resolution) 1-144
graphics mode (low resolution) 1-142
graphic mode (medium resolution) 1-142
light pen connector specifications 1-156
major components 1-135
memory requirements 1-154
mode control and status register 1-149
mode register summary 1-152
mode select register 1-151
programming considerations 1-147
RF modulator connector specifications 1-156
sequence of events 1-153
status register 1-153
summary of available colors 1-146
colors, summary of available 1-146
command status register 0 1-172
command status register 1 1-173
command status register 2 1-174
command status register 3 1-175
Index J-5
command summary,
diskette drive adapter 1-166
fixed disk drive adapter 1-195
communications adapter cable 1-301
connector specifications 1-302
communications F-l
establishing a link F-3
component diagram,
system board 1-7
compressed (printer) 1-103
compressed off (printer) 1-103
connector specifications,
asynchronous communications adapter 1-250
binary synchronous communications 1-269
cassette interface 1-31
color/graphics monitor adapter 1-155
communications adapter cable 1-302
diskette drive adapter (external) 1-182
diskette drive adapter (internal) 1-181
game control adapter 1-216
keyboard interface 1-78
monochrome display adapter 1-128
printer adapter 1-122
synchronous data link control adapter 1-299
connectors,
power supply (system unit) 1-26
power supply (expansion unit) 1-83
considerations, programming
(see programming considerations)
control byte, fixed disk drive adapter 1-194
control codes, printer 1-10 1
control/read/write logic 1-274
coprocessor,
(see math coprocessor)
ctrl (keyboard extended code) 2-15
current loop interface 1-227
D
DO-D7 (data bits 0 to 7), I/O channel 1-18
DACKO-DACK3 (DMA Acknowledge 0 to 3), I/O channel 1-21
Data Bits 0 to 7 (DO-D7), I/O channel 1-18
data flow,
system board 1-8
J-6 Index
data record architecture, cassette 2-24
data record components, cassette 2-24
data register 1-193
data transfer mode register 1-288
DEF SEG (default segment workspace) 2-8
default workspace segment (DEF SEG) 2-8
diagram, block (see block diagram)
digital output register 1-161
diskette drive adapter 1-159
adapter input 1-179
adapter output 1-178
block diagram 1-160
command status register 0 1-172
command status register 1 1-173
command status register 2 1-174
command status register 3 1-175
command summary 1-166
connector specifications (external) 1-182
connector specifications (internal) 1-181
digital-output register 1-161
DPC registers 1-174
drive A and B interface 1-178
drive constants 1-176
FDC constants 1-176
floppy disk controller 1-162
functional description 1-161
programming considerations 1-164
programming summary 1-175
symbol descriptions 1-164
system I/O channel interface 1-176
diskette drive, 1-183
electrical specifications 1-184
mechanical specifications 1-184
switch settings G-1
diskettes 1-1 85
display adapter type switch settings G-1
display,
color 1-157
monochrome 1-123
divisor latch,
least significant bit 1-237
most significant bit 1-238
DMA Acknowledge 0 to 3 (DACKO-DACK3),
I/O channel 1-21
Index J-7
DMA Request 1 to 3 (DRQI-DRQ3), I/O channel 1-21
DOS reserved interrupts 2-9
DOS,
keyboard functions 2-21
reserved interrupts 2-9
double strike (printer) 1-106
double strike off (printer) 1-107
double width (printer) 1-99, 1-103
double width off (printer) 1-103
DPC registers 1-175
DRQI-DRQ3 (DMA Request 1 to 3), I/O channel 1-21
E
EIA, F-l
standards F-l
emphasized (printer) 1-106
emphasized off (printer) 1-106
error recovery, cassette 2-24
escape (printer) 1-104
establishing a communications link F-3
expansion board, 1-79
block diagram 1-80
expansion channel 1-81
expansion unit, 1-79
cable 1-79
expansion board 1-79
expansion channel 1-81
extender card 1-85
interface information 1-90
power supply 1-83
power supply connectors 1-83
receiver card 1-88
specifications E-2
extender card, 1-85
block diagram 1-87
programming considerations 1-86
switch settings G-l
J-8 Index
F
FABS 1-44
FADD 1-43
FBLD 1-45
FBSTP 1-46
FCHS 1-46
FCLEX/FNCLEX 1-46
FCOM 1-47
FCOMP 1-47
FCOMPP 1-48
FDECSTP 1-48
FDISI/FNDISI 1-48
FDIV 1-49
FDIVR 1-50
FENI/FNENI 1-51
FFREE 1-51
FICOM 1-51
FICOMP 1-52
FILD 1-52
FINCSTP 1-52
FINIT/FNINIT 1-53
FIST 1-54
FISTP 1-54
fixed disk controller 1-185
fixed disk drive 1-201
fixed disk drive adapter 1-185
block diagram 1-186
command summary 1-193
control byte 1-192
data register 1-191
fixed disk controller 1-185
interface specifications 1-200
programming considerations 1-187
programming summary 1-197
ROM BIOS listing A-87
sense bytes 1-187
status register 1-187
system I/O channel interface 1-198
fixed disk drive, 1-201
electrical specifications 1-202
mechanical specifications 1-202
Index J-9
fixed disk ROM BIOS A-87
FLD 1-55
FLDCW 1-55
FLDENV 1-56
FLDLG2 1-56
FLDLN2 1-56
FLDL2E 1-57
FLDL2T 1-57
FLDPI 1-57
FLDZ 1-58
FLDI 1-58
floppy disk controller 1-160
FMUL 1-59
FNOP 1-60
FPATAN 1-60
FPREM 1-60
FPTAN 1-61
FRNDINT 1-61
FRSTOR 1-61
form feed (printer) 1-102
FSAVE/FNSAVE 1-62
FSCALE 1-62
FSQRT 1-62
FST 1-63
FSTCW/FNSTCW 1-63
FSTENV/FNSTENV 1-64
FSTP 1-64
FSTSW/FNSTSW 1-65
FSUB 1-65
FSUBR 1-66
FTST 1-67
FWAIT 1-68
FXAM 1-68
FXCH 1-69
FXTRACT 1-70
FYL2X 1-70
FYL2XPI 1-71
F2XMl 1-71
G
game control adapter, 1-211
block diagram 1-211
connector specifications 1-216
J-I0 Index
functional description 1-212
I/O channel description 1-213
interface description 1-214
joy stick schematic diagram 1-215
glossary, H-l
graphics mode, 1-141
high resolution 1-144
low resolution 1-142
medium resolution 1-142
H
hardware interrupt listing 1-11
home head (printer) 1-105
horizontal tab (printer) 1-102
I
I/O address map 1-10
I/O bit map, 8255A 1-12
I/O CH CK (I/O Channel Check), I/O channel 1-20
I/O CH RDY (I/O Channel Ready), I/O channel 1-20
I/O Channel Check (I/O CH CK), I/O channel 1-20
I/O channel interface,
diskette drive adapter 1-176
fixed disk drive adapter 1-187
prototype card 1-217
I/O Channel Ready (I/O CH RDY), I/O channel 1-20
I/O channel, 1-17
-I/O Channel Check (I/O CH CK) 1-20
-I/O Read Command (lOR) 1-20
-I/O Write Command (lOW) 1-21
Address Bits 0 to 19 (AO-AI9) 1-20
Address Enable (AEN) 1-21
Address Latch Enable (ALE) 1-20
Data Bits 0 to 7 (DO-D7) 1-20
description 1-20
diagram 1-18
DMA Request 1 to 3 (DRQI-DRQ3) 1-21
I/O Channel Ready (I/O CH RDY) 1-20
Interrupt Request 2 to 7 (IRQ2-IRQ7) 1-20
Memory Read Command (MEMR) 1-21
Index J-11
Memory Write Command (MEMW) 1-21
Oscillator (OSC) 1-19
Reset Drive (RESET DRV) 1-20
System Clock (CLK) 1-20
Terminal Count (T/C) 1-22
I/O Read Command (lOR), I/O channel 1-21
I/O Write Command (IOW),I/O channel 1-21
IBM 10MB Fixed Disk Drive 1-201
IBM 5-1/4" Diskette Drive 1-183
IBM 5-1/4" Diskette Drive Adapter 1-159
IBM 80 CPS Graphics Printer 1-91
IBM 80 CPS Matrix Printer 1-91
IBM 80 CPS Printers 1-91
IBM Asynchronous Communications Adapter 1-223
IBM Binary Synchronous Communications Adapter 1-251
IBM Color Display 1-157
IBM Color/Graphics Monitor Adapter 1-131
IBM Communicatons Adapter Cable 1-301
IBM Fixed Disk Drive Adapter 1-187
IBM Game Control Adapter 1-211
IBM Memory Expansion Options 1-205
IBM Monochrome Display and Printer Adapter 1-223
IBM Monochrome Display 1-129
IBM Personal Computer Math Coprocessor 1-33
IBM Printer Adapter 1-117
IBM Prototype Card 1-215
IBM Synchronous Data Link Controller Adapter 1-271
ignore paper end (printer) 1-104
INS8250,
(see National Semiconductor INS8250)
Intel 8088 microprocessor,
arithmetic B-7
conditional transfer operations B-14
control transfer B-ll
data transfer B-5
hardware interrupt listing 1-8
instruction set index B-18
instruction set matrix B-16
logic B-9
memory segmentation model B-4
operand summary B-15
processor control B-15
register model B-2
J-12 Index
second instruction byte summary B-3
segment override prefix B-4
software interrupt listing 2-4
string manipulation B-I0
use of segment override B-4
Intel 8253-5 Programmable Interval Timer
(see synchronous data link control communications adapter)
Intel 8255A Programmable Peripheral Interface
I/O bit map 1-12
Intel 8255A-5 Programmable Peripheral Interface
(see synchronous data link control communications adapter)
Intel 8273 SDLC Protocol Controller
(see synchronous data link control communications adapter)
block diagram 1-273
interrupt enable register 1-243
interrupt identification register 1-243
interrupt listing,
8088 hardware 1-11
8088 software 2-4
Interrupt Request 1 to 7 (IRQ2-IRQ7), I/O channel 1-20
interrupts,
8088 hardware 1-11
8088 software 2-4
asynchronous communications adapter 1-223
BASIC reserved 2-7
DOS reserved 2-21
special 2-7
lOR (I/O Read Command), I/O channel 1-20
lOW (I/O Write Command), I/O channel 1-21
IRQ2-IRQ7 (Interrupt Request 2 to 7), I/O channel 1-20
J
joy stick,
positions 1-221
schematic diagram 1-215
jumper module, asynchronous communications adapter 1-249
Index J-13
K
keyboard extended codes,
alt 2-15
break 2-16
caps lock 2-16
ctrl 2-15
pause 2-17
print screen 2-17
scroll lock 2-16
shift 2-15
shift key priorities 2-16
shift states 2-15
system reset 2-16
keyboard 1-73
BASIC screen editor special functions 2-20
character codes 2-11
commonly used functions 2-18
diagram 1-76
DOS special functions 2-20
encoding 2-11
extended functions 2-14
interface block diagram 1-75
interface connector specifications 1-78
scan codes 1-77
specifications E-l
L
light pen connector specifications 1-156
line control register 1-235
line feed (printer) 1-102
line status register 1-239
logic diagrams D-l
M
math coprocessor 1-33
block diagram 1-37
control unit 1-37
control word 1-40
J-14 Index
data types 1-34
exception pointers 1-41
FABS 1-44
FADD 1-44
FBLD 1-45
FBSTP 1-46
FCHS 1-46
FCLEX/FNCLEX 1-46
FCOM 1-47
FCOMP 1-47
FCOMPP 1-48
FDECSTP 1-48
FDISI/FNDISI 1-48
FDIV 1-49
FDIVR 1-50
FENI/FNENI 1-51
FFREE 1-51
FICOM 1-51
FICOMP 1-52
FILD 1-52
FINCSTP 1-52
FINIT/FNINIT 1-53
FIST 1-54
FISTP 1-54
FLD 1-55
FLDCW 1-55
FLDENV 1-56
FLDLG2 1-56
FLDLN2 1-56
FLDL2E 1-57
FLDL2T 1-57
FLDPI 1-57
FLDZ 1-58
FLDI 1-58
FMUL 1-59
FNOP 1-60
FPATAN 1-60
FPREM 1-60
FPTAN 1-61
FRND INT 1-61
FRS TOR 1-61
Index J-15
FSAVE/FNSAVE 1-62
FSCALE 1-62
FSQRT 1-62
FST 1-63
FSTCW/FNSTCW 1-63
FSTENV/FNSTENV 1-64
FSTP 1-64
FSTSW/FNSTSW 1-65
FSUB 1-65
FSUBR 1-66
FTST 1-67
FWAIT 1-68
FXAM 1-68
FXCH 1-69
FXTRACT 1-70
FYL2X 1-70
FYL2XPI 1-71
F2XMl 1-71
hardware interface 1-35
instruction set 1-43
interconnection 1-36
number system 1-42
programming interface 1-34
register stack 1-38
status word 1-39
tag word 1-41
memory expansion options, 1-205
DIP module start address 1-208
memory module description 1-206
memory module pin configuration 1-207
memory option switch settings G-l
R/W memory operating characteristics 1-206
switch-configurable start address 1-208
memory locations,
reserved 2-8
memory map,
BIOS 2-9
system 1-13
Memory Read Command (MEMR), I/O channel 1-21
memory switch settings, G-l
extender card G-I
memory options G-l
system board G-l
J-16 Index
Memory Write Command (MEMW), I/O channel 1-21
(MEMR) Memory Read Command, I/O channel 1-21
(MEMW) Memory Write Command, I/O channel 1-21
microprocessor (see Intel 8088 microprocessor)
mode control and status register 1-149
mode select register 1-151
modem control register 1-244
modem status register 1-246
monochrome display 1-129
monochrome display and printer adapter 1-123
monochrome display adapter 1-123
6845 CRT control port 1-127
6845 CRT status port 1-127
block diagram 1-124
character attributes 1-138
connector specifications 1-128
I/O address and bit map 1-127
programming considerations 1-125
monochrome display, 1-129
operating characteristics 1-129
specifications E-3
Motorola 6845 CRT Controller,
(see color/graphics monitor adapter)
(see monochrome display adapter)
N
National Semiconductor INS8250 Asynchronous
(see asynchronous communications adapter)
functional pin description 1-229
input signals 1-229
input/output signals 1-233
output signals 1-232
null (printer) 1-102
o
one bit delay mode register 1-289
operating mode register 1-289
OSC (oscillator) 1-19
Oscillator (OSC), I/O channel 1-19
over-voltage/over-current (expansion unit) 1-84
over-voltage/over-current (system unit) 1-27
Index J-17
p
parameter passing (ROM BIOS) 2-3
pause (keyboard extended code) 2-17
power good signal (expansion unit) 1-84
power good signal (system unit) 1-27
power supply (expansion unit) 1-82
connectors 1-83
input requirements 1-82
over-voltage/current protection 1-84
pin assignments 1-83
power good signal 1-83
Vac output 1-82
Vdc output 1-82
power supply (system unit) 1-23
connectors and pin assignments 1-26
input requirements 1-24
over-voltage/current protection 1-27
pin assignments 1-26
power good signal 1-27
Vac output 1-25
Vdc output 1-25
print screen (keyboard extended code) 2-17
printer adapter, 1-117
block diagram 1-118
connector specifications 1-122
programming considerations 1-119
printer control codes, 1-101
1I8-inch line feeding 1-104
1920 bit-image graphics mode 1-110
480 bit-image graphics mode 1-107
7!7 2-inch line feeding 1-104
960 bit-image graphics mode 1-109
960 bit-image graphics mode normal speed 1-110
bell 1-102
cancel 1-103
cancel ignore paper end 1-105
cancel skip perforation 1-109
carriage return 1-102
clear printer buffer 1-110
compressed 1-103
compressed off 1-103
double strike 1-106
double strike off 1-107
double width 1-103, 1-110
J-18 Index
double width off 1-103
emphasized 1-106
emphasized off 1-106
escape 1-103
form feed 1-102
home head 1-105
horizontal tab 1-102
ignore paper end 1-104
line feed 1-102
null 1-102
printer deselected 1-103
printer selected 1-103
select character set 1 1-104
select character set 2 1-104
set horizontal tab stops 1-106
set lines per page 1-106
set skip perforation 1-109
set variable line feeding 1-105, 1-107
set vertical tabs 1-105
starts variable line feeding 1-105
subscript/superscript 1-109
subscript/superscript off 1-109
underline 1-104
unidirectional printing 1-109
vertical tab 1-102
printer deselected (printer) 1-103
printer selected (printer) 1-103
printer, 1-91
additional specifications 1-93
cable 1-91
connector pin assignment 1-97
control codes 1-101
graphic character set 1 1-113
graphic character set 2 1-115
interface signal descriptions 1-96
matrix character set 1-111
modes 1-100
parallel interface 1-96
parallel interface timirtg diagram 1-96
specifications 1-92, E-3
switch locations 1-94
switch settings 1-94
processor (see Intel 8088 micrprocessor)
programmable baud rate generator 1-237
Index J-19
programming considerations,
asynchronous communications adapter 1-234
binary synchronous communications adapter 1-259
color/graphics monitor adapter 1-131
diskette drive adapter 1-159
extender card 1-86
fixed disk drive adapter 1-187
monochrome display adapter 1-123
printer adapter 1-123
receiver card 1-88
SDLC adapter 1-281
prototype card, 1-217
block diagram 1-218
external interface 1-222
I/O channel interface 1-219
layout 1-219
system loading and power limitations 1-221
Q
quick reference, character set C-12
R
receiver buffer register 1-24 7
receiver card, 1-88
block diagram 1-89
programming considerations 1-86
register,
6845 description (color/graphic adapter) 1-146
color select (color/graphic adapter) 1-147
command status 0 (diskette drive adapter) 1-172
command status 1 (diskette drive adapter) 1-173
command status 2 (diskette drive adapter) 1-174
command status 3 (diskette drive adapter) 1-175
data (fixed disk drive adapter) 1-192
data transfer mode (SDLC) 1-288
digital output (diskette drive adapter) 1-161
DPC (diskette drive adapter) 1-175
interrupt enable (asynchronous communications) 1-243
interrupt identification (asynchronous communications) 1-241
line control (asynchronous communications) 1-234
line status (asynchronous communications) 1-239
mode control and status (color/graphics) 1-149
J-20 Index
mode select ( color/graphics) 1-151
modem control (asynchronous communications) 1-244
modem status (asynchronous communications) 1-246
one-bit delay mode (SDLC) 1-289
operating mode (SDLC) 1-286
receiver buffer (asynchronous communications) 1-247
serial I/O mode (SDLC) 1-288
status (color/graphics) 1-153
status (fixed disk drive adapter) 1-187
transmitter holding (asynchronous communications) 1-248
reserved interrupts,
BASIC and DOS 2-7
reserved memory locations 2-7
Reset Drive (RESET DRV), I/O channel 1-19
RESET DRV (Reset Drive), I/O channel 1-19
RF modulator connector specifications 1-156
ROM BIOS, 2-2
Cassette A-74
Fixed Disk A-87
System A-2
ROM, adapter cards with 2-10
RS-232C,
interface standards F-2
s
scan codes,
keyboard 1-77
scroll lock (keyboard extended code) 2-16
SDLC (see synchronous data link control)
select character set 1 (printer) 1-104
select character set 2 (printer) 1-104
sense bytes, fixed disk drive adapter 1-189
serial I/O mode register 1-288
set horizontal tab stops (printer) 1-106
set lines per page (printer) 1-106
set skip perforation (printer) 1-109
set variable line feeding (printer) 1-105, 1-107
set vertical tabs (printer) 1-105
shift (keyboard extended code) 2-15
shift key priorities (keyboard code) 2-16
shift states (keyboard extended code) 2-15
software interrupt listing 2-4
speaker connector 1-23
speaker drive system 1-23
speaker interface 1-23
Index J-21
specifications,
80 CPS printers E-3
color display E-2
expansion unit E-2
keyboard E-l
monochrome display E-3
printer 1-92
printer (additional) 1-93
system unit E-l
stack area 2-7
starts variable line feeding (printer) 1-104
status register,
color/graphics monitor adapter 1-154
fixed disk drive adapter 1-189
synchronous data link control adapter 1-282
sUbscript/ superscript (printer) 1-109
subscript/superscript off (printer) 1-109
switch settings, G-l
diskette drive G-l
display adapter type G-l
extender card G-l
memory options G-l
printer 1-91
system board G-l
system board memory G-l
synchronous data link control communications adapter, 1-271
8253-5 interval timer control word 1-285
8253-5 progammable interval timer 1-281
8255A-5 port A assignments 1-280
8255A-5 port B assignments 1-280
8255A-5 port C assignments 1-281
8255A-5 programmable peripheral interface 1-280
8273 command phase flow chart 1-292
8273 commands 1-291
8273 control/read/write registers 1-275
8273 data interfaces 1-276
8273 elements of data transfer interface 1-276
8273 mode register commands 1-288
8273 modem control block 1-277
8273 modem control port A 1-277
8273 modem control port B 1-278
8273 modem interface 1-277
8273 protocol controller operations 1-271
8273 protocol controller structure 1-273
8273 register selection 1-274
8273 SDLC protocol controller block diagram 1-273
J-22 Index
8273 transmit/receiver timing 1-279
block diagram 1-271
command phase 1-290
connector specifications 1-299
control/read/write logic 1-274
data transfer mode register 1-288
device addresses 1-297
execution phase 1-293
general receive 1-294
initialization/configuration commands 1-286
initializing the SDLC adapter 1-283
interface information 1-298
interrupt information 1-297
one bit delay code register 1-289
operating mode register 1-286
partial byte received codes 1-296
processor interface 1-274
programming considerations 1-281
protocol control module features 1-272
protocol controller operations 1-272
result code summary 1-296
result phase 1-291
selective receive 1-295
serial data timing block 1-279
serial I/O mode register 1-288
status register format 1-282
transmit 1-294
system block diagram 1-2
system board, 1-3
component diagram 1-7
data flow 1-8
R/W memory operating characteristics 1-202
switch settings G-l
System Clock (CLK), I/O channel 1-19
system memory map 1-13
system reset (keyboard extended code) 2-16
system ROM BIOS A-2
system unit, 1-3
cassette interface 1-31
I/O channel 1-17
I/O channel diagram 1-18
keyboard interface 1-78
power supply 1-23
speaker interface 1-22
specifications E-l
system board 1-3
Index J-23
T
T/C (Terminal Count), I/O channel 1-22
transmitter holding register 1-248
u
underline (printer) 1-104
unidirectional printer (printer) 1-109
v
Vac output,
expansion unit 1-82
system unit 1-25
Vdc output,
expansion unit 1-82
system unit 1-25
vectors with special meanings 2-5
vertical tab (printer) 1-102
voltage interchange,
asynchronous communications adapter 1-228
Numerics
1/8 inch line feeding (printer) 1-104
1920 bit-image graphics mode (printer) 1-110
480 bit-image graphics mode (printer) 1-107
6845,
(see color/graphics monitor adapter)
(see monochrome display adapter)
7/72 inch line feeding (printer) 1-104
8088,
(see Intel 8088 microprocessor)
8250,
(see asynchronous communications adapter)
8253-5,
(see synchronous data link control adapter)
8255A 1-12
8255A-5,
(see synchronous data link control adapter)
8273,
(see synchronous data link control adapter)
960 bit-image graphics mode (printer) 1-109
960 bit-image graphics mode normal speed (printer) 1-110
J-24 Index
---
- ----
--- - ----
-
------
--_.-
-
-- - ---
---
The Personal Computer
fIardvvare Library
Comments:
If you vvish a reply, provide your name and address in this space.
Name _____________________
Address _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __
City State ____________
Zip Code _ _ _ _ __
NO POSTAGE
NECESSARY
111111 IF MAILED
IN THE
UNITED STATES
aJa4 PIO:::!
Comments:
If you vvish a reply, provide your name and address in this space.
Name _____________________
Address _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __
City State _ _ _ _ _ _ _ _ __
Zip Code _ _ _ _ __
NO POSTAGE
NECESSARY
111111 IF MAILED
IN THE
UNITED STATES
a1a4 PIO:::!
Comments:
Name ____________________~
Address _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __
City State _ _ _ _ _ _ _ _ _ __
Zip Code _ _ _ _ __
NO POSTAGE
NECESSARY
111111 IF MAILED
IN THE
UNITED STATES
aJa4 PIO:!
1502234
Printed in United States of America