1502237_PC_XT_Technical_Reference_Apr83 1502237 PC XT Technical Reference Apr83
User Manual: 1502237_PC_XT_Technical_Reference_Apr83
Open the PDF directly: View PDF .Page Count: 628
LIMITED WARRANTY
The International Business Machines Corporation warrants this IBM Personal
Computer Product to be in good working order for a period of 90 days from the
date of purchase from IBM or an authorized IBM Personal Computer dealer.
Should this Product fail to be in good working order at any time during this
90-day warranty period, IBM wilL at its option, repair or replace this Product
at no additional charge except as set forth below. Repair parts and replacement
Products will be furnished on an exchange basis and will be either reconditioned
or new. All replaced parts and Products become the property of IBM. This
limited warranty does not include service to repair damage to the Product
resulting from accident, disaster, misuse. abuse, or non-IBM modification of
the Product.
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 thc 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 I328-W, Boca Raton, Florida 33432. for further information.
ALL EXPRESS AND IMPLIED WARRANTIES FOR THIS PRODUCT
INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE, ARE LIMITED IN DURATION TO A
PERIOD OF 90 DAYS FROM THE DATE OF PURCHASE, AND NO
WARRANTIES, WHETHER EXPRESS OR IMPLIED, WILL APPLY AFTER
THIS PERIOD. SOME STATES DO NOT ALLOW LIMITATIONS ON HOW
LONG AN IMPLIED WARRANTY LASTS. SO THE ABOVE LIMIT ATIONS
MA Y NOT APPLY TO YOu.
IF THIS PRODUCT IS NOT IN GOOD WORKING ORDER AS WARRANTED
ABOVE, YOUR SOLE REMEDY SHALL BE REPAIR OR REPLACEMENT
AS PROVIDED ABOVE. IN NO EVENT WILL IBM BE LIABLE TO YOU FOR
ANY DAMAGES, INCLUDING ANY LOST PROFITS, LOST SAVINGS OR
OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF
THE USE OF OR INABILITY TO USE SUCH PRODUCT, EVEN IF IBM OR
AN AUTHORIZED IBM PERSONAL COMPUTER DEALER HAS BEEN
ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, OR FOR ANY
CLAIM BY ANY OTHER PARTY.
SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMIT A TION OF
INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR CONSUMER
PRODUCTS, SO THE ABOVE LIMITATIONS OR EXCLUSIONS MAY NOT
APPLY TO YOU.
THIS WARRANTY GIVES YOU SPECIFIC LEGAL RIGHTS, AND YOU MAY
ALSO HAVE OTHER RIGHTS WHICH MAY VARY FROM STATE TO ST ATE.
------ ----- ----
--_.-
Personal Computer XT
Hardware Reference
Library
Technical
Reference
FEDERAL COMMUNICATIONS COMMISSION
RADIO FREQUENCY INTERFERENCE
STATEMENT
W ARNIN G:
This equipment has been certified to comply with
the limits for a Class B computing device,
pursuant to Subpart J of Part 15 of FCC rules,
Only peripherals (computer input/output devices,
terminals, printers, etc.) certified to comply with
the Class B limits may be attached to this
computer. Operation with non-certified
peripherals is likely to result in interference to
radio and TV reception.
Notice: As sold by the manufacturer, the IBM Prototype Card
does not require certification under the FCC's rules for Class B
devices. The user is responsible for any interference to radio or TV
reception which may be caused by a user-modified prototype card.
CAUTION:
This product is equipped with a UL-listed and
CSA-certified plug for the user's safety. It is to be
used in conjunction with a properly grounded
115 Vac receptacle to avoid electrical shock.
Revised Edition (April 1983)
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.
©
Copyright International Business Machines Corporation, 1981, 1982, 1983
PREFACE
The IBM Personal Computer XT Technical Reference manual
describes the hardware design and provides interface information
for the IBM Personal Computer XT. This publication also has
information about the basic input/output system (BIOS) and
programming support.
The information in this publication is both introductory and for
reference, and is intended for hardware and software designers,
programmers, engineers, and interested persons who need to
understand the design and operation of the computer.
You should be familiar with the use of the Personal Computer
XT, and you should understand the concepts of computer
architecture and programming.
This manual has two sections:
"Section 1: Hardware" describes each functional part of the
system. This section also has specifications for power, timing, and
interface. Programming considerations are supported by coding
tables, command codes, and registers.
"Section 2: ROM BIOS and System Usage" describes the basic
input/output system and its use. This section also contains the
software interrupt listing, a BIOS memory map, descriptions of
vectors with special meanings, and a set of low memory maps. In
addition, keyboard encoding and usage is discussed.
The publication has seven appendixes:
Appendix A:
Appendix B:
Appendix C:
Appendix D:
Appendix E:
Appendix F:
Appendix G:
ROM BIOS Listings
8088 Assembly Instruction Set Reference
Of Characters, Keystrokes, and Color
Logic Diagrams
Specifications
Communications
Switch Settings
A glossary and bibliography are included.
iii
Prerequisite Publication:
Guide to Operations for the IBM Personal Computer XT
Part Number 6936810
Suggested Reading:
BASIC for the IBM Personal Computer
Part Number 6025010
Disk Operating System (DOS) for the IBM Personal Computer
Part Number 6024061
Hardware Maintenance and Service for the IBM Personal
Computer XT
Part Number 6936809
MACRO Assembler for the IBM Personal Computer
Part Number 6024002
Related publications are listed in the bibliography.
iv
TABLE OF CONTENTS
Section 1: Hardware
IBM Personal Computer XT System Unit .............
IBM Personal Computer Math Coprocesser ............
IBM Keyboard ....................................
IBM Expansion Unit ...............................
IBM SO CPS Printers ..............................
IBM Printer Adapter ...............................
IBM Monochrome Display and Printer Adapter ........
IBM Monochrome Display ..........................
IBM Color/Graphics Display Adapter ................
IBM Color Display ................................
IBM 5-W' Diskette Drive Adapter ...................
IBM 5-W' Diskette Drive ...........................
Diskettes .........................................
IBM Fixed Disk Drive Adapter ......................
IBM 10MB Fixed Disk Drive .......................
IBM Memory Expansion Options ....................
IBM Game Control Adapter .........................
IBM Prototype Card ...............................
IBM Asynchronous Communications Adapter. . . . . . . . ..
IBM Binary Synchronous Communications Adapter .....
IBM Synchronous Data Link Control (SDLC)
Communication Adapter ..........................
IBM Communications Adapter Cable .................
1-3
1-25
1-65
1-71
I-S1
1-107
1-113
1-121
1-123
1-149
1-151
1-175
1-177
1-179
1-195
1-197
1-203
1-209
1-215
1-245
1-265
1-295
Section 2:ROM BIOS and System Usage
ROM BIOS ....................................... 2-2
Keyboard Encoding and Usage ...................... 2-11
Appendix A: ROM BIOS Listings .............. A-I
System BIOS ..................................... A-2
Fixed Disk BIOS .................................. A-S5
Appendix B: 8088 Assembly Instruction
Set Reference ................................. B-1
v
Appendix C: Of Characters, Keystrokes,
and Colors .................................... C-l
Appendix D: Logic Diagrams ................... D-l
System Board .....................................
Type 1 Keyboard .................................
Type 2 Keyboard .................................
Expansion Board ..................................
Extender Card ....................................
Receiver Card ....................................
Printer ...........................................
Printer Adapter ...................................
Monochrome Display Adapter ......................
Color/Graphics Monitor Adapter ....................
Color Display ....................................
Monochrome Display ..............................
5-Y
> 6 6N
Ln~'--
+ (9 (9 +
'<:j""MN"-"
C
c r:: c
0::0::0::0::
u
,,-0-0-0
-0 § §
>
>
0
0
N
LO'-""'"-
+(9(9+
V" M" C"\I" -""
C C C c
0::0::0::0::
~ \kh{
B
u
>
0C:
'"
'"c
0
u
'"Q)
t:
-"
Ci
.<:
u
C
0
0
:::!: St;;
.n
8u
Q)
c
e: U
~
Q)
....0
U
e:
0
c..
...
'"
s
'
"
> 0 0
(J)eD c..
E
.... "E
Q)
e:
-"
e:
0
Ci u
-0
Q)
...
Q)
x S
LL
0
c..
CD
....
B
u
~
e: c
:J 0
E':
"
1;;
>
s0
Q)
Ulc..
Power Supply and Connectors
System Unit 1-23
Over-Voltage/Over-Current Protection
Voltage Nominal Vac
110
Type Protection
Fuse
Rating Amps
5
Power On/Off Cycle: When the supply is turned off for a
minimum of 1.0 second, and then turned on, the power-good
signal will be regenerated.
The power-good signal indicates that there is adequate power to
continue processing. If the power goes below the specified levels,
the power-good signal triggers a system shutdown.
This signal is the logical AND of the dc output-voltage sense
signal and the ac input voltage fail signal. This signal is
TTL-compatible up-level for normal operation or down-level for
fault conditions. The ac fail signal causes power-good to go to a
down-level when any output voltage falls below the regulation
limits.
The dc output-voltage sense signal holds the power-good signal at
a down level (during power-on) until all output voltages have
reached their respective minimum sense levels. The power-good
signal has a tum-on delay of at least 100 ms but no greater than
500ms.
The sense levels of the dc outputs are:
Output
(Vdc)
+5
-5
+12
-12
1-24
Minimum
(Vdc)
+4.5
-4.3
+10.8
-10.2
System Unit
Sense Voltage Nominal
(Vdc)
+5.0
-5.0
+12.0
-12.0
Maximum
(Vdc)
+5.5
-5.5
+13.2
-13.2
IBM Personal Computer Math
Coprocessor
The IBM Personal Computer Math Coprocessor enables the IBM
Personal Computer to perform high speed arithmetic, logarithmic
functions, and trigonometric operations with extreme accuracy.
The coprocessor works in parallel with the processor. The parallel
operation decreases operation time by allowing the coprocessor to
do mathematical calculations while the processor continues to do
other functions.
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.
•
Binary integers (3 types)
•
Decimal integers (1 type)
•
Real numbers (3 types)
Coprocessor
1-25
Programming Interface
The coprocessor extends the data types, registers, and instructions
to the processor.
The coprocessor has eight 80-bit registers which provide the
equivalent capacity of 40 16-bit registers found in the processor.
This register space allows constants and temporary re.sults to be
held in registers during calculations, thus reducing memory access
and improving speed as well as bus availability. The register space
can be used as a stack or as a fixed register set. When used as a
stack, only the top two stack elements are operated on: when used
as a fixed register set, all registers are operated on. The Figure
below shows representations of large and small numbers in each
data type.
Data Type
Bits
Word Integer
Sh ort Integer
Long Integer
Packed Oecimal
Short Real*
Long Real*
Temporary Real
16
32
64
80
32
64
80
Significant
Digits (Decimal)
4
9
18
18
6-7
15-16
19
Approximate Range (decimal)
·32,768 source
ST
..
E
~
:>-
CI)
r
2Z2
Data latch
and Disable
Circuits
EXT DISABLE
00-07
-
C")
'III ~
co
::0
::0
~
~
~
Data
Buffer
T
-DlR ENABLE
----
Extender Card Block Diagram
1-76 Expansion Unit
L
Bus Direction
and Enable fControl
----
Receiver Card
The receiver card is a four-plane card that fits in expansion slot 8
of the expansion unit. The receiver card redrives the I/O channel
to provide sufficient power for additional options and to avoid
capacitive effects. Directional control logic is contained on the
receiver card to resolve contention and direct data flow on the I/O
channel. Steering signals are transmitted back over the expansion
cable for use on the extender card.
Receiver Card Programming Considerations
Several registers associated with the expansion option are
programmable and readable for diagnostic purposes. The
following figure indicates the locations and functions of the
registers on the receiver card.
Location
Function
Memory FXXXX(*)
Port 214
Port 214
Port 215
Port 215
(*) Example:
Write to memory to latch address bits
Write to latch data bus bits (DO - 07)
Read data bus bits (DO - D7)
Read high-order address bits (A8 - A 15)
Read low-order address bits (AD - A7)
Write to memory location F123:4=OO
Read Port 215 =12
Read Port 216 =34
(All values in hex)
The expansion unit is automatically enabled upon power-up. The
expansion unit and the system unit will be written to, if the
expansion unit is not disabled when writing to FXXXX. However,
the system unit and the expansion unit are read back separately.
Expansion Unit
1-77
,....--
,....--
Control
Bus
Buffer
Control Bus
'l//
~
~
....
=
00-07
[
0:
0:
=
'/.
Bus Direction
and Enable
Control
-
L
'""
><
~
Data
Bus
Buffer
1jl
c·
:::I
U
0:
C"">
~
:::I
~
~
N
<0
Z
...
Data latch
Circuit
-y
..
..
~~
~
AO·A19
'7
Address
Buffer
"---
~
~
Control Signal
r///
'----
Receiver Card Block Diagram
1-78
1/0 Address
Decode
rz
Expansion Unit
Expansion Unit Interface Information
The extender card and receiver card rear-panel connectors are the
same. Pin and signal assignments for the extender and receiver
cards are shown below.
21
42
62
Pin
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
\@ ................... @]J.1
@ • • • • • • • • • • • • • • • • • • • @
@ • • • • • • • • • • • • • • • • • • @
Signal
+E IRQ6
+E DRQ2
+E DIR
+E ENABLE
+E ClK
-E MEM IN EXP
+E A17
+E A16
+EA5
-E OACKO
+E A15
+E All
+EA10
+EA9
+E Al
+EA3
-E OACKl
+E A4
-E OACK2
-E lOW
+E A13
Pin
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Signal
+E D5
+E DRQl
+E DRQ3
RESERVED
+E ALE
+E T/C
+E RESET
+EAEN
+E A19
+E A14
+E A12
+E A18
-E MEMR
-E MEMW
+EAO
-E OACK3
+EA6
-E lOR
+EA8
+EA2
+EA7
Pin
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
22
43
Signal
+E IRQ7
+E D6
+E I/O CH RDY
+E IRQ3
+E D7
+E 01
-E I/O CH CK
+E IRQ2
+E 00
+E 02
+E 04
+E IRQ5
+E IRQ4
+E 03
GND
GNO
GND
GNO
GND
GND
E = Extended
Connector Specifications
Expansion Unit
1-79
Notes:
1-80
Expansion Unit
IBM 80 CPS Printers
The IBM 80 CPS (characters-per-second) Printers are
self-powered, stand-alone, tabletop units. They attach to the
system unit through a parallel signal cable, 6 feet in length. The
units obtain ac power from a standard wall outlet (120 Vac). The
printers are 80 cps, bidirectional, wire-matrix devices. They print
characters in a 9 by 9 dot matrix with a 9-wire head. They can
print in a compressed mode of 132 characters per line, in a
standard mode of 80 characters per line, in a double width,
compressed mode of 66 characters per line, and in a double width
mode of 40 characters per line. The printers can print double-size
characters and double-strike characters. The printers print the
standard ASCII, 96-character, uppercase and lowercase character
sets. A printer without an extended character set also has a set of
64 special block graphic characters.
The IBM 80 CPS Graphics Printer has additional capabilities
including: an extended character set for international languages,
subscript, superscript, an underline mode, and programmable
graphics.
The printers can also accept commands setting the line-feed
control desired for the application. They attach to the system unit
through the printer adapter or the combination monochrome
display and printer adapter. The cable is a 25-lead shielded cable
with a 25-pin D-shell connector at the system unit end, and a
36-pin connector at the printer end.
Printers
1·81
(1 )
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
Print Method:
Print Speed:
Print Direction:
Number of Pins in Head:
Line Spacing:
Pri nti ng Characteristics
Matrix:
Character Set:
Graphic Character:
Printing Sizes
Normal:
Double Width:
Compressed:
Double Width-Compressed:
Media Handling:
Paper Feed:
Paper Width Range:
Copies:
Paper Path:
Interfaces:
Standard:
Inked Ribbon:
Color:
Type:
Life Expecta ncy:
Environmental Conditions
Operating Temperature Range:
Operating Humidity:
Power Requirement:
Voltage:
Current:
Power Consumption:
Physical Characteristics:
Height:
Width:
Depth:
Weight:
Printer Specifications
1-82
Printers
Serial-impact dot matrix
80 cps
Bidirectional with logical seeking
9
1/16 inch (4.23 mm) or programmable
9x9
Full 96-character ASCII with descenders
plus 9 international characters/symbols.
See "Additional Printer Specifications"
Characters
per inch
10
5
16.5
8.25
Maximum
characters
per inch
80
40
132
66
Adjustable sprocket pin feed
4 inch (101.6 mm) to 10 inch (254 mm)
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).
Rear
Parallel 8-bit
Data and Control Lines
Black
Cartridge
3 million characters
41 to 95° F (5 to 35° C)
10 to 80% non-condensing
120 Vac, 60 Hz
1 A maximum
100 VA maximum
4.2 inches (107 mm)
14.7 inches (374 mm)
12.0 inches (305 mm)
12 pounds (5.5 kg)
(6)
(6)
Printing Characteristics:
IBM 80 CPS Matrix Printer
Graphics
IBM 80 CPS Graphics Printer
Printing Characteristics:
Extra Character Set.
64 block characters.
Set 1
Additional ASCII numbers 160 to 175
contain European characters. Numbers 176
to 223 contain graphic characters .. Numbers
224 to 239 contain selected Greek
characters. Numbers 240 to 255 contain
math and extra symbols.
Set 2
The difference in set 2 are ASCII numbers 3,
4, 5, 6, and 21. ASCII numbers 128 to 175
contain European characters.
Graphics
(7)
There are 20 block characters and
programmable graphics.
Printing Sizes:
Subscript:
Superscript:
Characters
per inch
10
10
Maximum
characters
per line
80
80
Additional Printer Specifications
Printers
1-83
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.
DIP Switch 2
DIP Switch 1
Location of Printer DIP Switches
Switch
Number
Function
On
Off
Factory-Set
Condition
1-1
Not Applicable
-
-
On
1-2
CR
Print Only
Print &
Line Feed
On
1-3
Buffer Full
Print Only
Print &
Line Feed
Off
1-4
Cancel Code
Invalid
Valid
Off
1-5
Delete Code
Invalid
Valid
On
1-6
Error
Sounds
Does Not
Sound
On
1-7
Character Generator
(Graphic Pattern Select)
NA
Graphic
Patterns
Select
Off
1-8
SLCT IN Signal Fixed
Internally
Fixed
Not Fixed
On
Functions and Conditions of DIP Switch 1 (Matrix)
1-84
Printers
Switch
Number
Function
On
Factory-Set
Condition
Off
2-1
Not Applicable
On
2-2
Not Applicable
On
2-3
Auto Feed XT Signal
2-4
Coding Table Select
Fixed
Internally
Not Fixed
Internally
Off
Standard
Off
N.A.
Functions and Conditions of DIP Switch 2 (Matrix)
Switch
Number
Function
On
Factory-Set
Condition
Off
1 -1
Not Applicable
-
-
On
1-2
CR
Print Only
Print &
Line Feed
On
1-3
Buffer Full
Print Only
Print &
Line Feed
Off
1-4
Cancel Code
Invalid
Valid
Off
1-5
Not Applicable
-
-
On
1-6
Error Buzzer
Sound
Does Not
Sound
On
1-7
Character Generator
Set 2
Set 1
Off
1-8
SLCT IN Signal
Fixed
Internally
Not Fixed
Internally
On
Functions and Conditions of DIP Switch 1 (Graphics)
Switch
Number
Function
On
Factory-Set
Condition
Off
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
Internally
Not Fixed
Internally
Off
2-4
1 Inch Skip Over Perforation
Valid
Not Valid
Off
Functions and Conditions of DIP Switch 2 (Graphics)
Printers
1-85
Parallel Interface Description
Specifications:
•
Data transfer rate: 1000 cps (maximum)
•
Synchronization: By externally-supplied STROBE pulses.
•
Handshaking ACKNLG or BUSY signals.
•
Logic level: Input data and all interface control signals are
compatible with the TTL level.
Connector: Plug: 57-30360 (Amphenol)
Connector pin assignment and descriptions of respective interface
signals are provided on the following pages.
Data transfer sequence:
BUSY--""
ACKNLG
0.5 fJS (Minimum)
DATA--~
STROBE
---f---.
0.5 fJS (Minimum)
0.5 fJS (Minimum)
Parallel Interface Timing Diagram
1-86
Printers
Signal
Pin No.
Return
Pin. No.
Signal
Direction
Description
1
19
STROBE
In
STROBE pulse to read
data in. Pulse width must
be more than 0.5 f.1S at
receiving terminal. The
signal level is normally
·'high"; read-in of delta is
performed at the "low"
level of this signal.
2
3
4
5
6
7
8
9
20
21
22
23
24
25
26
27
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
In
In
In
In
In
In
In
In
These signals represent
information of th e 1st to
8th bits of parallel data
respectively. Each signal
is at "high" level when
data is logical "1" and
"low" when logical "0."
10
28
ACKNLG
Out
Approximately 5 f.1S pulse;
"low" indicates that data
has been received and
the printer 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.
1
2
3
4
5
6
7
8
Connector Pin Assignment and Descriptions of Interface Signals (Part 1 of 3)
Printers
1-87
Signal
Pin No.
Return
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
selected state.
14
-
AUTO
FEED XT
In
With this signal being at
"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
-
CHASSISGND
-
Printer chassis GND. In
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
-
INT
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.lS at the
receiving terminal.
Connector Pin Assignment and Descriptions of Interface Signals (Part 2 of 3)
1-88
Printers
Signal
Pin No.
Return
Pin No.
32
Signal
Direction
Out
The level of this signal
becomes "low" when the
printer is in "Paper End"
state, "Offline" state and
"Error" state.
Same as with pin
numbers 19 to 30.
33
-
GND
-
34
-
NC
-
35
36
Description
ERROR
Not used.
Pulled up to +5 Vdc
through 4.7 k-ohms
resistance.
-
SLCTIN
In
Data entry to the pri nter
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)
Notes: 1. "Direction" refers to the direction of signal flow as viewed from
the printer.
2. "Return" denotes "Twisted-Pair Return" and is to be connected at
signal-ground level.
When wiring the interface, be sure to use a twisted-pair cable for
each signal and never fail to complete connection on the return
side. To prevent noise effectively, these cables should be shielded
and connected to the chassis of the system unit and printer,
respectively.
3. All interface conditions are based on TTL level. Both the rise and
fall times of each signal must be less than 0.2 j1S.
4. Data transfer must not be carried out by ignoring the ACKNLG or
BUSY signal. (Data transfer to this printer can be carried out only
after confirming the ACKNLG signal or when the level of the
BUSY signal is "low.")
Connector Pin Assignment and Descriptions of Interface Signals (Part 3 of 3)
Printers
1-89
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.
The IBM 80 CPS Matrix Printer cannot use the Subscript,
Superscript, or Underline print modes. The Double Width print
mode will affect the entire line with the matrix printer.
The allowed combinations of print modes that can be selected are
listed in the following table. Modes can be selected and combined
if they are in the same vertical column.
Printer Modes
Normal
Compressed
Emphasized
Double Strike
Subscript
Superscript
Double Width
Underline
1-90
Printers
X
X
X
X
X
X
X X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
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·91
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 1 16-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 be 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:
LPRINTCHR$ (13);
1-92
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);
DC4
Device Control 4 (Double Width Off)
Stops printing in the Double Width print mode.
Example:
LPRINT CHR$(20);
CAN
Cancel
Clears the printer buffer. Control codes. except SO. remain in effect.
Example:
LPRINT CHR$ (24);
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-93
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 CHRS(27);CHRS(45);CHRS(1);
ESCO
Escape Zero (1 18-lnch Line Feeding)
Changes paper feeding to 1/8 inch.
Example:
LPRINT CHRS(27);CHRS(48);
ESC 1
Escape One (7 n2-lnch Line Feeding)
Changes paper feed to 7/72 inch.
Example:
LPRINT CHRS(27);CHRS(49);
ESC2
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 CHRS(27);CHRS(50);
ESC3
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 CHRS(27);CHRS(51 );CHRS(54);
ESC 6
Escape Six (Select Character Set 2)
(Graphics Printer only)
Selects character set 2. (See "Printer Character Set 2. ")
Example:
LPRINT CHRS(27);CHRS(54);
ESC7
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 CHRS(27);CHR$(55);
ESC8
Escape Eight (Ignore Paper End)
Allows the printer to print to the end of the paper. The printer
ignores the Paper End switch.
Example:
LPRINT CHRS(27);CHRS(56);
1-94
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 pri nter 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);
ESCA
Escape A (Sets Variable Line Feeding)
Format: ESC A;n;
Escape A sets the line-feed to n/72-inch. The example below tells
the printer to set line feeding to 24/72-inch. ESC 2 must be sent to
the printer before the line feeding will change. For example, ESC
A;24 (text) ESC 2 (text). The text following ESC A;24 will space at
the previously set line-feed increments. The text following ESC 2
will be printed with new line-feed increments of 24/72-inch. Any
increment between 1/72 and 85/72 may be used.
Example:
LPRINT CHR$(27);CHR$(65);CHR$(24);CHR$(27);CHR$(50);
ESC B
Escape B (Set Vertical Tabs)
Format: ESC B;n, ;n 2 ; ... n k ;NUL;
(Graphics Printer ignores ESC B)
Sets vertical tab stop positions. Up to 64 vertical tab stop positions
are recognized by the printer. The n's, in the format above, are used
to indicate tab stop positions. Tab stop numbers must be received in
ascending numeric order. The tab stop numbers will not become
valid until the NUL code is entered. Once vertical tab stops are
established, they will be valid until new tab stops are specified. (If
the printer is reset or powered Off, set tab stops are cleared.) If no
tab stop is set, the Vertical Tab command behaves as a Line Feed
command. ESC B followed only by NUL will cancel tab stops. The
form length must be set by the ESC C command prior to setting
tabs.
Example:
LPRINT CHR$(27);CHR$(66);CHR$( 1O);CHR$(20);CHR$(40);CHR$(O);
Printers
1-95
Printer
Code
ESCC
Printer Function
Escape C (Set Lines per Page)
Format: ESC C;n;
Sets the page length. The ESC C command must have a value
following it to 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);
ESCD
Escape D (Set Horizontal Tab Stops)
Format: ESC D;n,;n 2 ; ... n k ;NUL;
Sets the horizontal tab stop positions. The example below shows
the horizontal tab stop positions set at printer column positions of
10,20, and 40. They are followed by CHR$(O), the NUL code. They
must also be in ascending numeric order as shown. Tab stops can
be set between 1 and 80. When in the Compressed print mode, tab
stops can be set up to 132.
The maximum number of tabs that can be set is 112. The Graphics
Printer can have a maximum of 28 tab stops. The HT (CHR$(9)) is
used to execute a tab operation.
Example:
LPRINT CHR$(27);CHR$(68);CHR$( 10)CHR$(20)CHR$(40);CHR$(0);
ESC E
Escape E (Emphasized)
Changes the printer to the Emphasized print mode. The speed of the
printer is reduced to half speed during the Emphasized print mode.
Example:
LPRINT CHR$(27);CHR$(69);
ESC F
Escape F (Emphasized Off)
Stops printing in the Emphasized print mode.
Example:
LPRINT CHR$(27);CHR$(70);
ESCG
Escape G (Double Strike)
Changes the printer to the Double Strike print mode. The paper is
spaced 1/216 of an inch before the second pass of the print head.
Example:
LPRINT CHR$(271;CHR$(71);
1-96
Printers
Printer
Code
ESC H
Printer Function
Escape H (Double Strike Off)
Stops printing in the Double Strike mode.
Example:
LPRINT CHR$(27);CHR$(72);
ESC J
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,;v2 ; ... 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 transferred. 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 cannot exceed 480 bytes. At every horizontal 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.
MSB
LSB
15
2
14
2
13
12
11
10
222
2
2
9
8
L
n,
MSB
LSB
7
2
6
2
3
4
5
2
2
2
o
2
2
2
2
Printers
1-97
Data sent to the printer.
Text (20 characters)
Bit-image data
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.
Data A IESC Kin,
Text
data
I
I n I Data B I Data C I ESC I Kin, I n I Data 0
Length of
data
2
2
I ~~t~ge I
data
~---------480
Text
data
I
Length of
data
I ~~t~ge
data
bit-image dot positions _ _ _ _ _ _ _ _~I
Example:
TYPE B:GRAPH.TXT
1 'OPEN PRINTER IN RANDOM MODE WITH LENGTH OF 255
2 OPEN "LPTl:" AS #1
3 WIDTH "LPTl :",255
4 PRINT #1 ,CHRS(13);CHR$(1 0);
5 SLASH$=CHRS(l )+CHR$(02)+CHRS(04)+CHR$(08)
6 SLASHS=SLASHS+CHRS(16)+CHR$(32)+CHRS(64)+CHRS(128)+CHR$(0)
7 GAP$=CHRS(O)+CHR$(O)+CHR$(O)
8 NDOTS=480
9 'ESC K N1 N2
10 PRINT #1 ,CHR$(27);"K";CHR$(NDOTS MOD 256);CHR$(FIX (NDOTS1256));
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$;GAP$;
14 NEXT I
15 CLOSE
16 END
This example will give you a row of slashes printed in the 480 Bit-Image mode.
1-98
Printers
Printer
Code
ESC L
Printer Function
Escape L (960 Bit-Image Graphics Mode)
Format: ESC L;n,;n 2 ;v,;v2 ; ... v k,
(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 al half the
speed of the 4BO Bit-Image Graphics mode, but can produce a
denser graphic image. The number of bytes of bit-image Data (k) is
n, + 256n 2 but cannot exceed 960. n, 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$(7B);CHR$(12);
ESC 0
Escape 0 (Cancel Skip Perforation)
(Graphics Printer only)
Cancels the Skip Perforation function.
Example:
LPRINT CHR$(27);CHR$(79);
ESC S
Escape S (Subscript/Superscript)
Format: ESC S;n;
(Graphics Printer only)
Changes the printer to the Subscript print mode when ESC S is
followed by a 1, as in the example below. When ESC S is followed
by a 0 (zero), the printer will print in the Superscript print mode.
Example:
LPRINT CHR$(27);CHR$(83);CHR$(1);
ESC T
Escape T (Subscript/Superscript Off)
(Graphics Printer only)
The printer stops printing in the Subscript or Superscript print
mode.
Example:
LPRINT CHR$(27);CHR$(84);
ESC U
Escape U (Unidirectional Printing)
Format: ESC U;n;
(Graphics Printer only)
The printer will print from left to right following the input of ESC
U; 1. When ESC U is followed by a 0 (zero). the left to right printing
operation is canceled. The Unidirectional print mode (ESC U)
ensures a more accurate print-start position for better print quality.
Example:
LPRINT CHR$(27);CHR$(85);CHR$(1);
Printers
1-99
Printer
Code
ESCW
Printer Function
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,;v 2 ; ... vk ;
(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-100
Printers
o
1
234
5
6
7
8
9
INULI I I I I IBELI I I
I~: I~ I~: ~: H:1"I~+~ D~ I
IDrAl I ICANI I
I~I"I: ~I~I;; ;'I~ :"
I;I~I: :1: ~ ~ ;I~ ;
HT
20
21
22
23
24
25
26
27
28
29
58
59
esc
50
51
52
53
54
121314 516
I~I: ;
55
56
7 8
57
91: ;
;1; ~I; ~I~ ~
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
IFIGH IIJ KllMlrulo
IplQ
ulvwlxlv
IzI[ \ I] -I' I I I
Idle fig il kl'H
R S T
a b c
A
h
108
109
j
I~I~ ';I~'~ ':I'~"
:1:1:1
I': I'~ I': I'[' ';' I'J I': I~;LI~~"LI "" I
Matrix Printer Character Set (Part 1 of 2)
Printers
1-101
00000808BO
8888088880
0080080000
O~~~~~~~~~
~~9~~ ~~~~
~ '" ", ~~~~~~~
~ ~~~~~~~
~~~~i~~~~~
210
211
212
213
214
215
216
217
216
219
~=~~~~~~~~
i'" illDDDDDD
Matrix Printer Character Set (Part 2 of 2)
1-102
Printers
Graphics Printer Character Set 1 (Part 1 of 2)
Printers
1-103
.., x ){ I• « » :::1 : ~~
::: I:
~::
~
Graphics Printer Character Set 1 (Part 2 of 2)
1-104
Printers
,.::.....
'--
Graphics Printer Character Set 2 (Part 1 of 2)
Printers
1-105
130
131
132
e a a
133
134
,
0
a a
135
136
137
138
~
e e e
., ~ X' I• « » :::···1-I: ~~
::: I:
~
Graphics Printer Character Set 2 (Part 2 of 2)
1-106
Printers
139
I
r!:-;;-
IBM Printer Adapter
The printer adapter is specifically designed to attach printers with
a parallel port interface, but it can be used as a general
input/output port for any device or application that matches its
input/output capabilities. It has 12 TTL-buffer output points,
which are latched and can be written and read under program
control using the processor In or Out instruction. The adapter also
has five steady-state input points that may be read using the
processor's In instructions.
In addition, one input can also be used to create a processor
interrupt. This interrupt can be enabled and disabled under
program control. Reset from the power-on circuit is also ORed
with a program output point, allowing a device to receive a
power-on reset when the processor is reset.
The input/output signals are made available at the back of the
adapter through a right-angled, PCB-mounted, 25-pin, D-shell
connector. This connector protrudes through the rear panel of the
system or expansion unit, where a cable may be attached.
When this adapter is used to attach a printer, data or printer
commands are loaded into an 8-bit, latched, output port, and the
strobe line is activated, writing data to the printer. The program
then may read the input ports for printer status indicating when
the next character can be written, or it may use the interrupt line
to indicate "not busy" to the software.
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.
This same function is also part of the combination IBM
Monochrome Display and Printer Adapter. A block diagram of
the printer adapter is on the next page.
Printer Adapter
1-107
8
Data Latch
Bus Buffer
8
~
r-t'
. ; Transceiver
r
-
25-Pin
D-Shell
Connector
8
,.....
Enable
Clock
8
DIR
mJ
Read
Data
----+
AEN
Write Data
Write Control
Read Status
Read
~ontrol
Command
Decoder
Control
Latch
Bus
Buffers
4
Enable
..... Clock
5
~
5
Enable
-po
Reset
Printer Adapter Block Diagram
1-108
Printer Adapter
~
~
Clear
~
O.C.
Drivers
,.....~
SLCTIN
STROBE
AUTO
FDXT
INIT
ERROR
SLCT
PE
ACK
BUSY
Programming Considerations
The printer adapter responds to five I/O instructions: two output
and three input. The output instructions transfer data into 2
latches whose outputs are presented on pins of a 25-pin D-shell
connector.
Two of the three input instructions allow the processor to read
back the contents of the two latches. The third allows the
processsor to read the real time status of a group of pins on the
connector.
A description of each instruction follows.
IBM Monochrome Display &
Printer Adapter
Output to address hex 3BC
Bit 7
Pin 9
I
Bit 6
Pin 8
I Bit 5 I
Bit 4
Pin 7
Pin 6
Printer Adapter
Output to address hex 378
Bit 3
Pin 5
I
Bit 2
Pin 4
I
Bit 1
Pin 3
I
Bit 0
Pin 2
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.
Printer Adapter
1·109
IBM Monochrome Display &
Printer Adapter
Printer Adapter
Output to address hex 3BE
Output to address hex 37A
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
IRQ
Enable
Pin 17
Pin 16
Pin 14
Pin 1
This instruction causes the latch to capture the five least
significant bits of the data bus. The four least significant bits
present their outputs, or inverted versions of their outputs, to the
respective pins shown above. If bit 4 is written as 1, the card will
interrupt the processor on the condition that pin 10 transitions
high to low.
These pins are driven by open collector drivers pulled to +5 Vdc
through 4.7 k-ohm resistors. They can each sink approximately
7 rnA and maintain 0.8 volts down-level.
IBM Monochrome Display &
Printer Adapter
Printer Adapter
Input from address Hex 3BC
Input from address hex 378
This command presents the processor with data present on the
pins associated with the out to hex 3BC. This should normally
reflect the exact value that was last written to hex 3BC. If an
external device should be driving data on these pins (in violation
of usage groundrules) at the time of an input, this data will be
ORed with the latch contents.
1-110
Printer Adapter
IBM Monochrome Display &
Printer Adapter
Printer Adapter
Input from address hex 3BD
Input from address hex 379
This command presents realtime status to the processor from the
pins as follows.
IBM Monochrome Display &
Printer Adapter
Printer Adapter
Input from address hex 3BE
Input from address hex 37A
This instruction causes the data present on pins 1, 14, 15, 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.
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
IRQ
Enable
P1ii"T'7
Pin 16
Pli'i14
Pin 1
Por=O
Por=l
Por=O
Por=l
Por=l
These pins assume the states shown after a reset from the
processor.
Printer Adapter
1-111
25-Pin D-Shell
Connector
Rear Panel
0
•
14
•
•
• •
25
Connector
0
Note: All outputs are software-generated.
and all inputs are real-time signals
(not latched).
At Standard TTL levels
Signal
Adapter
Name
Pin Number
~Strobe
Printer
1
'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
+Data Bit 7
9
Printer
~
10
Adapte
Acknowledge
+Busy
"
11
'--'
+P.End (out of paper) "
+Select~
13
~Auto
14
~
Feed
Error
~
15
~
~ Initialize Printer
"v
16
Select Input
17
Ground
18-25
Connector Specifications
1-112
12
Printer Adapter
IBM Monochrome Display and
Printer Adapter
This chapter has two functions. The first is to provide the
interface to the IBM Monochrome Display. The second provides
a parallel interface for the IBM CPS Printer. This second function
is fully discussed in the "IBM Printer Adapter" section.
The monitor adapter is designed around the Motorola 6845 CRT
controller module. There are 4K bytes of static memory on the
adapter which is used for the display buffer. This buffer has two
ports and may be accessed directly by the processor. No parity is
provided on the display buffer.
Two bytes are fetched from the display buffer in 553 ns, providing
a data rate of 1.8M bytes/second.
The monitor adapter supports 256 different character codes. An
8K-byte character generator contains the fonts for the character
codes. The characters, values, and screen characteristics are given
in "Appendix C: Of Characters, Keystrokes, and Color."
This monitor adapter, when used with a display containing P39
phosphor, will not support a light pen.
Where possible, only one low-power Schottky (LS) load is
present on any I/O slot. Some of the address bus lines have two
LS loads. No signal has more than two LS loads.
Characteristics of the monitor adapter are listed below:
•
80 by 25 screen
•
Direct-drive output
•
9 by 14 character box
•
7 by 9 character
•
18 kHz monitor
•
Character attributes
Monochrome Adapter
1-113
(12)
Processo r
Address
(11 )
.
Memory
Address
~ Multiplexer
Processo r
Data
Data
Bus
Gating
BDO-7
-
-
(10)
(10) •
2K Memory
Character
Code
2K Memory
Attribute
(8)
(8)
Character
Clock
(8)
Octal
Latch
MA
I
Lt-o
AO
Chip
Select
Timing
Signals
---
--.
RA
L_l- . J
•
Attribute
Decode
Character
Generator
(4)
MC6845
CRTC
'.
DOTCLK
Shift
Register
I
1
Serial Dots
r
Octal
Latch
Video
Process
Logic
.
HSYNC, VSYNC, CURSOR, DISPEN
Character
Clock
J
~
Monitor
Direct Drive
Outputs
IBM Monochrome Adapter Block Diagram
1-114
Monochrome Adapter
Programming Considerations
The following table summarizes the 6845 internal data registers,
their functions, and their parameters. For the IBM Monochrome
Display, the values must be programmed into the 6845 to ensure
proper initialization of the device.
Register
Number
RO
R1
R2
R3
R4
R5
R6
R7
RS
R9
R10
R11
R12
R13
R14
R15
R16
R17
Register
File
Program
Unit
Horizontal Total
Horizontal Displayed
Horizontal Sync Position
Horizontal Sync Width
Vertical Total
Vertical Total Adjust
Vertical Displayed
Vertical Sync Position
Interlace Mode
Maximum Scan Line
Address
Cursor Start
Cursor End
Start Address (HI
Start Address (LI
Cursor (HI
Cursor (LI
Reserved
Reserved
Characters
Characters
Characters
Characters
Character Rows
Scan Line
Character Row
Character Row
-------Scan Line
Scan Line
Scan Line
IBM Monochrome
Display
(Address in hexl
61
50
52
F
19
6
19
19
02
D
B
---------------
C
00
00
00
00
--------
--
--------
--
--------
--------
To ensure proper initialization, the first command issued to the
attachment must be to send to CRT control port 1 (hex 3B8), a
hex 01, to set the high-resolution mode. If this bit is not set, then
the processor access to the monochrome adapter must never
occur. If the high-resolution bit is not set, the processor will stop
running.
System configurations that have both an IBM Monochrome
Display Adapter and Printer Adapter, and an IBM
Color/Graphics Monitor Adapter, must ensure that both adapters
are properly initialized after a power-on reset. Damage to either
display may occur if not properly initialized.
Monochrome Adapter
1-115
The IBM Monochrome Display and Printer Adapter supports 256
different character codes. In the character set are alphanumerics
and block graphics. Each character in the display buffer has a
corresponding character attribute. The character code must be an
even address, and the attribute code must be an odd address in the
display buffer.
7
5
6
4
o
2
3
Character Code
Even Address (M)
7
5
6
BL
I
3
4
o
2
R
G
I
B
I I I
Attribute Code
Odd Address (M+1)
Foreground
Intensity
Background
Blink
The adapter decodes the character attribute byte as defined above.
The blink and intensity bits may be combined with the foreground
and background bits to further enhance the character attribute
functions listed below.
Background
R G B
0 0 0
0 0 0
0 0 0
1 1 1
1-116
Foreground
R G B
0
0
1
0
0 0
0 1
1 1
0 0
Monochrome Adapter
Function
Non- Display
Underline
White Character/Black Background
Reverse Video
The 4K display buffer supports one screen of 25 rows of 80
characters, plus a character attribute for each display character.
The starting address of the buffer is hex BOOOO. The display
buffer can be read from using DMA; however, at least one
wait-state will be inserted by the processor. The duration of the
wait-state will vary, because the processor/monitor access is
synchronized with the character clock on this adapter.
Interrupt level 7 is used on the parallel interface. Interrupts can be
enabled or disabled through the printer control port. The interrupt
is a high-level active signal.
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
380
381
382
383
384*
385*
3B6
3B7
3B8
3B9
3BA
3BB
3BC
3BD
3BE
3BF
Not Used
Not Used
Not Used
Not Used
6845 Index Register
6845 Data Register
Not Used
Not Used
CRT Control Port 1
Reserved
CRT Status Port
Reserved
Parallel Data Port
Printer Status Port
Printer Control Port
Not Used
*The 6845 Index and Data Registers are
used to program the CRT controller to
interface the high-resolution IBM
Monochrome Display.
I/O Address and Bit Map
Monochrome Adapter
1-117
Bit
Number
Function
+High Resolution Mode
Not Used
Not Used
+Video Enable
Not Used
+Enable Blink
Not Used
0
1
2
3
4
5
6,7
6845 CRT Control Port 1 (Hex 388)
Bit
Number
0
1
2
3
Function
+Horizontal Drive
Reserved
Reserved
+Black/White Video
6845 CRT Status Port (Hex 38A)
1-118
Monochrome Adapter
Rear Panel
9-Pin
Monochrome
Display
Connector
6
9
Connector
At Standard TTL Levels
IBM
Monochrome
Display
Note:
Ground
1
Ground
2
Not Used
3
Not Used
4
Not Used
5
+Intensity
6
+Video
7
+Horizontal
8
-Vertical
9
IBM
Monochrome
Display and
Printer Adapter
Signal voltages are 0.0 to 0.6 Vdc at down level and +2.4 to 3.5
Vdc at high level.
Connector Specifications
Monochrome Adapter
1-119
Notes:
1-120 Monochrome Adapter
IBM Monochrome Display
The high-resolution IBM Monochrome Display attaches to the
system unit through two cables approximately 3 feet (914
millimeters) in length. One cable is a signal cable that contains the
direct drive interface from the IBM Monochrome Display and
Printer Adapter.
The second cable provides ac power to the display from the
system unit. This allows the system-unit power switch to also
control the display unit. An additional benefit is a reduction in the
requirements for wall outlets to power the system. The display
contains an 11-~ inch (283 millimeters), diagonal 90° deflection
CRT. The CRT and analog circuits are packaged in an enclosure
so the display may either sit on top of the system unit or on a
nearby tabletop or desk. The unit has both brightness and contrast
adjustment controls on the front surface that are easily accessible
to the operator.
Monochrome Display
1-121
Operating Characteristics
Screen
•
High-persistence green phosphor (P 39).
•
Etched surface to reduce glare.
•
Size is 80 characters by 25 lines.
•
Character box is 9 dots wide by 14 dots high.
Video Signal
•
Maximum bandwidth of 16.257 MHz.
Vertical Drive
•
Screen refreshed at 50 Hz with 350 lines of vertical resolution
and 720 lines of horizontal resolution.
Horizontal Drive
•
Positive-level, TTL-compatibility at a frequency of
18.432 kHz.
1·122
Monochrome Display
IBM Color/Graphics Monitor
Adapter
The IBM Color/Graphics Monitor Adapter is designed to attach
to the IBM Color Display, to a variety of television-frequency
monitors, or to home television sets (user-supplied RF modulator
is required for home television sets). The adapter is capable of
operating in black-and-white or color. It provides three video
interfaces: a composite-video port, a direct-drive port, and a
connection interface for driving a user-supplied RF modulator. In
addition, a light pen interface is provided.
The adapter has two basic modes of operation: alphanumeric
(AIN) and all-points-addressable graphics (APA). Additional
modes are available within the AIN and APA modes. In the AIN
mode, the display can be operated in either a 40-column by
25-row mode for a low-resolution monitor or home television, or
in an 80-column by 25-row mode for high-resolution monitors. In
both modes, characters are defined in an 8-wide by 8-high
character box and are 7-wide by 7-high, with one line of
descender for lowercase characters. Both uppercase and lowercase
characters are supported in all modes.
The character attributes of reverse video, blinking, and
highlighting are available in the black-and-white mode. In the
color mode, sixteen foreground and eight background colors are
available for each character. In addition, blinking on a
per-character basis is available.
The monitor adapter contains 16K bytes of storage. As an
example, a 40-column by 25-row display screen uses 1000 bytes
to store character information, and 1000 bytes to store
attribute/color information. This would mean that up to eight
display screens can be stored in the adapter memory. Similarly, in
an 80-column by 25-row mode, four display screens may be
stored in the adapter. The entire 16K bytes of storage on the
display adapter are directly addressable by the processor, which
allows maximum software flexibility in managing the screen.
Color Graphics Adapter
1-123
In A/N color modes, it is also possible to select the color of the
screen's border. One of sixteen colors can be selected.
In the APA mode, there are two resolutions available: a
medium-resolution color graphics mode (320 PELs by 200 rows)
and a high-resolution black-and-white graphics mode (640 PELs
by 200 rows). In the medium-resolution mode, each picture
element (PEL) may have one of four colors. The background
color (color 0) may be any of the 16 possible colors. The
remaining three colors come from one of the two
software-selectable palettes. One palette contains green/red/
brown; the other contains cyan/magenta/white.
The high-resolution mode is available only in black-and-white
because the entire 16K bytes of storage in the adapter is used to
define the on or off state of the PELs.
The adapter operates in noninterlace mode at either 7 or 14 MHz,
depending on the mode of operation selected.
In the A/N mode, characters are formed from a ROM character
generator. The character generator contains dot patterns for 256
different characters. The character set contains the following
major groupings of characters:
•
16 special characters for game support
•
15 characters for word-processing editing support
•
96 characters for the standard ASCII graphics set
•
48 characters for foreign-language support
•
48 characters for business block-graphics support (allowing
drawing of charts, boxes, and tables using single and double
lines)
•
16 selected Greek characters
•
15 selected scientific-notation characters
1-124
Color Graphics Adapter
The color/graphics monitor adapter function is packaged on a
single card. The direct-drive and composite-video ports are
right-angle mounted connectors on the adapter, and extend
through the rear panel of the unit. The direct-drive video port is a
9-pin D-shell female connector. The composite-video port is a
standard female phono-jack.
The display adapter is implemented using a Motorola 6845 CRT
controller device. This adapter is highly programmable with
respect to raster and character parameters. Therefore, many
additional modes are possible with clever programming of the
adapter.
.
A block diagram of the color/graphics adapter is on the following
page.
Color Graphics Adapter
1-125
-I
N
C/'I
Display
.... Buffer
(16K Bytes)
Address
Processo
Address
Latch
Input
Buffer
L..
Processol Data
~.
.
(")
o
0'
..,
o..,
..g
e:
r--
.
Processor
Data
~
6845
CRT
(')
[I>
>
Q.
1-+
Address
Latch
I--
Data
Latch
--r
4
Output
Latch
f---
Data
Latch
t
..
Graphics
Serializer
,.
,-----to
~
"0
.....
f!l
..,
Character
Generator
ROM
~
4
r--------.
Alpha
Serializer
~ R
Color
Encoder
1--+ G
~
~
f----J
Palette/
Overscan
Mode
Control
Timing
Generator
& Control
Color/Graphics Monitor Adapter Block Diagram
B
Horizontal
Vertical
L
--.-
Composite
Color
Generator
~
Descriptions of Major Components
Motorola 6845 CRT Controller
This device provides the necessary interface to drive a raster-scan
CRT.
Mode Set Register
This is a general-purpose, programmable, I/O register. It has I/O
ports that may be individually programmed. Its function in this
attachment is to provide mode selection and color selection in the
medium-resolution color-graphics mode.
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 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
8K 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.
Color Graphics Adapter
1-127
Timing Generator
This generator produces the timing signals used by the 6845 CRT
controller and by the dynamic memory. It also resolves the
processor/graphic controller contentions for accessing the display
buffer.
Composite Color Generator
This generator produces base band video color information.
Alphanumeric Mode
Every display-character position in the alphanumeric mode is
defmed 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.
Attribute Byte
Display-Character Code Byte
17
6
5
4
3
2
1
7
0
6
5
4
3
2
1
01
The functions of the attribute byte are defined by the following
table:
Attribute Function
Attribute Byte
7
8
5
4
3
2
1
0
B
R
G
B
I
R
G
B
FG
Normal
Reverse Video
Nondisplay (Black)
Nondisplay (White)
B
B
B
B
Background
0
0
0
1
1
1
0
0
0
1
1
1
I = Highlighted Foreground (Character)
B = Blinking Foreground (Character)
1-128
Color Graphics Adapter
Foreground
I
I
I
I
1
0
0
1
i
1
0
0
0
0
1
1
The attribute byte definitions are:
7 6 543 2 1 0
\ B\ R G B \1\ R G B \
I
11-----..
Foreground Color
Intensity
Background Color
Blinking
In the alphanumeric mode, the display mode can be operated in
either a low-resolution mode or a high-resolution mode.
The low-resolution alphanumeric mode has the following features:
•
Supports home color televisions or low-resolution monitors
•
Displays up to 25 rows of 40 characters each
•
ROM character generator that contains dot patterns for a
maximum of 256 different characters
•
Requires 2,000 bytes of read/write memory (on the adapter)
•
Character box is 8-high by 8-wide
•
Two jumper-controlled character fonts are available:
5-wide by 7-high single-dot character font with one descender
7-wide by 7-high double-dot character font with one descender
•
One character attribute for each character
Color Graphics Adapter
1-129
The high-resolution alphanumeric mode has the following
features:
•
Supports the IBM Color Display or other color monitor with
direct-drive input capability
•
Supports a black-and-white composite-video monitor
•
Displays up to 25 rows of 80 characters each
•
ROM displays generator that contains dot patterns for a
maximum of 256 different characters
•
Requires 4,000 bytes ofread/write memory (on the adapter)
•
Character box is 8-high by 8-wide
•
Two jumper-controlled character fonts are available:
5-wide by 7-high single-dot character font with one descender
7-wide by 7-high double-dot character font with one descender
•
One character attribute for each character
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:
7 6
Attribute Byte
5 4 3 2
1 0
B R G B I R G B
FG Background Foreground
B
B
B
B
0 0 0
1 1 1
0 0 0
1 1 1
1-130
I
I
I
I
1 1 1
0 0 0
0 0 0
1 1 1
Monochrome
Display Adapter
Color/Graphics
Monitor Adapter
Background
Color
Character
Color
Background
Color
Character
Color
Black
White
Black
White
White
Black
Black
White
Black
White
Black
White
White
Black
Black
White
Color Graphics Adapter
The monochrome display adapter will produce white characters
on a white background with any other code. The color/graphics
adapter will change foreground and background colors according
to the color value selected. The color values for the various red,
green, blue, and intensity bit settings are given in the table below.
R
G
B
I
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
Color
Black
Blue
Green
Cyan
Red
Magenta
Brown
White
Gray
Light Blue
Light Green
Light Cyan
Light Red
Light Magenta
Yellow
White (High Intensity)
Code written with an underline attribute for the IBM
Monochrome Display, when executed on a color/graphics monitor
adapter, will result in a blue character where the underline
attribute is encountered. Also, code written on a color/graphics
monitor adapter with blue characters will be displayed as white
characters on a black background, with a white underline on the
IBM Monochrome Display.
Remember that not all monitors recognize the intensity (I) bit.
Color Graphics Adapter
1-131
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.
Horizontal
(PELs)
Vertical
(Rows)
Number of Colors Available
(Includes Background Color)
Low Resolution
160
100
16 (Includes black-and-white)
Medium
Resolution
320
200
4
1
1
1
High Resolution
640
200
Black-and-white only
Colors Total
of 16 for Background and
of Green, Red, or Brown or
of Cyan, Magenta, or White
Low-Resolution Color-Graphics Mode
The low-resolution mode supports home television or color
monitors. This mode is not supported in ROM. It has the
following features:
•
Contains a maximum of 100 rows of 160 PELs, with each
PEL being 2-high by 2-wide
•
Specifies 1 of 16 colors for each PEL by the I, R, G, and
B bits
•
Requires 16,000 bytes of read/write memory (on the adapter)
•
Uses memory-mapped graphics
1-132
Color Graphics Adapter
Medium-Resolution Color-Graphics Mode
The medium-resolution mode supports home televisions or color
monitors. It has the following features:
•
Contains a maximum of 200 rows of 320 PELs, with each
PEL being 1-high by 1-wide
•
Preselects one of four colors for each PEL
•
Requires 16,000 bytes ofread/write memory (on the adapter)
•
Uses memory-mapped graphics
•
Formats 4 PELs per byte in the following manner:
7
6
5
4
3
2
C1
CO
C1
CO
C1
CO
First
Display
PEL
•
Second
Display
PEL
Third
Display
PEL
o
C1
CO
Fourth
Display
PEL
Organizes graphics storage in two banks of 8,000 bytes, using
the following format:
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
Address hex B8000 contains PEL instruction for the upper-left
corner of the display area.
Color Graphics Adapter
1-133
•
Color selection is determined by the following logic:
C1
co
Function
0
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
Cl and CO will select 4 of 16 preselected colors. This
color selection (palette) is pre loaded in an I/O port.
The two colors are:
Color Set 1
Color Set 2
Color 1 is Green
Color 2 is Red
Color 3 is Brown
Color 1 is Cyan
Color 2 is Magenta
Color 3 is White
The background colors are the same basic 8 colors as defined
for low-resolution graphics, plus 8 alternate intensities defined
by the intensity bit, for a total of 16 colors, including black
and white.
1-134
Color Graphics Adapter
High-Resolution Black-and-White Graphics
Mode
The high-resolution mode supports color monitors. This mode has
the following features:
•
Contains a maximum of 200 rows of 640 PELs, with each
PEL being I-high by I-wide.
•
Supports black-and-white mode only.
•
Requires 16,000 bytes ofread/write memory (on the adapter).
•
Addressing and mapping procedures are the same as
medium-resolution color graphics, but the data format is
different. In this mode, each bit in memory is mapped to a
PEL on the screen.
•
Formats 8 PELs per byte in the following manner:
l71s1514J31211101
First Display PEL
J
Second Display PEL
Third Display PEL
Fourth Display PEL
Fifth Display PEL
Sixth Display PEL
Seventh Display PEL
Eighth Display PEL
Color Graphics Adapter
1-135
Description of Basic Operations
In the alphanumeric mode, the adapter fetches character and
attribute information from its display buffer. The starting address
of the display buffer is programmable through the 6845, but it
must be an even address. The character codes and attributes are
then displayed according to their relative positions in the buffer.
Memory
Address
(in hex)
Display Buffer
B8000
(Even)
Starting
Address
Character Code A
B8001
Attribute A
B8002
(Example of a 40 by 25 Screen)
Character Code B
B8003
AB
Attribute B
X
B87CE
Character Code X
Last
Address
Video Screen
B87CF
Attribute X
The processor and the display control unit have equal access to
the display buffer during all the operating modes, except the
high-resolution alphanumeric mode. During this mode, the
processor should access the display buffer during the vertical
retrace time. If it does not, the display will be affected with
random patterns as the processor is using the display buffer. In the
alphanumeric mode, the characters are displayed from a prestored
ROM character generator that contains the dot patterns of all the
displayable characters.
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."
1-136 Color Graphics Adapter
I
R
G
B
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
Note:
0
1
1
1
1
0
1
1
0
1
0
1
Color
Black
Blue
Green
Cyan
Red
Magenta
Brown
White
Gray
Light Blue
Light Green
Light Cyan
Light Red
Light Magenta
Yellow
High Intensity White
"I" provides extra luminance (brightness) to
each available shade. This results in the
light colors listed above, except for
monitors that do not recognize the "I" bit.
Summary of Available Colors
Programming Considerations
Programming the 6845 CRT Controller
The 6845 has 19 accessible internal registers, which are used to
define and control a raster-scan CRT display. One of these
registers, the Index register, is actually used as a pointer to the
other 18 registers. It is a write-only register, which is loaded from
the processor by executing an 'out' instruction to I/O address hex
3D4. The five least significant bits of the I/O bus are loaded into
the Index register.
In order to load any of the other 18 registers, the Index register is
first loaded with the necessary pointer; then the Data Register is
loaded with the information to be placed in the selected register.
The Data Register is loaded from the processor by executing an
Out instruction to I/O address hex 3D5.
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:
Color Graphics Adapter 1-137
Address
Register
Register
Number
0
RO
1
Register
Type
40 by 25
Alphanumeric
80 by 25
Alphanumeric
Graphic
Modes
Units
lID
Horizontal
Total
Character
Write
Only
38
71
38
R1
Horizontal
Displayed
Character
Write
Only
28
50
28
2
R2
Horizontal
Sync Position
Character
Write
Only
2D
5A
2D
3
R3
Horizontal
Sync Width
Character
Write
Only
OA
OA
OA
4
R4
Vertical Total
Character
Row
Write
Only
1F
1F
7F
5
R5
Vertical Total
Adjust
Scan
Line
Write
Only
06
06
06
6
R6
Vertical
Displayed
Character
Row
Write
Only
19
19
64
7
R7
Vertical
Sync Position
Character
Row
Write
Only
1C
1C
70
8
R8
Interlace
Mode
-
Write
Only
02
02
02
9
R9
Maximum
Scan line
Address
Scan
Line
Write
Only
07
07
01
A
R10
Cursor Start
Scan
Line
Write
Only
06
06
06
B
R11
Cursor End
Scan
Line
Write
Only
07
07
07
C
R12
Start
Address (H)
-
Write
Only
00
00
00
D
R13
Start
Address (L)
-
Write
Only
00
00
00
E
R14
Cursor
Address (H)
-
Read!
Write
XX
XX
XX
F
R15
Cursor
Address (L)
-
Read!
Write
XX
XX
XX
10
R16
light Pen (H)
-
Read
Only
XX
XX
XX
11
R17
Light Pen (L)
-
Read
Only
XX
XX
XX
Note: Ail register values are given in hexadecimal
6845 Register Description
1-138 Color Graphics Adapter
Programming the Mode Control and Status
Register
The following I/O devices are defined on the color/graphics
adapter.
Hex
Address
A9 A8 A7 A6 A5 A4 A3 A2 Al AD
Function of Register
3D8
3D9
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
3DA
1
1
1
1
0
1
1
0
1
0
Status Register (D1)
3DB
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
3D5
3DO
3D1
1
1
1
1
0
1
0
Z
Z
0
6845 Index Register
Mode Control Register (DO)
Color Select Register (DO)
1
1
1
1
0
1
0
Z
Z
1
6845 Data Register
1
1
1
1
0
1
0
Z
Z
0
6845 Registers
1
1
1
1
0
1
0
Z
Z
1
6845 Registers
Z = don't care condition
Color Graphics Adapter
1-139
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.
Bit 0
Selects B (Blue) Border Color in 40 x 25 Alphanumeric Mode
Selects B (Blue) Background Color in 320 x 200 Graphics Mode
Selects B (Blue) Foreground Color in 640 x 200 Graphics Mode
Bit 1
Selects G (Green) Border Color in 40 x 25 Alphanumeric Mode
Selects G (Green) Background Color in 320 x 200 Graphics Mode
Selects G (Green) Foreground Color in 640 x 200 Graphics Mode
Bit 2
Selects R (Red) Border Color in 40 x 25 Alphanumeric Mode
Selects R (Red) Background Color in 320 x 200 Graphics Mode
Selects R (Red) Foreground Color in 640 x 200 Graphics Mode
Bit 3
Selects I (Intensified) Border Color in 40 x 25 Alphanumeric Mode
Selects I (Intensified) Background Color in 320 x 200 Graphics Mode
Selects I (Intensified) Foreground Color in 640 x 200 Graphics Mode
Bit 4
Selects Alternate. Intensified Set of Colors in Graphics Mode
Selects Background Colors in the Alphanumeric Mode
Bit 5
Selects Active Color Set in 320 x 200 Graphics Mode
Bit 6
Not Used
Bit 7
Not Used
Bits 0, 1, 2, 3 These bits select the screen's border color in the
40 x 25 alphanumeric mode. They select the
screen's background color (CO-Cl) in the
medium-resolution (320 by 200) color-graphics
mode.
Bits 4
This bit, when set, will select an alternate,
intensified set of colors. Selects background colors
in the alphanumeric mode.
Bit 5
This bit is only used in the medium-resolution
(320 by 200) color-graphics mode. It is used to
select the active set of screen colors for the
display.
1-140
Color Graphics Adapter
When bit 5 is set to 1, colors are determined as follows:
C1
co
Set Selected
0
0
1
1
0
1
0
1
Background (Defined by bits 0-3 of port hex 309)
Cyan
Magenta
White
When bit 5 is set to 0, colors are determined as follows:
C1
co
Set Selected
0
0
1
1
0
1
0
1
Background (Defined by bits 0-3 of port hex 309)
Green
Red
Brown
Mode-Select Register
This is a 6-bit output-only register (cannot be read). Its I/O
address is hex 3D8, and it can be written to using the 8088 I/O
Out command.
The following is a description of the register's functions:
Bit 0
Bit 1
Bit 2
Bit 3
Bit 4
Bit 5
Bit 6
Bit 7
80 x 25 Alphanumeric Mode
Graphics Select
Black/White Select
Enable Video Signal
High-Resolution (640 x 200) Black/White Mode
Change Background Intensity to Blink Bit
Not Used
Not Used
Color Graphics Adapter 1-141
Bit 0
A 1 selects 80 by 25 alphanumeric mode
A 0 selects 40 by 25 alphanumeric mode
Bit 1
A 1 selects 320 by 200 graphics mode
A 0 selects alphanumeric mode
Bit 2
A 1 selects black-and-white mode
A 0 selects color mode
Bit 3
A 1 enables the video signal at certain times when modes
are being changed. The video signal should be disabled
when changing modes.
Bit 4
A 1 selects the high-resolution (640 by 200)
black-and-white graphics mode. One color of 8 can be
selected on direct-drive sets in this mode by using register
hex 3D9.
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.
1-142
Color Graphics Adapter
Mode Register Summary
Bits
0
1
2
3
4
5
a
a
1
1
0
1
40 x 25 Alphanumeric Black-and-White
0
0
0
1
40 x 25 Alphanumeric Color
0
1
1
a
a
1
1
1
80 x 25 Alphanumeric Black-and-White
1
0
0
1
0
1
80 x 25 Alphanumeric Color
0
1
1
1
0
z
320 x 200 Black-and-White Graphics
0
1
0
1
0
z
320 x 200 Color Graphics
0
1
1
1
1
z
640 x 200 Black-and-White Graphics
Ud=:
1
-
:
Enable Blink Attribute
-
640 x 200 Black-and-White
L -_ _ _ _ _ _ _--.~
L -_ _ _ _ _ _ _ _ _ _
Enable Video Signal
Select Black-and-White Mode
Select 320 x 200 Graphics
" - - - - - - - - - - - - - 80 x 25 Alphanumeric Select
z = don't care condition
Note:
The low-resolution (160 by 100) mode requires special programming and is
set up as the 40 by 25 alphanumeric mode.
Status Register
The status register is a 4-bit read-only register. Its I/O address is
hex 3DA, and it can be read using the 8088 I/O In instruction.
The following is a description of the register functions:
Bit 0
Bit 1
Bit 2
Bit 3
Bit 4
Bit 5
Bit 6
Bit 7
Display Enable
Light-Pen Trigger Set
Light-Pen Switch Made
Vertical Sync
Not Used
Not Used
Not Used
Not Used
Color Graphics Adapter
1-143
Bit 0
This bit, when active, indicates that a regen buffer memory
access can be made without interfering with the display.
Bit 1
This bit, when active, indicates that a positive-going edge
from the light-pen has set the light pen's trigger. This
trigger is reset upon power-on and may also be cleared by
performing an I/O Out command to hex address 3DB. No
specific data setting is required; the action is
address-activated.
Bit 2
The light-pen switch status is reflected in this status bit.
The switch is not latched or debounced. A 0 indicates
that the switch is on.
Bit 3
This bit, when active, indicates that the raster is in a
vertical retrace mode. This is a good time to perform
screen-buffer updating.
Sequence of Events for Changing Modes
1. Determine the mode of operation.
2. Reset 'video enable' bit in mode-select register.
3. Program 6845 to select mode.
4. Program mode/color select registers including re-enabling
video.
1-144
Color Graphics Adapter
Memory Requirements
The memory used by this adapter is self-contained. It consists of
16K bytes of memory without parity. This memory is used as
both a display buffer for alphanumeric data and as a bit map for
graphics data. The regen buffer's address starts at hex B8000.
Read/Write Memory
Address Space (in hex)
01000
System
Read/Write
Memory
AOOOO
B8000
Display Buffer
(16K Bytes)
128K Reserved
Regen Area
BCOOO
CODOO
Color Graphics Adapter
1-145
Rear Panel
25-Pin D-Shel\
Connector
o
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
25
•
•
•
•
•
14
o
At Standard TTL Levels
IBM Color D isplay
or other Dire ct-Drive
Monitor
Ground
1
Ground
2
Red
3
Green
4
Blue
5
Intensity
6
Reserved
7
Horizontal Drive
8
9
Vertical Drive
Color/G raphics
Direct-D rive
Adapter
Composite Phono Jack
Hookup to Monitor
Composite Video Signal of
Approximately 1.5 Volts
Video
Monitor
Peak to Peak Amplitude
1
Chassis Ground
2
Connector Specifications (Part 1 of 21
1-146
Color Graphics Adapter
Color/G raphics
Composi te Jack
P2 (6-Pin Berg Strip)
for Light-Pen
P1 (4-Pin Berg Strip)
for RF Modulator
Color / Graphics
Adapter
RF
Mo dulator
+12 Volts
1
(key) Not Used
2
Composite Video Output
3
Logic Ground
4
Color/G raphics
Adapter
RF Modulator Interface
Lig ht
Pe n
- Light Pen Input
1
(key) Not Used
2
- Light Pen Switch
3
Chassis Ground
4
+5 Volts
5
+12 Volts
6
Color/ Graphics
Adapter
Light Pen Interface
Connector Specifications (Part 2 of 2)
Color Graphics Adapter
1-147
Notes:
1-148
Color Graphics Adapter
IBM Color Display
The IBM Color Display attaches to the system unit by a signal
cable that is approximately 5 feet (1.5 meters) in length. This
signal cable provides a direct-drive interface from the IBM
Color/Graphics Monitor Adapter.
A second cable provides ac power to the display from a standard
wall outlet. The display has its own power control and indicator.
The display will accept either 120-volt 60-Hz, or 220-volt 50-Hz
power. The power supply in the display automatically switches to
match the applied power.
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.
Color Display
1-149
Operating Characteristics
Screen
•
High contrast (black) screen.
•
Displays up to 16 colors, when used with the IBM
Color/Graphics Monitor Adapter.
•
Characters defined in an 8-high by 8-wide matrix.
Video Signal
•
Maximum video bandwidth of 14 MHz.
•
Red, green, and blue video signals and intensity are all
independent.
Vertical Drive
•
Screen refreshed at 60 Hz with 200 vertical lines of
resolution.
Horizontal Drive
•
Positive-level, TTL-compatibility, at a frequency of
15.75 kHz.
1·150 Color Display
IBM 5-1/4" Diskette Drive Adapter
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.
The adapter is designed for double-density, MFM-coded, diskette
drives and uses write precompensation with an analog phase-lock
loop for clock and data recovery. The adapter is a general-purpose
device using the NEe }.LPD765 compatible controller. Therefore,
the diskette drive parameters are programmable. In addition, the
attachment supports the diskette drive's write-protect feature. The
adapter is butTered on the I/O bus and uses the system board's
direct memory access (DMA) for record data transfers. An
interrupt level is also used to indicate when an operation is
complete and that a status condition requires processor attention.
In general, the 5-1/4 inch diskette drive adapter presents a
high-level command interface to software I/O drivers. A block
diagram ofthe 5-1/4 inch diskette drive adapter is on the
following page.
Diskette Adapter
1-151
-,
"'1
Clock
and
Timing
Circuit
VI
N
o-.
~
,.
.-
~
::::
I"-
Data
VCO SYNC-= Separator
.... STD.DATA
..... Data Windoll\<
>
0.
~
'0
.....
~
~ Buffer !'v-
......
r'
Write Data
~
Write
Data
~
""I
r--c>
I ..
1
'"~
Write
Precompensate
Circuit
NEC
Floppy
Disk
Controller
....
Read Data
<}-
J' ...... -"
Step
Direction
Write Enable
Head Select
Index
l/'"
l/'"
....-
rr
Write Protect
-"''-J
Track 0
~
r"
iRes~t
~
INTR.
(
Digital
Control
Port
Drive A Motor On
'l
Decoder
-B
-C
f--D
I-- B
I--C
I--D
~r - -
r--
~
rr
-{>
~
Drive A Select
l/""
J.-I-
5-1/4 Inch Diskette Drive Adapter Block Diagram
...-1
I-
Functional Description
From a programming point of view, this attachment consists of an
8-bit digital-output register in parallel with an NEe ,uPD765 or
equivalent floppy disk controller (FDe).
In the following description, drive numbers 0, 1, 2, and 3 are
equivalent to drives A, B, e, and 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:
Bits 0 and 1
These bits are decoded by the hardware to
select one drive if its motor is on:
Bit
0
Drive
o 0
o (A)
1
1 0
1 1
1 (B)
2 (e)
3 (D)
I
o
Bit 2
The FDe is held reset when this bit is clear.
It must be set by the program to enable the
FDe.
Bit 3
This bit allows the FDe interrupt and DMA
requests to be gated onto the I/O interface. If
this bit is cleared, the interrupt and DMA
request I/O interface drivers are disabled.
Bits 4, 5, 6, and 7
These bits control, respectively, the motors of
drives 0, 1,2 (A, B, e), and 3 (D). If a bit is
clear, the associated motor is off, and the
drive cannot be selected.
Diskette Adapter
1-153
Floppy Disk Controller
The floppy disk controller (FDC) contains two registers that may
be accessed by the main system processor: a status register and a
data register. The 8-bit main status register contains the status
information of the FDC and may be accessed at any time. The
8-bit data register (actually consisting of several registers in a
stack with only one register presented to the data bus at a time)
stores data, commands, parameters, and provides floppy disk
drive (FDD) status information. Data bytes are read from or
written to the data register in order to program or obtain results
after a particular command. The main status register may only be
read and is used to facilitate the transfer of data between the
processor and FDC.
The bits in the main status register (hex 34F) are defined as
follows:
Bit
Number
Name
Symbol
DBO
FDD A Busy
DAB
FDD number 0 is in the Seek mode.
Description
DB'
FDD B Busy
DBB
FDD number' is in the Seek mode.
DB2
FDD C Busy
DCB
FDD number 2 is in the Seek mode.
DB3
FDD D Busy
DDB
FDD number 3 is in the Seek mode.
DB4
FDC Busy
CB
A read or write command is in process.
DB5
Non-DMA
Mode
NDM
The FDC is in the non-DMA mode.
DB6
Data Input!
Output
DIO
Indicates direction of data transfer
between FDC and processor. If DIO =
",", then transfer is from FDC data
register to the processor. If DIO = "0",
then transfer is from the processor to
the FDC data register.
DB7
Request for
Master
ROM
Indicates data register is ready to send
or receive data to or from the processor.
Both bits DIO and ROM should be used
to perform the handshaking functions of
··ready" and "direction" to the
processor.
1-154 Diskette Adapter
The FDC is capable of performing 15 different commands. Each
command is initiated by a multi-byte transfer from the processor,
and the result after execution of the command may also be a
multi-byte transfer back to the processor. Because of this
multi-byte interchange of information between the FDC and the
processor, it is convenient to consider each command as
consisting of three phases:
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.
Diskette Adapter
1-155
Programming Considerations
The following tables define the symbols used in the command
summary, which follows.
Symbol
Name
Description
AO
Address Line 0
AO controls selection of main status
register (AO = 0) or data register (AO = 1).
C
Cylinder Number
C stands for the current/selected cylinder
(track) number of the medium.
D
Data
D sta nds for the data pattern that is going
to be written into a sector.
D7-DO
Data Bus
8-bit data bus, where 07 stands for a
most significant bit, and DO stands for a
least significant bit.
DTL
Data Length
When N is defined as 00, DTL stands for
the data length that users are going to
read from or write to the sector.
EOT
End of Track
EOT stands for the final sector number on
a cylinder.
GPL
Gap Length
GPL stands for the length of gap 3
(spacing between sectors excluding VCO
sync field).
H
Head Address
H stands for head number 0 or 1, as
specified in ID field.
HD
Head
HD stands for a selected head number 0
or 1. (H = HD in all command words.)
HLT
Head Load Time
HL T stands for the head load time in the
FDD (4 to 512 ms in 4-ms increments).
HUT
Head Unload Time
HUT stands for the head unload time after
a read or write operation has occurred (0
to 480 ms in 32-ms increments).
MF
FM or MFM Mode
If MF is low, FM mode is selected; if it is
high, MFM mode is selected only if MFM
is implemented.
MT
Multi- Track
If MT is high, a multi-track operation is to
be performed. (A cylinder under both HDO
and HD1 will be read or written.)
N
Number
N stands for the number of data bytes
written in a sector.
Symbol Descriptions (Part 1 of 2)
1-156
Diskette Adapter
Symbol
Name
Description
NCN
New Cylinder
Number
NCN stands for a new cylinder number,
which is going to be reached as a result
of the seek operation. (Desired position of
the head.)
ND
Non-DMA Mode
ND stands for operation in the non-DMA
mode.
PCN
Present Cylinder
Number
PCN stands for cylinder number at the
completion of sense-interrupt-status
command indicating the position of the
head at present time.
R
Record
R stands for the sector number, which
will be read or written.
R/W
Read/Write
R/W stands for either read (R) or write
(W)signal.
SC
Sector
SC indicates the number of sectors per
cylinder.
SK
Skip
SK stands for skip deleted-data address
mark.
SRT
Step Rate Time
SRT stands for the stepping rate for the
FDD (2 to 32 ms in 2-ms increments).
STO
ST 1
ST 2
ST 3
Status
Status
Status
Status
ST 0-3 stand for one of four registers that
store the status information after a
command has been executed. This
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 relevant to that particular
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
encoded the same as bits 0 and 1 of the
digital output register (DOR).
US1
0
1
2
3
Symbol Descriptions (Part 2 of 2)
Diskette Adapter
1-157
Command Summary
In the following table, 0 indicates "logical 0" for that bit, 1 means
"logical 1," and X means "don't care."
Oata Bus
R/W
Phase
Command
W
W
w
W
W
W
W
W
W
07 06 05 04 03 02 01 00
, ,
Read Data
MT MF SK 0
a
a
X
X
X
X
X HD US, usa
C
H
R
N
EDT
GPL
DTL
Execution
R
R
R
R
R
R
R
Result
Command
W
W
w
W
W
W
W
W
W
STa
ST'
ST 2
C
H
R
N
, ,
Read Deleted Data
MT MF SK 0
a
a
X
X HD US1 usa
X
X
X
C
H
R
N
EDT
GPL
DTL
Execution
Result
1-158
R
R
R
R
R
R
R
Diskette Adapter
STa
ST'
ST 2
C
H
R
N
Remarks
Command Codes
Sector ID information
prior to command
execution.
Data tra nsfer
between the FDD
and main system.
Status information
after command
execution.
Sector 10 information
after command
execution.
Command Codes
Sector ID information
prior to command
execution.
Data tra nsfer
between the FDD
and main system.
Status information
after command
execution.
Sector ID information
after command
execution.
Data Bus
Phase
R/W 07 06 05 04 03 02 01
DO
Remarks
Write Data
Command
W
W
W
W
W
W
W
W
W
MT MF
X
X
0
0
0
X
X
X
1
1
0
HD US1 USC
C
H
R
N
EOT
GPL
DTL
Sector ID information
to command
execution.
Execution
Result
R
R
R
R
R
R
R
Command
W
W
W
W
W
W
W
W
W
Write Deleted Data
0
0
1
1
0
0
X
X
X HD US1 USC
C
H
R
N
EOT
GPL
DTL
Execution
Result
R
R
R
R
R
R
R
Data tra nsfer
between the main
system and FDD.
Status information
after command
execution.
Sector ID information
after command
execution.
STO
ST 1
ST 2
C
H
R
N
MT MF
X
X
STO
ST 1
ST 2
C
H
R
N
Command Codes
Command Codes
Sector ID information
prior to command
execution.
Data transfer
between FDD and
main system.
Status ID information
after command
execution.
Sector ID information
after command
execution.
Diskette Adapter
1-159
Oata Bus
R/W 07 06 05 04 03 02 D1
Phase
Command
W
W
0
X
MF
X
w
W
W
W
W
W
W
Read a Track
1
SK 0
0
0
X
X
X HO US1
C
H
R
N
EDT
GPL
OTL
00
0
R
R
R
R
R
R
R
Command
W
W
Sector 10 information
prior to command
execution.
Data tra nsfer
between the FOO
and main system.
FOC reads all of
cylinder's contents
from index hole to
EDT.
Status information
after command
execution.
Sector 10 information
after command
execution.
STO
ST 1
ST 2
C
H
R
N
0
X
MF
X
0
X
Read 10
1
0
X
X
Execution
Result
1-160
R
R
R
R
R
R
R
Diskette Adapter
STO
ST 1
ST 2
C
H
R
N
Command Codes
usa
Execution
Result
Remarks
0
1
HO US1
0
Command Codes
usa
The first correct 10
information on the
cylinder is stored in
data register.
Status information
after command
execution.
Sector 10 information
during execution
phase.
Oata Bus
Phase
Command
R/W 07 06
W
W
a
X
MF
X
w
W
W
W
05 04 03 02 01 00
, ,
Format a Track
a
a
a
a
X
X
X HO US, usa
N
SC
GPL
0
Execution
Result
Command
R
R
R
R
R
R
R
W
W
w
W
W
W
W
W
W
STa
ST'
ST 2
C
H
R
N
MT MF
X
X
SK
X
,
Scan Equal
a
a
a
X
X HO US, usa
C
H
R
N
EOT
GPL
STP
Execution
Result
R
R
R
R
R
R
R
STa
ST'
ST 2
C
H
R
N
Remarks
Command Codes
Bytes/Sector
Sector /T rack
Gap 3
filler byte.
FOC formats an
entire cylinder.
Status information
after command
execution.
In this case, the 10
information has no
meaning.
Command Codes
Sector 10 information
prior to command
execution.
Data compared
between the FOO
and the main system.
Status information
after command
execution.
Sector 10 information
after Command
execution.
Diskette Adapter
1-161
Oata Bus
R/W 07 06 05 04 03 02 01
Phase
Command
W
W
W
W
W
W
W
W
W
Scan Low or Equal
MT MF SK 1
1
0
0
X
HD USl
X X X
X
C
H
R
N
EOT
GPL
STP
00
1
R
R
R
R
R
R
R
Command
W
W
W
W
W
W
W
W
W
Sector ID information
prior to command
execution.
Execution
Result
1-162
Data compared
between the FDD
and main system.
Status information
after command
execution.
Sector 10 information
after command
execution.
STO
ST 1
ST 2
C
H
R
N
Scan High or Equal
MT MF SK
1
1
1
0
X
X X
X X HD USl
C
H
R
N
EOT
GPL
STP
R
R
R
R
R
R
R
Diskette Adapter
STO
ST 1
ST 2
C
H
R
N
Command Codes
usa
Execution
Result
Remarks
1
Command Codes
usa
Sector ID information
prior to command
execution.
Data compared
between the FDD
and main system.
Status information
after command
execution.
Sector 10 information
after command
execution.
Data Bus
Phase
Command
R/W
W
W
07 06 05 04 03 02 01 DO
a
0
X
X
Recalibrate
1
0
0
X X
X 0
a
1
1
USl usa
Execution
No Result
Phase
Remarks
Command Codes
Head retracted to
track a
Sense I nterrupt Status
0
1
a
a
a
STO
PCN
Command
Result
W
Command
W
W
W
a
a
0
-SRT
---HLT
W
W
a
a
X
X
a
a
R
R
Specify
a
a
0
Command Codes
Status information at
the end of seek
operation about the
FOC
Command Codes
a
HUTNO
No Result
Phase
Command
Result
R
Command
W
W
w
Sense Drive Status
1
a
a
a
0
0
X X
X HO USl usa
ST 3
a
a
a
Seek
1
0
X
X
X
X
X
Command Codes
Status information
about FOO.
Command Codes
HO USl usa
NCN
Execution
Head is positioned
over proper cylinder
on diskette.
No Result
Phase
Command
W
Invalid
Invalid Codes
Result
R
STa
Invalid command
codes (NoOp - FOC
goes into standy
state).
STO = 80.
Diskette Adapter 1-163
No.
Bit
Name
Symbol
07
Description
07 =Oand 06 =0
Normal termination of command (NT).
Command was completed and properly
executed.
07 = 0 and 06 = 1
Abnormal termination of comma nd (AT).
Execution of command was started, but
was not successfully completed.
07 = 1 and 06 = 0
Invalid command issue (I C). Command
that was issued was never started.
07 = 1 and 06 = 1
Abnormal termination because, during
command execution, the ready signal
from FOO changed state.
Interrupt
Code
IC
05
Seek End
SE
When the FOC completes the seek
command, this flag is set to 1 (high).
04
Equipment
Check
EC
If a fault signal is received from the
FOO, or if the track 0 signal fails to occur
after 77 step pulses (recalibrate
command), then this flag is set.
03
Not Ready
NR
When the FOO is in the not-ready state
and a read or write command is issued.
this flag is set. If a read or write command
is issued to side 1 of a single-sided drive,
then this flag is set.
D2
Head Address
HO
This flag is used to indicate the state of
the head at interrupt.
01
00
Un it Select 1
Unit Select 0
US 1
US 0
These flags are used to indicate a drive
unit number at interrupt.
06
Command Status Register 0
1-164
Diskette Adapter
Bit
No.
D7
Name
Symbol
End of
Cylinder
EN
Description
When the FDC tries to access a sector
beyond the final sector of a cylinder, this
flag is set.
Not used. This bit is always 0 (low).
D6
D5
Data Error
DE
When the FDC detects a CRC error in
either the ID field or the data field, this
flag is set.
D4
Over Run
OR
If the FDC is not serviced by the main
system during data transfers within a
certain time interval, this flag is set.
Not used. This bit is always 0 (low).
D3
D2
No Data
ND
During execution of a read data, write
deleted data, or scan command, if the
FDC ca nnot find the sector specified in
the ID register, this flag is set. During
execution of the read ID command, if the
FDC cannot read the ID field without an
error, then this flag is set. During the
execution of the read a cylinder
command, if the starting sector cannot be
found, then this flag is set.
D1
Not Writable
NW
During execution of a write data, write
deleted data, or format-a-cylinder
command, if the FDe detects a
write-protect signal from the FDD, then
this flag is set.
DO
Missing
Address
Mark
MA
If the FDC cannot detect the ID address
mark, this flag is set. Also, at the same
time, the MD (missing address mark in
the data field) of status register 2 is set.
Command Status Register 1
Diskette Adapter
1-165
Bit
Name
No.
Symbol
Description
D7
-
-
Not used. This bit is always 0 (low).
D6
Control Mark
CM
During execution of the read data or scan
command, if the FDC encounters a sector
that contains a deleted data address
mark, this flag is set.
D5
Data Error in
Data Field
DD
If the FDC detects a CRC error in the data,
then this flag is set.
D4
Wrong
Cylinder
WC
This bit is related to the ND bit, and when
the contents of C on the medium are
different from that stored in the ID
register, this flag is set.
D3
Scan Equal
Hit
SH
During execution of the scan command, if
the condition of "equal" is satisfied, this
flag is set.
D2
Scan Not
Satisfied
SN
During execution of the scan command,
if the FDC cannot find a sector on the
cylinder that meets the condition, then
this flag is set.
D1
Bad Cylinder
BC
This bit is related to the ND bit, and when
the contents of C on the medium are
different from that stored in the ID
register, and the contents of C is FF, then
this flag is set.
DO
Missing
Address Mark
in Data Field
MD
When data is read from the medium, if
the FDC cannot find a data address mark
or deleted data address mark, then this
flag is set.
Command Status Register 2
1-166
Diskette Adapter
Bit
Name
No.
Description
Symbol
D7
Fault
FT
This bit is the status of the fault signal
from the FDD.
D6
Write
Protected
WP
Th is bit is the status of the
write· protected signal from the FDD.
D5
Ready
RY
This bit is the status of the ready signal
from the FDD.
D4
Track
TO
This bit is the status of the track
from the FDD.
D3
Two Side
TS
Th is bit is the status of the two-side
signal from the FDD.
D2
Head Address
HD
This bit is the status of the side-select
signal from the FDD.
D1
Unit Select 1
US 1
This bit is the status of the unit-select-1
signal from the FDD.
DO
Unit Select
a
usa
This bit is the status of the unit-select-O
signal from the FDD.
a
a signal
Command Status Register 3
Programming Summary
FDC Data Register
1/0 Address Hex 3F5
FDC Main Status Register
1/0 Address Hex 3F4
Digital Output Register
1/0 Address Hex 3F2
Bit
a
1
2
3
4
5
6
7
Drive
00: DR #A 10: DR #C
Select
01 : DR #B 11 : DR #D
Not FDC Reset
Enable INT & DMA Requests
Drive A Motor Enable
Drive B Motor Enable
Drive C Motor Enable
Drive D Motor Enable
All bits cleared with channel reset.
ope
Registers
Diskette Adapter
1-167
FDC Constants (in hex)
N:
SC:
HUT:
SRT:
02
08
F
C
GPL Format: 05
GPLRIW:
2A
HLT:
01
(6 ms track-to-track)
Drive Constants
Head Load
Head Settle
Motor Start
35 ms
15 ms
250ms
Comments
•
Head loads with drive select, wait HD load before R/W.
•
Following access, wait HD settle time before R/W.
•
Drive motors should be off when not in use. Only A or Band
CorD may run simultaneously. Wait motor start time before
R/W.
•
Motor must be on for drive to be selected.
•
Data errors can occur while using a home television as the
system display. Locating the TV too close to the diskette area
can cause this to occur. To correct the problem, move the TV
away from, or to the opposite side of the system unit.
System I/O Channel Interface
All signals are TTL-compatible:
Most Positive Up Level
Least Positive Up Level
Most Positive Down Level
Least Positive Down Level
1-168
Diskette Adapter
5.5
2.7
0.5
-0.5
Vdc
Vdc
Vdc
Vdc
The following lines are used by this adapter.
+ DO-7
(Bidirectional, load: 1 74LS, driver: 74LS 3-state).
These eight lines form a bus by which all commands,
status, and data are transferred. Bit 0 is the low-order
bit.
+AO-9
(Adapter input, load: 174LS)
These ten lines form an address bus by which a
register is selected to receive or supply the byte
transferred through lines DO-7. Bit 0 is the low-order
bit.
+AEN
(Adapter input, load: 1 74LS)
The content of lines AO-9 is ignored if this line is
active.
-lOW
(Adapter input, load: 1 74LS)
The content of lines DO-7 is stored in the register
addressed by lines AO-9 or DACK2 at the trailing
edge of this signal.
-lOR
(Adapter input, load: 1 74LS)
The content of the register addressed by lines AO-9
or DACK2 is gated onto lines DO-7 when this line is
active.
-DACK2 (Adapter input, load: 274LS)
This line being active degates output DRQ2, selects
the FDC data register as the source/destination of
bus DO-7, and indirectly gates T /C to IRQ6.
+T/C
(Adapter input, load: 4 74LS)
This line and DACK2 being active indicates that the
byte of data for which the DMA count was initialized
is now being transferred.
+RESET
(Adapter input, load: 1 74LS)
An up level aborts any operation in process and
clears the digital output register (DaR).
Diskette Adapter
1-169
+DRQ2
(Adapter output, driver: 74LS 3-state)
This line is made active when the attachment is ready
to transfer a byte of data to or from main storage.
The line is made inactive by DACK2 becoming
active or an I/O read of the FDC data register.
+IRQ6
(Adapter output, driver: 74LS 3-state)
This line is made active when the FDC has
completed an operation. It results in an interrupt to a
routine which should examine the FDC result bytes
to reset the line and determine the ending condition.
Drive A and B Interface
All signals are TTL-compatible:
Most Positive Up Level
Least Positive Up Level
Most Positive Down Level
Least Positive Down Level
5.5 Vdc
2.4 Vdc
0.4 Vdc
-0.5 Vdc
All adapter outputs are driven by open-collector gates. The
drive(s) must provide termination networks to Vcc (except motor
enable, which has a 2000-ohm resistor to Vcc).
Each adapter input is terminated with a ISO-ohm resistor to Vcc.
Adapter Outputs
-Drive Select A and B
1-170
Diskette Adapter
(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.
-Motor Enable A and B (Driver: 7438)
The drive associated with each of these
lines must control its spindle motor
such that it starts when the line
becomes active and stops when the line
becomes inactive.
-Step
(Driver: 7438)
The selected drive moves the
read/write head one cylinder in or out
per the direction line for each pulse
present on this line.
-Direction
(Driver: 7438)
F or each recognized pulse of the step
line, the read/write head moves one
cylinder toward the spindle if this line
is active, and away from the spindle if
inactive.
-Head Select
(Driver: 7438)
Head 1 (upper head) will be selected
when this line is active (low).
-Write Data
(Driver: 7438)
F or each inactive to active transition of
this line while write enable is active,
the selected drive causes a flux change
to be stored on the diskette.
-Write Enable
(Driver: 7438)
The drive disables write current in the
head unless this line is active.
Diskette Adapter
1-171
Adapter Inputs
-Index
The selected drive supplies one pulse
per diskette revolution on this line.
- Write Protect
The selected drive makes this line
active if a write-protected diskette is
mounted in the drive.
-Track 0
The selected drive makes this line
active if the read/write head is over
track O.
-Read Data
The selected drive supplies a pulse on
this line for each flux change
encountered on the diskette.
1-172
Diskette Adapter
34-Pin Keyed
Edge Connector
Component
Side
Note: Lands 1-33 (odd numbers) are on the back of the
board. Lands 2-34 (even numbers) are on the front. or
component side.
-
At Standard TTL Levels
Land
Number
Ground-Odd Numbers
1-33
Unused
2.4.6
Index
Motor Enable A
Dis kette
On ves
8
10
Drive Select B
12
Drive Select A
14
Motor Enable B
16
Direction (Stepper Motor)
18
Step Pulse
20
Write Data
22
Write Enable
24
Track 0
26
Write Protect
28
Read Data
3()
Select Head 1
32
Unused
34
-
r--
Driv e
Ada pter
'---
Connector Specifications (Part 1 of 2)
Diskette Adapter
1-173
37-Pin
D-Shell
Connector
Rear Panel
o
20
c.
.cO
c~ c Q
cc
•
•
•
• •
37
0
-
Ex ternal
Dr ives
At Standard TTL Levels
Pin
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
Step Pulse
12
Write Data
13
Write Enable
14
Track 0
15
Write Protect
16
Read Data
17
Select Head 1
18
Ground
20-37
Connector Specifications (Part 2 of 2)
1-174 Diskette Adapter
r-
Drive
Adap ter
' -
IBM 5-1/4" Diskette Drive
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.
The diskette drive uses modified frequency modulation (MFM) to
read and write digital data, with a track-to-track access time of 6
milliseconds.
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.
Data is read from the diskette by the data-recovery circuitry,
which consists of a low-level read amplifier, diiferentiator,
zero-crossing detector, and digitizing circuits. All data decoding is
done by an adapter card.
The diskette drive also has the following sensor systems:
1. The track 00 switch, which senses when the head/carriage
assembly is at track 00.
Diskette Drive
1-175
2. The index sensor, which consists of an LED light source and
phototransistor. This sensor is positioned so that when an
index hole is detected, a digital signal is generated.
3. The write-protect sensor disables the diskette drive's
electronics whenever a write-protect tab is applied to the
diskette.
For interface information, refer to "IBM 5-1/4" Diskette Drive
Adapter" earlier in this section.
Media
Industry-compatible 5-1/4 inch diskette
Tracks per inch
48
Number of tracks
40
Dimensions
Height
Width
Depth
Weight
3.38
5.87
8.00
4.50
Temperature
(Exclusive of media)
Operating
Non operating
50 0 F to 11 2 0 F (10 0 C to 44 0 C)
-40 0 F to 140 0 F (-40 0 C to 60 0 C)
Relative humidity
(Exclusive of media)
Operating
Non operating
20% to 80% (non condensing)
5% to 95% (non condensing)
Seek Time
6 ms track-to-track
Head Settling Time
15 ms (last track addressed)
Error Rate
1 per 109 (recoverable)
1 per 10 '2 (non recoverable)
1 per 106 (seeks)
Head Life
20,000 hours (normal use)
Media Life
3.0 x 106 passes per track
Disk Speed
300 rpm +/- 1.5% (long term)
Instantaneous Speed Variation
+/- 3.0%
Start/Stop Time
250 rns (maximum)
Transfer Rate
250K bits/sec
Recording Mode
MFM
Power
+12 Vdc +/- 0.6 V, 900 rnA average
+5 Vdc +/- 0.25 V, 600 mA average
Mechanical and Electrical Specifications
1-176
Diskette Drive
inches (85.85 mm)
inches (149.1 0 mrn)
inches (203.2 mrn)
pounds (2.04 kg)
Diskettes
The IBM 5-1/4" Diskette Drive uses a standard 5.25-inch
(133.4-millimeter) diskette. For programming considerations,
single-sided, double-density, soft-sectored diskettes are used for
single-sided drives. Double-sided drives use double-sided,
double-density, soft-sectored diskettes. The figure below is a
simplified drawing of the diskette used with the diskette drive.
This recording medium is a flexible magnetic disk enclosed in a
protective jacket. The protected disk, free to rotate within the
jacket, is continuously cleaned by the soft fabric lining of the
jacket during normal operation. Read/write/erase head access is
made through an opening in the jacket. Openings for the drive hub
and diskette index hole are also provided.
__ I
0.140 Inch
0.25 ± 0.01 Inch
mm)-ll-f6.30 ± 0.25 mm)
(~.56
I
1
J -..:-
I
---0,
I
@
m
~5.25Inch_'
, - ( 1 3 3 . 4 millf'l
I
.r:;
Oxide Coated
Mylar Disk
Sealed
Protective
Jacket
.............
"\ \
E
gE
: : It)
I
5.25 Inch
66 1(133.4mm)
+1 +1
o ~
co CD
·co
liner
/
/
I
Me
Head
Aperture
Recording Medium
Diskettes
1-177
Notes:
1-178
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. "
WARNING:
The last cylinder on the fixed disk drive is
reserved for diagnostic use. Diagnostic write
tests will destroy any data on this cylinder.
Fixed Disk Controller
The disk controller has two registers that may be accessed by the
main system processor: a status register and a data register. The
8-bit status register contains the status information of the disk
controller, and can be accessed at any time. The 8-bit data
register (actually consisting of several registers in a stack with
only one register presented to the data bus) stores data,
commands, parameters, and provides the disk controller's status
information. Data bytes are read from, or written to the data
register in order to program or obtain the results after a particular
command. The status register is a read-only register, and is used
to help the transfer of data between the processor and the disk
controller. The controller-select pulse is generated by writing to
port address hex 322.
Fixed Disk Adapter
1-179
.
.....
.....
00
o
'"Ij
><.
(1)
Serializer I
Deserializer
0..
oen_.
J2
~
>
0..
Data
Separator
Serdes
ECC
~
"0
.....
1/0
(1)
'"l
Edge
Connector
Data Bus
DB7-DBO'
Control
r---"""-....,
Sector
Buffer
8-Bit
Processor
Fixed Disk Drive Adapter Block Diagram
TO
} Drives
Programming Considerations
Status Register
At the end of all commands from the system board, the disk
controller returns a completion status byte back to the system
boarq. This byte informs the system unit if an error occurred
during the execution of the command. The following shows the
format of this byte.
o
6
5
4
3
2
o
d
o
o
o
e
o
Bits 0, 1, 2, 3, 4, 6, 7
These bits are set to zero.
Bit 1
When set, this bit shows an error has
occurred during command execution.
Bit 5
This bit shows the logical unit number of
the drive.
If the interrupts are enabled, the controller sends an interrupt
when it is ready to transfer the status byte. Busy from the disk
controller is unasserted when the byte is transferred to complete
the command.
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:
7
6
5
Byte 0
Address
Valid
0
Error Type
Byte 1
0
0
d
Bits
Byte 2
Byte 3
Cylinder High
4
2
3
I
1
0
Error Code
Head Number
Sector Number
Cylinder Low
Remarks
d = drive
Fixed Disk Adapter
1-181
Byte 0
Bits 0, 1,2,3
Error code.
Byte 0
Bits 4, 5
Error type.
Byte 0
Bit 6
Set to 0 (spare).
Byte 0
Bit 7
The address valid bit. Set only when
the previous command required a disk
address, in which case it is returned
as a 1; otherwise, it is a O.
The following disk controller tables list the error types and error
codes found in byte 0:
Error Type
Bits
1-182
Error Code
5 4
3
2 1 0
0
0
0
0
0
0
The controller did not detect any error
during the execution of the previous
operation.
0
0
0
0
0
1
The controller did not detect an index signal
from the drive.
0
0
0
0
1 0
The controller did not get a seek-complete
signal from the drive after a seek operation
(for all non-buffered step seeks).
0
0
0
0
1
1
The controller detected a write fault from
the drive during the last operation.
0
0
0
1 0
0
After the controller selected the drive, the
drive did not respond with a ready signal.
0
0
0
1 0
1
0
0
0
1
0
0
0
1
1
1
Not used.
0
0
1 0
0
0
The drive is still seeking. This status is
reported by the Test Drive Ready command
for an overlap seek condition when the
drive has not completed the seek. No
time-out is measured by the controller for
the seek to complete.
1 0
Fixed Disk Adapter
Description
Not used.
After stepping the maximum number of
cylinders, the controller did not receive the
track 00 signa I from the drive.
Error Type
Bits
Error Code
5 4
3 2
1 0
0
1
0 0
0 0
0
1
0 0 0
0
1
0 0
Description
ID Read Error: The controller detected an
ECC error in the target ID field on the disk.
1
Data Error: The controller detected an
uncorrectable ECC error in the target sector
during a read operation.
1 0
Address Mark: The controller did not d'etect
the target address mark (AM) on the disk.
0
1
0 0
1
0
1
0
1
0 0
Sector Not Found: The controller found the
correct cylinder and head, but not the
target sector.
0
1
0
1
0
Seek Error: The cyli nder or head address
(either or both) did not compare with the
expected target address as a resu It of a
seek.
1
1
Not used.
0
1
0
1
1 0
Not used.
0
1
0
1
1
Not used.
0
1
1 0
0 0
Correctable Data Error: The controller
detected a correctable ECC error in the
target field.
0
1
1
0
0 1
Bad Track: The controller detected a bad
track flag during the last operation. No
retries are attempted on this error.
1
Fixed Disk Adapter
1-183
Error Type
Bits
1-184
2
Description
5
4
3
1
a
a a a a
Invalid Command: The controller has
received an invalid command from the
system unit.
1
a
0
a a
Illegal Disk Address: The controller
detected an address that is beyond the
maximum range.
Error Type
Bits
Error Code
1
0
1
Error Code
Description
5 4
3
1
1
a a a a
RAM Error: The controller detected a data
error during the RAM sector-buffer
diagnostic test.
1
1
a a a
1
Program Memory Checksum Error: During
this internal diagnostic test, the controller
detected a program-memory checksum
error.
1
1
a a
a
ECC Polynominal Error: During the
controller's internal diagnostic tests, the
hardware ECC generator failed its test.
2
1 0
1
Fixed Disk Adapter
Data Register
The processor specifies the operation by sending the 6-byte device
control block (DCB) to the controller. The figure below shows the
composition of the DCB, and defines the bytes that make up the
DCB.
Bits
Byte 0
Byte 1
Byte 2
7
6
5
Command Class
0
I
0
Cylinder High
d
4
I
I
2
3
1
0
Opcode
Head Number
Sector Number
Byte 3
Cylinder Low
Byte 4
Interleave or Block Count
Byte 5
Control Field
Byte 0 - Bits 7, 6, and 5 identify the class of the command.
Bits 4 through 0 contain the Opcode command.
Byte 1 - Bit 5 identifies the drive number.
Bits 4 through 0 contain the disk head number to be
selected.
Bits 6 and 7 are not used.
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.
Byte 4 - Bits 0 through 7 specify the interleave or block count.
Byte 5 - Bits 0 through 7 contain the control field.
Fixed Disk Adapter
1-185
Control Byte
Byte 5 is the control field of the DCB and allows the user to select
options for several types of disk drives. The format of this byte is
as follows:
Bits
7
6
5
4
3
2
a
0
0
0
s
0
s
s
Remarks
r = retries
s = step option
a = retry option on data ECC
error
Bit 7
Disables the four retries by the controller on all
disk-access commands. Set this bit only during the
evaluation of the performance of a disk drive.
Bit 6
If set to 0 during read commands, a reread is
attempted when an ECC error occurs. If no error
occurs during reread, the command will complete
with no error status. If this bit is set to 1, no reread is
attempted.
Bits 5, 4, 3 Set to O.
Bits 2, 1, 0 These bits define the type of drive and select the step
option. See the following figure.
Bits
1-186
2. 1. 0
0
0
0
This drive is not specified and defaults to 3 milliseconds per
step.
0
0
1
0
1 0
0
1
N/A
N/A
N/A
1
1 0 0
200 microseconds per step.
1 0
70 microseconds per step (specified by BIOS).
1
1
1 0
3 milliseconds per step.
1
1
3 milliseconds per step.
1
Fixed Disk Adapter
Command Summary
Command
Remarks
Data Control Block
Test Drive
Bit
7 6 5 4 3 2 1 0
Ready
Byte 0
0
(Class 0,
Byte 1
0
0
010 0 0
0 dlx x x
0 0
x
x
Opcode 00)
= drive (0 or
x = don't care
d
1)
Bytes 2, 3,4, 5
= don't
care
= drive (0 or 1)
= don't care
r = retries
s = Step Option
Bytes 2, 3, 4 = don't
Recalibrate
Bit
7 6 5 4 3 2 1 0
d
(Class 0,
Byte 0
0
1
x
Opcode 01)
Byte 1
Byte 5
0
0
0
010 0
0 dlx x
x
x
x
r
0
s
s
s
0
0
0 0
care
Reserved
This Opcode is not
(Class 0,
used.
Opcode 02)
Request Sense
Bit
7 6 5 4 3 2 1 0
Status
Byte 0
0
(Class 0,
Byte 1
0
0
010 0
0 d x x
I
0
1
1
x
x
x
= drive (0 or 1 )
= don't care
Bytes 2, 3,4,5 = don't
d
x
care
Opcode 03)
Format Drive
Bit
7 6 5 4 3 2 1 0
(Class 0,
Byte 0
0
0
Opcode 04)
Byte 1
0
0
Byte 2
01 0 0 1 0 0
d I Head Number
10 0 0 0 0 0
Cylinder Low
ch
Byte 3
Byte 4
0
Byte 5
r
Ready Verify
Bit
7 6 5 4 3 2 1 0
(Class 0,
Byte 0
0
0
Opcode 05)
Byte 1
0
0
Byte 2
0 01 Interleave
0 0 0 0 s s s
ch
01 0 0 1 0 1
d Head Number
I
I
Sector Number
= drive (0 or 1 )
= retries
s = step option
ch = cylinder high
d
r
Interleave: 1 to 16
for 512-byte sectors
= drive (0 or 1 )
r = retries
s = step option
a = retry option on
d
Byte 3
Cylinder Low
data ECC
Byte 4
Block Count
ch
ByteS
r
a 0
0
0
s
s
= cylinder high
s
Fixed Disk Adapter
1-187
Command
Data Control Block
Format Track
Bit
7
(Class 0,
Byte
Opcode 06)
Byte 1
a a
a a
Byte 2
ch
a
6
4
5
2
Remarks
a
a
1
a
1 1
010
d Head Number
I
Ia
Byte 3
3
0
0
0 0 0
0
Byte 5
r
a 01 Interleave
0 0 0 0 s s s
6
Format Bad
Bit
7
4
3
2
1 0
Track
Byte 0
0 0
01 0
0
1
1
(Class 0,
Byte 1
0 0
d
Opcode 07)
Byte 2
5
1
I Head Number
ch 10 0 0 0 0
Cylinder Low
Byte 3
7 6 5 4 3 2 1 0
0 0 01 0 1 0 0 a
0 0 d Head Number
Bit
Opcode 08)
Byte 1
s
Interleave: 1 to 16
s
I
Byte 2
I
ch
Byte 3
Byte 5
Interleave
a a
Sector Number
0 0
a
0
s
d = drive (0 or 1 )
r = retries
a = retry option on
data ECC error
Cylinder Low
r
r = retries
s = step option
for 512-byte sectors
r
01
0
d = drive (0 or 1)
s
0 0
a
Interleave: 1 to 16
for 512-byte sectors
ch = cylinder high
Byte 5
Byte 0
ch =cylinder high
0
Byte 4
Read
r = retries
s = step option
Cylinder Low
Byte 4
(Class 0,
d = drive (0 or 1 )
s = step option
s
s
ch =cylinder high
Reserved
This Opcode is not
(Class 0,
used
(Opcode 09)
Write
Bit
7
(Class 0,
Byte 0
0 0
6
01 0
Opcode aA)
Byte 1
0 0
d
Byte 2
ch
I
Byte 3
4
3
2
1 0
1 0
1
0
I Head Number
Block Count
0 0
r
7 6 5 4 3 2 1 0
0 0 01 0 1 0 1 1
0 0 d I Head Number
Seek
Bit
Byte
Opcode OB)
Byte 1
a
r = retries
s = step option
ch = cylinder high
Sector Number
Byte 5
(Class 0,
d = drive (0 or 1 )
Cylinder Low
Byte 4
0
0
s
s
a
0 0 0
ch 10
Cylinder Low
Byte 2
Byte 3
1-188
5
s
0
r = retries
s = step option
x = don't care
ch = cylinder high
Byte 4
x
x
x
x
x
x
x
x
Byte 5
r
0 0
a
0
s
s
s
Fixed Disk Adapter
d = drive (0 or 1 )
Command
Remarks
Data Control Block
Initialize
4
Drive
0
3
2
0
0
Bytes 1, 2, 3,4,5 =
0
don't care
Characteristics*
(Class 0,
Opcode OC)
Read ECC Burst
4
Error Length
0
3
2
0
Bytes 1, 2, 3,4,5 =
don't care
0
(Class 0,
Opcode OD)
Read Data from
4
Sector Buffer
0
3
2
0
Bytes 1, 2, 3, 4, 5 =
0
don't care
(Class 0,
Opcode OE)
Write Data to
4
Sector Buffer
0
3
2
0
Bytes 1, 2, 3, 4, 5 =
don't care
(Class 0,
Ope ode OF)
RAM
4
3
2
1 0
Bytes 1, 2, 3, 4, 5 =
Diagnostic
0
0
0
0
don't care
0
(Class 7,
Opcode 00)
Reserved
This Opcode is not
(Class 7,
used
Opcode 01)
Reserved
This Opcode is not
(Class 7,
used
Opcode 02)
*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)
Fixed Disk Adapter
1-189
Command
Remarks
Data Control Block
2
0
Drive
Bit
7
6 5 4
Diagnostic
Byte 0
1
1
1 10 0
(Class 7,
Byte 1
0
0
d
Opcode 03)
Byte 2
x
x
x x
x x x x
Byte 3
x
x
x
x
Byte 4
Byte 5
x x x x x
r 0 0 0 0
Controller
Bit
7
6 5 4
Internal
Byte 0
1
1
1 10
Read Long*
Bit
7
6 5 4
(Class 7,
Byte 0
1
1
3
Ix
1
0
d - drive (0 or 1 )
1
1
s = step option
x x
r = retries
x
x
x = don't care
x
x
x
x
x
x
s
s
s
3
2
1
0
1 0
0
0
don't care
3
2
1
0
d = (0 or 1)
1 10 0
1
0
1
x
Bytes 1, 2, 3, 4, 5 =
Diagnostics
(Class 7,
Opcode 04)
Opcode 05)
Byte 1
0 0
Byte 2
ch
J
d
I Head Number
ch =cylinder high
Sector Number
Cylinder Low
Byte 3
Byte 4
Block Count
Byte 5
r
0 0 0 0
s
s
2
1
Write Long**
Bit
7
6 5 4
(Class 7,
Byte 0
1
1
Opcode 06)
Byte 1
0 0
Byte 2
ch
3
1 10 0
d
I
Byte 3
s
0
1 1 0
I Head Number
Sector Number
Block Count
r
0
0 0 0
s
s
s
*Returns 512 bytes plus 4 bytes of ECC data per sector.
**Requires 512 bytes plus 4 bytes of ECC data per sector.
1-190
Fixed Disk Adapter
d = drive (0 or 1)
s = step option
r = retries
ch = cylinder high
Cylinder Low
Byte 4
Byte 5
s = step option
r = retries
Programming Summary
The two least-significant bits of the address bus are sent to the
system board's I/O port decoder, which has two sections. One
section is enabled by the I/O read signal (- lOR) and the other by
the I/O write signal (-lOW). The result is a total of four
read/write ports assigned to the disk controller board.
The address enable signal (AEN) is asserted by the system board
when DMA is controlling data transfer. When AEN is asserted,
the I/O port decoder is disabled.
The following figure is a table of the four read/write ports:
R/W
Port Address
Function
Read
Write
320
320
Read data (from controller to system unit).
Write data (from system unit to controller).
Read
Write
321
321
Read controller hardware status.
Controller reset.
Read
Write
322
322
Reserved.
Generate controller-select pulse.
Read
Write
323
323
Not used.
Write pattern to DMA and interrupt mask
register.
Fixed Disk Adapter
1-191
System I/O Channel Interface
The following lines are used by the disk controller:
AO-AI9
Positive true 20-bit address. The least-significant 10
bits contain the I/O address within the range of hex
320 to hex 323 when an I/O read or write is
executed by the system unit. The full 20 bits are
decoded to address the read-only storage (ROS)
between the addresses of hex C8000 and C9FFF.
DO-D7
Positive 8-bit data bus over which data and status
information is passed between the system board and
the controller.
lOR
Negative true signal that is asserted when the system
board reads status or data from the controller under
either programmed I/O or DMA control.
lOW
Negative true signal that is asserted when the system
board sends a command or data to the controller
under either programmed I/O or DMA control.
AEN
Positive true signal that is asserted when the DMA in
the system board is generating the I/O Read (- lOR)
or I/O Write (- lOW) signals and has control of the
address and data buses.
RESET
Positive true signal that forces the disk controller to
its initial power-up condition.
IRQ 5
Positive true interrupt request signal that is asserted
by the controller when enabled to interrupt the
system board on the return ending status byte from
the controller.
DRQ 3
Positive true DMA-request signal that is asserted by
the controller when data is available for transfer to or
from the controller under DMA control. This signal
remains active until the system board's DMA
channel activates the DMA-acknowledge signal
(-DACK 3) in response.
DACK 3
This signal is true when negative, and is generated by
the system board DMA channel in response to a
DMA request (DRQ 3).
1-192
Fixed Disk Adapter
Pin 34 _ _
~--;
Pin 20
Pin 1
Pin 2
Pin 1
Signal
Ground - Odd Numbers
Reserved
-Reduced Write Current
-Write Gate
-Seek Complete
-Track 00
Disk
Drive
Connector
J1
-Write Fault
-Head Select 2 0
-Head Select 21
-Index
-Ready
-Step
-Drive Select 1
-Drive Select 2
-Direction In
Position 5 has No Pin
(for Cable Orientation)
Pin Number
1-33
4,16,30,32
2
6
8
10
12
14
18
20
22
24
26
28
34
Signal
Pin Number
Ground
2,4,6,8,12,16,20
1
3, 7
9, 10, 5 (No Pin)
11
13
14
15
17
18
19
Drive Select
Reserved
Spare
oisk
orive
Ground
Connector
J 2 or J3
-MFM Write Data
MFM Write Data
Ground
MFM Read Data
-MFM Read Data
Ground
Disk
Drive
Connector
J1
Disk
Adapter
Connecto
J2 or J3
Fixed Disk Adapter Interface Specifications
Fixed Disk Adapter
1-193
Notes:
1-194
Fixed Disk Adapter
IBM 10MB Fixed Disk Drive
The disk drive is a random-access storage device that uses two
non-removable 5-1/4 inch disks for storage. Each disk surface
employs one movable head to service 306 cylinders. The total
formatted capacity of the four heads and surfaces is 10 megabytes
(1 7 sectors per track with 512 bytes per sector and a total of
1224 tracks).
An impact-resistant enclosure provides mechanical and
contamination protection for the heads, actuator, and disks. A
self-contained recirculating system supplies clean air through a
0.3-micron filter. Thermal isolation of the stepper and spindle
motor assemblies from the disk enclosure results in a very low
temperature rise within the enclosure. This isolation provides a
greater off-track margin and the ability to perform read and write
operations immediately after power-up with no thermal
stabilization delay.
Fixed Disk Drive
1-195
Media
Rigid media disk
Number of Tracks
1224
Track Density
345 tracks per inch
Dimensions
Height
Width
Depth
Weight
3.25 inches (8255 mm)
5.75 inches (146.05 mm)
8.0 inches (203.2 mm)
4.6 Ib (208 kg)
Temperature
Operating
Non operating
40°F to 122°F (4°C to 50°C)
-40°F to 140°F (-40°C to 60°C)
Relative Hu midity
Operating
Maximum Wet Bulb
8% to 80% (non condensing)
78° F (26° C)
Shock
Operating
Non operating
10 Gs
20 Gs
Access Time
3 ms track-to-track
Average Latency
8.33 ms
Error Rates
Soft Read Errors
Hard Read Errors
Seek Errors
1 per 10 10 bits read
1 per 10 12 bits read
1 per 106 seeks
Design Life
5 years (8,000 hours MTF)
Disk Speed
3600 rpm ±1 %
Transfer Rate
5.0 M bits/sec
Recording Mode
MFM
Power
+12 Vdc ± 5% 1.8 A (4.5 A maximum)
+5 Vdc == 5% 0.7 A (1.0 A maximum)
Maximum Ripple
1% with equivalent resistive load
Mechanical and Electrical Specifications
1-196
Fixed Disk Drive
IBM Memory Expansion Options
Three memory expansion options and a memory module kit are
available for the IBM Personal Computer XT. They are the
32KB, 64KB, and 64/256KB Memory Expansion Options and
the 64KB Memory Module Kit. The base system has a standard
128K of RAM on the system board. One or two memory module
kits can be added, providing the system board with 192K or 256K
of RAM. The base 64/256K option has a standard 64K of RAM.
One, two, or three 64K memory module kits may be added,
providing the 64/256K option with 128K, 192K, or 256K of
RAM. A maximum of 256K or RAM can be installed on the
system board as modules without using any of the system unit
expansion slots or expansion options. The system board must be
populated to the maximum 256K of RAM before any memory
expansion options can be installed.
An expansion option must be configured to reside at a sequential
32K or 64K memory address boundary within the system address
space. This is done by setting DIP switches on the option.
The 32K and 64K options both use 16K by 1 bit memory
modules, while the 64/256K option uses 64K by 1 bit memory
modules. On the 32K and 64/256K options, 16-pin
industry-standard parts are used. On the 64K option, stacked
modules are used resulting in a 32K by 1 bit, 18-pin module. This
allows the 32K and 64K options to have approximately the same
physical size.
All memory expansion options are parity checked. If a parity
error is detected, a latch is set and an I/O channel check line is
activated, indicating an error to the processor.
In addition to the memory modules, the memory expansion
options contain the following circuits: bus buffering, dynamic
memory timing generation, address multiplexing, and card-select
decode logic.
Dynamic-memory refresh timing and address generation are
functions that are performed on the system board and made
available in the I/O channel for all devices.
Memory Expansion Options
1-197
To allow the system to address 32K, 64K, or 64/256K memory
expansion options, refer to "Appendix G: Switch Settings" for the
proper memory expansion option switch settings.
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.
General specifications for memory used on all cards are:
16K by 1 Bit
32K by 1 Bit
64K by 1 Bit
Access
250 ns
250 ns
200 ns
Cycle
410 ns
410 ns
345 ns
Memory Module Description
Both the 32K and the 64K options contain 18 dynamic memory
modules. The 32K memory expansion option utilizes 16K by 1
bit modules, and the 64K memory expansion option utilizes 32K
by 1 bit modules.
The 64/256K option has four banks of 9 pluggable sockets. Each
bank will accept a 64K memory module kit, consisting of 9 (64K
by 1) modules. The kits must be installed sequentially into banks
1, 2, and 3. The base 64/256K option comes with modules
installed in bank 0, providing 64K of memory. One, two, or three
64K bits may be added, upgrading the option to 128K, 192K, or
256K of memory.
1-198
Memory Expansion Options
The 16K by 1 and the 32K by 1 modules require three voltage
levels: +5 Vdc, -5 Vdc, and + 12 Vdc. The 64K by 1 modules
require only one voltage level of + 5 Vdc. All three memory
modules require 128 refresh cycles every 2 ns. Absolute
maximum access times are:
16K by 1 Bit
32K by 1 Bit
64K by 1 Bit
From RAS
250 ns
250 ns
200 ns
From
CAS
165 ns
165 ns
115 ns
Pin
16K by 1 Bit Module
(used on 32K option)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
-5 Vdc
Data In**
-Write
-RAS
AO
A2
A1
+12 Vdc
+5 Vdc
A5
A4
A3
A6
Data Out*'
-CAS
GND
*
*
32K by 1 Bit Module
(used on 64K option)
-5 Vdc
Data In*'
-Write
-RAS 0
-RAS 1
AO
A2
A1
+12 Vdc
+5 Vdc
A5
A4
A3
A6
Data Out"
-CAS 1
-CAS 0
GND
64K by 1 Bit Module
(used on 64/256K option)
N/C
Data In'''
-Write
-RAS
AO
A2
A1
+5 Vdc
A7
A5
A4
A3
A6
Data Out'"
-CAS
GND
.
*
*16K by 1 and 64K by 1 bit modules have 16 pins.
**Data In and Data Out are tied together (three-state bus).
**'Data In and Data Out are tied together on Data Bits 0-7 (three-state bus).
Memory Module Pin Configuration
Memory Expansion Options
1-199
Switch-Configurable Start Address
Each card has a small DIP module, that contains eight switches.
The switches are used to set the card start address as follows:
Number
1
2
3
4
5
6
7
8
32K and 64K Options
ON: A 19=0; OFF:
ON: A18=0; OFF:
ON: A 17=0; OFF:
ON: A 16=0; OFF:
ON: A 15=0; OFF:
Not used
Not used
Used only in 64K
A 19=1
A18=1
A 17=1
A 16=1
A 15=1 *
RAM Card*
64/256K Options
ON:A19=0; OFF:A19=1
ON: A18=0; OFF: A18=1
ON: A17=0; OFF: A17=1
ON: A16=0; OFF: A16=1
ON: Select 64K
ON Select 128K
ON: Select 192K
ON: Select 256K
*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.
DIP Module Start Address
Memory Option Switch Settings
Switch settings for all memory expansion options are located in
"Appendix G: Switch Settings."
1-200
Memory Expansion Options
The following method can be used to determine the switch settings for the 32K
memory expansion option.
Starting Address = xxxK
=Decimal value
32K
IxxxK
Convert decimal value to binary
Bit ....... .4
Bit value ... 16
3
8
2
4
2
0
1
Switch
I;' , ,. )0001
bit
.....- - - - 0
.....- - - - - - 2 (off = logical 1)
L..-------3
L.-._ _ _ _ _ _ _ 4
The following method can be used to determine the switch settings for the 64K
memory expansion option.
Starting Address = xxxK
=Decimal value
64K
IxxxK
Convert decimal value to binary
Bit ........ 3
Bit value ... 8
2
4
1
2
0
1
Switch
bit
'------0
' - - - - - - - - - 2 (off = logical 1)
L.-._ _ _ _ _ _ _
3
Memory Expansion Options
1-201
The following method can be used to determine the switch settings for the
64/256K memory expansion option.
Starting Address = xxxK
=Decimal value
64K
/xxxK
Convert decimal value to binary
Bit ........ 3
Bit value ... 8
2
4
1
2
0
1
Switch
Amount of memory
installed on option
~--256K
' - - - - - 192K (on = logical 1)
~----128K
64K
bit
'-------0
L..._ _ _ _ _ _ _
2 (off = logical 1)
~-------3
1-202
Memory Expansion Options
IBM Game Control Adapter
The game control adapter allows up to four paddles or two joy
sticks to be attached to the system. This card fits into one of the
system board's or expansion board's expansion slots. The game
control interface cable attaches to the rear of the adapter. In
addition, four inputs for switches are provided. Paddle and joy
stick positions are determined by changing resistive values sent to
the adapter. The adapter plus system software converts the
present resistive value to a relative paddle or joy stick position.
On receipt of an output signal, four timing circuits are started. By
determining the time required for the circuit to time-out (a
function of the resistance), the paddle position can be determined.
This adapter could be used as a general purpose I/O card with
four analog (resistive) inputs plus four digital input points.
A9-A o
10
'\/
AEN
..
I
..
Instruction
Decode
r
10W
10R
-..
....
..
-
r
f4....
Data Bus
Buffer/
Driver
8
•
A
Resistive Input
K....
I
4
r---
Typical Frequency
833 Hz
07-00
A
Convert
Resistance
Digital
Pulse
A
K.
4
V'r-...
'
...
Digital Inputs
I
4
Game Control Adapter Block Diagram
Game Control Adapter
1-203
Functional Description
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 read to give the values of the
trigger buttons and one-shot outputs.
Data Bus Buffer/Driver
The data bus is buffered by a 74LS244 buffer/driver. For an In
from address hex 201, the game control adapter will drive the data
bus; at all other times, the buffer is left in the high impedance
state.
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 O.
Software should be aware that these buttons are not debounced in
hardware.
Joy Stick Positions
The joy stick position is indicated by a potentiometer for each
coordinate. Each potentiometer has a range from 0 to 100 k-ohms
that varies the time constant for each of the four one-shots. As this
time constant is set at different values, the output of the one-shot
will be of varying durations.
All four one-shots are fired at once by an Out to address hex 201.
All four one-shot outputs will go true after the fire pulse and will
remain high for varying times depending on where each
potentiometer is set.
These four one-shot outputs are read by an In from address hex
201 and are seen on data bits 3 through O.
1-204
Game Control Adapter
I/O Channel Description
A9-AO:
Address lines 9 through 0 are used
to address the game control adapter.
D7-DO:
Data lines 7 through 0 are the data
bus.
IOR,IOW:
I/O read and I/O write are used
when reading from or writing to an
adapter (In, Out).
AEN:
When active, the adapter must be
inactive and the data bus driver
inactive.
+5 Vdc:
Power for the game control adapter.
GND:
Common ground.
AI9-AlO:
Unused.
MEMR,MEMW:
Unused.
DACKO-DACK3:
Unused.
IRQ7-IRQ2:
Unused.
DRQ3-DRQ1:
Unused.
ALE, TIC:
Unused.
CLK,OSC:
Unused.
I/O CHCK:
Unused.
I/O CHRDY:
Unused.
RESETDRV:
Unused.
-5 Vdc,
+ 12 Vdc, -12 Vdc:
Unused.
Game Control Adapter
1-205
Interface Description
The game control adapter has eight input lines, four of which are
digital inputs and 4 of which are resistive inputs. The inputs are
read with one In from address hex 201.
The four digital inputs each have a 1 k-ohm pullup resistor to
+5 Vdc. With no drives on these inputs, a 1 is read. For a 0
reading, the inputs must be pulled to ground.
The four resistive pullups, measured to +5 Vdc, will be converted
to a digital pulse with a duration proportional to the resistive load,
according to the following equation:
Time = 24.2 fLsec
+ 0.011 (r) fLsec
The user must first begin the conversation by an Out to address
hex 201. An In from address hex 201 will show the digital pulse
go high and remain high for the duration according to the
resistance value. All four bits (bit 3-bit 0) function in the same
manner; their digital pulse will all go high simultaneously and will
reset independently according to the input resistance value.
Bit 7
Bit 6
I
Bit 5
I
Bit 4
Bit 3
Bit 2
Digital Inputs
I
Bit 1
I
Bit
a
Resistive Inputs
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:
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
B-#2
B-#1
A-#2
A-#1
B-Y
Button Button Button Button Coordinate
1-206
Game Control Adapter
a
Bit 2
Bit 1
Bit
B-X
Coordinate
A-Y
Coordinate
A-X
Coordinate
The game paddles will have a set of two (A and B) or four (A, B,
C, and D) paddles. These will have one button each and one
variable resistance each, with a range of a to 100 k-ohms. This
should be attached to give the following input data:
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
D
C
B
A
D
Button Button Button Button Coordinate
Bit 2
Bit 1
Bit 0
C
B
A
Coordinate
Coordinate
Coordinate
Refer to "Joy Stick Schematic Diagram" for attaching game
controllers.
15-Pin Male D-Shell
Connector
Joy Sticl< B
,----
--- --- -
I
-- ----, ,
....
----,
/-
Joy Stick A
r---------------.
X-Coordinate
I 9
X-Coordinate
J r-Button
I.
J
,
V -Coordinate
I
I
I
I
,
I
L _____________ JI
112
5
I.
6
1 13
'.
114
I
I.
115
\
'--
•
•
7
•
8
•
V -Coordinate
,I
,
I
IL _____________ .J
-----"."
Note: Potentiometer for X- and V-Coordinates has a range of 0
to 100 k-ohms. Button is normally open; closed when
pressed.
Joy Stick Schematic Diagram
Game Control Adapter
1-207
Rear Panel
15-Pin D-Shell
Connector
o
9
•
5
o
At Standard TTL Levels
Voltage
External
Devices
+5Vdc
1
Button 4
2
Position 0
3
Ground
4
Ground
5
Position 1
6
Button 5
7
+5Vdc
8
9
+5Vdc
Button 6
10
Position 2
11
Ground
12
Position 3
13
Button 7
14
+5Vdc
15
Connector Specifications
1-208
Adapter
Pin No.
Game Control Adapter
Game Co ntrol
Adapter
IBM Prototype Card
The prototype card is 4.2 inches (106.7 millimeters) high by 13.2
inches (335.3 millimeters) long and plugs into an expansion unit
or system unit expansion slot. All system control signals and
voltage requirements are provided through a 2 by 31 position
card-edge tab.
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.
The prototype card can also accommodate a D-shell connector if
it is needed. The connector size can range from a 9 to a 37
position connector.
Note: Install all components on the component side of the
prototype card. The total width of the card including components
should not exceed 0.500 inch (12.7 millimeters). If these
specifications are not met, components on the prototype card may
touch other cards plugged into adjacent slots.
Prototype Card
1-209
8
Bit 0-7 Data Bus
Data Bus
Bus Direction
Buffer
Transceiver
E1
E3
8 E4
~---I-J E6
1/0 ReadlWrite
Memory ReadlWrite
Spare-E18
Buffered
Address
lines
Address Bit 0
Address Bit 2
Address Bit 3
Address Bit 9
E2
Address
Buffer
Address Enable
E5
6
1---1------11/0 Address ~a-~ E11
~+-----fDecode Logic
-1/0 Decode
(Hex 300 - 31 F Inclusive)
Prototype Card Block Diagram
1-210
Prototype Card
l
Buffered
Data Bus E1 0
I/O Channel Interface
The prototype card has two layers screened onto it (one on the
front and one on the back). It also has 3,909 plated through-holes
that are 0.040 inch (10.1 millimeters) in size and have a 0.060
inch (1.52 millimeters) pad, which is located on a 0.10 inch (2.54
millimeters) grid. There are 37 plated through-holes that are
0.048 inch (1.22 millimeters) in size. These holes are located at
the rear of the card (viewed as if installed in the machine). These
37 holes are used for a 9 to 37 position D-shell connector. The
card also has 5 holes that are 0.125 inch (3.18 millimeters) in
size. One hold is located just above the two rows of D-shell
connector holes, and the other four are located in the corners of
the board (one in each corner).
Prototype Card Layout
The component side has the ground bus [0.05 inch (1.27
millimeters) wide] screened on it and card-edge tabs that are
labeled Al through A31.
2~l
D-Shell Connector
Pin Positions
!
Card-Edge Tabs
Hole for Option
Retaining Bracket
Component Side
Prototype Card
1-211
The component side also has a silk screen printed on it that is
used as a component guide for the I/O interface.
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.
Hole for Option
Retaining Bracket
+5 Vdc Bus
D-Shell Connector
Pin Positions
Hole for Option
Retaining Bracket
Pin Side
1-212
Prototype Card
Card-Edge Tabs
Each card-edged tab is connected to a plated through-hole by a
0.012-inch (0.3-millimeter) land. There are three ground tabs
connected to the ground bus by three 0.0 12-inch (0.3 millimeter)
lands. Also, there are two +5 Vdc tabs connected to the voltage
bus by two 0.012-inch (0.3 millimeter) lands.
For additional interfacing information, refer to "I/O Channel
Description" and "I/O Channel Diagram" in this manual. Also,
the "Prototype Card Interface Logic Diagram" is in Appendix D
of this manual. If the recommended interface logic is used, the list
of TTL type numbers listed below will help you select the
necessary components.
Component
TTL Number
Description
U1
74LS245
U2,U5
74LS244
Octal Buffers Line Driver/Line Receivers
U4
74LS04
Hex Inverters
U3
74LS08
Quadruple 2 - Input
Positive - AND Gate
U6
74LS02
Quadruple 2 - Input
Positive - NOR Gate
U7
74LS21
Dual 4 - Input
Positive - AND Gate
Octal Bus Transceiver
C1
10.0 /iF Tantalum Capacitor
C2,C3,C4
0.047 /iF Ceramic Capacitor
System Loading and Power Limitations
Because of the number of options that may be installed in the
system, the I/O bus loading should be limited to one Schottky
TTL load. If the interface circuitry on the card is used, then this
requirement is met.
Refer to the power supply information in this manual for the
power limitations to be observed.
Prototype Card
1-213
Prototype Card External Interface
If a connector is required for the card function, then you should
purchase one of the recommended connectors (manufactured by
Amp) or equivalent listed below:
Connector Size
9-pin
9-pin
15-pin
15-pin
25-pin
25-pin
37-pin
37-pin
D-shell
D-shell
D-shell
D-shell
D-shell
D-shell
D-shell
D-shell
(Male)
(Female)
(Male)
(Female)
(Male)
(Female)
(Male)
(Female)
Part Number (Amp)
205865-1
205866-1
205867-1
205868-1
205857-1
205858-1
205859-1
205860-1
The following example shows a 15-pin, D-shell, female connector
attached to a prototype card.
Option Retaining
Bracket
---
8
---
~
•
•• ••
• •
• ••
• •
• •
~
0
9
15
15-Pin D-Shell
Female
Connector
Component Side
1-214
Prototype Card
IBM Asynchronous
Communications Adapter
The asynchronous communications adapter system control signals
and voltage requirements are provided through a 2 by 31 position
card edge tab. Two jumper modules are provided on the adapter.
One jumper module selects either RS-232C or current-loop
operation. The other jumper module selects one of two addresses
for the adapter, so two adapters may be used in one system.
The adapter is fully programmable and supports asynchronous
communications only. It will add and remove start bits, stop bits,
and parity bits. A programmable baud rate generator allows
operation from 50 baud to 9600 baud. Five, six, seven or eight bit
characters with 1, 1-1/2, or 2 stop bits are supported. A fully
prioritized interrupt system controls transmit, receive, error, line
status and data set interrupts. Diagnostic capabilities provide
loopback functions of transmit/receive and input/output signals.
The heart of the adapter is a INS8250 LSI chip or functional
equivalent. Features in addition to those listed above are:
•
Full double buffering eliminates need for precise
synchronization.
•
Independent receiver clock input.
•
Modem control functions: clear to send (CTS), request to
send (RTS), data set ready (DSR), data terminal ready
(DTR), ring indicator (RI), and carrier detect.
•
False-start bit detection.
•
Line-break generation and detection.
All communications protocol is a function of the system
microcode and must be loaded before the adapter is operational.
All pacing of the interface and control signal status must be
handled by the system software. The following figure is a block
diagram of the asynchronous communications adapter.
Asynchronous Adapter
1-215
Address Bus
Chip
Select
Address
Decode
Data Bus
Interrupt
8250
4 - - - - - - - . . . : . - - - - - - - 1 Asynchronous
Communications
t - - - - . ! Element
A
25-Pin D-Shell
Connector
Asynchronous Communications Adapter Block Diagram
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_
1-216
Asynchronous Adapter
1/0 Decode (in Hex)
Primary
Alternate
Adapter
Adapter
TX Buffer
RX Buffer
Divisor Latch LSB
Divisor Latch MSB
Interrupt Enable Register
Interrupt Identification Registers
Line Control Register
Modem Control Register
Line Status Register
Modem Status Register
2F8
2F8
2F8
2F9
2F9
3FA
2FB
2FC
2FD
2FE
3F8
3F8
3F8
3F9
3F9
3FA
3FB
3FC
3FD
3FE
DLAB State
Register Selected
DLAB=O (Write)
DLAB=O (Read)
DLAB=1
DLAB=1
I/O Decodes
Hex Address 3FB to 3FF and 2FB to 2FF
A9
AS
A7
A6
1
1/0
1
1
AS A4
1
1
DLAB
Register
0
0
Receive Buffer (read),
Transmit
Holding Reg. (write)
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)
0
0
1
1
Divisor Latch (MSB)
A3 A2
1
A1
AO
x
x
x
0
0
0
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, A1 and AO bits are "don't cares" and are used to select the different
register of the communications chip.
Address Bits
Asynchronous Adapter
1-217
Interrupts
One interrupt line is provided to the system. This interrupt is
IRQ4 for a primary adapter or IRQ 3 for an alternate adapter, and
is positive active. To allow the communications card to send
interrupts to the system, bit 3 of the modem control register must
be set to 1 (high). At this point, any interrupts allowed by the
interrupt enable register will cause an interrupt.
The data format will be as follows:
DO
Transmit
Data Marking
D1
02
D7
Start
Bit
Data bit 0 is the first bit to be transmitted or received. The
adapter automatically inserts the start bit, the correct parity bit if
programmed to do so, and the stop bit (1, 1-1/2, or 2 depending
on the command in the line-control register).
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.
The current loop interface is provided to attach certain printers
provided by IBM that use this particular type of interface.
Pin
Pin
Pin
Pin
18 + receive current loop data
25 - receive current loop return
9 + transmit current loop return
11 - transmit current loop data
1-218
Asynchronous Adapter
t
+5Vdc
I
Transmit Circuit
I
49.9 QIom
~A,!~_m________-.. Pin 9
Tx Data----~vvv-
.. Pin 11
+5 Vdc
I
Receive Circuit
5.6 k·Ohm
OPTO Isolator
Pin 18 ....- - t -...
Pin 25
.-X)---
Rx Data
+---+-...1
+5Vdc
Current Loop Interface
The voltage interface is a serial interface. It supports certain data
and control signals, as listed below.
Pin 2
Pin 3
Pin 4
Pin 5
Pin 6
Pin 7
Pin 8
Pin 20
Pin 22
Transmitted Data
Received Data
Request to Send
Clear to Send
Data Set Ready
Signal Ground
Carrier Detect
Data Terminal Ready
Ring Indicator
The adapter converts these signals to/from TTL levels to EIA
voltage levels. These signals are sampled or generated by the
communications control chip. These signals can then be sensed by
the system software to determine the state of the interface or
peripheral device.
Asynchronous Adapter
1-219
Voltage Interchange Information
Binary State
Signal Condition
Interface
Control Function
Positive Voltage =
Binary (0)
= Spacing
=On
Negative Voltage =
Binary (1)
= Marking
=Off
Interchange Voltage
Invalid Levels
+15Vdc _ _ _ _ _ _ _ _ _ _ _ _ _
On Function
+3Vdc _ _ _ _ _ _ _ _ _ _ _ _ _
OVdc
Invalid Levels
-3Vdc _ _ _ _ _ _ _ _ _ _ _ _ _
Off Function
-15Vdc _ _ _ _ _ _ _ _ _ _ _ _
Invalid Levels
The signal will be considered in the "marking" condition when the
voltage on the interchange circuit, measured at the interface point,
is more negative than - 3 Vdc with respect to signal ground. The
signal will be considered in the "spacing" condition when the
voltage is more positive than +3 Vdc with respect to signal
ground. The region between +3 Vdc and -3 Vdc is defined as the
transition region, and considered an invalid level. The voltage that
is more negative than -15 Vdc or more positive than + 15 Vdc
will also be considered an invalid level.
During the transmission of data, the "marking" condition will be
used to denote the binary state" 1" and "spacing" condition will
be used to denote the binary state "0."
For interface control circuits, the function is "on" when the
voltage is more positive than +3 Vdc with respect to signal ground
and is "off" when the voltage is more negative than -3 Vdc with
respect to signal ground.
1- 220
Asynchronous Adapter
INS8250 Functional Pin Description
The following describes the function of all INS8250 input/output
pins. Some of these descriptions reference internal circuits.
Note: In the following descriptions, a low represents a logical 0
(0 Vdc nominal) and a high represents a logical 1 (+ 2.4 Vdc
nominal).
Input Signals
Chip Select (CSO, CSl, 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.
Data Input Strobe (DISTR, DISTR) Pins 22 and 21: When
DISTR is high or DISTR is low while the chip is selected, allows
the processor to read status information or data from a selected
register of the INS8250.
Note: Only an active DISTR or DISTR input is required to
transfer data from the INS8250 during a read operation.
Therefore, tie either the DISTR input permanently low or the
DISTR input permanently high, if not used.
Data Output Strobe (DOSTR, DOSTR), Pins 19 and
18: When DOSTR is high or DOSTR is low while the chip is
selected, allows the processor to write data or control words into a
selected register of the INS8250.
Note: Only an active DOSTR or DOSTR input is required to
transfer data to the INS8250 during a write operation. Therefore,
tie either the DOSTR input permanently low or the DOSTR input
permanently high, if not used.
Address Strobe (ADS), Pin 25: When low, provides latching
for the register select (AO, AI, A2) and chip select (CSO, CSI,
CS2) signals.
Asynchronous Adapter
1-221
Note: An active ADS input is required when the register select
(AO, AI, A2) signals are not stable for the duration of a read or
write operation. If not required, tie the ADS input permanently
low.
Register Select (AO, AI, 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.
A2
A1
AO
Register
a
a
a
a
Receiver Buffer (Read), Transmitter
Holding Register (Write)
a
a
1
Interrupt Enable
1
a
Interrupt Identification (Read Only)
X
a
a
a
1
1
Li ne Control
X
1
Modem Control
1
a
a
a
X
1
Line Status
X
1
1
a
Modem Status
X
1
1
1
None
1
a
a
a
a
a
Divisor Latch (Least Significant Bit)
1
Divisor Latch (Most Significant Bit)
DLAB
X
1
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.
Receiver Clock (RCLK), Pin 9: This input is the 16 x baud
rate clock for the receiver section of the chip.
Serial Input (SIN), Pin 10: Serial data input from the
communications link (peripheral device, modem, or data set).
1-222
Asynchronous Adapter
Clear to Send (CTS), Pin 36: The CTS signal is a modem
control function input whose condition can be tested by the
processor by reading bit 4 (CTS) of the modem status register. Bit
o (DCTS) of the modem status register indicates whether the CTS
input has changed state since the previous reading of the modem
status register.
Note: Whenever the CTS bit of the modem status register
changes state, an interrupt is generated if the modem status
interrupt is enabled.
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.
Note: Whenever the DSR bit ofthe modem status register
changes state, an interrupt is generated if the modem status
interrupt is enabled.
Received Line Signal Detect (RLSD), Pin 38: When low,
indicates that the data carrier had been detected by the modem or
data set. The RLSD signal is a modem-control function input
whose condition can be tested by the processor by reading bit 7
(RLSD) of the modem status register. Bit 3 (DRLSD) of the
modem status register indicates whether the RLSD input has
changed state since the previous reading of the modem status
register.
Note: Whenever the RLSD bit of the modem status register
changes state, an interrupt is generated if the modem status
interrupt is enabled.
Asynchronous Adapter
1-223
Ring Indicator (RI), Pin 39: When low, indicates that a
telephone ringing signal has been received by the modem or data
set. The RI signal is a modem-control function input whose
conditon can be tested by the processor by reading bit 6 (RI) of
the modem status register. Bit 2 (TERI) of the modem status
register indicates whether the RI input has changed from a low to
high state since the previous reading of the modem status register.
Note: Whenever the RI bit of the modem status register changes
from a high to a low state, an interrupt is generated if the modem
status register interrupt is enabled.
VCC, Pin 40: +5 Vdc supply.
VSS, Pin 20: Ground (0 Vdc) reference.
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.
Output 1 (OUT 1), Pin 34: User-designated output that can be
set to an active low by programming bit 2 (OUT 1) of the modem
control register to a high level. The OUT 1 signal is set high upon
a master reset operation.
Output 2 (OUT 2), Pin 31: User-designated output that can be
set to an active low by programming bit 3 (OUT 2) of the modem
control register to a high level. The OUT 2 signal is set high upon
a master reset operation.
1-224
Asynchronous Adapter
Chip Select Out (CSOUT), Pin 24: When high, indicates that
the chip has been selected by active CSO, CSl, and CS2 inputs.
No data transfer can be initiated until the CSOUT signal is a
logical 1.
Driver Disable (DDIS), Pin 23: Goes low whenever the
processor is reading data from the INS8250. A high-level DDIS
output can be used to disable an external transceiver (if used
between the processor and INS8250 on the D7-DO data bus) at
all times, except when the processor is reading data.
Baud Out (BAUDOUT), Pin 15: 16 x clock signal for the
transmitter section of the INS8250. The clock rate is equal to the
main reference oscillator frequency divided by the specified
divisor in the baud generator divisor latches. The BAUDOUT
may also be used for the receiver section by typing this output to
the RCLK input of the chip.
Interrupt (INTRPT), Pin 30: Goes high whenever anyone of
the following interrupt types has an active high condition and is
enabled through the IER: receiver error flag, received data
available, transmitter holding register empty, or modem status.
The INTRPT signal is reset low upon the appropriate interrupt
service or a master reset operation.
Serial Output (SOUT), Pin 11: Composite serial data output to
the communications link (peripheral, modem, or data set). The
SOUT signal is set to the marking (logical 1) state 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.
External Clock Input/Output (XTALl, XTAL2), Pins 16 and
17: These two pins connect the main timing reference (crystal or
signal clock) to the INS8250.
Asynchronous Adapter
1-225
Programming Considerations
The INS8250 has a number of accessible registers. The system
programmer may access or control any of the INS8250 registers
through the processor. These registers are used to control
INS8250 operations and to transmit and receive data. A table
listing and description of the accessible registers follows.
RegisterISignal
Reset Control
Reset State
Interrupt Enable Register
Master Reset
All Bits Low (0-3 Forced and
4-7 Perma nent)
Interrupt Identification
Register
Master Reset
Bit 0 is High, Bits 1 and 2 Low
Bits 3- 7 are Permanently Low
Line Control Register
Master Reset
All Bits Low
Modem Control Register
Master Reset
All Bits Low
Line Status Register
Master Reset
Except Bits 5 and 6 are High
Modem Status Register
Master Reset
Bits 0-3 Low
Bits 4- 7 - Input Signal
SOUT
Master Reset
High
INTRPT (RCVR Errors)
Read LSR/MR
Low
INTRPT (RCVR Data Ready)
Read RBR/MR
Low
INTRPT (RCVR Data Ready)
Read IIRI
Write THR/MR
Low
INTRPT (Modem Status
Changes)
Read MSR/MR
Low
OUT2
Master Reset
High
RTS
Master Reset
High
DTR
Master Reset
High
OUT 1
Master Reset
High
Asynchronous Communications Reset Functions
1-226
Asynchronous Adapter
Line-Control Register
The system programmer specifies the format of the asynchronous
data communications exchange through the line-control register.
In addition to controlling the format, the programmer may retrieve
the contents of the line-control register for inspection. This feature
simplifies system programming and eliminates the need for
separate storage in system memory of the line characteristics. The
contents of the line-control register are indicated and described
below.
B~
7
6
5
4
3
2
1
II
I:
0
L...-_ _ _ _.....
'----------l~
L...-_ _ _ _ _ _ _.....
L...-_ _ _ _ _ _ _ _ _
~
Woed L,""h 5,1,,, BI, 0 IWL501
Word Length Select Bit 1 (WLS1)
Number of Stop Bits (STB)
Parity Enable (PEN)
Even Parity Select (EPS)
Stick Parity
Set Break
' - - - - - - - - - - - - - Divisor Latch Access Bit (DLAB)
Line-Control Register (LCR)
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 1
BitO
0
0
0
1
1
0
1
1
Word Length
5
6
7
8
Bits
Bits
Bits
Bits
Asynchronous Adapter
1-227
Bit 2: This bit specifies the number of stop bits in each
transmitted or received serial character. If bit 2 is a logical 0, one
stop bit is generated or checked in the transmit or receive data,
respectively. If bit 2 is logical 1 when a 5-bit word length is
selected through bits 0 and I, 1-1/2 stop bits are generated or
checked. If bit 2 is logical 1 when either a 6-, 7-, or 8-bit word
length is selected, two stop bits are generated or checked.
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 1 '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.
1-228
Asynchronous Adapter
Programmable Baud Rate Generator
The INS8250 contains a programmable baud rate generator that
is capable of taking the clock input (1.8432 MHz) and dividing it
by any divisor from 1 to (2 16-1). The output frequency of the
baud generator is 16 x the baud rate [divisor # = (frequency
input)/(baud rate x 16)]. Two 8-bit latches store the divisor in a
16-bit binary format. These divisor latches must be loaded during
initialization in order to ensure desired operation of the baud rate
generator. Upon loading either of the divisor latches, a 16-bit
baud counter is immediately loaded. This prevents long counts on
initial load.
Hex Address 3F8 DLAB = 1
Bit
7
6
5
4
3
2
I
1_:
o
IL--=:
1..-_ _ _ _ _ _ _ _
L -_ _ _ _ _ _ _ _
~
B;10
Bit1
Bit 2
Bit 3
Bit 4
1..-_ _ _ _ _ _ _ _ _ _. . .
Bit 5
'--------------~
Bit 6
Bit 7
L -_ _ _ _ _ _ _ _ _ _ _ _ _ _
~
Divisor Latch Least Significant Bit (DLL)
Asynchronous Adapter
1·229
Hex Address 3F9 DLAB
Bit
7
6
=
5
1
4
3
2
o
Bit 8
Bit 9
1..-_________
Bit 10
Bit 11
1..------------_...
Bit 13
Bit 12
' - - - - - - - - - - - - - - - _ Bit 14
' - - - - - - - - - - - - - - - - - - Bit 15
Divisor Latch Most Significant Bit (DLM)
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.
Note: The maximum operating frequency of the baud generator
is 3.1 MHz. In no case should the data rate be greater than 9600
baud.
Desired
Baud
Rate
50
75
110
134.5
150
300
600
1200
1800
2000
2400
3600
4800
7200
9600
Divisor Used
to Generate
16x Clock
(Decimal)
(Hex)
2304
1536
1047
857
768
384
192
96
64
58
48
32
24
16
12
Baud Rate at 1.843 MHz
1-230 Asynchronous Adapter
900
600
417
359
300
180
OCO
Percent Error
Difference Between
Desired and Actual
-
0.026
0.058
-
-
060
040
03A
030
020
018
010
-
OOC
-
-
0.69
-
-
Line Status Register
This 8-bit register provides status information on the processor
concerning the data transfer. The contents of the line status
register are indicated and described below:
Hex Address 3FD
Bit
7
6
5
4
3
2
I I
I:
o
D,," R"dy (DR)
Overrun Error (OR)
Parity Error (PE)
' - - - - - - - - Framing Error (FE)
L.-_ _ _ _ _ _ _ _~ Break Interrupt (BI)
L--_ _ _ _ _ _ _ _ _ _. .
Transmitter Holding
Register Empty
(THRE)
'--------------~
Tx Shift Register
Empty (TSRE)
' - - - - - - - - - - - - - - - -. . =0
Line Status Register (LSR)
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 1: This bit is the overrun error (OE) indicator. Bit 1
indicates that data in the reciever buffer register was not read by
the processor before the next character was transferred into the
receiver buffer register, thereby destroying the previous character.
The OE indicator is reset whenever the processor reads the
contents of the line status register.
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.
Asynchronous Adapter
1-231
Bit 3: This bit is the framing error (FE) indicator. Bit 3
indicates that the received character did not have a valid stop bit.
Bit 3 is set to a logical 1 whenever the stop bit following the last
data bit or parity is detected as a zero bit (spacing level).
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).
Note: Bits 1 through 4 are the error conditions that produce a
receiver line status interrupt whenever any of the corresponding
conditions are detected.
Bit 5: This bit is the transmitter holding register empty (THRE)
indicator. Bit 5 indicates that the INS8250 is ready to accept a
new character for transmission. In addition, this bit causes the
INS8250 to issue an interrupt to the processor when the transmit
holding register empty interrupt enable is set high. The THRE bit
is set to a logical 1 when a character is transferred from the
transmitter holding register into the transmitter shift register. The
bit is reset to logical 0 concurrently with the loading of the
transmitter holding register by the processor.
Bit 6: This bit is the transmitter shift register empty (TSRE)
indicator. Bit 6 is set to a logical 1 whenever the transmitter shift
register is idle. It is reset to logical 0 upon a data transfer from the
transmitter holding register to the transmitter shift register. Bit 6 is
a read-only bit.
Bit 7:
This bit is permanently set to logical O.
Interrupt Identification Register
The INS8250 has an on-chip interrupt capability that allows for
complete flexibility in interfacing to all the popular
microprocessors presently available. In order to provide minimum
software overhead during data character transfers, the INS8250
prioritizes interrupts into four levels: receiver line status (priority
1), received data ready (priority 2), transmitter holding register
empty (priority 3), and modem status (priority 4).
1-232
Asynchronous Adapter
Information indicating that a prioritized interrupt is pending and
the type of prioritized interrupt is stored in the interrupt
identification register. Refer to the "Interrupt Control
Functions" table. The interrupt identification register (IIR), when
addressed during chip-select time, freezes the highest priority
interrupt pending, and no other interrupts are acknowledged until
that particular interrupt is serviced by the processor. The contents
of the IIR are indicated and described below.
Hex Address 3FA
Bit
7
6
5
o
432
II
I~
\ 0 '""""p""d,,"
If
Interrupt
10 Bit (0)
Interrupt 10 Bit (1 )
=0
'---------- =
'-----------~ =
L--_ _ _ _ _ _ _ _.._. =
L..-_ _ _ _ _ _ _ _ _ _.._. =
0
0
0
0
Interrupt Identification Register (/I R)
Bit 0: This bit can be used in either a hard-wired prioritized or
polled environment to indicate whether an interrupt is pending and
the IIR contents may be used as a pointer to the appropriate
interrupt service routine When bit 0 is a logical 1, no interrupt is
pending and polling (if used) is continued.
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.
Asynchronous Adapter
1-233
Interrupt 10
Register
Bit 2
Interrupt Set and Reset Functions
Bit 1 BitO
Priority
Level
Interrupt
Type
Interrupt
Source
Interrupt
Reset Control
0
0
1
1
1
0
Highest
Receiver
Line Status
1
0
0
Second
Received
Receiver
Data Available Data Available
Reading the
Receiver Buffer
Register
0
1
0
Third
Transmitter
Holding
Register
Empty
Transmitter
Holding
Register
Empty
Reading the IIR
Register (if
source of
interrupt)
or
Writing into the
Transmitter
Holding Register
0
0
0
Fourth
Modem
Status
Clear to Send
or
Data Set Ready
or
Ring Indicator
or
Received Line
Signal Direct
Reading the
Modem Status
Register
None
Interrupt Control Functions
1-234 Asynchronous Adapter
None
Overrun Error
or
Parity Error
or
Framing Error
or
Break Interrupt
Reading the
Line Status
Register
Interrupt Enable Register
This eight-bit register enables the four types of interrupt of the
INS8250 to separately activate the chip interrupt (INTRPT)
output signal. It is possible to totally disable the interrupt system
by resetting bits 0 through 3 of the interrupt enable register.
Similarly, by setting the appropriate bits of this register to a
logical 1, selected interrupts can be enabled. Disabling the
interrupt system inhibits the interrupt identification register and
the active (high) INTRPT output from the chip. All other system
functions operate in their normal manner, including the setting of
the line status and modem status registers. The contents of the
interrupt enable register are indicated and described below:
Hex Address 3F9 DLAB = 0
Bit
7
6
5
4
3
o
2
I
L: ~
1
'''hi'
D",
Ava ilable Interrupt
1..-___
L..-_ _ _ _~
1 = Enable Tx Holding Register
Empty Interrupt
1 = Enable Receive line
Status Interrupt
1 = Enable Modem Status
Interrupt
1..------- == 00
L..-_ _ _ _ _ _ _. . .
L -_ _ _ _ _ _ _ _ _ =
L..-_ _ _ _ _ _ _ _ _ _ _
0
= 0
Interrupt Enable Register (JERI
Bit 0: This bit enables the received data available interrupt when
set to logical 1.
Bit 1: This bit enables the transmitter holding register empty
interrupt when set to logical 1.
Bit 2: This bit enables the receiver line status interrupt when set
to logical 1.
Asynchronous Adapter
1-235
Bit 3: This bit enables the modem status interrupt when set to
logical 1.
Bits 4 through 7:
These four bits are always logical O.
Modem Control Register
This eight-bit register controls the interface with the modem or
data set (or peripheral device emulating a modem). The contents
of the modem control register are indicated and described below:
Hex Address 3FC
Bit
76543
2
II I
o
L~
D""eem'",' ""dy(DTR(
Request to Send (RTS)
Out 1
Out 2
' - - - - - - - - Loop
L...-_ _ _ _ _ _ _ _ _ =
'---------~ =
0
0
'------------~ =
0
Modem Control Register (MCR)
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.
Note: The DIR output of the INS8250 may be applied to an
EIA inverting line driver (such as the DS1488) to obtain the
proper polarity input at the succeeding modem or data set.
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.
1-236
Asynchronous Adapter
Bit 2: This bit controls the output 1 (OUT 1) signal, which is an
auxiliary user-designated output. Bit 2 affects the OUT 1 output
in a manner identical to that described above for bit O.
Bit 3: This bit controls the output 2 (OUT 2) signal, which is an
auxiliary user-designated output. Bit 3 affects the OUT 2 output
in a manner identical to that described above for bit O.
Bit 4: This bit provides a loopback feature for diagnostic testing
of the INS8250. When bit 4 is set to logical 1, the following
occurs: the transmitter serial output (SOUT) is set to the marking
(logical 1) state; the receiver serial input (SIN) is disconnected;
the output of the transmitter shift register is "looped back" into
the receiver shift register input; the four modem control inputs
(CTS, DRS, RLSD, and RI) are disconnected; and the four
modem control outputs (DTR, RTS, OUT I, and OUT 2) are
internally connected to the four modem control inputs. In the
diagnostic mode, data that is transmitted is immediately received.
This feature allows the processor to verify the transmit- and
receive-data paths of the INS8250.
In the diagnostic mode, the receiver and transmitter interrupts are
fully operational. The modem control interrupts are also
operational but the interrupts' sources are now the lower four bits
of the modem control register instead of the four modem control
inputs. The interrupts are still controlled by the interrupt enable
register.
The INS8250 interrupt system can be tested by writing into the
lower four bits of the modem status register. Setting any of these
bits to a logical 1 generates the appropriate interrupt (if enabled).
The resetting of these interrupts is the same as in normal
INS8250 operation. To return to normal operation, the registers
must be reprogrammed for normal operation and then bit 4 of the
modem control register must be reset to logical O.
Bits 5 through 7:
These bits are permanently set to logical O.
Asynchronous Adapter
1-237
Modem Status Register
This eight-bit register provides the current state of the control
lines from the modem (or peripheral device) to the processor. In
addition to this current-state information, four bits of the modem
status register provide change information. These bits are set to a
logical 1 whenever a control input from the modem changes state.
They are reset to logical 0 whenever the processor reads the
modem status register.
The content of the modem status register are indicated and
described below:
Hex Address 3FE
Bit
7
6
5
432
a
I Ii: 0"" c,,,""
S'"d(DCTS,
Delta Data Set Ready (DDSR)
L..-_ _ _ _ _ _
Trailing Edge Ring
Indicator (TERI)
Delta Rx Line Signal
Detect (DRLSD)
' - - - - - - - -... Clear to Send (CTS)
' - - - - - - - - - _ Data Set Ready (DSR)
Ring Indicator (RI)
L..-_ _ _ _ _ _ _ _ _ _
L..-_ _ _ _ _ _ _ _ _ _ _
Receive Line Signal
Detect (RLSD)
Modem Status Register (MSR)
1-238
Asynchronous Adapter
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 1: This bit is the delta data set ready (DDSR) indicator. Bit
1 indicates that the DRS input to the chip has changed since the
last time it was read by the processor.
Bit 2: This bit is the trailing edge of ring indicator (TERI)
detector. Bit 2 indicates that the RI input to the chip has changed
from an on (logical 1) to an off (logical 0) condition.
Bit 3: This bit is the delta received line signal detector
(DRLSD) indicator. Bit 3 indicates that the RLSD input to the
chip has changed state.
Note: Whenever bit 0, 1, 2, or 3 is set to a logical 1, a modem
status interrupt is generated.
Bit 4: This bit is the complement of the clear to send (CTS)
input. If bit 4 (LOOP) of the MCR is set to a logical 1, this is
equivalent to RTS in the MCR.
Bit 5: This bit is the complement of the data set ready (DSR)
input. If bit 4 of the MCR is set to a logical 1, this bit is
equivalent to DTR in the MCR.
Bit 6: This bit is the complement of the ring indicator (RI) input.
If bit 4 of the MCR is set to a logical 1, this bit is equivalent to
OUT 1 in the MCR.
Bit 7: This bit is the complement of the received line signal
detect (RLSD) input. If bit 4 of the MCR is set to a logical 1, this
bit is equivalent to OUT 2 of the MCR.
Asynchronous Adapter
1-239
Receiver Buffer Register
The receiver buffer register contains the received character as
defined below:
Hex Address 3F8
Bit
7
6
DLAB = 0
Read Only
543
o
2
~
I ~
~
Data BitO
DataBitl
Data Bit 2
Data Bit 3
1---------1..-
Data Bit 4
' - - - - - - - - -.... Data Bit 5
' - - - - - - - - - - - - . . . . Data Bit 6
'---------------i..-
Data Bit 7
Receiver Buffer Register (RBR)
Bit 0 is the least significant bit and is the first bit serially received.
1-240
Asynchronous Adapter
Transmitter Holding Register
The transmitter holding register contains the character to be
serially transmitted and is defined below:
Hex Address 3F8
Bit
7
6
DLAB =
5
a
Write Only
432
a
I~
~: ~:~: ::~~
~
Data Bit2
Data Bit 3
Data Bit 4
'------------'~
Data Bit 5
' - - - - - - - - - - - - - Data Bit 6
' - - - - - - - - - - - - - - Data Bit 7
Transmitter Holding Register (THR)
Bit 0 is the least significant bit and is the first bit serially
transmitted.
Asynchronous Adapter
1-241
Selecting the Interface Format and
Adapter Address
The voltage or current loop interface and adapter address are
selected by plugging the programmed shunt modules with the
locator dots up or down. See the figure below for the
configurations.
Module Position
for Primary Asynchronous
Adapter
Module Position
for Alternate Asynchronous
Adapter
D
D
D
o
Asynchronous
Com m u n i ca ti 0 n s L1.U.L.U.J.J..Lu;<'l..U..1.L.U.J.J..LL.1..J.Jc.Lf-L.J..U..u.J
Adapter
Current loop
Interface
Dot Down
1-242
Asynchronous Adapter
Voltage Interface
Dot Up
Rear Panel
25-Pin D-Shell
•
25
•
•
•
•
•
•
•
•
•
•
4
•
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
NC
External
Device
Note:
9
10
-Transmit Current Loop Data
11
NC
12
NC
13
NC
14
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
Asynchr onous
Commun ications
Adapter
(RS-232 C)
To avoid inducing voltage surges on interchange circuits. signals from
interchange circuits shall not be used to drive inductive devices. such
as relay coils.
Connector Specifications
Asynchronous Adapter 1-243
Notes:
1- 244 Asynchronous Adapter
Binary Synchronous
Communications Adapter
The binary synchronous communications (BSC) adapter is a
4-inch high by 7 .5-inch wide card that provides an
RS232C-compatible communication interface for the IBM
Personal Computer. All system control, voltage, and data signals
are provided through a 2- by 3 I-position card-edge tab. External
interface is in the form of EIA drivers and receivers connected to
an RS232C, standard 25-pin, D-shell connector.
The adapter is programmed by communication software to
operate in binary synchronous mode. Maximum transmission rate
is 9600 bits per second (bps). The heart of the adapter is an
Intel 825lA Universal Synchronous/Asynchronous
Receiver/Transmitter (USART). An Intel 8255A-5
programmable peripheral interface (PPI) is also used for an
expanded modem interface, and an Intel 8253-5 programmable
interval timer provides time-outs and generates interrupts.
The following is a block diagram of the BSe adapter.
TIMER
EIA
Drivers/
Receivers
-
8253
Syste m
Bus
'
i
I
I
I
I
I
I
I
I
Data
Bus
F:z
rl
'//,
Z
Control
~
I
I I
I I
I
L.J
-
I
~l
I
I
I
"
'//,'///);
BSC Adapter Block Diagram
I
Programmable
Peripheral
Interface
---
I
I
I
I
I
I
I
I
I
I
I
L.J
f---f-- '---
>-=
%
I
USART
i8251A
I
Address ~
Data
Comm unication
Equip ment
8255A5
Bse Adapter
1-245
Functional Description
8251A Universal Synchronous/Asynchronous
Receiver/Transmitter
The 8251A operational characteristics are programmed by the
system unit's software, and it can support virtually any form of
synchronous data technique currently in use. In the configuration
being described, the 8251A is used for IBM's binary synchronous
communications (BSC) protocol in half-duplex mode.
Operation of the 8251 A is started by programming the
communications format, then entering commands to tell the
8251A what operation is to be performed. In addition, the 8251A
can pass device status to the system unit by doing a Status Read
operation. The sequence of events to accomplish this are mode
instruction, command instruction, and status read. Mode
instruction must follow a master reset operation. Commands can
be issued in the data block at any time during operation of the
8251A.
A block diagram of the 8251A follows:
TxD
TxRDY
TxE
TxC
RxD
INTERNAL
DATA BUS
8251A Block Diagram
1-246
BSC Adapter
RxRDY
RxC
SYNDET
Data Bus Buffer
The system unit's data bus interfaces the 8251A through the data
bus buffer. Data is transferred or received by the buffer upon
execution of input or output instructions from the system unit.
Control words, command words, and status information are also
transferred through the data bus buffer.
Read/Write Control Logic
The read/write control logic controls the transfer of information
between the system unit and the 8251A. It consists of pins
designated as RESET, CLK, WR, RD, C/D, and CS.
RESET: The Reset pin is gated by Port B, bit 4 of the 8255,
and performs a master reset of the 8251 A. The minimum reset
pulse width is 6 clock cycles. Clock-cycle duration is determined
by the oscillator speed of the processor.
CLK (Clock): The clock generates internal device timing. No
external inputs or outputs are referenced to CLK. The input is the
system board's bus clock of 4.77 MHz.
WR (Write): An input to WR informs the 8251A that the
system unit is writing data or control words to it. The input is the
WR signal from the system-unit bus.
RD (Read): An input to RD informs the 8251A that the
processing unit is reading data or status information from it. The
input is the RD signal from the system-unit bus.
c/n (Control/Data): An input on this pin, in conjunction with
the WR and RD inputs, informs the 8251A that the word on the
data bus is either a data character, a control word, or status
information. The input is the low-order address bit from the
system board's address bus.
CS (Chip Select): A low on the input selects the 8251A. No
reading or writing will occur unless the device is selected. An
input is decoded at the adapter from the address information on
the system-unit bus.
BSC Adapter
1-247
Modem Control
The 8251A has the following input and output control signals
which are used to interface the transmission equipment selected
by the user.
DSR (Data Set Ready): The DSR input port is a
general-purpose, I-bit, inverting input port. The 8251 A can test
its condition with a Status Read operation.
CTS (Clear to Send): A low on this input enables the 8251 A
to transfer serial data if the TxEnable bit in the command byte is
set to 1. If either a TxEnable off or CTS off condition occurs
while the transmitter is in operation, the transmitter will send all
the data in the USART that was written prior to the TxDisable
command, before shutting down.
DTR (Data Terminal Ready): The DTR output port is a
general-purpose, I-bit, inverting output port. It can be set low by
programming the appropriate bit in the command instruction
word.
RTS (Request to Send): The RTS output signal is a
general-purpose, I-bit, inverting output port. It can be set low by
programming the appropriate bit in the Command Instruction
word.
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).
1-248
BSC Adapter
Transmitter Control
Transmitter Control manages all activities associated with the
transfer of serial data. It accepts and issues the following signals,
both externally and internally, to accomplish this function:
TxRDY (Transmitter Ready): This output signals the system
unit that the transmitter is ready to accept a data character. The
TxRDY output pin is used as an interrupt to the system unit
(Level 4) and is masked by turning off Transmit Enable. TxRDY
is automatically reset by the leading edge of a WR input signal
when a data character is loaded from the system unit.
TxE (Transmitter Empty):
register input.
This signal is used only as a status
TxC (Transmit Clock): The Transmit Clock controls the rate
at which the character is to be transmitted. In synchronous mode,
the bit-per-second rate is equal to the TxC frequency. The falling
edge of TxC shifts the serial data out of the 8251A.
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.
BSC Adapter
1-249
RxRDY (Receiver Ready): This output indicates that the
8251A has a character that is ready to be received by the system
unit. RxRDY is connected to the interrupt structure of the system
unit (Interrupt Level 3). With Receive Enable off, RxRDY is
masked and held in the reset mode. To set RxRDY, the receiver
must be enabled, and a character must finish assembly and be
transferred to the data output register. Failure to read the received
character from the RxRDY output register before the assembly of
the next Rx Data character will set an overrun-condition error,
and the previous character will be lost.
RxC (Receiver Clock): The receiver clock controls the rate at
which the character is to be received. The bit rate is equal to the
actual frequency of RxC.
SYNDET (Synchronization Detect): This pin is used for
synchronization detection and may be used as either input or
output, programmable through the control word. It is reset to
output-mode-low upon reset. When used as an output (internal
synchronization mode), the SYNDET pin will go to 1 to indicate
that the 8251A has found the synchronization character in the
receive mode. If the 8251 A is programmed to use double
synchronization characters (bisynchronization, as in this
application), the SYNDET pin will go to 1 in the middle of the
last bit of the second synchronization character. SYNDET is
automatically reset for a Status Read operation.
8255A-5 Programmable Peripheral Interface
The 8255A-5 is used on the BSC adapter to provide an expanded
modem interface and for internal gating and control functions. It
has three 8-bit ports, which are defined by the system during
initialization of the adapter. All levels are considered plus active
unless otherwise indicated. A detailed description of the ports is in
"Programming Considerations" in this section.
1-250
BSC Adapter
8253-5 Programmable Interval Timer
The 8253-5 is driven by a divided-by-two system-clock signal. Its
outputs are used as clocking signals and to generate inactivity
timeout interrupts. These level 4 interrupts occur when either of
the timers reaches its programmed terminal counts. The 8253-5
has the following outputs:
Timer 0:
Not used for synchronous-mode operation.
Timer 1:
Connected to port A, bit 7 of the 8255 and Interrupt
Level 4.
Timer 2:
Connected to port A, bit 6 of the 8255 and Interrupt
Level 4.
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.
BSC Adapter
1-251
Once transmission has started, the data stream at the TxD output
must continue at the TxC rate. If the system does not provide the
8251A with a data character before the 8251A transmit buffers
become empty, the synchronization characters will be
automatically inserted in the TxD data stream. In this case, the
TxE bit in the status register is raised high to signal that the
8251A is empty and that synchronization characters are being
sent out. (Note that this TxE bit is in the status register, and is not
the TxE pin on the 8251A). TxE does not go low when SYNC is
being shifted out. The TxE status bit is internally reset by a data
character being written to the 8251A.
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.
Once synchronization has occurred, the 8251A begins to
assemble received data bytes. When a character is assembled and
ready to be transferred to memory from the 8251A, it raises
RxRDY, causing an interrupt level 3 to the system.
If the system has not fetched a pevious character by the time
another received character is assembled (and an interrupt-level 3
issued by the adapter), the old character will be overwritten, and
the overrun error flag will be raised. All error flags can be reset by
an error reset operation.
1-252
BSC Adapter
Programming Considerations
Before starting data transmission or reception, the BSC adapter
is programmed by the system unit to define control and gating
ports, timer functions and counts, and the communication
environment in which it is to operate.
Typical Programming Sequence
The 8255A-5 programmable peripheral interface (PPI) is
initialized for the proper mode by selecting address hex 3A3 and
writing the control word. This defines port A as an input, port B
as an output for modern control and gating, and port C for 4-bit
input and 4-bit output. The bit descriptions for the 8255A-5 are
shown in the following figures. Using an output to port C, the
adapter is then set to wrap mode, disallow interrupts, and gate
external clocks (address=3A2H, data=ODH). The adapter is
now isolated from the communication interface, and initialization
continues.
Through bit 4 of 8255 Port B, the 8251A reset pin is brought
high, held, then dropped. This resets the internal registers of the
8251A.
BSC Adapter
1-253
Address: hex 3AO for BSe
hex 380 for Alternate BSe
8255 Port A Assignments
Input Port
Bit
7
6543210
I 1_1~_4.~~: Ei~::~n~n~~~:~~~~~Xr~~ ~~::J~~erface
III
I
-
:
0 = Clear-to-Send is on from Interface
Oscillating = Receive Clock Active
1 =TxROY Active
L -_ _ _ _ _ _ _ _ _ _ _ _ 1 = Timer 2 Output Active
L-_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1 = Timer 1 Output Active
L-_ _ _ _ _ _ _ _
Address: hex 3A 1 for BSe
hex 381 for Alternate BSe
8255 Port B Assignments
Output Port
Bit
7
6
5
4
3
I
o
2
I
I ~ 0 ~ T"," "" 0,. """,IR.. '0'0"",
0= Turn on Select Standby
0= Turn on Test
1 = Not Used
1 = Reset 8251A
L.._ _ _ _ _ _ _ _ _ _ _ 1 = Gate Timer 2
L.._ _ _ _ _ _ _ _ _ _ __._ 1 = Gate Timer 1
L-_ _ _ _ _ _ _ _ _ _ _ _ _ _ 1 = Gate Timers 1 and 2 to Interrupt Level 4
8255 Port
Bit
7
6
e
Address: hex 3A2 for BSe
hex 382 for Alternate BSe
Assignments
4
3
2
1
0
I L....
I I I __-_:L
.
__
-
L-_ _ _ _ _ _
L _________
L
I -_ _ _ _ _ _ _ _ ___+_
L _ _ _ _ _ _ _ _ _ _ _.....
______________
1 = Gate Internal Clock IOutput Bit)
1 = Gate External Clock IOutput Bit)
1 = Electronic Wrap IOutput Bit)
0 = Enable Timer 1 and 2, Interrupt 6 and
Receive Interrupt 3
Oscillating = Receive Data Iinput Bit)
Oscillating = Timer 0 Output Iinput Bit)
0 = Test Indicate Active IInput Bit)
0 = BSC Adapter
The 8253-5 programmable interval timer is used in the
synchronous mode to provide inactivity time-outs to interrupt the
system unit after a preselected period of time has elapsed from the
start of a communication operation. Counter 0 is not used for
synchronous operation. Counters 1 and 2 are connected to
interrupt-level 4, and are programmed to terminal-count values,
which will provide the desired time delay before a level-4 interrupt
is generated. These interrupts will indicate to the system software
that a predetermined period of time has elapsed without a TxRDY
(level 4) or RxRDY (level 3) interrupt being sent to the system
unit.
1-254
BSC Adapter
The modes for each counter are programmed by selecting each
timer-register address and writing the correct control word for
counter operation to the adapter. The mode for counters 1 and 2 is
set to O. The terminal-count values are loaded using control-word
bits D4 and D5 to select "load." The 8253-5 Control Word
format is shown in the following chart.
Address hex 3A7
Control Word Format
07
06
I SC1 I
sca
03
05
04
RL1
RLOI M21 Ml I MO I BCO\
I I
02
01
DO
Definition of Control
SC - Select Counter:
SCl
SCO
a
0
Select Cou nter
0
1
Select Counter 1
1
a
Select Counter 2
1
1
Illegal
a
RL - Read/Load:
RL1
RLO
0
a
Counter Latching operation
1
a
Read/Load most significant byte only
a
1
Read/Load least significant byte only
1
1
Read/Load least significant byte first,
then most significant byte
M - Mode:
M2
I
Ml
MO
IaIaI
a
Mode
a
I
Terminal Count
Interrupt
BCD:
a
Binary Counter 16-bits
1
Binary Coded Decimal (BCD) Counter
(4 Decades)
8253-5 Control Word Format
BSC Adapter
1-255
8251A Programming Procedures
After the support devices on the BSC adapter are programmed,
the 8251A is loaded with a set of control words that define the
communication environment. The control words are split into two
formats, mode instruction, and command instruction.
Both the mode and command instructions must conform to a
specified sequence for proper device operation. The mode
instruction must be inserted immediately after a reset operation,
before using the 8251A for data communications. The required
synchronization characters for the defined communication
technique are next loaded into the 8251A (usually hex 32 for
BSC). All control words written to the 8251A after the mode
instruction will load the command instruction. Command
instructions can be written to the 8251A at any time in the data
block anytime during the operation of the 8251A. To return to the
mode instruction format, the master reset bit in the command
instruction word can be set to start an internal reset operation
which automatically places the 8251A back into the mode
instruction format. Command instructions must follow the mode
instructions or synchronization characters.
The following diagram is a typical data block, showing the mode
instruction and command instruction.
3A9
c/o = 1
Mode Instruction 1
3A9
c/o = 1
SYNC Character 1
3A9
c/o = 1
SYNC Character 2
3AG
c/o = 1
Command Instruction
3AB
c/o = 0
3A9
c/o =1
3AB
c/o =0
3A9
c/o = 1
It
Data
Command Instruction
Data
"
Command Instruction
Typical Data Block
1-256
BSC Adapter
II
Mode Instruction Definition
The mode instruction defines the general operational
characteristics of the 8251A. It follows a reset operation (internal
or external). Once the mode instruction has been written to the
8251A by the system unit, synchronization characters or
command instructions may be written to the device.
The following figure shows the format for the mode instruction.
Address: Hex 3A9 for BSe
Hex 389 for Alternate BSe
Mode Instruction Format
Bit
7
6
5
4
3
[I
2
I
l-y
1
0
No>
01
Not U""AlM,,
Used (Always 0)
Character Length Bit - - - Character Length Bit - - - 1 ~ ~,i',
,..bl.
1 ; Even Parity
1; SYNDET is an Input
0; Double SYNC Character
I
- - .,
- 1
I
0
1
1
Bit 0
Not used; always 0
Bit 1
Not used; always 0
1
0
1
5 Bits
6 Bits
7 Bits
8 Bits
Bit 2 and These two bits are used together to define the character
Bit 3
length. With 0 and 1 as inputs on bits 2 and 3,
character lengths of 5,6, 7, and 8 bits can be
established, as shown in the preceding figure.
Bit 4
In the synchronous mode, parity is enabled from this
bit. A 1 on this bit sets parity enable.
Bit 5
The parity generation/check is set from this bit. For
BSC, even parity is used by having bit 5 = 1.
Bit 6
External synchronization is set by this bit. A 1 on this
bit establishes synchronization detection as an input.
Bit 7
This bit establishes the mode of character
synchronization. A 0 is set on this bit to give double
character synchronization.
BSC Adapter 1-257
Command-Instruction Format
The command-instruction format defines a status word that is
used to control the actual operation of the 8251A. Once the mode
instruction has been written to the 8251A, and SYNC characters
loaded, all further "Control Writes" to I/O address hex 3A9 or
hex 389 will load a command instruction.
Data is transferred by accessing two I/O ports on the 8251A,
ports 3A8 and 388. A byte of data can be read from port 3A8 and
can be written to port 388.
Address: Hex 3A9 for SSC
Hex 389 for Alternate
Bit
7
6
5
I
4
I
3
I
2
I
1
sse
0
~
Transmit Enable
Data Terminal Ready
Receive Enable
Send Break Character
Error Reset
Request to Send
Internal Reset
Enter Hunt Mode
Command Instruction Format
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 2
The Receive Enable bit sets the function to either
enable the bit (1), or to disable the bit (0).
Bit 3
The Send Break Character bit is set to 0 for normal
BSC operation.
Bit 4
The Error Reset bit is set to 1 to reset error flags from
the command instruction.
Bit 5
A 1 on the Request to Send bit will set the output to O.
This is a one-bit inverting output port.
1-258
BSC Adapter
Bit 6
The Internal Reset bit when set to 1 returns the 8251A
to mode-instruction format.
Bit 7
The Enter Hunt bit is set to 1 for BSC to enable a
search for synchronization characters.
Status Read Definition
In telecommunication systems, the status of the active device must
often be checked to determine if errors or other conditions have
occurred that require the processor's attention. The 8251A has a
status read facility that allows the system software to read the
status of the device at anytime during the functional operation. A
normal read command is issued by the processor with 1/0 address
hex 3A9 for BSC, and hex 389 for Alternate BSC to perform a
status read operation.
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.
Address: Hex 3A9 for BSe
Hex 389 for Alternate BSC
-
Bit
0
1
2
~
RxRDY
~
TxEmpty
3
~
Parity Error (PE Flag On when a Parity Error Occurs)
4
~
Overrun Error (OE Flag On when Overrun Error Occurs)
5
~
Framing Error (Not Used for Synchronous Communications)
6
.. SYNDET
7
~
.
TxRDY (See Note Below)
Data Set Ready (I ndicates that DSR is at 0 Level)
Note: TxRDY status bit does not have the same meaning as the 8251A
TxRDY output pin. The former is not conditioned by CTS and TxEnable.
The latter is conditioned by both CTS and TxEnable.
Status Read Format
BSC Adapter
1-259
Bit 0
See the Note in the preceding figure.
Bit 1
An output on this bit means a character is ready to be
received by the computer's 8088 microprocessor.
Bit 2
A 1 on this bit indicates the 8251A has no characters to
transmit.
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 4
This bit sets a flag when the computers 8088
microprocessor does not read a character before another
one is presented. The 8251A operation is not inhibited
by this flag, but the overrun character will be lost.
Bit 5
Not used
Bit 6
SYNDET goes to 1 when the synchronization character
is found in receive mode. For BSC, SYNDET goes
high in the middle of the last bit of the second
synchronization character.
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.
Interface Signal Information
The BSC adapter conforms to interface signal levels standardized
by the Electronics Industry Association (EIA) RS232C Standard.
These levels are shown in the following figure.
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.
1-260
BSC Adapter
Driver
EIA RS232C/CCITT V24·V28 Signal Levels
+15 Vdc
~
Active/Data
0
+5 Vdc
+5 Vdc
Invalid Level
·5 Vdc
·5 Vdc
I nactive/ Data
~
1
·15 Vdc
Receiver
EIA RS232C/CCITT V24·V28 Signal Levels
+25 Vdc
Active/Data
~
0
+3 Vdc
+3 Vdc
Invalid Level
·3 Vdc
·3 Vdc
I nactive/Data
~
1
·25 Vdc
Interface Voltage Levels
BSC Adapter
1-261
Interrupt Information
Interrupt Level 4:
Transmitter Ready
Counter 1
Counter 2
Interrupt Level 3:
Receiver Ready
The following chart is a device address summary for the primary
and alternate modes of the binary synchronous communications
adapter.
Hex Address
Device
Register Name
Function
Primary
Alternate
3AO
3A1
3A2
3A3
380
381
382
383
8255
8255
8255
8255
Port A Data
Port B Data
Port C Data
Mode Set
I nternal/External Sensing
External Modem Interface
I nternal Control
8255 Mode Initialization
3A4
3A4
3A5
3A5
3A6
3A6
3A7
384
384
385
385
386
386
387
8253
8253
8253
8253
8253
8253
8253
Counter 0 LSB
Counter 0 MSB
Counter 1 LSB
Counter 1 MSB
Counter 2 LSB
Counter 2 MSB
Mode Register
Not Used in Synch Mode
Not Used in Synch Mode
I nactivity Time-Outs
I nactivity Time-Outs
I nactivity Time-Outs
I nactivity Time-Outs
8253 Mode Set
3A8
3A9
388
389
8251
8251
Data Select
Command/Status
Data
Mode/Command
USART Status
Device Address Summary
1-262
BSC Adapter
Rear Panel
25-Pin D-Shell
CI
• •
•
•
•
•
•
•
•
•
•
•
CI •
.CI 0
CI~
Cl
Q
25
•
•
•
•
•
•
•
•
•
•
•
•
14
0
Signal Name -
Description
No Connection
External
Device
Pin
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
No Connection
9
No Connection
10
Select Standby*
11
No Connection
12
No Connection
13
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
Binary
Synchron ous
Communi cations
Adapter
*Not standardized by EIA (Electronics Industry Association).
Connector Specifications
BSC Adapter
1-263
Notes:
1-264
BSC Adapter
IBM Synchronous Data Link Control
(SDLC) Communications Adapter
The SDLC communications adapter system control, voltage, and
data signals are provided through a 2 by 31 position card edge
tab. Modem interface is in the form of EIA drivers and receivers
connecting to an RS232C standard 25-pin, D-shell, male
connector.
The adapter is programmed by communications software to
operate in a half-duplex synchronous mode. Maximum
transmission rate is 9600 bits per second, as generated by the
attached modem or other data communication equipment.
The SDLC adapter utilizes an Intel 8273 SDLC protocol
controller and an Intel 8255A-5 programmable peripheral
interface for an expanded external modem interface. An Intel
8253 programmable interval timer is also provided to generate
timing and interrupt signals. Internal test loop capability is
provided for diagnostic purposes.
The figure below is a block diagram of the SDLC communications
adapter.
....."'
...IIS255A- 5
Data .f4---=D,....a-t;;;.a-=--=--..,
Bus
Buffer
EIA
Drivers
Receivers
System
Bus
Address
Address
Decode
logic
DeE
Modem
Status
Change
logic
SDLC Communications Adapter Block Diagram
SDLC Adapter
1-265
The 8273 SDLC protocol control module has the following key
features:
•
Automatic frame check sequence generation and checking.
•
Automatic zero bit insertion and deletion.
•
TTL compatibility.
•
Dual internal processor architecture, allowing frame level
command structure and control of data channel with minimal
system processor intervention.
The 8273 SDLC protocol controller operations, whether
transmission, reception, or port read, are each comprised of three
phases:
Command Commands and/or parameters for the required
operation are issued by the processor.
Execution
Executes the command, manages the data link, and
may transfer data to or from memory utilizing direct
memory access (DMA), thus freezing the processor
except for minimal interruptions.
Result
Returns the outcome of the command by returning
interrupt results.
Support of the controller operational phases is through internal
registers and control blocks ofthe 8273 controller.
1-266
SDLC Adapter
8273 Protocol Controller Structure
The 8273 module consists of two major interfaces: the processor
interface and the modem interface. A block diagram of the 8273
protocol controller module follows.
Registers
Txl/R
Command
Rxl/R
Parameter
Reset
Status
Result
Data
Bus
Buffer
DB07
TxD
TxC
TxD RQ . - - - - - - - - ,
DPiI
0-0-- 32 x ClK
TxDACK----~
RxDRQ-----.
t - - -..
RxDACK-----,
D-o--CTS
RxlNT
RD
WR
PB'4
Control
logic
TxlNT
RTS
.......---CD
Read
Write
DMA
Control
logic
A,
r~'----,.-- RxD
RESET
0---- RxC
CS-----'
ClK-----~
L..-_ _ _
FLAG DET
Internal Data Bus - Processor Interface
Modem Interface
8273 SDLC Protocol Control Block Diagram
SDLC Adapter
1-267
Processor Interface
The processor interface consists of four major blocks: the
control/read/write logic (C/R/W), internal registers, data transfer
logic, and data bus buffers.
Control/Read/Write Logic
The control/read/write logic is used by the processor to issue
commands to the 8273. Once the 8273 receives and executes a
command, it returns the results using the C/R/W logic. The logic
is supported by seven registers which are addressed by AO, AI,
RD, and WR, in addition to CS. AO and Al are the two
low-order bits of the adapter address-byte. RD and WR are the
processor read and write signals present on the system control
bus. CS is the chip select, also decoded by the adapter address
logic. The table below shows the address of each register using the
C/R/W logic.
Address Inputs
Control Inputs
AO
Al
CS
WR
RD
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
Register
Command
Status
Parameter
Result
Reset
Txl/R
None
Rxl/R
8273 SDLC Protocol Controller Register Selection
1-268
SDLC Adapter
8273 Control/ReadlWrite Registers
Command
Operations are initialized by writing the
appropriate command byte into this register.
Status
This register provides the general status of
the 8273. The status register supplies the
processor/adapter handshaking necessary
during various phases of the 8273 operation.
Parameter
Additional information that is required to
process the command is written into this
register. Some commands require more than
one parameter.
Immediate Result
(Result)
Commands that execute immediately
produce a result byte in this register, to be
read by the processor.
Transmit Interrupt
Results (TxI/R)
Results of trans.mit operations are passed to
the processor from this register. This result
generates an interrupt to the processor when
the result becomes available.
Receiver Interrupt
Results (Rx/I/R)
Results of receive operations are passed to
the processor from this register. This result
generates an interrupt to the processor when
the result becomes available.
Reset
This register provides a software reset
function for the 8273.
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.
SDLe Adapter
1-269
Data Interfaces
The 8273 supports two independent data interfaces through the
data transfer logic: received data and transmitted data. These
interfaces are programmable for either DMA or non-DMA data
transfers. Speeds below 9600 bits-per-second mayor may not
require DMA, depending on the task load and interrupt response
time of the processor. The processor DMA controller is used for
management of DMA data transfer timing and addressing. The
8273 handles the transfer requests and actual counts of data-block
lengths. DMA level 1 is used to transmit and receive data
transfers. Dual DMA support is not provided.
Elements of Data Transfer Interface
TxDRQ/RxDRQ
This line requests a DMA to or from
memory and is asserted by the 8273.
TxDACK/RxDACK This line notifies the 8273 that a request
has been granted and provides access to
data regions. This line is returned by the
DMA controller (DACK 1 on the system
unit control bus is connected to
TxDACK/RxDACK on the 8273).
RD (Read)
This line indicates data is to be read from
the 8273 and placed in memory. It is
controlled by the processor DMA
controller.
WR (Write)
This line indicates if data is to be written to
the 8273 from memory and is controlled
by the processor DMA controller.
To request a DMA transfer, the 8273 raises the DMA request
line. Once the DMA controller obtains control of the system bus,
it notifies the 8273 that the DRQ is granted by returning DACK,
and WR or RD, for a transmit or receive operation, respectively.
The DACK and WR or RD signals transfer data between the
8273 and memory, independent of the 8273 chip-select pin (CS).
This "hard select" of data into the transmitter or out of the
receiver alleviates the need for the normal transmit and receive
data registers, addressed by a combination of address lines, CS,
and WRorRD.
1-270
SDLC Adapter
Modem Interface
The modem interface of the 8273 consists of two major blocks:
the modem control block and the serial data timing block.
Modem Control Block
The modem control block provides both dedicated and
user-defined modem control function. EIA inverting drivers and
receivers are used to convert TTL levels to EIA levels.
Port A is a modem control input port. Bits PAO and PAl have
dedicated functions.
8273 Port A (Modem Control Input Port)
Bit PA
7
6
543
2
o
PAO Clear to Send
PA 1 Ca rrier Detect
PA2 Data Set Ready
PA3 CTS Change
L---'----'_ _ _ _ _ _ _ _ _
PA4 DSR Change
Not Used
Bit PAO
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).
Bit PA3
This bit is a sense bit to detect a change in
CTS.
SDLC Adapter 1-271
Bit PA4
This bit is a sense bit to detect a change in data
set ready.
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.
8273 Port B (Modem Control Output Port)
Bit PB
7
6
5
4
3
2
0
II I~
L~
PB1 . Reserved
L...-_ _ _ _ _ _
PB3 . Reserved
PB4 - Reserved
PBO - R"",. to S,nd
PB2 . Data Terminal Ready
L -_ _ _ _ _ _ _~
PB5· Flag Detect
L...-_ _ _ _ _ _ _ _~
PB6 . Not Used
L...-_ _ _ _ _ _ _ _ _ _ _ _
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 PB2
Used for data terminal ready.
Bit PB3
Reserved.
Bit PB4 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.
Bit PB6 Not used.
Bit PB7
1-272
Not used.
SDLC Adapter
Serial Data Timing Block
The serial data timing block is comprised of two sections: the
serial data logic and the digital phase locked loop (DPLL).
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.
RxC---"
RxD
8273 SOLC Protocol Controller Transmit/Receive Timing
The digital phase locked loop provided on the 8273 controller
module is utilized to capture looped data in proper
synchronization during wrap operations performed by diagnostics.
SDLC Adapter
1-273
8255A-5 Programmable Peripheral
Interface
The 8255A-5 contains three eight bit ports. Descriptions of each
bit of these ports are as follows:
8255A-5 Port A Assignments'
Bit
7
6 5 4
3
2
Hex Address 380
1 0
~
0= Ring Indicator is on from Interface
o = 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
*Port A is defined as an input port
8255A-5 Port B Assignments'
Bit
7
6 5 4
3
2
Hex Address 381
1 0
~
0= Turn On Data Signal Rate Select at
Modem Interface
0= Turn On Select Standby at Modem
Interface
0= Turn On Test
1 = Reset Modem Status Changed Logic
1 = Reset 8273
1 = Gate Timer 2
1 = Gate Timer 1
1 = Enable Level 4 Interrupt
*Port B is defined as an output port
1-274
SDLC Adapter
8255A-5 Port C Assignments*
Bit
7
6
5 4 3
2
Hex Address 382
1 0
III ~
1
~
G". I "W",I Clock
,0",,", .;,'
1 = Gate External Clock (Output Bit)
1 = Electronic Wrap (Output Bit)
0= Gate Interrupts 3 and 4 (Output Bit)
Oscillating = Receive Data (Input Bit)
Oscillating = Timer 0 Output (Input bit)
0= Test Indicate Active (Input Bit)
Not Used
*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.
8253-5 Programmable Interval Timer
The 8253-5 is driven by a processor clock signal divided by two_
It has the following output:
Timer a Programmed to generate a square wave signal, used as
an input to timer 2_ Also connected to 8253 port C,
bit 5_
Timer 1 Connected to 8255 port A, bit 7, and interrupt level 4.
Timer 2 Connected to 8255 port A, bit 6, and interrupt level 4.
Programming Considerations
The software aspects of the 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.
SDLC Adapter
1-275
The protocol for this interprocessor communication is
implemented through use of handshaking supplied in the 8273
status register. The bit definitions of this register are shown below.
8273 Status Register Format
Bit
7
6
5
4
3
2
Hex Address 388
1 0
III
~ T"RA
I ~ T,INT R,,"" Av.;I.bI,
RxlRA 1 RxlNT Result Available
=
TxlNT 1 = Tx Interrupt
L...-_ _ _ _ _
RxlNT 1 = Rx Interrupt
CRBF 1 = Command Result Buffer Full
' - - - - - - - - CPBF 1 = Command Parameter Buffer Full
' - - - - - - - - - CBF 1 = Command Buffer Full
' - - - - - - - - - CBSY 1 = Command Busy
Bit 0
This bit is the transmitter interrupt result available
(TxIRA) bit. This bit is set when the 8273 places an
interrupt-result byte in the TxI/R register, and reset
when the processor reads the TxI/R register.
Bit 1
This bit is the receiver interrupt result available
(RxIRA) bit. It is the corresponding result-available bit
for the receiver. It is set when the 8273 places an
interrupt-result byte in the RxI/R register and reset
when the processor reads the register.
Bit 2
This bit is the transmitter interrupt (TxINT) bit and
reflects the state of the TxINT pin. TxINT is set by the
8273 whenever the transmitter needs servicing, and
reset when the processor reads the result or performs
the data transfer.
1-276
SDLC Adapter
Bit 3
This bit is the receiver interrupt (RxINT) bit and is
identical to the TxINT, except action is initiated based
on receiver interrupt-sources.
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 pelforms
the data transfer.
Bit 5
This bit is the command parameter buffer full (CPBF)
bit and indicates that the parameter register contains a
parameter. It is set when the processor deposits a
parameter in the parameter register, and reset when the
8273 accepts the parameter.
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.
SDLC Adapter
1-277
Initializing the Adapter (Typical Sequence)
Before initialization ofthe 8273 protocol controller, the support
devices on the card must be initialized to the proper modes of
operation.
Configuration of the 8255A-5 programmable peripheral interface
is accomplished by selecting the mode-set address for the 8255
(see the "SDLC Communications Adapter Device Addresses"
table later in this section) and writing the appropriate control word
to the device (hex 98) to set ports A, B, and C to the modes
described previously in this section.
Next, a bit pattern is output to port C which disallows interrupts,
sets wrap mode on, and gates the external clock pins (address =
hex 382, data = hex OD). The adapter is now isolated from the
communications interface.
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.
The 8253-5's counter 1 and 2 terminal-count values are now set
to values which will provide the desired time delay before a level
4 interrupt is generated. These interrupts may be used to indicate
to the communication software that a pre-determined period of
time has elapsed without a result interrupt (interrupt level 3).
The terminal count-values for these counters are set for any time
delay which the programmer requires. Counter 0 is also set at this
time to mode 3 (generates square wave signal, used to drive
counter 2 input).
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 format 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.
Once the support devices have been initialized to the proper
modes and the 8273 has been reset, the 8273 protocol controller
is ready to be configured for the operating mode that defines the
communications environment in which it will be used.
1-278
SDLC Adapter
Control Word Format
D7
I
SC1
D6
I
sca
D4
D5
I
RL 1
I
RLa
D3
I
M2
D,
D2
I
M1
I
Ma
Do
1
BCD
I
Definitions of Control
SC - Select Counter:
SC1
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
M1
Ma
Mode
a
a
a
Mode a
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:
a
Binary Counter 16-bits
1
Binary Coded Decimal (BCD) Counter (4 Decades)
8253-5 Programmable Interval Timer Control Word
SDLC Adapter
1-279
Initialization/Configuration Commands
The initialization/configuration commands manipulate internal
registers of the 8273, which define operating modes. After chip
reset, the 8273 defaults to all l's in the mode registers. The
initialization/configuration commands either set or reset specified
bits in the registers depending on the type of command. One
parameter is required with the commands. The parameter is
actually the bit pattern (mask) used by the set or reset command
to manipulate the register bits.
Set commands perform a logical OR operation of the parameter
(mask) of the internal register. This mask contains l's where
register bits are to be set. Zero (O's) in the mask cause no change
to the corresponding register bit.
Reset commands perform a logical AND operation of the
parameter (mask) and internal register. The mask 0 is reset to
register bit, and 1 to cause no change.
The following are descriptions of each bit of the operating, serial
I/O, one-bit delay, and data transfer mode registers.
Operating Mode Register
8273 Operating Mode Register Format
Bit
7
6
5 4
3
2
1 0
~
~
III
1
~ Flog ","om Mod,
1 = Two Preframe Sync Characters
1 = Buffered Mode
L -_ _ _~
1 = Enable Early Tx Interrupt
1 = EOP Interrupt Enable
' - - - - - -.... 1 = HDLC Abort Enable
Not Used
L..-_ _ _ _ _. . . .
' - - - - - - - -.... Not Used
1-280
SDLC Adapter
Bit 0
If bit 0 is set to aI, flags are sent immediately if the
transmitter was idle when the bit was set. If a transmit
or transmit-transparent command was active, flags are
sent immediately after transmit completion. This mode
is ignored if loop transmit is active or the one-bit-delay
mode register is set for one-bit delay. If bit 0 is reset (to
0), the transmitter sends idles on the next character
boundary if idle or, after transmission is complete, if the
transmitter was active at bit-O reset time.
Bit 1
If bit 1 is set to aI, the 8273 sends two characters
before the first flag of a frame. These characters are hex
00 ifNRZI is set or hex 55 ifNRZI is not set. (See
"Seriall!O Mode Register," for NRZI encoding mode
format.)
Bit 2
If bit 2 is set to aI, 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.
Bit 3
This bit indicates to the 8273 when to generate an
end-of-frame interrupt. If bit 3 is set, an early interrupt
is generated when the last data character has been
passed to the 8273. Ifthe processor responds to the
early interrupt with another transmit command before
the final flag is sent, the final-flag interrupt will not be
generated and a new frame will begin when the current
frame is complete. Thus, frames may be sent separated
by a single flag. A reset condition causes an interrupt to
be generated only following a final flag.
Bit 4
This is the EOP-interrupt-mode function and is not used
on the SDLC communications adapter. This bit should
always be in the reset condition.
Bit 5
This bit is always reset for SDLC operation, which
causes the 8273 protocol controller to recognize eight
ones (0 1 1 1 1 1 1 1 1) as an abort character.
SDLC Adapter
1-281
Serial I/O Mode Register
8273 Serial 1/0 Mode Register Format
Bit
7
6
5 4
3
2
1 0
~
I L.. 1
L----:. 1
1
=
NRZI Mode
=
Clock Loopback
= Data
Loopback
Not Used
' - - - - - - Not Used
Not Used
1...-_ _ _ _ _ _ Not Used
1...-_ _ _ _......
' - - - - - - - -__ Not Used
Bit 0
Set to 1, this bit specifies NRZI encoding and decoding.
Resetting this bit specifies that transmit and receive
data be treated as a normal positive-logic bit stream.
Bit 1
When bit 1 is set to 1, the transmit clock is internally
routed to the receive-clock circuitry. It is normally used
with the loopback bit (bit 2). The reset condition causes
the transmit and receive clocks to be routed to their
respective 8273 I/O pins.
Bit 2
When bit 2 is set, the transmitted data is internally
routed to the received data circuitry. The reset
condition causes the transmitted and received data to be
routed to their respective 8273 I/O pins.
Data Transfer Mode Register
8273 Data Transfer Mode Register Format
Bit
7
6
5 4
3
2
1 0
IIIIIII ~
1 = Interrupt Data Transfers
_·L.-·I...-I·L.-·L.-·L.-·L.-_a Not Used
L..
1-282
SDLC Adapter
When the data transfer mode register is set, the 8273 protocol
controller will interrupt when data bytes are required for
transmission, or are available from a reception. If a transmit or
receive interrupt occurs and the status register indicates that there
is no transmit or receive interrupt result, the interrupt is a transmit
or receive data request, respectively. Reset of this register causes
DMA requests to be performed with no interrupts to the
processor.
One- Bit Delay Mode Register
8273 One-Bit Delay Mode Register Format
Bit
7
6 5 4
III
3 2
1
I I I I
.
a
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.
The table below is a summary of all set and reset commands
associated with the 8273 mode registers. The set or reset mask
used to define individual bits is treated as a single parameter. No
result or interrupt is generated by the 8273 after execution of
these commands.
Command
Hex
Code
Parameter
One-Bit Delay Mode
Set
Reset
A4
64
Set Mask
Reset Mask
Data Transfer Mode
Set
Reset
97
57
Set Mask
Reset Mask
Operating Mode
Set
Reset
91
51
Set Mask
Reset Mask
Serial liD Mode
Set
Reset
AO
60
Set Mask
Reset Mask
Register
8273 SOLC Protocol Controller Mode Register Commands
SDLC Adapter
1-283
Command Phase
Although the 8273 is a full duplex device, there is only one
command register. Thus, the command register must be used for
only one command sequence at a time and the transmitter and
receiver may never be simultaneously in a command phase.
The system software starts the command phase by selecting the
8273 command register address and writing a command byte into
the register. The following table lists command and parameter
information for the 8273 protocol controller. If further information
is required by the 8273 prior to execution of the command, the
system software must write this information into the parameter
register.
1-284
SDLC Adapter
Command Description
Command
(Hex)
Parameter
Results
Result
Port
Completion
Interrupt
Set One-Bit Delay
A4
Set Mask
None
-
No
No
Reset One-Bit Delay
64
Reset Mask
None
-
Set Data Transfer
Mode
97
Set Mask
None
-
No
Reset Data Transfer
Mode
57
Reset Mask
None
-
No
Set Operating Mode
91
Set Mask
None
-
No
No
Reset Operating Mode
51
Reset Mask
None
-
Set Serial 110 Mode
AO
Set Mask
None
-
No
Reset Serial 110 Mode
60
Reset Mask
None
-
No
General Receive
CO
BO,B1
RIC,RO,R1,
A,C
RXIIR
Yes
Selective Receive
C1
BO, B1, A1,
A2
RIC,RO,R1,
A,C
RXIIR
Yes
Receive Disable
C5
None
None
-
No
Transmit Frame
C8
LO,L1,A,C
TIC
TXIIR
Yes
Transmit Transparent
C9
LO,L1
TIC
TXIIR
Yes
Abort Transmit Frame
CC
None
TIC
TXIIR
Yes
Abort Transmit
Transparent
CD
None
TIC
TXIIR
Yes
Read Port A
22
None
Port Value
Result
No
Read Port B
23
None
Port Value
Result
No
Set Port B Bit
A3
Set Mask
None
-
No
63
Reset Mask
None
-
No
Reset Port B Bit
8273 Command Summary Key
80
81
A
-
C
-
RXIIR
TXIIR
RO
Rl
RIC
TIC
-
LO
11
Al
A2
Least significant byte of the receiver buffer length.
Most significant byte of the receiver buffer length.
Least significant byte of the Tx frame length.
Most significant byte of the Tx frame length.
Receive frame address match field one.
Receive frame address match field two.
Address field of received frame. If non-buffered mode is specified, this
result is not provided.
Control field of received frame. If non-buffered mode is specified, this
result is not provided.
Receive interrupt result register.
Transmit interrupt result register.
Least significant byte of the length of the frame received.
Most significant byte of the length of the frame received.
Receiver interrupt result code.
Transmitter interrupt result code.
8273 SDLC Protocol Controller Commands
SDLC Adapter
1-285
A flowchart of the command phase is shown below. Handshaking
of the command and parameter bytes is accomplished by the
CBSY and CPBF bits of the status register. A command may not
be written if the 8273 is busy (CBSY = 1). The original command
will be overwritten if a second command is issued while
CBSY = 1. The flowchart also indicates a parameter buffer full
check. The processor must wait until CPBF = 0 before writing a
parameter to the parameter register. Previous parameters are
overwritten and lost if a parameter is written while CPBF = 1.
No
End of Command Phase
8273 SOLC Protocol Controller Command Phase Flowchart
1-286
SDLC Adapter
Execution Phase
During the execution phase, the operation specified by the
command phase is performed. IfDMA is utilized for data
transfers, no processor involvement is required.
For interrupt-driven transfers the 8273 raises the appropriate INT
pin (TxINT or RxINT). When the processor responds to the
interrupt, it must determine the cause by examining the status
register and the associated IRA (interrupt result available) bit of
the status register. If IRA = 0, the interrupt is a data transfer
request. If IRA = 1, an operation is complete and the associated
interrupt result register must be read to determine completion
status.
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.
Some commands such as reading or writing the I/O ports provide
immediate results. These results are made available to the
processor in the 8273 result register. Presence of a valid
immediate result is indicated by the CRBF (command result
buffer full) bit of the status register.
Non-immediate results deal with the transmitter and receiver.
These results are provided in the TxIlR (transmit interrupt result)
or Rxl/R (receiver interrupt result) registers, respectively. The
8273 notifies the processor that a result is available with the
TxlRA and RxlRA bits of the status register. Results consist of
one-byte result interrupt code indicating the condition for the
interrupt and, if required, one or more bytes supplying additional
information. The "Result Code Summary" table later in this
section provides information on the format and decode of the
transmitter and receiver results.
The following are typical frame transmit and receive sequences.
These examples assume DMA is utilized for data transfer
operations.
SDLC Adapter 1-287
Transmit
Before a frame can be transmitted, the DMA controller is
supplied, by the communication software, the starting address for
the desired information field. The 8273 is then commanded to
transmit a frame (by issuing a transmit frame command).
After a command, but before transmission begins, the 8273 needs
some more information (parameters). Four parameters are
required for the transmit frame command; the frame address field
byte, the frame control field byte, and two bytes which are the
least significant and most significant bytes of the information field
byte length. Once all four parameters are loaded, the 8273 makes
RTS (request to send) active and waits for CTS (clear to send) to
go active from the modern interface. Once CTS is active, the 8273
starts the frame transmission. While the 8273 is transmitting the
opening flag, address field, and control field, it starts making
transmitter DMA requests. These requests continue at character
(byte) boundaries until the pre-loaded number of bytes of
information field have been transmitted. At this point, the requests
stop, the FCS (frame check sequence) and closing flag are
transmitted, and the TxINT line is raised, signaling the processor
the frame transmission is complete and the result should be read.
Note that after the initial command and parameter loading, no
processor intervention was required (since DMA is used for data
transfers) until the entire frame was transmitted.
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 8273 address fields are transferred to memory.
1-288
SDLC Adapter
(This example covers a general receive operation.) After the
receive command, two parameters are required before the receiver
becomes active; the least significant and most significant bytes of
the receiver buffer length. Once these bytes are loaded, the
receiver is active and the processor may return to other tasks. The
next frame appearing at the receiver input is transferred to
memory using receiver DMA requests. When the closing flag is
received, the 8273 checks the PCS and raises its RxINT line. The
processor can then read the results, which indicate if the frame
was error-free or not. (If the received frame had been longer than
the pre-loaded buffer length, the processor would have been
notified of that occurrence earlier with a receiver error interrupt).
Like the transmit example, after the initial command, the
processor is free for other tasks until a frame is completely
received.
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 Al 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, A 1 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.
SDLC Adapter
1-289
Result Code Summary
Hex Code
T
r
a
n
s
m
i
Result
Status After Interrupt
OC
OD
OE
OF
10
Early Transmit Interrupt
Frame Transmit Complete
DMA Underrun
Clear to Send Error
Abort Complete
Transmitter Active
Idle or Flags
Abort
Abort
Idle or Flags
XO
Xl
03
04
05
06
07
08
09
OA
OB
A 1 Match or General Receive
A2 Match
CRC Error
Abort Detected
Idle Detected
EOP Detected
Frame Less Than 32 Bits
DMA Overrun
Memory Buffer Overflow
Carrier Detect Failure
Receiver Interrupt Overrun
Active
Active
Active
Active
Disabled
Disabled
Active
Disabled
Disabled
Disabled
Disabled
t
R
e
c
e
i
v
e
Note: X decodes to number of bits in partial byte received.
The first two codes in the receive result code table result from the
error free reception of a frame. Since SDLC 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.
X
Bits Received in Last Byte
E
0
All Eight Bits of Last Byte
BitO Only
Bitl-BitO
Bit2-BitO
Bit3-BitO
Bit4-BitO
Bit5-BitO
Bit6-BitO
8
4
C
2
A
6
1-290
SDLC Adapter
Address and Interrupt Information
The following tables provide address and interrupt information for
the SDLC adapter:
Hex Code
380
381
382
383
384
384
385
385
386
386
387
388
389
38A
38B
38C
Device
Register Name
8255
8255
8255
8255
8253
8253
8253
8253
8253
8253
8253
8273
8273
8273
8273
8273
Port A Data
Port B Data
Port C Data
Mode Set
Counter 0 LSB
Counter 0 MSB
Counter 1 LSB
Counter 1 MSB
Counter 2 LSB
Counter 2 MSB
Mode Register
Comma nd/Status
Parameter /Result
Transmit INT Status
Receive INT Status
Data
Function
Internal/External Sensing
External Modem Interface
Internal Control
8255 Mode Initialization
Square Wave Generator
Square Wave Generator
Inactivity Time-Outs
Inactivity Time-Outs
Inactivity Time-Outs
Inactivity Time-Outs
8253 Mode Set
Out=Command In=Status
Out=Parameter In=Status
DMA/INT
DMA/INT
DPC (Direct Program Control)
SD LC Communications Adapter Device Addresses
Interrupt Level 3
Transmit/Receive Interrupt
Interrupt Level 4
Timer 1 Interrupt
Timer 2 Interrupt
Clear to Send Changed
Data Set Ready Changed
DMA Level One is used for Transmit and Receive
Interrupt Information
SDLC Adapter
1-291
Interface Information
The SDLC communications adapter conforms to interface signal
levels standardized by the Electronics Industries Association
RC-232C Standard. These levels are shown in the figure below.
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).
+25VdC
+15VdC~
+5Vdc
~
Active Level: Data = 0
+3 Vdc
Invalid Level
-5Vdc
~
-15VdC~
1-292
C
C
Receivers
Drivers
SDLC Adapter
3 VdC
Inactive Level: Data = 1
-25 Vdc
Rear Panel
25-Pin D-Shell
Connector
•
•
•
•
•
• ••
•
•
• •
25
14
0
Signal Name -
Description
No Connection
External
Device
Pin
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
No Connection
9
No Connection
10
Select Standby'
11
No Connection
12
No Connection
13
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
Synchro nous
Data Lin k
Control
Commun ications
Adapter
'Not standardized by EIA (Electronics Industry Association).
Connector Specifications
SDLC Adapter
1-293
Notes:
1-294
SDLC Adapter
IBM Communications Adapter Cable
The IBM Communications Adapter Cable is a ten foot cable for
connection of an IBM communications adapter to a modem or
other RC-232C DCE (data communications equipment). It is
fully shielded and provides a high quality, low noise channel for
interface between the communications adapter and DCE.
The connector ends are 25-pin D-shell connectors. All pin
connections conform with the EIA RS-232C standard. In
addition, connection is provided on pins 11, 18 and 25. These
pins are designated as select standby, test and test indicate,
respectively, on some modems. Select standby is used to support
the switched network backup facility, if applicable. Test and test
indicate support a modem wrap function on modems designed for
business machine controlled modem wraps.
Communications Cable
1-295
The IBM Communications Adapter Cable connects the following
pins on the 25-pin D-shell connectors.
14
14
Communications
Adapter
Connector
13
Modem
Connector
25
25
Communications
Adapter Connector
Pin #
NC
Name
1
2
2
3
4
5
Outer Cable Shield
Transmitted Data
Received Data
Request to Send
Clear to Send
3
6
7
8
Data Set Ready
Signal Ground (Inner Lead Shields)
Received Line Signal Detector
6
7
8
NC
NC
11
15
Select Standby
Transmitter Signal Element Timing
15
Receiver Signal Element Timing
Test
17
18
NC
NC
20
NC
Data Terminal Ready
20
Ring Indicator
Data Signal Rate Selector
22
23
Test Indicate
25
NC
22
23
NC
NC
25
11
NC
NC
NC
NC
17
18
4
5
NC
NC
NC
NC
NC
NC
Connector Specifications
1-296
Modem
Connector
Pin #
Communications Cable
13
SECTION 2: ROM BIOS AND
SYSTEM USAGE
ROM BIOS ........................................ 2-2
Keyboard Encoding and Usage ....................... 2-11
ROM BIOS
2-1
ROM BIOS
The basic input/output system (BIOS) resides in ROM on the
system board and provides device level control for the major I/O
devices in the system. Additional ROM modules may be located
on option adapters to provide device level control for that option
adapter. BIOS routines enable the assembly language programmer
to perform block (disk and diskette) or character-level I/O
operations without concern for device address and operating
characteristics. System services, such as time-of-day and memory
size determination, are provided by the BIOS.
The goal is to provide an operational interface to the system and
relieve the programmer of the concern about the characteristics of
hardware devices. The BIOS interface insulates the user from the
hardware, thus allowing new devices to be added to the system,
yet retaining the BIOS level interface to the device. In this
manner, user programs become transparent to hardware
modifications and enhancements.
The IBM Personal Computer MACRO Assembler manual and
the IBM Personal Computer Disk Operating System (DOS)
manual provide useful programming information related to this
section. A complete listing of the BIOS is given in Appendix A.
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."
The software interrupts, hex 10 through hex lA, each access a
different BIOS routine. For example, to determine the amount of
memory available in the system,
INT 12H
will invoke the BIOS routine for determining memory size and
will return the value to the caller.
2-2
ROM BIOS
Parameter Passing
All parameters passed to and from the BIOS routines go through
the 8088 registers. The prolog of each BIOS function indicates the
registers used on the call and the return. For the memory size
example, no parameters are passed. The memory size, in lK byte
increments, is returned in the AX register.
If a BIOS function has several possible operations, the AH
register is used at input to indicate the desired operation. For
example, to set the time of day, the following code is required:
MOV AH,l
MOV CX,HIG~_COUNT
MOV DX,LOW _COUNT
INT lAH
;function is to set time of day.
;establish the current time.
;set the time.
To read the time of day:
MOV AH,O
INT
lAH
;function is to read time of
day.
;read the timer.
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.
ROM BIOS
2·3
Address
(Hex)
0-3
4-7
8-B
C-F
10-13
14-17
18-1 B
1 D-1 F
20-23
24-27
28-2B
2C-2F
30-33
34-37
38-3B
3C-3F
40-43
44-47
48-4B
4C-4F
50-53
54-57
58-5B
5C-5F
60-63
64-67
68-6B
6C-6F
70-73
74-77
78-7B
7C-7F
Interrupt
Number
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
Name
Divide by Zero
Single Step
Nonmaskable
Breakpoint
Overflow
Pri nt Screen
Reserved
Reserved
Time of Day
Keyboard
Reserved
Communications
Communications
Disk
Diskette
Pri nter
Video
Equipment Check
Memory
Diskette/Disk
Communications
Cassette
Keyboard
Pri nter
Resident BASIC
Bootstrap
Time of Day
Keyboard Break
Timer Tick
Video Initialization
Diskette Parameters
Video Graphics Chars
8088 Software Interrupt Listing
2-4
ROM BIOS
BIOS Entry
D11
D11
NMI INT
D11
D11
PRINT_SCREEN
D11
D11
TIMERJNT
KBJNT
D11
D11
D11
D11
DISKJNT
D11
VIDEO_IO
EQUIPMENT
MEMORY_SIZE_DETERMINE
DISKETIEJO
RS232_IO
CASSETIEJO
KEYBOARD_IO
PRINTERJO
F600:0000
BOOT_STRAP
TIME_OF_DAY
DUMMY_RETURN
DUMMY_RETURN
VIDEO]ARMS
DISK_BASE
0
-
Vectors with Special Meanings
Interrupt Hex I B - Keyboard Break Address
This vector points to the code to be exercised when the Ctrl and
Break keys are pressed on the keyboard. The vector is invoked
while responding to the keyboard interrupt, and control should be
returned through an lRET instruction. The power-on routines
initialize this vector to point to an IRE T instruction, so that
nothing will occur when the Ctrl and Break keys are pressed
unless the application program sets a different value.
Control may be retained by this routine, with the following
problems. The Break may have occurred during interrupt
processing, so that one or more End of Interrupt commands must
be sent to the 8259 controller. Also, all I/O devices should be
reset in case an operation was underway at that time.
Interrupt Hex
Ie - Timer Tick
This vector points to the code to be executed on every systemclock tick. This vector is invoked while responding to the timer
interrupt, and control should be returned through an IRE T
instruction. The power-on routines initialize this vector to point to
an lRET instruction, so that nothing will occur unless the
application modifies the pointer. It is the responsibility of the
application to save and restore all registers that will be modified.
Interrupt Hex ID - Video Parameters
This vector points to a data region containing the parameters
required for the initialization of the 6845 on the video card. Note
that there are four separate tables, and all four must be
reproduced if all modes of operation are to be supported. The
power-on routines initialize this vector to point to the parameters
contained in the ROM video routines.
ROM BIOS
2-5
Interrupt Hex 1E - Diskette Parameters
This vector points to a data region containing the parameters
required for the diskette drive. The power-on routines initialize the
vector to point to the parameters contained in the ROM diskette
routine. These default parameters represent the specified values
for any IBM drives attached to the machine. Changing this
parameter block may be necessary to reflect the specifications of
the other drives attached.
Interrupt Hex IF - Graphics Character Extensions
When operating in the graphics modes of the IBM Color/Graphics
Monitor Adapter (320 by 200 or 640 by 200), the read/write
character interface will form the character from the ASCII code
point, using a set of dot patterns. The dot patterns for the first 128
code points are contained in ROM. To access the second 128
code points, this vector must be established to point at a table of
up to 1K bytes, where each code point is represented by eight
bytes of graphic information. At power-on, this vector is
initialized to 000:0, and it is the responsibility of the user to
change this vector if the additional code points are required.
Interrupt Hex 40 - Reserved
When an IBM Fixed Disk Drive Adapter is installed, the BIOS
routines use interrupt hex 40 to revector the diskette pointer.
Interrupt Hex 41 - Fixed Disk Parameters
This vector points to a data region containing the parameters
required for the fixed disk drive. The power-on routines initialize
the vector to point to the parameters contained in the ROM disk
routine. These default parameters represent the specified values
for any IBM Fixed Disk Drives attached to the machine.
Changing this parameter block may be necessary to reflect the
specifications of the other fixed disk drives attached.
2-6
ROM BIOS
Other Read/Write Memory Usage
The IBM BIOS routines use 256 bytes of memory starting at
absolute hex 400 to hex 4FF. Locations hex 400 to 407 contain
the base addresses of any RS-232C cards attached to the system.
Locations hex 408 to 40F contain the base addresses of the
printer adapter.
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
(Hex)
Interrupt
(Hex)
80-83
84-87
88-8B
8C-8F
90-93
94-97
98-9B
9C-9F
AO-FF
100-17F
180-19F
1AO-1 FF
200-217
218-3C3
20
21
22
23
24
25
26
27
28-3F
40-5F
60-67
68-7F
80-85
86-FO
3C4-3FF
F1-FF
Function
DOS Program Terminate
DOS Function Call
DOS Terminate Address
DOS Ctrl Break Exit Address
DOS Fata I Error Vector
DOS Absolute Disk Read
DOS Absolute Disk Write
DOS Terminate, Fix In Storage
Reserved for DOS
Reserved
Reserved for User Software Interrupts
Not Used
Reserved by BASIC
Used by BASIC Interpreter while BASIC is
running
Not Used
BASIC and DOS Reserved Interrupts
ROM BIOS
2-7
Address
(Hex)
400-48F
490-4EF
4FO-4FF
Mode
Function
ROM BIOS
See BIOS Listing
Reserved
Reserved as Intra-Application
Communication Area for any application
Reserved for DOS and BASIC
Print Screen Status Flag Store
O-Print Screen Not Active or Successful
Print Screen Operation
1 -Print Screen In Progress
255-Error Encountered during Print Screen
Operation
Single Drive Mode Status Byte
BASIC's Segment Address Store
Clock Interrupt Vector Segment: Offset Store
Break Key Interrupt Vector Segment: Offset
Store
Disk Error Interrupt Vector Segment: Offset
Store
500-5FF
500
DOS
504
510-511
512-515
516-519
DOS
BASIC
BASIC
BASIC
51 A-51 D
BASIC
Reserved Memory Locations
If you do DEF SEG (Default workspace segment):
Line number of current line being executed
Line number of last error
Offset into segment of start of program text
Offset into segment of start of variables
(end of program text 1-1)
Keyboard buffer contents
if O-no characters in buffer
if 1 -characters in buffer
Character color in graphics mode
Set to 1, 2, or 3 to get text in colors 1 to 3.
Do not set to O.
(Default = 3)
Example
100 Print
)
100
PEEK (&H2E)
+
L
I
Hex 64
H
I
BASIC Workspace Variables
2-8
ROM BIOS
256*PEEK (&H2F)
Hex 00
I
Offset
(Hex Value)
Length
2E
347
30
358
2
2
2
2
6A
1
4E
1
Starting Address in Hex
00000
BIOS
Interrupt
Vectors
00080
Available
Interrupt
Vectors
00400
BIOS
Data
Area
00500
User
Read/Write
Memory
caooo
Disk
Adapter
FOOOO
Read
Only
Memory
FEOOO
BIOS
Program
Area
BIOS Memory Map
BIOS Programming Hints
The BIOS code is invoked through software interrupts. The
programmer should not "hard code" BIOS addresses into
applications. The internal workings and absolute addresses within
BIOS are subject to change without notice.
If an error is reported by the disk or diskette code, you should
reset the drive adapter and retry the operation. A specified
number of retries should be required on diskette reads to ensure
the problem is not due to motor start-up.
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.
ROM BIOS
2-9
Adapter Cards with System-Accessible
ROM Modules
The ROM BIOS provides a facility to integrate adapter cards with
on board ROM code into the system. During the POST, interrupt
vectors are established for the BIOS calls. After the default
vectors are in place, a scan for additional ROM modules takes
place. At this point, a ROM routine on the adapter card may gain
control. The routine may establish or intercept interrupt vectors to
hook themselves into the system.
The absolute addresses hex C8000 through hex F4000 are
scanned in 2K blocks in search of a valid adapter card ROM.
A valid ROM is defined as follows:
Byte 0:
Byte 1:
Byte 2:
Hex 55
HexAA
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.
2·10
ROM BIOS
Keyboard Encoding and Usage
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."
Extended ASCII encompasses one-byte character codes with
possible values of 0 to 255, an extended code for certain extended
keyboard functions, and functions handled within the keyboard
routine or through interrupts.
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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Base Case
Upper Case
Esc
!
@
#
Ctrl
Esc
-1
Nul (000) Note 1
-1
$
-1
-1
%
1\
RS(030)
6
-1
7
&
-1
8
*
(
-1
9
)
-1
0
US(031 )
=
+
-1
Del (127)
Backspace (008) Backspace (008)
-1
I-(Note 1)
-1(009)
Q
DCl (017)
q
ETB (023)
w
W
Esc
1
2
3
4
5
Alt
-1
Note
Note
Note
Note
Note
Note
Note
Note
Note
Note
Note
Note
-1
-1
Note
Note
1
1
1
1
1
1
1
1
1
1
1
1
1
1
Character Codes (Part 1 of 3)
Keyboard Encoding
2-11
Key
Number
18
19
20
21
22
23
24
25
26
27
28
29 Ctrl
30
31
32
33
34
35
36
37
38
39
40
41
42 Shift
43
44
45
46
47
48
49
50
51
52
53
54 Shift
55
56 Alt
57
58
Caps Lock
59
60
61
62
63
64
Base Case
Upper Case
Ctrl
Alt
E
R
T
Y
U
I
0
P
ENO (005)
DC2 (018)
DC4 (020)
EM (025)
NAK (021)
HT (009)
SI (015)
DLE (016)
Esc (027)
GS (029
LF (010)
-1
SOH (001)
DC3 (019)
EOT (004)
ACK (006)
BEL (007)
BS (008)
LF (010)
VT (011)
FF (012)
-1
-1
-1
-1
FS (028)
SUB (026)
CAN (024)
ETX (003)
SYN (022)
STX (002)
SO (014)
CR (013)
-1
-1
-1
-1
(Note 1)
-1
SP
-1
Note 1
Note 1
Note 1
Note 1
Note 1
Note 1
Note 1
Note 1
-1
-1
-1
-1
Note 1
Note 1
Note 1
Note 1
Note 1
Note 1
Note 1
Note 1
Note 1
-1
-1
-1
-1
-1
Note 1
Note 1
Note 1
Note 1
Note 1
Note 1
Note 1
-1
-1
-1
-1
-1
-1
SP
-1
e
r
t
Y
u
i
a
p
[
1
1
l
CR
-1
a
s
d
f
CR
-1
A
S
D
F
G
H
9
h
j
J
k
I
K
L
"
~
-1
-1
I
I
\
z
Z
X
C
V
B
N
M
x
c
v
b
n
m
<
>
7
/
-1
*
-1
SP
-1
Nul
Nul
Nul
Nul
Nul
Nul
(Note
(Note
(Note
(Note
(Note
(Note
-1
(Note 2)
-1
SP
-1
1)
1)
1)
1)
1)
1)
Nul
Nul
Nul
Nul
Nul
Nul
Character Codes (Part 2 of 3)
2-12
Keyboard Encoding
(Note
(Note
(Note
(Note
(Note
(Note
1)
1)
1)
1)
1)
1)
Nul
Nul
Nul
Nul
Nul
Nul
(Note
(Note
(Note
(Note
(Note
(Note
1)
1)
1)
1)
1)
1)
Nul
Nul
Nul
Nul
Nul
Nul
(Note
(Note
(Note
(Note
(Note
(Note
1)
1)
1)
1)
1)
1)
Key
Number
65
66
67
68
69 Num lock
70
Scroll lock
Base Case
Upper Case
Nul
Nul
Nul
Nul
Nul
Nul
Nul
Nul
(Note
(Note
(Note
(Note
-1
-1
1)
1)
1)
1)
(Note
(Note
(Note
(Note
-1
-1
Ctrl
Alt
Nul (Note 1)
Nul (Note 1)
Nul (Note 1)
Nul (Note 1)
Pause (Note 2)
Break (Note 2)
1)
1)
1)
1)
Nul
Nul
Nul
Nul
(Note
(Note
(Note
(Note
-1
-1
1)
1)
1)
1)
Notes: 1. Refer to "Extended Codes" in this section.
2. Refer to "Special Handling" in this section.
Character Codes (Part 3 of 3)
Keys 71 to 83 have meaning only in base case, in Num Lock (or
shifted) states, or in Ctrl state. It should be noted that the shift key
temporarily reverses the current Num Lock state.
Key
Num
Number
lock
71
7
72
8
73
9
Base Case
Home (Note 1)
t
Ait
-1
Ctrl
Clear Screen
(Note 1)
-1
-1
Page Up (Note 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
2
(Note 1)
-1
-1
,
81
3
Page Down (Note 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.
Keyboard Encoding
2-13
Extended Codes
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.
Function
Second Code
3
15
16-25
30-38
44-50
59-68
71
72
73
75
77
79
80
81
82
83
84-93
94-103
104-113
114
115
116
117
118
119
120-131
132
-
Nul Character
Alt Q, W, E, R, T, Y, U, I, 0, P
AltA, S, 0, F, G, H, J, K, l
AltZ, X, C, V, B, N, M
F1 to F1 0 Function Keys Base Case
Home
t
---
Page Up and Home Cursor
End
t
Page Down and Home Cursor
Ins (Insert)
Del (Delete)
F11 to F20 (Upper Case F1 to F1 0)
F21 to F30 (Ctrl F1 to F1 0)
F31 to F40 (Alt F1 to F1 0)
Ctrl PrtSc (Start/Stop Echo to Printer)
Ctrl-(Reverse Word)
Ctrl-(Advance Word)
Ctrl End[Erase to End of Line (EOl)]
Ctrl PgDn [Erase to End of Screen (EOS)]
Ctrl Home (Clear Screen and Home)
Alt 1,2,3,4,5,6,7,8,9,0, -, = (Keys 2-13)
Ctrl PgUp (Top 25 Lines of Text and Home Cursor)
Keyboard Extended Functions
2-14
Keyboard Encoding
Shift States
Most shift states are handled within the keyboard routine,
transparent to the system or application program. In any case, the
current set of active shift states are available by calling an entry
point in the ROM keyboard routine. The following keys result in
altered shift states:
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-15
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.
Shift Key Priorities and Combinations
If combinations of the Alt, Ctrl, and Shift keys are pressed and
only one is valid, the precedence is as follows: the Alt key is first,
the Ctrl key is second, and the Shift key is third. The only valid
combination is Alt and Ctrl, which is used in the "system reset"
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.
Break
The combination of the Ctrl and Break keys will result in the
keyboard routine signaling interrupt hex lA. Also, the extended
characters CAL = hex 00, AH = hex 00) will be returned.
2-16
Keyboard Encoding
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.
Also, the keyboard routine suppresses the typematic action of the
following keys: Ctrl, Shift, Alt, Num Lock, Scroll Lock, Caps
Lock, and Ins.
Keyboard Encoding
2-17
Keyboard Usage
This section is intended to outline a set of guidelines of key usage
when performing commonly used functions.
Function
Key(s)
Comment
Home Cursor
Home
Editors; word processors
Return to outermost menu
Home
Menu driven applications
t
Move cursor up
Page up, scroll backwards 25
lines and home
Move cursor left
Move cursor right
Scroll to end of text
Place cursor at end of line
PgUp
-
- - Key 75
End
~
Move cursor down
Page down, scroll forward
25 lines and home
Full screen editor, word processor
Editors; word processors
Text, command entry
Text, command entry
Editors; word processors
Full screen editor, word processor
Pg Dn
Editors; word processors
Start/Stop insert text at
cursor, shift text right in buffer
Ins
Text, command entry
Delete character at cursor
Del
Text, command entry
- - Key 14
Text, command entry
Destructive backspace
Tab forward
--t
Text entry
Tab reverse
14-
Text entry
Clear screen and home
Ctrl Home
t
J
Scroll up
Scroll down
Scroll left
Scroll right
Delete from cursor to EOL
Exit/Escape
In scroll lock mode
In scroll lock mode
---
Text, command entry
Esc
Editor, 1 level of menu, and so on
Ctrl End
Start/Stop Echo screen to
printer
Ctrl PrtSc
(Key 55)
Delete from cursor to EOS
Advance word
Ctrl PgDn
Ctrl
Reverse word
Ctrl
Window Right
Ctrl
Window Left
Ctrl
Enter insert mode
Command entry
---
Ins
In scroll lock mode
In scroll lock mode
Any time
Text, command entry
Text entry
Text entry
When text is too wide to fit screen
When text is too wide to fit screen
Line editor
Keyboard· Commonly Used Functions (Part 1 of 2)
2-18
Keyboard Encoding
Function
Exit insert mode
Cancel current line
Key(s)
Comment
Ins
Line editor
Esc
Command entry, text entry
Suspend system (pause)
Ctrl
Num Lock
Stop list, stop program, and so on
Resumes on any key
Break interrupt
Ctrl Break
Interrupt current process
System reset
Top of document and home
cursor
Sta ndard function keys
Secondary function keys
Alt Ctrl
Del
Ctrl PgUp
Fl-Fl0
Reboot
Editors, word processors
Primary function keys
Shift Fl-Fl0 Extra fu nction keys if lOa re not
Ctrl Fl-Fl0 sufficient
Alt Fl-Fl 0
Extra function keys
Alt Keys
2-13
(1-9,0,-,=)
Extra function keys
Alt A-Z
Used when templates are put
along top of keyboard
Used when function starts with
same letter as one of the alpha
keys
Keyboard - Commonly Used Functions (Part 2 of 2)
Keyboard Encoding 2-19
Function
Carriage return
Line feed
Bell
Home
Cursor up
Cursor down
Cursor left
Cursor right
Advance one word
Reverse one word
Insert
Delete
Clear screen
Freeze output
Tab advance
Stop execution (break)
Delete current line
Delete to end of line
Position cursor to end of line
Key
-J
Ctrl -J
Ctrl G
Home
~t
-- -
Ctrl
Ctrl
Ins
Del
Ctrl Home
Ctrl Num Lock
---I
Ctrl Break
Esc
Ctrl End
End
DOS Special Functions
Function
Suspend
Echo to printer
Stop echo to pri nter
Exit current function (break)
Backspace
Line feed
Cancel line
Copy character
Copy until match
Copy remaining
Skip character
Skip until match
Enter insert mode
Exit insert mode
Make new line the template
String separator in REPLACE
End of file in keyboard input
Key
Ctrl Num Lock
Ctrl PrtSc
(Key 55 any case)
Ctrl PrtSc
(Key 55 any case)
Ctrl
Break
..- Key 14
Ctrl...J
Esc
F1 o r F2
F3
Del
F4
Ins
Ins
F5
F6
F6
BASIC Screen Editor Special Fun~tions
2-20
Keyboard Encoding
APPENDIX A: ROM BIOS
LISTINGS
Page
Line
Number
.
.
.
.
.
.
A-2
A-2
A-2
A-2
A-5
A-20
12
35
67
76
239
1408
.
.
.
.
.
A-21
A-24
A-34
A-44
A-46
1461
1706
2303
3078
3203
.
.
.
.
.
A-71
A-71
A-77
A-79
A-81
5052
5083
5496
5630
5821
Fixed Disk I/O Interface ................ A-84
Boot Strap Loader ...................... A-89
1
399
System ROM BIOS
Equates ..............................
8088 Interrupt Locations ...............
Stack ................................
Data Areas ...........................
Power-On Self-Test ....................
Boot Strap Loader .....................
I/O Support
Asynchronous Communications
(RS-232C) .........................
Keyboard ..........................
Diskette ............................
Printer .............................
Display ............................
System Configuration Analysis
Memory Size Determination ..........
Equipment Determination .............
Graphics Character Generator ...........
Time of Day ..........................
Print Screen ..........................
Fixed Disk ROM BIOS
System BIOS
A-I
LOC OBJ
LINE
SOURCE
$TITLEIBIOS FOR THE IBN PERSQHAL COMPUTER xTl
1 -- --------- ---- ---- ----- ----- -- ----------. ----------------- -----
THE
BrOS ROUTINES ARE MEANT TO BE ACCESSED THROUGH
SOFTWARE INTERRUPTS ONLY.
THE LISTINGS
NOT FOR
REFERENCE.
ABSOlUTE
ADDRESSES
VIOLATE THE
10
11
12
13
PORT_A
EOU
PORT_B
17
PORT_C
00b3
18
,.
CNO_PORT
EOU
EOU
EOU
INTAOO
"
"
INTAOl
23
0040
24
0001
25
0008
2.
OMA08
0000
27
0540
28
"
30
KBD_IN
31
KBOINT
0040
0043
0410
OObO
0002
0060
0061
21
THE
COMPLETENESS.
REFERENCE
CODE
SEGMENT
ANO DESIGN OF BIOS.
EQUATES
"
0021
0020
WITllIN
------------------- -------- -------------
I.
0020
ONLY FOR
APPLICATIQHS WHICH
• ----- ----- - -------- - - ----- - ---- ------ --;
00b2
15
STRUC~E
ANY ADDRESSES PRESENT IN
i ---------- --------------------------- - ---- ---- --- ---- - ----- -- ---
OObl
OObO
ARE INCLUDED
.,H
.OH
; 8255 PORT A ADOR
.2H
.3H
; 8255 FORT C ADDR
EOU
ZOH
; 8259 PORT
21H
i
TIM_eTL
EOU
EOU
EQU
EOU
TIMERO
EOU
THINT
EOU
EOU
EOU
01
; TIMER 0 INH! RECVD tuSK
00
I DNA STATUS REG PORT ADDR
00
; DMA CH. 0 ADDR. REG PORT ADDR
MAX_PERIO~
EOU
540H
MIN_PERIOD
EOU
EOU
410H
.OH
EOU
EOU
EOU
02
.OH
Eor
TIMER
OMA
i
8255 FORT B AODR
8259 PORT
ZOH
.OH
.3H
,OH
; 8253 TIMER CONTROL PORT ADDR
; 8253 TIMER/CNTER 0 PORT AODR
; KEYBOARD DATA IN ADDR PORT
I KEYBOARD INTR MASK
32
KB_DATA
"3.
KB_CTL
35
,--- ------ --- ------ ---------------- ------
.,H
i KEYBOARD SCAN CODE PORT
; CONTROL BITS FOR KEYBOARD SENSE DATA
36
B088 INTERRUPT LOCATIONS
37
1----------------------- - -- ---------- - ---
3.
39
ABSO
SEGMENT AT 0
0000
.0
oooe
"42
ORG
03
ORG
0008
0014
0014
.5
•7
.8
••50
0074
51
0060
52
0060
53
0078
5.
0078
55
007C
0400
0400
0400
0500
0500
7COO
7COO
ORG
ORG
BYTE
WORD
5*'
.-.
LABEL
••
0040
0074
007C
LABEL
••
0020
0020
0020
0040
LABEL
2*.
WORD
LABEL
WORD
LABEL
DwaRD
lOHII4
LABEL
WORD
IDH*4
LABEL
OR.
DWDRD
5.
DRG
OlFH*4
ORG
400H
INTERRUPT 1 EH
I
5.
DATA_AREA
LABEL
BYTE
DATA_WORD
LABEL
WORD
••
65
••
ORG
HFG_ TEST_RTN
DRG
BOOT_LOCN
ABSO
I ABSOLUTE LOCATION OF DATA SEGMENT
0500H
LABEL
FAR
7eOOH
LABEL
FAR
ENDS
67
• ---- ---------- ---- --------- ___ --- ______________ _
6e.
; STACK -- USED DURING INITIALIZATION ONLY
69
i ------ --- ------------------------------ ________ _
70
71
STACK
0000 1128
0100
SEGMEIH AT 30H
OW
128 DUPI? J
,",ORO
73
TOS
LABEL
74
STACK
ENDS
75
76
1----------------------------------------
77
A-2
LOCATION OF POINTER
I POINTER TO EXTENSION
60
.2
.3
ENTRY POINT FOR CASSETIE BASIC
WORD
01EH!'i4
57
5.
.,
; POINTER TO VIDEO PARMS
18H*4
LABEL
System BIOS
ROM BIOS DATA AREAS
LOC OBJ
LINE
78
SOURCE
;
-- --------------------------------------
7'
eo
DATA
81
RS232_BASE
DW
4 DUP!?)
;
0008 (4
82
PRIHTER_BASE
DW
4 OUP!?)
I ADDRESSES OF PRINTERS
0010 ????
83
EG/UIPJLAG
0012 ?1
84
MFG_TST
OW
OB
I IHITIALIZA lION flAG
????
0015 ??
0016 ??
85
MEMORY_SIZE
OW
I MEMORY SIZE IN K BYTES
8.
HFG_ERR_FLAG
DB
I SCRATCHPAD FOR MANUFACTlJIUNG
DB
I ERROR CODES
0000 (4
SEGMENT AT 40H
ADDRESSES Of RSZ32: ADAPTERS
????
....
0013
87
; INSTALLED HA.RDWARE
8B
8'
.0
1----------- -------------- -- ---------- --KEYBOARD DATA AREAS
------ -- -- ---------------------------
91
92
0017 ??
"
••
KBJlAG
DB
.4
OS
0050
0040
0020
.7
98
••
1----- SHIFT FLAG EQUATES WITHIN KB_FUG
INS_STATE
CAPS_STATE
HUM_STATE
SCROll_STATE
I INSERT STATE IS ACTIVE
EOU
EQU
8DH
4DH
I CAPS LOCK STATE HAS BEEN TOGGLED
EOU
EOU
EOU
EOU
20H
I tU1 LOCK STATE HAS BEEN TOGGLED
0010
lDO
0008
101
ALT_SHIFT
0004
102
eTL_SHIFT
0002
103
LEFT_SHIFT
0001
lD4
RIGHT_SHIFT
EOU
EOU
IOH
; SCROLL LOCK STATE HAS BEEN TOGGLED
OSH
I ALTERNATE SHIFT KEY DEPRESSED
D4H
; CONTROL SHIFT KEY DEPRESSED
D2H
I
D1H
; RIGHT SHIFT KEY DEPRESSED
LEFT SHIFT KEY DEPRESSED
105
??
; SECOND eYTE OF KEYBOARD STArus
KBJLAG_l
DB
0080
ID8
INS_SHIFT
INSERT KEY IS DEPRESSED
ID'
110
CAPS_SHIFT
80H
40H
;
0040
;
CAPS LOCK KEY IS DEPRESSED
20H
; NUt1 LOCK KEY IS DEPRESSED
SCROLL_SHIFT
EOU
EOU
EOU
EQU
IOH
I SCROLL LOCK KEY IS DEPRESSED
HOLD_STATE
EOU
08H
I SUSPEND KEY HAS BEEN TOGGLED
114
AlT_INPUT
DB
j
0018
lD6
107
OOZO
0010
0008
III
112
WN_SHIFT
113
??
001A ????
ODIC ????
115
BUFFER_HEAD
OW
I POINTER TO HEAD OF KEYBOARD BUFFER
11.
BUFFER_TAIL
OW
I
POINTER TO TAIL OF KEYBOARD BUFFER
ODIE (16
117
KB_BUFFER
OW
i
ROOM fOR IS ENTRIES
116
KB_BUFFER_EI'O
0019
16 DUP(?)
STORAGE FOR ALTERNATE KEYPAD ENTRY
....
DOlE
LABEL
WORD
11'
"0
1------ HEAD
0045
"2
'"
HUt1JEY
OD . .
"3
SCROLL_KEY
0036
0010
OOlA
OOZA
0036
0052
0053
"4
ALT_KEY
"5
CTlJEY
".
127
LEFT]EY
"8
RIGHT_KEY
12.
INS]EY
130
DEL_KEY
131
.9
; SCAN CODE FOR HUMBER LOCK
7D
I SCROLL LOCK KEY
56
; ALTERNATE SHIfT KEY SCAN CODE
2.
I SCAN CODE fOR CONTROL KEY
56
I SCAN CODE FOR SHIFT LOCK
SCAN CODE FOR lEFT SHIFT
42
j
54
I SCAN CODE FOR RIGHT SHIFT
82
; SCAN CODE fOR INSERT KEY
; SCAN CODE FOR DELETE KEY
B3
134
135
SEEK....SnTUS
133
??
EOU
EOU
EOU
EOU
EOU
EOU
EOU
EOU
EOU
INDICATES THAT THE BUFFER IS EI1PTY
---------------------------- -----------DISKETTE DATA AREAS
; --------------------- -------------------
132
OOlE
CAPS_KEY
= TAIL
;
DB
I DRIVE RECALIBRATION STATUS
= DRIVE
3-0 NEEDS RECAl
13.
; BIT 3-0
137
I BHORE NEXT SEEK IF BIT IS
=0
136
0080
003F
??
13'
140
INT_FlAG
HOTOR_STATUS
EOU
DB
080H
; INTERRUPT OCCURRENCE FLAG
I HOTOR STATUS
141
I BIT 3-D
142
I
143
144
;
= DRIve
3-0 IS CURRENTLY
RUNNING
BIT 7
= CURRENT
OPERATION IS A WRITE.
REQUIRES DEu'Y
145
0040 ??
0025
146
HOTOR_COUNT
147
MOTOR_WAIT
DB
EQU
I TIME OUT COUNTER FOR DRIVE TURN OFF
37
; .2 SECS OF COUNTS FOR HOTOR TURN OFF
148
System BIOS
A-3
LOC OBJ
0041 ??
0080
0040
0020
0010
0009
000&
0004
0003
0002
0001
0042 17
..
LINE
14.
SOURCE
DISKETIE_STAlUS DB
I RETlIRN CODE 51 .... TIJS BYTE
150
TIME_OUT
EQU
60H
151
152
BAD_SEEK
E..,
40H
I SEEK OPERATION FAILED
BAD_NEC
E..,
; NEC CONTROLLER HAS FAILED
153
154
BAD_CRC
20H
10H
OHA_BOUNDARY
EQU
ATTEMPT TO OMA ACROSS 64K BOl.lt«)ARY
BAD_DMA
E..,
O'H
.6H
j
155
156
157
j
DHA OVERRUN ON OPERATION
RECORD_HOTJND
EOU
'4H
I REQUESTED SECTOR NOT FOLtm
~ITE_PROTECT
EQU
156
BAD_AOOR_HARK
EOU
j
I BAD COMMAND PASSED TO DISKETTE I/O
j
IS'
I ••
,.,
EOU
j
j
.3H
BAD_tHO
EOU
OZH
OIH
NEC_STATUS
DB
7 DUP(?)
ATTACHMENT FAILED TO RESPOt&J
BAD CRe ON DISKETTE READ
; WRITE ATTEMPTED ON
~ITE
PROT DISK
ADDRESS MARK NOT FOUND
STATUS BYTES FROM NEC
,.2
163
; ----------------- ------------- ----------
164
VIDEO DISPLAY DATA AREA.
165
1--------------- ------------------------C~RENT
I ••
CRT_HOOE
DB
I
167
,.6
CRT_COlS
ow
CRT_LEN
OW
,
LENGTH OF REGEN IN BHES
16.
170
CRT_START
ow
ow
j
STARTING ADDRESS IN REGEN BUFFER
0050 (6
0060 ????
171
CURSOR_HODE
ow
j
006t ??
172
ACTIVE_PAGE
DB
; CURRENT PAGE BEING DISPLAYED
0063 ????
173
174
175
17.
AOOR_6845
ow
j
8ASE ADORESS FOR ACTIVE DISPLAY CARD
CRT_MODE_SET
DB
i
CURRENT SETTING OF THE 3X8 REGISTER
CRT_PALETTE
DB
; CURRENT PAlETTE SETTING COLOR CARD
0049 11
004.\
????
004C ?'?'??
004E ????
0065 ??
006b ??
177
CURSOR_POSN
CRT HODE
; NUMBER OF COLUMNS ON SCREEN
8 DUP{?)
; CURSOR FOR EACH OF UP TO 8 PAGES
CURRENT CURSOR MODE SETTING
;----------------------------------------
176
POST DATA AREA.
179
i ----------------------------------------
0067 n'??
ISO
IO_ROM_INlT
161
IO_ROM_SEG
ow
ow
I PNTR TO OPTIONAL 110 ROM INIT ROUTINE
0069 ????
0068 ??
162
INTRJLAG
DB
; FLAG TO INDICATE AN INTERRUPT HAPPEND
; POINTER TO IO ROM SEGMENT
163
184
i ----------------------- -----------------
185
006C ????
TIMER DATA. AREA
166
; ----- -----------------------------------
167
TIMER - LOW
LOW WORD OF TIMEI<' COllHT
,.6
'W
I
006E ????
TIMER_HIGH
ow
; HIGH WORD OF TIMER COUNT
0070 ??
16.
TIMER_OFL
DB
'"
J COUNTS_SEC
EOU
191
J COUNTS_MIN
EOU
16
1092:
192
,.3
,
COUNTS_HOUR
E,,"
65543
COUNTS_DAY
EOU
1573040
195
1---------- -------- --------- ---------- ---
"4
196
197
0071 ??
0072 ????
=
1600BOH
SYSTEH DATA AREA
i ----------------------------- -----------
,.6
,.9
BIOS_BREAK
DB
I BIT 7=1 IF BREAK KEY HAS BEEN HIT
RESETJLAG
ow
I WORD=lZ34H IF KEYBOARD RESET UNDERWAY
200
i --------------------------- -------------
201
2.02.
0074 ????
0076 ????
; TIMER HAS ROLLED OVER SINCE lAST READ
FIXED DISK DATA AREAS
; ------------ ------ --------- --- ----------
ow
ow
203
204
205
1------------ ------------------------------ ------------
2.06
PRINTEI<' ANO RS232 TIME-OUT VARIABLES
207
2.6
i ---------- --------------------------------------------
0078 (4
007C (4
20'
40UP(?)
0080 ????
0082 ????
4DUP(?1
210
HI
; --------------------------- -------------
212
213
; ------------------ --------- -------------
ADDITIONAL KEYBOAI<'D DATA AREA
BUFFER_STAI<'T
OW
214
BUFFER_END
DW
215
DATA
216
1----------------------------------------
217
218
A-4
Et-mS
EXTRA DATA AREA
; ----------------------------------------
System BIOS
LOC OBJ
0000 ??
LINE
SOURCE
".
XXDATA
221
XXDATA
'"
222
0000 (16364
YIDEO DISPLAY BUFFER
224
1---------------------___ ---------- ------
Z25
VIDEO_RAM
SEGMENT AT DeaDaH
ZZ6
REGEN
LASE L
BYTE
ZZ7
REGENW
LABEl
WORD
DB
16384 DUP(?)
"8
zz.
230
231
ENDS
1--------------------____ ------------___ _
232
ROM RESIDENT COOE
,------------------- ____________________ •
233
COOE
0000 (57344
EOOO 31353031353132
DB
ENDS
1----------------------------------------
223
0000
0000
SEGMENT AT SOH
STATUS_BYTE
Zl'
Zl6
SEGMENT AT OFOOOH
DB
57344 DUP(? I
DB
'1501512 eOPR. IBM 1981'
; FILL LOWEST 56K
I COPYRIGHT NOTICE
20434FS0522E20
49424020313938
"
"7
"8
2:39
1---------------------------------------________ _
240
241
INITIAL RELIABILITY TESTS -- PHASE 1
; ------------------------- ______________________ _
242
'"3
'44
245
ASSL/J"IE
246
247
248
E016 07EO
E018 7EEl
CS:COOE .SS:CODE, ES:ABSO ,os :OATA
1-----------------------________________ _
DATA DEFINITIONS
i ---------------------------------------_
Z4,
el
250
ez
ow
ow
I RETURN ADDRESS
I RETURN ADDRESS FOR DUMMY STACK
'51
fCU. 204B42204F48
E020 00
252
FlB
, KB 01<',13
DB
1 KB FOR MEMORY SIZE
253
254
i -------.-------------------------------------------------------------
255
LOAD A BLOCK OF TEST CODE THROUGH THE KEYBOARD PORT
256
F~
257
THIS ROUTINE WILL lOAD A TEST (I'IAX lENGTH=FAFFH) THROUGH
258
THE KEYBOARD PORT. CODE WILL BE LOADED AT LOCATION
259
I1ANUFACTUING TEST.
260
DODO: 0500. AFTER LOADING, CotITROL WILL BE TRANSFERED
TO LOCATION 0000:0500. STACK WIll BE lOCATED JUST BELOW
261
THE TEST CODE. THIS ROUTINE ASSut1ES THAT THE FRIST 2:
BYTES TRANSFER ED CONTAIN THE COUNT OF BYTES TO BE LOADED
262
263
264
{BYTE I=COUtIT LOW. BYTE 2=COUNT HI.)
1---------------------------------------------------------------------
Z65
266
1----- FIRST, GET THE COUNT
Z67
fOU
feu
'68
ESHlA
E024 SAFB
E026 E80ElA
MF6_Boon
26.
CAll
SP_TEST
Z70
Z71
27Z
MOV
SH.al
CALL
SP_TEST
CH.Bl
'73
MOV
MOV
f02D Fe::
Z74
E02E FA
Z7.
elD
ell
E029 BAfB
E02B BACF
Cl,BH
I GET COlM" lOW
I SAVE IT
; GET COUNT HI
.I ex tiOW HAS COUNT
I SET DIlL FLAG TO INCRIHENT
Z76
Z77
MOV
I10V
DI.OSOOH
I SET TARGET OFFSET (05=0000)
f032 BOFD
278
OUT
Al.ofDH
INTAOl,Al
I UNt1ASK 'VB INTERRUPT
E034 E621
Z7.
I10V
OUT
MOV
AL,OA.H
.I SEND READ INT. REQUEST REG. CHD
DX,blH
I SET UP PORT B ADDRESS
I10V
BX,4CCCH
I CONTROL BITS FOR PORT B
MOV
AH,02H
I K/B REqUEST PEt-ilING MASK
EOlF BFOOOS
E036 aOOA
E038 E620
E03A 8"6100
f03D B8CC4C
'.0
2.,
2.,
INTAOO,Al
E040 8402
[042
,"3
E042 BAC!
285
HOV
Al,Sl
'86
OUT
DX,Al
E044
~E
Z84
1ST:
I TOGGLE K/B CLOCK
System BIOS A-5
LDC DBJ
LINE
E04-S SAC7
,
,..
SOURCE
..
E047 EE
f048 4"
E049
,a7
MOV
Al.BH
2.0
OUT
OEe
ox
,.1
2.,
E049 E420
f048 22C4
f040 74FA
E04F EC
E050 AA
AL,lNTAoa
Al,AH
; KB REQUEST PENDING?
JZ
TST!
; LOOP TILL DATA PRESENT
IN
AL.DX
STOSB
E052 E2EE
207
; GET IRR REG
IN
ANO
20S
29.
I POINT OX AT AODR. 60 (KB DATA)
TSTl:
20'
204
E051 42
OX.Al
l GET OA.TA
1 STORE IT
INC
ox
; POINT OX BACK AT PORT B (61)
LOOP
TST
;
LOOP TILL ALL BYTES READ
2 ••
E054 E"00050000
2.0
JMP
; FAR JUMP TO CODE THAT WAS JUST
3D.
I
301
302:
303
304
; ------------ ---------------------------8088 PROCESSOR TEST
~
DESCRIPTION
VERIFY 6088 FLAGS, REGISTERS
305
306
307
30.
AND CONDITIONAL JUMPS
; ------ -- ---- -- -- ------ --- ------ -- - -- ---ASSUME
CS: CODE ,OS; NOTHING. ES :NOTHING .SS:NOTHING
E056
300
ORG
OE05BH
Eose
310
RESET
LABEL
FAR
'11
START:
CLI
E056 FA
EOSC B4D5
EOSE 9E
LOADED
312
MOV
313
SAHF
i
DISABLE INTERRUPTS
AH.005H
; SET SF. CF. ZF. AND AF FLAGS ON
314
JNC
ERROl
; GO TO ERR ROUTINE IF CF NOT SET
f061 754A
31S
JNZ
ERROl
; GO TO ERR ROUTINE IF ZF NOT SET
E063 7648
31.
317
31.
31.
JNP
ERROl
; GO TO ERR ROUTINE IF PF HOT SET
JNS
ERROl
; GO TO ERR ROUTINE IF SF NOT SET
LAHF
MOV
CL,S
; LOAD CNT REG WIlli SHIFT CNT
fObA OlEC
320
SHR
AH,CL
; SHIFT Af INTO CARRY BIT POS
f06C 733F
321
JNC
ERROl
; GO TO ERR ROUTINE IF AF NOT SET
HOV
AL.40H
AL.l
; SETUP FOR TESTING
ERROl
I GO TO ERR ROUTINE IF OF HOT SET
EOSF 734C
f065 7946
fD67 9F
f068 BI05
32.
E06E 8040
E070 ODED
E072 7139
'"
SHt
324
JNO
E074 32E4
32S
XOR
32.
SAHF
f076 9E
E077 7634
327
32.
".
"I
E078 7A30
E07D 9F
f07E B105
AH.AH
; SET AH ::: 0
JBE
ERRO 1
; GO TO ERR ROUTINE IF CF ON
JS
ERROl
i
JP
ERROl
; GO TO ERR ROUTINE IF PF ON
i CLEAR SF. CF, ZF. AND PF
;
LOAD F LAG IMAGE TO AH
n.s
i
LOAD CNT REG WITH SHIFT CNT
SHR
AH ,CL
; SHIFT
334
JC
ERROl
; GO TO ERR ROUTINE IF ON
33S
SHL
AH,I
i CHECK TtlAT
JO
ERROl
; GO TO ERR ROUTINE IF OH
332
333
E082 7229
E084 DOEct
LAHF
GO TO ERR ROUTINE IF SF ON
Mav
ED8D 02EC
33.
E086 70::':5
; SET THE OF FLAG ON
; GO TO ERR ROUTINE IF ZF ON
32.
E079 7832-
; LOAD FLAG IMAGE TO AH
AF' INTO CARRY BIT pas
OF' IS CLEAR
337
338
f088 B8FFFF
E086 F9
WITH ALL ONE'S AHO ZEROES'S.
'40
341
I10V
AX.OFFFFH
I SEruP ONE'S PATTERN IN AX
MaV
OS.AX
; WRITE PATTERN TO ALL REGS
344
MaV
BX,DS
'4S
I10V
ES,BX
MOV
CX,ES
MaV
SS,CX
Eoac 8E08
'42
343
EOSE eCCB
E090 8EC3
EOn 8CCI
E094 8E01
;----- REAO/WRITE THE 8088 GENERAL AND SEGMENTATION REGISTERS
339
5TC
C8:
'4.
347
E098 8BE2:
348
340
I10V
SP,OX
E09A 8BEe
35.
MOV
BP,SP
MOV
SI,BP
MOV
DI,SI
E096 8C02
E09C BaFS
MOV
OX,SS
f09E SBFE
351
352
fOAO 7307
'53
JNC
EOA2: 33e7
354
XOR
AX.DI
I PATTERN MAKE IT THRU ALL REGS
EOA4 7507
35S
JNZ
ERROl
I NO - GO TO ERR ROUTINE
EOA6 Fa
35.
EOA7 fBEl
'57
EOA9
358
35.
C9:
36'
ERROl:
362
i -------- --------------------------------
[OA9 OBC7
EDAB 7401
EOAD F4
'.0
i
TsnA
eLe
363
A-6
C9
System BIOS
JMP
C8
OR
AX,DI
JZ
CIO
I TSTU
HLT
ROS CHECKSUM TEST I
I ZERO PATTERN MAKE IT THRU,?
I YES - 60 TO NEXT TEST
; HALT SYSTEM
LINE
SOURCE
J DESCRIPTION
A CHECKSUH IS DnNE FOR mE 8K
ROS HOOULE CONTAINING POD .tJ.I)
BIOS.
E082: BADSn
3••
36S
3••
3.7
368
36.
370
371
37.
371
£OB5 EE
'70
OUT
E086 FEeo
[OBA EE
37.
37.
377
Eoee 8089
"8
INC
HOV
OUT
HOV
LOC OBJ
EOAE
EOAE EUO
EOBO E683
E088 82M
EoeD £663
EOBF BOAS
EOCI E661
EOC3 B001
EOtS £660
EOC1 Btn
EOC9 eEOO
EOCB SEDS,
;
-- --------------------------------------
CIO:
OUT
OAOH,AL
CUT
831ItAL
DX,3118H
DX,AL
MOV
..
,".
CUT
3.1
3.2
,.3
3••
I ZERO IN AL ALREADY
I DISABLE tf11 INTERRUP:rs
I IHITIALZE DHA PAGE REG.
I DISABLE COLOR VIDEO
AL
DL.DBSH
DX,Al
I DISABLE BIN VIDEO. EN HIGH RES
; SET 8255 FOR B I A=OUT, C=IN
AL.89H
CI1D_PORT,AL
HOV
AL,lOlOOlOlB
CUT
PORT_B.AL
HOV
AL.OIH
PORT_A.Al
I <><><><><><><><><><><><>
Ax.es
I SETUP 5S seG REG
I ENABLE PARITY CHECKERS AND
..
; PULL KB CLOCK HI, TRI-STATE
I KEYBOARD INPUTS. ENABLE HIGH
,
I BAt« OF SIoIITCHE5->PORT C(o-3)
386
3.7
3••
3••
CUT
tIOV
HOV
HOV
DS,AX
391
CLD
ASSUf1E
MOV
MOV
JMP
JNE
SS:CODE
BX,OEOOOH
SP.OFFSET Cl
ROS_CHECKSU1
ERROl
I <><><>CHECKPOINT 1<><><>
55.AX
i SET UP DATA SEG TO POINT TO
39.
EOCD FC
EOCE
EODl
E004
E007
BBOOEO
BC16EO
E91B18
7504
....
....
....•••,,
•••
3"
3'3
,
,
,.,
,
,
3••
•• 1
•••
Cll:
J ROM ADDRESS
I SET DIRECTION FLAG TO INC.
I SETUP STARTING RDS ADDR
; SETUP RETURN ADDRESS
; HALT SYSTEM IF ERRDR
1------------ ---- -- ------------------------ ------- -- -- --8237 DMA INI:TIALIZATION CH.u..!EL REGISTER TEST
i DESCRIPTION
DISABLE THE 8237 DttA CONTROLLER. VERIFY THAT
TII1ER 1 FlJiCTIONS OK. WRITEIREAD THE CLJ;!RENT
"'DDRESS ,AND WORD COUNT REGISTERS FOR AlL
CHA!+IELS. INITIALIZE AtIJ START OHA FOR MEMORY
REFRESH •
j ---- - - -- -- --- ---- -- -- -- - ----- ------------- --------------
4 ••
•• 7
[009
Eooa
EOOO
EODF
B002
£660
8004
E608
EOEl
EOEl
EOE5
EO£7
EO£9
EOE9
EOE8
EOED
EOFO
B054
E643
SACI
E641
EOF2
[OF4
£OF6
EOFS
EOF9
EOF9
EOFe
EOFD'
(OFF
(OFF
ElOl
n03
E104
E105
EI07
EI09
E"l
0...08
E2Fl
F4
B040
E643
eOFBFF
7407
eAC3
2BC9
£641
B040
E643
90
90
£441
2208
7403
•••
•••
j-----
DISABLE DMA CONTROLLER
HOY
.1.
OUT
'11
.1.
413
.1.
tIOV
CUT
i-----
'1'
.1.
'17
.1.
.1.
...
...
...•••
OUT
HOV
OUT
CHP
JE
IN
OR
LOOP
423
4.4
.27
."
."
tIOV
4"
.3.
'3'
43.
......
4"
4. .
CUT
t
AL.CL
TII1ER+l.AL
I SET INITIAl TIMER CNT TO 0
AL,40H
TlI1ER+3 .... L
Bl.OFFH
tl3
"'l,TIHER+l
IL.AL
tl'
HCT
.....
tI(
I SEL TII'IER 1.lSB.t1ODE
C13:
431
I DISABLE DtIA CONTROLLER
AL • .54H
TII1ER+3,AL
C12~
'21
...•••
VERIFY THAT TIMER 1 FlJIICTIONS
HOV
CUT
HOV
I <><><><><><><><><><><><>
, <><><>CHECKPOINT 2<><><>
AL,oZH
PORT_A.AL
AL.04
DMAOS.AL
AL.Bt
CX,CX
TIMER+l,AL
C11t:
I TlI1ERl_BITS_ON
I LATCH TlHER 1 CotIIT
; YES - SEE IF ALL BITS GO OFF
i TIHERl_BITS_OFF
J READ TIMER 1 CCMMT
1 ALL BITS ON IN TII1ER!
I TlI1ER!l_BITS_ON
I TIMER 1 FAILURE, HALT SYS
I TIKERl_BITS_DFF
J SET TIMER 1 CNT
J TIKER_LOOP
I10V
CUT
NOP
NOP
IN
ANa
JZ
AL.Q.OH
TIHER+3 "t,L
i
UTCH TIMER 1 COUNT
1 DELAY FOR TIMER
Al.TIMER+!
BL.AL
J READ TIMER 1 COUNT
tl.
i WRAP_DHA..R!EG
System BIOS A-7
LOC OBJ
LINE
SOURCE
HOB E2F2
441
lOOP
E100 F4
442
HLT
C14
I
TIMER_LOOP
I HALT SYSTEM
443
444
;----- INITIALIZE TIMER 1 TO REFRESH MEMORY
445
flOE B003
446
NOV
AL,03H
i
EllO E660
447
448
OUT
PORT_A,AL
i
El12 E600
44.
OUT
ONA+DOH .Al
CI5:
<><><><><><><><><><>
<><><>CHECKPOINT 3<><><>
I WRAP _DNA_REG
i SEND MASTER CLEAR TO DNA
450
451
; ----- WRAP DNA CHANNELS ADDRESS ANO COUNT REGISTERS
452
E114 BOFf
453
f116 SACS
EllS SAF8
454
t16:
455
EllA 890800
456
EllD 8AOOOO
El20 EE
'57
45.
El21 50
459
CI7:
NOV
AL,OfFH
i
NOV
BL,Al
i SAVE PATTERN FOR COMPARE
MOV
BH,AL
NOV
ex,s
NOV
aX.OM
I SETUP I/O PORT ADOR OF REG
OUT
PUSH
OX,Al
AX
I SATlSIFY 8237 110 TIMINGS
El22 EE
.60
OUT
aX,AL
E123 eOOl
461
NOV
Al,OlH
El2S EC
'62
463
IN
Al,DX
El26 8AEO
WRITE PATTERH FF TO ALL REGS
NOV
J SETUP LOOP CNT
i WRITE PATTERN TO REG
I
LSB
NS8 OF 16 BIT REG
At. TO ANOTHER PAT BEFORE RO
I READ I6-BIT DIiA CH REG. L5B
AH.AL
SAVE LSB OF lo-BIT REG
E128 EC
464
IN
AL,OX
; READ MSB OF OMA CH REG
£129 3B08
465
CH"
eX,AX
; PATTERN READ AS WRITTEN?
El2B 7401
466
JE
C18
El20 F4
467
El2E
4.8
E12E 42
46.
INC
OX
; SET I/O PORT TO NEXT CH REG
E12F E2EF
470
lOOP
C17
; WRITE PATTERN TO NEXT REG
E131 FEtO
471
INC
AL
; SET PATTERN TO 0
.n
JZ
C16
I WRITE TO CHANNEL REGS
E133 74El
HLT
J YES - CHECK NEXT REG
; NO - HALT THE SYSTEI1
CIS:
; NXT_OHA_CH
.73
• 74
;----- INITIALIZE AND START OI1A FOR I1EMORY REFRESH .
475
oS,ex
E135 eEes
476
MOV
El37 8EC3
477
NOV
ES,BX
47.
ASSUME
DS:ABSO, ES :ABSO
El39 BOFF
47.
MOV
.l.l,OFFH
EI3B E601
480
OUT
OMA+I,Al
EnD 50
.81
PUSH
AX
EI3E E601
OUT
1 5ET UP ABSO INTO OS AND ES
I SET CNT OF 64K FOR REFRESH
CNA+I,Al
E140 BOS8
'82
463
NOV
Al,058H
I SET OMA MODE,CH Q,RD.,AUOTINT
EI42 E60B
464
OUT
DI1A+OBH,AL
; WRITE DMA MODE REG
El44 BODO
4B5
NOV
AL,O
I ENABLE DMA CONTROLLER
El46 8AE8
466
NOV
CH,AL
; SET COUNT HIGH:::OO
El48 E608
467
OUT
DMA+8,AL
; SETUP 011A COMMAND REG
E14A 50
488
PUSH
AX
El4B E60A
4 ••
I ENABLE OMA CH 0
490
OUT
NOV
CMA+I0,Al
E140 8012
Al.18
; START TIMER 1
491
OUT
TIMEIHl,AL
492
NOV
Al,41H
OUT
OHA+OBH.AL
..,
E14F E641
Elsl B041
EI53 E60B
•• 4
; SET MODE FOR CHANNEL I
PUSH
AX
ElS6 £408
4.5
IH
AL,OMA ... 08
I GET DNA STATUS
ElSa 2410
49.
AHO
AL,OOOlOOOOB
C18C
,
El55 50
EISA 7401
4.7
JZ
EISC F4
4 ••
HLT
•••
E150 8042
else:
HOV
Al.42H
{IT SHOULD'T BEl
, SET MODE FOR CHAt-tNEl 2
OMA+OBH,AL
500
OUT
E161 8043
501
NOV
AL.43H
El63 f608
502
OUT
DMA+OBH.AL
E1SF E60B
J IS TIMER REQUEST THERE?
I HALT SYS.(HOT TIMER 1 OUTPUll
I SET MODE FOR CHAICHECKPOINT 4<><><>
SUB
CX,CX
; BASE RAM FAILURE -
; SAVE FAILING BIT PATTERN
<><><><><><><><><><><><>
HANG
LOOP
C24B
; flIPPING BETWEEN 04 A.ND
XCHG
BL,AL
I FAILING BIT PATTERN
JMP
C24A
E18E
531
E18E 2BCO
532
SUB
AX,AX
; MAKE AX=DOOO
£190 F3
533
REP
STOSW
I STORE 6K WORDS OF DODO
OATA_WORD[OFFSET RESET]LAGJ,BX ;. RESTORE RESET flAG
£191 A6
HOW_BIG:
fl92
53.
fIn 891£72:04
535
HOV
£196 BAO004
53.
537
HOV
DX,0400H
; SET POINTER TO JUST>16KB
HOV
eX,16
; BASIC COUNT OF 16K
; SET SEG_ REG_
£199 B81000
fl9C
E19C 8EC2
".
FILL_lOOP:
53.
HOV
ES,DX
£19£ 2BFF
540
SUB
01,01
£IAO 8855.6.A
541
HOV
AX.OAA5SH
; TEST PATTERN
flA3 88C8
54'
543
HOV
HOV
eX.AX
;. SAVE PATTERN
ES: [01 I,AX
j
SEND PATTERN TO MEM_
544
545
HOV
AL,OFH
I
PUT SOMETHING IN Al
flAA 268B05
HOV
AX,ES:[OIl
; GET PATTERN
ElAD 33Cl
ElAF 7511
54.
547
XOR
AX.CX
; COMPARE PATTERNS
JHZ
HOW_BIG_Et--Il
;. GO END IF NO COMPARE
£IBl 890020
54.
54.
HOV
CX,2000H
; SET COUNT FOR 8K WORDS
REP
STaSio!
I FILL 8K WORDS
ElBb 81C20004
550
DX.400H
ElBA 83C310
551
ADD
ADD
BX,16
; BlR1P COUNT BY 16K8
CHP
OH,OAOH
; TOP OF RAM AREA YET?
JHZ
FILL_LOOP
EIA5 268905
flAB BOOF
ElB4 F3
f185 AB
EIBD BOFEAD
5"
EICO 750A
553
554
555
55.
£ltZ
EIC2 891£1304
557
POINT TO NEXT 16KB BLOCK
(AOOOO)
HOW_BIG_END :
HOV
;. SA.VE MEHORY SIZE
; ----- SETUP STACK SEG AND SP
55.
E It6 B83000
ElC9 8EoO
flce 8COODl
559
5.0
5.,
562
AX.STACK
, GET STACK VALUE
HOV
SS,A.X
, SET THE STACK UP
HOV
SP.OFFSET TOS
I STACK 15 REAOY TO GO
1-------- ------------------------------------------- ----INITIALIZE THE 8259 INTERRUPT CONTROLLER CHIP
563
flCE 6013
HOV
564
;. --------- ---------- --- ----- ------------------------ -----
565
C25:
HOV
AL.13H
f100 E620
5 ••
OUT
INnOD ,AL
£102 8008
5.7
HOV
AL.e:
flDft £621
E106 B009
568
OUT
INTA01.,l,l
HOV
AL.9
EIDB £621
fIDA BOFF
EIOC E621
5.'
; ICWI - EDGE, SNGL, leW,.
I SETUP lCIoI2 .- INT TYPE 8 (8-F)
; SETUP lew. - BUFFRD ,8066 HOOE
570
OUT
INTAOl,AL
571
HOV
Al,OFFH
; MASK AlL INTS. OFF
5n
OUT
INTAOl.AL
; (VIDEO ROUTINE ENABLES INTS.I
573
574
;----- SET UP THE INTERRUPT VECTORS TO TEMP INTERRUPT
575
flOE IE
576
PUSH
OS
fIDF B92000
577
MOV
eX,32
; FILL ALL 32 INTERRUPTS
E1E2 2BFF
57'
579
5.0
SUB
HOV
01.01
; FIRST INTERRUPT LOCATION
EStDl
; SET ES=OOOO ALSO
MOV
AX,OFFSET 011
• MOVE ADDR OF INTR !'ROC TO TBL
Ax.es
I GET AODR OF INTR PROC SEG
03
i VECTBLO
£1£4 8EC7
fl£6 8823FF
EIE9 AB
EIEA ecce
EIEe As
ElED ElF7
5.'
5.,
5'3
584
585
586
03:
STOSW
NOV
STOSW
LOOP
;----- ESTABLISH BIOS SUBROUTINE CALL INTERRUPT VECTORS
5.7
ElEF BF4000
EIF2 DE
EIFJ IF
EIF4
ecoe
ElF6 BE03FF90
58'
58'
5.0
5.,
5.,
MOV
DI.OFFSET VIDEO_INT
PUSH
es
POP
os
; SETUP ADOR Of VECTOR TABLE
MaV
AX,OS
I SET AX=SEGHENT
HOV
5I.OFFSET VECTOR_TABlE+16
; SETUP ADDR TO INTR AR EA
; START WITH VIDEO ENTRY
System BIOS
A-9
LOC OBJ
LINE
Elf A B91000
593
ElFD AS
5.4
SOURCE
HOV
03":
CX,16
HOVSW
; MOVE VECTOR TABLE TO RAM
EIFE 47
>95
INC
01
EIFF 47
5.6
INC
01
E200 EZfB
5?7
LOOP
D3.A.
598
; ----------- ---- ------------- - - ------------------
599
600
; SKIP SEGHENT POINTER
DETERMINE CONFIGURATION AND MFG. MODE
; ------ --- ------- --------- --- ------------- -------
601
E202 IF
POP
OS
PUSH
OS
; RECOVER DATA SEG
IN
AL.PORT~C
; GET SWITCH INFO
AND
AL.OOOOlllIB
; ISOLATE SWITCHES
HOV
AH,AL
; SAVE
b07
HOV
ALolOIOllOiB
; ENABLE OTHER BANK OF SHS.
608
OUT
PORT~B.AL
EZOE 90
b09
NOP
[204 E462
b"
b03
604
E206 2.40F
b05
E208 8AEO
60b
E20A BOAD
HOC E661
EZ:03 IE
ElOF E462
blO
IN
E211 8104
bll
MOY
Cl.4
E213 02eo
612
6\3
ROl
.U.Cl
; ROTATE TO HIGH NIBBLE
ANO
ALollllOOOOB
; ISOLATE
OR
AL.AH
; COMBINE WITH OTHER BANK
E219 2AE4
614
b15
SUB
AH.AH
ElIB .0.31004
b16
MOY
OATA_WORO[OFFSET EQUIPJLAGJ,AX ; SAVE SWITCH INFO
E215 24FO
E217 OAC4
fZlE 6099
617
HOV
H20 E663
bl8
619
OUT
CHO_PORT ,AL
E222 E80518
CALL
KBD_RESET
E225 80FBAA
6"
CHP
BL.OAAH
E228 7418
6"
JE
Eb
E22.A 80FB65
6"
eMP
BL,06SH
E2.20 7503-
623
JNE
03B
JMP
MfG_BOOT
E22F E9EfFD
6"
E232 B038
62:5
HOV
AL.36H
E234 E661
6,6
OUT
PORT_B.AL
E2.36 90
6"
628
HOP
E237 90
03B:
Al.99H
; KEYBOARD PRESENT?
I
LOAD HFG. TEST REQUEST?
GO TO BOOTSTRAP IF SO
HOP
E238 [460
6,.
E23A 24FF
630
ANO
AL.OFFH
EZ3C 7504
631
JNZ
E6
E2.3E FE061204
; SEE IF HfG. JUMPER IN
IN
6"
AL.PORT_A
; WAS OAT.A LINE GROUNDED
; SET MANUFACTURING TEST FLAG
DATA_AREA( OFFSET MFG_TST 1
b"
634
; ----- ----. ---- ------------- ----- ------ ---- -- -------- - ---
635
INITIALIZE AND START CRT CONTROLLER (6645)
636
637
TEST VIDEO READ/WRITE STORAGE.
; DESCRIPTION
636
RESET THE VIDEO ENABLE SIGNAL.
~5.
6J9
SELECT ALPHAHUNERIC MODE. 40 •
640
READ/WRITE DATA PATTERNS TO STG. CHECK STG
641
64~
B & W.
ADDRESSABIlITY.
ERROR :;" 1 LONG AND 2: SHORT BEEPS
643
; -- -- ------ -- -- ----- -------- _. --------------- --- ---- -----
E242
644
E6:
E242 .0.11004
645
646
MOV
AL.30H
E248 .0.31004
6.7
648
MOV
MOV
DATA_WORD[OFFSET EQUIP]LAGI.AX
E246 2AE4
64.
SUB
AH.AH
E24D COlO
650
651
INT
10"
E24f B020
HOV
AL.2:0H
E245 50
E246 B030
PUSH
AX,DATA_WORD (OFfSET EQUIP JLAG 1 I GET SENSE SWITCH INFO
AX
; SAVE IT
, SEti) INIT TO BIW CARD
E251 A31004
652
HOV
E254 2AE4
653
SUB
AH.AH
[256 COlO
654
INT
LOH
E25e 58
Ezse 2430
655
656
657
658
'NIl
AL.30H
; ISOLATE VIDEO SWS
ElSE 750.0.
65'
JHZ
E7
I VIDEO SWS SET TO O?
E260 BF400Q
660
MOV
DI.OFFSET VIDEO_INT
I SET INT lOH TO DUt1t1Y
E2.63 C7054BFF
661
MOV
IDIJ,OFFSET OUtV1Y_RETURN
E267 E9AOOO
662
JHP
E26A
663
b64
665
E259 A31004
E26A 3e30
Ezoe 7408
E26E FEC4
E270 3(20
E272 7502-
E274 8403
A-tO
; AND INIT COLOR CARD
POP
AX
MOV
DATA_WORD(OFFSET EQUIP_FLAG1.AX ; RESTORE IT
I RECOVER REAL SWITCH INFO
I AND CONTINUE
, RETURN IF NO VIDEO CARD
i BYPASS VIDEO TEST
E7:
666
667
668
66.
System BIOS
eHP
Al.30H
I B/It! CARD ATTACHED?
JE
E8
I YES -
SET MODE FOR BIW CARD
INC
AH
eHP
AL,
JHE
E8
I NO - SET MODE FOR 40X25
MOV
AH , 3
I SET HOOE fOR
; SET COLOR MODE FOR COLOR CO
~OH
; 80X25 MODE SELECTED?
aoxts
LaC OBJ
SOURCE
LINE
fa:
; SET_HOOE:
XCHG
AH.AL
PUSH
AX
672
SUB
AH.AH
, INITIALIZE TO ALPHANI.R1ERIC 110
673
INT
10H
; CAll VIDEO_IO
£270 56
674
POP
AX
, RESTORE VIDEO SENSE SWS IN AH
EHE 50
675
676
PUSH
AX
I RESolVE VALUE
E27F B9D060
I10V
Bx.oeOOOH
E282: SABaOl
677
HOV
DX.3BSH
; BEG VIDEO RAM ADOR B/W CD
; MODE REG FOR B/w
E285 890008
678
679
HOV
CX,Z046
; RAM WORD CNT FOR 6/W CO
E288 8001
MOV
Al.1
I SET MODE FOR Bioi CARD
ElBA BOFCJO
680
CNP
AH.30H
, B/W VIDEO CARD ATTACHED?
E2.76 50
670
671
E279 2,0,£4
E278 COlO
EZ7, 86r:O
I SAVE VIDEO MODE ON STACK
E280 7409
681
JE
£9
;
E26F B788
MOV
BH.088H
; BEG VIDEO RAM ADDR COLOR CO
MOV
OX.308H
; MODE REG FOR COLOR CD
E294 6520
68'
683
684
MOV
CH,20H
j
E296 FEte
685
OfC
Al
; SET HODE TD 0 FOR COLOR CD
OUT
OX.AL
J DISABLE VIDEO FOR COLOR CD
eMP
OATA_WORO[OFFSET RESETJUGJ,I2:34H ; POD INlT BY KIID RESET?
E291 8,0,0603
E298
686
E298 EE
.87
E299 813E72043412
E29F 8EC3
E2AI 7407
f2A3 8EDB
f2A5 Efle7Dl
£2A8 7546
E9:
.8.
RAM WORD CtIT FOR COLOR CD
; TEST_VIDEO_STS:
6.9
HOV
ES.BX
; POINT ES TO VIDEO RAH STS
6'0
691
JE
E10
I
.,
MOV
OS,BX
, POINT OS TO VIDEO RAM STG
.93
CAll
STGTST_CNT
; GO TEST VIDEO R/W STG
6.4
JNE
E17
; RIN 5TG FAILURE .. BEEP SPK
.
695
696
ASSUHE
YES - SKIP VIDEO RAM TEST
DS:NOntING,ES:NOTHING
; ---- --- ---------------------------------- ------SETUP VIDEO DATA ON SCREEN FOR VIDEO
697
696
LINE TEST.
; DESCRIPTION
699
ENABLE VIDEO SIGNAL At.[! SET HOOE.
700
f2A ...
YES - GO TEST VIDEO STG
DISPLAY A HOOIZONTAL BAR ON SCREEN.
----------------------------------------- -------
701
;
702
EIO:
AX
, GET VIDEO SENSE SWS (AH)
flAB 50
704
PUSH
AX
; SAVE IT
EZAC 6400
705
HOV
AH.O
; ENABLE VIDEO AND SET MOOE
E2AE COlO
70.
INT
10H
, VIDEO
707
HOV
AX,7020H
I
SHORT EIDA
E2AA 58
703
E260 682070
POP
~T
BLANKS IN REVERSE VIDEO
70.
709
710
E253 EBII
711
JMP
E2C3
712
ORG
OE2:C3H
E2C3 E99915
713
JMP
NHI_INT
SUB
01.01
; SETUP STARTING LOC
MOV
CX,40
; NO. OF BLANKS TO DISPLAY
REP
STOSIo!
I WRITE VIDEO STORAGE
714
E2(6
E2:C6 2BFF
E2C8 892800
E2CB F3
715
71.
717
718
EI0A:
719
1---- --- ---------------------------------
E2ee AS
720
72: 1
CRT INTERFACE LINES TEST
; DESCRIPTION
12Z
SENSE ON/OFF TRANSITION OF THE
123
VIDEO ENA.BlE AND HORIZONTAL
724
SYNC LINES.
725
726
727
POP
AX
PUSH
AX
I SAVE IT
E2CF 80FC30
728
CMP
AH,30H
I B/N CARD ATTACHED"?
E202 BABA03
72.
I10V
DX.03BAH
I SETUP ADOR OF Bioi STATUS PORT
EzeD 58
EleE 50
E205 7403
no
E207 SADA03
731
HOA
n2
E2DA 8408
733
734
fZOC
EZOC 26e9
JE
Ell
NOV
OX.03[)AH
Ell:
MOV
...H.8
SUB
ex,cx
IN
Al,DX
I GET VIDEO SENSE SW INFO
; YES - GO TEST LINES
; COLOR CARD IS ATTACHED
I
LIHE_TST:
j
READ CRT STATUS PORT
Ell:
EZOE EC
735
736
737
E20F 22C4
738
AND
Al,AH
I CHECK VIoEO/HORZ LINE
HEI 7504
73.
JHZ
E14
; ITS ON - CHECK If IT GOES OFF
E2E3 E2:F9
740
LOOP
E13
; LOOP TI Ll ON OR TIMEOUT
E2f5 E609
741
JMP
SHOOT E17
I GO PRINT ERROR HSG
E2f7
74'
EZE7 2:6C9
743
.LOI
ex.cx
IN
AL.oX
E2DE
E2E9
744
E2E9 EC
745
Ell:
E14:
E15:
I
READ CRT STATUS PORT
System BIOS
A-II
LaC OBJ
LINE
ElEA 2:2.C4
74.
AND
AL.AH
; CHECK VIDEOIHORl LINE
E2fC 7411
747
748
JZ
E16
I ITS ON - CHECK NEXT LINE
ElEE ElF9
LOOP
El5
E2FO
74.
E2fO IF
750
ElFl IE
EHZ C606150006
751
PUSH
OS
752
MOV
DS:MFG_ERRJlAG,06H
MOV
DX,102H
CALL
ERR_BEEP
SOURCE
; lOOP IF OFF TILL IT GOES ON
E17:
I CRT_ERR:
PDP
OS
E2F7 BA0201
,.3
E2FA E8DB16
754
E2FO EB06
755
75.
JMP
SHORT E 18
E2FF
E2FF BI03
757
HOV
CL.3
nOI DlEC
£303 7507
758
SH'
AH.Cl
75.
JHZ
El2
nos
nos
7.0
7.1
58
EJoe COlO
7.'
7.3
noA.
764
noll. BACOCO
nOb 8400
; < >< >< >(RT ERR CHKPT.
j
; NXT_LINE:
E16:
; GET N[XT BIT TO CHECK
I
GO CHECK HORIZONTAL LINE
i DISPLAY_CURSOR:
E18:
POP
AX
I GET VIDEO SENSE SWS I AH)
MOV
"H.D
; SET MODE AND DISPLAY CURSOR
IHT
IOH
; CALL VIDEO I/O PROCEDURE
MOV
OX,oeaDOH
nOD
765
76.
nOD 8ED.&.
7.7
MOV
os.ox
E30F 260B
768
SUB
BX,BX
nIl 8801
7.'
MaV
AX,leX]
ElBA:
i
GET FIRST Z LOCATIONS
n13 53
770
PUSH
ax
E314 56
771
POP
ex
I LET BUS SETTLE
DIS 3055"A
77'
773
CMP
AX, O.t.AS5H
; PRESENT?
JNl
El8B
j
CALL
RON_CHECK
; GO SCAN MODULE
JMP
SHORT EIBC
E31F 81(25000
77'
775
77.
777
E323
778
E323 81FAOOC8
nIB 7505
nlA £8361&
E3lD £B04
EllF
E327 7CE4
06< >< >< >
GO BEEP SPEAKER
NO? GO LOOK FOR OTHER MODULES
E188:
ADD
OX,0080H
j
77.
780
781
eMP
OX,OC800H
; TOP OF VIDEO ROM AREA YET?
JL
El8A
i
782
8259 INTERRUPT CONTROLLER TEST
78l
POINT TO NEXT 2K BLOCK
ElBC:
i
GO SCAN FOR ANOTHER MODULE
DESCRIPTION
784
READ/WRITE THE INTERRUPT MASK REGISTER (IMR I
785
Wlnl ALL ONES AND ZEROES. ENABLE SYSTEM
766
INTERRUPTS.
767
MASK DEVICE INTERRUPTS OFF. CHECK
FOR HOT INTERRUPTS I UNEXPECTED).
786
----- -------------- ----- -- -- - --- -------- - ----------
76.
ASS\Jt1E
os: A8S0
790
POP
OS
791
792
i----- TEST THE INR REGISTEI.!
794
795
796
797
798
e21A:
,.3
EJU C606150405
E3ZF BOOO
El31 E6Zl
E333 £421
MOV
MOV
79'
AL,O
OUT
INTAOl,AL
IH
AL,ImAOl
j
<><><><><><><><><><><><>
i
<><><>CHECKPDINT 5<><><>
j
SET IHR TO ZERO
i
READ IHR
= O?
£335 OACO
800
OR
AL,Al
j
E337 7518
801
JHZ
D.
; GO TO ERR ROUTINE IF NOT 0
E339 BaFF
80.
MOV
AL.OFFH
j
EHB E621
803
80.
80S
OUT
INTAOl,AL
j
WRITE TO II1R
IH
AL,INTAQI
j
READ It1R
E33F 0401
ADO
AL,l
j
ALL INR BIT ON?
E341 7511
80.
IN'
O.
j
NO -
E33D E421
807
808
j -----
CHECK FOO HOT INTERRUPTS
j-----
INTERRUPTS ARE MASKED OFF.
IMR
DISABLE DEVICE INTERRUPTS
GO TO ERR ROUTINE
80.
810
CHECK THAT NO INTERRUPTS OCCUR.
811
81Z
MOV
n46 FB
813
STI
E347 2BC9
81'
815
81.
SUB
cX,CX
j
LOOP
04
I MIGHT OCCUR
n43 "26B04
E349
E349 E2FE
DATA_AREA(OFFSET INTRJLAG1.AL
; CLEAR INTERRUPT FLAG
; ENABLE EXTERNAL INTERRUPTS
WAIT 1 SEC FOR ANY INTRS mAT
04:
05:
E348 E2FE
817
818
lOOP
D5
B40 803£680400
81'
eMP
OATA_AREA(OFFSET IHTR_FlAG1,OOH
£352 7409
8"
JZ
07
I NO - GO TO NEXT TEST
MOV
51 ,OffSET EO
; DISPLAY 101 ERROR
E34B
£354
821
E354 BEFFF890
8"
A-12
j
010 ANY INTERRUPTS OCCUR?
06:
System BIOS
LOC OBJ
LINE
E3S6 E84E16
623
E356 FA
624
Else F4
6'5
826
SOURCE
eLI
HlT
827
828
I HALT THE SYSTEM
; - ----------------------- -- ------- -- - '-- - - -- --------
8253 TIMER CHECKOUT
; DESCRIPTION
829
VERIFY THAT THE SYSTEM TIMER (0) DOESN'T COUHT
830
TOO FAST OR TOO SLOW.
831
E35D
632
E350 C606150402
6ll
; ~~--------------- --------- ------ ---------- -------------07:
MOV
I <><><>
634
635
; TIMER CHECKPOINT 121
E3b2 BOFf
636
E364 E621
E366 8010
637
MaY
OUT
636
E3b8 E643
Al,OFEH
I MASK ALL INTRS EXCEPT lVl 0
INTAOl,AL
AL,OOOIOOOOB
I WRITE THE 8259 IMR
MOY
639
OUT
TIM_CTL.Al
ElbA 891600
E'360 8ACI
640
MOV
CX,16H
641
E 36F E640
642
MaY
OUT
AL,Cl
TIMERO,AL
E371
E371 F606660401
643
644
645
E376 7504
E376 Ei!:F7
64.
647
E37A fB08
646
E37C
08:
TEST
OATA_AREA[OFFSET IHTRJlAG1,OlH
JHZ
D9
LOOP
08
JMP
D6
E37C BlOC
NOV
Cl,12
E37E BOFF
.51
MOV
E380 E640
65'
653
OUT
AL.OFFH
TIMERO,AL
E382 C606680400
65'
E389 E621
ass
El8B
65.
E38B F6066B0401
657
656
659
E390 7St2
E392 ElF7
6.0
861
6.'
; DID TIMER 0 INTERRUPT OCCLR?
; YES - CHECK TIMER OP FOR SLOW TIME
I WAIT FOR INTR FOR SPECIFIED TIME
I TIMER 0 INTR DIDN T OCCUR
ERR
09:
649
650
E387 SOFE
I SE l TIM O. lSB, MODE 0, BINARY
I ~ITE TIMER CONTROL MODf REG
I SET PGM lOOP CNT
; SET TIMER 0 CNT REG
; WRITE TIMER 0 CNT REG
NOV
NOY
OUT
SET PGM lOOP CNT
I WRITE TIMER 0 CNT REG
DATA_AREAl OFFSET INTR]LAGJ.O
AL,OFEH
INTAOl,Al
I RESET IHTR RECEIVED FLAG
a INTERRUTS
; REENABLE TINER
010:
TEST
JNZ
lOOP
DATA_AREA[ OFFSET IHTRJ LAG I. OIH I DID TINER 0 INTERRUPT OCCUR?
; YES - TIMER CNTIHG TOO FAST, ERR
06
010
; WAIT FOR INTR FOR SPECIfIED TIME
;----- SETUP TIMER 0 TO MODE 3
E394 BOFF
6.3
MQY
Al.OFFH
E396 E621
664
OUT
I SEL TIM O,lSB,MSB,t100E 3
; WRITE TIMER MODE REG
E398 8036
865
NOY
INTA01.Al
Al,36H
E39A E643
E39C BOOO
666
667
OUT
TIHER+3.AL
MaY
OUT
OUT
Al.O
TIMER,Al
E39E E640
E3AO E640
666
669
870
871
872:
E3A2 8099
KEYBOARD TEST
; DESCRIPTION
RESET THE KEYBOARD AHa CHECK THAT SCAN
874
875
CODE AA' IS RETURNED TO THE CPU.
CHECK FOR STUCK KEYS.
; -------------------------~---------------------TSTl2:
Al,99H
HOY
I SET 8255 HOOE A,C=IN B=ooT
CMD_PORT,Al
OUT
f3A6 401004
676
679
860
E3A9 2401
661
DAB 7431
E3AD 803E120401
66'
663
E382 742A
66'
E3B4 E87316
665
J'
CAll
DB7 E31E
666
JCXZ
E389 8049
687
MOV
E3A4 E663
; WRlTE lSB TO TIMER 0 REG
; WRITE I1SB TO TIMER 0 REG
1------------------------------------------------
873
876
677
E3A2
TIHER.Al
I DISABLE A.LL DEVICE INTERRUPTS
NOY
AND
JZ
eMP
Al.DATA_AREA[OFFSET EQUIPJLAGJ
Al.OI
J TEST CHAMBER?
.7
I BYPASS IF SO
DATA_AREAr OFFSET MfG_ TST 1,1
; MANUFACTURING TEST ttODE?
F7
YES - SKIP KEYBOARD TEST
KBD_RESET
1 ISSUE RESET TO KEYBRD
f6
J PRINT ERR MSG IF NO INTERRUPT
ENABLE KE)'BOARO
AL.49H
ElBB E661
668
OUT
DBC SOFBAA
669
eMP
Bl.OAAH
i SCAN CODE AS EXPECTED,?
nco
690
JHE
F6
J NO - DISPLAY ERROR MSG
7515
691
892
; ----- CHECK FOR STUCK KEYS
693
EX2 Boca
f3e8 E661
69.
695
8.6
697
EX" 28C9
f3ee
699
E3C4 E661
nCb 8048
696
MOV
OUT
NOY
OUT
Al,OCBH
PORT_B,Al
Al,46H
sue
cX,ex
; ClR KBD, SET ClK LINE HIGH
1 ENABLE KBD,CLK IN NEXT BYTE
PORT_B,Al
F!i:
System BIOS A-13
LINE
LOC OBJ
...'01
...,,,
...
..,
.,.
Elee E2FE
ElCE £460
£3DO XOO
SOURCE
E3D2 740'"
E304 E88415
£307
.. 5
E3D7 8£4CEC90
.. 7
. .8
E30B £6CB15
E3DE
f30E IE
E3DF ZBCO
~
~IlE
IN
FS
"'L.KBD_IN
I CHECK FOR STUCK KEYS
CHP
AL,O
I SCAN CODE
JE
F7
~
lOOP
.. 2
DELAY FDR A
=
01
YES - CONTINUE TESTING
CALL
XPC_BYTE
I CONVERT ANJ PRINT
HOV
SI,OfFSET Fl
I GET "5G ADDA
CALL
E_HSG
f
F6:
PRINT I1SG ON SCREEN
j ---~ - - - - - - - - - - . - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SETUP HARDWARE INT. VECTOR TABLE
91.
1------------------------------------------------
'11
F7:
912
PUSH
'13
SUB
OS
AX,AX
HOV
ES,AX
915
HOV
eX,OB
I GET VECTOR tNT
CS
I SETUP OS SEG REG
ElE7 IF
91'
917
PUSH
pop
OS
£3E8 BEF3FE90
.. 8
HOV
SI,OFFSET VECTOR.TABLE
f3EC 8F2000
.19
HOY
DI,OFFSET INT.PTR
ElE1 6EtO
ElE3 890600
£3£6 DE
'2'
.21
ElEF
E3EF AS
£3FO 47
£3F2 £2F8
INC
INC
'24
.25
.2.
ElF4 IF
'27
.28
£3F5 C7D6DB005FF8
E3FB C7061400S4fF
E401 C706620000F6
E"OC 750 ...
£40E C70670003CF9
01
01
LOOP
F7'
POP
OS
SKIP OVER SEGMENT
i
i ----- SET UP OTHER INTERRUPTS ....S NECESSARY
.2'
HOV
93.
931
932
933
£407 803E120401
£416 E621
HOVSW
'22
.23
E3Fl 47
£414 BOfE
F7A:
NI1I.PTR,OFFSET NHI.INT
; NHI INTERRUPT
HOV
INT5.PTR ,OFFSET PRINT.SCREEN
HOV
BASIC.PTR+2,OF600H
I PRINT SCREEN
SEGHENT FOR CASSETTE BASIC
i
;----- SETUP TIMER 0 TO BLINK LED IF I1ANUFACTURING TEST MODE
93.
935
eMP
DATA.AREA[OFFSET HFG_TSTl,OlH
JNZ
HOY
WORD PRT( ICH-4I,OFFSET BlINIClNT; SETUP TIttER INTR TO SLIt« LED
938
HOY
AL,OFEH
93'
OUT
INTAOl,A.L
,'"
937
...
941
CHECK TO SEE IF EXPANSION BOX PRESENT - IF INSTAllED,
TEST DATA AN) ADDRESS BUSES TO I/O BOX
943
944
...
.,
947
I ENABLE TIMER INTERRUPT
; EXPANSION I/O BOX TEST
942
945
J HFG. TEST HODE?
EXP_IO
ERROR='180l'
1---------------------------------------------------------------j-----
DETERMINE IF BOX IS PRESENT
948
£418
£418 BAI002
I (CARD WAS ENABLED EARLIERI
EXP.10:
95.
HOV
OX,02l0H
; CONTROL PORT ADDRESS
HOV
AX,5555H
J SET DATA PATTERN
OUT
DX,AL
£41F 8001
.51
'52
.53
HOV
AL,OIH
; HAKE AL DIFFERENT
£421 EC
'54
IN
AL.OX
; RECOVER DATA
£422 3AC4
955
E"IB 885555
£41E EE
CHP
AL,AH
; REPLY?
£424 7544
os.
JHE
j
NO RESPONSE, GO TO NEXT TEST
£426 F7DD
957
NOT
El'
AX
j
HAKE DA TA=AAAA
.5.,..
OUT
DX,AL
HOV
AL.OlH
IN
AL.OX
CHP
AL,AH
'.2
JNE
El.
£428 EE
£429 BOOI
£42B EC
E4at 3AC4
£42£ 753A
'58
,.,
...'.5
J RECOVER DATA
..3
£430
£430 B50100
£433 BA1502
£436 B91000
£439
..
'.7
,
.,
i ----- CHECK ADDRESS BUS
EXPZ:
968
97.
HOV
BX,DOOlH
HOV
DX.0215H
; LOAD HI ADDR. REG ADDRESS
HOV
CX,0016
J GO ACROSS 16 BITS
CS:(BXI,AL
J WRITE ADDRESS FOOOO+BX
J READ ADOR. HIGH
EXP):
£439 2£8807
'71
I10V
E43C 90
'72
973
NOP
IH
AL.DX
97'
975
eMP
AL,BH
JHE
EXP.ERR
J GO ERROR IF ttISCQt1PARE
'7'
INC
DX
j
E43D EC
£43E 3AC7
£440 7521
£442 42
A-14
System BIOS
OX=Z16H (ADDR. lOW REG)
SOURCE
LOC OBJ
LINE
E443 EC
977
IN
AL.DX
E444 3AC3
CNP
Al.BL
JHE
EXP_ERR
E448 4A
978
979
980
DEC
OX
; OX BACK TO ,lSH
£449 DIEl
981
SHL
8X.1
E448 ElEt
98'
9a3
LOOP
EX?3
,
E446 751B
98'
985
E4SZ 4A
986
987
9a8
£453
.89
E453 8AEO
E440 690800
I COMPARE TO lOW A.DDRESS
lOOP TILL 'I' WALKS ACROSS BX
;----- CHECK DATA BUS
MOV
eX.OODB
I DO 8 TIMES
NOV
AL,O!
OEC
OX
; MAKE OX=2.14H IDATA BUS REG)
990
991
NOV
AH.A.l
QX,Al
; SAVE DATA. BUS VALUE
£456 BOOI
992
NOV
E4sa EC
IN
E459 3,A,C4
993
99.
E458 7506
995
JHE
SHORT EXP_ERR
£450 ODED
SHL
AL,I
; FORM NEW DATA PATTERN
lOOP
EXP4
;
E461 feD7
996
997
998
JMP
SHORT E19
; GO ON TO NEXT TEST
E463
999
MDV
5I.OFFSET F3C
CAll
E_MSG
E450 BODI
E455 EE
E45F ElF,
E463 BEOFF990
1000
E467 E83Fl5
1001
1002:
EXP4:
OUT
CMP
AL,A.H
I SEND VALUE TO REG
; RETRIVE VAL.UE FROM REG
; = TO SAVED VALUE
LOOP TILL BIT WALKS ACROSS AL
EX?_ERR:
J ---------- --- -------------- •. ----------------------------
ADDITIONAL REAO/WRITE STORAGE TEST
1003
1004
AL.OlH
AL,DX
; DESCRIPTION
1005
WIHTE!J;!EAD DATA PATTERNS TO ANY READ/WRITE
1006
STORAGE AFTER THE FIRST 32:K.
1007
1008
--------------------------------------------------------
1009
E46A
1010
E46A E8EC15
1011
STORAGE
ADDRESSABILITY IS CHECKED.
;
ASSUME
OS:DATA
CALL
DDS
E19:
E460 IE
1012
PUSH
OS
E46E
1013
E46E 813E72003412
1014
CMP
RESETJLAG,1234H
I WARN START?
E474 7503
1015
JHE
E20A
I CONTINUE TEST IF NOT
E476 E99FOO
1016
JMP
ROM_SCAN
; GO TO NEXT ROUTINE IF SO
E479
1017
E479 681000
1018
MOV
AX.16
• STARTING
E47C EB28
1019
JMP
SHORT PRT_srz
J POST MESSAGE
E47E
1020
E47E 8BIEl300
HO:
HOA:
.A.m.
OF MEMORY OK
E206:
1021
MOV
ex. MEMORY_SIZE
I GET MEM. SIZE WORD
E482 83E8IO
1022
SUB
ex. Ie.
; 1ST 16K ALREADY DONE
E485 8104
1023
MOV
Cl.04H
E487 03EB
1024
SH.
BX.CL
; DIVIDE BY 16
E489 8Bce
1025
MOV
ex.ex
I SAVE COUNT OF 16K BLOCKS
E488 6BOO04
1026
MOV
BX.0400H
I SET PTR. TO RAM SEGMEHT:>16K
E48E
1027
E48E 8EOB
1028
HOV
OS.BX
J SET SEG. REG
E490 8EC3
1029
NOV
ES.BX
E492 81C30004
1030
ADD
8X.0400H
E496 52
1031
PUSH
OX
E497 51
1032
PUSH
CX
E498 53
1033
PUSH
ex
E499 50
1034
PUSH
AX
E49A 890020
E21:
; POINT TO NEXT 16K
; SAVE WORK REGS
1035
MOV
cx.zoaOH
£49D E8CFOl
1036
CALL
STGTST_CNT
E4AO 754C
1037
JHZ
EllA
I GO PRINT ERROR
POP
AX
; RECOVER TESTED HEM tM1EIER
ADD
.lX,16
E4A2 58
1038
E4A3 051000
1039
E4,6,6
1040
E4.6.6 50
; SET COUNT FOR 8K WORDS
PRT_SIZ:
1041
PUSH
E4A7 BBOAOO
1042
MOV
eX.10
; SET UP FOR DECIMAL CONVERT
E4AA 890300
1043
MOV
CX.3
AX
J OF 3 NIBBLES
E4AD
1044
E4AD 3302
1045
XO.
E4AF F7F3
1046
DIV
ex
E481 80CA30
1047
Dl.30H
; MAKE INTO ASCII
E484 52
1048
OR
PUSH
OX
, SAVE
E4B5 E2F6
1049
LOOP
DECIMAL_LOOP
£4B7 890300
1050
MOV
CX,3
E4BA
1051
DECIMAL_lOOP:
OX.OX
, DIVIDE BY 10
PRT_DEC_ LOOP:
E4BA 58
1052
pop
E4BB E80EI4
1053
CALL
AX
PRT_HEX
I RECOVER A NUMBER
System BIOS A-IS
LaC OBJ
LINE
SOURCE
1054
E46E HFA.
1055
MOV
CX,7
E4C3 BEIAEO
1056
MOV
51,OFF5ET F3B
E4Cb
1057
E4eo 890700
Al,CS: lSI
E4C6 2ESA04
1058
E4C9 46
1059
INC
S1
E4eA E8CF14
1060
CAll
PR!_HEX
[4CD ElF7
PRINT '
KB OK'
J
LOOP
KB_lOOP
E4CF 58
1062
POP
AX
; RECOVER WORK REGS
£400 3CI000
1063
1064
1065
CMP
AX , 16
; FIRST PASS,?
JE
POP
6X
1066
1061
E403 74A9
E405 56
E20B
POP
ex
[407 SA
1~67
POP
ox
£408 E264
1068
LOOP
E2l
E4DA. BOOA
1069
HOV
Al,10
£406 S9
E4DC E8BD14
CALL
1070
lOOP TILL ALL MEM. CHECKED
LINE FEED
PRT_HEX
1071
1072
1----- DMA Teo SHOULD BE ON BY NOW - SEE IF IT IS
1073
E40F [408
1074
E4E1 2:401
1075
AHO
E4E1 7533
1076
JHZ
£4E; IF
1077
POP
[4E6 C606150003
1078
MOV
E4EB E966FE
1079
JMP
AL,DMA+08H
AL,OOOOOOOIB
I Teo STATUS BIT ON?
I GO ON WITH NEXT TEST IF OK
os
; <:><:><><><><><><><><><><><>
06
; POST 101 ERROR M56 AND HALT
1080
1081
1----- PRINT FAILING ADDRESS AND XOR'EO PATTERN IF DATA COMPARE ERI(oR
1062
E4EE 8AE8
EZIA:
MOV
CH,AL
; SAVE FAILING BIT PATTERN
MOV
AL,n
; CARR AGE
CALL
PRT_HEX
1086
MOV
AL.lo
E4FO BOOO
1063
1084
E4FZ f8A714
1085
E4F5 BOOA
E4F7 E8A214
RETUR~
1087
CALL
E4FA 58
1088
POP
AX
; RECOVER AMT. OF GOOD MEM.
E4-FB 83C406
1089
ADO
513,6
; BALANCE STACK
E4FE eCOA
1090
MOV
DX,ns
; GET FAILING SEGMENT
E500 IF
1091
POP
as
PRT _HEX
ESDI IE
Ion
PUSH
OS
E502 A,31300
1093
1094
HeV
MEMORY_SIZE.AX
i
LOAD MEM. SIZE WORD TO SHOW
; HOW MUCH MEM. WORKING
; <><><><><><><><><><><><><>
Es05 88361500
1095
[509 ESCEIA
1096
1097
CALL
I <><>CHECKPOINTS 08->"0<><>
PRT_SEG
; PRINT IT
ESOC BACS
1098
MOV
Al,CH
I GET FAILING BIT PATTERN
ESOE E87A14
1099
CALL
XPC_BYTE
i
CONVERT AND PRINT CODE
E511 BE04F990
1100
MOV
51 ,OFFSET El
I
sETUP ADDRESS OF ERROR MS6
E515 E89114
; PRINT ERROR M5G
1101
1102:
i ---- ---- - - ---------- --- -- -- --------- - -- ---- ------------ ---------
1103
I CHECK FOR OPTIONAL ROM FROM C8000->F4000 IN ZK BLOCKS
1104
fA VALID MODULE HAS '5SAA' IN THE FIRST 2 LOCATIONS,
1105
LEHGTH INDICATOR (LENGTH/S121 IN THE 3D LOCATION AHO
1106
1107
TEST/INIT. COOE STARTING IN THE 4TH LOCATION.)
; ---------------------------------------------- ------ ------------
E518 BAooce
1108
1109
NOV
E51B
1110
ROH_SCAN_l:
E51B BEDA
1111
MOV
E518
ox.ocaOOH
I SET BEGINNING ADDRESS
OS,QX
ESlo 2BDB
1112
SUB
BX,BX
; SET BX=OOOO
ESIF 8B07
1113
1114
HOV
AX, [BX]
; GET 1ST WORD FRON MODULE
[521 53
PUSH
BX
£522 56
1115
POP
BX
; BUS SETTlING
E523 3055A.'"
1116
eM?
AX, OAA55H
; = TO
E526 7506
1117
JNZ
NEXT_ROM
I PROCEED TO NEXT ROM IF NOT
E528 [82814
111a
CALL
ROM_CHECK
; GO CHECK OUT MODULE
E528 E80590
1119
JMP
ARE_WE_DONE
I CHECK FOR END OF RON SPACE
E52:E
ADD
OX. OOBOH
I POINT TO NEX'f 2K ADDRESS
£532 61FAOOF6
1120
1121
1122
1123
eMP
ox. OF600H
£536 7eE3
11Z4
JL
ROH_SC ... N....1
I GO CHECK ANOTHER ADO. IF NOT
£538 E60190
llzS
JMP
BASE_ROM_CHK
; GO CHECK BASIC ROM
ES2E 81C28DOO
E532:
1126
;
10 WORD?
I AT F6000 YEn
----- ------------------------------------------------------- -------- ----
112:7
I A CHECKSUM IS DONE FOR THE 4 ROS MODULES CONTAINING BASIC CODE
1--------------------- -- ----- ------------------ ---- ----------------------
[536
l1Z8
1129
E538 6404
1130
A-16
BASE_ROH_CHK:
System BIOS
MaV
AH,4
I NO. OF ROS MODULES TO CHECK
LOC OBJ
..'"
LINE
1131
SOURCE
E4:
£530 2608
1132
SUB
E53F 8EDA
1133
MOV
ex ,ex
os.ox
~
1134
SETUP STARTING ROS AOOR
I CHECK RQS
[541 E8AE13
1135
CALL
ROS_CHECKSUH
E544 7403
1136
JE
E5
CONTINUE IF OK
E546 f88201
1137
CALL
ROM_ERR
POST ERROR
E549
1138
£5:
E549 81C20002
1139
ADD
OX,OZOCH
I POINT TO HEXT 8K HODULE
E540 FEte
1140
DEC
AH
; ANY HORE TO DO?
E54F 75ft
1l<1l
JNZ
1142
; YES - CONTINUE
J - ----------- ---------------------------- ------------------------
1143
1144
,4
DISKETTE ATTACHMENT TEST
; DESCRIPTION
1145
CHECK IF IPl DISKETTE DRIVE IS ATTACHED TO SYSTEM.
1146
ATTACHED, VERIFY STATUS OF NEC FOC AFTER A RESET. ISSUE:
1147
A RECAl ANO SEEK
1148
CI'l)
IF
TO FDC A.HO CHECK STATUS. CONPLETE
SYSTEM INlTULIZATlON THEN PA.SS CONTROL TO THE BOOT
1149
LOADER PROGRAM.
[551
1150
1151
• ---------------------------------------------- ------------------
£551 IF
1152
POP
OS
E552 MIDDD
1153
MOV
AL,BYTE PTR EQUIPJLAG
; DISKETTE PRESENT?
E555 2:401
1154
AND
AL,OIH
; NO - BYPASS DISKETTE TEST
E557 74'3E
1155
JZ
Fl5
FlO:
E559
1156
E559 E421
1157
IN
AL, INTAOl
E558 NSF
1158
AND
Al.OBfH
E550 E621
1159
OUT
INTAOI.AL
I
EttABLE DISKETTE INTERRUPTS
E55F 8400
1160
MOV
AH.O
; RESET NEC Foe
E561 8A04
1161
HOV
OL,AH
; SET FOR DRIVE 0
con
1162
INT
13H
; VERIFY STATUS AFTER RESET
1163
TEST
AH.OFFH
; STATUS OK?
1164
JNZ
Fl3
J NO -
ES63
E565 f6C4FF
E568 7520
1165
1166
Foe
FAILED
; - --- TURN DRIVE 0 MOTOR ON
1167
E56,6, SAFlO]
1168
MOV
DX.03F:2H
; GET ADOR OF FOC CARD
E56D BOlt
1169
MOV
Al.ICH
; TURN MOTOR ON, EN DNA/INT
E56F EE
1170
OUT
Ox,AL
; WRITE FOC CONTROL REG
E570 26C9
1171
SUB
ex.cx
E572
1172
E572 E2FE
1173
E574
1174
E574 E2FE
1175
E576 3302
1176
XOR
OX,OX
; SELECT DRIVE 0
E578 B501
1177
HOV
CH,I
; SELECT TRACK 1
E57A 88163EOO
1178
HOV
SEEK_STATUS,Dl
E57E fBFcoe
1179
CALL
SEEK
; RECAlIBIlATE DISKETTE
E581 1207
1180
JC
F13
; GO TO ERR SUBROUTINE IF ERR
E583 6522
HOV
eH,34
; SELECT TRACK 34
E585 E8F5DB
1181
1182
CALL
SEEK
; SE EK TO TRACK 31+
E588 7307
1183
E58A
1184
ES8A 6E52EC90
1185
ESSE E81814
1186
Fll:
LOOP
F11
LOOP
F12
I WAIT FOR 1 SECOND
JNC
F14
; OK, nrRN MOTOR OFF
MOV
51 ,OFFSET F3
J GET ADOR OF MSG
CAll
E_MSG
; GO PRINT ERROR MSG
F13:
I OSK_ERR:
1187
1188
;----- TURN DRIVE 0 HOTDR OFF
1189
E591
1190
E591 BoDe
1191
MOV
AL.OCH
i TURN DRIVE 0 HOTOR OFF
E593 BAF203
1192
MaV
DX,03F2H
; FoC tTL ADDRESS
E596 EE
1193
OUT
OX.AL
; ORO_OFF:
1194
1195
; ----- SETUP PRINTER AND R5232 BASE ADDRESSES IF DEVICE ATTACHED
1196.
[597
1197
F1S:
E597 C606660000
1198
MOV
INTRJlA.G.OOH
; SET STRAY INTERRUPT FLAG
E59C 8EIEOO
1199
MDV
SI.OFFSET KB_BUFFER
; SETUP KEYBOARD PARAHETERS
E59F 89361AOO
1200
MOV
E5A3 8936ICOO
1201
MOV
BUFfER_TAIL,S!
E5A7 89368000
1202
MOV
BUFFER_START .51
= 00
BUFFER_HEAD ,51
E5AB 83C620
1203
ESAE 89368200
1204
ADD
MOV
BUFFER_EI'I),SI
E582 BF7S0D
1205
MOV
DI,OFFSET PRINT_TIM_OUT ;SET DEFAULT PRINTER TIMEOUT
ES65 IE
1206-
PUSH
OS
E586 07
1207
POP
ES
51.32
.OEFAUlT BUFFER OF 32 BYTES
System BIOS A-I7
LOC OBJ
LINE
SOURCE
ES67 681414
120a
HOV
ES6A AB
1209
STOSW
Esse AS
STOSW
ESSC B80101
1210
1211
MOV
ESBf AB
1212
STOSW
£5eo AS
STOSW
IH
Al,IHT"'OI
AND
AL.OFCH
ESC5 E6Zl
1213
1214
1215
1216
OUT
INTAOl .... l
ESC7 83FDOO
1211
CMP
BP.OOOOH
ESCA 7419
1218
1219
E5Cl £421
E5C3 24fC
AX,1414H
) OI;FAUL T=20
AX,OlOlH
;RS232 DEFAUlT=OI
MOV
OX.2
CALL
ERR_BEEP
E502 8E09£890
1222
MOV
SI.0FFSET
E506 E8F1l3
1223
CAll
P_MSG
E509
1224
1225
MOV
AH.OO
IH6
1221
INT
16H
CHP
AH,36H
E508 CD16
E500 BOFtlB
E5EO 75F7
ep=
• 2 SHORT BEEPS (ERROR)
no
;
LOAD ERROR MSG
; WAIT FOR 'Fl' KEY
1228
JHE
ERR_WAIT
ESE2 EBOE9D
1229
JHP
FlSA
; BYPASS ERROR
E5E5
1230
ESES 803£120001
1231
eMP
MFG_TST ,I
I MFG HODE
ESE A 7406
1232
1233
JE
FI5A
; BYPASS BEEP
ESEC BMIDO
HOV
OX,l
;
CALL
ERR_BEEP
MOV
AL,BYTE PTR eqUIP_FLAG
; GET SWITCHES
E5EF E8E6n
1234
ESF2 AOI000
1235
F15A:
NON-ZERO
(ERROR HAPPENED J
) CONTINUE IF NO ERROH
JE
1220
1221
E509 8400
i CHECK FOR
;
E5CF E80614
Esec 8A0200
I ENABLE TIHER AND KB INTS
I SHORT BEEP (NO ERRORS)
ESFS 2401
1236
AHO
AL,OOOOOOOlB
;
ESF7 7503
1231
JHZ
F15B
; CONTINUE WITH BRING-UP
ESF9 E95FfA
1238
JHP
START
ESFC 2AE4
1239
SUB
AH,AH
ESFE A04900
1240
HOV
AL,CRT_MODE
£601 COlO
1241
IHT
IOH
f603
1242
f603 BDA3F990
1243
MOV
BP,OFfSET F4
£607 BEOOOO
F158:
'LOOP POST' SWITCH ON
I CLEAR SCREEN
FISC:
1244
HOV
SI,O
£60A
1245
£60A 2E865600
MOV
DX.CS:(BPl
; GET PRINTER BASE ADaR
EbOE BOA"
1246
1247
MOV
AL.OAAH
; WRITE DATA TO PORT A
E610 EE
1248
OUT
DX.Al
£611 IE
1249
PUSH
OS
HI2 EC
1250
IN
AL,DX
F16:
PRT_BASE:
EOI3 IF
1251
POP
OS
E614 JeAA
1252
CM?
Al,OAAH
£616 7505
1253
JNE
E616 895408
1254
HOV
PRINTER_BASE[ 51
£618 46
1255
INC
SI
EblC 46
INC
SI
£610
1256
1257
f61D 45
1258
; BUS SETTlEING
; READ PORT A
I DATA PATTERN SAME
Fl7
; NO -
J ,OX
; YES -
CHECK NEXT PRT CD
STORE PRT BASE AODR
; INCREMENT TO NEXT WORD
F17:
INC
B.
E61E 45
1259
IHC
BP
E6lF 81FOA9F9
1260
CHP
SP,OFFSET f4E
E623 75£5
1261
JNE
fl6
i
E625 B60000
1262
HOV
BX,O
; POINTER TO RS232 TABLE
E628 SAFA03
1263
MOV
DX,3fAH
; CHECK IF RS232 CO 1 ATICH?
E628 EC
1204
AL.DX
; REAO INTR ID REG
E6le MFS
1265
TEST
AL,OF8H
£62E 7506
1266
JHZ
F18
f630 C707FaD}
IN
HOV
1267
RS232_BASE[ BX 1, 3f8H
£634 43
1268
INC
BX
E635 43
1269
INC
BX
£636
1270
; POINT TO NEXT BASE ADOR
; AlL POSSIBLE ADDRS CHECKED?
PRT_BASE
; SETUP RS2.32. CD I I AoDR
Fl8:
£636 BAFA02
1271
HOV
DX.2FAH
£639 EC
IN
AL.DX
E63A MFa
1272
1273
TEST
AL,OFaH
Et.3e 7506
1274
JNZ
fl9
J BASE_END
E63E C7Q7FaD2
; SETUP RS232 CO 12
1275
HOV
RS232_BASE[BX1,2F8H
E642: 43
1276
IHC
BX
E643 43
1277
INC
ax
1278
1279
1281)
£644
E644 8Bt6
i-----
1281
1282
I CHECK IF RS232 CO 2. AHCH
; READ INTERRUPT 10 REG
SET UP EqUIP FLAG TO INDICATE HUMBER OF PRINTERS AHO RS232 CARDS
1283
HOV
HOV
; SI HAS 2* NUMBER OF RS232
E646 BI03
E648 02e8
1284
ROR
• ROTATE RIGHT 3 POSITIQtiS
A-I8
System BIOS
; SHIFT COUNT
LaC OBJ
EMA OAC3
E64e ",1100
EMF BAOI0,
£652 Ee
LINE
SOURCE
...
1285
1286
1287
lZB8
I OR IN THE PRINTER COUNT
BYTE PTR EQUIP_FLAG+l.Al
MOV
DX,20tH
IN
,H,DX
£653 90
1289
NOP
£654 90
£655 90
1290
NOP
1291
1292
1,93
NOP
£658 7505
EbSA 800E110010
1294
E65F
1295
E656 A80F
,U,BL
NOV
I STORE AS SECDI'IJ BYTE
TEST
AL,OFH
JNZ
I NO_GAME_CARD
F20
BYTE PTR EQUIPJLAG+l.l6
OR
F20:
; NO_GAME_CARD:
1296
1297
; ----- ENABLE NMI INTERRUPTS
1298
E65F £461
1299
IN
AL,PORT_B
E661 DC 30
1300
OR
AL.30H
£663 E661
1301
OUT
PORT_B,Al
E665 24CF
1302
AND
Al.OCFH
£667 E661
1303
OUT
PORT_B.AL
£669 B080
1304
NOV
Al.SOH
E66B £6AO
1305
OUT
OAOH,AL
£660
1306
E66D C019
1307
1308
; RESET CHECK ENABLES
j
ENAslE HNI INTERRUPTS
; LOAD_BooT_STRAP;
F21 :
I GO TO THE BOOT LOADER
19H
INT
1309
1----------------------------------------------------------------
1310
; THIS SUBROUTINE PERFORMS A READ/WRITE STORAGE TEST ON A BLOCK :
OF STORAGE.
1311
1312
1313
ENTRY REQUIREMENTS:
ES '" ADDRESS OF STORAGE SEGMEHT BEING TESTED
1314
OS ;
1315
CX
1316
=
ADDRESS OF STORAGE SEGMEHT BEING TESTED
WORD COUNT OF STORAGE BLOCK TO 8E TESTED
EXIT PARAMETERS:
ZERO FLAG; 0 IF STORAGE ERROR (DATA COMPARE OR PARITY
1317
1318
CHECK.
1319
BIT PATTERN OF THE EXPECTED DATA PATTERN VS THE ACTUAL
DATA READ.
132:0
1321
132:2
1323
E66F
1324
E66F FC
1325
AL=O DENOTES A PARITY CHECK. ELSE AL=-XOR I ED
; AX,BX,CX,DX,DI. AND 51 ARE ALL DESTROYED.
;---------------------------------------------------------------STGTST_CHT
PROC
NEAR
; SET aIR FLAG TO INCREMENT
ClO
E670 2BFF
1326
SUB
01,01
E672 28tO
1327
SUB
AX.AX
i SETUP FOR O-:>Ff PATIERN TEST
E674
1328
E674 8805
132:9
MOV
IOI1.AL
I ON FIRST BYTE
1330
MOV
£676 8ACS
) SET DI=OFFSET 0 REl TO ES REG
C2_1:
AL.lDI]
E678 32:C4
1331
XOR
AL.AH
; O.K.?
E67A 7540
1332
JNZ
C7
i 60 ERROR IF NOT
E67C FEC4
INC
A>!
AL.AH
£67E 8AC4
1333
1334
E680 75F2:
1335
JNZ
C2_1
,
E682 8809
1336
MOV
ax.ex
I SAVE WORD COUNT OF BLOCK TO TEST
E684 DIEl
1337
SHl
E686 B8AAAA
1338
MOV
AX.OAAAAH
I GET INITIAL DATA PATTERN TO WRITE
E689 BA55FF
1339
MOV
OX.OFF55H
I SETUP OTHER DATA PATTERNS TO USE
1340
REP
STOSI.!
; FILL STORAGE LOCATIONS IN BLOCK
1341
IN
AL.PORT_B
E68C F3
MOV
BX.1
LOOP TILL WRAP THROUGH FF
; CONVERT TO A BYTE COUNT
E680 AB
E68E E461
E690 OC30
1342
OR
AL,OOllOOOOB
E692 E661
1343
OUT
PORT_S.AL
E694 90
1344
NOP
£695 24CF
134S
AND
AL,llOOllllB
E697 E661
1346
OUT
PORT_8.AL
DI
E699
1347
I TOGGLE PARITY CHECK LATCHES
C3:
E699 4F
1348
OEC
E69A FD
1349
STO
I POINT TO LAST BYTE JUST WRITTEN
E698
1350
E698 BBF7
1351
MOV
SI.DI
E69D BBCB
1352
NOV
ex.ax
j
E69f
1353
E69F AC
1354
lOD58
E6AO 32C4
1355
XOR
AL.AH
; READ OLD TEST BYTE FRON
I DATA READ AS EXPECTED ?
E6AZ 7525
l356
JNE
C7
I NO - GO TO ERROR ROUTINE
E6A4 8AC2
1357
MOV
Al.DL
I GET NEXT DATA PATTERN TO WRITE
E6A6 All.
1358
STOSS
E6-'7 EZF6
1359
lOOP
; SET oIR FLAG TO GO BACKWARDS
C4:
CSt
i INITIALIZE DESTINATION POINTER
SETUP BYTE COUNT FOR LOOP
INNER TEST LOOP
STORAG~
[51 JE6A.0 32
; WRITE INTO lOC JUST READ [DI J+
C5
; DECREHWT BYTE CDl..tfr AN) lOOP
CX
1360
E6"9 22:E4
E6AB 7416
1361
AND
AH.AH
; Et-IJING ZERO PATTERN WRITTEN TO ST& ?
136Z
JZ
C6X
I YES - RETURN TO CAllER WITH AL=O
System BIOS
A-19
LINE
LaC OBJ
SOURCE
£6"'0 8AEO
1363
HOV
AH.Al
; seTUP NEW VALUE fOR COMPARE
E6AF 86H
1364
XCHG
OH.DL
; MOVE NEXT DATA PATTERN TO OL
E6Bl 22E4
1365
AND
AH.AH
; READING ZERO PATTERN THIS PASS?
E6B3 7504
1366
JNZ
C6
; CONTINUE TEST SEQUENCE TILL ZERO DATA
E6BS 8.0..04
1367
MOV
DL.AH
; ELSE SET ZERO FOi;l END READ PATTERN
JMP
C3
E667 EBED
1368
E6B9
1369
E669 Fe
1370
i
AND HAKE FINAL BACKWARDS PASS
C6:
; SET OIR FLAG TO GO FORWARD
CLD
EbBA 47
1371
INC
01
I SET POINTER TO BEG lOCA lION
E6BB 74DE
1372
JZ
C4
; REAO/Wf(ITE FORWARD IN STG
EbBD 4F
1373
DEC
01
[bBE 6AOI00
1374
NOV
DX,OOOOIH
i
E6el E806
1375
JNP
C3
; READ/WRITE BACKWARD IN STG
E6e3
; ADJUST POINTER
SETUP 01 FOR PARITY BIT AND 00 FOR END
Cf,X:
E6e3 E462
1376
1377
1M
AL,PORT_C
I DID A PARITY ERROR OCCUR ?
E6C5 24eo
1378
AND
Al,OCOH
I ZERO FLAG WILL BE OFF PARITY ERROR
E6C7 BODO
1379
NOV
AL.OOOH
; AL=Q DATA COMPARE OK
E6C9
1380
EOe9 rc
1381
E6CA C3
C7:
CLD
; SET DIRECTION FLAG TO INC
RET
1382
1383
STGTST_CNT
,"up
1384
; ------------------------------- -------------------------- --------------
1385
;
PRINT ADDRESS AND ERROR MESSAGE FOR ROM CHECKSUM ERRORS
1386
; -- --- - - -- - - - ---- ----- ---- - - - - - - ------ ----------- -- - -- -- - - - -- -- ----- --- ---
EbCB
1387
RON_ERR PROC
NEAR
Ebee. 52
1388
PUSH
Ebce 50
1389
PUSH
AX
EbCD BCDA
1390
HOV
DX,OS
; GET .'.OORESS POINTER
E6CF 2688361500
1391
HOV
ES:MFG_ERR_FLAG.DH
; <><><>
CMP
DX.OC800H
; CRT CARD IN ERROR?
JL
ROM_ERR_BEEP
; GIVE CRT CARD FAIL BEEP
CALL
PRT_SEG
; PRINT SEGEMENT IN ERROR
HOV
SI.OFFSET F3A
I DISPLAY ERROR HSG
CALL
E_MSG
; <><><>CHECKPOINTS CO->F4<>
1392
1393
1394
1395
E604 81FAOOC8
E6D8 7eOD
EbOA. EBFDIS
HOD BEOAF99Q
E6E4 58
1396
1397
1398
1399
POP
AX
f6ES SA
1400
pop
OX
E6E6 C3
1401
RET
E6El E8C512
E6E4
; S"VE POINTER
OX
ROM_ERR_END :
E6E7
1402
E6E7 BAOZO 1
1403
MOV
OX.OI02H
EbEA E8E612
1404
CALL
ERR_BEEP
E6EO ESfS
1405
JMP
SHORT ROM_ERR_END
ROM_ERR_BEEP;
i
BEEP 1 LONG. 2 SHORT
1407
1408
j---
1409
i
INT 19 ---------------------------------------------
BOOT STRAP LOADER
1410
TRACK D. SECTOR I IS READ INTO TIlE
1411
BOOT LOCATION (SEGMENT 0, OFFSET 7COO)
1412
ANO COHTROl IS TRANSFERRED THERE.
1413
1414
IF THERE IS A HAROWARE ERROR CONTROL IS
1415
1416
TlliEN AN ERROR
OCCURRED.
RETURN THE CQf1MO PORT STATUS IN (AX)
AH CONTAINS THE LINE STATUS
BIT 7 ::: TIME OUT
BIT 6 : TRANS SHIFT REGISTER EMPTY
BIT 5 == TRAN HOLDING REGISTER EMPTY
SIT 4 = BREAK DETECT
BIT 3 ::: FRAMING ERROR
BIT Z = PARITY ERROR
BIT 1 : OVERRUN ERROR
BIT 0 : DATA READY
AL CONTAINS THE HOD EM STATUS
BIT 7 : RECEIVED LINE SIGNAL DETECT
BIT 6 ::: RING INDICATOR
BIT 5 == OATA SET READy
BIT 4 = CLEAR TO SEt-iD
BIT 3 ::: DELTA RECEIVE LINE SIGNAL DETECT
BIT Z
TRAILING EDGE RING DETECTOR
BIT 1 = DELTA DATA SET READY
BIT 0 = DELTA CLEAR TO SEND
=
lOX) = PARAMETER INDICATING WHICH RS232 CARD (O.l ALLOWEO)
System BIOS A-21
LaC OBJ
LINE
SOURCE
1517
151a
, DATA AREA RS23,_BASE CONTAINS THE BASE ADDRESS OF THE 8250 ON THE
1519
CARD LOCATION 40GH CONTAINS UP TO 4 RS232 ADDREsses POSSIBLE
1520
DATA. AREA LABEL RS232_ TII'COUT (BYTE I CONTAINS OUTER lOOP COUNT
1521
1522
VALUE FOR TIMEOUT (OEFAUlT=l)
; OUTPUT
1523
AX MODIFIED ACCORDING TO PAR!15 OF CALL
1524
1525
152:6
E729
1527
E729
15;:a
E729 1704
1529
Ens 0003
1530
E720 8001
1531
E72:F CODa
1532:
E731 6000
All OTHERS UNCHANGED
; - ------- --- - - -------- --------- ---- ------ -- ---------- -- ---------- -- -----ASSUME CS:COOE.D5:0ATA
Al
1534
1535
E737 DeaD
1536
OE72:9H
LABEL
WORD
ow
ow
ow
ow
ow
ow
ow
ow
1533
E733 3000
E73S 1800
ORG
; TABLE OF INIT VALUES
1047
110 BAUD
768
150
384
; 300
192
I 600
96
I 12:00
46
I
24
; 4800
12
; 9600
2400
1537
E739
PROC
1538
fAR
1539
1540
;----- VECTOR TO APPROPRIATE ROUTINE
1541
(739 Fe
1542
STI
EnA IE
1543
PUSH
DS
E73B S2
1544
PUSH
OX
INTERRUPTS BACK ON
PUSH
51
E73D 57
1540
PUSH
01
E73E 51
1547
PUSH
E73C 56
1545
SAVE SEGMENT
1548
PUSH
ex
ex
E740 aBF2
1549
MOV
51 ,ox
E742 aBFA
1550
MOV
DI,OX
E744 DIE6
1551
SHl
E746 EBlon
E7 49 SB14
1552
1553
1554
CALL
ODS
MOV
DX.RSZ32_BASE[SII
OR
OX,OX
i
E740 7413
1555
JZ
A3
; RETURN
E74F OAE4
1556
OR
AH.AH
; TEST FOR (AH ):::0
E73F 53
E74B 0602
51.1
i
RSZ32 VALUE TO 51
; WORD OFFSET
; GET BASE ADDRESS
TEST FOR 0 BASE ADDRESS
E751 741t>
1557
JZ
A4
; CDI1M\..IN INIT
E753 FEte
1558
DEC
AH
; TEST FOR (AH1=1
E755 7445
1559
JZ
AS
, SEND AL
E757 FEee
1560
DEC
AH
; TEST FOR (AH )=2
E759 746,1,
1561
JZ
A12
; RECEIVE INTO AL
; TEST FOR (AH )::3
ElS6
1562
E756 FEee
1563
DEC
AH
E750 750l
E7SF (98300
1564
A2:
JNZ
A3
1565
f762
1566
f762 58
1567
JMP
Al8
pop
BX
A3:
; COMMUNICATION STATUS
; RETURN FROM RS232
ex
f763 S9
1568
POP
E764 SF
1569
POP
01
E765 Sf
1570
POP
SI
E7b6 SA
1571
POP
OX
f767 IF
157Z
POP
OS
E768 CF
1573
IRET
; RETURN TO CALLER. NO ACTION
1574
1575
;----- INITIALIZE THE COHMUNICATIONS PORT
1576
A4:
E769
1577
E769 8AEO
1578
E76B 63C203
1579
"DV
ADD
OX.3
E76E 6080
1560
NOV
AL.60H
E770 EE
1561
OUT
OX,Al
AH.Al
; SAVE WIT PARMS IN AH
; POINT TO 8250 CONTROL REGISTER
; SET OLAB=l
158Z
1583
;----- DETERHINE BAUO RATE DIVISOR
1584
NOV
OL,AH
E773 6104
1586
MOV
CL,4
E775 02e2
1587
ROL
OL.CL
E777 alE20Eoo
1586
ANO
OX,OEH
E77S BF29E7
1589
NOV
OI,OFFSET Al
; BASE OF TABLE
OI.DX
I PUT INTO INDEX REGISTER
E771 SAD4
1565
E77E 03FA
1590
AOO
Elea 8614
E782 42
E783 2E6A4501
1591
MOV
1592
1593
we
Ox
NOV
AL.eS:[OIhl
A-22
System BIOS
I GET PARMS TO DL
I ISOLATE THEM
; POINT TO HIGH ORDER OF OIVISOR
; GET HIGH ORDER OF OIVISOR
LaC OBJ
E7B7 EE
LINE
SOURCE
OUT
aX.AL
£788 4A
1595
DEC
OX
£789 2E8A05
1594
MeV
OUT
AL.Sc:[aIl
I SET MS OF DIY TO 0
I GET LOW ORDER OF DIYISOR
aX.AL
I SET LOW OF DIVISOR
ADD
MV
AL,AH
I GET PARMS BACK
AL.OIFH
i
aX,Al
J LINE CONTROL TO 8 BITS
[790 BAC4
1596
1597
1598
1599
E792 24lF
1600
E794 EE
1601
AND
OUT
E795 44
1602
DEC
E796 4A
1603
1604
DEC
MOV
AL.O
1605
1606
OUT
JMP
aX.AL
; INTERRUPT ENABLES ALL OFF
SHORT A16
; COM_STATUS
E78C EE
nBD 83C203
£197 BOOO
E799 EE
E79A E649
OX,3
STRIP OFF THE BAUD BITS
OX
OX
1607
1606
;----- SEND CHARACTER IN {AU OVER COMMO LINE
1609
E79C
e79C 50
1610
1611
AS:
PUSH
AX
; SAVE CHAR TO SEND
E790 83C204
1612
ADD
DX.4
J MODEM CONTROL REGISTER
E1AO B003
HOV
AL.3
j
OUT
OX,Al
; DATA TERMINAl READY, REQUEST TO SEND
INC
DX
; MooEH STATUS REGISTER
E744 42
1613
1614
1615
1616
INC
OX
E7AS 8730
1617
HOV
BH.30H
E7A7 E84800
1616
1619
CAll
WAITJOR_STATUS
; ARE BOTH TRUE
JE
A.
; YES, READY TO TRANSMIT CHAR
E7A2 fE
E7A3 42
f7U 7408
DTR AND RTS
I DATA SET READY & CLEAR TO SEND
E7AC
162:0
ElAC 59
1621
pop
cx
ElAD 6ACI
1622
MOV
AL.CL
I RELOAa DATA BYTE
E7AF
1623
E7AF 80CC60
1624
OR
AH .SOH
; INDICATE TIME OUT
E782 EBAE
E7B4
1625
1626
E764 4A
1627
E7BS
1626
E765 8720
1629
1630
E7B7 E83800
E7BA 75FO
1631
E7BC
1632
nec
IHEADS
A7:
AS:
JMP
A3
; RETURN
DEC
OX
I
NOV
BH.20H
I 15 TRANSMITTER READY
CALL
WAIT]OR_STATUS
I
JNZ
A7
; RETURN WITH TIME OUT SET
A9:
; CLEAR_TO_SEND
LINE STATUS REGISTER
AID:
All:
1633
TEST FOR TRANSMITTER READY
; OUT_CHAR
SUB
OX.s
; DATA PORT
E76F 59
1634
POP
CX
; RECOVER IN CX TEMPORARILY
E7eo BACl
1635
1636
1637
MOV
AL.CL
OUT
aX.AL
; HOYE CHAR TO AL FOR OUT. STATUS IN Nt
; OUTPUT CHARACTER
JMe
A3
; RETURN
E7C2 EE
E7C3 EB9D
1638
1639
1640
1----- RECEIVE CHARACTER FROM COMMa LINE
E7C5
IMI
",12:
E7CS 83C204
1642
E7ea 6001
E7CA EE
1643
1644
1645
1646
1647
1648
1649
1650
1651
E7eB 42
Elee 42
nco
nco
87ZD
E7CF EB2000
E702 7508
E704
E7D4 4A
E705
nos
6701
E7D7 E81800
ElOA 7503
ElOC
ElOC aOE41E
E?OF 8814
nEl EC
E7E2 E97DFF
1652
1653
1654
1655
1656
1657
ADO
1663
I MODEM CONTROL REGISTER
ALot
OX.AL
INC
; MODEM STATUS REGISTER
INC
OX
OX
HOV
BH,20H
I
CALL
WAIT_FaR_STATUS
t TEST FOR DSR
JNZ
AS
; RETURN WITH ERROR
i
WAlT_DSR_END
DEC
OX
j
LINE STATUS REGISTER
11011
SH.l
; RECEIVE BUFFER FULL
CALL
WAITJOR_STATUS
; TEST F()I;! REC. BUFF. FULL
JNZ
A6
AND
AH.OOOl1110B
DATA TERMINAL READY
i
; NAIT_DSR
AU:
A15:
DATA SET READY
A16:
A17:
1658
1659
1660
1661
1662
DX,4
MOV
OUT
GET_CH.4.R
j
TEST FOR ERR CONDITIONS ON RECV CHAR
; DATA PORT
MOV
J-----
I SET TIME OUT ERROR
;
IN
AL.OX
I GET CHARACTER FROH LINE
JMP
A3
i
RETURN
Cot1\10 PORT STATUS ROUTINE
1664
A18:
E7ES 8814
1665
1666
MOV
OX ,RS232_BASE [SI J
E7E7 63C205
1667
ADD
ElEA EC
1668
lb69
IN
OX.S
AL,OX
MeV
AH.AL
; CONTROL PORT
; GET LINE CONTROL STATUS
I PUT IN AH FOR RETURN
16070
INC
OX
I POINT TO MODEM STATUS REGISTER
E7E5
ElEe BAED
ElED 42
System BIOS A-23
LINE
LOC OBJ
SOURCE
ElEE EC
1611
IN
E7EF E970FF
1672
JMP
; GET MODEM CONTROL STATUS
AL,DX
A3
i RETURN
1673
; ------- --- -- -- --------- ---- -------------
1674
; WAIT FOR STATUS ROUTINE
1675
;
1676
; ENTRY:
1677
BH=STATIJS BITIS) TO LOOK FOR.
1678
DX=ADOR. OF STATUS REG
1679
; EXIT:
1680
ZERO FLAG ON
1681
ZERO FLAG OFF = TIMEOUT.
1682
= STATUS FOUND
AH=LAST STATUS READ
1683
E7F,
1684
E7F2 BAS07C
1685
E7F5
1686
ElFS 26C9
1687
Elf7
E7FA 22C7
1688
1689
1690
1691
ElFC 3AC7
1692
E7f7 EC
EYF8 8AEO
WAIT_FOR_STATUS PROC
,
NEAR
MOV
BL ,RSZ32_TIH_OUTIOI 1
sue
CX,cx
IN
Al,DX
MOV
AH,AL
ANIl
AL,BH
I
CMP
AL,BH
; EXACTLY
LOAD OUTER LOOP COUNT
WFSO:
WFSl:
; GET STATUS
; HOVE TO AH
ISOLATE BITS TO TEST
=
TO MASK
E7FE 7408
1693
JE
WFS_END
; RETURN WITH ZERO f LAG ON
EBOO E2F5
1694
LOOP
WFSI
; TRY AGAIN
E802 FEee
1695
DEC
BL
E804 75Ef
1696
1697
JHZ
WFSO
DR
BH,BH
E806 OAFF
1698
E808
1699
E808 C3
1700
I
SET ZERO FLAG OFF
WFS_END:
RET
1701
WAITJOR_STATUS WOP
1702:
ENDP
1703
E809 45525Z4FS22EZO
1704
'3D
DB
'HmOR. (RESUME
= Fl
KEY)',13,10
; ERROR PROMPT
28524553554045
20302022463122
2045455929
E623 00
Ea24 01
1705
1706
1---- INT 16 ------------------------------------------------------------
1707
I KEYBOARD 110
1708
1709
THESE ROUTINES PROVIDE KEYBOARD SUPPORT
i
INPUT
1710
(AH )=0
1711
1712
(AHl=l
READ THE NEXT ASCII CHARACTER STRUCK FROM THE KEYBOARD
RETURN THE RESULT IN (All, SCAN CODE IN (AH)
SET THE Z FLAG TO INDICATE IF AN ASCII CHARACTER IS
1713
AVAILABLE TO BE READ.
1714
(ZF )=1 -- NO CODE AVAILABLE
1715
(Zf )=0 -- COOE IS AVAILABLE
1716
1717
IF ZF = 0, THE NEXT CHARACTER IN THE BUFFER TO BE READ
IS IN AX. AND THE ENTRY REMAINS IN THE BUFFER
(AH )=2
1718
1719
1720
1721
1722
1723
1724
RETURN THE CURRENT SHIFT STATUS IN AL REGISTER
THE BIT SETIINGS FOR THIS CODE ARE INDICATED IN THE
THE EQUATES FOR KBJLAG
; OUTPUT
AS NOTED ABOVE. ONl'fAX ANO FLAGS CHANGED
ALL REGISTERS PRESERVEO
;------------------------------------------------------------------------
1725
ASSUME
CS ;CODE ,OS: DATA
OfS2EH
E82E
1726
D'G
Ea2E
1727
KEYBOARD_IO
f82E FB
1728
ST!
E8lF IE
PUSH
os
i
SAVE CURRENT OS
E830 53
1729
1730
PUSH
BX
j
SAVE BX TEMPORARILY
E831 E82512
1731
CALL
DDS
E834 OAE4
1732
DR
AH,AH
I AH=O
E836 740A
1733
JZ
1734
DEC
"
I ASCII_READ
E838 FEee
E83A 741E
JZ
E83C FEee
1735
1736
E61E 7426
1737
E840 EelC
1738
1739
1740
PROC
FAR
I INTERRUPTS BACK ON
AH
; AH=l
.2
I ASCII_STATUS
DEC
AI!
I AH=2
JZ
K3
I SHIFT_STATUS
JMP
SHORT INTIO_ENO
I EXIT
;----- READ THE KEY TO FIGURE OUT WHAT TO DO
1741
E842
A-24
1742
Kl:
System BIOS
I ASCII REA.[)
LOC OBJ
LINE
SOURCE
INTE~~UPTS
E842 FB
1743
STI
•
E843 90
NOP
; AllOW AN
E844 FA
1744
1745
E845 861EI.100
1746
MOV
E849 3alElCOO
1747
BACK ON DURING lOOP
INTER~UPT
TO OCCIA'!
J INTE~~UPTS
eLI
aX. BUFFER_HEAD
BACK OFF
I GET POINTER TO HEAD OF BUFFER
eMP
ex,BUFFER_TAIL
[840 74F3
1748
JZ
Kl
• TEST END Of BUFFER
, LOOP UNTI l SOMETHING IN BUFFER
E84f 6B07
1749
HOV
AX.raX)
; GET SCAN COOE At-I) ASCII COOE
E851 E81DOO
1750
1751
CALL
K4
; MOVE POINTER TO NEXT POSITION
[654 891EI.1DO
MOV
E858 E614
1752
JMP
aUFFER_HEAO.8X
5HO~T INTlO_END
; STORE VALUE IN VARIABLE
; RETURN
1753
1754
;----- ASCII STATUS
1755
E85A
K2:
E856 eBIElAOO
1756
1757
1758
E85F 381E1COO
1759
E863 a607
1760
[865 FB
1761
STI
E866 58
1762
POP
BX
E867 If
1763
E668 CA0200
1764
1765
'OP
OET
os
f85A FA
1766
8X.BUFFER_HE.t.D
I INTERRUPTS OFF
; GET HEAD POINTER
eMP
BX.BUFfE~_TAIL
; IF EQUAL (Z=l) THEN NOTHING THERE
MeV
AX.IBXJ
eLI
MOV
j-----
; INTERRUPTS BACK ON
; RECOVER REGISTER
,
J RECOVER SEGMENT
; THROW AWAY FLAGS
SHIFT STATUS
1767
K3:
E86B
1768
E86B A01700
1769
E8bE
1770
Ea6E 58
E86F If
1772
POP
E870 CF
1773
I~ET
MOV
1771
1774
AL.KBJlAG
; GET THE SHIFT STATUS FLAGS
BX
; RECOVER REGISTER
; RECOVER REGISTERS
OS
I RETl/RN TO CALLER
ENOP
1775
1776
;----- INCREMENT A BUFFER
POINTE~
1777
Ea7l
1778
[a7l 43
1779
K4
PROt
NEA~
INC
BX
BX
BX.BUffER_ENO
E872 43
1780
INC
E873 381E8200
1781
CMP
f877 7504
1782
JNE
£879 681E8000
1783
HOV
E87D
1784
EalD C3
1785
1786
"5
; MOVE TO NEXT WORD IN LIST
I AT END OF BUFFER?
; NO. CONTINUE
BX.BUFFER_STA~T
; YES. RESET TO BUFFER BEGINNING
K5:
RET
K4
ENOP
1787
1788
1----- TABLE OF SHIFT KEYS AND MASK VALUES
1789
[elE
1790
LABEL
BYTE
[e7E 52
[elf 3A
1791
DB
INS_KEY
1792:
DB
1793
OB
K6
; INSERT KEY
E88D 45
E881 46
E882 38
E883 10
[884 lA
E885 36
0006
1794
K6L
1795
1796
EI'"
;----- SHIFT_MASK_TABLE
1797
179~
<7
E886 &0
179'9
LABEL
DB
EB87 40
1800
DB
1801
OB
E886
BYTE
INS_SHIFT
; INSERT MODE SHIFT
E888 20
[889 10
EMA 08
ESSS 04
EBBC 02
E860 01
1802
IS03
;----- SCAN CODE TABLES
1804
E8BE 18
1805
"8
DB
27. -1. O. -1.-1.-1. 30 ,-I
fB8F FF
E890 00
[891 FF
[992 FF
System BIOS
A-25
LOC OBJ
LINE
SOURCE
E893 FF
E894 IE
E895 Ff
E896 FF
1806
DB
-1.-1.-1,31,-1,127.-1,17
1807
DB
2l, 5,18.20.25,21.9,15
1808
DB
16.27,29,10,-1,1,19
1S09
DB
4,6,7.8.10,11.12,-1.-1
1810
DB
-1.-1.2.8,26.24.3.22.2.
1811
DB
14,13,-1.-1, -1.-1.-1.-1
E897 FF
E898 FF
E899 IF
f89.6. FF
E698 7F
E89C FF
E890 11
E89E 17
E89F 05
E8AO 12
f8Al 14
E8A2 19
f8A3 15
E8A4 09
E8A5 OF
f8A6 10
fSA7 IB
E8A8 10
f8A9 OA
fSAA FF
E8A8 01
faAC 13
EBAD 04
fBAE 06
fBAF 07
E6BO 08
E881 OA
f882 DB
E8B3 DC
ES64 FF
EBBS FF
EBBb FF
E6B7 FF
E8B8 Ie
E8B9 lA
EBBA 18
EBBB 03
EBBC 16
EBBD
oz
EBBE DE
f8BF 00
E8CO fF
EBCl fF
f6t2 FF
E8C3 FF
E8C4 FF
Eees FF
E8C6 ZO
DB
181z
' ,-I
E8C7 ff
;----- eTl TABLE SCAN
E8C8
1813
1814
EaC8 Sf
1815
DB
94,95.96,97.96,99.100,101
1816
DB
102..103, -1. -1.119. -1.132..-1
1817
DB
115,-1.116.-1.117.-1,118.-1
K'
LABEL
BYTE
EaC9 SF
EBtA 60
E6CB 61
Eace 62
f8CO 63
fSCE 64
EeeF 65
E8DO 66
E8Dl 67
EeD2. FF
E803 FF
E804 77
E805 FF
E806 84
E807 FF
E8D8 T!
E809 FF
EaDA 74
E80B FF
E80C 75
E8DO FF
A-26
System BIOS
LOC OBJ
l~£
LINE
SOURCE
76
ESDF FF
E8EO FF
E8El
E8El 1B
1818
DB
1819
i ----- lC TABLE
182:0
1821
010
LABEl
-1
BYTE
DB
OISH. '1234567890-= I • DSH. 09H
1822:
DB
'qwertyuiop{ J' .COH,-I. 'udfghjkl;' .027H
1823
DB
60H. -1.seH •• zxcvbtw • • 1' .-1. '* .• -1. '
DB
-1
EBEl 3132:3334353637
3839302030
EBEE 08
EeEF 09
fBfO 71776572747975
696F705B5D
E8FC 00
EBFO FF
E8FE 6173646667686,4
686e38
E908 27
E909 60
E90A FF
E90B 5C
E90t 7A786376626E60
:;>C2E2F
E916 FF
E917 2A
E9lS FF
E9l9 20
E91A FF
182:4
1825
; ----- UC TABLE
E918
1826
K11
E9lB IB
1827
DB
27. ' !Oill& I .37 .05EH, • &*( 1_ +' .08H,0
1828
DB
'QWERTYUIOP{}' .OoH. -1. 'ASOFGHJKL:'"
1829
DB
07EH. -1 •• I ZXCVBHH<:>? , .-1,0.-1. '
LABEL
BYTE
E91C 21402324
E92:0 25
E921 Sf
E9Z2 262:A28295F28
E928 08
E929 00
EnA 51574552:545955
494F507870
E936 00
E937 fF
£938 4153444647484.1.
4B4ClA22:
E943 7E
, .-1
E944 FF
E94S 7C5A584356424E
4D3C3E3F
E950 FF
E951 00
E952 FF
E953
zo
E954 FF
1830
; ----- UC TABLE SCAN
E955
1831
Oil
E955 54
1832
DB
84 ,85,86 .87.8~h89, 90
1633
DB
91.92.93
LABEL
BYTE
E956 55
E957 56
E956 57
E959 58
E9SA. 59
E95B SA
E95C 58
E950 5C
E95E 50
1834
;----- A.lT TABLE SCAN
E95F
1835
013
E95F 66
1836
DB
104.105.106,107,106
18~7
DB
109,110,111.112.113
LABEL
BYTE
£960 69
E961 6A
E962 6B
E963 6C
£%460
E965 6E
E966 6F
E967 70
E968 71
1636
E96'
1639
j-----
01.
HUH STATE TABLE
LABEL
BYTE
System BIOS
A-27
LINE
LOC OBJ
E969 3738392D343536
28313233302'£
E976 47
Da
1840
1641
1842
1843
E976
SOURCE
, 789-456+11:30.
I
; ----- BASE CASE TABLE
K15
LABEL
BYTE
Da
71.72,73.-1.75.-1.77
Da
-1.79,80,81.82.83
E977 48
E978 49
E979 FF
E97A 46
E978 FF
E97C 40
E97D fF
1844
E97E 4F
E97F 50
E980 51
E981 52
E982 53
1645
1846
1647
;----- KEYBOARD INTERRUPT ROUTINE
ORG
OE987H
""DC
STI
FAR
E987 FB
1848
1849
1850
E988 50
1651
PUSH
AX
E9B9 53
185:::
1653
1854
PUSH
ax
ex
ox
PUSH
E980 57
1855
1856
E98E IE
1857
E98F Db
1858
PUSH
E990 Fe
1859
eLD
DDS
E987
E987
E98A 51
E988 52
E98C 56
KB_INT
PUSH
PUSH
I AlLOW FUIHHER INTERRUPTS
PUSH
51
DI
PUSH
os
ES
; FORWARD DIRECTION
E991 E8C510
1860
CALL
E994 E460
1861
IN
AL.KB_DATA
; READ IN TIlE CHARACTER
E996 50
186:::
PUSH
AX
j
SAVE IT
E997 E461
1863
IN
AL.KB_eil
j
GET THE CONTROL PORT
E999 8AEO
1664
MOV
AH.AL
• SAVE VALUE
E998 OC60
1865
OR
AL.80H
I RESET BIT FOR KEYBOARD
E99D E661
1866
OUT
KB_CTl,AL
E99F 86EO
XCHG
AH.A.L
E9Al E661
1667
1868
OUT
KB_CTl.AL
; KB HAS BEEN RESET
E9A3 58
1669
POP
AX
I RECOVER SCAN CODE
HOV
AH.Al
; SAVE SCAN CODE IN AH AlSO
1670
E9A4 6AEO
; GET BACK ORIGINAL CONTROL
1871
1872:
; ----- TEST FOR OVERRUN SCAN CODE FROM KEYBOARD
1873
E9A6 3CFF
1874
eMP
AL.OfFH
j
IS THIS AN OVERRUN CHAR
E9A6 7503
1875
JHZ
K16
j
NO. TEST FOR SHIFT KEY
E9AA E97A02
1876
JMP
K.2
I BUFFERJUlL_BEEP
1877
1878
;----- TEST FOR SHIFT KEYS
1879
E9AO
1680
E9AD 247F
1881
ANO
E9AF DE
1882
PUSH
es
E9BO 07
1883
1884
POP
ES
MOV
DI.OFFSET K6
E9B4 B90800
HI85
HOV
CX.K6L
E987 F2
1886
REPHE
SCASS
; lOOK THROUGH THE TABLE FOR A MATCH
E989 8AC4
1887
MOV
AL.AH
; RECOVER SCAN CODE
E9SB 7403
1888
JE
K17
; JUMP IF MATCH FOUN[)
E'ilBD E9S500
1889
JMP
K25
; IF NO MATCH. THEN SHIFT NOT FOUND
E981 BnEEa
K16 :
I TEST_SHIFT
AL.07FH
; TURN OFF THE BREAK BIT
; ESTABLISH ADDRESS OF SHIFT TABLE
; SHIFT KEY TABLE
LENGTH
E9B6 AE
1890
1891
;----- SHIFT KEY FOUND
1892
E9CO 81EF7FE8
1693
SUS
DI.OFFSET K6+1
E9C4 2E6AA586E8
1894
MOV
AH.CS:K7(DII
j
E9C9 ABBO
1895
1896
TEST
,H.80H
I TEST FOR BREAK KEY
JNZ
K23
; BREAK_SHIFTJQUND
E'ilCe 7551
K17:
; ADJUST PTR TO SCAN CODE MiCH
GET MASK
nno
AH
1897
1698
j-----
SHIFT MAKE FOUND. DETERMINE SET OR TOGGLE
1899
E9CD aOFCIO
HOD 7307
1900
eMP
AH.SCROLL_SHIFT
1901
JAE
K18
1902
1903
A-28
1----- PLAIN SHIFT KEY, SET SHIFT ON
System BIOS
j
IF SCROLL SHIFT OR ABOVE. TOGGLE KEY
LOC OBJ
E9D2 08261700
£9D6 £98000
LINE
DO
KB_FLAG.AH
1906
JMP
K2.
1907
1908
1909
E909
E909 F60617QOO4
1910
1911
E9DE 7565
E9EO 3C52
E9E2 75Z2
;----- TOGGLED SHIFT KEY. TEST FOR 1ST MAKE OR NOT
KI8:
J
SHIFT~TOGGLE
KB_FLAG. eTL_SHIFT
I CHECK eTL SHIFT STATE
1912
JHZ
K25
i
1913
CMP
AL. INS_KEY
1914
JHZ
K22
KBJLAG. ALl_SHIFT
1915
E9E9 755A
E9FO 7500
1916
1917
1918
E9F2 F606170003
E9F7 7400
1919
1920
E9F9
1921
1922
E9F9 683052
J Tl.RN ON SHIFT BIT
J INTERRUPT_RETURN
TEST
£9E4 F606170008
E9EB F606170020
SOURCE
1904
1905
E9FC E90601
1923
1924
E9FF
E9FF F606170003
1925
1926
EA04 74F3
192:7
TEST
JHZ
K19:
TEST
K25
KBJLAG, "AJt,-STATE
JHZ
K21
TEST
KB_FLAG.
JZ
K22
JlI1P IF eTl STATE
; CHECK FOR INSERT KEY
J JlR1P IF HOT INSERT KE'f
I CHECK FOR AL TERHATE SHIFT
I JUMP IF ALTERNATE SHIFT
I CHECK FOR BASE STATE
I JUMP IF NUM LOCK IS ON
LEFT_SHIFT+ RIGHT_SHIFT
K20:
j
JlR1P IF BASE STATE
; tuMERIC ZERO. NOT INSERT KEY
MII.
2:511
2:512
1----- ALLOW WRITE ROUTINE TO FALL INTO RW_OPN
2:513
2514
1----------------------------------------------------------------
2515
I RI,COPN
2516
I
THIS ROUTINE PERFORMS THE READIWRITE/VERIFY OPERATION
2:517
1----------------------------------------------------------------
f04A
2518
RW_OPH
E04A 730a
2519
E04C C606410009
2520
DISKETTf_STATUS.DMA_BOUNOARY
E051 BODO
252:1
.ROC
JNe
HOV
MOV
RET
PUSH
AX
E053 C3
2522
E054
2523
E054 50
2524
NEAR
J11
AL.O
; TEST FOR DMA ERROR
I SET ERROR
i NO SECTORS TRANSFERRED
I RETURN TO MAIN ROUTINE
Jll:
i DO_RW_OPN
I SAVE THE COI1HAND
2525
2526
; ----- TURN ON THE I1OTOR ANO SElECT THE DRIVE
252:7
EOSS 51
2528
PUSH
ex
I SAVE THE T/S PARMS
E056 eACA
2529
HOV
CL.DL
I GET DRIVE HUMBER AS SHIFT COUNT
E058 BOOI
2530
MOV
ALol
E05A D2EO
2531
SAL
Al,CL
E05C FA
2:532:
eLI
j
MASK FOR DETERMINING HOTOR BIT
j
SHIFT THE MASK BIT
I NO INTERRUPTS WHILE DETERMINING
2533
I
MOTOR STATUS
E050 C6064000FF
2534
MOV
HOTOR_COUNT I OFFH
j
E062 84063FOO
2535
TEST
AL,HOTPR_STATUS
I TEST THAT MOTOR FOR OPERATING
E066 7531
2536
Jl'
I IF
SET LARGE COUNT
D~ING
OPERATION
E068 a0263FOOFO
2:537
...,
I1OTOR_STATUS , OFOH
ED6D 08063FOO
2538
OR
I1OTOR_STATUS.Al
i TURN OFF ALL MOTOR BITS
I TURN ON THE CLRRENT HOTDR
E07l FB
2539
STI
Eon BOlO
2540
MOV
Al,IDH
; MASK BIT
E074 02EO
2541
SAL
Al.Cl
; DEVELOP BIT HASK FOR HOTOR ENABLE
E076 OAC2
2542
Al.OL
I GET DRIVE SE LECT BITS IN
neoc
E078
JHZ
OR
R~ING,
SKIP THE WAIT
I INTERRUPTS BACK ON
2543
OR
Al.OCH
J NO RESET. ENABLE DHA/INT
ED7A S.2
2544
PUSH
OX
I SAVE REG
E07B BAF203
2545
HOV
DX.03F2H
; CONTROL PORT ADDRESS
ED7E EE
2546
OUT
DX,Al
ED7F SA
2547
PO.
ox
; RECOVER REGISTERS
2:546
2549
;----- WAIT FOR MOTOR IF WRITE OPERATION
2550
E060 F6063Fooao
2551
TEST
MOTOR_SUTUS.60H
; IS ntIS A WRITE
ED85 7412
2552
I NO I CONTINUE WITHOUT WAn
2553
JZ
MOV
J1'
E087 8B1400
BX.2:0
EDaA E80FOO
2554
CALL
tiET_P...RM
I
EC80 OAE4
2:555
OR
AH.AH
; TEST FOR NO WAIT
EDSF
2556
J1Z:
J GET THE HOTOR WAIT
PARAMETER
I TEST_WAIl_TINE
eOSF 7408
2557
JZ
Jl'
I EXIT WITH TIHE EXPIRED
ED91 2&9
2558
SUB
cx.cx
I SET UP 118 SECOND LOOP TIME
£093
2559
ED93 E2FE
2560
LOO.
J13
• WAIT FOR THE REQUIRED TIME
J13:
System BIOS
A-37
LOC OBJ
E095 FEte
LINE
SOURCE
2561
DEC
AH
JHP
J12
£097 EBF6
2562
E099
2563
[099 FB
2564
STI
ED9A 59
2565
pcp
J14:
I DECREMENT TIME VALUE
I ARE WE DONE YET
I MOTOR_RUNNING
~
INTERRUPTS BACK ON FOR BYPASS WAIT
CX
2566
2567
;----- DO THE SEEK OPERATION
2568
ED9B EBOFOO
2569
E09E 58
2570
POP
AX
I RECOVER COMMAHO
E09F 8AFe
2571
HOV
BH.AH
j
fOAl B600
2sn
HOV
DH.O
; SET NO SECTORS READ IN CASE OF ERROR
EOA3 72.48
2573
JC
J17
; IF ERROR. THEN EXIT AFTER MOTOR OFF
EDAS BEFOED90
2574
HOV
5I.OFFSET J17
; DUMMY RETURN ON STACK fOR NEt_OUTPUT
EDA.9 56
2575
PUSH
S1
,
CALL
SEEK
2576
; MOVE TO CORRECT TRACK
SAVE COMMAND IN 8H
SO THAT IT WILL RETlIRN TO MOTOR OFF
LOCATION
2577
Z578
,----- SEND OUT THE PARAMETERS TO THE CONTROLLER
2579
2sao
CALL
NEC_OUTPUT
EDAD 8,6.6601
2581
HOV
AH.[BP+l1
; GET THE CURRENT HEAD NUMBER
EOBO 00E4
2582
SAL
AH.1
; MOVE IT TO BIT 2
EOB2 DOE4
2583
SAL
AH.l
E064 80E404
2584-
AND
AH.4
I ISOLATE THAT BIT
EOB7 OAE2
2.585
OR
AH.DL
; OR IN THE DRIVE HUMBER
EOM E88500
2586
CALL
NEC~OUTPUT
EDAA £89400
; OUTPUT THE OPERATION COMMAND
2587
2586
;----- TEST FOR FORMAT COMMAND
2.589
EDBC 80FF4D
2590
CHP
SH ,04DH
; IS THIS A FORMAT OPERATION
EDBF 7503
2591
JNE
J1S
i
EDCl E962FF
2592
JHP
J10
i IF SO, HANDLE SPECIAL
EOC4
2593
EDC4 8AES
2594
HOV
AH.CH
I CYLINDER NUtlBER
EDC6 E87800
2595
CALL
NEC_OUTPUT
EDC9 8,0.,6601
2596
MOV
AH,[BP+ll
EDCC E87200
2597
CALL
NEC_OUTPUT
NO. CONTINUE WITH R/W/v
JIS:
; HEAD NUMBER fROM STACK
EoeF BAEI
2598
HOV
AH,CL
EoDl E&6000
2599
CALL
NEC_OUTPUT
ED04 880700
2600
HOV
ex.7
; SECTOR NUl1BER
ED07 Esnoo
2601
CALL
GET_PARM
EDDA BB0900
260i?:
HOV
BX.9
j
EOoo E86COO
2603
CALL
GET_PARM
I
; BYTES/SECTOR PARM FROM BLOCK
TO THE NEC
EOT PARM FROM BLOCK
TO THE NEe
ED EO 880600
2.604
HOV
eX.!l
EDE3 E88600
2605
CALL
GET_PARM
,
EDE6 e60000
2606
HOV
ax.n
; DlL PARM FROM BLOCK
EOE9
2607
J16:
; GAP LENGTH PARM FROM BLOCK
TO THE NEC
; RIoI_OPNJINISH
EOE9 E68000
2608
CALL
GET_PARI1
EDEC 5E
2609
POP
S1
2610
,
TO THE NEt
; CAN NOW DISCARD THAT DlR1MY
,
RETURN ADDRESS
2611
2612
LET THE OPERATION HAPPEN
2613
CALL
WAIT_INT
; WAIT FOR THE INTERRUPT
EDFO
2615
EDFO 7245
2616
JC
J21
,
EDF2 E87401
2617
CALL
RESULTS
I GET THE NEC STATUS
EOF5 723F
2618
JC
J20
EDED E84301
2614
; MOTOR_OFF
J17:
,
LOOK FOR ERROR
LOOK FOR ERROR
2619
2620
i ----- CHECK THE RESULTS RETURNED 6Y THE CONTROLLER
2621
; SET THE CORRECT DIRECTION
EOF7 FC
2622
CLD
EOF8 BE4200
2623
HOV
SI,OFFSET NEC_STATUS
; POINT TO STATUS FIELD
; GET 5TO
EOFB Ae
2624
LaDS
NEC_STATUS
EOFC 24CO
2625
AND
AL.OCOH
JZ
J22
; OPH_OK
CHP
AL,040H
I TEST FOR ABNORMAL TERMINATION
JNZ
J16
I NOT ABNORMAL, BAD NEC
EOFE 743B
2626
HOO 3C40
2627
EE02 7529
2628
i
TEST FOR HORMAL TERI1IHATION
2629
2630
1----- ABNORMAL TERMINATION. FIND OUT WHY
2631
EE04 At
NEe_STATUS
; GET STl
HOS DO EO
2633
SAL
A.L,l
; TEST FOR EDT FOUHD
EE07 B404
2634
HOV
AH.RECORD_NOT]t.O
2632
LDOS
EE09 7224
2635
JC
J19
EEOB OOEO
2636
SAL
AL.I
EEOD DOEO
2637
SAL
AL,!
A-38
System BIOS
; RW]AlL
I TEST FOR CRt ERROR
lOC OBJ
LINE
SOURCE
EEOF 8410
2638
EEll niC
2639
Je
J1.
EEl3 ODED
2640
2641
2642
2643
2644
SAL
Al.!
EElS B408
EE17 7216
£E19 ODED
EEIB OOEO
EE10 8404
EElF nOE
AH ,BAD_CRe
HOV
2645
2646
I RW_FUl
I TEST fOR DMA OYERRlM
HOV
AH.BAD_DHA
Je
J1'
SAL
Al.l
I RW]An
SAL
Al.1
AH,RECORD_.HOTJt«l
I TEST FOR RECORD HOT FIXH)
HOV
Je
J1'
; RW]AIL
SAL
Al,!
HOV
AH. WRITE_PROTECT
j
TEST fOR NRITE_PRDTECT
EE25 7208
2647
2646
2649
Je
J1.
I
RN..FAIl.
EE27 ODED
2650
SAL
Al.I
; TEST MISSING ADDRESS HARK
EE29 B402
2bS1
HOV
AH. BAD_ADDR_HARK
Je
J1.
EE21 ODED
EE23 8403
EE2B 1202
2652
I RW]AIL
2653
2654
j----- NEe t1UST HAYE FAILED
2655
EElD
2656
Ef20 8420
2657
EElF
2658
EE2f 0&264100
E03 f87601
2659
I RW-NEC-FAIL
JIB:
HOV
AH.BAD_NEe
""
DISKETTE_STATUS,AM
I RN-FAIL
J19:
2660
2661
2662
JeD:
(;E36 C3
EE3?
2663
J21:
EEl7 E82FOI
2664
CALL
EE3,4 Cl
2665
OET
EE36
tAA1_TRANS
CALL
; HOW MANY WERE REALLY TRANSFERRED
I IU'CERR
; RET!A:!N TO CAlLER
OET
; RIII_ERR_RES
; FLUSH THE RESULTS BUFFER
RESULTS
2666
2667
;----- OPERATION WAS SUCCESSFUL
2666
~
EE3B
2669
EDB E87001
2670
CALL
NUH_TRANS
; HOW MANY GOT MOVED
EE3E 32E4
2671
J22:
XOO
AH.AH
; NO ERRORS
OPtCOK
EE40 C3
2672
RET
ENOP
2673
RI'COPN
2674
;
; NEe_OUTPUT
THIS ROUTINE SENDS A BYTE TO THE NEe CONTROLLER AFTER TESTING
2675
2676
------------------------------------------------------------------------
2677
FOR CORRECT DIRECTION At«) CONTROLLER READY THIS ROUTINE WILL
2678
TIME OUT IF THE BYTE IS NOT ACCEPTED WITHIN A REASONABLE
2679
AMOUNT OF TIME. SETTING THE DISKETTE STATUS ON COMPLETION.
2680
INPUT
(AH)
2681
2682
BYTE TO BE OUTPlIT
; OUTPUT
2663
CY
=0
SUCCESS
2664
CY
=
FAILURE -- DISKETTE STATUS UPDATED
1
2665
IF A FAILURE HAS OCCURRED. THE RETURN IS HADE ONE LEVEl :
2666
HIGHER THAN THE CALLER OF NEe_OUTPUT.
2687
THIS REMOYES THE REQUIREMENT OF TESTING AFTER EYERY
2668
CALL OF NEC_OUTPUT.
2669
(AL) DESTROYED
;------------------------------------------------------------------------
Ef41
2690
2691
EE41 52
2692
PUSH
OX
Ef42 51
2693
PUSH
ex
EE43 BAF403
2694
HOY
DX.03F4H
; STATUS PORT
EE46 33C9
2695
X""
cx.cx
I COUNT FOR TIME OUT
EE48
2696
EE46 EC
2697
IN
AL.DX
EE49 A840
2698
TEST
A.L~040H
; TEST DIRECTION BIT
EE4B 740C
EE40 E2Ft
2699
2700
JZ
J2S
I DIRECTION OK
lOOP
JU
EE4F
2701
EE4F 600E410060
2702
OR
DISKETTE_ST;'TUS, TIME_OUT
EES4 S9
2703
POP
ex
EE55 5A
2704
POP
OX
; SET ERROR CODE "NO RESTORE REGS
EE56 58
2705
POP
AX
; DISCARD THE RETURN ADORESS
EE57 F9
2706
STe
EE56 C3
2707
OET
EE59
2708
EE59 33C9
2709
EE5B
2710
EE5B EC:
2711
EESt A860
2712
TEST
A.L.060H
; IS IT READY
EESE 7504
2713
JHZ
JZ7
I YES. GO OUTPUT
EE60 E2F9
2714
LOOP
J26
I COLNT DOWN ANO TRY AGAIN
NEC_OtJTPlIT
PROC
NEAR
J SAYE REGISTERS
J23:
; GET STA.TUS
; TIME_ERROR
J24:
; INDICATE ERROR TO CALLER
J25:
XOO
Cx.cx
IN
AL.DX
; RESET THE COlWT
J26:
j
GET THE STATUS
System BIOS
A-39
LOC OBJ
LINE
EE62 EBE8
2715
EE64
2716
EE64 SA-Cit
EE66 62F5
2717
2718
EE68 EE
2719
EE69 59
EE6A SA
2720
2721
EE65 C3
2722
SOURCE
JMP
I ERROR CONO lTION
J24
J27:
; OUTPUT
MOV
I GET BYTE TO OUTPUT
I DATA PORT DFS)
Al..AH
MOV
OL.OFSH
OUT
pop
DX.AL
ex
POP
ox
I OUTPUT niE BYTE
I RECOVER REGISTERS
RET
I CY
=
0 FROH TEST INSTRUCTION
2723
NEe_OUTPUT
2724
2725
2.726
I --------------- ------------------- ------------------------------ -------I GET_PARt1
THIS ROUTINE fETCHES THE INDEXED POINTER FROM THE DISK_BASE
2727
BLOCK POINTED AT BY THE DATA VARIABLE DISK_POINTER. A BYTE FROM:
THU TABLE IS THEN I10VED INTO AH I THE INDEX OF THAT BYTE BEING
2726
2729
2730
ENDP
THE PARM IN BX
I
ENTRY --
ax = INDEX
2731
*
2732
OF BYTE TO BE FETCHED
2
IF THE LOW BIT OF BX IS ON, THE BYTE IS I/'I1EDIATELY OUTPUT
2733
TO THE NEe CONTROLLER
2734
2735
I
EXIT -AH
=
THAT BYTE FROM BLOCK
2736
,------------------------------------------------------------------------
EE6C
EE6C IE
2737
GET _PARM
2736
PUSH
OS
I SAVE SEGMENT
EE60 2BCO
2739
SUB
AX,AX
; ZERO TO AX
Ef6F 8E08
274t.
2741
MeV
DS,AX
ASSUME
DS:ABSO
EE71 C5367600
2742
LDS
2743
SHR
SI ,DIS~POINTER
BX,l
; POINT TO BLOCK
EE75 DIES
MeV
AH,[SI+BX)
; 6ET THE WORD
PROC
NEAR
fE77 6A20
2745
EE79 iF
2746
EE7,\ 72C5
EE7e C3
I DIVIDE
ex
BY 2, AND SET FLAG
I FOR EXIT
2744
POP
OS
I RESTORE SEGMENT
2747
ASSUME
DS:DATA
2748
Je
NEC_OUTPUT
RET
2749
; IF FLAG SET. OUTPUT TO CONTROLLER
I RETURN TO CALLER
2750
2751
GET_PARM
ENOP
1------------------------------------------------------------------------
2752
I SEEK
2753
2754
THIS ROUTINE WILL MOVE THE HEAD ON THE NAMED DRIVE TO THE
NAMED TRACK. IF THE DRIVE HAS NOT BEEN ACCESSED SINCE TliE
2:755
DRIVE RESET Cot1I'\ANtl WAS ISSUED, THE DRIVE WILL BE RECALIBRATED.
2756
I INPUT
2:757
2758
I
2:759
2760
I OUTPUT
lOll
!::
(CH)
= TRACK
DRIVE TO SEEK ON
TO SEEK TO
CY ::: 0 SUCCESS
2:761
CY
2.762
(AX) DESTROYED
!::
1 FAILURE -- DISKETTE_STATUS SET ACCORDINGLY
EE70
2763
2764
EE7D B001
2765
;-----.-----------------------------------------------------------------PRoe
SEEK
NEAR
MeV
EE7F 51
2:766
PUSH
ex
i
fE80 BACA
2767
MOV
CL,al
; GET DRIVE VALUE INTO CL
fE82 Oleo
Ef84 59
2:768
ROl
AL,CL
2769
pop
ex
; RECOVER TRACK VALUE
fE6S 84063EOO
2:770
TEST
AL.SEEK_STATUS
; TEST FOR RECAL REQUIRED
EE89 7513
2771
JHZ
AL,l
; ESTABLISH MASK FOR RECAL TEST
i
SAVE INPUT VALUES
SHIFT IT BY THE DRIVE VALUE
2:772
OR
J2.
SEEK_STATUS,AL
; NO_RECAL
EEBB 06063EOO
EESF 6407
2773
MOV
AH,07H
I RECALIBRATE COt1l1AND
E£91 E8ADFF
2774
CAlL
NEC_OUTPUT
; TURN ON THE NO RECAL BIT IN FLAG
EE94 BAH
2775
MOV
AH.OL
EE96 E8A8FF
2:776
CALL
NEC_OUTPUT
I OUTPUT THE DRIVE NUNBER
EE99 E87600
2777
CALL
CHK_STAT_2
EE9C 1229
2778
JC
J32
I GET THE INTERUPT AND SENSE INT STATUS
, SEEK_ERROR
Z779
2780
1----- DRIVE IS IN SYHCH WITH CONTROllER
J2:8:
EE9E
2781
2:78Z
EE9E B40F
2783
MOV
AH.OFH
EfAO E89EFF
2:784
CALL
NEC_OUTPlIT
27&5
MOV
AH.DL
EEAS E899FF
2786
CALL
NEC_OUTPUT
EfAS 6.6.E5
2787
MOV
AH.CH
fEAA E894FF
2:786
CAll
NEC_OUTPUT
EEAD E66200
2789
CALL
CHK_STAT_2
EEA3 BAH
2:790
Z791
A-40
System BIOS
I
SEEK TO TRACK
I SEEK Cot1t1AND TO NEC
I DRIVE NUMBER
I TRACK NUHBER
I GET ENDING INTERRUPT AND
;
SENSE STATUS
lOC OSJ
LINE
2:792
2793
SOURCE
; ----- WAIT FOR HEAD SETTLE
EEBD 9C
2794
PUSHF
EEBI BB1200
2795
HOV
BX.18
EEB4 E8B5FF
2796
CAL.l
GET_PARM
fEB7 51
2797
PUSH
CX
fE68
2798
I SAVE STATUS FLAGS
I GET HEAD SETTLE PARMETER
I SAVE REGISTER
J29:
; HEAD_SETTLE
1 HS lOOP
EEBS 892602
2799
MOV
tX,5S0
j
HBB OAE4
2800
OR
AH,AH
; TEST FOR TIME EXPIRED
EEBD 7406
2601
JZ
JlI
J30
J30:
EESF
Z802
EESF E2FE
2803
LOOP
EECI FEee
2804
DEC
AH
; DECREMENT THE CottfT
fEtl fBF3
2805
JHP
J29
; DO IT SOHE HORE
POP
ex
2806
EEtS
fEtS S9
2807
EEC6 90
2808
HC7
2809
EEt7 C3
J31:
o
RECOVER STATE
POPF
J32;
I SEEK_ERROR
RET
2610
2811
I DELAY FOR 1 ttS
SEEK
; RETURN TO CALLER
ENilP
2812
;-------------------------------------------------------------.----------
2813
; DHA_SETUP
2814
2815
THIS ROUTINE SETS UP THE OHA FOR READIWRITE/VERIFY OPERATIONS.
; INPUT
2816
(All
2817
2818
BYTE FOR THE DNA.
(AX) DESTROYED
2819
2820
= MODE
rES:BX) - ADDRESS TO READ/WRITE THE DATA
, OUTPUT
------------------------------------------------------------------------
;:
DNA_SETUP
EEC8
2821
EEce 51
2822
PUSH
EEC9 FA
282:3
CLI
EECA fbOC
2624
alIT
DHA+12.At
EECC 50
2625
PUSH
AX
EECD 58
2:82:6
POP
AX
EECE EbOB
DMA+ll.At
PROC
HEAR
CX
;. SAVE TIfE REGISTER
I NO MORE nrrERIWPTS
;. SET THE FIRST/lAST f / f
2:827
OUT
EEOO 6CCO
2828
HOV
AX,ES
;. GET THE ES VALUE
EED2 BI04
2829
HOV
Cl.4
; SHIFT COUNT
EE04 OKO
2830
ROL
AX,CL
EE06 8AE8
2631
I10V
CH.AL
;. GET HIGHEST NYBLE OF ES TO CH
EED8 24FO
2832
AND
At,OFOH
i ZERO THE LOW NYBBlE fROH SEGHEKT
EEDA 03e3
Ax.ax
; TEST FOR CARRY fROM ADDITION
i
OUTPUT THE HOOE BYTE
;. ROTATE LEFT
2:833
ADO
EEOC 7302
2834
JHe
J3l
EEDE FECS
2635
INC
eH
;. CARRY MEANS HIGH 4 BITS tlJST BE INC
EEEO
2836
EEEO 50
2837
PUSH
AX
; SAVE START ADDRESS
EEEI E604
J33:
Z638
OUT
DMA+4.Al
EEE3 8AC,,-
Z639
MOV
AL.AH
EEES E604
2840
OUT
DMA+4.AL
EEE7 8ACS
Z641
HOV
EEE9 240F
Z84Z
AHa
At.OFH
EEEB E681
Z843
OUT
081H"U
Al,CH
;. OUTPUT LOW ADDRESS
;: OUTPUT HIGH ADDRESS
; GET HIGH 4 BITS
; OUTPUT THE HIGH 4 BITS TO
;
2844
THE pAGE REGISTER
2645
2:846
i -----
DETERMINE COUHT
2:647
EEED 8AE6
2:848
I10V
AH.OH
EEEF 2ACO
2849
sua
At.AL
,
EEFI DIE8
2850
SHR
AX,1
;. SECTORS .. 128 INTO AX
EEF3 50
2851
PUSH
AX
MOV
EEF4 00060(1
;. NUtlBER OF SECTORS
TIMES 256 IUTO AX
2853
CALL
"""
; GET TliE BYTES/SECTOR PAR"
EEf7 E872FF
EEFA 8ACC
2854
I10V
CL,AH
, USE AS SHIFT CCIlR« (0=128. l=ZS6 ETC)
EEfC 58
2855
POP
AX
EEfO 03EO
2856
SHL
AX.CL
EEFf 48
2857
DEC
AX
J -I FOR DHA VAlUE
EfOO 50
2858
PUSH
AX
; SAVE COUNT VALUE
EFOt E605
; lOW BYTE OF COLtlT
2852
GET~PAJ!11
2859
OUT
DHA+S.AL
Ef03 8AC4
266.
I10V
AL.AH
EF05 E605
.861
OUT
DMA+5 ••U
~
nJLTIPLY BY CORRECT AI1DlIfT
; HIGH BYTE Of COltIT
Ef07 F8
2862
STI
H08 59
2863
POP
CX
o
; INTERRUPTS 8ACK ON
RECOVER COl.lfT VAlUE
EF09 58
2864
POP
AX
I RECOVER ADDRESS VALUE
HOA 03Cl
2865
ADO
AX.CX
; ADD. TEST FOR 64K OVERFLOW
EFOC 59
2866
POP
CX
j
EFOD B002
2667
MOV
Al.2
; HOOE FOR 8237
eyof E60.&.
2868
OUT
Df1A+IO.A.l
; INITIALIZE THE DISIEX
J
*
CURSOP~POSNJ
P4:
; LEt-lGTH OF BUFFER
PS:
• NO_PAGE
RET
FIt-I)_PQSITIQN
ENOP
------------------------------- ----------- ------
;
4002
; WFHTE_AC_CLlRRENT
4003
THIS ROUTINE WRITES THE ATTRIBlTTE
4004
AND CHARACTER AT THE CURRENT CURSOR
4005
POSITION
; INPUT
4007
(AH) ::: CURRENT CRT MODE
4(108
ISH) ::: DISPLAY PAGE
4009
I CX I ::: COUNT OF CHARACTERS TO WRITE
4010
IAU ::: CHAR TO WRITE
4011
(BL I ::: ATTRIBUTE OF CHAR TO WRITE
4012
IDS) ::: DATA SEGHENT
4013
I fS) ::: REGEN SEGMENT
4014
; GET ROW/COLUMN OF THU PAGE
; PAGE_LOOP
4001
4006
Z FOR WORD OFFSET
; OUTPUT
4015
NONE
4016
;------------------------------------------------
F3B9
4017
wrHTE~AC~CURRENT
F3B9 60FC04
4018
FlBC 72:06
4019
CH"
Je
F3BE 60FC07
4020
eHP
AH.7
F3Cl 7403
4021
JE
P.
AN.'
""DC
NEAR
I IS -THIS GRAPHICS
P.
I IS THIS BW CARD
F3C3 E9B201
4022
JMP
GRAPHICS_WRITE
F3C6
4023
F3C6 6AEl
4024
HOV
AH,BL
I GET ATTRIBUTE TO AH
Fle8 50
4025
PUSH
AX
I SAVE ON STACK
F1C9 51
F3eA E8DIFF
4026
4027
PUSH
CALL
ex
FIND_POSITION
; SAVE WRITE COUNT
flCD 8BFB
4028
HOV
DI.BX
I ADDRESS TO DI REGISTER
nCF S9
4029
POP
CX
I WRITE COUNT
F3DO 58
4030
POP
.X
I CHARACTER IN BX REG
P6:
; WRITE_AC_CONTINUE
System BIOS A-57
LOC OBJ
LINE
4031
nDl
SOURCE
P7:
4032
4033
j-----
WAIl FOR HORIZONTAL RETRACE
4034
F30l 8B166300
4035
MDV
DX.ADDR_6845
; GET BASE ADDRESS
nos
4036
.00
DX.6
I POINT AT STATUS PORT
83C206
4037
F30B
P8:
Floe EC
4038
IN
AL.DX
; GET STATUS
no';!
A80l
4039
TEST
Al.l
; IS IT LOW
nOB 75FB
4040
4041
JNZ
P6
F30C FA
; WA.IT UNTI L IT IS
I NO MORE INTERRUPTS
CLI
P9:
flOE
nOE EC
4042
4043
IN
Al,DX
; GET STATUS
F3DF A801
4044
TEST
Al,l
I IS IT HIGH
F3El 74FB
4045
JZ
P9
F3E3 BBel
4046
MOV
Ax.ax
F3E5 AS
4047
STQSW
F3E6 FB
4048
STI
F3E7 E2E8
4049
LOOP
P7
F3E9 E9D9fD
4050
JMP
VIDEO_RETURN
4051
; WAIT lINTI L IT IS
I RECOVER THE CHAR/ATTR
I PUT THE CHAR/ATTR
I INTERRUPTS BACK ON
A.S MANY TIMES AS REQUESTED
i
IoIRITE_AC_CLmRENT
ENDP
4052
; ---------------------------- ----------- ---------
4053
I WRITE_C_CURRENT
4054
THIS ROUTINE WRITES THE CHARACTER AT
4055
THE CURRENT CURSOR POSITION. A.TTRIBUTE
405&
UNCHANGED
4057
INPUT
4058
(AH 1
4059
(BH )
=
=
CURRENT CRT MOOE
DISPLAY PAGE
(CX l
= COUNT
'to&1
(ALI
= CHA.R
40&2
(DSI
=
=
40&0
4063
4064
(ES)
4066
4007
flEe 80FC04
4068
F3EF 7208
4069
F3Fl 80FC07
4070
F3F4 7403
4071
F3F6 E97FDl
4012
F3F9
4073
F3F9 50
4074
REGEN SEGMENT
; OUTPUT
4065
F3Ee
OF CHARA.CTERS TO ioIRITE
TO WRITE
DATA. SEGMENT
NONE
;-----------------------------------------------AH.4
C"P
JC
IS THIS GRAPHICS
PIO
C"P
JE
AH.7
IS THIS Bioi CARD
J"P
GRAPHICS_WRITE
PIO
..
PIO:
PUSH
; SAVE ON ST,l..CK
F3FA 51
4075
PUSH
CX
F3FB E8AOFF
4076
CALL
FIND_POSITION
OI,BX
SAVE WRITE COUNT
F3FE BBFB
4077
MOV
F400 59
4078
POP
CX
; WRITE COUNT
F401 58
4079
POP
6X
j
F402
40ao
4081
Pll:
4082
j-----
ADDRESS TO 01
BL HAS CHAR TO WRITE
WRITE_LOOP
WAIT FOR HORIZONTAL RETRACE
4083
F402 88166300
4064
F406 83C206
4065
F409
4086
HOV
ox • AODR_6845
I GET BASE ,l..ODRESS
.00
OX.Eo
I POINT AT STATUS PORT
P12:
F409 EC
4067
IN
AL.OX
I GET STATUS
F40A A801
40e8
TEST
AL.l
• IS IT LOW
F40C 75FB
4089
F40E FA
4090
J"Z
CLI
PlZ
F40F
4091
F40F EC
4092
IN
AL.DX
F41D A801
4093
TEST
AL.I
; WAIT UNTI L IT IS
I NO MORE INTERRUPTS
P13:
; GET STATUS
; IS IT HIGH
f412 74fB
4094
JZ
P13
• WAIT UNTIL IT IS
F414 8AC3
4095
MOV
AL.BL
I RECOVER CHAR
F416 AA
4096
STOSB
F417 FB
4097
STI
F418 47
4098
INC
01
F419 E2E7
4099
lOOP
Pll
F41B E9A7FD
4100
JMP
VIDEO_RETURN
4101
I INTERRUPTS BACK ON
; BUMP POINTER PAST ATTRIBUTE
,
AS MANY TIMES AS REQUESTED
WRITE_C_CURRENT ENDP
4102
; --------------------------- --- ---- ---- --------------------------
4103
; READ DOT
-- WRITE DOT
4104
THESE ROUTINES WILL WRITE A DOT. OR READ THE DOT AT
4105
THE INDICATED LOCATION
4106
EHTRY --
4107
A-58
I PUT THE CHAR/ATTR
System BIOS
OX
=
ROW (0-199)
(THE ACTUAL VAlUE DEPENDS QH THE MODE 1
LOC OBJ
LINE
SOURCE
4108
ex ::
4109
At. :: DOT VALUE TO WRITE (1.2 OR
COLUMN ( 0-6391 ( THE VALUES ARE HOT RANGE CHECKED)
'+
BITS DEPEf'«lING ON HOOE,
4110
REQ'D FOR WRITE DOT ONLY. RIGHT JUSTIFIED)
4111
BIT 7 OF AL=l INDICATES XOR TliE VALUE INTO THE LOCATIOH :
4112
os ::
4113
E5 :: REGEN SEGMENT
DATA SEGMENT
4114
4115
• EXIT
4116
4117
At.
= DOT
VALUE READ. RIGHT JUSTIFIED. READ ONLY
; ----------------------------------------------------------------
4118
ASSUI1E
CS;CODE.CS:OATA.ES:DATA
F41E
4119
F41E E83100
4120
CALL
R3
F421 268A.04
4121
MOV
AL.ES:lsIl
; GET TIlE BYTE
F424 22C4
4122
AND
AL,AH
) MASK OFF THE OTHER BITS IN TliE BYTE
READ_DOT
PROC
NEAR
, DETERMINE BYTE POSITION OF DOT
F426 02:EO
4123
SHl
Al.Cl
F428 BAtE
4124
NOV
CL.DH
I GET NUMBER OF BITS IN RESULT
F42:A D2eo
4125
ROl
AL.CL
j
412f>
JMP
VIDEO_RETLIRN
; RETlmN FRDM VIDEO 10
F42C E996FO
4127
I LEFT JUSTIFY THE VALUE
RIGHT JUSTIFY THE RESULT
ENIlP
4128
F42F
4129
F42:f SO
4130
PUSH
F430 50
4131
PUSH
WRITE_DOT
F431 E81EOO
4132
CALL
f434 OlES
4133
SHR
F436 22C4
4134
4135
ANII
F438 268AOC
F43B 56
4136
F43C F6C380
PROC
HEAR
"'"
""
I SAVE DOT V.t.LUE
;
TWICE
R3
i DETERMINE BYTE POSITION OF THE DOT
I SHIFT TO SET UP THE BITS FOR OlFTPUT
MOV
AL.CL
Al,AH
CL,ES:[SI I
POP
ax
; RECOVER XOR FLAG
4137
TEST
BL.80H
iISITON
F43f 7500
4138
JNZ
4139
NOT
R'AH
; YES. XOR THE DOT
F441 FbD't
F443 22C(
4140
AND
CL.AH
F445 OACI
4141
OR
Al,CL
F447
4142
f447 268804
4143
4144
MOV
ES:[SIJ,AL
; RESTORE THE BYTE IN HE/'fORY
F44A 58
POP
F448 E977FD
4145
JMP
""
; RETURN FROM VIDEO 10
Rl;
I STRIP OFF THE OTHER BITS
; GET THE CURRENT BYTE
I SET THE MASK TO REMOVE THE
j
INDICATED BITS
I OR IN THE NEW VALUE OF THOSE BITS
I FINISH_DOT
VIDEO_RETURN
F44E
4146
F44E 32Cl
4147
XOR
AL,CL
I EXCLUSIVE OR THE DOTS
F450 EBFS
4148
JMP
Rl
i
R2:
FINISH UP THE IoIOIITlHG
4149
WRITE_DOT
4150
1-------------- -------- ----------------------------------
4151
; THIS SUBROUTINE DETERMINES THE REGEN 8YTE LOCATION
4152
I OF THE INDICATED ROW COLUt1N VALUE IN GRAPHICS t1ODE.
4153
ENDP
ENTRY --
4154
OX
=
CX
= COUJrtN
ROW VALUE (0-199)
4155
I
4156
I EXIT --
VALUE (0-639)
51
= OFfSET
4158
AH
=
4159
CL == BITS TO SHIFT TO RIGHT JUSTIFY THE NASK IN AH
4157
F45Z
; XOR_DOT
4160
4161
I
4162
R3
F452: 53
4163
F453 50
4164
INTO REGEN 8UFFER FOR BYTE OF INTEREST
MASK TO STRIP OFF THE BITS OF INTEREST
DH == I BITS IN RESULT
PRoe
NEA.R
PUSH
pUSH
BX
; SAVE BX DURING OPERATION
AX
; WIll SAVE Al DURING OPERATION
4165
416f>
4167
; ----- DETERMINE 1ST BYTE IN IDICATED ROW 8Y HUL TIPL YING ROW VAlUE BY 40
j----- ( lOW BIT OF ROW DETERMINES EVEN/ODD, 60 BYTES/ROW
4168
F454 602.8
4169
MOV
Al.40
F456 52
4170
PUSH
ox
F457 BOE2FE
4171
ANO
DL.OFEH
• STRIP OFF OOD/EVEN BIT
F45A F6E2:
4172:
HUl
Dl
; AX HAS ADDRESS OF 1ST BYTE
4173
F45C SA
F450 F6C2:01
4174
4175
F460 7403
4176
F462: 05002:0
4177
F465
4178
F465 BBFO
4179
F467 58
4180
F468 88D1
4181
4182
4183
; SAVE ROW VALUE
;
OX
I RECOVER IT
CL.l
I TEST FOR EVEN/ODD
JZ
ADD
••
AX,2000H
R"i;
I JlJf1P IF EVEN ROW
; OFFSET TO LOCA.TION OF 000 ROWS
; EVEN_ROW
51.AX
; HOVE POINTER TO SI
POP
AX
I RECOVER AL VALUE
I10V
DX,ex
I COll.ltfl VALUE TO
MOV
J-----
OF INDICATED ROW
POP
TEST
ox
DETERMINE GRAPHICS HODE CURRENTLY IN EFFECT
4184
System BIOS A-59
LINE
LOC OBJ
4185
SOURCE
,--- - -------------------------------------------- ----------------
4186
; SET UP THE REGISTERS ACCORDING TO TIiE MODE
4187
I
CH
4188
CL
4189
BL
4190
4191
8M
= MASK FOR LOW Of COllJ1N ADDRESS ( 713 FOR HIGHIHED RES)
= • Of ADDRESS BITS IN COLUMN VALUE I 3/2 FOR HIM)
= MASK TO SELECT BITS fROH POINTED BYTE (80H/COM fOR HIM I
= HUMBER OF VAllO BITS IN POINTED BYTE ( lIZ FOR HIM)
; ---------- ---------------- --------------------------------------
4192
BX,leaH
F4ftA BBC002
401H
MOV
F46D 890203
4194
MOV
CX.302H
F470 803E490006
4195
eMP
CRT_MOOE.6
F475 7206
41%
JC
OS
4197
MOV
BX,180H
4198
MOV
eX.703H
F477 BB8001
F47A 890307
j
SET PARMS FOR MED RES
; HAHOLE IF MED ARES
; SET PAlms FOR HIGH RES
4199
42.00
; ----- DETERMINE BIT OFFSET IN BYTE FROM COLUMN H.6.SK
42.01
420Z
'47D
R5:
42.03
F47D Z2EA
.NO
; ADDRESS OF PEL WITHIN BYTE TO CH
CH.DL
4204
4205
j-----
DETERMINE BYTE OFFSET FOR TtlIS LOCATION IN COLUMN
4206
I SHIFT BY CORPIECT AMOUNT
F47F OlEA.
4207
SHR
DX,CL
F481 D3F2.
4208
ADO
51,OX
; INCREMENT THE POINTER
4209
MOV
DH,BH
; GET THE ,
F483 8AF7
OF BITS IN RESULT TO DH
4210
4211
;----- MULTIPLY BH (VALID BITS IN BYTE) BY CH IBIT OFFSET)
4212.
F465 2AC9
4213
F487
4214
F487 DoC8
42.15
SUB
CL,CL
; ZERO INTO STORAGE LOCATION
ROR
AL.l
;
;
4216
LEFT JUSTIFY THE VALUE
IN Al {FOR WRITE I
F489 02CO
4217
.00
CL,CH
; ADD IN THE BIT OFFSET VALUE
F488 FEef
4218
OEC
BH
j
F480 7SF8
4219
LOOP CONTROL
ONZ
R.
F48F 8AE3
4221
HOV
AH,BL
; GET HASK TO .6.H
F491 D2EC
4222
SHR
AH,CL
; MOVE THE HASK TO CORRECT LOCATION
F493 58
4223
pcp
BX
; RECOVER REG
F494 C3
422:4
RET
i ON EXIT, Cl HAS SHIFT COUNT
;
4220
42.2:5
R3
j
TO RESTORE BITS
RETURN WITH EVERYTHING SET UP
ENDP
422ft
; --- -------------- -------- ------ --------- ------------------------
422:7
; SCROLL UP
4228
4229
TIns ROUTINE SCROLLS UP THE INFORMATION ON THE CRT
; ENTRY
4230
CH,Cl
=
423l
DH ,Ol
= lOWER
BH
4233
42:34
RIGHT CORNER OF REGION TO SCROLL
VALUE FOR BLANKED LINES
LINES TO SCROLL (Al=O MEANS BLANK THE ENTIRE
FIElD)
4236
4237
DS
= DATA
ES
= REGEN
SEGMENT
SEGMENT
EXIT
NOTHING, THE SCREEN IS SCROLLED
42:39
4240
= FIll
Al = "
4,35
4238
UPPER LEFT CORNER OF REGION TO StROLL
BOrn OF THE ABOVE ARE IN CHARACTER POSITIONS
4232
j - ---------------------- ------------- ---- ---- --------- -----------
F495
4241
PROC
F495 8A06
4242
BL,Al
• SAVE LINE COUNT IN BL
F497 8BCl
NEAR
4243
AX,CX
; GET UPPER lEFT POSITION INTO AX REG
4244
4245
; ----- USE CHARACTER SUBROUTINE FOR POSITIONING
42:46
;----- ADDRESS RETURNED IS MULTIPLIED BY 2 FROM CORRECT VAlUE
42:47
F499 £66902
4248
F4<,JC BBF6
4249
HOV
DI,AX
; SAVE RESULT AS DESTINATION ADDRESS
4250
4251
1----- DETERMINE SIZE OF WIHDOW
4252
F49E 2B01
SUB
42:53
OX,CX
F4AO 61C20101
4254
AOO
OX,lOIH
• ADJUST VALUES
F4A4 00E6
4255
SAL
DH.I
; MULTIPLY. ROWS BY "
SAl
DH,I
;
4256
F4.A.6 OOE6
SINCE 8 VERT DOTS/CHAR
4257
ANO EVEN/ODD ROWS
4258
4259
j-----
DETERMINE CRT HODE
4260
F4AB 803E490006
A-60
4261
System BIOS
eMP
; TEST FOR MEDIIJ'I RES
LOC OBJ
f4AD 7304
LINE
SOURCE
JHe
4262
R7
4263
4264
1----- MEDII.J1 RES UP
'4265
*
F4AF DOE2
4266
SAL
J • COLUMNS
F481 DIE7
4267
4268
4269
SAL
I OFFSET *2 SINCE 2 BYTES/CHAR
2:. SINCE 2: BYTES/CHAR
1----- DETERMINE THE SOURCE ADDRESS IN THE BUFFER
4270
I FIND_SOURCE
R7:
F4B3
4271
F4B3 Db
4272
4273
PUSH
pop
OS
4274
4275
sue
CH.CH
SAL
BL.l
F4B9 DOE3
42:76
SAL
BL.l
F4BB 742:0
4277
RIl
I If ZERO. THEN BLANK ENTIRE FIELD
F46D 8AC3
AL.BL
J GET Nt..tIBER OF LINES IN AL
MOV
Aft.eo:
; 80 BYTES/ROW
F4tl f6E4
4278
4279
4280
JZ
MOV
MUL
F4e3 BSF7
4261
MOV
F4es 03FO
4282
ADD
AH
Sl,DI
SI,AX
,
F4e7 8AE6
4283
4284
MOV
F4B4 IF
f4SS 2AED
F4S7 DOE]
F4BF 8450
F4C9 2AE3
ES
J GET SEGMENTS BOTH POINTING TO REGEN
AH.DH
AM.aL
sue
I ZERO TO HIGH OF COUNT REG
; tRJL TIPL Y NUt1BER OF LINES BY 4
; DETERMINE OFfSET TO SOURCE
J SET UP SOURCE
ADD IN OFFSET TO IT
J tM1BER OF ROWS IN FIELD
; DETERMINE NUMBER TO HOVE
4285
4286
1----- LOOP THROUGH. MOVING ONE ROW AT A TIME. BOTH EVEN AND ODD FIELDS
4287
F4te
4Z68
F4te E88000
F4CE BIEEBOlF
4289
4290
CALL
SUB
SI.20DOH-BO
F4D2 81EFBOIF
4291
sue
DI.20DOH-80
F4D6 FEee
429Z
4293
4294
DEC
AH
F4DS 75Fl
F40A
4295
4296
4297
F4DA 8AC7
4296
F4DC
4299
4300
4301
F4ec E88800
F40F 81EFBOIF
F4E3 FEee
F4E5 75FS
F4E7 E90BFC
F4EA
F4EA BADE
R17
R9:
J CLEAR_ENTRY
HOV
AL.BH
J ATTRIBUTE TO FILL WITH
CALL
SUB
R18
01. ZOOOH-BO
BL
; CLEAR THAT ROW
RIO:
OEC
JHZ
4308
4309
JNP
HOV
BL.DH
J SET BLANK COUNT TO
R.
I CLEAR THE FIELD
R11:
J
---- ------------------------------- -- ---------.----- -- ---------
;
; SCROLL DOWN
4313
; ENTRY
THIS ROUTINE SCROllS DOWN THE INFORMATION ON THE CRT
CH.CL '" UPPER LEFT CORNER OF REGION TO SCROLL
DH.DL
LOWER RIGHT CORNER OF REGION TO SCROLL
=
4315
4316
BOTH OF THE ABOVE .... RE IN CHARACTER POSITIONS
BH = FILL VALUE FOR BLANKED LINES
AL = I LINES TO SCROLL (AL::o-Q MEANS BLANK TliE ENTIRE
4317
431B
4319
FIELD I
OS
ES
NOTHING. THE SCREEN IS SCROLLED
F4EE fO
4326
43Z7
MOV
F4Fl 8BC2
43Z6
MOV
F4F3 f60FOZ
4331
4332
4333
F4F6 BBFS
4334
4335
4336
F4F8 ZeDl
4337
4338
SEGMENT
= REGEN SEGMENT
; ---------------------------------------------------------------GRAPHICS_DOIol>l
PROC
NEAR
, SET DIRECTION
STO
F4EF 8A08
4329
433D
= DATA
; EXIT
43Z3
43Ztt
4325
EVERYTHING IN FIELD
ENDP
4314
F4EE
I EVERYTHING DONE
J BLANKJIELD
4310
4311
4312
4320
4321
43Z2
; POINT TO NEXT LINE
; NUMBER OF LINES TO FILL
; CLEAR_LOOP
R10
VIDEO_RETURN
4307
F4EC fBEC
; HOVE TO NEXT ROW
J NUMBER OF ROWS TO HOVE
I CONTINUE TILL ALL HaVED
••
JNZ
I HOVE ONE ROW
; ----- FILL IN THE VACATED LINE( S I
4302
4303
4304
4305
4306
; ROW_LOOP
R8:
J-----
BL.AL
AX.DX
; SAVE LINE COUNT IN BL
I GET LOWER RIGHT POSITION INTO AX REG
USE CHARACTER SUBROUTINE FOR POSITIONING
,----- ADDRESS RETl.II;!NED IS MULTIPLIED BY 2 FROM CORRECT VALUE
ItOV
DI.AX
J SAVE RESULT AS DESTINATION ADDRESS
;----- DETERMINE SIZE OF WINDOW
SUB
OX.CX
System BIOS
A-61
LINE
LOC OBJ
SOURCE
f4FA 81C20101
4339
ADD
F4fE OOE6
4340
SAL
DX.IOIH
OH,I
SAL
DH.l
4341
4342
4343
FSOD 00E6
4344
j -----
I ADJUST VALUES
; MULTIPLY. ROWS 5Y 4
,
,
SINCE 8 VERT DOTS/CHAR
At«)
EVEN/ODD ROWS
DETERMINE CRT MODE
4345
F502 803E490006
4346
eMP
CRT_MOOE .6
, TEST FOR HEDIUH RES
f507 7305
4347
.lHe
R12
; FIND_SOURCE_DOWN
4348
4349
J ----- MEDIUM RES DOWN
4350
F509 00E2
4351
F50B DIE7
4353
F50D 47
Dl.I
; I COLUMNS
2:. SINCE
2: BYTES/CHAR (OffSET OK I
SAL
01.1
01
I OFFSET *2 SINCE 2: BYTES/CHAR
INC
435'"
4355
4356
*
SAL
4352
,
; POINT TO LAST BYTE
; ----- DETERMINE THE SOURCE ADDRESS IN THE BUffER
4357
R12:
F50E
4358
FSOE 06
4359
PUSH
ES
J FIND_SOURCE_DOWN
J BOTH SEGMENTS TO REGEN
F50F IF
4360
POP
OS
F510 ZAEO
4361
SUB
CH,CH
I ZERO TO HIGH OF
FS12 81C7FOOO
4362
ADD
D1,240
; POINT TO LAST ROW OF PIXELS
F516 DOn
; MULTIPl Y NUMBER OF LINES BY 4
CO~T
REG
4363
SAL
FSIB Don
4364
SAL
F51A 742E
4365
JZ
F51C eAC]
4366
Mav
Bl.l
BL.l
R,.
Al,BL
FSIE 8450
4367
HOV
AH,eo
I 80 BYTES/ROW
; DETERMINE OFFSET TO SOURCE
i
IF ZERO. THEN BLANK ENTIRE fIELD
; GET HUMBER OF LINES IN At
F5Z0 F6E4
4368
NUL
F522 88F7
4369
Mav
AH
SI,O!
F524 2BFO
4370
SUB
51.AX
F526 8AE6
4371
Mav
AH,DH
i
SUB
AH,eL
; DETERMINE NUMBER TO MOVE
F528
un
4372
; SET UP SOURCE
,
SUBTRACT THE OFFSET
NUMBER OF ROWS IN FIELD
4373
4374
; ----- lOOP THROUGH. MOVING ONE ROW AT A TIME. BOTH EVEN AND ODD FIELDS
4375
Rl3:
F52A
4376
F5ZA E82100
4377
CALL
F52D 81EE5020
4378
SUB
R'7
51.20ooH+80
F531 BIEF5020
4379
SUB
DI,2000H+80
F535 FEee
4380
DEC
AN
; NUMBER Of ROWS TO I10VE
F537 75Fl
4381
JHZ
""
; CONTINUE Tl LL All MOVED
i ROW_lOOP _DOWN
4382
4383
I MOVE ONE ROW
; MOVE TO NEXT ROW
;----- FILL IN THE VACATED LINE{S)
4364
F539
4385
F539 8AC7
4386
F53B
4387
F536 E82900
4388
R14:
; CLEAR_ENTRY_DOWN
HOV
AL.BH
; ATTRIBUTE TO FILL WITH
CALL
RIC
; CLEAR A ROW
R15:
i CLHR_LOOP _DOWN
F53E 81EF5020
4369
SUB
DI.2000H+80
• POINT TO NEXT LINE
F542 FECB
4390
DEC
6L
; NUMBER OF LINES TO FILL
F544 75F5
4391
JHZ
R'5
F546 Fe
4392
CLO
F547 E976FC
4393
JMP
VIDEO_RET~H
F54A
4394
HOV
.,.
F54A MOE
RI6:
4395
JMP
4397
4398
; EVERYTHING DONE
; 6L....NKJIELO_DOWN
4396
FS4C E6E6
; CLEAR_LOOP_DOWN
; RESET THE DIRECTION FLAG
GRAPHICS_DOWN
Bt.DH
; SET BLANK COUNT TO EVERYTHING
,
i
IN FIELD
CLEAR THE FIELD
ENDP
4399
4400
;----- ROUTINE TO MOVE ONE ROW Of INFORMATION
4401
FS4E
4402
PRoe
NEA.R
FS4E 8ACA
4403
Mav
CL.Ol
F550 56
440.
PUSH
51
F551 57
4405
PUSH
01
; SAVE POINTERS
F552 F3
4406
REP
Movse
~
F554 SF
4407
PDP
F555 5E
4408
POP
01
51
F556 81C60020
4409
ADD
5I.2000H
F5SA 81C70020
4410
ADD
OI.2000H
F55E 56
4411
PUSH
F55F 57
4412
PUSH
51
01
i SA.VE THE POINTERS
FS60 8ACA
4413
MOV
(l.Ol
i COUNT BACK
F562 F3
4414
REP
Hovse
; HOVE THE 000 FIE LD
R'7
; NUHBER OF BYTES IN THE ROW
MOVE THE EVEN FIELD
F553 A4
A-62
System BIOS
; POINT TO THE ODD FIELD
LaC OBJ
LINE
SOURCE
F563 A4
F564 SF
4415
pop
FS65 SE
4416
4417
POP
RET
4416
ENDP
F5b6 C3
"17
01
SI
J POINTERS BACK
RETURN TO CALLER
i
4419
4420
1----- CLEAR A SINGLE ROW
4421
R18
PRoe
NEAR
MOV
Cl,OL
;: NUteER OF B'f'TES IN FIELD
PUSH
01
i
51058
; STORE THE NEW VALUE
'5<>7
4422
F567 8AC.
F5b? 57
4423
4424
F:S6A F3
4425
REP
4426
4427
POP
ADD
SAVE POINTER
f56B A.A
r571 57
4428
F572 BACA
4429
MOV
01
DI.2000H
01
CL.Ol
F574 F3
4430
REP
5T058
rS76 SF
4431
POP
01
F577 C3
4432
4433
Rl8
4434
; ----------------------------------------------------------------
4435
• GRAPHICS WRITE
F56C SF
F56D 81C70020
PUSH
POINTER SACK
; POINT TO OOD FIELD
fILL THE ODD FIlELD
F57S AA
RET
; RETURN TO CALLER
ENOP
4436
THIS ROUTINE WRITES THE ASCII CHARACTER TO THE
4437
CURRENT POSITION ON THE SCREEN.
4438
ENTRY
4439
.u :;:
4440
BL :;:: COLOR ATTRIBt1TE TO BE USED fOR FOOEGROIAI) COLOR
CHARACTER TO WRITE
IF BIT 7 IS SET. THE CHAR IS XOR' 0 INTO THE REGEN
4441
4442
BUFFER (0 IS USED FOR THE BACKGROUND COLOR)
4444
ex '; NUMBER OF CHARS
OS = DATA SEGMENT
4445
ES
4443
4446
f
=
TO WRITE
REGEN SEGMENT
EXIT
4447
NOTHING IS RETURNED
4448
4449
; GRAPHICS READ
4450
THIS ROUtINE READS THE ASCII CHARACTER AT THE cURRENT
4451
CURSOR POSITION ON lltE SCREEN BY MATCHING THE DOTS ON
4452
THE SCREEN TO THE CHARACTER GENERATOR COOE POINTS
4453
ENTRY
4454
4455
HONE
( 0 IS ASSl.It1ED AS THE BACKGROlW COLOR
I EXIT
.u :;:
4456
4457
CHARACTER READ AT THAT POSITION (0 RETURNED IF
NONE FOUND I
4458
4459
FOR BOTH ROUTINES. THE IMAGES USED TO FORI't CHARS ARE
4460
CONTAINED IN ROH FOR THE 1ST 128 CHARS.
4461
IN THE SECOND HALF I THE USER I'IUST INITIALIZE THE VECTOR AT
4462:
I
TO ACCESS CHARS
INTERRUPT lFH (LOCATION OQ07CHJ TO POINT TO THE USER
4463
SUPPLIED TABLE OF GRAPHIC IHAGES (6X8 BOXES).
4464
FAILURE TO DO
so
WILL CAUSE IN STRANGE RESULTS
4465
4466
; -- - - - -- - -- - - ------ --- -- ---- - - ---------- ----- - - - ----- - - --- -- ----ASSLtlE CS:CODE,DS:DATA,ES:OATA
F57a
4..7
GRAPHICS_WRITE
F57S 8400
4468
HOV
AH,O
I ZERO TO HIGH OF CODE POINT
F57A 50
4469
PUSH
IV<
I SAVE CODE POINT VALUE
PROC
NEAR
4lt70
4471
;----- DETERMINE POSITION IN REGEN BUfFER TO PUT
cooe
POINTS
4472
F57S E8MOl
4473
FS7E 88F8
4474
CALL
526
HOV
OI,AX
FIND LOCATION IN REGEN BUFFER
I REGEN POINTER IN ot
I
4475
4476
;----- DETERMINE REGION TO GET CODE POINTS FROM
4477
4478
POP
AX
I RECOVER CODE POINT
F5S1 3e60
447.
CM"
ALI80H
I IS IT IN SECOND HALF
F58] 7306
4480
JAE
Sl
I YES
F580 58
4481
4482
f58S BE6EFA
44.'
;----- IMAGE IS IN FIRST HAlF, CONTAINED IN ROM
HOV
SI.OFA6EH
F5B8 DE
4485
PUSH
CS
F589 EBOF
4486
JHP
SHORT 52
4484
; SAVE SEGMENT ON STACK
4487
4488
;----- IMAGE IS IN SECOND HALF. IN USER RA.N
System BIOS A-63
LOC OBJ
LINE
SOURCE
4489
4490
FS8B
51:
i EXTEND_CHAR
F58B 2C80
4491
SUB
Al,8DH
i ZERO ORIGIN FOR SECOND HAlF
F58D IE
4492
PUSH
DS
I SAVE DATA POINTER
F58E 2BF6
4493
SUB
51,SI
F590 aECE
4494
MOV
DS,SI
4495
ASSUHE
DS:ABSO
F5'n: C5367COO
449&
LOS
51,EXT_PTR
I GET THE OFFSET OF THE TABLE
F596 aCOA
4497
MOV
OX.OS
j
GET THE SEGMENT OF THE TABLE
4498
ASSUME
DS:DATA
4499
4500
POP
DS
j
RECOVER DATA SEGMENT
PUSH
DX
; SAVE TABLE SEGMENT ON ST.t.CK
FS9B IF
F599 52
4501
4502
I ESTABLISH VECTOR ADDRESSING
i ----- DETERHINE GRAPHICS HODE IN OPERATION
4503
; DETERHINE_MODE
52:
F59A
4504
F59A OlEO
4505
SAL
F59C DIED
F59E OlEO
4506
4507
FSAO 03FO
AX.!
I MUl TIPL Y CODE POINT
SAL
AX.1
I
SAL
AX.l
4508
ADD
51.AX
FSA2 803£490006
4509
CMP
F5A7 IF
4510
POP
OS
I RECOVER TABLE POINTER SEGMENT
F5A8 722C
4511
JC
57
I TEST FOR MEDIUM RESOLUTION MODE
VALUE BY
a
I 51 HAS OFFSET OF DESIRED CODES
CRT_MODE .6
4512
4513
;----- HIGH RESOLUTION HODE
4514
F5AA
4515
F5AA 57
4516
PUSH
DI
I SAVE REGEN POINTER
FSAB 56
4517
P1.iSH
SI
I SAVE CODE POINTER
MOV
DH,4
; NUMBER OF TIMES THROUGH LOOP
FSAC B604
4518
F5AE
4519
F5A.E At
4520
53:
I HIGH_CHAR
54:
LooSB
; GET BYTE FROM CODE POINTS
F5AF F6C380
4521
TEST
BL,80H
; SHOULD WE USE THE FUNCTION
F5B2 7516
4522
JHZ
56
I
FSB4 A.A.
4523
STOSB
F5B5 AC
452:4
LODSB
F5B6
4525
TO PUT CHAR IN
I STORE IN REGEN BUFFER
55:
MOV
F5B6 268885FFIF
4526
F5B8 83C74F
452:7
AOO
01.79
i
F5BE FECE
4528
OEC
DH
; DONE WITH LOOP
FSCO 75EC
4529
JNZ
S4
FSC2 Sf
4S30
pop
51
F5C3 SF
4531
POP
DI
I RECOVER REGEN POINTER
F5C4 47
4532:
INC
01
I POINT TO NEXT CHAR POSITION
F5C5 E2E3
4S33
LOOP
S3
I MORE CHARS TO WRITE
FSC7 E9FBFB
4534
JMP
VIDEO_RETLRN
FSCA
4S3S
F5CA 2:632:0S
4536
XOR
AL,ES:(OIl
FSCD AA
4537
STOSB
FSCE AC
4538
LooSB
FSCF 2.63285FFIF
4S39
XOO
AL,ES: (OI+2000H-l)
JMP
55
FS04 EBEO
ES:(OI+ZOOOH-l] ,AL
; STORE IN SECOND HALF
MOVE TO NEXT ROW IN REGEN
56:
4540
I EXCLUSIVE OR WITH CURRENT
; STORE THE CODE POINT
; AGAIN fOR ODD FIelD
I BACK TO MAINSTREAM
4541
4542
; ----- MEDIUM RESOLUTION WRITE
4543
F5D6
4544
F50f:, 8A03
4545
S7:
MOV
F508 DIE?
4546
SAL
01,1
; OFFSET*2 SINCE 2 BYTES/CHAR
F50A E80100
4547
CALL
Sl9
; EXPAND BL TO FULL WORD Of COLOR
FSDO
4548
• MED_RES_WRITE
DL,BL.
; SAVE HIGH COLOR BIT
58:
; HED_CHAR
F500 57
4549
pUSH
DI
; SAVE REGEN POINTER
FSDE 56
4550
PUSH
SI
I SAVE THE CODE POINTER
f5DF B604
4551
MeV
OH,4
I NUMBER OF lOOPS
S9:
FSEI
4552
F5El AC
4553
LOOSB
FSE2: ESOEOO
4554
CALL
S2l
I DOUBLE UP ALL THE BITS
FSES 23C3
4555
AND
Ax.ex
,
; GET CODE POINT
• CONVERT THEM TO FOREGROUND
4556
COLOR ( o BACK )
FSE7 F6C280
4557
TE5T
DL,80H
; IS THIS XOR FlmCTION
F5EA 7407
4558
JZ
SlD
; NO. STORE IT IN A.S IT IS
FSEC 263225
4559
XOR
AH,ES:IDIl
FSEF 26324501
4560
xc.
Al.ES: 101+1
F5F3
4561
F5F3
268&2~
FSF6 26884501
4563
MeV
MOV
F5FA AC
4564
LOO 58
F5FB E8C500
4565
CALL
A-64
i
J
DO FUNCTION WITH HALF
I AND WITH OTHER HA.LF
S10:
4562
System BIOS
ES:IDIJ.AH
ES:[DI+iJ.AL
I STORE FIRST BYTE
f STORE SECOND BYTE
; GET CODE POINT
S2l
LOC OBJ
LINE
SOURCE
; CONVERT TO COLOR
I AGAIN. IS THIS XOR FUNCTION
F5FE 23C3
4566-
AND
AX,BX
f600 F6C280
4567
TEST
DL,60H
F603 740A
4568
JZ
f6D5 2632A50020
F60A 2632850120
4569
4570
XOR
X,",
511
AH. ES: [DI+2000H I
Al. ES: [OI+2001H)
F60F
4571
F60F 2686ASOO20
4572:
I10V
fS: [DI+2DOOH ,AH I
F614 2688650120
4573
4574
, NO. JUST STORE THE VALUES
I FUNCTION WITH FIRST HALF
j
ANO WITH SECOND HALF
511:
MOV
ES: (OI+2000H+ll,.ll
5 STORE IN SECOND PORTION OF BUFFER
ADO
01,80
J POINT TO NEXT lOCA TICH
4575
4576
DEC
OH
JNZ
F620 5f
4577
POP
F6Zl SF
4578
4579
POP
59
51
01
01'
F61983(750
F61C FEtE
F61E 75Cl
F622 47
F623 47
F624 E2B7
F626 E99CFB
4580
INC
INC
4561
LOOP
4562
JHP
4583
GRAPHICS_WRITE
4564
4585
;
; GRAPHICS READ
4566
; ------
F629
4587
GRAPHICS_READ
F629 E8D600
4588
CALL
F6ZC 8BFO
4589
HOV
F6ZE S3EeD8
4590
Sill
I f!:HP GOING
I RECOVER CODE PONTER
I RECOVER REGEN POINTER
I POINT TO NEXT CHAR POSITION
01
; t10RE TO WRITE
58
VIDEO_RETURN
ENDP
------------------------------- -------- --
...
PROC
NEAR
I CONVERTED TO OFFSET IN REGEN
SI.AX
j
SP.8
; ALLOCATE SPACE TO SA.VE THE
;
4591
F631 8BEt
4592
I10V
SAVE IN SI
READ CODE POINT
, POINTER TO SAVE AREA
BP.SP
4593
4594
;----- DETERMINE GRAPHICS MODES
4595
F633 803£490006
4596
CHP
F638 06
4597
PUSH
ES
F639 IF
4598
POP
OS
; POINT TO REGEN SEGMENT
F63A nlA
4599
JC
513
j
CRT_HOllE .6
MEOIlIt RESOLUTION
4600
4601
;----- HIGH RESOLUTION RUD
4602
4603
;----- GET VALUES FROM REGEN BUFFER
AN)
CONVERT TO CODE POINT
4604
F63C 6604
4605
F63E
4606
F63E
HOV
DH.4
i tU'fBER OF PA.SSES
SIZ:
4607
HOV
Al,{SI]
I GET FIRST BYTE
F640 884600
4608
MOV
IBP] ,,U
; SAVE IN STORAGE AREA
F643 45
4609
INC
BP
• NEXT LOCATION
F644 8A8400Z0
4610
I10V
Al.lsI-tZOOOHI
; GET LOWER REGION BYTE
F648 884600
4611
HOV
(BPI,AL
; ADJUST JKl STORE
F64B 45
....
f64C 83t650
f64F FECE
F6;1 7SEB
F653 E81790
INC
461Z
4613
4615
4616
BP
ADD
51.80
DEC
DH
I
JNZ
512
; DO IT SOME HaRE
I POINTER INTO REGEN
JMP
SIS
I GO MATCH THE SAVED CODE POINTS
LOOP CONTROL
4617
4618
1----- MEOIUH RESOLUTION READ
4619
F656
462:0
F656 OlE6
46,1
SAL
51.1
1 OFF5ET*2 SINCE 2 BYTES/cHAR
F658 B60,,"
4622
513:
HOV
DH,4
, NUI1BER OF PASSES
F6SA
4623
CAll
523
ADO
5I.2000H
; GO TO LOWER REGION
CALL
; ADJUST POINTER BACK INTO UPPER
J MED_RES_READ
514:
F6SA E88800
4624
F650 81C60020
46Z6
F661 E88100
4627
F664 81EEBOIF
4628
SUS
523
SI. ZOOOH-80
F668 FEeE
4629
DEC
OH
F66A 7SEE
4630
JNZ
51'
46,5
i
I
GET PAIR BYTES FROM REGEN
INTO SINGLE SAVE
; GET THIS PAIR INTO SAVE
; KEEP GOING UNTIL ALL 8 DONE
4631
4632
; ----- SAVE AREA. HAS CHARACTER IN IT. HATCH IT
4633
F66C
4634
F66t BF6EFA90
4635
515:
j
HOV
PUSH
OI.OFFSET CRT_CHAR_GEN
FIND_CHAR
1 ESTABLISH ADDRESSING
F670 DE
4636
F671 07
4637
POP
ES
; COOE POINTS IN CS
F672 B3EDOS
4638
SUB
BP.8
I
HOV
SI.BP
CS
4639
I
F675 8BF5
4640
F677 Fe
4641
CLO
F678 BODO
4642
I10V
A~JUST
POINTER TO BEGINNING
OF SAVE AREA.
; ENSURE DIRECTION
Al.O
; CWREHT CODE POINT BEING MATCHED
System BIOS A-65
LOC OBJ
LINE
SOURCE
516:
F67A
4643
f67A 16-
4644
55
I ESTABLISH ADDRESSING TO STACK
F67B IF
ft.7e 6"8000
4645
pop
OS
; FOR THE STRING COMPARE
4646
MOV
OX.126
; NUMBER TO TEST AGAINST
F67F
4647
PUSH
517:
F67F 56
4648
PUSH
SI
I SAVE SAVE AREA POINTER
F6BO 57
4649
PUSH
DI
I SAVE CODE POINTER
F6BI 890800
4650
MOV
ex.s
; t-M1BER OF BYTES TO MATCH
F6B4 F3
4651
REPE
CMPS8
I COMPARE THE 8 BYTES
F68S Ab
F686 SF
4652
pop
F687 SE
465l
POP
SI
F688 741E
4654
JZ
518
; RECOVER THE POINTERS
DI
I IF ZERO FLAG SET. THEN MATCH OCCURRED
Fb8A FEtO
4655
INC
AL
i HO MATCH, HOVE ON TO HEXT
F68C 83C706
4656
AOD
01.8
I NEXT CODE POINT
Fb8f 4"
4657
DEC
OX
I LOOP CONTROL
f690 75EO
4658
JNZ
S17
I DO All OF THEN
4659
4660
;----- CHAR NOT MATCHED, HIGHT BE IN USER SUPPLIED SECOHD HALF
4661
F6n leOO
4662
CMP
AL,O
i Al <> 0 IF ONLY 1ST HAlF SCANNED
ft.?'" 7412
466l
JE
518
I IF :; 0, THEN All HAS BEEN SCANNED
Fb96 28tO
4664
sua
AX,AX
F6098 8E08
4665
MOV
DS,AX
4666
ASSUME
DS:ABSO
4667
LE5
DI,EXT_PTR
Fl.?A C43E7COO
aceo
ESTABLISH ADDRESSING TO VECTOR
; GET POINTER
4668
MOV
F6AO OBC7
4669
OR
AX.DI
i
F6A2 7404
4670
JZ
S18
; He SENSE LOOKING
F6A4 B080
4671
MOV
Alol28
I ORIGIN FOR SECOND HALF
fbA6 EBDZ.
4672
JMP
510
J,
4673
ASSUME
DS:DATA
F69E
AX.ES
; SEE IF THE POINTER REALLY EXISTS
IF ALL 0, THEN DeESH' T EXIST
GO BACK AND TRY fOR IT
4674
4675
i-----
CHARACTER IS FOUND ( AL:;O IF NOT FOUND )
4676
fbA6
F6AB 63C408
F6AB E917FB
4677
S18:
ADO
4678
I READJUST THE STACK, THROW AWAY SAVE
SP.8
; All DONE
JMP
4679
4680
GRAPHICS_READ
4681
;--------------------------------------------------------
4682
; EXPAND_HED_COLOR
THIS ROUTINE EXPANDS THE LOW 2: BITS IN BL TO
4683
46M
FILL THE ENTIRE ax REGISTER
4685
ENTRY
4686
4687
BL
i
COLOR TO BE USED (
LOW 2 BITS I
ex :; COLOR TO BE USED ( 8 REPLICATIONS OF THE
4689
4690
4691
=
EXIT
468a
F6AE
ENDP
2: COLOR BITS )
; ---- ------------------------------------------ ---------519
PROC
NEAR
F6AE 80E303
4692:
AND
Bl,3
; ISOLATE THE COLOR BITS
f6Bl 8AO
4693
MOV
AL.BL
; COPY TO AL
F6B3 51
4694
PUSH
CX
; SAVE REGISTER
MOV
CX,3
I NUMBER OF TIHES TO DO THIS
F684 890300
4695
f6B7
4696
FbB7 OOEO
S20:
4697
SAL
F6B9 OOEO
4698
SAL
AL.l
; LEFT SHIFT BY 2
F6BS OAD8
4699
OR
BL,AL
; ANOTHER COLOR VERSION INTO BL
F6BO E2F8
4700
LOOP
S20
; FILL ALL OF BL
F6BF BAFB
4701
MOV
SH.BL
I FILL UPPER PORTION
Ft.Cl 59
4702
POP
CX
I REGISTER BACK
Fue2 C3
4703
AL,l
; ALL DONE
RET
4704
S19
470S
1-- -- --- ------------------------ ------------------------
4706
I EXPAI'Il_BYTE
4707
ENDP
THIS ROUTINE TAKES THE BYTE IN Al AND DOUBLES
4708
ALL OF THE BITS. TURNING THE 8 BITS INTO
4709
16 BITS. THE RESULT IS LEFT IN AX
4710
;--------------------------------------------------------
Ft.C3
4711
521
F6C] 52
Ft.C4 51
PRDC
NEAR
4712:
PUSH
OX
4713
PUSH
CX
F6es 53
4714
PUSH
BX
F6C6 280l
4715
F6C8 890100
4716
F6CB
4717
F6CB 8808
4718
A-66
I SAVE REGISTERS
SUB
OX.DX
; RESULT REGISTER
MDV
ex.!
I MASK REGISTER
MOV
BX.AX
I BASE INTO TEttP
52:2::
System BIOS
LOC OBJ
LINE
SOURCE
Ft.CD U09
4719
ANIl
F6CF OB03
47Z0
OR
.,1L
eX,ex
oX,ex
I USE ttASK TO EXTRACT .. BIT
; PUT INTO RESULT REGISTER
AX,.
P6DI DlEO
r6D3 OlEl
472:1
4722
4723
SIll
I10V
CX,1
F6D5 8808
eX,AX
J BASE TO TEMP
F6D7 2309
4724
4725
4726
.NO
OR
SHl
eX,ex
oX,ax
ex.!
I PUT INTO RESULT
522
F609 OB03
F6DS DIEl
I SHIFT BASE ANJ I1ASK 8Y 1
I EXTRACT THE SAME BIT
; SHIFT ONLY MASK NON.
,
4727
F6DO 73Et
4728
JNC
FbDF 8BI;C:
47Z9
MOV
AX.OX
F6El 5B
F6E2 59
4730
pop
pop
ex
DX
4731
F6E3 SA
4732:
POP
F6E4 C3
4733
.ET
4734
521
MOVING TO NEXT BASE
I USE HASK BIT COMING OUT TO TERtUNATE
I RESULT TO PARI1 REGISTER
BX
I RECOVER REGISTERS
j
ALL DONE
ENDP
----- - -- ------------------------------------------------
4735
;
4736
I HED_READ_BYTE
THIS ROUTINE lULL TAKE 2: BYTES FROM THE REGEN
4737
4738
BUFFER. CQHPARE AGA.INST THE
4739
4740
PA.TTERN INTO THE CURRENT POSITION IN THE SAVE
4741
ENTRY
4741
SI.OS ::: POINTER TO REGEN AREA OF INTEREST
BX
4744
4745
BP
474B
4749
F6ES 8"24
F6E7 811.4401
F6EA B900CO
4752
F6ED 8200
4753
= EXPANDED fDREGROlJt-I) COLOR
= POINTER TO SAVE AREA
I EXIT
4747
f6E5
FOREGROUND
AREA
4742:
4746
C~RENT
COLOR. AND PLACE THE CORRESPONDING otVOFF BIT
BP IS INCREMENT AFTER SAVE
1--------------------------------------------------------
sa
PRoe
NEAR
4750
MOV
AH,[SI]
4751
MOV
MOV
AL.[SI+I J
• GET FIRST BYTE
; GET SECOND BYTE
eX,OCOOOH
; 2 BIT I1ASK TO TEST THE ENTRIES
"OV
OL,O
; RESULT REGISTER
F6EF
4754
F6EF 8SCI
4755
TEST
AX,CX
I IS THIS SECTION BACKGRoutI)?
F6Fl F8
4756
ele
F6F2 7401
4757
JZ
F6F4 F9
4758
F6F5 0002
4759
524:
F6F7 01E9
4760
F6F9 01E9
4761
F6FB 73FZ
4762
JNt
F6FD 885600
4763
F700 45
4764
F701 C3
4765
"OV
INC
RET
sa
; WASN'T, SO SET CARRY
; MOVE THAT BIT INTO THE RESULT
OLd
CXd
I HOVE THE MASK TO THE RIGHT BY 2: BITS
524
[SP]'OL
; DO IT AGA.IN IF HASK DIDN'T FA.LL OUT
eX,l
; STORE RESULT IN SAVE AREA
BP
t ADJUST POINTER
• ALL DONE
ENOP
---- -- ------- --------- - --- - ---------------------
4767
;
4768
; V4_POSlTION
4769
I IF ZERO. IT IS BACKGRO\H)
5ye
525:
Rel
5H.
5H.
4766
; CLEAR CARRY IN HOPES TlfAT IT IS
52S
,
THIS ROUTINE TAKES THE CURSOR POSITION
4770
CONTAINED IN THE MEHOAY LOCATION. AND
4771
CotNERTS IT INTO AN OFFSET INTO THE
4772
REGEN BUFFER, ASSUMING ONE BYTE/CHAR.
477:J
FOR MEOIUN RESOlllTION GRAPHICS.
4774
THE tuMBER MUST BE DOUBLED.
4775
; ENTRY
4776
NO REGISTERS. tfEHORY LOCATION
4777
477&
CURSOR_POSH IS USED
; EXIT
4779
AX CONTAINS OFfSET INTO REGEN BUFFER
4780
;-------~----------------------------------------
4781
478Z
52.
F702 A15000
F70S
4783
GRAPH_POSH
F705 53
4784
H02
F706 8808
4765
F70B BAC4
4786
F70A F6264AOO
4787
F70E DIEO
4788
f710 OlEO
4789
F712 ZAFF
4790
F714 03e3
F716 5a
4791
4792
F717 C3
4793
4794
.ROC
HOV
AX,CUR5OR_POSH
LABEL
; GET CURRENT CIMSOR
NEAR
PUSH
MOV
MOV
BX
8X,AX
AL.A.H
; GET ROWS TO AL
"Ul
SHl
SHl
BYTE PTR CRT_COLS
; MULTIPLY BY BYTES/COLlI'IN
AX.l
AX.!
J MULTIPLY
SUB
ADD
SH,SH
; ISOLATE COLUMN VAlUE
Ax.BX
pop
ox
• DETERMINE OFFSET
i RECOVER POINTER
; ALL DONE
RET
52.
NEAR
J SAVE REGISTER
; SAVE A COPY Of CURRENT CURSOR
*
4 SINCE 4 ROWS/BYTE
EIilP
System BIOS A-67
LOC OBJ
LINE
4795
4796
4797
4798
SOURCE
1-------------------------------------------------· ------.--------------; WRITE.TTY
THIS INTERFACE PROVIDES A TELETYPE LIKE INTERFACE TO THl: VIDEO
CARD. THE INPUT CHARACTER IS ~ITTEN TO THE CURRENT CURSOR
POSITION. AND TIlE CURSOR IS MOVED TO THE NEXT POSITION. IF THE
CURSOR LEAVES THE LAST COL~ OF THE FIELD, THE COLUHH IS SET
4799
4800
4801
TO ZERO. AND THE ROW VAlUE IS INCREMENTED. IF THE ROW VALUE
4802
LEAVES THE FIELD. THE CURSOR IS PLACED ON THE LAST ROW, FIRST
COLUMN. AND THE ENTIRE SCREEN IS SCROLLED UP ONE LINE. ItIiEN
THE SCREEN IS SCROLLED up, THE ATTRIBUTE fOR FILLING THE NEWLY
4803
4804
BLANKED LINE IS READ FROM THE CURSOR POSITION ON THE PREVIOUS
LINE BEFORE TliE SCROLL, IN CHARACTER MODE. iN G~APHICS MODE,
4805
4806
THE 0 COLOR IS USED.
4807
4808
ENTRY
(AH)
4810
(All :: CHARACTER TO BE WRITTEN
NOTE THAT BACK SPACE. CAR RET, BEll AND LINE FEED ARE HANDLED
4811
AS COMMANDS RATHER TI-lAN AS DISPLAYABLE GRAPHICS
(BLl :: FOREGROUND COLOR FOR CHAR WRITE IF CURRENTLY IN A
4612
4611
GRAPHICS MODE
4814
4615
; EXIT
ALL REGISTERS SAVED
4816
4817
;-----------------------------------------------------------------------ASSUME
4816
F7la
= CURRENT CRT f100E
4809
CS:COOE .05:DAT'"
F718 50
4619
4820
WRITE.TTY
PUSH
AX
; SAVE REGISTERS
F719 50
4821
PUSH
AX
; SAVE CHAR TO WRITE
F71A 8403
4822
AM,3
F71C 8A3E6200
482:3
BH .ACTIVE.PAGE
; GET THE CURRENT ACTIVE PAGE
Fno COlO
4820+
MOV
MOV
INT
10H
F722 58
482:5
pop
AX
; READ THE CURRENT CURSOR POSITION
; RECOVER CHA.R
PROC
NEAR
482:6
4827
1----- OX NOW HAS THE CURRENT CURSOR POSITION
4828
F723 X08
482:9
eMP
AL.6
1 IS IT .l BACKSPACE
F725 7452:
4830
JE
U8
I
F727 3eOD
4831
eMP
AL,DDH
BACI<.SPACE
; IS IT CARRIAGE RETURN
F729 7457
4832
JE
U9
I CAR.RET
FnB XOA.
4833
4634
eMP
Al,DAH
; IS IT A LINE FEED
F72D 7457
JE
U10
I
F72F 3C07
4835
eMP
AL.D7H
I IS IT A BElL
F731 745A
4636
JE
Ull
I BELL
LINEJEED
4837
4838
; ----- WRITE THE CHAR TO THE SCREEN
4639
4840
F733 840A.
4641
I10V
AH.ID
; WRITE CHAR ONLY
F735 690100
4842
MOV
CX.l
I ONLY ONE CHAR
F738 COlO
4843
INT
10H
; WRITE THE CHAR
4844
4645
; ----- POSITION THE CURSOR FOR NEXT CHAR
4846
F73A FEe2:
4847
INC
Ol
TEST FOR COLUMN OVERFLOW
f73C 3AI64AOO
4848
'MP
OL,BYTE PTR CRT_COLS
I
F740 7533
4649
JNZ
U7
; SET_CURSOR
F742 B200
4850
HOV
4651
eMP
CL.O
DH,Z4
; COLUMN FOR CURSOR
F744 SGFEIS
F747 752:A
4852
JNZ
U6
; SET.CURSOR.INC
4853
4854
; ----- SCROLL REQUIRED
4855
F749
4856
F749 6402
4657
4856
F74B COlO
Ul:
HOV
AH.2
INT
10H
; SET THE CURSOR
4859
4860
;----- DETERMINE VALUE TO FILL WITH DURING SCROLL
4861
F740 A04900
4862
MOV
'+863
eMP
Al.CRT.MOOE
AL,4
; GET THE CURRENT MODE
F75D 3e04
JC
U,
; READ-CURSOR
F752 7206
4864
F754 3C07
4865
eMP
AL.7
F756 B700
4866
MOV
BH.o
f758 7506
4867
JNE
UJ
F75A
4866
f75A. 8408
4869
F75C COlO
4870
F7Sf BAFe
4871
1'"760
4872
A-68
U2:
MOV
U3:
System BIOS
J FILL WITH BACKGROl.H)
; SCROLL-UP
I
READ-CURSOR
AH.8
INT
10H
NOV
6H,AH
; READ CHAR/ATTR AT CURRENT CURSOR
) STORE IN BH
I SCROLL-UP
LOC OBJ
n60 eaOl06
F763 ,Be9
LINE
SOURCE
487'
""V
AX.60tH
j
SCROll ONE lINE
4874
SUB
cX,CX
j
UPPER LEFT CORNER
I LOWER RIGHT ROW
J lOWER RIGHT COLUMN
F765 8618
4675
MOV
DH,24
F767 8.t.164AOO
4676
4677
"OV
DEC
OL.BYTE PTR CRT_COlS
F76B FEe..
IHT
10H
f?60
4876
F76D CDIO
4879
f76F
4880
F76F 58
4882
4863
F775 8402
F777 EBF4
POP
AX
VIDEO_RETURN
J"P
I RESTORE THE CHARACTER
I RETURN TO CALLER
I SET-CLRSOR-IHC
INC
DH
"OV
J"P
AH,2
j
U7:
4887
4868
4889
I SCROLL UP THE SCREEN
I nV-RETURN
U6:
46e4
4885
4."
I VIDEO-CALL-RETURN
U4'
U5:
4881
F770 E952FA
F773
F773 FEC6
f775
DL
HEXT ROW
J SET-CURSOR
I ESTABLISH THE NEW CURSOR
U4
;----- 8J,CK SPACE FOUH!)
4890
us:
f779
4891
f779 SOFADO
4892
C"P
Dl.o
f77C 74F7
4893
JE
U7
; SET_CURSOR
F77!;: FECA
4894
DEC
DL
I NO -- JUST HOVE IT BACK
J"P
U7
1 SET_CURSOR
F7eD EBF3
4895
I ALREADY AT Et() OF LINE
4896
F78t
F7et 8200
F784 EBEF
4897
1----- CARRIAGE RETURN FOUND
4898
4899
U9:
4900
4901
4902
4903
"OV
OL,O
; MOVE TO FIRST COll..t1H
JMP
U7
1 SET_CURSOR
; ----- LINE FEED FOUND
4904
F7a6
4905
U10:
i BOTTOH OF SCREEN
F7ab BOFEla
4906
C"P
DH.24
F789 75E6
4907
4908
JHE
U6
; YES, SCROLL THE SCREEN
JMP
Ul
J NO, JUST SET THE CURSOR
F7aa EBBC
4909
4910
;----- BEll FOlH)
4911
F7eD
4912
U11:
F760 B302
4913
HOV
F78F E67602
4914
CALL
F792 fBDB
4915
4916
4917
4918
SET UP COUNT FOR BEEP
BL.2
i
BEEP
J SOUND THE POD Bell
US
J TTY_RETURN
EHOP
J ---------------------------------------------------------------• LIGHT PEN
4919
THIS ROUTINE TESTS THE LIGHT PEN SWITCH ANO THE LIGHT
4920
PEN TRIGGER. IF 80TH ARE SET, THE LOCATION OF THE LIGHT:
4921
PEN IS DETERMINED. OTHERWISE. A RElURN WITH NO
49a
4923
INFORMATION IS HADE.
; ON EXIT
4925
(AH) = 0 IF NO LIGHT PEN INFORMATION IS AVAILABLE
ex.ex,DX ARE DESTROYED
4926
(AH)
4924
=
1 IF LIGHT PEN IS AVAILABLE
(OH,OU
4927
4928
4930
4931
= ROW.COLUMN
OF CURRENT LIGHT PEN
POSITION
4929
(CH)
= RASTER
POSITION
(ex) = BEST GUESS AT PIXEL HORIZONTAL POSITION :
1----------------------------------------------------------------
4932
ASSUHE
4933
j-----
F794
4934
VI
F794 03
4935
CS:CODE,OS:DATA
SUBTRACT_TABLE
LABEL
8YTE
08
3,3.5.5.3,3,3,4 ,
F795 03
F796 05
F797 05
F79B 03
F799 03
F79A 03
F79B Oct
F79C
PRot
4936
NEAR
4937
4936
1----- WAIT FOR LIGHT PEN TO BE DEPRESSED
4939
J SET NO LIGHT PEN RETURN CODE
4941
MOV
MOV
AH,O
F79E 88166300
DX.ADDR_6845
, GET BASE ADDRESS OF 6845
F7A2 83(:206
4942
ADD
DX.6
I POINT TO STATUS REGISTER
F79C 6400
4940
System BIOS
A-69
LINE
LOC OBJ
SOURCE
IN
FlA.5 EC
4943
FlAb A804
4944
.TE5T
F7A8 757E
4945
JNZ
4946
4947
AL.DX
I GET STATUS REGISTER
AL.4
; TEST LIGHT PEN SWITCH
V6
j
troT SET. RETURN
;----- NOlo! TEST FOR LIGHT PEN TRIGGER
4948
F7AA AaDZ
4949
TEST
AL t 2
F7AC 7503
4950
JNZ
V7A
F7U £98100
4951
JM"
V7
TEST LIGHT PEN TRIGGER
RETURN WITHOUT RESETTING TRIGGER
4952
4953
; ----- TRIGGER HAS BEEN SET. READ THE VALUE IN
4954
4955
4956
F7B1
F761 6410
V7A:
MOV
AH.16
I
LIGHT PEN REGISTERS ON 6845
4957
4958
• ----- INPUT REGS POINTED TO BY AH. AND CONVERT TO ROW COLUMN IN OX
4959
4960
tfOV
DX.ADDR_6845
I ADDRESS REGISTER FOR 6845
F787 SAC4
4~61
MOV
.... L,AH
; REGISTER TO READ
F789 EE
4962
OUT
DX.AL
; SET IT UP
F7BA 42
4963
INC
OX
F7BB EC
4964
IN
Al,OX
I GET THE VALUE
F7BC BAEe
4965
MOV
CH.AL
; SAVE IN CX
F763 88166300
4966
F7BE 4A
4967
DEC
INC
OX
F7BF FEC4
F7el 8AC4
4968
MOV
AL,AH
F7C3 EE
; DATA REGISTER
; ADDRESS REGISTER
AH
; SECOND DATA REGISTER
4969
OUT
OX.Al
F7C4 42
4970
INC
OX
F7e5 EC
4971
IN
AL,DX
• GET SECOND DATA VALUE
F7C6 8AE5
4972
MOV
AH,CH
• AX HAS INPUT VALUE
; POINT TO DATA REGISTER
4973
4974
; ----- AX HAS THE VAlUE READ IN FRaN THE 6845
4975
f7e8 8AIE4900
4976
MOV
F7ee ZAFF
4977
SUB
BH,SH
; HODE VALUE TO 6X
F7eE 2E8A.9F94F7
4978
MOV
ElL,CS:Vl[BX)
; DETERMINE AMOUNT TO SUBTRACT
F7D3 28C3
4979
sue
AX.SX
• TAKE IT AWAY
F7DS 881E4EOO
49e.0
I10V
ex, CRT_START
F7D9 DlEB
4981
SH.
Bl<,l
F70B 2Be3
4982
SUB
AX.BX
F7DD 7902
4983
JNS
v.
; IF POSITIVE. DETERtlINE MODE
F70F 25CO
4984
SUB
AX,AX
; <0 PLAYS AS 0
BL.CRT_MOOE
4985
4986
;----- DETERMINE MODE OF OPERATION
4987
;
OETERMINE~HOOE
F7El BI03
4989
MOV
CL.3
i
SET *8 SHIFT COUNT
F7E3 803E490004
4990
eM"
CIH_MOOE,4
; DETERMINE IF GRAPHICS OR AlPHA
V4
; ALPHA_PEN
F7Et
4988
V2:
F7E8 nZA
4991
JB
F7EA 803E490007
4992
eM"
CRT_MODE ,7
F7EF 7423
4993
JE
V4
F7Fl 6228
4996
4997
MOV
DL,40
; DIVISOR FOR GRAPHICS
F7F3 F6F2
4998
DIV
OL
; DETERMINE ROW( AL I AHO COLUMtH AH I
4994
4995
j-----
GRAPHICS MODE
,
4999
AL RANGE 0-99. AH RANGE 0-39
5000
5001
;----- DETERMINE GRAPHIC ROW POSITION
5002
F7F5 SAEe.
5003
MOV
CH.AL
j
SAVE ROW VALUE IN CH
F7F7 02EO
5004
ADD
CH,CH
J *2 FOR EVEN/ODD FIELD
F7F9 BADe
5005
MOV
Bl,AH
I COLUNN VALUE TO BX
5006
SUB
BH.BH
F7FO 803E490006
5007
eM"
CRT_MOOE,6
i
Fe02 7504
5008
JNE
V3
; NOT_HIGH_RES
FaD4 B104
5009
I10V
CL,4
J SHIFT VALUE FOR HIGH RES
Fa06 DOE4
5010
5011
5012:
SAL
AH,l
SHL
BX,CL
F7F8 2AFF
FaDS
FaDe D3E3
V3:
I MULTIPLY BY 8 FOR MEDIlR1 RES
DETERMINE MEDIUM OR HIGH RES
I COLI.Jt'I.l VALUE TIMES 2 FOR HIGH RES
; NOT_HIGH_RES
I MULTIPLY *16 FOR HIGH RES
5013
5014
,----- DETERMINE ALPHA CHAR POSITION
5015
faDA BAD4
5016
MOV
DL,AH
I COLUMN YALUE FOR RETURN
FaDe SAFO
5017
tfOV
OH.Al
FaDE DOEE
5018
SH.
OH,l
I ROW VALUE
I DIVIDE BY 4
Fel0 DOEE
5019
SH.
DH,l
I
A-70
System BIOS
FOR VALUE IN 0-2:4 RANIE
LOC OBJ
'812 EIU:
LINE
SOURCE
5020
I LIGHT_PEN_RETlIm..SET
SHORT Y5
J"P
5021
ALPHA HODE ON LIGHT PEN
5022
5023
i -----
Fel~
502'"
V4:
F814 F6364A.OO
5025
DIY
BYTE PTR CRT_COLS
F818 8AFO
FalA &AD4
502:6
5027
I10Y
ItOY
OH.AL
DLtAH
F8lC DUO
FalE SAEe
502:8
SAL
AL.CL
J COLS TO DL
I tlJLTlPLY ROWS • 8
5029
CH,AL
I GET RASTER VA.WE TO RETURN REG
F820 BADe
5030
ItOY
MDY
BL.A.H
J COlU1N VALUE
F822 32Ff
5031
XOII
BH,BH
F824 D3E3
5032
SAL
BX,Cl
F82:6
VS:
F826 BltOl
5033
50 ..
F828
5035
Vb:
F82852.
....
F829
F82D
F830
F8ll
f832:
F832
F833
F834
F835
F836
F837
88166300
8let07
EE
5A
SF
5E
I
;'LPH~PEN
I DETERttJNE RDW,CDLtHI VALUE
I ROWS TO OH
ax
TO
LIGHT_PEN..RETI.RN_SET
II'IJICATE EVERTHltG SET
ItOY
",1
5036
PUSM
OX
I LlGHT_PEtLRETURH
J SAVE RETURN VALUE 'IN CASE}
5037
MDY
ADD
OX. ADDR_6845
I 6ET BASE ADDRESS
OX.7
I POINT TO RESET PAR"
5039
OUT
I ADDRESS. NOT oA.TA, IS lHPORTANT
PDP
DX.AL
OX
PDP
01
5040
5041
5042:
J RECOVER VALUE
V7;
; RETURN_NO_RESET
5043
5044
POP
SI
IF
5045
POP
POP
OS
IF
IF
J DISCARD SAVED ax.CX.DX
OS
OS
IF
5046
5047
PDP
pop
OS
F838 07
5048
pop
n
F839 CF
5049
5050
j
IRET
READ_lPEN
ENlP
5051
5052
i--- INT 12 -------------------------------------------------------------
5053
; "EMORY_SIZE_DET
5DSilt
5055
I
THIS ROUTINE DETERMINES THE AI1Ot.IIT OF MEMORY IN THE SYSTE"
AS REPRESENTED BY THE SWITCHES ON THE PLAHAR.
5056
NOTE THAT THE
SYSTEM I1AV NOT BE ABLE TO USE I/O tlEHORY tNLESS THERE IS A FUll ;
5057
I
5058
I INPUT
COI1PlEt'lENT OF 64K BYTES ON THE PLAHAR.
5059
NO REGISTERS
5060
5061
5062
THE I1£MORY_SIZE VARIABLE IS SET DURING POWER ON DIAGNOSTICS
ACCORDING TO THE FOllOWING HARDNARE ASSUI1PTIONS:
PORT 60 BITS 3,2 :; 00 - 16K BASE RAM
5063
01 - 32K BASE RAH
5064
5065
10 - 46K BASE RAM
5066
5067
PORT 62 8ITS
11 - 64K BASE RAH
IN)ICATE AI10lIfr OF liD RAM IN 32K INCREMENTS
3-~
E.G •• 0000 - NO RAM IN
110 CHANNEL
0010 - 641( RAM IN I/O CHAI+IEL. ETC.
5068
5069
5070
I
SO 71
5072
; ---- - -- ----- ------- -- -.--- ----- -- ---------------------------- - ---------ASSUHf CS:CODE.DS:DATA.
F841
F841
5073
DRG
OF841H
MEttDRY.SIZE.DET PROC
F841 FB
5075
sn
F842 IE
5076
PUSH
OS
DDS
5074
, OUTPUT
(AX)
= NUtlBER
OF CONTIGUOUS lK BLOCKS OF ttEtIORy
FAR
;, INTERRUPTS BACK ON
j
SAVE SEGMENT
F843 E81302
5011
CALL
F846 A11300
5078
HOY
i GET
FM9 IF
FM. CF
5079
5080
PDP
I
5081
VALUE
RECOVER SEGI1ENT
I RETURN TO CALLER
IRET
MEMORY.SIZE.DET
ENDP
50ez
5083
1--- INT II -----------.-----------------------------------------
5084
, EQUIPMENT DETERI'lINATlOH
5085
THJS ROUTINE ATTEttPTS TO DETERnINE IliAT OPTIONAL
5086
5087
DEVICES ARE ATTACHED TO THE SYSTEM.
~
INPUT
5088
NO REGJSTERS
5089
5090
THE EQUIP.FLAG VARIABLE IS SET DURING THE POWER ON
DIAGNOSTICS USING l1IE FOLLOWING HARDWARE ASSU1PTIDNS:
PORT 60 = LOW ORDER BYTE OF EQUPMENT
5091
5092
5093
PORT 3FA
5094
PORT 378
PORT THAT
CAN BE READ AS WELL AS WRITTEN
5D95
5096
= INTERRUPT ID REGISTER OF 8250
= OUTPUT PORT OF PRINTER -- 8255
BITS 7-3 ARE ALWAYS 0
I OUTPUT
System BIOS A-71
LOC OBJ
LINE
SOURCE
5097
(AX) IS SET, BIT SIGNIFICANT, TO INDICATE ATTACHED 110
5099
BIT 13 NOT USED
5100
5101
5102
BIT 11,10,9
5.""
aIT 15,14
= SA"E
BIT 12
BIT
a
= M.ItIBER
1/0 ATTACHED
= tu1BER
BIT 7.6
= IUIIER
5104
5105
5106
BIT 5.4
= INITIAL
OF DISKETTE DRIVES
00=1, 01=2, 10=3, 11=4 ONLY
VIDEO J10DE
aD - l.NUSED
01 - 40X25 BW USING
10 - BOXIS BW USING
11 - BOXIS BW USING
5107
5108
Sla,
5110
BIT 3,2
5Ul
SU2
5113
5114
BIT 1 NOT USED
II
IF BIT 0
=I
COLOR CARD
COLOR CARD
aN CARD
PLANAR RAf1 SIZE IOO=16K,Dl=3ZK.lO=If8K,1l=6IfK)
= IPL
FRal1 DISKETTE -- THIS BIT INDICATES THAT
THERE ARE DISKETTE DRIVES ON THE SYSTEM
5115
5116
5117
OF R8232 CARDS ATTACHED
LtfUSED
5103
BIT 0
OF PRINTERS ATTACHED
NO OTHER REGISTERS AFFECTED
1------ --.. --------- --- -- -- .. - --.... - ..... - ------- ---- -------------- ---'SSUHE CS:CODE,DS:DATA.
F84D
5U8
F84D
5119
F840 FB
F8ltE IE
5120
STl
5121
I'US!t
fMF EBD70e
F852 All000
F855 IF
5122
CALL
5123
512ft
ItOV
DS
DDS
AX,EQUIP_FLA6
pop
DS
F856 CF
5125
5126
IRET
ORO
OFMOH
EQUIPMENT
'AR
PROC
I INTERRUPTS BACK ON
E~IPI1EMT
i SAVE SEGI1ENT REGISTER
I GET THE CURRENT SETTINGS
I RECOVER SEGMENT
I RETl.RH TO CALLER
E""P
5127
5128
5129
1--- INT 15 ------------------------------------------------------------DUJ1KY CASSE"E 10 ROUTINE-RETURNS 'INVALIO tHO' IF THE ROUTINE IS z
IS EVER CALLED BY ACCIDENT (AH=86H, CARRY FUG=ll
5130
'85'
f859
Fes9 f9
,asA BIt86
f8SC CAGIOG
5131
5132
i ------ ----------- .. - ------ .. --- ------ ------- ---- -- ----------- -----.. ------0F859H
5133
CASSETTE_IO
513"+
STe
DR.
5135
ItQV
5136
RET
5137
CASSETTE_ID
5138
5139
5140
..R
PROC
i CARRY INDICATOR=1
AH.86H
•,,,,,p
1---------------------------------------------------------------; NON-tuSKABLE INTERRUPT ROUTINE:
THIS ROUTINE WILL PRINT A PARITY CHECK 1 OR 2 I1ESSAGE :
5141
5142
AND ATTEMPT TO FIND THE STORAGE LOCATIOH CONTAINING THE
5143
BAD PARITY.
IF FOUND. THE SEGMENT ADDRESS WILL BE
IF NO PARITY ERROR CAN BE FDUHD (INTERI1ITTANT :
5144
PRINTED.
5145
READ PROBLEtU !?!?1<-WILl BE PRINTED
~ERE
THE ADDRESS
5146
WtlJLD NORttALLY GO.
51ft7
IF ADDRESS IN ERRCII IS IN THE 110 EXPANSION ICDC , THE
ADDRESS WILL BE FOLLOWED BY A '( E)'
5148
5149
f
IF IN SYSTEI1 UNIT,
A '(S)' WILL FOLLOW THE ADDRESS
5150
F85F
1-----------------------------------------------------__________ _
5151
Nt1~INT
PROC
NEAR
5152
ASSlR1E
DS:DATA
F85F 50
5153
PUSH
AX
F860 £462
5154
IN
Al.PCRT_C
F862 ASCO
515S
TEST
AL,OCOH
F864 7503
5156
,
5157
JHZ
JH"
.10
fS69 BA4000
5159
I10V
DX,DATA
DS,OX
...
F866 E98700
5158
; SAVE ORIG CONTENTS OF AX
I PARITY CHECK1
HHI_l
I NO, EXIT FROM ROUTINE
NHI_l:
f86C SEDA
5160
F86E BE 15F990
5161
HOV
ItOV
51 ,OFFSET 01
I ADOR QF ERROR MSG
F872 A840
5162
TEST
AL,40H
I I/O PARITY CHECK
F874 7504
5163
JHZ
013
I DISPLAY ERROR IiSG
F876 8£25F990
f87A
F87A 8400
F87C AQ4900
5164
ItOV
51.0FFSET D2
I I1UST BE PLANAR
5166
HOY
AH.O
I INIT AtI:I SET ttODE FOR VIDEO
5167
HOY
INT
ALICRT_MODE
5168
IOH
J CALL VIDEO_IO PROCEDURE
5169
CALL
p_1ISG
I PRINT ERROR t1SG
f87F tolD
F881 E84601
5165
5170
5171
5172
F884 8000
A-72
D13:
i----- SEE
5171
System BIOS
IF LOCATION 'mAT CAUSEO PARITY CHECK CAN BE FOUND
J DllUlLE TRAP
LOC OBJ
LINE
SOURCE
OACH,AL
FM6 E6 ... 0
5174
F88S £461
5175
IN
AL.PORT_B
F8SA oe30
5176
OR
OUT
FeaE 24CF
5177
5178
F890 E661
5179
OUT
AL.OOI10000B
PORT_B.U
AL.ll001111B
PORT_B,Al
Fan 861 E1300
F896 Fe
5180
HOV
8X,ME/1ORY_SIZE
; GET MEMORY SIZE WORD
5161
eLD
F897 2802
5182
SUB
OX,OX
, POINT DX AT START OF HEN
F899
5183
F899 aEDA.
5184
5185
F8St E661
F89B 8EC2
f89D 890040
F8AO 2BF6
5'86
5187
F8A2 F3
5168
5189
OUT
AND
I TOGGLE PARITY CHECK ENABLES
; SET OIR FLAG TO INCRIMENT
NMI_LOOP:
MOV
OS,OX
HOV
ES,DX
MOV
CX,4000H
SUB
SI,SI
J SET FOR 16KB SCAN
j:
SET 51 TO BE REALlIVE TO
; START OF fS
REP
loose
IN
AL,PORT_C
i
f8A6 24CO
5190
5191
AN!)
F8A8 7512
5192
JNZ
AL.IIOOOOOOB
PRT_NMI
; GO PRINT ADDRESS IF IT DID
DX,0400H
I POINT TO NEXT 16K BLOCK
; READ 16KB OF MEMORY
FaA] At
F8A4 E462
5193
ACO
FeAE 83E810
5194
SUB
ex.16D
FaBl 75E6
5195
JHZ
NHI_LOOP
FeAA 61C20004
F8B3 BEJ5F990
5196
HOV
51'( OFFSET
F8B7 E8100l
5197
C.t.Ll
P_HSG
f8BA FA
5198
eLI
f88S F4
HlT
F8SC
5199
5200
F8BC BCD.t.
5201
MOV
FBBE E81907
5202
5203
CAll
PRT_SEG
F8CI BA1302
MOV
OX.0213H
F8C4 BOOO
5204
HOV
D~.t.1
SEE IF PARITY CHECK HAPPENED
, PRINT ROW OF ????? IF P.t.RITY
; CHECK COULD NOT BE RE-CREATED
; HALT SYSTEM
PRT_tI1I:
OX.DS
i
PRINT SEGHEHT v .... LUE
; DISABLE EXPANSION BOX
F8C6 EE
5205
OUT
FBt7 B026
5206
MOV
AL.OO
OX.AL
AL.'( ,
F8C9 E6DOOO
5207
CALL
Pin_HEX
Face B85AAS
5208
HOV
AX.OAS5AH
FSCF 89ca
5209
MOV
CX.AX
FaDl 2808
5210
SUB
eX.8X
F8D3 8907
F8D5 90
5211
HOV
lexl.AX
5212
NtP
FBD6 90
5213
NOP
FaD7 8B07
5214
MOV
AX,[BX)
; HAD THE ERROR
F8D9 3BCl
5215
eHP
AX,CX
; IS IT THERE?
faDB 7407
5216
JE
SYS_BOX_ERR
, YES- MUST BE SYS IJUT
F80D 8045
5217
HOV
Al.'E'
; NO-MUST BE IN EXP. BOX
F8DF E8BAOO
5218
CAll
PRT_HEX
FeE2 E805
5219
JMP
SHORT HlT_NMI
FBE4
5220
FBE4 8053
5221
F8E6 f68300
5222
F6E9
5223
F8E9 8029
5224
F8Es E8AEOO
5225
F6EE FA.
5226
ell
F8EF F4
522:7
HlT
MeV
AL, '5'
CALL
PRT_HEX
HOV
AL.' )'
CALL
PRT_HEX
I HALT SYSTEM
D14:
5228
F6FO 58
52:29
POP
52:30
IRET
5231
NMI_INT ENDP
5234
; WRITE A WORD TO SEGMENT rnA T
HLT_HMI:
F8Fl CF
5233
AX
i RESTORE ORIG CONTENTS OF AX
.-------- -------------------------------
RDS CHECKSUM SUBROUTINE
52:35
j----------------------------------------
F6F2
5236
ROS_CHECKSUM
F8F2 890020
5237
FeF5
5238
F8F5 32CO
5239
FeF7
5240
(CAN'T WRITE TO MEHI
SYS_BOX_ERR:
F6FO
5232:
,
MeV
PROC
NEAR
eX,Bl92
ROS_CHECKSUH_CNT:
XOR
A.L,AL
; NEXT_ROS_r'lODULE
; HUMBER OF BYTES TO ADD
; ENTRY FOR OPTIONAL ROS TEST
C26:
f8F7 0207
52:41
ADO
.U,DS:[BX]
F6F9 43
5242:
INC
BX
o POINT TO NEXT BYTE
F6FA E2FB
S243
LOOP
eo.
j
F8FC OACO
52:44
OR
Al,AL
; SUN = 01
F8FE C3
5245
5246
5247
5248
52:49
ADD ALL BYTES IN ROS I10DULE
RET
ROS_CHECKSlJt1
;
ENDP
-------------_.-. ----. ---- ---- - --------HESSAGE AREA. FOR POST
J - - ---- - -- - - - - - -- ---- - ----- -- - -- --- ------
System BIOS A·73
LaC OBJ
LINE
F8FF 313031
SOURCE
5250
EO
DB
'101'.13010
, SYSTEM BOARD ERROR
5251
El
DB
• 201' ,13.10
I MEMORY ERROR
5252
nA
DB
'ROM',n.IO
• ROM CHECKSUM ERROR
5253
no
DB
'1801' ,13.10
5254
01
DB
'PARITY CHECK 2' .13.10
5255
D2
DB
'PARITY CHECK l' .13,10
5256
D2A
DB
'??'?1?',13.10
F90Z 00
F90J 0",
F904 20323031
F90S 00
F909 0"'
F90A 524F4D
F90D 00
F90E OA
F90F 31383031
EXPANSION IO BOX ERROR
F913 00
f914 OA
f915 50415249545920
43484543452032
F923 00
F9Z4
o.
F925 504152:49545920
434&4543482031
F933 00
F934 0"
F935 3F3F3F3F3F
F93A 00
F93B OA
5257
5258
; ----------------------- -- ---- ------------------------ - --------- --- ------ ---
5259
BlIHK lEO PROCEDURE FOR MFG RUN-IN TESTS
IF lEO IS ON. TURN IT OFF. IF OFF. TURN ON.
5260
5261
j---------------------------------------------------------------------------
5262
F93C
5263
f93C FB
5264
F93D SO
ASSln1E
BLINK_INT
OS:O,6.TA
PROC
NEAR
sn
5265
5266
PUSH
AX
; SAVE AX REG CONTENTS
F93E [461
rH
Al.PORT_B
; READ CURRENT VAL OF PORT B
F940 8AEO
5267
MOV
AH.Al
F942 FoOD
5268
NOT
AL
F944 2440
5269
AND
Al,OlOOOOOOB
I
ISOLATE CONTROL BIT
F946 60E4Bf
5270
AND
AH.IOIlllllB
j
MASK OUT OF ORIGINAL VAl
F949 OAC4
5271
OR
AL.AH
; OR NEW CONTROL BIT IN
F948 Eb61
5272
OUT
PORT_S.AL
F94D 5020
5273
MOV
AL.EOI
f94F f620
5274
OUT
INTAOO .AL
F951 58
5275
POP
AX
F9S2 CF
5276
5277
; FLIP All BITS
; RESTORE AX REG
IRET
BLINK_INT
ENOP
5278
5279
-- ------- ---- - ---- - - ---- --- --- ----- ----- -- -- -----
5280
THIS ROUTINE CHECKSUMS OPTIONAL ROM MODULES AND
5281
5282
IF CHECKSUH IS OK, CALLS nUT/TEST CODE IN MODULE
; -- --- - ------------------- ------------------ -------------
F953
5283
PROC
f953 884000
"84
AX. DATA
F956 8Eeo
5285
F956 2AE4
5286
NEAR
I POINT ES TO DATA ....RE ....
ES.AX
SUB
.6.H.AH
; ZERO OUT AH
F95A 8A4702
5287
MOV
.... L.[BX+zl
I GET LENGTH INDICATOR
F95D BI09
5288
MOV
CL.09H
; MULTIPLY BY 512
F95F 03EO
5289
SHL
AX.Cl
f961 8eca
F%351
5290
5291
PUSH
CX
I SAVE COUNT
F964 890400
5292
MOY
CX.4
I ADJUST
F967 03E8
5293
5294
SHR
AX.CL
F969 0300
ADD
DX.AX
F96B 59
52:95
POP
CX
; RETIUVE COUNT
ROS_CHECKSUH_CNT
I 00 CHECKSUM
HOV
CX.AX
; SET COUtH
; SET POINTER TO NEXT MODULE
F96C E886FF
5296
CALL
F96F 7406
5297
JZ
F971 E857EO
5298
CALL
ROM_ERR
; POST CHECKSUM ERROR
F974 EB1490
5299
Jt1P
ROH_CHECK_EHD
; AND EXIT
F977
F977 52
F978 26C70667000300
5300
5301
PUSH
OX
I S,AVE POINTER
5302
HOV
ES: IO_ROM_INIT. 0003H
LOAD OFFSET
F97F 268ClE6900
5303
MOY
ES: IO_ROI'CSEG ,OS
LOAD SEGMENT
F984 26FFlE6700
CALL
DWORD PTR ES:IO_ROM_INIT
F989 SA
5304
5305
POP
OX
f'98A
5306
F'98A C3
5307
5308
5309
A-74
System BIOS
I CALL INIT ./TEST ROUTINE
I RETURN TO CALLER
RET
ENDP
LaC OBJ
LINE
SOURCE
5310
J ------------------- -----------------------------
5311
; CONVERT AND PRINT ASCII CODE
At MUST CONTAIN NUtlBER TO BE CONVERTED. :
5312
5313
AX AND
ax
DESTROYED.
5314
1------------------------------------------------
F98B
5315
XPC_BYTE
F98e 50
5316
5317
PUSH
AX
I SAVE FOR LOW NIBBLE DISPLAY
F96C 8104
ItOV
CL.4
i SHIFT COUNT
f98E 02E8
5318
SHR
AL.CL
1 MYBBlE SWAP
F990 E80300
5319
CALL
XLAT_PR
I DO THE HIGH NIBBLE DISPLAY
F991 58
f994 240F
5320
pop
AX
I RECOVER THE NIBBLE
5321
AND
AL.OFH
I
NEAR
I
AL.O~OH
I ADD FIRST CONVERSION FACTOR
PROC
NEAR
5322
f"996
532:3
F996 0490
5324
F998 27
5325
5326
5327
F99C
5328
F99C B40E
5329
F998 27
F999 1440
ISOLATE TO LOW NIBBLE
I FALL INTO LOW NIBBLE CONVERSIOH
XLAT_PR PRot
ADD
DAA
ADC
Al.,040H
I ADD COt-lVERSION AI'I> ADJUST LOW NIBBLE
DAA
I ADJUST HIGH NIBBLE TO ASCHI RANGE
HEAR
PRT_HEX PROC
F99E B700
5330
F9AO COlO
5331
MOV
MOV
IHT
F9A2 C3
5332:
RET
CONVERT OO-OF TO ASCII CHARACTER
I ADJUST FOR tM1ERIC ANI) ALPHA RANGE
AH.14
J DISPLAY CHARACTER IN Al
BH~O
IOH
5333
PRT_HEX ENDP
5334
XLAT_PR EHOP
5335
XPC_BYTE
ENDP
5336
F9A.3
5337
F9,6,3 BC03
5338
5339
F9A5 7803
F9A7 7802
5340
F9.\9
5341
5>42
F.
LA.BEL
WORD
DW
36CH
DW
F'E
• PRINTER SOURCE TABLE
378H
DW
278H
lABEL
WORD
5343
i--------------------------------------------------------
5344
i THIS SlI5ROUTINE WILL PRINT A MESSAGE ON THE DISPLAY
5345
5346
I ENTRY REQUIREMENTS:
Sl
= OFFSETCADDRESSJ
5348
ex
=
5349
MAXIt1UM MESSAGE LENGTH IS 36 CHARACTERS
5347
MESSAGE BYTE
OF MESSAGE BUFFER
CO~T
5350
1--------------------------------------------------------
F9A9
5351
E_HSG
PROC
NEAR
F9A9 BBEE
5352
MOV
BP,SI
f SET BP NON-ZERO TO F LAG ERR
F9AB E8ICOO
5353
CALL
P_MSG
1 PRINT MESSAGE
F9AE IE
5354
PUSH
F9AF EBA700
DS
DDS
5355
CALL
F9BZ AOI000
5356
MOV
F985 2401
5357
F967 750F
5358
F969
5359
F989 FA
5360
eLI
HOV
OUT
F9BA B069
5361
F9BC E663
5362
f9BE BOB5
5363
F9CO E661
5364
F9C2: A01500
5365
F9C5 E660
5366
F9C7 F4
5367
F9C8
5368
F9C8 IF
5369
F9C9 C3
5370
....,
"'L.OIH
1 SHITCH ON?
JHZ
G12
j
AL.BYTE PTR EQUIPJLAG
i YES •
MOV
OUT
AL.I000010IB
I DISABLE KB
HOV
OUT
AL.MFG_ERRJLAG
1 RECOVER ERROR ItI)ICATOR
PORT_.... AL
HlT
I SET INTO 8255 REG
1 HALT SVS
G12:
POP
5371
E_MSG
RET
EHOP
,,"oe
5372
5373
P_MSG
5374
GIZA:
F9CA 2E8A04
5375
5376
5377
HOV
AL.eS:ISIJ
ItIC
PUSH
51
AX
5378
CALL
F902 58
5379
POP
F9D3 3eOA
5380
F905 7!iF3
5381
CMP
JHE
F907 C]
538Z
5383
HALT SYSTEI'1
AL.89H
CND_PORT.AL
F9CA
F9CF ESCAfF
NO - RETURN
MFG_HALT:
f9CA
f9CD 46
F9CE 50
1 lOOf'IHALT ON ERROR
P_MSG
HEAR
AX
"'L,lO
612A
PUT CHAR IN At
POINT TO NEXT CHAR
I SAVE PRINT CHAR
I RECOVER PRINT CHAR
; HAS IT LINE FEED?
; NO,KEEr PRINTING STRING
RET
nllP
5384
5385
5386
5387
53a8
1-----------------------------------------------INITIAL RELIABILITY TEST -- SUBROUTINES
1------------------------------------------------
i
ASSUHE
CS:COOE,OS:OATA
System BIOS A-75
LINE
LOC OBJ
5369
SOURCE
• ----------- ------------ ------------ -------------
5390
5391
SUBROUTINES FOR POWER ON DIAGNOSTICS
1------------------------------------------------------------------------
5392
THIS PROCEDURE WILL ISSUE ONE LONG TONE (3 SECS) AND ONE OR
5393
MOOE SHORT TONES (1 SEC) TO UIlICATE A fAILURE ON THE PLANAR
5394
BOARD, A BAD RAM MODULE, OR A PROBLEM WITH THE CRT.
5395
; ENTRY PARAMETERS:
DH ;; tM1BER OF LONG TONES TO BEEP
5396
5397
5398
Dl = HlIt1BER OF SHORT TONES TO BEEP.
1-------- -------------------------------------------------- --------------
530;19
F9D8
F9D8 9C
5400
PUSHF
F9D9 FA
5401
CLI
F9DA IE
5402
PUSH
F9DB £87800
; SAVE FLAGS
DISABLE SYSTEM INTERRUPTS
i
I SAVE OS REG CONTENTS
OS
5403
CALL
ODS
F9DE DAFb
5404
OR
DH,DH
; ANY LONG ONES TO BEEP
F9EO 7414
JZ
G3
; NO, DO THE SHORT ONES
F9EZ 8306
5405
5406
5407
F9E4 f82100
5408
F9EZ
;
61:
BL,6
I COUNTER FOR BEEPS
CALL
BEEP
; DO THE BEEP
G2:
F9E7
5409
F9E7 E2FE
5410
LOOP
G2
F9E9 FEeE
5411
DEC
DH
DElAY BETWEEN BEEPS
ANY MORE TO DO
I DO IT
F9EB 75F5
5412
JNZ
61
F9ED 803EIZ0001
5413
CHP
MFG_ TST ,1
F9F, 7502
5414
JNE
63
F9F4 EBC3
5415
5416
F9F6
LONG_BEEP:
MOV
MFG TEST MODE?
YES - CONTINUE BEEPING SPEAKER
STOP BLINKING LED
I
SHORT_BEEP:
NOV
BL,I
COUNTER FOR A SHORT BEEP
CALL
BEEP
00 THE SOUHO
LOOP
G4
i
DEC
DL
1
f9F8 E80DOO
5417
5418
F9FB
5419
F9FB E2:FE
F9FD FEeA
5420
54,1
F9FF 7SFS
5422
JHZ
63
00 SOME MORE
lOOP
G5
LONG DELAY BEFORE RETURN
F9F6 8301
FAal
FMl E,FE
5423
FAD3
5425
FAD3 E2FE
5426
G4:
~ONE
WITH SHORTS
65:
5424
66:
LOOP
66
FADS IF
5427
POP
os
FA06 90
5428
POPF
5429
RET
FAD7 C3
DelAY BETWEEN BEEPS
I RESTORE ORIG CONTENTS OF OS
; RESTORE FLAGS TO OIUG SETTINGS
; RETURN TO CALLER
ENOP
5430
5431
5432
;----- ROUTINE TO SOUND BEEPER
5433
FAD8 8086
5434
5-435
MDV
AL,lOllOliUB
; SEL TIM 2.LSB,I1SB,BINARY
FADA £643
>436
OUT
TIHER+3,AL
, WRITE THE TIMER HOOE REG
FADe B83305
5437
MOV
AX,533H
J DIVISOR FOR 1000 HZ
FAOF £642
5438
OUT
TlHER+2,AL
I WRITE TIMER 2 CNT -
fAll 8AC4
FAl3 E642
5439
"DV
AL.AH
OUT
TIMER+2,AL
FADe
BEEP
5440
PROC
HEAR
LSB
• WR ITE TIMER 2 CNT - MS8
FAlS £461
5441
IH
AL,PORT_B
; GET CURRENT SETTING OF PORT
FAl7 8AEO
S44Z
MOV
AH.AL
; SAVE THAT SETTIHGH
FA19 OC03
S443
00
FAlS E661
5444
OUT
FAlD 28e9
5445
SUB
cX,ex
FAIF
5446
5447
5446
LOOP
G7
J DELAY BEFORE TURNING OFF
DEC
BL
; OELAY CNT EXPIREO,?
FA-IF E2FE
FA21 FEee
; TURN SPEAKER ON
; SET CNT TO WAIT 500 MS
G7;
5449
JNZ
67
; HO - CONTINUE BEEPING SPK
FA2S 8AC4
5450
MOV
AL,A.H
; RECOVER VALUE OF PORT
FA27 E661
5451
OUT
FA29 C3
5452
FAll 7SFA
5453
; RETURN TO CALLER
RET
BEEP
ENOP
5454
5455
FA2A
1------------------------------------------------------------------------
5456
THIS PROCEDURE WILL SEND A SOFTWARE RESET TO TIlE KEYBOARD.
5457
SCAN CODE
'AA' SHOULD BE RETURNED TO THE CPU.
5458
1------------------------------------------------------------------------
5459
KBD_RESET
5460
ASSUME
PROt
NEAR
OS: ABSO
; SET KBD CLK LINE LOW
I WRITE 8255 PORT B
fA2A BODe
5461
"OV
AL,DSH
FA2e E661
5462
FAZE 89562:9
5463
OUT
MOV
CX,10582
1 HOLD KBO CLK LOW FOR 20 HS
FA31
5464
5465
LOOP
G8
J lOOP FOR 20 MS
FBI E2FE
A-76
PORT_B,AL
68:
System BIOS
LOC OBJ
LINE
SOURCE
HOV
FAl3 Boce
5466
fAJS E661
5467
FAl7
5468
FA37 8048
5469
FA39 E661
5470
OUT
P(}RIT_B.U
FA3B BOFD
5471
HOV
AL,OFDH
I ENABLE KEYBOARD INTERRUPTS
FA1D E621
FAlf C606660400
5472
OUT
INTAOt .... t
I WRITE 6259 IHR
5473
MOV
DATA_AREA[OFFSET INTR_FLAGI
fA44 FB
5474
STI
FA45 2BC9
5475
, SET CLK. ENABLE LINES HIGH
OUT
) ENnn FOR MAt-lJF...CTlRING TEST 2
~ SET KBD CLK HIGH. EHABLE lOW
SP_TEST:
MOV
AL,4eH
I RESET INTERRUPT INDICATOR
I ENABLE INTERRUPTS
SUB
CX,CX
fA47
5476
FA47 Fb066BD4D2:
5477
TEST
DATA_AREA[OFFSET 1NT RJLt.Gl,02H ; DID J. KEYBOARD IHTR
FA4C 7502
5478
JNZ
GIO
; YES - READ SC...N CODE RETUrNED
FA4E E2F7
5479
LOOP
G9
I NO - LOOP TILL TIMEOUT
FASO
5460
f SETUP INTERRUPT TIMEOUT CNT
GI0:
fA50 E460
5461
FAS2 BADS
5482
MOV
BL,Al
fA54 Boce
FAS6 E661
5483
HOV
AL,DCSH
5464
OUT
PORT_B.Al
FASS C3
54&S
RET
FA59
5486
FA59 50
5486
acetin
I READ KEYBOARD SCAN CODE
IN
; SAVE SCAN COOE JUST READ
I CLEAR KEYBOARD
I RE~N TO C"'LLER
KBD_RESET
ENDP
DDS
NEAR
5467
PROC
5489
PUSH
fASA 884000
5490
110V
AX,OAT.4.
FASO SEOS
5491
HOV
DS,AX
I
FASF 58
5492
POP
AX
I RESTORE A.X
FAbO C3
5493
5ct94
I SAVE AX
A}(
SET SEGMENT
RET
DDS
ENOP
5495
5496
5497
5498
FA6E
5499
FA6E
5500
1-----------------------------------------------------------------------CHARACTER GEHERATOR GRAPHICS FOR 320X200 ..tJ.Il 640X200 GRAPHICS
1-----------------------------------------------------------------------ORG
CRT_CHAR_GEN
OFAbEH
LABel
BYTE
oooooooooooaoooo
5501
DB
OOOH, OOOH,eOOH, ooaH, OOOH, OOOH, OOOH, OOOH ; o_o0
FA76 7E81A581B099817E
5502
DB
07EH,081H,O"'5H,061H,OBOH,099H,061H,07EH I 0_o1
FA6E
FA.7E 7EFFDBFFC3E7FF7E
5503
DB
07EH,OFFH,OOBH,OFFH,OC3H,OE7H.OFFH.07EH J D_02
FASE> 6CFEFEFE7C381000
5504
DB
06CH,OFEH,OFEH,OFEH,07CH,036H.DI0H.OOOH ; 0_03
FA8E l0187CFE7C3elOOD
5505
DB
010H,038H,07CH.OFEH.07CH,038H,OI0H,OOOH ; D_04
FA96 387C18FEFE7C387C
5506
DB
038H,07CH.038H,OFEH,OFEH,07CH,038H,07CH ; D_05
FA9E lOl0367CFE7C387C
5507
DB
OlOH,DIOH.03eH.07CH.OFEH.07CH.03BH.07CH I D_06
FUb 0000183C3C180000
5506
DB
OOOH,OOOH,OI8H.03CH,03CH,OI8H,OOOH.OOOH ; o_o7
FAAE FFFFE7C3C3E7FFFF
5509
DB
OFFH,OFFH,OE7H,OC3H,OC3H,OE7H,OFFH,OFFH ; D_08
FAS6 003C664242:663COO
5510
DB
OOOH,D3CH.066H.042H,042:H,066H.03CH,oODH ; o_09
FABE FFC399BOBD99C1FF
5511
DB
OFFH,OC3H,099H.OBDH.DBOH,099H,OC3H.OFFH I 0_0'"
FAC6 OF07DF7DCCCCCC78
5512
DB
OOFH,007H,OOFH.07DH,OCCH.OCCH,OCCH.1l78H 10_DB
FACE 3C6666663C187E16
5513
DB
03CH,066H,066H,066H,03CH.OlSH,07EH.OIBH
FADb 3F333F303070FOEO
5514
DB
03FH,033H.03FH,030H,030H.070H.OFOH,OEOH ; D_OD
fADE 7F637F636367E6CO
5515
DB
07fH,063H,07FH.063H,063H.067H.OE6H,OCOH
FAE6 99SA,3CE7E73C5A99
5516
DB
099H,05AH.03CH.OE7H,OE7H.03CH,05AH.099H ; D_Of
fAEE 80EOF8FEF8EOeOOO
5517
DB
060H,OEOH,OF8H.OFEH,OFBH,OEOH,080H,OOOH ; o_10
FAF6 020E3EFE3EOE0200
5518
DB
002H,OOEH.03EH.OFEH.03EH,OOEH,0021-1.000H ; 0_11
FAFE 183C7E18187E1C18
5519
DB
018H,03CH.07EH.OIBH,Dl8H,07EH,03CH.016H J. o_12
FB06 6666666666006600
5520
DB
066H,066H,066H.066H,066H.ODOH,066H.DOOH ; 0_13
j
j
D_OC
D_OE
FBDE 7FDBDB7BIBIBIBOO
5521
DB
07FH,00BH.ODBH.07BH.OIBH,OlBH,OlBH,OOOH J 0_14
FB16 lE63386C6C36CC78
5522
DB
03EH,063H,038H.06CH,06CH,036H.OCCH,078H ; o_15
FBIE OD0000007E7E7EOO
5523
DB
OOOH,OOOH.OOOH.OOOH,07EH.07EH,07EH.OOOH J 0_16
FB26 IB3C7E187E3C18FF
5524
DB
016H,03CH,07EH.Ol8H,07EH,03CH,DIBH.OFFH l 0_17
FB2E 183C7El81B181aoo
552:5
DB
018H,03CH.07EH.018H,018H.OIBH,018H.OOOH ; D_16
F836 181818187E3C1800
552:6
DB
018H,OI8H,OIBH.016H,07EH,03CH.OIBH.OOOH J 0_19
FB3E 00160CFEOC160000
5527
DB
000H,018H.OOCH,OFEH,OOCH.018H.000H.OOOH ; 0_lA.
FB46 003060FE60300000
5528
DB
OOOH.030H.06DH.OFEH.06DH.030H,OOOH,OODH ; 0_18
F84E QOOOCOCOCOFEOOOO
5529
DB
OOOH,OOOH,OCOH,OCOH,OCOH.OFEH,OOOH.OOOH J O_IC
F856 002466FF66240000
5530
DB
000H.024H,066H.OFFH.066H,024H.OOOH,000H ; D_ID
Fa5E 00183C7£FFFFOOOO
5531
DB
000H.016H.03CH,07EH,OFFH.OFFH.OOOH,OOOH ; O_IE
FB66 00FFFF7E3CI80DDD
5532
DB
OOOH.OFFH,OFFH.07EH,OJClhOl6H.OOOH.OOOH 10_IF
FB6E OOOOOOOOOOODOOOO
5533
DB
OOOH,OOOH.OOOH.OOOH.OOOH,OOOH.OOOH.OOOH ; SP D30
F876 3078783030003000
5534
DB
030H.078H,076H.030H,030H.OOOH,030H,OOOH ; ! 0_2:1
FB7E 6C6C6COOOOOOOOOO
5535
DB
06CH.06CH,06CH,000H.OOOH,OOOH,OOOH.OOOH
~
.. D_ZZ
F866 6C6CFE6CFE6C6COO
5536
DB
06CH.06CH.OFEH,06CH.OFEH.06CH,06CH.OOOH
j
•
FBBE 307CC0780CF83000
5537
DB
030H.07CH.OCOH.078H.DOCH,OF6H,030H.000H I $ 0_24
FB96 00C6CC183066C600
5538
DB
OOOH.OC6H.OCCH,018H.030H,066H,OC6H,OOOH , PER CENT D_25
o_23
F89E 386C38760CCC7600
5539
DB
Q38H.06CH,038H.076H.ODCH.OCCH.076H,OOOH ; & o_26
FBA6 6060COOOOOOOOOOO
5540
DB
060H.060H.OCOH.000H.000H,OOOH.OOOH.OOOH
FBAE 1830606060301800
5541
DB
016H,030H,060H.060H,060H,030H.018fI.000H ; ( 0_2B
FBB6 6030181B16306000
5542:
DB
060H.030H.OlathOI8H.016H,030H,060H.OOOH
• 0_2:7
) D_2:9
System BIOS
A-77
LOC OBJ
LINE
SOURCE
000H.06bH,03CH.OFFH.Q3CH.066H.00QH,OOOH ;
0_2A
FBBE 00663CFF3C66oaoo
5543
DB
FBC6 003030FC30300000
5544
DB
000H,030H.030H.OFCH.030H,030H.000H.0,Q~H
feCE 0000000000303060
5545
DB
000H.000H.000H,OOOH,OOOH.030H.030H.ObOH I • D_2C
If
I + 0_2B
FBD6 OOOOOOFCOOOOOOOO
5546
DB
OOOH.OOOH.OOOH,OFCH.OOOH.OOOH.OOOH,OOOH I - o_20
FBDE 0000000000303000
5547
DB
000H.000H,000H.000H.000H.030H.030H,000H ;
FBE6 060C183060C08000
5548
DB
006H,OOCH,OI8H.030H,060H,OCOH,080H.000H I I D_2F
FeEE 7CC6CEDEF6E67COO
5549
DB
07CH,OC6H.OCEH.ODEH,OF6H.OE6H,07tH.OOOH I 0 D_30
FBFo 307030303030FCOD
5550
DB
030H.070H.030H.030H.030H.030H.OFCH.000H I 1 0_31
FeFE 78CCOC3860CCFCOO
5551
5552
De
De
078H,OCCH,00CH.038H,060H.OCCH.OFCH.000H ; 2 o_32
FeOb 78CCOC380CCC7800
FeOE lC3C6CCCFEOClEOO
5553
De
01CH,03CH,06CH.OCCH,OFEH,OOCH,OIEH,000H ; 4 o_34
Fel6 FCCOFBOCOCCC7800
5.5.54
DB
OFCH.OCOH.OF8H,OOCH.00CH.OCCH.078I-hOOOH ; 5 o_35
FelE 3860COF8CCCC7600
5555
De
038H,060H,OCOH,OF8H.OCCH,OCCH.078H.000H ; 6 o_36
FeZ6 FCCCOC1830303000
5556
DB
OFCH,OCCH.OoCH.018H.030H,030H,030H,OOOH ; 7 0_37
FC2E 78CCCC78CCCC7aOO
5557
DB
078H.OCCH.OCCH.076H,OCCH,OCCH.076H,OOOH ; 8 o_38
Fe36 76CCCC7COC187000
5558
DB
078H.OCCH.OCCH.07CH.00CH,OI8H.070H.OOOH ; 9 o_39
Fe3E 0030300000303000
5559
DB
000H.030ii,030H,OOOH.000H.030H,030H.OOOH I
: D_3A.
FC46 0030300000303060
5560
DB
000H.030H.030H.000H,OOOH.030H,030H,060H ;
; 0_38
FC4E 183060C060301800
5561
DB
018H,030H,060H.OCOH.060H.030H,OI6H.000H • < D_X
FC56 QOOOFCOQOOFCOOOO
• D_2E
078H.OCCH,OOCH.038H.OOCH.OCCH.078H.000H ; 3 o_33
=
5562
DB
OOOH,OOOH.OFCH,OOOH,OOOH.OFCH.OOOH.OOOH ;
FeSE 6030180C18306000
5563
DB
060H.030H,OI6H,ooCH,OI8H,030H,060H,000H ; > 0_3E
FC6b 78CCOC1630003000
5564
DB
078H.OCCH,OOCH,OI8H.030H,OOOH,030H.000H ; ? 0_3F
FC6E 7CC6DEOEDEC07800
5565
DB
Fe76 307&CCCCFCCCCCOO
5566
DB
030H,078H,OCCH.OCCH,OFCH,OCCH.OCCH.000H ; A D_41
Fe7E Feb66b lC6666FCOO
5567
DB
OFCH,066H.066H,07CH.066H,066H.OFCH.000H I B D_42:
07CH.OC6H,OOEH,OOEH,OOEH,OCOH,078H,OOOH i
~
o_30
o_40
FeS6 3C66COCO(;0663COO
5566
DB
03CH.066H.OCOH.OCOH.OCOH,066H.03CH,000H ; C 0_43-
FeSE F86C6666666CF800
5569
DB
OF8H,06CH,066H.066H.066H,06CH,OF8H,OOOH ; 00_44
FC96 FE62687B6862FEOO
5570
DB
OFEH.062H.068H,078H,068H,062H.OFEH.000H I E D_45
FC9E FE6268786860Fooa
5571
DB
OFEH.06~H.068H.078H.068H.060H,OFOH,OOOH
FCA.6 3C66COCOCE663EOO
5572
DB
03CH,066H,OCOH.OCOH,OCEH,066H,03EH,OOOH ; G 0_47
FCAE eeeeeeFccceceeoo
5573
DB
OCCH.OCCH,OCCH.OFCH,OCCH.OCCH.OCCH,OOOH ; H D_48
DB
078H.030H,030H.030H.030H.030H.078H,OOOH ; 10_49
; F o_46
FeSE> 7830303030307800
5574
FeBe lEococoeeece7800
5575
DB
OlEH.00CH,OOCH,OOCH.OCCH.OCCH.078H,OOOH ; J 0_4A.
Fee6 E6666C786C66E600
5576
DB
OE6H.066H.06eH,078H.06CH,066H,oE6H.000H i K 0_4B
FetE F06060606266FEOO
5577
DB
OFOH.060H.060H.060H,062H,066H,OFEH.000H ; l D_4C
FCD6 C6EEFEFED6C6C600
5576
FceE C6E6F6DECEC6C600
5579
De
De
OC6H,OE6H.OF6H.OOEH.OCEH.OC6H.OC6H,OOOH ; N 0_4E
FCE6 386CC6C6C66C3800
0(6H,OEEH.OFEH.OFEH,006H,OC6H.OC6H,OOOH ; M o_40
5580
DB
038H.06CH,OC6H,OC6H,OC6H,06CH.038H,OOOH ; 0 D_4F
feEE FC66667C6060FOOO
5581
DB
OFCH.066H,066H.07CH,060H,060H.OFOH,OOOH ; PO_50
FCF6 78CCCCCCOC781COO
5582
DB
078H.OCCH,OCCH.OCCH.OOCH.078H.OICH,000H ; Q o_51
FCFE FC66667C6C66E600
5583
DB
OFCH.066H,066H.07CH,06CH.066H.OE6H,OOOH i R o_52
F006 78CCE0701CCC7800
5584
DB
078H,OCCH.OEOH.070H,OlCH,OCCH.078H,OOOH ; 5 0_53
FOOE FCB4303030307800
5585
DB
OFCH,OB4H.030H.030H.030H.030H.078H.OOOH ; TO_54
FOl6 ccCCCCCtCCCCFCOO
5586
DB
OCCH,OCCH,OCCH.oeCH.OCCH.OCCH.OFCH,OOOH I
FOIE cccceCCCCC783000
5587
DB
OCCH.OCCH,OCCH,OCCH,OCCH.078H.030H,OOOH ; V o_56
F026 C6C6C606FEEEC600
u
0_55
5588
DB
OC6H,OC6H.OC6H,006H.OFEH,OEEH,OC6H,OOOH ; W 0_57
F02E C6C66C38386CC600
5589
DB
OC6H,OC6H.06CH.038H.03SH,ObCH,OC6H,OOOH • X o_58
FOlt! CCCCCC7830307800
5590
DB
OCCH.OCCH,OCCH.078H,030H,030H,078H,OOOH • YO_59
OFEH.OC6H,08CH,OlBH,032H,066H,OFEH.000H I Z 0_5A
F03E FEC68Cla3266FEOO
5591
DB
F046 7860606060607800
5592
DB
078H,060H.060H,060H.060H,060H.078H.OOOH J [ o_58
F04E C060301aOC060200
5593
DB
OCOH,060H,030H.OI8H.a.oCH,006H,002H.000H I BACKSLASH D_5C
DB
078H,Ol8H.018H.OIBH,018H,OIBH.078H.000H J I 0_50
F056 7818181818187800
5594
F05E 10386CC600000000
5595
DB
010H.038H,06CH.OC6H,OOOH.000H.000H,OOOH I CIRCUHFLEX 0_5E
F066 OOOOOOOQOOOOOOFF
5596
DB
OOOH.OOOH,OOOH,OOOH,OOOH.OOOH,OOOH.OFFH I _ 0_5F
F06E 3030180000000000
5597
DB
F076 0000780C7(CC7600
5598
DB
000H,000H.078H,OOCH.07CH,OCCH.076H,OOOH ; LOWER CASE A 0_61
F07E £060607C66660COO
5599
DB
OEOH,060H,060H.07CH.066H.066H.00CH,OOOH ; L.C. B 0_62
F086 000078CCCOCC7800
5600
DB
OOOH.OOOH,078H.OCCH.OCOH.OCCH,078H,OOOH I L.C. C o_63
FoaE lCOCOC7CCCCC7600
5601
DB
01CH,00CH,OOCH,07CH.OCCH,OCCH.076H.OOOH J loC. 0 0_64
F096 00007BCCFCC07800
5602
DB
000H.OOOH,078H.OCCH.OFCH,OCOH.078H,OOOH ; loC. E 0_65
F09E 386C60F06060FOOO
5603
DB
038H.06CH,060H,OFOH.060H,060H,OFOH.000H ; L.C. F 0_66
030H. 030H ,018H. OOOH, OOOH, OOOH. OOOH, OOOH ;
• o_60
FDA6 000076CCCC7COCF8
5604
DB
OOOH,OOOH.076H.oeCH,OCCH,07CH,00CH.OF8H ; loC. G 0_67
FOAE E0606C766666E600
5605
DB
OEOH,060H.06CH.076H,066H,066H.OE6H.000H I L.C. H 0_68
FOB6 3000703030307800
5606
DB
030H,OOOH.070H.030H.010H.030H,078H,OOOH ; L.C. I 0_69
FOBE OCOOOCOCOCCCCC78
5607
DB
OOCH.000H.00CH.OOCH,00CH.OCCH,OCCH,078H ; L.C. J 0_6A.
FOC6 E060666(786CE600
5608
DB
OEOH.060H,066H.06CH.078H,06CH.OE6H,OOOH ; L.C. K 0_66
FOCE 7030301030307800
5609
DB
070H.030H.030H.030H.030H,030H.078H,000H ; loC. L 0_6e
FOD6 OOOOCeFEFE06C600
5610
DO
OOOH.OOOH.OCCH.OFEH,OFEH.006H,OC6H.OOOH i loC. H o_60
faDE OOOOF8CCCCCCCCOO
5611
DB
OOOH.OOOH,OF8H.OCCH.OCCH.OCCH,OCCH,OOOH ; L.C. N 0_6E
FOE6 000078CCCCCC7600
5612
DB
000H,OOOH,078H,OCCH.OCCH.OCCH.078H,OOOH I L.C. OO_6F
FDEE 00000C66667C60FO
5613
DB
000H,OOOH.ODCH.066H,066H.07CH.060H.OFOH
FDF6 000076CCCC7COCIE
5614
DB
OOOH,OOOH.076H.OCCH,OCCH.07CH,OOCH,01EH I L.C. Q 0_71
FOFE OOOOOC766660FOOO
5615
DB
OOOH,OOOH,ODCH.076H,066H,060H.OFOH,OOOH I L.C. iii o_72
FE06 00007CC0780CF800
5616
DB
000H,OOOH.07CH,OCOH,078H.00CH.OF6H.OOOH I L.C. S D_73
HOE 10307C3030341800
5617
DB
010lt,030H.07CH.030H.030H,034H,018H,OOOH
FE16 0000CCCCCCCC7600
5618
DB
OOOH.000H.OCCH,OCCH.OCCH,OCCH,076H.000H I L.e. U o_75
FEIE 0000CCCCCC783000
5619
DB
OOOH,OOOH.OCCH,OCCH,OCCH.078H.010H,OOOH I L.e. Y o_76
A-78
System BIOS
L.C. P o_70
L.C. T o_74
lOC OBJ
LINE
SOURCE
F£26 DOODC6D6FEFE6CQO
5620
08
FE2:E 0000C66C386CC600
5621
5622
08
OOOH,OOOH.OC6H,06CH,038H.06CH.OC6H.OOOH ; L.C. X D_78
08
OOOH.OODH.DCCH,DCCH.OCCH,07CH,DOCH,DFaH I L.C. Y D_79
08
ODOH.OaOH,OFCH,D96H,030H.064H.OFCH.OOOH I L.c. Z D_7A
DB
DB
DB
DB
DB
DICH.030H.030H.OEDH.030H.030H,01CH,OOOH I ( 0_78
01athOlaH,0l8ti,OOOH,OI8H,018H.0l8lI,OOOH I I D_7C
OfOH.030H.030H,OltH.030H.030H.OEOH,OOOH I ) D_7D
FEl6 OOOOCCCCCC7COCf&
FElf 0000FC'983064FCOO
FE46 lC3030£030301COO
5623
5624
FE4E 1818180018181800
5625
FE56 E030301C3030£000
.. 2.
FESE 760COOOOOOOOOOOO
. . 27
fE66 DO l0386CC6C6FEOO
..2.
DDDH,OOOH.DC6H.OD6H.OFEH,OFEH,06CH,DQOH I l.C ... D_77
076H.ODCH.OOOH.OOOH.OOOH.OODH.OOOH,OOOH I TILDE 0_7E
OOOH,OlOH,038H,06CH,DC6H,OC6H.OFEH.OOOH I DELTA D_7F
562.
5630
5631
5--- INT 1. ---~---------------------~--------~-~-------; TIME.OF_DAY
5632
5
5633
I
5634
; INPUT
5635
THIS ROUTINE ALLOWS THE CLOCK TO 8E SET /READ
(AH)
=0
READ THE CURRENT CLOCK SETTING
5637
RETURNS CX
DX
5638
AL
5636
5639
=HIGH PORTION OF COUNT
= LOW PORTION Of COUNT
= 0 IF TIHER HAS NOT PASSED
24 HOURS SINCE lAST READ
5640
<>0 IF ON ANOTHER DAY
5641
(A") = 1
5642
CX
5643
5644
OX
= HIGH PORTION OF COUNT
= LOW PORTION OF COlIfT
; NOTE: COUNTS OCCUR AT TH£ RATE OF
5645
1193180/65536 COUNTS/sEC
5646
5647
5648
SET THE CURRENT CLOCK
(OR ABO\JT 18.2 PER SECOND -- SEE EQU;'TES BELOW)
5- -- -.- -- -------------------------- -------- - -- -------- --ASSlR'IE CS:CODE.DS:DATA
FE6£
5649
00.
FE6£
5650
TIME_OF _DAY
FE6E F8
5651
STI
FE6F IE
5652
PUSH
OS
FE70 E8E6F8
5653
CALL
DDS
FE73 OAE4
5654
OR
AH,AH
OFE6EH
PRDC
FAR
; INTERRUPTS BACK ON
j
SAVE SEGHENT
; AH=O
5655
JZ
TZ
j
FE77 FEte
5656
DEC
AH
; AH=1
FE79 7416
5657
JZ
T'
; SET.TIME
FE1B
5658
FE1B F8
5659
FE7C IF
5660
STI
pop
DS
FE7S 7407
FE7D CF
5661
FE7f
5662
FE7E F;'
5663
FE7F ;'07000
5664
FE82 C606700000
5665
TI:
RE;'D_TIHE
J TOD_RETURN
I INTERRUPTS BACK ON
j
IRET
RECOVER SEGHENT
1 RElUlN TO CALLER
T2:
; READ.TIHE
ell
I1D'I
ItDV
I NO TIHER INTERRUPTS IoItILE READING
Al,TIMER_OFL
TIHER_OFL.O
FE87 880E6EOO
5666
MOV
ex. TIMER_HIGH
fE8B 88166COO
5667
ItDV
FE8F EBEA
5668
JHP
OX, TIMER. LOW
TI
FE91
FE91 FA
5669
5670
T3:
I GET OVERFLOW. At«) RESET TlIE FlAS
; TDD_RETLJiN
J SET_TIME
eLI
5 NO INTERRUPTS MULE WRITING
FE92 89166COO
5671
HOY
TIMER_LOW.DX
FE96 890£6EOO
5672
HOY
TIMER_HIGH
FE9;' C6067000DO
5673
HOY
TIMER_OFL.O
I SET THE TIHE
I RESET OVERFLOW
FE9F EBDA
56 74
JHP
TI
I TOD_RETURN
5675
5676
TIME_OF_DAY
5677
5678
; ----- - ----- ---- --- ------------------------ -------------I THIS ROUTINE HAt-I)LES THE TIMER INTERRUPT FROI1
5679
ENJP
CHANNEL 0 OF THE 8253 TIMER. INPUT FREQUENCY
IS 1.19318 MHZ AND THE DIVISOR IS 65536, RESULTING
5680
5681
I
5682
I
5683
; THE INTERRUPT
IN APPROX. 18.2 INTERRUPTS EVERY SECOND.
H~LER
HAINTAINS A COUNT OF INTERRUPTS :
5684
J
SINCE POWER ON TIME. NiICH HAY 8E USED TO ESTABLISH
5685
1
TIHE OF DAY.
5686
; THE INTERRUPT HANDLER ALSO DECREMENTS THE HDTOR
5687
;
5688
I
WIll TURN OFF THE DISKETTE HOTOR, AN) RESET THE
5689
;
HOTOR RUNNING FLAGS.
CONTROL CCUIT OF TItE DISKETTE, AND WHEN IT EXPIRES,
5690
; THE INTERRUPT HANDLER WILL ALSO INVOKE A USER ROUTINE:
5691
I
THROUGH INTERRUPT 1CH AT EVERY TIME TICK.
5692
J
tlJST CODE A ROUTINE ;.tII PLACE THE CORRECT ADDRESS IN :
I
THE VECTOR TABLE.
5693
5694
FE"
FE. .
.ex
THE USER
:
1--------------------------------------------------------
5695
OFEASH
5696
PRDC
FAA
System BIOS A-79
LINE
LOC OBJ
SOURCE
FEAS FB
5697
STI
FEA& IE
5698
PUSH
FEA7 50
5699
PUSH
I INTERRUPTS BACK ON
OS
AX
FEA6 52.
5700
PUSH
OX
I SAVE MACHINE STATE
FEA9 EBAOFB
5701
5702
5703
CALL
DDS
TIMER_LOW
JNZ
T4
5704
INC
TIMER_HIGH
, INCREMENT TIME
,
CMP
TIMER_HIGH. DI8H
FEAt FF066COO
FEBO 7504
FEBl FF066EOD
FEB6
FEBb 833E6EOO18
FEBS 7515
FEBD 813E6C008000
FEe3 7500
5705
5706
INC
J TEST_DAY
INCREMENT HIGH WORD OF TIME
,
14:
JNZ
T5
5707
5708
CMP
TIMER_LOW.OaOH
5709
JNZ
T5
TEST_DAY
) TEST FOR COUNT EQUALING !4 HOURS
i
DISKETTE_CTL
I
DISKETTE_eTl
5710
5711
5712
; ------ TItiER HAS GONE 24 HOURS
FECS 2.BCO
5713
SUB
FEt7 A36EOO
5114
5715
MDV
AX ,AX
TIMER_HIGH. AX
FEe;. ,6.36COO
fECD C606700001
5716
"OV
MOV
TIHER_OFL,I
TIMER_LOIol,AX
5717
5718
i ------ TEST FOR DISKETTE TIME OUT
5719
FEDl
5720
FEDZ FEOE4000
5121
I DISKETTE_eTL
T5:
DEC
JNZ
HOTOR_COUNT
T.
I RETURN IF COUNT HOT OUT
5723
AND
MOTOR_STATUS.OFOH
1 TURN OFF HOTOR RUNNING SITS
FEDD BoDe
5724
AL.OtH
FEDF BAF203
5725
"OV
HOV
DX.03F2H
,
OUT
OX.Al
1 TURN OFF THE HOTOR
5722
FE06 750B
FEOS
S02~3FOOFO
FEE2 EE
572~
FEE3
5727
16:
FDC eTl PORT
1 TIMER_RET:
FEE3 CDIC
572S
INT
5729
HOV
'tH
Al,EOI
TRANSFER CONTROL TO A USER ROUTINE
FEES BOZO
FEE7 E620
5730
OUT
020H.AL
END OF INTERRUPT TO 8259
FEE9 SA
5731
POP
OX
FEEA 58
5732
POP
AX
FEEB IF
5733
POP
OS
FEEC CF
5734
5735
j
RESET MACHINE STUE
; RETURN FROH INTERRUPT
IRET
TIMER_lIoIT
ENDP
5736
5737
5738
1------- -- --------------- -----------------------; THESE ARE THE VECTORS WHICH ARE MOVED INTO
5739
I THE 8086 INTERRUPT AREA. DURING POWER ON.
5740
i ONLY THE OFFSETS ARE DISPLAYED HERE. CODE
5741
; SEGMENT WILL BE ADDED FOR ALL OF THEM. EXCEPT:
5742
; WHERE NOTED.
5743
1------------------------ ------ ------------------
5744
ASSUME
CS:CODE
ORG
OfEF3H
FEF3
5745
FEF3
5746
FEF3 ASFE
5747
OW
OFFSET TIHER_INT
FEF5 87E9
5748
OW
OFFSET
KB_INT
FEF7 23FF
5749
OW
OFFSET
FEF9 23FF
011
011
011
011
VECTOR_TAB LE
LABEL
WORD
5750
OW
OFFSET
FEFB 23FF
5751
5752
FEFF 57EF
5753
F,FOI 23FF
5754
FF03 65FO
5755
FFOS 40F8
5756
ow
ow
ow
ow
ow
ow
OFFSET
FEFO 23FF
FF07 4IF8
5757
OW
OFFSET HEHDRY_SIZE_OET
FFO~
59EC
5758
OffSET DISKETTE_IO
FFOB 39E7
5759
OFFSET
I VECTOR T.6.BLE FOR HOVE TO INTERRUPTS
,
1 INTERRUPT B
INTERRUPT C
INTERRUPT 0
OFFSET DISK_INT
OFFSET
011
INTERRUPT &
INTERRUPT 9
I INTERRUPT A
INTERRUPT E
I INTERRUPT F
OFFSET VIDEO_IO
INTERRUPT 10H
OFFSET EQUIPMENT
INTERRUPT 11H
• INTER!;!UPT 12H
5760
ow
ow
ow
CASSETTE_IO
; INTERRUPT 15H( FORMER CASSETTE 10 I
FFOF !!EE6
5761
OW
OffSET KEYBOARD_IO
• INTERRUPT 16H
FFll 02EF
5762
ow
OFFSET PRINTER_IO
ow
ow
OOOOOH
FFOO 59F8
INTERRUPT 13H
OFFSET RS232_ID
1 INTERRUPT 14H
INTERRUPT 17H
5763
Ff13 0000
5764
5765
OF600H
; INTERRUPT 18H
,
MUST BE INSERTED INTO TABLE LATER
5766
Ff15 F2E6
5767
FFI7 6EFE
5766
ow
ow
OFFSET BOOT_STRAP
INTERRUPT 19H
TIHE_OF _DAY
I INTERRUPT lAH -- TINE OF 0Al'
FF19 4BFF
57~9
OW
DUMMY_RETURN
FFIB 4BFF
5770
0"
DUMMY_RETURN
INTERRUPT IBH -- KEYBO.6.RD BREAK ADDR
rFlD A4FO
5771
ow
VIDEO_PARHS
FFIF C7Ef
5772:
OW
OFFSET DISK_BASE
,
,
FF21 0000
5773
OW
0
I INTERRUPT IF -- POINTER TO VIDEO EXT
A-SO
System BIOS
INTERRUPT IC -- TIHER BREAK ADDR
I INTERRUPT 10 -- VIDEO PARAMETERS
INTERRUPT IE -- DISK PARHS
LOC OBJ
LINE
SOURCE
5774
5775
5776
5777
FF23
FFZ3 IE
FF24 52
; ~ -- -- - -- --- ---- -- -- --- - - -- -- ------- ------- --- - - -- ------; TEMPORARY INTERRUPT SERVICE ROUTINE
1. nus ROUTINE IS AlSO LEFT IN PLACE AFTER THE :
5778
POWER ON DIAGNOSTICS TO SERVICE UNUSED
5779
5760
INTERRUPT VECTORS. LOCATION 'INTRJLAG' WILL
CONTAIN EITHER: 1. LEVEL Of HARDWARE INT. THAT
5761
CAUSED CODE TO BE EXEC.
5782
2. 'FF' FOR NOH-HARDWARE INTERUPTS THAT WAS
5783
5764
5785
5786
5787
5768
5789
EXECUTED ACCIDENTLY.
011
ASS\J'1E
NEAR
DS:DATA
PUSH
OS
PROC
PUSH
OX
; SAVE REG AX CONTENTS
PUSH
AX
CALL
DDS
MDV
FF2B E620
5790
5791
5792
Al.OBH
INTAOO,Al
FF2D 90
5793
NOP
FF2E £420
5794
5795
5796
MOV
ff25 50
FF26 EB30FB
FF2.9 BOOB
fF30 BAED
FF32 OAe4
FF34 7504
FF36 64FF
FF38 EBOA
FF3A
FFlA f421
FFX OAC4
FF3E f621
FF40 80020
FF42 E620
FF44
5799
5600
5801
5802
5803
5804
5805
5806
FF49 SA
FF4A IF
5810
FF4S
5811
5812
5813
FF48 58
FF4S CF
IN
DR
5797
5798
5607
5808
5809
FF44 88266800
OUT
JNZ
MDV
JMP
I READ IH-SERVICE REG
(FIND OUT WHAT LEVEL BEING
;
I SERVICED)
AL.INTAOO
AH.Al
AL.AH
HW_INT
AH,OFFH
SHORT SET_INTR_FlJ.G
i GET LEVEL
; SAVE IT
; DO? (NO HARDWARE ISR ACTIVE)
I SET fLAG TO ff IF NON-HOWARE
HW_INT:
IN
OR
OUT
MOV
OUT
Al,INTAOl
Al.AH
INTAOl.,u
Al,Eor
INTAOQ,Al
I GET MASK VALUE
; HASK OFF lVl BEING SERVICED
SET_INTRJlAG:
MOV
INTR_FLAG.AH
pop
AX
POP
OX
POP
OS
DUI1t1Y_RETURN:
IRET
ENDP
011
• SET FLAG
; RESTORE REG AX CONTENTS
; HEED IRET FOR VECTOR TABLE
5814
FFS3
FFS3 Cf
5815
5816
; -----------------------------------------------; DUHMY RETURN FOR ADDRESS COt1PATlBILITY
5817
5818
5819
i -----------------------------------------------O'G
OFFS3H
IRET
5820
5821
5822:
;-- IHT 5 --------------------------------------------------------------THIS LOGIC WIll BE INVOKED BY INTERRUPT OSH TO PRINT THE
5823
5824
S8ze
SCREEN. THE CURSOR POSITION AT THE TIME THIS ROUTINE IS INVOKED:
WILL BE SAVED AND RESTORED UPON COMPLETION. ntE ROUTINE IS
INTENDED TO RUN WITH INTERRUPTS ENABLED. IF A SUBSEQUENT
• PRINT SCREEN' KEY IS DEPRESSED DURING THE TIME THIS ROUTINE
IS PRINTING IT WILL BE IGNORED.
ADDRESS 50:0 CONTAINS ntE STAnIS OF THE PRINT SCREEN:
5829
5830
50:0
5825
5826
582:7
=0
5831
5832
5633
=1
5834
=255
EITHER PRINT SCREEN HAS HOT BEEN CALLED
OR UPON RETURN FROM A CALL THIS INDICATES
A SUCCESSFUL OPERATION.
PRINT SCREEN IS IN PROGRESS
ERROR ENCOUNTERED DtRING PRINTING
5835
5836
5837
1---- --- - - - -- - --- -- -- - - - - - --- - -- - ------ ------------------- -- ____ --_ - ____ _
PRINT_SCREEN
FF54 FB
5838
5839
FF550 IE
5840
PUSH
OS
FF56 50
5841
PUSH
AX
FF54
FF54
ASSUME
ORG
CS:CODE.DS:XXDATA
OFF54H
PROC
FAR
ST!
I I1UST Rlki WITH INTERRUPTS ENABLED
FFS7 53
5842
PUSH
OX
FF58 51
5843
5844
PUSH
ex
FF59 52
PUSH
OX
FF5A 885000
5845
HOV
AX,XXDATA.
FF5D 8ED8
sa46
MOV
OS,AX
FF5F 803EOOOOOI
5647
CMP
FF64 745F
5848
JZ
FF66 C606000001
5849
MOV
STATUS_BYTE,l
EXIT
STATUS_BYTE,l
FF68 B40F
5850
HOV
AH.15
I t1lJST USE 50: 0 FOR DATIl. AREA. STORAGE
I WIll USE THIS LATER FOR CUlSOR UtlITS
; WI Ll HOLD CUi!RENT Ct.RSOR POSITION
• HEX 50
I SEE If PRINT ALREADY IN PROGRESS
I JUl'1P IF PRINT ALREADY IN PROGRESS
I It.oICATE PRINT NOW IN PROGRESS
; WILL REQUEST THE CURRENT SCREEN HOOE
System BIOS
A-Sl
LINE
LOC OSJ
SOURCE
INT
5651
5852
fFt.O COlO
lAll::HODE
10H
[AH ):::NUt1BER COLUMNS/LINE
5853
5854
[BH J=VISUAl PAGE
j ----------------------------------------------------------------
585S
AT THIS POINT WE KNOW THE COllJl1HS/lINE ARE IN
5656
5857
(Axl AND THE PAGE IF APPLICABLE IS IN ISH). THE STACK
HAS OS,A)(,BX,CX,DX PUSHED. (AJ HAS VIDEO HOOE
1----------------------------------------------------------------
FF6F 8Ace
5858
5859
FF71 8519
5860
HOV
MOV
CH,25
FF73 E85500
5861
CALL
CRLF
i CARRIAGE RETURN LINE FEED ROUTINE
FF76 51
5862
5863
CX
AH,3
I SAVE SCREEN BOUNDS
fF77 6403
FF79 COlO
PUSH
MOV
I WI\L NOW READ THE CURSOR.
CL,AH
I WILL MAKE USE OF I CX) REGISTER TO
; CONTROL ROW & COLUNNS
5864
INT
10H
I AND PRESERVE ntE POSITION
FF75 59
5865
FF7C 52
5866
POP
PUSH
CX
OX
I RECALL [BH );;VISUAL PAGE
XOR
OX.OX
; WILL SET CURSOR POSITION TO [0.01
FF7D 3302
5867
5868
; RECALL SCREEN BOUNDS
; ------- --------------------- ----------------------------- -------
5869
5670
THE LOOP FROM PRllO TO THE INSTRUCTION PRIOR TO PRI20
IS THE LOOP TO READ EACH CURSOR POSITION FROM THE
5871
SCREEN AND PRINT.
FF7F
5872
5873
,---------------------------------------------------------------PRllO:
fF7F 8402
5874
AH.2:
, TO INDICATE CURSOR SET REQUEST
fF81 COlO
5875
INT
IOH
1
H83 6408
5876
MOV
AH,8
I
FFBS COlO
5877
INT
10H
I CHARACTER NOW IN [AL)
FF87 OACO
5878
OR
FF89 7502.
san
JHZ
AL.AL
PRIlS
I JUMP IF VALID CHAR
fFBB B020
seeo
MOV
Al. '
; MAKE A BLANK
FFeD
5881
FfeD 52
5882
freE 3302
Ff90 32E4
FFn COll
5883
5884
PUSH
XOR
OX
DX,DX
MOV
NEW CURSOR POSITION ESTABLISHED
TO INDICATE READ CHARACTER
; SEE If VALID CHAR
PRIlS:
AH.AH
ff94 5A
5....
XOR
INT
pop
; SAVE CURSOR POSITIOH
; INDICATE PRINTER 1
; TO INDICATE PRINT CHAR IN [AU
17H
DX
; PRINT THE CHARACTER
; RECALL CURSOR POSITION
FF95 F6C425
5887
TEST
AH. 25H
; TEST fOR PRINTER ERROR
FF98 7521
5886
JNZ
ERRlO
JUMP IF ERROR DETECTED
FF9A FEel
5889
DL
n.OL
PRIlO
OL.DL
AH,DL
; ADVANCE TO NEXT COLlJt1N
I SEE IF AT ENO OF LINE
; IF NOT PROCEED
.....
FF9C 3ACA
5890
FF9E 75DF
5891
HAD 3202
5892
FFA2 8AE2:
5893
INC
CNP
JNZ
XOR
MOV
FFA4 52
5894
PUSH
ox
i
FFAS E8noo
5895
FFAS 5A
CA.LL
POP
CRLF
5896
OX
; LINE FEED CARRIAGE RETURN
; RECALL CURSOR POSITION
; BACK TO COLUMN 0
{AH1;;0
SAVE NEW CooSOR POSITION
51398
INC
CHP
DH
CH,OH
; ADVANCE TO NEXT LINE
fFAB 3AEE
FFAO 7500
5899
JNZ
PIUlO
; IF NOT CONTINUE
FFAF
5900
FFAF SA
5901
POP
FFBD 6402
5902
5903
5904
MOV
DX
AH,2
; RECALL CURSOR POSITION
; TO INDICATE CURSOR SET REQUEST
IDH
STATUS_SHE.D
SHORT EXIT
; CURSOR POSITION RESTORED
; INDICATE FINISHED
OX
I
51397
FF"9 FEe6
FFB2 COlO
FFB4 C606000000
5905
5906
FFB9 EBOA
FFBB
FINISHED'?
PRI2.0:
INT
MOV
JMP
; EXIT THE ROUTINE
ERRlO:
FFBB 5A
5907
pop
FFBC B402.
5908
MOV
AH,2
GET CURSOR POSITION
; TO REQUEST CURSOR SET
INT
IDH
; CooSOR POSITION RESTORED
FFBE COlO
5909
FFCO
5910
FFeD C6060000FF
5911
FFCS
5912
ERR20 :
; INDICATE ERROR
HOV
EXIT:
FfCS 5A
5913
pop
fFCb S9
59Ft
POP
FFC7 56
5915
FFee 58
5916
POP
POP
FFC9 IF
5917
POP
FFCA CF
5918
5919
IRET
PRINT_SCREEN
ox
ex
ox
; RESTORE ALL THE REGISTERS USED
AX
OS
ENDP
592.0
592.1
;------ CARRIAGE RET1JRN. LINE FEED SUBROUTINE
592.2
CR LF
PROC
fFce
5923
FFee 3302
5924
xaR
FfeD 32E4
5925
XOR
NEAR
i PRINTER 0
; WILL NOW SEND INITIAl IF ,CR
TO PRINTER
592:6
FFCF BOOA
A-82
5927
System BIOS
Mav
AL.12Q
,LF
LOC OBJ
LINE
SOURCE
1NT
FFD3 32:E4
5929
XOR
1'"
AH,AH
FFDS BOOD
5930
MOV
AL,15Q
; SEND THE LINE FEED
; NOW FOR THE CR
; CR
FFD7 COIl
5931
1NT
17"
; SEND THE CARRIAGE RETURN
FFOI COil
FF09 t3
5926
RET
5932
5933
CRLF
ENDP
5934
5935
1---------------------------------------------------------------
5936
PRINT A SEGMENT VALUE TO LOOK LIKE" 20 BIT ADDRESS
5937
OX truST CONTAIN SEGMENT VALUE TO BE PRINTED
5938
; - - - -- - --- - - - -- -- -- -- -------- - --- - - -- - - --- -- --- ----- - - - ---.-----
PRT_SfG PROC
FFOA
5939
FfOA 6,6,C6
5940
ItOV
Al,DH
FFoe E8ACF9
5941
CALL
XPC_BYTE
FFDF 8AC2
5942
HOV
Al,OL
FFEl E8A7F9
CALL
XPC_BYTE
HOV
AL.· O'
FFE9 B020
5943
594.
5945
5946
MOV
Al, '
FFEB E8AEF9
5947
CALL
PRT_HEX
FFEE C3
5948
RET
FFE4 B030
FFE6 E883F9
5949
CAll
NE....
;GET HSB
jLSB
I PRINT A. '0
PRT_HEX
;SPACE
PRT_SEG ENOP
5950
5951
COOE
ENIlS
5952
5953
; --------------------------------
5954
5955
5956
POWER ON RESET VECTOR
; ------------------ - ------------VECTOR
SEGMENT AT OFFFFH
5957
5958
0000 EASBEOOOFO
5959
5960
0005 31312:F30382F38
5962
j----- POWER ON RESET
JHp
RESET
DB
'11106/82'
5961
"
5963
5964
VECTOR
; RELEASE MARKER
ENDS
END
System BIOS A-83
LOC OBJ
LINE
SOURCE
$TITlE( FIXED DISK I3JOS FOR IBM DISK CONTROLLER)
i-- INT 13 ------------------------------------------------------
FIXED DISK I/O INTERfACE
nus INTERFACE PROVIDES ACCESS TO 5 1/4" FIXED DISKS
THROUGH THE IBM FIXED DISK CONTROLLER.
9
10
11
;----------------------------------------------------------------
12
13
1--------- ------------------------------------------------------THE BIOS ROUTINES ARE MEANT TO BE ACCESSED THROUGH
14
SOfTWARE INTERRUPTS ONt Y.
15
THE LISTINGS
16
NOT FOR
17
ABSOLUTE
18
VIOLATE THE STRUCTURE AND DESIGN OF BIOS.
19
2.
21
ANY ADDRESSES PRESENT IN
ARE INCLUDED
REFERENCE.
ONLY FOR
COMPLETENESS.
APPLICATIONS WHICH
ADDRESSES
WITHIN
THE
REFERENCE
CODE
SEGMENT
; ---------------------------------------------------------------INPUT
I AH = HEX VALUE 1
22
23
24
,.
25
27
26
29
3.
31
32
n
UJO=OO RESET DISK (DL = 80H.81HI /DISKETIE
(AH)=ol READ THE STATUS OF THE LAST DISK OPERATION INTO (ALI
HOTE: DL < 80H - DISKETIe
DL ;. 80H - DISK
(AHI=02 READ THE DESIRED SECTORS INTO MEMORY
(AHI=03 WRITE THE DESIRED SECTORS FROM MEMORY
IIlHJ=04 VERIFY THE DESIRED SECTORS
tA.HJ=DS
(.6.HI=06
(AHI=07
(AHI=08
FORMAT
FORMAT
FORMAT
RETURN
THE
lliE
THE
THE
DESIRED TRACK
DESIRED TRACK AND SET BAD SECTOR FLAGS
DRIVE STARTING AT THE DESIRED TRACK
CURRENT DRIVE PARAMETERS
34
35
3.
(A.HI=09 INITIALIZE DRIVE PAIR CHARACTERISTICS
3.
INHRRUPT 41 POINTS TO DATA BLOCK
(.6.H)=OA READ LONG
(AHI=OB WRITE LONG
39
4.
NOTE: READ AND WRITE LONG ENCOMPASS 512 + 4 BYTES ECC
(AHI=OC SEEK
41
44
IAH)=OD ALTERNATE DISK RESET (SEE DU
(AHI=OE READ SECTOR BUFFER
(AH)=OF WRITE SECTOR BUFFER.
(RECOMMENDED PRACTICE BEFORE FQRMATIINGI
45
(AHI=10 TEST DRIVE READY
46
IAHI=l1 RECAllBRATE
(AH)=12 CONTROLLER RAM DIAGNOSTIC
IAH)=n DRIVE DIAGNOSTIC
37
42
43
47
4.
49
5.
51
(AH 1=14 CONTROLLER INTERNAL DIAGNOSTIC
REGISTERS USED FOR FIXED DISK OPERATIONS
52
(OU
(oH)
{CHI
ICLI
.,.
53
55
5.
-
DRIVE NUt1BER
HEAD HUMBER
CYlINDER NUt1BER
SECTOR NUI1BER
160H-87H FOR DISK. VALUE CHECKED)
(0-7 ALLOWED, NOT VALUE CHECKED)
(0-1023. NOT VALUE CHECKED)(SEE CLI
tl-17. HOT VALUE CHECKED)
57
NOTE: HIGH 2 BITS OF CYLINDER NUMBER ARE PLACED
58
IN THE HIGH 2 BITS OF THE CL REGISTER
59
••.,
(ALI
.3
6Z
(INTERLEAVE VA.LUE FOR FORMAT 1-160)
(ES:BXI -
•4
65
••
67
66
69
70
71
(10 BITS TOTAU
NUMBER OF SECTORS (MAXIMUM POSSIBLE RANGE 1-80H.
FOR READ/WRITE LONG 1-79HI
ADDRESS OF BUFFER FOR READS ANO WRITES •
(NOT REQUIRED FOR VERIfY 1
; OUTPI.1T
AH = STATUS Of CURRENT OPERATION
STATUS BITS ARE DEFINED IN THE EQUATES BELOW
CY = 0 SUCCESSFUL OPERATION (AH=O ON RETURN)
CY
=
1
FAILED OPERATION (AH HAS ERROR REASON)
72
n
NOTE:
74
75
7.
77
A-84
Fixed Disk BIOS
ERROR llH INDICATES THAT THE DATA READ HAD A RECOVERABLE
ERROR WHICH ..,A5 CORRECTED BY THE ECC ALGORITHM. THE DATA
IS PROBABLY GOOD.
HOWEVER THE BIOS ROUTINE INDICATES AN
ERROR TO ALLOW THE CONTROLLING PROGRAM A CHANCE TO DECIDE
FOR ITSELF. THE ERROR HAY NOT RECUR IF THE OATA IS
LOC OBJ
LINE
SOURCE
REWRITTEN. (Al) CONTAINS TliE BURST LENGTH.
78
7'
80
IF DRIVE PARAMETERS WERE REQUESTED,
81
OL
82
= I«Jt1BER
83
OF CONSECUTIVE ACKNOWLEDGING DRIYES ATTACHED (0-2)
(CONTROLLER CARD ZERO TALLY ONLY)
84
DH :: tu.XlttJt1 USEABLE VALUE FOR HEAD NUMBER
85
eH :: MAXltn.n1 USEABLE VALUE FOR CYlINDER NlR1BER
Cl :: HAXII'1\JN USEABLE VALUE FOR SECTOR NllI1BER
ANO CYLINDER t-M'IBER HIGH BITS
8.
87
eea_
_0
REGISTERS WILL BE PRESERVED EXCEPT IoIiEN THEY ARE USED TO RETURN
91
92
NOTE; IF AN
INFORMATION.
93
E!;!~OR
IS REPORTED BY THe DISK CODE. THE APPROPRIATE
ACTION IS TO RESET niE DISK. THEN RETRY TliE OPERATION.
94
95
;------------------------------------------------------------------------
-.9'
UNOEF _ERR
9.
OOFF
OOBS
0060
97
SENSEJAIL
TIME_OUT
0040
100
0020
oooe
101
102
103
104
0009
105
DMA_BOUNDARY
0007
10.
INITJAIl
0005
107
BAD_RESET
0004
108
RECORD_NOTJHD
0002
109
BAD_ADDR_MARK
0001
110
BAD_CMO
0011
0010
BAD_SEEK
BAD_CNTLR
DATA_CORRECTED
BAD_ECC
BAD_TRACK
EOU
EOU
EOU
EOU
EOU
EOU
EOU
EOU
EOU
EOU
EOU
EOU
EOU
EOU
OFFH
I SENSE OPERATION FAILED
OBBH
I UNDEFINED ERROR OCCURRED
80H
; ATTACHMENT FAILED TO RESPOND
40H
; SEEK OPERATION FAILED
20H
I CONTROLLER HAS FAILED
11H
I ECC CORRECTED DATA ERROR
lOH
I BAD ECC ON DISK REAO
08H
J BAD TRACK FLAG DETECTED
09H
; ATTEMPT TO DHA ACROSS 64K BOUNDARY
07H
; DRIVE PARAMETER ACTIVITY FAILED
05H
I RESET FAILED
04H
02H
; REQUESTED SECTOR NOT FOUND
I ADDRESS HARK NOT FOUND
OlH
I BAD COt1tlAND PASSED TO DIS!( I/O
111
112
; ----------------------------------------
113
INTERRUPT AND STATUS AREAS
114
; ----------------------------------------
115
11.
0034
117
0034
118
D04C
11_
004C
0064
0064
121
120
DUI'nY
SEGMENT AT 0
DR.
HDISK_INT
DR.
ORG_VECTOR
OR.
122
123
BOOT_VEe
0078
0078
124
DISKETTE_PARH
0100
125
OR.
0100
0104
0104
12.
DISK_VECTOR
127
128
12_
DR.
7C00
7COO
130
131
LABEL
HF _TBl_VEt
OR.
BOOT_LOCN
DWORD
I DISK INTERRUPT VECTOR
13H*4
LABEL
DWORD
I BOOTSTRAP INTERRUPT VECTOR
19H*4
LABEL
DR.
; FIXED DISK IHTERRUPT VECTOR
00H*4
DWORD
I DISKETTE PARAMETERS
I£H*4
LABEL
DWORD
; HEW DISKETIE INTERRUPT VECTOR
040H*4
LABel
DWORD
; FIXED DISK PARAMETER VECTOR
041H*4
LABEl
DWORD
; BOOTSTRAP LOADER VECTOR
7COOH
LABEl
FAR
0 ....'
ENOS
DATA
SEGMENT AT 40H
0042
0042 (7 ??)
133
134
135
CHO_BLOCK
LABEl
BYTE
13.
HD_ERROR
DB
7 DUPI?)
006C
137
006C 1111
138
TIMER_LOW
0072
139
140
RESET]LAG
132
0042
0072: ???'?
0074
0074 11
0075 ??
0076 ??
0077 ?1
DR.
DR.
OIl.
141
DR.
142
4'H
; OVERLAYS DISKETIE STATUS
06CH
OW
; TIMER LOW WORD
72H
OW
; 1234H IF kEYBOARD RESET lHJERWAY
74H
DISK_STATUS
.8
; FIXED DISK STATUS BYTE
143
HF _NUN
CDHTROL_BYTE
DB
DB
DB
; COUNT OF FIXED DISK DRIVES
14.
145
14.
DATA
ENOS
147
148
COOE
SEGMENT
PORT_OFF
; CONTROL BYTE DRIVE OPTIOHS
; PORT OFFSET
14_
150
1--------------------------------------------------------
151
I HARDWARE SPECIFIC VALUES
152
153
CONTROLLER 110 PORT
154
> WHEN READ FROM:
Fixed Disk BIOS
A-85
LINE
LOC OBJ
SOURCE
CO~OlLER
155
HF _PORT+O - READ DATA (FROH
156
HF _PORT+l - READ CONTROLLER HARDWARE STATUS
157
TO CPU)
(CONTROLLER TO CPU I
158
HF]ORT+2: - READ CONFIGURATION SWITCHES
159
HF _PORT+3 - NOT USED
>
160
WHEN WRITTEN TO:
161
HF_PORT+O - WRITE DATA (FROM CPU TO CONTROLLER)
162
HF PORT-tl - COHTROLLER RESET
163
HF _PORT+:?: - CENERUE CONTROLLER SElECT PULSE
164
HF_PORT+3 - WRITE PATTERN TO DHA AND INTERRUPT
165
MASK REGISTER
166
0320
167
168
16.
Hf _PORT
0320H
; DISK PORT
0006
17'
RI_BUSY
EQU
000010008
; DISK PORT 1 BUSY BIT
0004-
171
RI_BUS
EOU
000001008
COt1t1ANO/OATA BIT
000,
172
RI_IONODE
EQU
000000108
NODE BIT
0001
173
Rl_REQ
EQU
00000001B
0000
17'
175
176
177
0082
178
0047
0046
; -------------------------------------------------------EOU
DMA_READ
EQU
OM_WRITE
EOU
OMA
EOU
DHA_HIGH
EOU
010001118
REQUEST BIT
; CHANNEl 3 (047H)
3 (048H)
010010118
; CHAHNE l
082H
; PORT FOR HIGH 4 BITS OF DNA
•
; DMA ADDRESS
17.
0000
18.
181
TST_RDY_tl1D
EOU
000000008
I CNTLR READY (OOHI
0001
RECAL_CHO
EQU
000000018
RECAL (OIHI
0003
18Z
SENSE_CHO
EOU
000000118
SENSE (03H I
0004
183
fMTDRV_Ct1D
EOU
000001008
DRIVE (04H I
ODDS
184
CHK_TRK_CtIJ
EOU
00000101B
T CHK (05HI
0006
185
FMTTRK_CMD
EOU
000001108
TRACK (06HI
0007
186
187
188
EOU
000001118
BAD
(07H)
READ_tND
EOU
000010008
READ
(08H)
DODA
WRITE_CHO
EQU
000010108
WRITE (DAHl
0008
FMTBAD_CMD
OOOB
18.
SEEK_CHO
EOU
000010118
SEEK
I OBH)
DaDe
19.
INIT_DRV_CMO
EOU
000011008
INlT
(OCHI
0000
191
RD_ECt_tND
EQU
000011018
BURST (DOH I
19Z
RO_BUFf _CMD
EOU
000011108
BUFFR I OEH)
WR_BUFf _ CHO
EOU
000011118
BUFfR I OFH I
RAH_OIAG_CMU
EQU
11100000B
RAM
IEOHI
ODE3
193
1.4
195
CHK_DRV_Ct1O
EQU
111000118
DRV
(E3H)
00E4
1.6
CNTLR_OIAG_CI1D
EQU
111001008
CNTLR (E4H I
RD_lONG_CMD
EOU
111001018
RlOHG ([5HI
WR_lONG_CMD
EOU
111001108
WlONG I E6H I
DOOE
DOOF
ODED
ODES
198
00E6
I"
0020
zoo
INT_CTl_PORT
EOU
Z.H
; 8259 CONTROL PORT
0020
ZD1
EO!
EOU
Z.H
; END OF INTERRUPT COMNAND
20Z
0008
ZD3
MAX_FILE
EQU
0002
zoo
S_NAXJIlE
EOU
Z.5
206
ASSUME
CS:CODE
0000
ZD7
ORG
OH
0000 55
Z.8
DB
055H
0001 AA
20'
Zl.
DB
OAAH
DB
160
0002 10
Zll
; GENERIC BIOS HEADER
212
1----------------------------------------------------------------
213
; FIXED DISK I/O SETUP
Z14
215
ESTABLISH TRANSFER VECTORS FOR THE FIXED DISK
216
PERfORM POWER ON DIAGNOSTICS
217
SHOULD AN ERROR OCCUR A "1701" MESSAGE IS DISPLAYED
218
219
,----------------------------------------------------------------
Z20
0003
0003 EBIE
0005 35303030303539
ZZl
ZZZ
PROC
FAR
JM"
SHORT
L3
223
DB
'5000059 I C lCOPYRIGHT
IBM 1982'
j
COPYRIGHT NOTICE
2.02:84329434FSO
5952.494748542:0
2.04942:402.03139
3832
002:3
0023 2:BCO
0025 6ED8
A-86
ZZ4
ZZ5
ZZ6
ZZ7
l3:
ASSlII1E
DS:Dutf"'IY
SUB
AX.AX
NOV
DS,AX
Fixed Disk BIOS
I ZERO
LOC OBJ
002:7 FA
LINE
...
SOURCE
".
CLI
MOV
AX,WORD PTR ORG_VECTOR
I GET DISKEnE VECTOR
I10V
WORD PTR DISK_VECTOR,AX
J
HOV
AX,WORD
0031 A30Z01
ZlO
ZlI
Zl'
HOY
WORD PTR OISK_VECTOR+2.AX
0034 C7064C005602
'33
MOV
NORD PTR ORG_ VECTOR,
003A 8COE4EOO
'34
'35
HOV
MOV
WORD PTR ORG_ VECTOR+2 .CS
0028 A14COO
0028 A30001
002E Al4EOO
003E B86007
0041 A33400
0044 BCOE3600
NORD PTA HDISK_INT.AY.
WORD PTR
WORD PTR
WORD PTR
MOV
WORD PTR HF_TBl_VEC+2.CS
'38
0050 684000
0060 8E08
0062 C6D6740000
0067 C606750000
DObe C606430000
0071 C606770000
'40
'41
,.,
, HDISK HAtI)lER
HDISK
J
I10V
ttOV
HOY
MOV
MOV
'3'
0058 seOE060l
AX, OFFSET HD_INT
'36
004E 8COE6600
Dose Fe
OFfSET DISICIO
'37
0048 C70664008601
0052 C7060401E703
INTO INT 40H
PTR DRG_VECTOR+2
INTERRUPT
HDISK_INT+Z,CS
BOOT_VEC.OFFSET BOOT_STRAP
I BOOTSTRAP
eOOT_YEC+2.CS
WORD PTR HF_TBL_VEC,OFFSET FD_TBl
I
PARAMETER
TBl
STI
'43
'44
ASSUME
'45
MOV
AX.DATA
MOV
OS.AX
MOV
OISK_STATUS,O
I RESET THE STArus INDICATOR
MOV
HF _NUM,O
j
ZERO COUNT OF DRIVES
MOV
CMD_BLOCK+l.O
I
DRIVE
MOV
PORT_OFF .0
; ZERO CARD OFfSET
; RETRY COUNT
'4.
'47
'4.
,4'
'50
OS:DATA
I ESTABLISH SEGI1ENT
ZERO. SET
VALUE IN BLOCK
'51
'5'
'53
MOV
CX.25H
0079
0079 E8F2QO
254
CALL
HD_RESET_l
'55
JHC
L7
LOOP
L4
0076 892500
OOlC 7305
DOlE E2F9
0080 E9BFOO
0083
0083 890100
0086 8A6000
0089 B80012
OOBt COB
008E 7303
'5.
'.1
,.,
'.3
'.4
..
0096 COB
2 ••
0098 7303
2 ••
009A E9A500
270
271
0090
l7:
'.0
,'.5
,.7
HOV
CX.l
MOV
ox.aOH
MOV
AX.1200H
lNT
13"
JNC
P7
JMP
ERROR_EX
HOV
'NT
JNC
1'"
ERROR_EX
MOV
TIMER_LOW. 0
HOV
AX,RESET]LAG
CHP
AX,lZ34H
; KEYBOARD RESET
IN
AL,021H
I TIMER
AI<)
Al,OFEH
021H , Al
; ENABLE TIMER
273
274
00A9 7506
'75
27.
MOV
,77
27.
00B3 24FE
00B5 E62:1
00B7
00S7 E86400
DOSA 7207
OOBe 880010
DOBF COB
00C1 7308
00C3
00C3 A16eoo
00C6 30BEOI
OOC9 72Et
Dace E87590
DaCE
DaCE 890100
0001 BA8000
0004 680011
0007 COl3
0009 7267
0006 B80009
OUT
,.4
,'.5
JC
PIO
MOV
AX,HlOOH
INT
13H
JNC
P2
MOV
AX. TIMER_lOW
CMP
AX.446D
I 25 SECONDS
JHP
P2:
CX,!
..
..
MOV
OX,80H
HOV
lNT
AX,llaOH
JC
ERROR_EX
I RECALIBRATE
13"
300
301
HOY
AX.0900H
INT
1'"
ODED 7260
30'
303
JC
ERROR_EX
00E2 BaOOtS
304
MOV
AX.ocaOCH
OOOE C013
I READY
J8
MOV
,
,.7
,
,..
; START TIMER
PI0:
"0
,92
, SKIP WAIT ON RESET
I RESET CONTROLLER
,.3
..,.1..
,'.3..
'.5
ZERO TIMER
P6:
27'
,
,
I
JNE
'.0
'.1
,.,
..
,.7
J COIfTROLLER DIAGNOSTICS
P.
JMP
00A3 AI7200
00A6 303412
0081 E42:1
AX.1400H
P9:
,72
0061
; CONTROLLER DIAGNOSTICS
P7:
0090 C7066COOOOOO
OOA8 C7066C009AOI
I RESET CONTROLLER
I TRY RESET AGAIN
JMP
'57
".
'5'
0093
0093 880014
0090 E9AFOO
lit:
I SET DRIVE PARAI1ETERS
i
Ot1A TO BUFFER
Fixed Disk BIOS
A-87
LaC OBJ
LINE
00E5 SEeD
00E7 2508
00E9 B8000F
OOEe COB
OOEE 7252
SOURCE
30.
306
I10V
ES,AX
sue
eX.BX
307
308
MOV
INT
Je
AX.OFODH
INC
HF _NUN
MOV
MOV
OUT
I10V
IN
DX.2:13H
I EXPANSION BOX
ALtO
DX,AL
OX,32lH
; nJRN BOX OFF
, TEST If CONTROLLER
AL.OX
I
30'
I SET SEGI1ENT
I WRITE SECTOR BUFFER
BH
ERROR_EX
310
OOF4 8A1302
311
31>
313
OOF7 BODO
31.
OOF9 EE
31'
310
DOFO FE067500
OOFA 8A2:103
OOFO EC
DO FE 240F
317
318
ANO
AL,OFH
0100 3eOF
31.
320
321
CM'
JE
MOV
AL.OFH
0102: 740b
0104 C7066(:00A401
OlOA
0100 BOFF
OIOF EE
OllO 890100
0113 8A8100
I CONTROLLER
I EXPANSION BOX
324
325
OX.At
; TURN BOX ON
320
327
328
MOV
MOV
eX.l
I
AX,AX
330
SUB
OIIC e80011
alIF COl3
333
334
0121 730B
335
0123 A16COO
33.
INT
JC
MOV
INT
JNC
MOV
'"
0126 306E01
AL,OFFH
AX,01100H
AX. TIMER_LOW
AX,4460
CM'
JB
P3
012B EB2.F90
33.
JM'
POD_DONE
012E
340
012E 880009
341
0131 con
0135 FE067500
342
343
344
0139 81FA8100
34.
0140 EBD4
'40
347
348
0142
34'
350
351
352
0142 BDOFOO
353
0145 2BCO
354
355
356
OBF 4.2
0147 8BFO
0149 89060090
357
358
0140 B700
O14F
014F 2E8AS46801
0154 MOE
0156 COlO
0158 46
0156 F9
DISC
"OV
INT
JC
INC
eM'
JA'
INC
JM'
0150 E421
AX,0900H
; INITIALIZE CHARACTERISTICS
13H
POD_DONE
HF _HUM
I TAllY ANOTHER DRIVE
DX.(80H + S_MA)CFILE -
1)
POD_DONE
OX
P3
; ----- POD ERROR
MOV
SUB
BP,OFH
"OV
MOV
SI.AX
CX,F17L
; MESSAGE CHAR .... CTER COl.INT
"OV
BH,O
; PAGE ZERO
"OV
MOV
INT
INe
AL.CS:Fl71SIJ
AH,140
• VIDEO OUT
10H
51
o
; t-IEXT CHAR
lOOP
OUT_CH
; DO MORE
ClI
IN
H,02lH
; BE SURE TIMER IS DISABLED
I
POD ERROR FLAG
AX.AX
OUT_CH:
~
GET BYTE
DISPLAY CHARACTER
STe
POD_DONE:
015F OCOI
308
OR
AL.OlH
0161 E621
OUT
021H.AL
0163 FB
36'
no
0164 E8ASOO
371
CALL
sn
,12
0167 CB
2.5 SECONDS
ERROR_EX:
35'
360
361
'0'
36.
367
DISC FA
I
P5:
36'
363
364
0159 E2F4
, RECAL
13H
P5
338
0130 7310
I RESET
13H
POD_DONE
0129 72EB
0133 7227
ATTEMPT NEXT DRIVES
OX,081H
P3:
011A 72.40
0118 C013
IS IN SYSTEM U't1T
TIMER_LOW.420D
BOX_ON:
"1
332
0116 28CO
BOX_ON
Ox.213H
32'
011b
• .• IS IN THE SYSTEM ltIIT
MOV
MOV
OUT
322
323
DIOA 8A1302
I DRIVE ZERO RESPONDED
DSBL
RET
n3
0168 31373031
37.
F17
DB
01701' ,OOH,OAH
375
n6
377
FI7L
,qt1
$-Fl1
01be 00
0160 OA
0006
Ol6E
016E 51
016F 52
A-88
376
37.
HO_RESET_l
PUSH
PUSH
Fixed Disk BIOS
PRDC
CX
OX
NEAR
I SAVE REGISTER
LOC OBJ
LINE
0170 Fe
380
301
382
383
30.
305
30.
307
3.0
389
0171 890001
0174
0174 E80706
0177 EE
0178 E80306
0178 EC
OI7t 2402
Ol7E 7403
0180 ElF2
0182 F9
0183
0183 5A
0184 59
0185 C3
39'
391
392
393
394
395
396
397
390
399
•••
SOURCE
CLC
0186
0186 26CO
0188 8ED8
016A FA
018S C7060401E703
0191 acOE0601
0195 C70676000102
0198 SCOE7AOO
019F FB
417
410
419
42.
4Z1
4Z.
423
424
425
01.1.0 890300
01A3
o tA3 51
QUA 2B02
01.1..6 2BCO
01.1..8 COl3
01.1..1. 720F
OlAC B80102
OlAf 2B02
OIBI 8EC2
01B3 BBOO7C
01B6 890100
OIB9 COl3
OIB8 59
OISC 730A
01BE eOFtao
OlCl 740A
OIC3 HOE
01C5 EB0690
DIce
JZ
PORT_l
OX,AL
PORT_l
At,OX
AL.Z
.3
lOOP
L'
ANO
; RETRY COlfIT
J RESET CARD
I CHECK STATUS
; ERROR BIT
STC
R3:
pop
pop
OX
i RESTORE REGISTER
CX
RET
HD_RESET_l
ENDP
DISK_SET1JP
ENDP
j----- INT 19 --------------------------------------------------INTERRUPT 19 BOOT STRAP LOADER
THE FIXED DISK aros REPLACES THE INTERRUPT 19
BOOT STRAP VECTOR WITH A POINTER TO THIS BOOT ROUTINE
RESET THE DEFAULT DISK AND DISKETTE PARAMETER VECTORS
-
J
J
THE BOOT BLOCK to BE READ IN WIll BE ATTEMPTED FROH
CYLINDER 0 SECTOR 1 OF THE DEVICE.
lltE BOOTSTRAP SEQUENCE IS:
> ATTEMPT TO lO'&'O fROM THE DISKETTE INTO THE BOOT
LOCATION (OOOQ:7COQ) At-ro
~ANSFER
COtfIROl THERE
> IF THE DISKEnE FAILS THE FIXED DISK IS TRIED FOR A
VALID BOOTSTRAP SLOCK. A VALID BOOT BLOCK ON THE
FIXED DISK CONSISTS OF THE BYTES
055H OAAH
AS ntE
LAST TWO BYTES OF THE BLOCK
> IF THE ABOVE FAILS CONTROL IS PASSED TO RESIDENT BASIC
;
----------------------------------------------------------------
BOOT_S~AP:
ASSUHE
DS: DUMMY, ES: DUMMY
SUB
AX,AX
Mav
DS~AX
; ESTABLISH SEGMENT
;----- RESET PARAMETER VECTORS
43.
431
432
434
435
436
437
430
439
44.
441
442
443
444
445
446
447
448
449
45.
451
452
453
454
455
456
CAll
IN
42'
427
428
429
'33
CX,OlOOH
OUT
CAll
40!
4'2
403
4.4
405
4.6
4.7
4.0
4.9
41.
411
412
413
41.
415
416
; CLEAR CARRY
rrov
L6:
CLI
MOV
WORD PTR HF _TBL_VEt. OFFSET FD_TBl
Mav
WORD
MOV
WORD PTR DISKETIE_PARH, OFFSET DISKETTE_TBL
I10V
WORD PTR DISKETTE_PARI1+2. cs
p~
HF _TBl_VEt+2, CS
STI
;----- ATTEMPT BOOTSTRAP FRDtI DISKETTE
HOV
ex.!
PUSH
CX
I SAVE RETRY COl.IIT
SUB
OX,DX
1 DRIVE ZERO
SUB
AX.AX
J RESET THE DISKETTE
INT
JC
13M
H2
; IF ERROR, TRY AGAIN
I10V
AX,0201H
j
SUB
OX.OX
HI:
H2.
i
Mav
ES.OX
I10V
BX,OFFSET BOOT_LOCN
I10V
CX.l
IPL_SYSTEM
; FILE 10 CAll
READ IN THE SINGLE SECTtIR
J ESTABLISH SEGf'lEHT
I SECTOR I. TRACK 0
IIIT
13H
I FILE 10 CALL
pop
CX
; RECOVER RETRY COUHT
JNO
H4
I CF SET BY ~CESSFUL READ
C11P
AH.SOH
; IF TIME OUT. NO RETRY
JZ
H5
HI
HS
; TRY FIXED DISK
lOOP
JMP
H4:
; SET RETRY tQlJfT
; DO IT FOR RETRY TIMES
; UNABLE TO IPL FRCH THE DIstC.ETTE
; IPL WAS SUCCESSFUL
Fixed Disk BIOS
A-89
LOC GBJ
LINE
SOURCE
01C8 EAOO7COOOO
457
456
459
;----- ATTEMPT BOOTSTRAP FROM FIXED DISK
460
461
H5:
Oleo
Oleo zeco
JHP
BOOT_LOCH
462
463
SUB
AX ,AX
SUB
OX,OX
464
465
INT
MOV
13H
CX.3
I SET RETRY COUNT
PUSH
ex
I SAVE RETRY COUNT
HOV
OX.OOSOH
I FIXEO DISK ZERO
SUB
INT
AX ,AX
; RESET THE FIXED DISK
13H
I FILE 10 CAll
JC
HOV
H7
AX,ClOlH
; READ IN THE SINGLE SEC rOR
SUB
HOV
eX,aX
01E5 6EC3
473
474
OleF 2B02
OlDl C013
0103 890300
0106
0107 8A8000
466
467
466
OlOA 28CO
469
con
470
471
472
0106 51
OIOC
OlDE 72:12
DIED 880102
OIB 280S
H6:
; RESET DISKETTE
;
IP~SYSTEH
I IF ERROR, TRY AGAIN
fS,BX
DIE7 BBOo7e
475
OlEA 6A8000
476
HOV
HOV
OX.SOH
; DRIVE NUMBER
OlEO 890100
477
HOV
ex,I
; SECTOR I, TRACK 0
OlFO C013
478
479
INT
POP
13H
i
ex
; RECOVER RETRY COUNT
OIF2 59
DIn 7206
H7:
480
481
OIFS AlFE70
aiFS 3D55AA.
46'
483
484
OlFB 74CB
OIFD
OHa E207
Je
H8
HOV
eNP
AX,WORD prR BOOT_LOCN+510D
JZ
H4
LOOP
H6
488
489
0201
490
491
0201 Cf
492
493
0202 02
494
DB
0203 25
0204 02-
495
496
DB
DB
0205 08
497
020b 2A
498
499
500
DB
DB
0208 50
0209 F6
501
020A 19
50'
503
020B 04
AX,OAA55H
FILE 10 CAll
; TEST FOR GENERIC BOOT BLOCK
I DO IT fOR RETRY TIMES
;------ UNABLE TO IPL fROM THE DISKETTE OR FIXED DISK
OlFF C018
0207 FF
; TO llIE BOOT LOCATION
Ha:
485
486
487
eX,OFFSET BOOT_LOCH
'NT
18H
; RESIDENT BASIC
,
I SRT=C, HO UNLOAD=OF -
1ST SPEC BYTE
; HD LOAD=l, MOOE::DMA -
2ND SPEC BYTE
25H
I IoIAIT AFTER OPN TIL MOTOR OFF
DISKETTE_ TBL:
DB
DB
DB
DB
DB
110011118
Z
I 512 BYTES PER SECTOR
; EDT (LAST SECTOR ON TRACK)
0',"
OFFH
I GAP LENGTH
; OTl
050H
; GAP LENGTH FOR FORMAT
OFbH
; FIll BYTE FOR FORHAT
I HEAD SETTlE TIME (MILLISECONDS I
25
; MOTOR START TIME {1/8 SECOND I
DB
504
505
506
507
020e
GlOC IE
02.00 884000
?ROC
HEAR
ASSUHE
DS:DATA
509
510
PUSH
HDV
HOV
OS
511
5.,
0212 8A267700
0216 50
513
51.
OZ17 C606770000
515
516
517
c2le E86905
518
519
0221 EE
0222 C606770004
0227 E85E05
022A 2Ata
"0
521
'"
513
022C EE
MAKE SlRE THAT ALL HOUSEKEEPING IS DONE BEFORE EXIT
508
0210 8E08
021F 2ACD
j-----
aSBL
DS,AX
HOY
AH,PORT_OFF
PUSH
""
HOV
PORT_OFF,OH
CALL
Al.Al
OUT
aX,AL
HOV
PORT_OfF ,4H
CALL
PORT_3
SUB
OUT
NOV
DX,Al
CAll
PORT_3
0235 2AtO
526
SUB
AL,AL
0237 EE
OUT
NOV
OX.Al
0230 E84aDS
527
528
5Z9
CALL
PORT_3
0240 2ACO
530
sue
AL,AL
0242 EE
531
532
OUT
OX,AL
0243 B007
0245 E60A
"3
"OV
OOT
DMAtiO.AL
A-90
Fixed Disk BIOS
; RESET INT IOMA MASK
'&'l,Al
".
525
0238 C60677000C
; SAVE OFFSET
POIH_3
SUB
0232 E8530S
0220 C606770006
; SAVE SEGMENT
AX.DAl"
; RESET INTIDMA. HAst<
PORT_OFf .8H
; RESET INTIDM" MASK
PORT_OFF,OCH
I RESET INT /DMA MASK
Al,07H
; SET DHA MODE TO DISABLE
LOC OBJ
LINE
02:48 £421
534
535
oe4A OC20
53.
020+7 FA
SOURCE
eLI
537
IN
OR
OUT
024E FB
538
STI
024F 58
53.
pop
0250 88267700
540
0254 IF
541
0255 C3
542
024C £621
543
J
DISABLE INTERRUPTS
Al.OtlH
AL.02DH
; DISABLE INTERRUPT 5
ENABLE INTERRUPTS
021H,AL
,
'"
I RESTORE OFFSET
I10V
POP
as
J RESTORE SEGMENT
PORT_OFF ,AH
RET
aSBl
ENDP
544
545
1----... -----------------------------------
546
547
FIXED DISK BIOS EN'TRY POINT
;
----------------------------------------
548
0256
54'
550
0256 80FA80
551
DISK_IO MOC
CMP
FAR
OS: NOTHING. ES; NOTHING
Dl,80H
I TEST FOR FIXED DISK PRIVE
0259 7305
552
JAE
HARD_DISK
; YES. HANDLE HERE
1NT
40H
ASSUME
025B C040
551
0250
0250 C"0200
02bO
554
555
RET_2:
556
HARD_DISK:
J
DISI
>
Shift
Cyan
Yellow
High Intensity
3F
63
?
?
Shift
Cyan
White
High Intensity
40
64
@
@
Shift
Red
Black
Normal
41
65
A
A
Note 4
Red
Blue
Underline
42
66
B
B
Note 4
Red
Green
Normal
43
67
C
C
Note 4
Red
Cyan
Normal
44
68
D
D
Note 4
Red
Red
Normal
45
69
E
E
Note 4
Red
Magenta
Normal
46
70
F
F
Note 4
Red
Brown
Normal
47
71
G
G
Note 4
Red
Light Grey
Normal
48
72
H
H
Note 4
Red
Dark Grey
High Intensity
49
73
I
I
Note 4
Red
Light Blue
High Intensity
Underline
4A
74
J
J
Note 4
Red
Light Green
High Intensity
Of Characters, Keystrokes, and Colors
C-3
As Text Attributes
Value
Color/Graphics
Monitor Adapter
As Characters
Hex Dec Symbol
Keystrokes
IBM
Modes Background Foreground
Monochrome
Display
Adapter
4B
75
K
K
Note 4
Red
Light Cyan
High Intensity
4C
76
L
L
Note 4
Red
Light Red
High Intensity
4D
77
M
M
Note 4
Red
Light
Magenta
High Intensity
4E
78
N
N
Note 4
Red
Yellow
High Intensity
4F
79
0
0
Note 4
Red
White
High Intensity
50
80
P
P
Note 4
Magenta
Black
Normal
51
81
Q
Q
Note 4
Magenta
Blue
Underline
52
82
R
R
Note 4
Magenta
Green
Normal
53
83
S
S
Note 4
Magenta
Cyan
Normal
54
84
T
T
Note 4
Magenta
Red
Normal
55
85
U
U
Note 4
Magenta
Magenta
Normal
56
86
V
V
Note 4
Magenta
Brown
Normal
57
87
W
W
Note 4
Magenta
Light Grey
Normal
58
88
X
X
Note 4
Magenta
Dark Grey
High Intensity
59
89
Y
Y
Note 4
Magenta
Light Blue
High Intensity
Underline
5A
90
Z
Z
Note 4
Magenta
Light Green
High Intensity
5B
91
[
[
Magenta
Light Cyan
High Intensity
5C
92
\
\
Magenta
Light Red
High Intensity
5D
93
1
1
Magenta
Light
Magenta
High Intensity
5E
94
A
5F
95
-
60
96
61
97
a
a
62
98
b
b
"-
Shift
Magenta
Yellow
High Intensity
-
Shift
Magenta
White
High Intensity
Yellow
Black
Normal
Note 5
Yellow
Blue
Underline
Note 5
Yellow
Green
Normal
Normal
63
99
c
c
Note 5
Yellow
Cyan
64
100
d
d
Note 5
Yellow
Red
Normal
65
101
e
e
Note 5
Yellow
Magenta
Normal
66
102
f
f
Note 5
Yellow
Brown
Normal
C-4
Of Characters, Keystrokes, and Colors
As Text Attributes
Value
As Characters
Hex Dec Symbol
Keystrokes
Color/Graphics
Monitor Adapter
IBM
Monochrome
Display
Adapter
Modes Background Foreground
67
103
g
g
Note 5
Yellow
Light Grey
Normal
68
104
h
h
Note 5
Yellow
Dark Grey
High Intensity
69
105
i
i
Note 5
Yellow
Light Blue
High Intensity
Underline
6A
106
j
j
Note 5
Yellow
Light Green
High Intensity
6B
107
k
k
Note 5
Yellow
Light Cyan
High Intensity
6C
108
I
I
Note 5
Yellow
Light Red
High Intensity
60
109
m
m
Note 5
Yellow
Light
Magenta
High Intensity
6E
110
n
n
Note 5
Yellow
Yellow
High Intensity
6F
111
a
a
Note 5
Yellow
White
High Intensity
70
112
p
p
Note 5
White
Black
Reverse Video
71
113
q
q
Note 5
White
Blue
Underline
72
114
r
r
Note 5
White
Green
Normal
73
115
s
s
Note 5
White
Cyan
Normal
74
116
f
f
Note 5
White
Red
Normal
Magenta
Normal
75
117
u
u
Note 5
White
76
118
v
v
Note 5
White
Brown
Normal
77
119
w
w
Note 5
White
Light Grey
Normal
78
120
x
x
Note 5
White
Dark Grey
Reverse Video
High Intensity
Underline
121
Y
Y
Note 5
White
Light Blue
7A 122
z
z
Note 5
White
Light Green
High Intensity
123
{
{
Shift
White
Light Cyan
High Intensity
7C
124
I
I
I
I
Shift
White
Light Red
High Intensity
7D
125
I
I
Shift
White
Light
Magenta
High Intensity
7E
126
-
-
Shift
White
Yellow
High Intensity
7F
127
.6.
Ctrl -
White
White
High Intensity
79
7B
Of Characters, Keystrokes, and Colors C-5
As Text Attributes
Value
As Characters
Hex Dec Symbol
....
Keystrokes
IBM
Monochrome
Display
Modes Background Foreground
Adapter
Color/Graphics
Monitor Adapter
BO to FF Hex are Flashing in both Color & IBM Monochrome· • • •
C;
Alt 128
Note 6
Black
Black
Non-Display
129
U
Alt 129
Note 6
Black
Blue
Underline
130
Alt 130
Note 6
Black
Green
Normal
Alt 131
Note 6
Black
Cyan
Normal
132
e
a
a
Alt 132
Note 6
Black
Red
Normal
85
133
a
Alt 133
Note 6
Black
Magenta
Normal
86
134
fI
Alt 134
Note 6
Black
Brown
Normal
87
135
C
Alt 135
Note 6
Black
Light Grey
Normal
88
136
Alt 136
Note 6
Black
Dark Grey
Non-Display
89
137
e
e
Alt 137
Note 6
Black
Light Blue
High Intensity
Underline
8A
138
e
Alt 138
Note 6
Black
Light Green
High Intensity
8B
139
"
Alt 139
Note 6
Black
Light Cyan
High Intensity
8C
140
i
Alt 140
Note 6
Black
Light Red
High Intensity
80
141
1
Alt 141
Note 6
Black
Light
Magenta
High Intensity
8E
142
A
Alt 142
Note 6
Black
Yellow
High Intensity
8F
143
A
Alt 143
Note 6
Black
White
High Intensity
90
144
~
Alt 144
Note 6
Blue
Black
Normal
91
145
ae
Alt 145
Note 6
Blue
Blue
Underline
92
146
I>E.
Alt 146
Note 6
Blue
Green
Normal
93
147
6
Alt 147
Note 6
Blue
Cyan
Normal
94
148
0
Alt 148
Note 6
Blue
Red
Normal
80
128
81
82
83
131
84
95
149
b
Alt 149
Note 6
Blue
Magenta
Normal
96
150
U
Alt 150
Note 6
Blue
Brown
Normal
97
151
U
Alt 151
Note 6
Blue
Light Grey
Normal
98
152
Y
Alt 152
Note 6
Blue
Dark Grey
High Intensity
99
153
6
Alt 153
Note 6
Blue
Light Blue
High Intensity
Underline
9A
154
u
Alt 154
Note 6
Blue
Light Green
High Intensity
C-6
Of Characters, Keystrokes, and Colors
As Text Attributes
Value
As Characters
Hex Dec Symbol
9B 155
Keystrokes
IBM
Monochrome
Display
Adapter
Modes Background Foreground
Color/Graphics
Monitor Adapter
¢
Alt 155
Note 6
Blue
Light Cyan
High Intensity
9C 156
£
Alt 156
Note 6
Blue
Light Red
Hig h Intensity
9D 157
¥
Alt 157
Note 6
Blue
Light
Magenta
High Intensity
9E
158
Pt
Alt 158
Note 6
Blue
Yellow
High Intensity
9F
159
Note 6
Blue
White
High Intensity
AO 160
f
a
Alt 159
Alt 160
Note 6
Green
Black
Normal
A1
161
i
Alt 161
Note 6
Green
Blue
Underline
A2
162
6
Alt 162
Note 6
Green
Green
Normal
A3
163
U
Alt 163
Note 6
Green
Cyan
Normal
A4 164
II
Alt 164
Note 6
Green
Red
Normal
A5
165
iii
Alt 165
Note 6
Green
Magenta
Normal
A6 166
.!!
Alt 166
Note 6
Green
Brown
Normal
A7 167
£
Alt 167
Note 6
Green
Light Grey
Normal
A8 168
l
Alt 168
Note 6
Green
Dark Grey
High Intensity
169
r-
Alt 169
Note 6
Green
Light Blue
High Intensity
Underline
AA 170
----,
Alt 170
Note 6
Green
Light Green
High Intensity
AB 171
V,
Alt 171
Note 6
Green
Light Cyan
High Intensity
AC 172
A9
V-
Alt 172
Note 6
Green
Light Red
High Intensity
AD 173
i
Alt 173
Note 6
Green
Light
Magenta
High Intensity
AE 174
«
»
Alt 174
Note 6
Green
Yellow
High Intensity
Alt 175
Note 6
Green
White
High Intensity
Alt 176
Note 6
Cyan
Black
Normal
AF
175
80 176
177
I
Alt 177
Note 6
Cyan
Blue
Underline
B2 178
I
Alt 178
Note 6
Cyan
Green
Normal
B3 179
Alt 179
Note 6
Cyan
Cyan
Normal
B4 180 f--
Alt 180
Note 6
Cyan
Red
Normal
~
Alt 181
Note 6
Cyan
Magenta
Normal
B6 182 f-I
Alt 182
Note 6
Cyan
Brown
Normal
Bl
B5 181
Of Characters, Keystrokes, and Colors C-7
As Text Attributes
As Characters
Value
Hex Dec Symbol
B7
183
B8
184
B9
185
III
R
f--J
Keystrokes
Color /Graphics
Monitor Adapter
IBM
Monochrome
Display
Adapter
Modes Background Foreground
Alt 183
Note 6
Cyan
Light Grey
Normal
Alt 184
Note 6
Cyan
Dark Grey
High Intensity
Alt 185
Note 6
Cyan
Light Blue
High Intensity
Underline
Alt 186
Note 6
Cyan
Light Green
High Intensity
Alt 187
Note 6
Cyan
Light Cyan
High Intensity
Alt 188
Note 6
Cyan
Light Red
High Intensity
Note 6
Cyan
Light
Magenta
High Intensity
II
BA 186
BB 187
BC 188
BD 189
BE
190
BF
191
CO 192
hl
~
WJ
P
h
L-
Alt 189
Alt 190
Note 6
Cyan
Yellow
High Intensity
Alt 191
Note 6
Cyan
White
High Intensity
Alt 192
Note 6
Red
Black
Normal
Cl
193
Alt 193
Note 6
Red
Blue
Underline
C2
194
Alt 194
Note 6
Red
Green
Normal
C3
195
Alt 195
Note 6
Red
Cyan
Normal
C4
196
Alt 196
Note 6
Red
Red
Normal
C5
197
Alt 197
Note 6
Red
Magenta
Normal
C6
198
Alt 198
Note 6
Red
Brown
Normal
C7
199
Alt 199
Note 6
Red
Light Grey
Normal
C8
200
Alt 200
Note 6
Red
Dark Grey
High Intensity
C9
201
Alt 201
Note 6
Red
Light Blue
High Intensity
Underline
CA 202 - - I L -
Alt 202
Note 6
Red
Light Green
High Intensity
CB 203 ---, r--
Alt 203
Note 6
Red
Light Cyan
High Intensity
I;:::
Alt 204
Note 6
Red
Light Red
High Intensity
Alt 205
Note 6
Red
Light
Magenta
High Intensity
Alt 206
Note 6
Red
Yellow
High Intensity
Alt 207
Note 6
Red
White
High Intensity
Alt 208
Note 6
Magenta
Black
Normal
CC
204
t===
IfL==
Ii
CD 205
CE
206
CF
207
DO 208
C-8
~~
I
Of Characters, Keystrokes, and Colors
As Text Attributes
Value
-Hex Dec
Color / Graphics
Monitor Adapter
As Characters
Isyn;bOl
Ii:
,~,
,u
".~
Modes IrD~
.... '
209
02 210
IBM
Monochrome
Display
Adapter
'lI. uollld l:oregrou'1(f
6
lagenta
Alt 210
Note 6
Magenta
03 211
u::=
Alt 211
Note 6
04 212
t=
Alt 212
Note 6
05 2
F=
Alt 213
i
Green
Normal
Magenta
Cyan
Normal
Magenta
Red
Normal
6
Magenta
Magenta
Normal
214
Note 6
Magenta
Brown
Alt 215
Note 6
Magenta
Light Grey
Normal
Alt 216
Note 6
Magenta
Oark Grey
High Intensity
Alt 217
Note 6
Magenta
Light Blue
High Intensity
Underline
OA 218
Alt 218
Note 6
Magenta
Light Green
High Intensity
OB 1219
219
6
Magenta
TT
06 214
~
I
07 215
08 216
09 217
I--
Cyan
Hig
Inte
i
OC 220
Alt 220
Note 6
Magenta
Light Red
High Intensity
00 221
Alt 221
Note 6
Magenta
Light
Magenta
High Intensity
OE 222
Alt 222
Note 6
Magenta
Yellow
High Intensity
OF
Alt 223
6
2
6
223
EO 1224
E1
225
{3
E2
226
['
E3 1227
E4 1228
~
E5 1229
E6
230
Il
E7 1231
Alt 225
Note 6
Alt 226
Note 6
Alt 227
6
Alt 228
Note 6
Alt 229
N
'te
Mage
High I
I
mal
Yellow
Blue
Underline
Yellow
Green
Normal
Iy
Cyan
Yellow
Red
Normal
6
I Yellow
Ma
Nor
Yellow
Alt 230
Note 6
Alt 231
N
6 1 Yellow
,ity
31
Brown
Normal
Light Grey
N
E8
232
Alt 232
Note 6
Yellow
Dark Grey
High Intensity
E9
233
IJ
Alt 233
Note 6
Yellow
Light Blue
High Intensity
Underline
EA 234
n
Alt 234
Note 6
Yellow
Light Green
High Intensity
EB
0
Alt 235
Note 6
Yellow
Light Cyan
High Intensity
235
Of Characters, Keystrokes, and Colors
C-9
As Text Attributes
Value
As Characters
Hex Dec Symbol
EC
Keystrokes
Color/Graphics
Monitor Adapter
IBM
Monochrome
Display
Modes Background Foreground
Adapter
236
00
Alt 236
Note 6
Yellow
Light Red
High Intensity
ED 237
q,
Alt 237
Note 6
Yellow
Light
Magenta
High Intensity
EE
238
<
Alt 238
Note 6
Yellow
Yellow
High Intensity
EF
239
n
Alt 239
Note 6
Yellow
White
High Intensity
FO
240
-
Alt 240
Note 6
White
Black
Reverse Video
F1
241
±
Alt 241
Note 6
White
Blue
Underline
F2
242
:2
Alt 242
Note 6
White
Green
Normal
F3
243
S
Alt 243
Note 6
White
Cyan
Normal
r
F4
244
F5
245
Alt 244
Note 6
White
Red
Normal
Alt 245
Note 6
White
Magenta
Normal
F6
246
Alt 246
Note 6
White
Brown
Normal
F7
247
=
Alt 247
Note 6
White
Light Grey
Normal
F8
248
0
Alt 248
Note 6
White
Dark Grey
Reverse Video
F9
249
•
Alt 249
Note 6
White
Light Blue
High Intensity
Underline
FA
250
Note 6
White
Light Green
High Intensity
251
•
V-
Ait 250
FB
Alt 251
Note 6
White
Light Cyan
H ig h Intensity
Fe
252
."
Alt 252
Note 6
White
Light Red
High Intensity
FD
253
2
Alt 253
Note 6
White
Light
Magenta
High Intensity
FE
254
Alt 254
Note 6
White
Yellow
High Intensity
FF
255
Alt 255
Note 6
White
White
High Intensity
C-IO
J
•
BLANK
Of Characters, Keystrokes, and Colors
NOTE 1
Asterisk (*) can easily be keyed using two methods:
1) hit the Pr'. Sc key or 2) in shift mode hit the
[§] key.
NOTE 2
I
I
Period (.) can easily be keyed using two methods:
1) hit theW key or 2) in shift or Num Lock
I
mode hit the D~II key.
NOTE 3
Numeric characters (0-9) can easily be keyed
using two methods: 1) hit the numeric keys on the
top row of the typewriter portion of the keyboa rd
or 2) in shift or Num Lock mode hit the numeric
keys in the 10-key pad portion of the keyboard.
NOTE 4
Upper case alphabetic characters (A-Z) can easily
be keyed in two modes: 1) in shift mode the
appropriate alphabetic key or 2) in Caps Lock
mode hit the appropriate alphabetic key
NOTE 5
Lower case alphabetic characters (a-z) can easily
be keyed in two modes: 1) in "normal" mode hit
the appropriate key or 2) in Caps Lock
combined with shift mode hit the appropriate alphabetic
key.
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.)
Of Characters, Keystrokes, and Colors
C-ll
IDECIMAL
VALUE
.
0
16
32
48
64
80
96 112
•
HEXA
DECIMAL
VALUE
0
1
2
3
4
5
6
0
0
BLANK
(NUL LI
~
BLANK
(SPACE)
0
@ p
1
1
~
I•
1
2
3
4
5
6
7
8
9
A
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
10
A
11
B
12
C
13
0
14
E
15
F
C-l2
~
@)
t
.. =IF
I I
•+ 9T"
~
$
§ CYo
• -.l-
&
,
Q
,
7
P
a q
B R b r
C S c s
D T d t
E U e u
F V f v
GW g W
1 (
H X h x
I Y 1.• y
0 ! )
•
---+
•
J Z J Z
*
(j +-- + ,• K [ k {
Q L , < L
1
) ...-.-. - - M ] m }
~ • • > N /\ n rv
•
I
I
'"
-¢-
..
/
?
•
0
-
Of Characters, Keystrokes, and Colors
0
6
DECIMAL
VALUE
.
128 144 160 176 192 208 224 240
•
HEXA
DECIMAL
!VALUE
0
0
1
1
2
2
3
3
4
4
5
5
6
6
7
7
8
8
e" y
9
9
10
A
11
B
12
c
13
0
14
E
e••, 0•• I
e U -,
••
1 ¢ Y2
1, £ 1;4
1 ¥ •
15
F
9
8
A
B
,
<; E a,
••
U cE 1
,
,
e fE 0,
~
"
0
••
A
A
r >-
m
- lL "IT -<
b L r
F a J
~
~
=
---I
0
0
F
fJ +
-
:.:.:
:::::
.:.:.
0- II
&
E
0
ex: ---
~
0
U
···....
···......
.....
u
n
a,•• 0,•• .......,
a 0 N
1\
a u, -a
~
C
I
,.--
y
-
0
0
T
-.."
-.."
2
0
e •
d
-
,d
...-L
n
-
0 .....r
n
J
R « d ~
r » 11
•
00
cp 2
E I
n
BLANK
'FF'
Of Characters, Keystrokes, and Colors C-13
Notes:
C-14
Of Characters, Keystrokes, and Colors
APPENDIX D: LOGIC DIAGRAMS
System Board ......................................
Keyboard - Type 1 .................................
Keyboard - Type 2 .................................
Expansion Board ...................................
Extender Card .....................................
Receiver Card .....................................
Printer ............................................
Printer Adapter ....................................
Monochrome Display Adapter .......................
Color/Graphics Monitor Adapter .....................
Color Display ......................................
Monochrome Display ...............................
5-1/4 Inch Diskette Drive Adapter ...................
5-1/4 Inch Diskette Drive - Type 1 ...................
5-1/4 Inch Diskette Drive - Type 2 ...................
Fixed Disk Drive Adapter ...........................
Fixed Disk Drive - Type 1 ..........................
Fixed Disk Drive - Type 2 ..........................
32K Memory Expansion Option ......................
64K Memory Expansion Option ......................
64/256K Memory Expansion Option ..................
Game Control Adapter ..............................
Prototype Card ....................................
Asynchronous Communications Adapter ...............
Binary Synchronous Communications Adapter ..........
SDLC Communications Adapter .....................
Logic Diagrams
D-2
D-12
D-14
D-15
D-16
D-19
D-22
D-25
D-26
D-36
D-42
D-44
D-45
D-49
D-52
D-54
D-60
D-63
D-66
D-69
D-72
D-76
D-77
D-78
D-79
D-81
D-1
~~~~ S 5 5 S
~; ;;;;~;~~
~~;:;;~~~~~
e ~!!e
i ~~~
~ ;~~
Iii" "
.......o
......o
CI)
CI)
.c
~
"E
C'CI
o
C/l
E
t:
CI)
~
II
v
v
~
v
~
v
v
v
D-2
Logic Diagrams
;;:
"'
i!
':
;0;:
;;:
;;:
to
;
;
Ii I~
~=
-
;;:
i !e II
~
~
~
~
or
'"
-
~
II !
~
I
[';
....
~~~
N
:~_II
~
.........o
o
...
N
-++++-++----!f".o----
E
CI)
t:
~
I..
N-~"'~x--+4--»~---~I~
IIIII1
Logic Diagrams
D-S
111111111111111111
D-6
Logic Diagrams
111111
EE::EEEEEEE EEEEEEEE
'" '" '"
;] § ;
~~
r-;;;i;;;;
a.
I III III IIIIII
gc;~a~:ga~
ii!Ji:I
E •••••
....0
....0
CO
....
CIl
CIl
.r:.
~
...ca
"tJ
i
0
m
E
~ ~
....en
CIl
~
:;;;:g:g;g~~c;§
§:§:§:§:e~§:§:
l~
"
i~s
§:§:
.. ,_0!. ::
N
--
~
~~ ~~§!§
~~
3~~~
i~~
~
~
"
§: §: §:§:§:§:§
§: §: §§:§:§:
'"
§:
~E
I;
§:
II
;;:
Logic Diagrams
~~
in;;;;
D-7
....o
....o
"...
Q)
Q)
.t:.
~
"EI'll
o
co
...E
Q)
en
~
D-8
Logic Diagrams
~.
LO
14)
I~
O.CKDBRO
SPII.RDAU
r
D
I
1_11..6_2
33
191 T1M28ATESPK
15)
I~
)3)
!!DB.
"OW
l7ffi
I')
lAO
...
IS)
IS)
I')
I')
JOO
lOlX02_
X03_
liJ4-
I')
lOB_
XD7
I')
lS)
IS)
15)
105-
....
....
...
~
OQ
)1)
IIESETDRV'
pelll.
c:tl
System Board (Sheet 8 of 10)
~
I
I,C
en
D-IO
Logic Diagrams
:;::5
u'"
It
~
i
i ~~iIi
~1i::i
~t;i
i
i:N~ii
It
-~
2
-
I
is
! ~~
- i n~
L
~:Hl~
:5
...
....
0
0
.....
0
II)
II)
.c
~
...
"C
IV
0
a::I
.....
E
II)
~
g .. Ili=O! i!l:!:Ei:i!":::O:!:::l:lnc:i!:i!:i;,,;,,~'!! :i":iI!!'~lli~!!l;;~~li~~IF
\.-1i
Logic Diagrams
D-l1
:=
ia:
1\
ii
c
i!l
c
!!I
c
8c
~~
t;~
C
~~
~~~
c
-
",!!i
N
o
iii
~
D-12
~
H
Logic Diagrams
"~
CD
~
~
C.
§
>
I-
~o_
sioo
I
nnf:fl Mnn1M nff
'5~OC MW
4850
18011~"IT",
9~' I
111111111111111111111111
C=~:~:~P~~:;;~K1:U1
.00
IB03] f-+CIHG4
18041
Ifam,f.l,Ia1,f,f un ar. I, I,!, I,tiM,I ,I8I2 r. f
-OLIO ....'
~·C.'08
'~~'
I
....m.
'kMl> '
,I
111'1,
IB08I~".l1fi
1B091~·"T32
HO'
802
R03
H04-
."'."'
~c
20 8M3
ORO'
OPU
'ROB
COP
11
BRID
~Gl ~O'OO
19 GZ
13
1.
SW
MATRIX
ORll
OR12
DR13
ORI.
DR15
-ORI6
-DRI7
~
....
(J'Q
n
::~I~GROUID=l
:===-==1
It
1107
11091~
o....
Jc;
"'I
~
3
1Cl
-DR21
-DfiZZ
(Il
o
-
J56"'J
Keyboard - Type 1 (Sheet 2 of 2)
I
IN
X!pu~ddv
l_'=1\J
~- ~KEY'ADAllEASIHELD
+I'3C,l.
56pF
"""'
2NF !1C3
15PF
ISU
-OR2O
-0823
{~08If-+5VDC
a
-DRl8
-DRIU
~1l
~~
J J
;;;
1l
~
Ie
~~
~!!i
~~"'" ~<~~
"-
~~~~ g:ffi
i:i
~
1~1~lil~l~
~~
I"~
I
I
....
.......o
;g2:""
!I~
I
"li!
li!
Ql
Ql
..c
=
5
5i!
"
~
~
!=
5
g
i:i
"
~
~
'"
~
~
N
Ql
Q.
:=
;;
l:l
i
::!
=
D-14
Logic Diagrams
~
.
"tI
ca
]
>
Q)
::.::
---
-
-
IIIIII
l:t
~I'
00 0
0
0
NM~[L
~
~;
"
1;;::0
0
NM
G~
0
0
0
0
T~ Ht";:;>1
~I'
<;;;g
~rHh-----
;;;
11
~
~;(
~
~~
~_N
~
I~I~\!I~
~d~ ~.~ S~
TrlT
Hh----~t;
:;
...,~
I,M[-
~~
f1Mril'
btJ
........
....o
M~
~C!!!
-:!t;:;1\
>u
'?~
-It~~
t1tJ
G~
'lCIlU
..r::
~
~
.
"'C
ct!
f.1t-
~
f.1_
"r;;
~~
~~
jit<
!!l
"l
"
"l
'l
I
'l
"
~~:::;
ccc
~~~
-
.-;.-;ccc
N_
ccccc
~~~~~ ;~~
~~
~
",,;;;,:::l-
:::l ... :::l
I
Logic Diagrams
D·tS
e::;;;;e::;
<"iN
~i;'
~~
JJ
J1
II
~
C")
....o
.;;"~
~
r------,a>
: .......-..f,,'-I+~...
I .......--'=~I+f-l4
.1 . . . ._..fl~'-I+I-O
I b"--'I=-:-H'"
It::~t,,,~j'''
I +----!"~'_4++++~
: .......~-fI:~I+~...
D-16
Logic Diagrams
...
Ql
"'C
s::
....
Ql
X
W
5 "'"
If
~ I~d=
4c
-
!~l~
-
-;:::::=..
,...--
I
If
~~
~
N
,,:,,b-
L---+--+-.
""'_IfOg~~~~
I
I
I~
I
:"""""-f"--o++++-+
L ___ J-
~
-~~~
•
:--r
r----'~
J
I=-
"
l§ ~
~
~
~
>-
~
~~-
~
---,~
~:I
I_
:
1=
!~
:
d
- -
r+H++----'~~
"
~
...
(g
"'C
C
~
W
50!
~
~
... ..,
':i:':i:
~~
~~~~~!
;;;;;;iii)..,MM
~
~~~~~~
Logic Diagrams D-17
o
I
'01
"0
.DO
..II
00
[SliT II
01
RESERVED
11102
11103
IIIQ4
.011
'"
IA05
''Z4
Z5
A'"
'05
A04
A03
"
ISHT II
ISHT II
."'"'"
AOZ
01
[SHT II
.31
A3Q
AD
AI
(SKT
[SUT
[SUT
[SUT
00
ISHT
110 eN CK
[SHT
110 eN ROY
b
(SUT 'I
(SHT
[SliT
[SHT 'I
(SHT
[SNT 'I
OCI
(;'
o
JJ'
'"I
~
[SliT
[SHT
[SNT
(SHT
""
"
"
""
'I
IRQ6
IRQ7
ORal
OR02
r11103
'04
BI.
'Bl6
Ol
3
rIl
A29
AZB
'"
".'"
AZ8
Ala
"
."
1103
'"
101
110
.31
03
04
D5
DB
"
"..
A3
A<
..
Al
An
All
A20
A'
AIO
All
AI9
.18
..,
AI7
AI6
...'"
AI3
A12
All
All
All
[SUT 11
(SUT I)
[SHT I)
[SNT 11
lJ
11
lJ
1)
D-SIIELL TYPE
CDIfNE'CTDR
(SHT I]
[SUT I)
,
ISHT II
ISHT II
E"IS
11
52
[SUT 11
[SHT 11
31
"
48
51
[SUT lJ
E1114
EIII3
EA12
EAll
[SUT II
EA10
ISHT II
EA'
EA.
EAl
EA'
EA5
EA<
[SNI II
(SHT II
[SHT I)
[SUT'I
[SHT 1)
[SUT 11
(SliT II
(SHT 1)
[SHT II
All
I'" 21
1m"
1m"
[SHT II
[SliT 1)
[SUT I)
ISHT 11
(SNT
[SUT
(SUT
[SUT
1)
[SliT 11
[8HT 2)
MEMR
MEMW
ISHTl.21
ISHI 21
Clk
TIC
iSHT II
iSHT 21
ISHl21
[SUT 21
[SUT 11
ISUT 21
[SUT 21
[BUT 2.11
RESET
18HT2J
Bl9
iiEKii
.Z8
DACKI
DACK2
ISH11,11
ISHT"
BI1
BI5
~
.18
'LE
[8NT 21
[SliT 21
(SliT 11
'"
EAl
II
11
11
iOA
Iiiii
'OZ
U17
(SUT 11
812
'"
..
ISH11.11
ISHT 21
ISHTII
ISH111
[SliT 11
[SliT 21
fA!
EAD
rnm
!DArn
mID
mrn
EiUi
!lfiii
sa
56
2.11
11
I)
2.IJ
50
48
EOO
ISHT II
EIII02
EIR03
[SHT 2)
[SliT 2)
55
EIR04
ISH121
54
,"
I
[SliT 2)
38
43
EIR05
EIR06
EIII07
16
16
45
EIIO CM ROY ISMT 21
"
,
EIIO eH CK ISHT 21
EIIESERVED ISIIT 2J
EOROI
[SliT 2J
EDR02
[SHT 2J
E01103
ISHT 2]
"
15
3'
,5
'3
2.
10
11
"
,
3
[SliT 21
[SHT 21
nil
ISHT 21
E ENABLE
[SliT 21
31
-35
34
20
ag
6
51
r--------
"r-------
"60 r-------r-------61 r-------"r--------
-
Extender Card (Sheet 3 of 3)
ISHT 2,11
[SHT
(SHT
[SHT
[SHT
40
18
5
21
2.
CARD EDGE TABS
[SHT 2,1)
[SliT 2,1)
"1314
EALE
EeLK
EriC
fiilm
E06
E05
E04
EDa
ED2
EDI
'2
3Z
m
IiOiI
EDI
47
EA16
BI'
m
'20
.21
JI
[SHT 11
[SHT I)
[SHT 21
m
18
311
33
1
[SUT 11
[SliT 11
.. 5
AI6
AlB
A19
fAU
UI9
EA18
[SUT I)
(SUT I)
[SHT11
e.MEMJN EXP.ISHTI)
"
"'C
8...
CI>
>
u
'i;j
CI>
a::
Logic Diagrams
D-19
-------aaaaaaaa
I~
.
..;
C"')
....o
...
N
~
§~
;:;
~
0
CI
lIE
'"
t5'"
~ !: -
""C
8..
~
~
~
:1
M
'"
>
"Qi
N
~
u
~
a::'"
ci §:
D-20
Logic Diagrams
§:
;
'"
§:
'"
§:
;
ff
__
jrlOI S3
__
____ =____ m______
~il-~~X~R~S2~=~~'~~~~~2N~~'~~~~~S~
;
~I ~cccccc~
~mm
K~~.~mm_.
~
~~~~~~~~I!~~~S~~~~~.~~~5'~~~55~~
I
"I
~I_>->->->->->-_ICD~ "I
~.-~~-=~ -~I'
N~~~~~~~~~~~~~~~N
~
!1;~-·~o~o=e-~~~~~~~~2N~~'~2~~2~~~R~~~~~~~~'Q:~.~.e~.~~~~~~~~~.~
I
!~------------------------------------------------~
Logic Diagrams
D-21
9.1(3.31(
9xD9Bll
91S52778
Hlo---",,,M,,,I.34'r-......._--I-_~,/...-::01;---..:..:.1~;:::.::'o.,1
----------------~HlIUI I
14
H20-__~.~~-~~-~/~-r--~~'D.--r~'~U~.~~-:4~,.~.~----------~H2
13
...
~
12
H3o----!j'r_::::~-"'-=-~Q3;--I-~I~~D3:---+----------oH3
11
H.o---~6U;r-:=::~--~-rC~;--t---r~~~-t~:z.1.1t2t------------~H4
10
H5
eN<
,["",,""""
UL....
v'
I
v'
<>----'+--I---l'~
H5
.
H60---.!6~r--:::::+_-...r06I--I]D6;:_t__:_:;;..t-----------<> H6
...,."3
~
HI
0----""......
r-_+_-rv' 07
HI
~
_ _..!!IO~
["""""""_.l---rv'
H6 o-
08
~
/
T
~~.
-+-~~
~
fP o - - - -......
lTD--.-J
H25CIl....--------l----~
my
IDI
* I fr 1
ell5
1
'6
2W
680
555Oo_------~~ ~~·i
"'{5:113
555
[IA)
3.31(
VTH 6
~~~:GERO---............,'''''-l
......,C5~2 T
100
'II"
VRI
R2
ZOI(
15K
DrsJL-~' TC4
I •.D1 c...;';'--'I'l",.J
':"
JJ
T4
lelO
C3
T~OI" T'.1"
' o -_ _ _ _ _ _ _...J
17
.lr'OOGp
f
'"
.,
..
22
'M2.6~
.8
"
RC
c.,
,,JR-
'012
elll4
ClI5
ZD
13
2
LF
•
RIO
1""014
LFB
,~
'015
LF C
.~
,~
•
LF
'2W"
620
3
15
14
16
17
c••
elm
[l
13
..
~~,
-
Tc'7'
TO,01t1
CR8
22
CR C
'3
CRO
"
se'
'3
0.-
lFA
25
LFB
26
lFC
27
lFD
26
SLF
14
'21)
5.
120
1,"3
5.
OA0601
,f,--ti . .,
3 110M2
sri-*
,,,
,
5~ .,,, zo,
,j
L
:J
852718
l
AUOI-24
020
.12
.ID
~17
1.2K
AUOI-24
852778
To.Dlp
CO"
N
21
J,eo
To,Dlp
.14
!
SSZ178
013
87430
g
G,
G,
G,
+5
18
~12
eN< •
CII5
Sl F
."
."
."
."G,
I Z05
.J'"
CR
852778
018
"' ~
1.2K
2W
,I
,
1""013
'M2.3~
10
2l :...
1.2K
821)
DMI
,ri-*
~
R9
2.
·1 •
3
~'O
{Oll
820
60
OA0601
rf-t*- :,
6rf--t* ,,
410!186
.,l!!,,JR-
'0
!2
9
6 H 0 - - - - ' ......
2J
6
"9 ILl
2~
15
eM4
l~
0
GO.:-:l
17
PTSo
16
BE 0
D-22
·1" 16Y
1" lOp
~
oPTS
liSa
o RS
PE
Logic Diagrams
Printer (Sheet 1 of 2)
"
20
18
.......o
........
Q)
Q)
.s::.
en
....
....c
Q)
";:
c..
~ ~ ~~~
....
:::
r-oc""
I
Logic Diagrams
D-25
.
~
"
~!~
~~~
~ :~ ~
:
! ! :;~~~s::iN:;;r :or., • .,.~
~~ ~~~~~~~ i~~~~
~
::l :! C
cc
:c
:;;;::c
c
c
:c
c ~
rl'
if
i
..
;!
I!'
iii
~~
7
;
~
~
~ ~
~
~
~
-;
="
="
~
~
I'
~
~
~
oe
"it
~
=;$
~
~
~
'"
I' $
~
'"~
"
~
~
~
I' ~
~
I'
...
Q
~
it
0
........
Q>
Q>
.J:
~
....
Q>
....Q.
CtI
~
~
>
CtI
0..
C'"
Q>
E
0
....
.J:
U
0
C
0
::i?:
~
-i~
.
~f-;-;:;
~
L..-jl'
D-26
Logic Diagrams
2 74LS157
~:~
1Y rf-RMAO2'1 ~RMAI-
6 2A
lJ ~ ~~ pL:::~==
I
ceo
14 ~ UI8
I 48SELG
II
74LSl57~
~g
,
ISHT6.101
ee3
18HT 6.101
CC4
CC5
[SHT 6,10)
15
',.----11' rRMA4~
: 18
,~~: ~~ F:::~=
10
l:
4Y -"-'M"-"'C""'C,",,,--.(',L,,,~·.r,,
14 4A UH
!
I
74LS157
13 4BSELG
1
15
2 U
-:-
3 18
L,..--ij"
r---M1~:
IY 4
,,7
eea
RMAS
RM"
[SHT5.IO)
m
m
m
-.
UI6
m
m
m
b
.....
rn
(JQ
"'.
(')
RAI
RA2
,.,
o
II'
~.
CURSOR
MSYNC 39
DISPLAY
~
[SHT 31
rn
ISHT 11
3
E~~~~~ ~
m
(SHT 7.12)
(SHT 7.121
ISHT 1.121
(8HT 5..11
CURSOR ISHT 5)
HSYNC
VSYMC
DISPEN
'1-'1-
ISHT 51
ISHT 51
(SHT 5)
-WE
!I 14886
'''8ITdE~
15
o.
+5V
RPI
N
Monochrome Display Adapter (Sheet 2 of 10)
-...1
a Xlpu;}ddv
T
eel
"jjCi
_U
_U
,
_U
_U
t:I
>5,
I
N
Q()
r-" Jl0
i....
~10
IIHTlI'''BET~
I
j
6~ , i'LIIM
[;
! ~51111-j
~ Jill
(')
t:I
~.
8
fIl
,,74LS1i8
1~"
)D~1I
--It----------I-+t:==:tt
:~:~ : ~-:>B845C:~i.~ J~ ~ ~ ~ ~ ~ ~ ~ f~l~H~~~~~~~~;;~~~::::::::~~:c~~~~
(SliT II·RESET
~
ISHU)
I"T'I •• EIW E
.CPU ISEL
TEST
'JUI".
~
I"T71
I"Tt61
·CERa.
ISHT 1~
QS
(SHT51
lil
1811110)
·WE
JS"T'.~
+CACs tID
} " l - - - - - - - +CCLK
~--~--+-------CCUt
IS"T~
1811T&'101
Im~
·IACK
oac===±::±=:1J
+XACI(
+10 READY
ISlIl71·IIRES
ISHTOI
IS'T 11
ISHT~R'3
DOTCLK
7IL'"
I
ISHT'IHS'.C~~~~t~~J~~~~~gg~II5II~~~~~~~
ISIIT21 VSYMC
ISHT~.CCLK
--.<
'sv
Monochrome Display Adapter (Sheet 3 of 10)
Im7.1~
RDMAlI
ISHT 101
-CLRVIDEO
18I1T5,7,10)
·CURsaR OLY IS'T 51
·DISPEIIOLY
+DISPEllau
ISIIT 7)
ISHT71
>CURSOR OLY 18'161
+HI'NCDlY
+VSYMC au
[SHall
181115.71
0;
,.
as as
~ ~
Ii
ii5' iii'
~~~~
::i
e; ~
~
iii 1i1 ill
.....
CIl
Q.
~
>
C'CI
is.
5'"
CIl
E
...o
..r::
u
oc
~
:=
~
-- --
ii
:= -- =
!1! "- ~~ ~
-~~
0;
~
"-
iii
...
~
'"
"
Logic Diagrams
D-29
....o
'0
...
It)
CIl
CIl
..c:
-
~
~
Q..
ca
~
>
ca
Q.
en
o
CIl
E
~
-£o
c
o
~
~
&! ~~
~ ~""
--
5S
~;S
~~
c
c
~S
c
c
gd
:g
'i'
"
'" "
"
- ~
ill
'f
:::-c;;
~~
"
"~
N
N
~
"
D-30 Logic Diagrams
~
"~
~ijJl1U:
iliiHri
...o
'0
l )l )l )
CD
....
Q)
Q)
..c.
CI.I
...
....CI.
Q)
ca
~
>
ca
Q.
UI
15
....
CIII
---
COol""
----
E
E
..c.
u
o
c
o
:2
Logic Diagrams
D- 31
~
..
.-------"
-.......
I
0
0
"...
II>
CI)
~
~
...
"-
II>
Q.
~
~-
:g
;;'
~-
-
--
111
J'"L
~
«
"
- "
~ ~
>
111
Q.
is'"
0;\~
Il>
E
E
~9f",
~
u
0
c
0
:2:
;:
~
:J
--
ili
~
~
-n
;;; ;;:
ill
~
~
;:ace
" " "~ ~
~~
"
D-32
."' -
Logic Diagrams
"'
"'"
'f
,.
S;
'" "~ "~
§
~ ,,;
"~
t:l ~
~
"'~ "§
;? ;?
§
~
"
~
~
'"
'"
'"
;?
'" ~..,
.
~~
~
~~
~
::;
:!!
'"
....c
-IHI'
'0
i
...
00
+--++-+----i-f-jHI.
II)
II)
t5
...
fco
~
>co
"S.
is'"
E
o
...
g
.J::.
C
~
111111
~~H~ ::!!~s:
Ci Ci U5" Ciii!>ii!>fi5'fi5'
iiiiiiii
s: I
'i'
t;:;t:;:;
~~
-
Logic Diagrams
D-33
.......c
o
...
0)
Ql
Ql
..c
.
~
Ql
1i
CIl
~
>
CIl
iII>i
is
Ql
E
~
..c
g
c:::
o
~
~
c;>
_
.....
..,
""
1ft
........
P~~~~g/
~
'"
.~
:'
'" '"
~
':'
" '"
iL
iL
~
'i'
~
i!'
"
iL
.
iL
~
~
D-34 Logic Diagrams
-~~
m;:==
~~~8
~"
~
~
'" '" '"to '"
-
~
~
~
i.- ..f<
i
'" '"
'"
'~"
~
!
....o
'0
....o
....
G)
G)
!2
~I
is
!l
eMU
N
~
~
a--+---~'50~1
I
rwo
.'"
470
5W
I
~~IJI
+ C40lI
-
-;~------1
1501
i: i
p
IISP I
15J I
~-IIV
_--1I
_ II
...
I
:
,:1502
i
':l503
I
8 1 0 : H-WIDTH I
l/ZW
I Ui(l4
I
HIW
~ ~.1____________________M"'''-....J
&5113
R503
'"
on
Monochrome Display (Sheet 1 of 1)
I
,i H.lINe I
L ______ J
c..
""
~,
/lOTES
1.RESISTORVAlUfSUEINIDNMIOK= 100(10.= 1.000.00
2. ALL RESISTOR ARE 114W EXCEPT WHUE OTHEAWISEIIIDICATED
3,AI.lCAPACITORSARE~EXCEPTWHUEOTIIEAWIS£IIIPICATE(1.
4. CAPAClTOIIS VALUES Allf!A'lIIILESSIITHfAWISE IMU1CATEil I' = 1Jf= 10"
5.ACWIRIII&IIIFORMIITlOIi
PNoI.SE; BL,l.CIt/8ROWWWIIIE
nVUAl; WNlTf/BLUEWIRf
UOUIIO- SAEEIiAlIovmOWWIRE
IMPOAUIT, THE PHASE WIR~ MUST GO TO
T~E
fUSED SIDE OF TAAIISFORME
+ElfABLE DRIVE 3/4 22
-ENABLE DRIVE 3/4
+5~
RP_Z 898-1
2
-DRIVE SELECT 1
-DRIVE SELECT 2 2
2
-MOTOR ENABLE 1 2
-MOTOR ENA8LE 2
+STEP
-DIRECTION
-SHECT HEAD I
·WRITE DATA
,
,
,
,
1438
gr----,
10
I
•
J----li-l
3
+WRITEENABLE
2
-DRIVE SELECT 3
-DRIVE SELECT 4
-MOTOR ENABLE 3
-MOTOR ENABLE 4 2
•
1,"
I
121 - . r II
2
8
gl
10
I8
u=1
,• =-
NOTES:
()
JJ'
3
I:n
o
DRIVES 1 &I 2
~2
NOTES I &I 2
!
NC
13
9
16
f
JL- ~14
DR
121
16 2K 3
898·1
AN
INC
GT
PINS2D- 37
"
19
B9H
liP· 1
~~~ ~WONIIATlE~~~tlJf:LEER L~~~~~.RT~~f~~ I~~~~IR~H~~il~:~~lrT TO
5 MAKE NO CONNECTION TO UNUSED PINS ON TilE VCD. CHARGE PUMP di DATA
SEPARATOR MODULES
6. ALL VOLTABE AND GROUND CONNECTORS TO THE veD, CHARGE PUMP AND
ASSOCIATED DISCRETE COMPONENTS SHOULD BE SEPARATE FROM OTHER
CIRCUITS AND TIIEN JOINED TO THE OTIIER CIRCUITS AT ONE POINT
~
PI
PROCESSOR
INTERFACE
-
A31
A30
g7
'"
A2'
IPUlL·UPI'
,.
"-,
,DU
80'1
em
81
,0;;
B,2~0
B31. BOil
.'
_2
.""~
m
2
2 'AO
2 ·AI
·A2
'A3
,
...
'AS
+A'
'Al
'48
'Ali
+AEN
-lOR
-lOW
-RESI
·Te
ni
1O7
5-1/4 Inch Diskette Drive Adapter (Sheet 1 of 4)
a XfPu;)ddv
14LS240
"
+5
1
I
L'==.JU18
GT
=
m
.!ll.
12
14
13
13
12
14
15
11
16TO 10
2 ALL DRIVES ARE JUMPEREO FOR MULTIPLEX OPERATION, HEAD LOAD WITH
ORIVE SELECT AND DRIVE SHECT VIA INPUT PIN lZ. TERMINATING II·PACS
ARE LEFT IN DRIVES I a 3 ONLY
rn;] .84hIFD SHOULD BE ADJACENT TO MODULES MC34B7, 7438, 14S74, IE MHZ
OSC.RP-I. MC4044. MC4024.14LSI61 &I 14lS191 B.2tJfD CAPS SHOULD BE
NEAR ASSOCIATED PI PINS.
VI
I1j'iiR~
5
I
I
""
3300
•
I
I
2100
I
3 +INOEX
+WRITE PROTECT
-TRACK 0
+READ DATA
1
1
1
I
I
1
I
ill'
"I"
[!J
I
I
I
I
I
.,.,l!
L~£..3482J Ul
2"
1/4W
111
I
I
1
r--:;;---,
1
10
I DRIVES 3 &I 4
1 NOTES I &I 2
.,
1198-5
Rp·l
~,
I"
::
~I~
" II
=
PINSI33~ L - . . . . - -
1'4
II
~-.l r--oi!
•
1, SIGNALS ON DRIVE PINS 10 THRU 16 ARE SWAPPED BY THE DRIVE CABLE
BETWEEN DRIVES 1 "2 (AlfO 3" 4J AS FOLLOWS: 10 TO 16
.....
""I
DR
6T
I
I•
L _ _ _ .JUB
o
11)1
IZ
1438
1"
I,
20
J~.mODD ·
I
Ir
"
r---,
2100
1
3300
......JI U9
L-.JI:!:=t
1
8
2B
26
30
I
I
L- _ _ _
~
(JQ
,,0--16
14~
10
:!iii[
A05
I
'26
'00
'01
'02
'03
...
·05
'08
·01
-DACK Z
--
~
--N _
0
~
.~
,-=
-- f--= -.::
I
Ii tJ i
=
-,
I
I
0
L_
-'
~f-.: ~N-j ~
-
I
~
I
I
I~
I
-,
::: =
= -- - -
I
j
-m
I
I
~
0
I-~
I
.J
!2
~
o::t
....
o
...
N
Ql
Ql
.r:.
~
~
D-46
~
Logic Diagrams
~
~~
=ii:
~
-
- -
ii1~~~~'I!I?
---
~~~
~
~
i
~
Ie
'i
D
..
'IMKZ
Dsc.
8
-
~
~'eLR
I
ct'
U2
, .P'
US 11
~
U2
L>J
P3
8
pl-- ,••po
'7iiiioe
m
.DTE
,.,!.A.!RESET
._2 T. otL-le
t----,' Cu-1.
rieL--
.11 ,.
~ ---1L 2.
~
I
Uti
RTEP=.UnOI
+$----<
+'IU
~
0."-10
CtK I
,---< Ct.
I:-t
,
00
QiiP-,-..
T. I"'-t
+18 111HZ
'*
r"
II
EI
so
2 81
25
7"-8'53
FRISTP 37
1l14L1OB
III U4 •
~.
UlO
,
I
+WRITEEIIAILE
+ITEP
36
+TRAC.
E
.....
(')
I
KOLl
!.e
~~
:~
1 14LSDI
21 U4 J3
33 FLTlTRD
[""'--'
.
~~
+STAfiDARD DAlI/C
+OATA .UIDOW 4
ROW
IIIfp
4
LC~~:
Ie
us
.ol"Nurrll:t. SKEET!
o
_OACK2~O,a.
~.
+TC
3
I
uli~
+OIAGATE 2
•
HO 27
: 7:-- 6
II
9[Ui<)~·---------------------J
I014lSOB
13 14LSOI
141804
~,.o""2~----------------
rI}
IOTE:
Ha~~~ M~18p~~ =I~RE CONNECTED DilLY 011 CARDS BUILT
o
I
~
5·1/4 Inch Diskette Drive Adapter (Sheet 3 of 4)
-...J
o
x!pu;}ddv
+VfOBTIIC
1 +SELECTHEAD I
: +DACK' TC
-BACK
~I
~
~
~:1~ ~ '~~~
~
~
.
~
_I
~
N
~
----;q
~
1/
-
~
I
~
~
~ ~:QN
liE
-'Q~~
~
=>
~
........
;:
~
~
"T"L
____
~I
D-48
~~
-L
N
~I
-
~~
~ §
E ~
~
Logic Diagrams
'-1N~
."
,,2V
+12V
"-
,.
Rl8
TPID
~
TP4
REf DES
lOT USED
cr.==r=RI5
CII21
b
......
~OE
D.'
()
1
RIll
Cii
~2VI~
•
(JCl
1M11
~
'5VI'1
o
~
~
+1:::
1:1 I"T
<5
• .1
JJ'
'"'
GNOI3,;
'5V
,2"
"
~
'PI
150
I :1
WR'TE 122
3
I:Il
DATA
lSI<
5fiE>cu
2--jI;
URI?
"I
oJ;.
5-1/4 Inch Diskette Drive - Type 1 (Sheet 1 of 3)
'.c
o X1pu;}ddV
;;
;.
,
;
35V
••0
~
Ul
o
IIIINDEXI
SECTOR
IIilOUI
b
.....
SECTOR
I WRITE
PHOTO
PROTECT
ASSY
(JQ
n
o
JJ'
""'I
~
3
~
J1
ill
3'f.
I
''"1"'
DIRECTION 1
"",I ZO
'liO)o' ,
• Z)~
"I
~
482
MOTES: UNLESS OTHERWISE SPECIFIED
1. ALL RESISTDRSARE IJlOHI8,II4 W,
,%.
2. ALL CAPS ARE IN ~D.
3. ALL DIODES ARE III 444&.
4. ALL TRANSISTORS ItP. ARE 2n4124 I
PNP ARE 2.4125.
5-1/4 Inch Diskette Drive - Type 1 (Sheet 2 of 3)
L
~~
).,.
I
~~
~
~
~
)
~
~!;
;;:l
~~
~:;
~~
-
6~~
=i
-...
M
~
<;;\
(~
0
M
Q)
Q)
..s:::
:i!:::
en
~~
r--- ~~
.
I
I
I
I
~
~
:::;~
~~
'"
'""':=!
.
:s-
~
., Jt
I
..
~
O! ~ F-
1
!jill
~-:
I
I
~"
"'-
I
I
I~
~~
>5 L
I
IN ~_
it:-----<
I
U",
I!,!
:: L__
'f
=-
c..
>
IQ)
>
.;:
C
Q)
t:
Q)
.:i!
:~.!
I
I
I
: I
I:!
Q)
~
..I
I
~~
...
r------i
i
15'"
..s:::
u
.E
....n
!:t
__J
'It!
II;
>-l>
~:;
+2
N_
~
f-
N
~
!!
-
..2
J
l
~
~
~i
"i'
~II;
~"
!CL
Logic Diagrams 0-51
N
'I-
.......0
"
Q)
Q)
.s:;
~
N
Q)
a.
>-
IQ)
.~
C
......
Q)
Q)
~
en
is
~
.s:;
U
t:
~
"
0-52
....
&.b
Logic Diagrams
,,.-----------,,
f"""""""---J.~~---,
r-~~
:
i~
~~~ ~l '~l ~l~~ ~i ~
~J'~..
I
~
~-@-,~~
i
u
_(
{~
N
~.J~~
~
!
~
~ "~
~
!~~
('II
....0
..
('II
Q>
Q>
.l:
(I)
('II
Q>
Q.
>
IQ>
>
";:
0
...
Q>
Q>
~
is'"
.l:
U
.E
...iii
!t
~
~
~
~
::;
~
~T
;;
~
Logic Diagrams D-53
:li
'i'
,
i5~g
~ ~~~z_ ,
\t:t
iii
~
:;
:;
Ii:
"' !i!
'j'
~
~
0-54
N"".., ........ ""r-"'"
;;;:CC;(:;;;:CCC
Logic Diagrams
N
N
§
'j'
N
-
-
~
~
~ !:;'
I
~
'"'
oM..., .... ..,..,
~
.
~L
--
iii
~
.
~
I"
r
i'
I
-
Logic Diagrams 0-55
~
!
~ 'i'~
i:l
•
~
=C
a;:rw
(Q
....o
....
M
CD
CD
s:.
.
!!!
CD
1i
ca
"'C
«
CD
>
'':::
o
~
o'"
"'C
CD
><
u:::
D-56
Logic Diagrams
~DEL
DATA
:cLiMTvCO
+lRl RD DATA
,..
-IBZelOCIL
,..
WINDOW CLOCK
+ENI8LEIIRZDITA
10 MHZ CRYSTll_
+IIFMWRD
3 .... - WUM
~
1l~4f~
....
2
OQ
111117
WR~IJ2a.liB04 I
-MFIWfIO
n:f
12·14
+MFMWRI
13
-MRMWHI
-f1
08 TERM
(")
2 'NCREASE PRECDMP ~x_2a.13
o
06
TERM
J'Jl BID PlI8
'.4A1.lo.
R..
11.".1~"18.20
~.
-INCREASE PRECOMP
II'
-T1mmI1
a
RII
I'
rn
o
+5V
Fixed Disk Drive Adapter (Sheet 4 of 6)
I
U\
....:I
(I
x!pu;)ddv
14
5. 6
~o-~----::~,,'!;.,-t-,
~,--_.t~
'li
~:;
:s"
'j'
...
....a~
m
~
~
>
';:
C
~
'"
C
"C
~
)(
u:::
0-58
Logic Diagrams
"l3 I
~
I'
i
g
'7
i
fii
oj
;
'\'
iii
:;i
:0
.
!i:
i
=
~
=
Ii:
Logic Diagrams D-59
M
......
0
QI
QI
.c
~
...
QI
Q.
>
IQI
>
";;:
,
C
~
..l<:
en
!O
i:5
~
:!
"tI
~
QI
)(
..
"'"
u:::
c
~
3
;:;
!
§"
D-60
Logic Diagrams
+~@-i
-STEP ....,......'I-..1JI!-i.D-.Il
-utRECTIOI ..,'-~WoINU
"1
lATA
-WRITE snE .....'-~.j!.I.1>-11
-RO
DATA
~III
"
II
b
"3
(JQ
f'
It -!If'111111
M
~
I~
5G
41 C22
m
~11I\\
;.
o
if
_
"'t
~_,i!
8
rn
Fixed Disk Drive - Type 1 (Sheet 2 of 3)
0'\
(J
...U1 EIA
L..=-r--=.J
o,
-
1,-;.
-6
.. J~~". ~
X!pU;}ddV
"'''k'
1511 W-...'A£'IVITYLEI
CTIVlTYL£D
:E
:E
~~! ~~!
M
'0
...
M
Q)
Q)
.c
!!?
Q)
.~
C
.:.:
i5'"
"C
Q)
.~
u..
0-62
Logic Diagrams
(I)
iii!!
>
"'!!
";:
o
is'"
iii
~
""C
(I)
~~
if
~~
.
)(
u:
5
Logic Diagrams
D-63
~
~
~ ~ ~ ~
~
I
~
~
~
~
~
~
f
i
~
~2
~~
-....
( \')
0
N
...
CD
CD
..c:
en
N
CD
Q.
~
CD
>
";::
0
..:r::
is'"
~
"tI
CD
)(
u::
S
~
ii
~
~
~
~
~~I'P,
0:
;;:;;:;;:;;:
D-64
0:
Logic Diagrams
.
~
0:
iii
~
;
•
!It:;
~
,
~;
3
~
"
S
~
~ ~
.
~
.
Jlo-12'
,"X
JI~14)
1-\
I~
b
....
(JQ
(')
o
~.
'"I
~
3
~111?'
{Il
t;'
0"1
UJ
-ov
Fixed Disk Drive - Type 2 (Sheet 3 of 3)
(I X!pU~ddV
-I WRITE
(JIG-a
~
~
'"
~
;!
a
ell
(':C~:1
--- -
~~
'"~
'"~
8~
§
I~
;:;:;~
'"
1l
=
=
M
....'0....
~~~
..;:,.:c:.::.:
lii
:;:;;;ll:J
:! ~
NE~
~
--
II)
II)
.r:
~::
U~~ ~-~~ ~
"c~u
_
N~
~
c
o
"in
c
ca
Co
)(
..o
W
>-
E
II)
"
~
~
it
- -
"
~
~
~
"
..,00= .....
=
;:,
...
:Cc:Cc:C
~----~
D-66 Logic Diagrams
:c
'"
I!'"
~
i
'"
"
~
1l
N
M
;=
'"
~
~
if
....M0
...
N
CD
CD
.=
~
c:
0
'';::;
Q.
0
c:
0
'w
c:
ca
Q.
)(
.
W
>
0
E
CD
2:
~
N
M
Logic Diagrams
0-67
-
( II)
OS
(II)
~
II)
..c
~
c::
o
.lo:J39D3DIIV::J
"~
Ii
o
II
i3
1i...Jr~p-
c::
o
!!
";;;
i'Hf-~1- ii
0X
W
c::
I'CI
rHI- ~I->fl
!HI- ~I- i'i
G...Jf- ~I-il
Ig
~
N
(II)
u
IN
i
u
" " .""
"
c
"
."
r;
~
u
" ""
!!
"
"
"
rl
!l
18
u
~
Logic Diagrams
u
u
u
D-68
~
o
E
II)
:!:
""
•
"•G
f-lhii
~
~
iN"
N'
------------------------.~
~
~
"
~4~
~
I!iI:c~~
c &l;;~J
!Z!
ill •==.0:: =
NQ,~
-- - -
M
== -
~
I'
-
.......
.~
.c:
'0
=
d gl gIg
=
--
~
=Q
-N
Q)
Q)
en
c
~
c
5
-
~
!
o
:;!-~
'~
o
"
-
c
o
'--
'r;;
'----
-
-
II:
i!! !:l
;!',p,
~
>-_eo.. .... ...,.
:I~:.\
= _T~
:2~!!~
:o!
=~
=
T
-c
- --
~>~~~~~~
~L"
~I
-=
~ ~
l~c::~~I:1
N
_N
~
N
il~ :; c=u
=
:.\= ,~\~\
c
!.
,,1~1!';j
-.=,
I
~
;!.
~
~
-11~r
><
w
>
o
.
E
Q)
:2:
~
~
$- II·
=
;!~ i1L~
If,
I'
§ -
~
-
II
:!~
::c::c;;;;::c c
~
ccccoC
c
'"~--!'"
::~
!
'"~
Ii
'"
~
Logic Diagrams D-69
..
I~-
ail
i=i=
=~
!
I
L
1
;;:
~
~I
~
~
~~
:;,-
:::is>
:::i=-
="
\!!
;0"
~
a:
~
C"'~CI"'''''CD''''
:;
~ ~
~
~
N
I~
~W--=i:
-
"
L..
~
;;
~~~
~:"gllO
=
=
~
M
:s~
~
~
12~
~
'.081!<
~~
=
rl"I"I!'rrlr~ ~~~~
l!il
G~Q
~~-
~'t
lill
13
D-70 Logic Diagrams
I~....
~ ~ :;~
§
~ ~l'~
11T1=1~1"'1~" 111i=IS!I1it-41'
TITTTTI
0.
X
W
E
QI
2:
~
;Z
~~
GI -!'~~~I
;: Jill;:
J
G;:i!!i;:!llI::i' I' ;!!",:O;:i!!i;:!llI::1''I'_
iG~ ~~ ~N ~!g~(§)
g"g: S;!:!l i!l~
G
L--
:!C'J
~G
~C~
Q
SM09
IE so ~
i= SMOl 1=~'f-
i}
JILLlIIJ
....
t:
0
'iii
t:
...>0
.,.'.~
~I~_G
~~ ~ ~L-
g;
0
CIS
...---
~~
a;>:!
N
t:
0
'~
-N
L-
~
M
....
0
QI
~
SOl
~
.r::.
~
~
Ii!
::!
....QI
.'~ ~llt
i!!
c
.,J. ~
N
~!i,":C!:!l:!:::,.$
~~!l~1i_!l
~~,""!:!l:!:::""1:
~
c
111111
M
i5
M
tQ)
.l:
~
I
..o~
I:
o
'E-
1901 0""
o
; ~ f-+~
I:
I-" ~
o
'fij
I:
(II
il~l-rH- !l
0X
W
~~H"H-ii
>
o
E
Q)
:i!:
!'i ~I-f-i I- fi
I~
;;~I-f-il- "
~
~
~
"~H-H-,,
1l~I-~f--i:i
~~f---~f--I:;
1!~I-~f-- ~
1l~f---f-i f--
rl
il~h~r. i'l
Logic Diagrams
D-71
N
~
ill
~
.
~
;;;
;;;
NN
~
;;;
N
~~
i
'"i!
N
i
~
i
Is
15~
i
Ii
I~
I~
I~ e
-
oo::r
=
-
0-72
Logic Diagrams
o
~I
........
o
N
....QI
QI
~
~
c
o
"~
o
c
o
"iii
c
~
x
w
.
>
o
E
QI
I
'-t--+-t-+--+-t-+--t-'
:! ~
:2
,,~
~
cg
Lt'l
N
.......
C!
Logic Diagrams
D-73
;;:
Ii!
-
Ei S
;; :g
a
E;
8
"
Ei :;:
;;
III :g
-
E;
o::r
o
~
L
M
t)
CI)
~
~
-
I
~
!!i
~
;:;
~
l!:
!!
;:;
I
;;
II
I
I
.
~
;:;
:1;
~
~~
aa
I
I
;:;
L
=
I
"I
;~=:C:r!~~~~.I;
·~~rm
I
c
o
I
I
;:;
;;
I
~
;:;
;;
I
.
=
ii
I
;:;
1i!
-
..c
;:;
1l
;:;
I
I
"~
q
o
I
"in
cca
c
o
;:;
1l
~~
aa~
1~1!!"::!:1::!::/::/c~
I
17
Co
)(
W
~
o
E
CI)
:E
~
co
In
-N
;sS:
rllll "I
0-74
Logic Diagrams
" II "
o::r
co
if
f-lh
~I- f-lt-!.
>-il- f"11>-il- ~I>-il- ~I>-il- f"11>-il- f"11>-il-
f-ll-
'"11- ~I>-il- ~I>-il- ~I~
I--
;'
~!c!
1!ii!I
;;!
Ii
~
<
<
<
<
!!
!Ii iii - !!
iii
if
~
iii
- :=1
if
!! ii
~~
G>-i~ ~~
'"11- f"11'"11- ~I'"1t- ~I'"11- ~I>-il- ~I>-it- ~I>-il- ~I>-il- ~I>-il- f"11~I- PlI-
Logic Diagrams D-75
UL"
1,
,
.J
-
-
.-
....
CI)
CI)
.c
~
r------'
I
i i:
~
I
1
~~";:"~+-,t+-i
~
~I
't' ~l _______.....J
-
(
D-76
!:i
~~ ~55!
,,!:i!'J 515
:l1
~~~~
:;
;~:c ~~
Logic Diagrams
~
~
I~
I..
~~::~~:c:!
:l1
6:g:g;ga ll/e lii
)
BROUla
"RElET DR'
IAIII+DATAIITO
1A81 + OAfA BIT I
Z¥18
3
11
EI
115)" DATABIT4
4
6
18
15
E3
E4
IMI + DATA BIT 5 "
1
14
£8
:~~:::~:::g
1:;\ : ~:i:
::g
:
13
'12
II
~!
+&VDC
ItO DECODE FOR PROTOTYPE CARD
AI AI A7 AI A5 A4 AI A2 AI AU
IHlXI31111
1 loa 0 0 0 0 0 0
IHEIJ31F
1 I 0 0 0 1 1 I I 1
111010 I0Ix IxIx Ix Ix
cv
I
B5
-5Voe
-ORO 2
-I!VDC
RESEHVED
+12VDC
GROUID
-lOR
-DAC13
1814)·108
11131·IOW
IBI21·MIMR
11111·MEMW
ISPAREI
E18
l"lI-ADD•. BIT 0
:: :::~:: ::i:
~
::
I
17
§
9
1
5
3
".
E17
E18
El4
113
112
U3
-0'03
-DACI( 1
-DRUI
-OOClO
Cl'
-IR07
+IROI
-IR06
+1104
~'03
_.2
+T/C
-ALI
..voe
OSC
IA281-AODR.81T3
£"....
1
I
IA25) +ADDR. BIT 6
(')
o
'A241+J.DDR.81T7
1A23) .AUDR.81Ta
1
13
14
12
9
IAU)+"IOR.8IT9....
IA111+AEI
15
1
12
15
-5Voe
-1
~CI
~
o
I
Prototype Card (Sheet 1 of 1)
-..J
-..J
(J
x!pu;)ddv
0"AI8
AlB
A20
A21
122
123
124
126
In
127
In
B21I
B30
AU
A23
124
Ii7ii
A2t1
821
An
A211
.,
A30
~E
·110 DlCODI
(aoo IIEX-31F HEX INCLU8IVEI
---;mq
In
"0
All
A12
AI3
AI4
AI6
All
821
III
~.
9
AS
AI
~
7418244
IA2II-AID'.81T5
AI
Al
831
GROU.O
IA27)+ADDR.81T4
A6
111
B7
B8
B
BID
111
112
113
I ..
115
118
B17
liB
BI.
B2t1
-MEM.
-lOW
7..1G1
182
...H.
+IRU2
-MEM.
110
..."
BI
82
83
-110 CflA.IUCHECK
+DATA8IT 7
.DATA BIT I
+DATA liT 5
.DATA BIT 4
.t
0-78
Logic Diagrams
N
..-
.......o
Q)
Q)
.c
en
......
Q)
Co
ca
~
'"o
~
"+:0
ca
u
"c::J
E
E
8
.•
::J
'"
o
:e.
~
E
.c
u
~
>
en
...>
ca
~
as
Logic Diagrams
D- 79
........ ..,
H~,
'_"
!l~~S
a~ ~
~'"i
-'
~U
~
~
!
~(~
_N
_
=eA~
.....
l"'~~,
I .. "
J
_N
~
---,,_...
~
J~
C
_N~
"
...,
:
Ii.
~"
CD
I
I-I¢"Li I~~ ~J.1tr"Lr
I
,J
r-
~~~~~~ ~"H ~~~~~
~_o ~
~ ~
~
~'f 8~;'-"·.'!':"lN'~
--,
=
41'
~z
z
,-
~~~
N
~Q
2~
~
~
~
t~-=.
t::=::::t':"
fl
r;::===.-
r
"
ffi
ro::~~
~~
~
~
"''''
"!l;:<,g8sl~I;;~,.;j~ ~IE~~
~~I~
~: ~~I~
§
-~
~~~~~~~g~
~~ -
lt5t!l~~~
<:<;~Ci
~e~
Zzzz
N
::;
j
~
"~1
~;I~
1J~
D-80
Logic Diagrams
N
..,r-_..,_
_
~
~,,1"~1
;;;
,LI=
~
g~
;
§tt r. ~
,
~-m~I'
~ ~ ~ ~
~~
~
i'!5~~
;0
~
B
'c::J
E
E
8
'"
::J
o
C
o...
.c
c,)
c
iii
TIl
N
a..
o
~
co
c
E~~~~~
~
N
'"c
'0=;
:ti
~
"~
:s~
~~~~
.......
,,~~ ~~~
~
I~:I
!mJii!~'"
::>
=~~;g~:gCi~:;:~I2I~~~~
~1;1;;1l'l -------------+1+++----+-f---
r"" cLK-+-'lJ!illr---~+lllJ!!U--'--4--tHm
SOLC Communications Adapter (Sheet 2 of 2)
D-82
Logic Diagrams
lA-'.
,PI
! 3
1 +5V
#Jj~~I~~-~~t~~tt==t=ttIW'~-'-~~JI'
p.. -'-~;I"
!-=~~~~~F=fipi---·~7,,~
::=
-U
~.
r+-----+----+-++-l!H
__
f-1L~
." '-1++------+---+----++------,
m~"---m*l'"k=±=tM
:'
r
~~~~~/=
';
~
= ::
g)
1 \= ::
~:\'
"API
I
A
;~
~::
=~::I"-+-_++_+...J
.'----l
PAl
Pl.!
PC2
PC3
PCI
PC4
PU
PC5
3
3
7
JI4
AATESU 6 Jl23
~+SV
~7J
RU:TB 7 JIll
~;---~
3 TEST
B
~
L+----+---t--++-;t1,~,-- f!-
L: ~ PCO~~~~~~~~========~--_t~
~I~I~~~lInET
PAD
flAAlS
--.!l.--
tLu.L
r----1 ~:: ~~~
~~~ U9
===-
JI·18
r-_ _ _ _ _-+r::-::-I'....":
L_!2J
¥SIGNALGRDUIP
J17
SOLC Communications Adapter (Sheet 2 of 2)
Logic Diagrams
D-83
Notes:
D-84
Logic Diagrams
APPENDIX E: SPECIFICATIONS
System Unit
Size:
Length--19.6 in (500 mm)
Depth--16.1 in (410 mm)
Height--5.5 in (142 mm)
Weight:
32 lb (14.5 kb)
Power Cables:
Length--6 ft (1. 83m)
Size--18 AWG
Environment:
Air Temperature
System ON, 60° to 90° F (15.6° to 32.2° C)
System OFF, 50° to 110° F (l0° to 43° C)
Humidity
System ON, 8% to 80%
System OFF, 20% to 80%
Heat Output:
717 BTU/hr
Noise Level:
49.5 dB(a) (System unit with monochrome display and
expansion unit attached.)
Electrical:
Nominal--120 Vac
Minimum--104 Vac
Maximum--127 Vac
Keyboard
Size:
Length--19.6 in (500 mm)
Depth--7.87 in (200 mm)
Height--2.2 in (57 mm)
Weight:
6.5 lb (2.9 kg)
Specifications
E·l
Color Display
Size:
Length--1S.4 in (392 mm)
Depth--1S.6 in (407 mm)
Height--11. 7 in (297 mm)
Weight:
26 lb (11.8 kg)
Heat Output:
240 BTU/hr
Power Cables:
Length--6 ft (1.83 m)
Size--18 AWG
Signal Cable:
Length--S ft (1.5 m)
Size--22 A WG
Expansion Unit
Size:
Length--19.6 in (SOO mm)
Depth--16.1 in (410 mm)
Height--S.S in (142 mm)
Weight:
33 lb (14.9 kg)
Power Cables:
Length--6 ft (1. 83m)
Size--18 AWG
Signal Cable:
Length--3.28 ft (1 m)
Size--22 A WG
Environment:
Air Temperature
System ON, 60° to 90° F (15.6° to 32.2° C)
System OFF, 50° 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--11 in (280 mm)
Weight:
17.3 lb (7.9 kg)
Heat Output:
325 BTU/hr
Power Cable:
Length--3 ft (.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--18 A WG
Signal Cable:
Length--6 ft (1.83 m)
Size--22 A WG
Heat Output:
341 BTU/hr (maximum)
Electrical:
Nominal--120 Vac
Minimum--104 Vac
Maximum--127 Vac
Specifications
E-3
t'fj
CIl
"0
(I)
11
Front View (Component Side)
;..
I
~
(')
Lac. Hole
0.125 ± .002 (3.175 ± .OS)
~
::1
j
;;1-
Loc. Hole
Mounting Holes
I
'"
~
Position 631
Is on Back
(Pm Side)
J
'''"'''" " ""' ""
Copper Pad
(To Ground)
.\
~
loc Holes
"
t llnnn
~I
__
0125± 002(317S±05)
-
___
~
A1 I
Jlli
-,-
J
c:i
(I)
I
Jur
.
It>
!:::.
~
o
0
t')
are ± .010 (.2S4) Tolerance
(With Exceptions Indicated
on Drawing or in Notes).
2. Max. Card Length is 13.15 (334.01)
Smaller length is Permissible.
3. Loc. and Mounting Holes are
Non- Plated Thru.
(Loc. 3X. Mtg. 2X).
4
.
~
.
o
31 Gold Tabs Each Side.
0.100 ± .0005 (2.S4 ± .0127) Center
to Center. 0.06 ± .0005 (1.S24 ± .0127)
Width.
c:.
o
I
-...I
D X!pUJddV
-
o
I
00
til
~
....
.....
=-"
(')
320K Total Memory
64K + (256K on System Board)
til
CD
::::
5'
(JC/
r:I>
64/256K Option
Card Switches
1 - 64/256K option with 64K installed
1 - 64K option
2 - 32K options
64K Option
Card Switches
32K Option
Card Switches
u~Q~~~QQQI
I~~Q~~~~~~ I
I~~Q~~~~~~ I
1~~Q~~Q~~~J
352K Total Memory
96K + (256K on System Board)
64/256K Option
Card Switches
1 - 64/256K option with 64K installed
1 - 32K option
1 - 64K option
1 - 32K option
til
:a
g'
64K Option
Card Switches
32K Option
Card Switches
I~~Q~Q~~~~ I
l~~Q~~~QQQ J
I;~Q~~~~~~ I
r~~Q~Q~~~~ 1
r;~Q~~~~~~ 1
I~~Q~~Q~~~ I
3 - 32K options
I~~Q~Q~~~~ l
t:r'
til
-s·
n>
(JQ
til
9
Ie
D X!pU~ddV
o
-
384K Total Memory
128K + (256K on System Board)
I
o
tZl
~.
.....
(")
::r'
tZl
~
::::
64/256K Option
Card Switches
1 - 64/256K option with 64K option installed
1 - 64K option
s·
.I;~Q~~~QQQ I
32K Option
Card Switches
I~~Q~Q~~~~ I
I~~Q~~~~~~ J
1~~Q~Q~~~~ I
(JQ
!:Il
2 - 64K options
1 - 64/256K option with 64K installed
2 - 32K options
I~~Q~Q~~~~ I
I~~Q~QQ~~~ I
I~~Q~~~QQQ I
1~~Q~~~~~~ I
1 - 64K option
2 - 32K options
1 - 64/256K .option with 128K installed
- - -
64K Option
Card Switches
-_._---
I;~Q~~Q~QQ I
I~~Q~Q~~~~ I
I~~Q~QQ~~~ I
4l6K Total Memory
lOOK + {256K on System Board)
64/256K Option
Card Switches
1 - 64/256K option with 64K installed
1 - 64K option
1 - 32K option
I;~Q~~~QQQ j
I~~Q~Q~~~~J
r.f.l
~
(')
::r
r.f.l
1 - 64/256K option with 128K installed
1 - 32K option
I~~Q~Q~~~~ I
I~~Q~~~~~~J
2 - 64K options
1 - 32K option
........
64K Option
Card Switches
I~~Q~~Q~QQ I
('t)
~
s·
(JQ
rIl
o
......
I
D X!pU;JddV
32K Option
Card Switches
I~~QQ~~~~~
I~~QQ~~~~~J
r~~QQ~~~~~ I
9
448K Total Memory
192K + (256K on System Boardl
N
....
~
.....
n
1· 64/256K option with 192K installed
t'D
1 - 64/256K option with 128K installed
1 . 64K option
::r'
Vl
:::
Er
'"
64K Option
Card Switches
64/256K Option
Card Switches
Vl
I~~Q~~QQ~Q I
I~~Q~~Q~QQ I
I~~Q~~~QQQ I
I~~QQ~~~~~ I
I~~Q~Q~~~~J
I~~QQ~~~~~ I
I~~ Q
~~~~~~J
I~~Q~Q~~~~I
I~~QQ~~~~~ I
3· 64K options
1 . 64/256K option with 128 installed
2 . 32K options
I~~ Q~ ~ Q~ Q
QJ
-
-
j
I
(JQ
1 • 64/256K option with 64K installed
2 . 64K options
32K Option
Card Switches
--
I~~QQ~~~~~ I
I~~QQ~Q~~~ I
480K Total Memory
224K + (256K on System Board)
64/256K Option
Card Switches
Vl
~
.....
.....
(')
64K Option
Card Switches
1 • 64/256K option with 192K installed
1 • 32K option
I~~Q~~QQ~Q I
1 - 64/256K option with 128K installed
1 • 64K option
1 - 32K option
li~Q~~Q~QQ )
-.--
32K Option
Card Switches
I~~QQQ~~~~ I
)~~QQ~~~~~ )
I~~QQQ~~~~ I
-
-
::r'
Vl
(I)
::::
sr
(J'Cl
(Il
o
I
( ,H
D X!pU~ddV
-
9
512K Total Memory
256K + (256K on System Boardl
.&;:.
en
~
~.
64/256K Option
Card Switches
=-
en
(1)
::::
....
:::
Otl
(I)
64K Option
Card Switches
32K Option
Card Switches
J
I
1 - 64/256K option with 128K installed
2 - 64K options
li~Q~~Q~QQ I
I~~QQ~~~~~ I
I~~QQQ~~~~ I
1 - 64/256K option with 192K installed
1 - 64K option
I~~Q~~QQ~Q I
l~~QQQ~~~~ I
1 - 64/256K option with 192K installed
2 - 32K options
l~~Q~~QQ~QJ
1 - 64/256K option with 256K installed
I~~Q~~QOQ~ I
I~~QQQ~~~~ I
I~~QQQQ~~~ I
544K Total Memory
288K + (256K on System Board)
64/256K Option
Card Switches
64K Option
Card Switches
32K Option
Card Switches
1 - 64/256K option with 192K installed
1 - 64K option
1 - 32K option
I~~Q~~QQ~Q I
1~~QQQ~~~~ I
I~Q~~~~~~~ I
1 - 64/256K option with 256K installed
1 - 32K option
1~~Q~~QQQ~ J
CI)
....
=::::
....::s
::;;
.....
(')
CI)
(II
~
[Il
-
C1
I
VI
D X!pUJddV
I~Q~~~~~~~J
I
o
-
576K Total Memory
320K + 1256K on System Board)
I
0\
Vl
~.
.....
::r
64/256K Option
Card Switches
n
Vl
(1)
~
S·
(JQ
r/l
1 - 64/256K option with 192K installed
2 - 64K options
1 - 64/256K option with 256K installed
1 - 64/256K option with 64K installed
I~~Q~~QQ~Q I
64K Option
Card Switches
32K Option
Card Switches
I~~QQQ~~~~ I
I~Q~~~~~~~ J
I~~Q~~QQQ~ I
uQ~~~~QQQJ
1 - 64/256K option with 256K installed
1 - 64K option
I~~Q~~QQQ~ I
1 - 64/256K option with 256K installed
2 - 32K options
I~~Q~~QQQ~ I
I~Q~~~~~~~ I
I~Q~~~~~~~ J
I~Q~~~Q~~~ I
608 K Total Memory
352K + 1256K on System Board)
64/256K Option
Card Switches
1 - 64/256K option with 256K installed
1 - 64/256K option with 64K installed
1 - 32K option
V,l
~.
.....
~
=-
1 - 64/256K option with 256K installed
1 - 64K option
1 - 32K option
64K Option
Card Switches
I~~Q~~QQQ~ I
I~Q~~Q~~~~ I
I~Q~~~~QQQ I
I~~Q~~QQQ~ I
32K Option
Card Switches
I~Q~~~~~~~ I
V,l
f1j
s·::=:
UQ
I;Il
-
9
-....I
D X!pU;)ddV
I~Q~~O~~~~ I
o
I
640K Total Memory
384K + (256K on System Board)
00
en
~
~.
::r
64/256K Option
Card Switches
til
64K Option
Card Switches
(I)
;:::::
5'
(JQ
~
1 - 64/256K option with 256K installed
1 - 64/256K option with 64K installed
1 - 64K option
1 - 64/256K option with 256K installed
2 - 64K options
1 - 64/256K option with 256K installed
1 - 64/256K option with 128K installed
I;~Q~~QQQ~ I
I;Q~~~~QQQ I
l;~Q~~QQQ~J
I;~Q~~QQQ~ I
l;Q~~~Q~QQJ
---- -
I;Q~~Q~~~~ I
l;Q~~~~~~~ I
l;Q~~Q~~~~ I
32K Option
Card Switches
GLOSSARY
J.Ls: Microsecond.
adapter: An auxiliary system or unit used to extend the operation
of another system.
address bus: One or more conductors used to carry the binarycoded address from the microprocessor throughout the rest of the
system.
all points addressable (APA): A mode in which all points on a
displayable image can be controlled by the user.
alpanumeric (A/N): Pertaining to a character set that contains
letters, digits, and usually other characters, such as punctuation
marks. Synonymous with alphanumeric.
American Standard Code for Information Interchange
(ASCII): The standard code, using a coded character set
consisting of 7-bit coded characters (8 bits including parity
check), used for information interchange among data processing
systems, data communication systems and associated equipment.
The ASCII set consists of control characters and graphic
characters.
A/N: Alphanumeric.
analog: (1) pertaining to data in the form of continuously variable
physical quantities. (2) Contrast with digital.
AND: A logic operator having the property that if P is a
statement, Q is a statement, R is a statement, ... ,then the AND of
P, Q, R, .. .is true if all statements are true, false if any statement is
false.
APA: All points addressable.
ASCII: American Standard Code for Information Interchange.
Glossary H-I
assembler: A computer program used to assemble. Synonymous
with assembly program.
asynchronous communications: A communication mode in
which each single byte of data is synchronized, usually by the
addition of start/stop bits.
BASIC: Beginner's all-purpose symbolic instruction code.
basic input/output system (BIOS): Provides the device level
control of the major I/O devices in a computer system, which
provides an operational interface to the system and relieves the
programmer from concern over hardware device characteristics.
baud: (1) A unit of signaling speed equal to the number of
discrete conditions or signal events per second. For example, one
baud equals one-half dot cycle per second in Morse code, one bit
per second in a train of binary signals, and one 3-bit value per
second in a train of signals each of which can assume one of eight
different states. (2) In asynchronous transmission, the unit of
modulation rate corresponding to one unit of interval per second;
that is, if the duration of the unit interval is 20 milliseconds, the
modulation rate is 50 baud.
BCC: Block-check character.
beginner's all-purpose symbolic instruction code (BASIC): A
programming language with a small repertoire of commands and a
simple syntax, primarily designed for numerical application.
binary: (1) Pertaining to a selection, choice, or condition that has
two possible values or states. (2) Pertaining to a fixed radix
numeration system having a radix of two.
binary digit: (1) In binary notation, either of the characters 0 or
1. (2) Synonymous with bit.
binary notation: Any notation that uses two different characters,
usually the binary digits 0 and 1.
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.
H-2
Glossary
BIOS: Basic input/output system.
bit: In binary notation, either of the characters 0 or 1.
bits per second (bps): A unit of measurement representing the
number of discrete binary digits which can be transmitted by a
device in one second.
block-check character (BCC): In cyclic redundancy checking, a
character that is transmitted by the sender after each message
block and is compared with a block-check character computed by
the receiver to determine if the transmission was successful.
boolean operation: (1) Any operation in which each of the
operands and the result take one of two values. (2) An operation
that follows the rules of boolean algebra.
bootstrap: A technique or device designed to bring itself into a
desired state by means of its own action; that is, a machine routine
whose first few instructions are sufficient to bring the rest of itself
into the computer from an input device.
bps: Bits per second.
BSC: Binary synchronous communications.
buffer: (1) An area of storage that is temporarily reserved for use
in performing an input/output operation, into which data is read or
from which data is written. Synonymous with I/O area. (2) A
portion of storage for temporarily holding input or output data.
bus: One or more conductors used for transmitting signals or
power.
byte: (1) A binary character operated upon as a unit and usually
shorter than a computer word. (2) The representation of a
character.
CAS: Column address strobe.
cathode ray tube (CRT): A vacuum tube display in which a
beam of electrons can be controlled to form alphanumeric
characters or symbols on a luminescent screen, for example by
use of a dot matrix.
Glossary H-3
cathode ray tube display (CRT display): (1) A device that
presents data in visual form by means of controlled electron
beams. (2) The data display produced by the device as in (1).
CCITT: Comite Consultatif International Telegrafique et
Telephonique.
central processing unit (CPU): A functional unit that consists
of one or more processors and all or part of internal storage.
channel: A path along which signals can be sent; for example,
data channel or I/O channel.
characters per second (cps): A standard unit of measurement
for printer output.
code: (I) A set of unambiguous rules specifying the manner in
which data may be represented in a discrete form. Synonymous
with coding scheme. (2) A set of items, such as abbreviations,
representing the members of another set. (3) Loosely, one or more
computer programs, or part of a computer program. (4) To
represent data or a computer program in a symbolic form that can
be accepted by a data processor.
column address strobe (CAS): A signal that latches the column
addresses in a memory chip.
Comite Consultatif International Telegrafique et Telephonique
(CCITT): Consultative Committee on International Telegraphy
and Telephony.
computer: A functional unit that can perform substantial
computation, including numerous arithmetic operations, or logic
operations, without intervention by a human operator during the
run.
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.
H-4
Glossary
conjunction: (1) The boolean operation whose result has the
boolean value 1 if, and only if, each operand has the boolean
value 1. (2) Synonymous with AND operation.
contiguous: (1) Touching or joining at the edge or boundary.
(2) Adjacent.
CPS: Characters per second.
CPU: Central processing unit.
CRC: Cyclic redundancy check.
CRT: Cathode ray tube.
CRT display: Cathode ray tube display.
CTS: Clear to send. Associated with modem control.
cyclic redundancy check (CRC): (1) A redundancy check in
which the check key is generated by a cyclic algorithm. (2) A
system of error checking performed at both the sending and
receiving station after a block-check character has been
accumulated.
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.
daisy-chained cable: A type of cable that has two or more
connectors attached in series.
data: (1) A representation of facts, concepts, or instructions in a
formalized manner suitable for communication, interpretation, or
processing by humans or automatic means. (2) Any
representations, such as characters or analog quantities, to which
meaning is, or might be assigned.
decoupling capacitor: A capacitor that provides a lowimpedance path to ground to prevent common coupling between
states of a circuit.
Deutsche Industrie Norm (DIN): (1) German Industrial
Norm. (2) The committee that sets German dimension standards.
Glossary
H-5
digit: (1) A graphic character that represents an integer, for
example, one of the characters 0 to 9. (2) A symbol that
represents one of the non-negative integers smaller than the radix.
For example, in decimal notation, a digit is one of the characters
from 0 to 9.
digital: (1) Pertaining to data in the form of digits. (2) Contrast
with analog.
DIN: Deutsche Industrie Norm.
DIN connector: One of the connectors specified by the DIN
standardization committee.
DIP: Dual in-line package.
direct memory access (D MA): A method of transferring data
between main storage and I/O devices that does not require
processor intervention.
disk: Loosely, a magnetic disk unit.
diskette: A thin, flexible magnetic disk and a semi-rigid
protective jacket, in which the disk is permanently enclosed.
Synonymous with flexible disk.
DMA: Direct memory access.
DSR: Data set ready. Associated with modem control.
DTR: Data terminal ready. Associated with modem control.
dual in-line package (DIP): A widely used container for an
integrated circuit. DIPs are pins usually in two parallel rows.
These pins are spaced 1/10 inch apart and come in different
configurations ranging from 14-pin to 40-pin configurations.
EBCDIC: Extended binary-coded decimal interchange code.
ECC: Error checking and correction.
edge connector: A terminal block with a number of contacts
attached to the edge of a printed circuit board to facilitate plugging
into a foundation circuit.
H-6
Glossary
EIA: Electronic Industries Association.
EIA/CCITT: Electronics Industries Association/Consultative
Committee on International Telegraphy and Telephony.
end-of-text-character (ETX): A transmission control character
used to terminate text.
end-of-transmission character (EOT): A transmission control
character used to indicate the conclusion of a transmission,
which may have included one or more texts and any associated
message headings.
EOT: End-of-transmission character.
EPROM: Erasable programmable read-only memory.
erasable programmable read-only memory (EPROM): A
storage device whose contents can be changed by electrical
means. EPROM information is not destroyed when power is
removed.
error checking and correction (ECC): The detection and
correction of all single-bit, double-bit, and some mUltiple-bit
errors.
ETX: End-of-text character.
extended binary-coded decimal interchange code
(EBCDIC): A set of 256 characters, each represented by eight
bits.
flexible disk: Synonym for diskette.
firmware: Memory chips with integrated programs already
incorporated on the chip.
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.
graphic: A symbol produced by a process such as handwriting,
drawing, or printing.
Glossary H-7
hertz (Hz): A unit of frequency equal to one cycle per second.
hex: Abbreviation for hexadecimal.
hexadecimal: Pertaining to a selection, choice, or condition that
has 16 possible values or states. These values or states usually
contain 10 digits and 6 letters, A through F. Hexadecimal digits
are equivalent to a power of 16.
high-order position: The leftmost position in a string of
characters.
Hz: Hertz.
interface: A device that alters or converts actual electrical signals
between distinct devices, programs, or systems.
k: An abbreviation for the prefix kilo; that is, 1,000 in decimal
notation.
K: When referring to storage capacity, 2 to the tenth power;
1,024 in decimal notation.
KB: Kilobyte; 1,024 bytes.
kHz: A unit of frequency equal to 1,000 hertz.
kilo (k): One thousand.
latch: (1) A feedback loop in symmetrical digital circuits used to
maintain a state. (2) A simple logic-circuit storage element
comprising two gates as a unit.
LED: Light-emitting diode.
light-emitting diode (LED): A semi-conductor chip that gives
off visible or infrared light when activated.
low-order position: The rightmost position in a string of
characters.
m: (1) Milli; one thousand or thousandth part. (2) Meter.
H-8
Glossary
M: Mega; 1,000,000 in decimal notation. When referring to
storage capacity, 2 to the twentieth power; 1,048,576 in decimal
notation.
rnA: Milliampere.
machine language: (1) A language that is used directly by a
machine. (2) Another term for computer instruction code.
main storage: A storage device in which the access time is
effectively independent of the location of the data.
MB: Megabyte, 1,048,576 bytes.
mega (M): 10 to the sixth power, 1,000,000 in decimal notation.
When referring to storage capacity, 2 to the twentieth power,
1,048,576 in decimal notation.
megabyte (MB): 1,048,576 bytes.
megahertz (MHz): A unit of measure of frequency. 1 megahertz
equals 1,000,000 hertz.
MFM: Modified frequency modulation.
MHz: Megahertz.
microprocessor: An integrated circuit that accepts coded
instructions for execution; the instructions may be entered,
integrated, or stored internally.
microsecond (Jls): One-millionth of a second.
milli (m): One thousand or one thousandth.
milliampere (rnA): One thousandth of an ampere.
millisecond (ms): One thousandth of a second.
mnemonic: A symbol chosen to assist the human memory; for
example, an abbreviation such a "mpy" for "mUltiply."
mode: (1) A method of operation; for example, the binary mode,
the interpretive mode, the alphanumeric mode. (2) The most
frequent value in the statistical sense.
Glossary
H-9
modem: (Modulator-Demodulator) A device that converts serial
(bit by bit) digital signals from a business machine (or data
terminal equipment) to analog signals which are suitable for
transmission in a telephone network. The inverse function is also
performed by the modem on reception of analog signals.
modified frequency modulation (MFM): The process of
varying the amplitude and frequency of the "write" signal. MFM
pertains to the number of bytes of storage that can be stored on
the recording media. The number of bytes is twice the number
contained in the same unit area of recording media at single
density.
modulo check: A calculation performed on values entered into a
system. This calculation is designed to detect errors.
monitor: (1) A device that observes and verifies the operation of
a data processing system and indicates any specific departure
from the norm. (2) A television type display, such as the IBM
Monochrome Display. (3) Software or hardware that observes,
supervises, controls, or verifies the operations of a system.
ms: Millisecond; one thousandth of a second.
multiplexer: A device capable of interleaving the events of two or
more activities, or capable of distributing the events of an
interleaved sequence to the respective activities.
NAND: A logic operator having the property that if P is a
statement, Q is a statement, R is a statement, ... ,then the NAND
of P ,Q,R, .. .is true if at least one statement is false, false if all
statements are true.
nanosecond (ns): One-thousandth-millionth of a second.
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.
non-return-to-zero inverted (NRZI): A transmission encoding
method in which the data terminal equipment changes the signal
to the opposite state to send a binary 0 and leaves it in the same
state to send a binary 1.
H -10 Glossary
NOR: A logic operator having the property that if P is a
statement, Q is a statement, R is a statement, ... ,then the NOR of
P,Q,R, .. .is true if all statements are false, false if at least one
statement is true.
NOT: A logical operator having the property that if P is a
statement, then the NOT of P is true if P is false, false if P is true.
NRZI: Non-return-to-zero inverted.
ns: Nanosecond; one-thousandth-millionth of a second.
operating system: Software that controls the execution of
programs; an operating system may provide services such as
resource allocation, scheduling, input/output control, and data
management.
OR: A logic operator having the property that if P is a statement,
Q is a statement, R is a statement, ... ,then the OR of P ,Q,R, .. .is
true if at least one statement is true, false if all statements are
false.
output: Pertaining to a device, process, or channel involved in an
output process, or to the data or states involved in an output
process.
output process: (1) The process that consists of the delivery of
data from a data processing system, or from any part of it. (2) The
return of information from a data processing system to an end
user, including the translation of data from a machine language
to a language that the end user can understand.
overcurrent: A current of higher than specified strength.
overvoltage: A voltage of higher than specified value.
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.
Glossary
H-11
PEL: Picture element.
personal computer: A small home or business computer that has
a processor and keyboard that can be connected to a television or
some other monitor. An optional printer is usually available.
picture element (PEL): (1) The smallest displayable unit on a
display. (2) Synonymous with pixel, PEL.
pinout: A diagram of functioning pins on a pinboard.
pixel: Picture element.
polling: (1) Interrogation of devices for purposes such as to avoid
contention, to determine operational status, or to determine
readiness to send or receive data. (2) The process whereby
stations are invited, one at a time, to transmit.
port: An access point for data entry or exit.
printed circuit board: A piece of material, usually fiberglass,
that contains a layer of conductive material, usually metal.
Miniature electronic components on the fiberglass transmit
electronic signals through the board by way of the metal layers.
program: (1) A series of actions designed to achieve a certain
result. (2) A series of instructions telling the computer how to
handle a problem or task. (3) To design, write, and test computer
programs.
programming language: (1) An artificial language established
for expressing computer programs. (2) A set of characters and
rules, with meanings assigned prior to their use, for writing
computer programs.
PROM: Programmable read-only memory.
propagation delay: The time necessary for a signal to travel from
one point on a circuit to another.
radix: (1) In a radix numeration system, the positive integer by
which the weight of the digit place is multiplied to obtain the
weight of the digit place with the next higher weight; for example,
in the decimal numeration system, the radix of each digit place is
10. (2) Another term for base.
H-12
Glossary
radix numeration system: A positional representation system in
which the ratio of the weight of anyone digit place to the weight
of the digit place with the next lower weight is a positive integer.
The permissible values of the character in any digit place range
from zero to one less than the radix of the digit place.
RAS: Row address strobe.
RGBI: Red-green-blue-intensity.
read-only memory (ROM): A storage device whose contents
cannot be modified, except by a particular user, or when operating
under particular conditions; for example, a storage device in which
writing is prevented by a lockout.
read/write memory: A storage device whose contents can be
modified.
red-green-blue-intensity (RGBI): The description of a directdrive color monitor which accepts red, green, blue, and intensity
signal inputs.
register: (1) A storage device, having a specified storage
capacity such as a bit, a byte, or a computer word, and usually
intended for a special purpose. (2) On a calculator, a storage
device in which specific data is stored.
RF modulator: The device used to convert the composite video
signal to the antenna level input of a home TV.
ROM: Read-only memory.
ROM/BIOS: The ROM resident basic input/output system,
which provides the device level control of the major I/O devices in
the computer system.
row address strobe (RAS): A signal that latches the row
addresses in a memory chip.
RS-232C: The standard set by the EIA for communications
between computers and external equipment.
RTS: Request to send. Associated with modem control.
run: A single continuous performance of a computer program
or routine.
Glossary H-13
scan line: The use of a cathode beam to test the cathode ray tube
of a display used with a personal computer.
schematic: The description, usually in diagram form, of the
logical and physical structure of an entire data base according to a
conceptual model.
SDLC: Synchronous Data Link Control.
sector: That part of a track or band on a magnetic drum, a
magnetic disk, or a disk pack that can be accessed by the magnetic
heads in the course of a predetermined rotational displacement of
the particular device.
serdes: Serializer/deserializer.
serial: (1) Pertaining to the sequential performance of two or
more activities in a single device. In English, the modifiers serial
and parallel usually refer to devices, as opposed to sequential and
consecutive, which refer to processes. (2) Pertaining to the
sequential or consecutive occurrence of two or more related
activities in a single device or channel. (3) Pertaining to the
sequential processing of the individual parts of a whole, such as
the bits of a character or the characters of a word, using the same
facilities for successive parts. (4) Contrast with parallel.
sink: A device or circuit into which current drains.
software: (1) Computer programs, procedures, rules, and
possibly associated documentation concerned with the operation
of a data processing system. (2) Contrast with hardware.
source: The origin of a signal or electrical energy.
source circuit: (1) Generator circuit. (2) Control with sink.
SS: Start-stop transmission.
start bit: Synonym for start signal.
start-of-text character (STX): A transmission control character
that precedes a text and may be used to terminate the message
heading.
H-14
Glossary
start signal: (1) A signal to a receiving mechanism to get ready
to receive data or perform a function. (2) In a start-stop system, a
signal preceding a character or block that prepares the receiving
device for the reception of the code elements. Synonymous with
start bit.
start-stop (SS) transmission: Asynchronous transmission such
that a group of signals representing a character is preceded by a
start signal and followed by a stop signal. (2) Asynchronous
transmission in which a group of bits is preceded by a start bit that
prepares the receiving mechanism for the reception and
registration of a character and is followed by at least one stop bit
that enables the receiving mechanism to come to an idle condition
pending the reception of the next character.
stop bit: Synonym for stop signal.
stop signal: (1) A signal to a receiving mechanism to wait for the
next signal. (2) In a start-stop system, a signal following a
character or block that prepares the receiving device for the
reception of a subsequent character or block. Synonymous with
stop bit.
strobe: (1) An instrument used to determine the exact speed of
circular or cyclic movement. (2) A flashing signal displaying an
exact event.
STX: Start-of-text character.
Synchronous Data Link Control (SLDC): A protocol for the
management of data transfer over a data communications link.
synchronous transmission: Data transmission in which the
sending and receiving devices are operating continuously at the
same frequency and are maintained, by means of correction, in a
desired phase relationship.
text: In ASCII and data communication, a sequence of characters
treated as an entity if preceded and terminated by one STX and
one ETX transmission control, respectively.
Glossary
H-IS
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.
transistor-transistor logic (TTL): A circuit in which the
multiple-diode cluster of the diode-transistor logic circuit has been
replaced by a multiple-emitter transistor.
TIL: Transistor-transistor logic.
TX Data: Transmit data. Associated with modem control.
External connections of the RS-232C asynchronous
communications adapter interface.
video: Computer data or graphics displayed on a cathode ray
tube, monitor or display.
write precompensation: The varying of the timing of the head
current from the outer tracks to the inner tracks of the diskette to
keep a constant write signal.
H-16
Glossary
BIBLIOGRAPHY
Intel Corporation. The 8086 Family User's Manual
This manual introduces the 8086 family of microcomputing
components and serves as a reference in system design and
implementation.
Intel Corporation. 8086/8087/8088 Macro Assembly Reference
Manualfor 8088/8085 Based Development System
This manual describes the 8086/8087/8088 Macro Assembly
Language, and is intended for use by persons who are familiar
with assembly language.
Intel Corporation. Component Data Catalog
This book describes Intel components and their technical
specifications.
Motorola, Inc. The Complete Microcomputer Data Library.
This book describes Motorola components and their technical
specificaitons.
National Semiconductor Corporation. INS 8250 Asynchronous
Communications Element. This book documents physical and
operating characteristics of the INS 8250.
Bibliography 1-1
Notes:
1-2 Bibliography
INDEX
A
A/N mode (alphanumeric mode) 1-123
AO-AI9 (Address Bits 0 to 19), I/O channel 1-15
adapter card with ROM 2-10
adapter,
asynchronous communication 1-215
binary synchronous communication 1-245
color/graphics monitor 1-123
diskette drive 1-151
fixed disk drive 1-179
game control 1-203
monochrome display and printer 1-115
printer 1-113
synchronous data link control 1-265
Address Bits 0 to 19 (AO-AI9), I/O channel 1-15
address bits (asynchronous communication) 1-217
Address Enable (AEN), I/O channel 1-18
Address Latch Enable (ALE), I/O channel 1-15
address map, I/O 1-8
AEN (Address Enable), I/O channel 1-18
ALE (Address Latch Enable), I/O channel 1-15
all points addressable mode 1-129, 1-123
alphanumeric mode, 1-128
high resolution 1-135
low resolution 1-132
alt (keyboard extended code) 2-15
AP A mode (all points addressable mode) 1-124
asynchronous communications adapter, 1-215
adapter address jumper module 1-242
address bits 1-217
block diagram 1-216
connector specifications 1-243
current loop interface 1-219
divisor latch least significant bit 1-229
divisor latch most significant bit 1-230
I/O decode 1-217
INS8250 functional pin description 1-221
INS8250 input signals 1-221
INS8250 input/output signals 1-225
Index
J-l
INS8250 output signals 1-224
interface descriptions 1-218
interface format jumper module 1-242
interrupt control functions 1-234
interrupt enable register 1-235
interrupt identification register 1-233
interrupts 1-218
line control register 1-227
line status register 1-231
modem control register 1-236
modem status register 1-238
modes of operation 1-216
programmable baud rate generator 1-229
programming considerations 1-226
receiver buffer register 1-240
reset functions 1-226
transmitter holding register 1-241
voltage interchange information 1-220
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-231
bell (printer) 1-92
bibliography 1-1
binary synchronous communications adapter, 1-245
8252A programming procedures 1-257
8252A universal synchronous/asynchronous
receiver/transmitter 1-241
8253-5 programmable interval timer 1-251
8255A-5 programmable peripheral interface 1-251
block diagram 1-246
command instruction format 1-258
connector information 1-257
data bus buffer 1-247
interface signal information 1-260
interrupt information 1-262
mode instruction definition 1-257
J-2
Index
read/write control logic 1-247
receive 1-252
receiver buffer 1-249
receiver control 1-249
status read definition 1-259
transmit 1-251
transmitter buffer 1-248
transmitter control 1-249
typical programming sequence 1-253
BIOS,
fixed disk ROM A-84
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 adapter)
block diagram
8252A universal synchronous/asynchronous
receiver/transmitter 1-246
8273 SDLC protocol controller 1-267
asynchronous communications adapter 1-215
color/graphics monitor adapter 1-125
coprocessor 1-25
diskette drive adapter 1-151
expansion board 1-71
extender card 1-74
fixed disk drive adapter 1-179
game control adapter 1-203
keyboard interface 1-67
monochrome display adapter 1-114
printer adapter 1-108
prototype card 1-118
receiver card 1-77
speaker drive system 1-20
synchronous data link control adapter 1-265
system 1-2
break (keyboard extended code) 2-14
BSC adapter
(see binary synchronous communications)
Index J-3
c
cable
communications adapter 1-285
expansion unit 1-171
printer 1-81
cancel (printer) 1-93
cancel ignore paper end (printer) 1-95
cancel skip perforation (printer) 1-99
caps lock (keyboard extended code) 2-16
card dimensions and specifications E-4
card selected 1-19
CARD SLCTD (card selected), I/O channel 1-19
card,
dimensions and specifications E-4
extender 1-74
prototype 1-209
receiver 1-77
carriage return (printer) 1-92
CCITT, F-l
standards F-l
character attributes
color/graphics monitor adapter 1-130
monochrome display adapter 1-130
character codes
keyboard 2-11
character set,
graphics printer (set 1) 1-10 3
graphics printer (set 2) 1-105
matrix printer 1-101
quick reference C-12
clear printer buffer (printer) 1-100
CLK (system clock), I/O channel 1-16
color display 1-149
operating characteristics 1-150
specifications E-2
color select register 1-141
color/graphics monitor adapter 1-123
6845 register description 1-136
alphanumeric mode 1-127
alphanumeric mode (high-resolution) 1-128
alphanumeric mode (low-resolution) 1-128
block diagram 1-126
character attributes 1-130
color-select register 1-141
composite connector specifications 1-146
J-4
Index
connector specifications 1-146
direct-drive connector specifications 1-146
display buffer basic operation 1-127
graphics mode 1-132
graphics mode (high resolution) 1-135
graphics mode (low resolution) 1-132
graphic mode (medium resolution) 1-133
light pen connector specifications 1-147
major components 1-126
memory requirements 1-145
mode control and status register 1-143
mode register summary 1-143
mode select register 1-141
programming considerations 1-137
RF modulator connector specifications 1-147
sequence of events 1-144
status register 1-143
summary of available color 1-135
colors, summary of available 1-137
command status register 0 1-164
command status register 1 1-165
command status register 2 1-166
command status register 3 1-167
command summary,
diskette drive adapter 1-151
fixed disk drive adapter 1-179
communications adapter cable 1-285
connector specifications 1-286
communications F-l
establishing a link F-3
component diagram,
system board 1-13
compressed (printer) 1-93
compressed off (printer) 1-93
connector specifications,
asynchronous communications adapter 1-215
binary synchronous communications 1-245
color/graphics monitor adapter 1-147
communications adapter cable 1-286
diskette drive adapter (external) 1-174
diskette drive adapter (internal) 1-1 73
game control adapter 1-203
keyboard interface 1-67
monochrome display adapter 1-115
printer adapter 1-81
synchronous data link control adapter 1-293
Index J-5
connectors,
power supply (system unit) 1-21
consideration, programming
(see programming considerations)
control byte, fixed disk drive adapter 1-186
control codes, printer 1-91
control/read/write logic 1-268
coprocessor,
(see math coprocessor)
ctrl (keyboard extended code) 2-13
current loop interface 1-219
D
DO-D7 (data bits 0 to 7), I/O channel 1-16
DACKO-DACK3 (DMA Acknowledge 0 to 3), I/O channel 1-18
Data Bits 0 to 7 (DO-D7), I/O channel 1-16
data flow,
system board 1-6
data register 1-185
data transfer mode register 1-282
DEF SEG (default segment workspace) 2-8
default workspace segment (DEF SEG) 2-8
diagram, block (see block diagram)
digital output register 1-153
diskette drive adapter 1-151
adapter input 1-1 71
adapter output 1-170
block diagram 1-152
command status register 0 1-164
command status register 1 1-165
command status register 2 1-166
command status register 3 1-167
command summary 1-158
connector specifications (external) 1-174
connector specifications (internal) 1-173
digital-output register 1-153
DPC registers 1-167
drive A and B interface 1-170
drive constants 1-168
FDC constants 1-168
floppy disk controller 1-154
functional description 1-153
programming considerations 1-156
programming summary 1-167
symbol descriptions 1-156
system I/O channel interface 1-168
J-6
Index
diskette drive, 1-175
electrical specifications 1-176
mechanical specifications 1-176
switch settings G-l
diskettes 1-177
display adapter type switch settings G-l
display,
color 1-149
monochrome 1-121
divisor latch,
least significant bit 1-229
most significant bit 1-230
DMA Acknowledge 0 to 3 (DACKO-DACK3),
I/O channel 1-18
DMA Request 1 to 3 (DRQI-DRQ3), I/O channel 1-18
DOS reserved interrupts 2-7
DOS,
keyboard functions 2-20
reserved interrupts 2-7
double strike (printer) 1-96
double strike off (printer) 1-96
double width (printer) 1-93
double width off (printer) 1-93
DPC registers 1-167
DRQI-DRQ3 (DMA Request 1 to 3), I/O channel 1-18
E
EIA, F-l
standards F-l
emphasized (printer) 1-96
emphasized off (printer) 1-96
escape (printer) 1-93
establishing a communications link F-3
expansion board, 1-71
block diagram 1-72
expansion channel 1-73
expansion unit, 1-71
cable 1-71
expansion board 1-71
expansion channel 1-73
extender card 1-74
interface information 1-79
power supply 1-71
receiver card 1-77
specifications E-2
Index
J-7
extender card, 1-74
block diagram 1-76
programming considerations 1-75
switch settings G-l
F
FABS (coprocessor) 1-36
F ADD (coprocessor) 1-36
FBLD (coprocessor) 1-37
FBSTP (coprocessor) 1-37
FCHS (coprocessor) 1-38
FCLEX/FNCLEX (coprocessor) 1-38
FCOM (coprocessor) 1-38
FCOMP (coprocessor) 1-39
FCOMPP (coprocessor) 1-39
FDECSTP (coprocessor) 1-40
FDISI/FNDISI (coprocessor) 1-40
FDIV (coprocessor) 1-41
FDIVR (coprocessor) 1-42
FENI/FNENI (coprocessor) 1-43
FFREE (coprocessor) 1-43
FICOM (coprocessor) 1-43
FICOMP (coprocessor) 1-44
FILD (coprocessor) 1-44
FINCSTP (coprocessor) 1-44
FINIT/FNINIT (coprocessor) 1-45
FIST (coprocessor) 1-46
FISTP (coprocessor) 1-46
fixed disk controller 1-179
fixed disk drive 1-195
fixed disk drive adapter 1-179
block diagram 1-180
command summary 1-187
control byte 1-186
data register 1-185
fixed disk controller 1-179
interface specifications 1-193
programming considerations 1-181
programming summary 1-191
ROM BIOS listing A-84
sense bytes 1-181
status register 1-181
system I/O channel interface 1-192
J-8
Index
fixed disk drive, 1-195
electrical specifications 1-196
mechanical specifications 1-196
fixed disk ROM BIOS A-84
FLD (coprocessor) 1-47
FLDCW (coprocessor) 1-47
FLDENV (coprocessor) 1-48
FLDLG2 (coprocessor) 1-48
FLDLN2 (coprocessor) 1-48
FLDL2E (coprocessor) 1-49
FLDL2T (coprocessor) 1-49
FLDPI (coprocessor) 1-49
FLDZ (coprocessor) 1-50
FLDI (coprocessor) 1-50
floppy disk controller 1-154
form feed (printer) 1-92
FMVL 1-51
FNOP 1-52
FPATAN 1-52
FPREM 1-52
FPTAN 1-53
FRNDINT 1-53
FRSTOR 1-53
FSAVE/FNSAVE (coprocessor) 1-54
FSCALE (coprocessor) 1-54
FSQRT (coprocessor) 1-55
FST (coprocessor) 1-55
FSTCW/FNSTCW (coprocessor) 1-56
FSTENV/FNSTENV (coprocessor) 1-56
FSTP (coprocessor) 1-57
FSTSW/FNSTSW (coprocessor) 1-57
FS VB ( coprocessor) 1-58
FSVBR (coprocessor) 1-59
FTST (coprocessor) 1-60
FWAIT (coprocessor) 1-60
FXAM (coprocessor) 1-61
FXCH (coprocessor) 1-62
FXTRACT (coprocessor) 1-62
FYL2X (coprocessor) 1-63
FYL2XPI (coprocessor) 1-63
F2XMl (coprocessor) 1-64
Index J-9
G
game control adapter, 1-203
block diagram 1-203
connector specifications 1-208
functional description 1-204
I/O channel description 1-205
interface description 1-206
joy stick schematic diagram 1-207
glossary, H-l
graphics mode, 1-123
high resolution 1-124
low resolution 1-123
medium resolution 1-124
H
hardware interrupt listing 1-9
home head (printer) 1-95
horizontal tab (printer) 1-92
I
I/O address map 1-8
I/O bit map, 8255A 1-10
I/O CH CK (I/O Channel Check), I/O channel 1-17
I/O CH RDY (I/O Channel Ready), I/O channel 1-17
I/O Channel Check (I/O CH CK), I/O channel 1-17
I/O channel interface,
diskette drive adapter 1-168
fixed disk drive adapter 1-192
prototype card 1-211
I/O Channel Ready (I/O CH RDY), I/O channel 1-17
I/O channel, 1-14
-I/O Channel Check (I/O CH CK) 1-17
-I/O Read Command (lOR) 1-17
-I/O Write Command (lOW) 1-17
Address Bits 0 to 19 (AO-A19) 1-16
Address Enable (AEN) 1-18
Address Latch Enable (ALE) 1-16
Data Bits 0 to 7 (DO-D7) 1-16
description 1-16
diagram 1-15
DMA Request 1 to 3 (DRQI-DRQ3) 1-18
I/O Channel Ready (I/O CH RDY) 1-17
J-I0
Index
Interrupt Request 2 to 7 (lRQ2-IRQ7) 1-17
Memory Read Command (MEMR) 1-18
Memory Write Command (MEMW) 1-18
Oscillator (OSC) 1-16
Reset Drive (RESET DRV) 1-16
System Clock (CLK) 1-16
Terminal Count (T/C) 1-18
I/O Read Command (lOR), I/O channel 1-17
I/O Write Command (lOW), I/O channel 1-17
IBM 10MB Fixed Disk Drive 1-195
IBM 5-1/4" Diskette Drive 1-175
IBM 5-1/4" Diskette Drive Adapter 1-151
IBM 80 CPS Graphics Printer 1-81
IBM 80 CPS Matrix Printer 1-81
IBM 80 CPS Printers 1-81
IBM Asynchronous Communications Adapter 1-215
IBM Binary Synchronous Communications Adapter 1-245
IBM Color Display 1-149
IBM Color/Graphics Monitor Adapter 1-123
IBM Communicatons Adapter Cable 1-295
IBM Fixed Disk Drive Adapter 1-179
IBM Game Control Adapter 1-203
IBM Memory Expansion Options 1-197
IBM Monochrome Display and Printer Adapter 1-113
IBM Monochrome Display 1-121
IBM Personal Computer Math Coprocessor 1-25
IBM Printer Adapter 1-107
IBM Prototype Card 1-209
IBM Synchronous Data Link Controller Adapter 1-265
ignore paper end (printer) 1-94
INS8250,
(see National Semiconductor INS8250)
Intel 8088 microprocessor,
arithmetic B-7
conditional transfer operations B-14
control transfer B-l1
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-3
processor control B-14
register model B-2
Index J-ll
second instruction byte summary B-3
segment override prefix B-4
software interrupt listing 2-4
string manipulation B-ll
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-10
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-265
interrupt enable register 1-235
interrupt identification register 1-233
interrupt listing,
8088 hardware 1-9
8088 software 2-4
Interrupt Request 2 to 7 (IRQ2-IRQ7), I/O channel 1-17
interrupts,
8088 hardware 1-9
8088 software 2-4
asynchronous communications adapter 1-215
BASIC reserved 2-7
DOS reserved 2-7
special 2-5
lOR (I/O Read Command), I/O channel 1-17
lOW (I/O Write Command), I/O channel 1-17
IRQ2-IRQ7 (Interrupt Request 2 to 7), I/O channel 1-17
J
joy stick,
positions 1-204
schematic diagram 1-207
jumper module, asynchronous communications adapter 1-242
K
keyboard extended codes,
alt 2-15
break 2-16
caps lock 2-16
ctrl 2-15
J-12
Index
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-65
BASIC screen editor special functions 2-20
character codes 2-11
commonly used functions 2-18
diagram 1-68
DOS special functions 2-20
encoding 2-11
extended functions 2-14
interface block diagram 1-70
interface connector specifications 1-70
scan codes 1-69
specifications E-l
L
light pen connector specifications 1-147
line control register 1-227
line feed (printer) 1-92
line status register 1-223
logic diagrams D-l
M
math coprocessor 1-25
block diagram 1-29
control unit 1-29
control word 1-32
data types 1-26
exception pointers 1-33
FABS 1-36
FADD 1-36
FBLD 1-37
FBSTP 1-37
FCHS 1-38
FCLEX/FNCLEX 1-38
FCOM 1-38
FCOMP 1-39
FCOMPP 1-39
FDECSTP 1-40
Index J-13
FDISIjFNDISI 1-40
FDIV 1-41
FDIVR 1-42
FENI/FNENI 1-43
FFREE 1-43
FICOM 1-43
FICOMP 1-44
FILD 1-44
FINCSTP 1-44
FINIT/FNINIT 1-45
FIST 1-46
FISTP 1-46
FLD 1-47
FLDCW 1-47
FLDENV 1-48
FLDLG2 1-48
FLDLN2 1-48
FLDL2E 1-49
FLDL2T 1-49
FLDPI 1-49
FLDZ 1-50
FLDI 1-50
FMUL 1-51
FNOP 1-52
FPATAN 1-52
FPREM 1-52
FPTAN 1-53
FRNDINT 1-53
FRSTOR 1-53
FSAVE/FNSAVE 1-54
FSCALE 1-54
FSQRT 1-55
FST 1-55
FSTCW/FNSTCW 1-56
FSTENV/FNSTENV 1-56
FSTP 1-57
FSTSW/FNSTSW 1-57
FSUB 1-58
FSUBR 1-59
FTST 1-60
FWAIT 1-60
FXAM 1-61
FXCH 1-62
FXTRACT 1-62
FYL2X 1-63
FYL2XPI 1-63
F2XMl 1-64
J-14
Index
hardware interface 1-27
instruction set 1-35
interconnection 1-28
number system 1-34
programming interface 1-26
register stack 1-30
status word 1-31
tag word 1-33
memory expansion options, 1-197
DIP module start address 1-201
memory module description 1-198
memory module pin configuration 1-199
memory option switch settings G-l
R/W memory operating characteristics 1-198
switch-configurable start address 1-200
memory locations,
reserved 2-8
memory map,
BIOS 2-9
system 1-11
Memory Read Command (MEMR), I/O channel 1-18
memory switch settings, G-l
extender card G-1
memory options G-l
system board G-1
Memory Write Command (MEMW), I/O channel 1-18
(MEMR) Memory Read Command, I/O channel 1-18
(MEMW) Memory Write Command, I/O channel 1-18
microprocessor (see Intel 8088 microprocessor)
mode control and status register 1-139
mode select register 1-141
modem control register 1-236
modem status register 1-238
monochrome display 1-121
monochrome display and printer adapter 1-113
monochrome display adapter 1-115
6845 CRT control port 1-118
6845 CRT status port 1-118
block diagram 1-114
character attributes 1-117
connector specifications 1-119
I/O address and bit map 1-117
programming considerations 1-115
monochrome display, 1-121
operating characteristics 1-122
specifications E-3
Index J-15
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-221
input signals 1-221
input/output signals 1-225
output signals 1-224
null (printer) 1-92
o
one bit delay mode register 1-283
operating mode register 1-280
OSC (oscillator) 1-16
Oscillator (OSC), I/O channel 1-16
p
parameter passing (ROM BIOS) 2-3
pause (keyboard extended code) 2-17
power good signal 1-24
power supply 1-21
connectors 1-23
input requirements 1-22
over-voltage/current protection 1-24
pin assignments 1-23
power good signal 1-24
Vac output 1-22
Vdc output 1-22
print screen (keyboard extended code) 2-17
printer adapter, 1-107
block diagram 1-108
connector specifications 1-111
programming considerations 1-109
printer control codes, 1-91
1I8-inch line feeding 1-94
1920 bit-image graphics mode 1-10 1
480 bit-image graphics mode 1-97
7/72-inch line feeding 1-94
960 bit-image graphics mode 1-99
J-16
Index
960 bit-image graphics mode normal speed 1-100
bell 1-92
cancel 1-93
cancel ignore paper end 1-95
cancel skip perforation 1-99
carriage return 1-92
clear printer buffer 1-100
compressed 1-93
compressed off 1-93
double strike 1-96
double strike off 1-97
double width 1-99, 1-93
double width off 1-93
emphasized 1-96
emphasized off 1-96
escape 1-93
form feed 1-92
home head 1-91
horizontal tab 1-92
ignore paper end 1-94
line feed 1-92
null 1-92
printer deselected 1-93
printer selected 1-93
select character set 1 1-94
select character set 2 1-94
set horizontal tab stops 1-96
set lines per page 1-96
set skip perforation 1-99
set variable line feeding 1-97
set vertical tabs 1-95
starts variable line feeding 1-94
subscript/superscript 1-99
subscript/ superscript off 1-99
underline 1-94
unidirectional printing 1-99
vertical tab 1-92
printer deselected (printer) 1-93
printer selected (printer) 1-93
printer, 1-81
additional specifications 1-83
cable 1-81
connector pin assignment 1-87
control codes 1-91
graphic character set 1 1-103
graphic character set 2 1-105
interface signal descriptions 1-87
Index J-17
matrix character set 1-101
modes 1-90
parallel interface 1-86
parallel interface timing diagram 1-86
specifications 1-82, E-3
switch locations 1-84
switch settings 1-84
processor (see Intel 8088 micrprocessor)
programmable baud rate generator 1-229
programming considerations,
asynchronous communications adapter 1-226
binary synchronous communications adapter 1-253
color/graphics monitor adapter 1-137
diskette drive adapter 1-151
extender card 1-74
fixed disk drive adapter 1-179
monochrome display adapter 1-115
printer adapter 1-109
receiver card 1-77
SDLC adapter 1-275
prototype card, 1-209
block diagram 1-210
external interface 1-213
I/O channel interface 1-211
layout 1-211
system loading and power limitations 1-213
Q
quick reference, character set C-12
R
receiver buffer register 1-249
receiver card, 1-77
block diagram 1-78
programming considerations 1-77
J-18
Index
register,
6845 description ( color/graphic adapter) 1-13 9
color select (color/ graphic adapter) 1-140
command status 0 (diskette drive adapter) 1-167
command status 1 (diskette drive adapter) 1-168
command status 2 (diskette drive adapter) 1-169
command status 3 (diskette drive adapter) 1-170
data (fixed disk drive adapter) 1-185
data transfer mode (SDLC) 1-272
digital output (diskette drive adapter) 1-153
DPC (diskette drive adapter) 1-167
interrupt enable (asynchronous communications) 1-235
interrupt identification (asynchronous communications) 1-235
line control (asynchronous communications) 1-227
line status (asynchronous communications) 1-231
mode control and status (color/graphics) 1-139
mode select ( color/graphics) 1-141
modem control (asynchronous communications) 1-236
modem status (asynchronous communications) 1-238
one-bit delay mode (SDLC) 1-283
operating mode (SDLC) 1-280
receiver buffer (asynchronous communications) 1-240
serial I/O mode (SDLC) 1-282
status ( color/graphics) 1-143
status (fixed disk drive adapter) 1-181
transmitter holding (asynchronous communications) 1-241
reserved interrupts,
BASIC and DOS 2-7
reserved memory locations 2-7
Reset Drive (RESET DRV), I/O channel 1-16
RESET DRV (Reset Drive), I/O channel 1-16
RF modulator connector specifications 1-147
ROM BIOS, 2-2
Fixed Disk A-84
System A-2
ROM, adapter cards with 2-10
RS-232C,
interface standards F-2
Index
J-19
s
scan codes,
keyboard 1-65
scroll lock (keyboard extended code) 2-14
SDLC (see synchronous data link control)
select character set 1 (printer) 1-94
select character set 2 (printer) 1-94
sense bytes, fixed disk drive adapter 1-181
serial I/O mode register 1-282
set horizontal tab stops (printer) 1-96
set lines per page (printer) 1-96
set skip perforation (printer) 1-99
set variable line feeding (printer) 1-95, 1-97
set vertical tabs (printer) 1-95
shift (keyboard extended code) 2-13
shift key priorities (keyboard code) 2-14
shift states (keyboard extended code) 2-13
software interrupt listing 2-4
speaker connector 1-20
speaker drive system 1-20
speaker interface 1-20
specifications,
80 CPS printers E-3
color display E-2
expansion unit E-2
keyboard E-1
monochrome display E-3
printer 1-82
printer (additional) 1-83
system unit E-1
stack area 2-7
starts variable line feeding (printer) 1-94
status register, 1-137
color/graphics monitor adapter 1-143
fixed disk drive adapter 1-181
synchronous data link control adapter 1-276
subscript/ superscript (printer) 1-99
subscript/ superscript off (printer) 1-99
switch settings, G-l
diskette drive G-1
display adapter type G-l
extender card G-1
memory options G-1
printer 1-84
J-20
Index
system board G-l
system board memory G-l
synchronous data link control communications adapter, 1-265
8253-5 interval timer control word 1-279
8253-5 progammable interval timer 1-275
8255A-5 port A assignments 1-274
8255A-5 port B assignments 1-274
8255A-5 port C assignments 1-275
8255A-5 programmable peripheral interface 1-274
8273 command phase flow chart 1-286
8273 commands 1-285
8273 control/read/write registers 1-269
8273 data interfaces 1-270
8273 elements of data transfer interface 1-270
8273 mode register commands 1-283
8273 modem control block 1-271
8273 modem control port A 1-271
8273 modem control port B 1-272
8273 modem interface 1-271
8273 protocol controller operations 1-266
8273 protocol controller structure 1-267
8273 register selection 1-268
8273 SDLC protocol controller block diagram 1-257
8273 transmit/receiver timing 1-283
block diagram 1-265
command phase 1-284
connector specifications 1-293
control/read/write logic 1-268
data transfer mode register 1-282
device addresses 1-291
execution phase 1-287
general receive 1-288
initialization/configuration commands 1-280
initializing the SDLC adapter 1-278
interface information 1-292
interrupt information 1-291
one bit delay code register 1-283
operating mode register 1-290
partial byte received codes 1-290
processor interface 1-268
programming considerations 1-275
protocol control module features 1-266
protocol controller operations 1-266
result code summary 1-290
result phase 1-287
Index J-21
selective receive 1-289
serial data timing block 1-273
serial I/O mode register 1-282
status register format 1-276
transmit 1-288
system block diagram 1-2
system board, 1-3
component diagram 1-13
data flow 1-6
R/W memory operating characteristics 1-198
switch settings G-l
System Clock (CLK), I/O channel 1-16
system memory map 1-12
system reset (keyboard extended code) 2-16
system ROM BIOS A-2
system unit, 1-3
I/O channel 1-14
I/O channel diagram 1-15
keyboard interface 1-67
power supply 1-21
speaker interface 1-20
specifications E-l
system board 1-3
T
T/C (Terminal Count), I/O channel 1-19
transmitter holding register 1-241
u
underline (printer) 1-94
unidirectional printer (printer) 1-99
J-22
Index
v
Vac output,
system unit 1-22
Vdc output,
system unit 1-22
vectors with special meanings 2-5
vertical tab (printer) 1-92
voltage interchange,
asynchronous communications adapter 1-215
Numerics
1/8 inch line feeding (printer) 1-94
1920 bit-image graphics mode (printer) 1-100
480 bit-image graphics mode (printer) 1-97
6845,
(see color/graphics monitor adapter)
(see monochrome display adapter)
7/72 inch line feeding (printer) 1-94
8088,
(see Intel 8088 microprocessor) 1-4
8250,
(see asynchronous communications adapter)
8253-5,
(see synchronous data link control adapter)
8255A 1-10
8255A-5,
(see synchronous data link control adapter)
8273,
(see synchronous data link control adapter)
960 bit-image graphics mode (printer) 1-99
960 bit-image graphics mode normal speed (printer) 1-100
Index J-23
Notes:
J-24
Index
------ ------- ------_.-----
The Personal Computer
Hardware Library
Reader's Comment Form
TECHNICAL REFERENCE
1502237
Your comments assist us in improving the usefulness of
our publication; they are an important part of the input
used for revisions.
IBM may use and distribute any of the information you
supply in any way it believes appropriate without
incurring any obligation whatever. You may, of course,
continue to use the information you supply.
Please do not use this form for technical questions
regarding the IBM Personal Computer or programs for
the IBM Personal Computer, or for requests for
additional publications; this only delays the response.
Instead, direct your inquiries or request to your
authorized IBM Personal Computer dealer.
Comments:
111111
NO POSTAGE
NECESSARY
IF MAILEO
IN THE
UNITED STATES
BUSINESS REPLY MAIL
FIRST CLASS
PERMIT NO. 123
BOCA RATON, FLORIDA 33432
POSTAGE WILL BE PAID BY ADDRESSEE
IBM PERSONAL COMPUTER
SALES & SERVICE
P.O. BOX 1328-C
BOCA RATON, FLORIDA 33432
aJa4 PlO:::!
l
aldelS
lOU Op
aseald
ade.l
------- ------ ----------_.-
The Personal Computer
Hardware Library
Reader's Comment Form
TECHNICAL REFERENCE
1502237
Your comments assist us in improving the usefulness of
our publication; they are an important part of the input
used for revisions.
IBM may use and distribute any of the information you
supply in any way it believes appropriate without
incurring any obligation whatever. You may, of course,
continue to use the information you supply.
Please do not use this form for technical questions
regarding the IBM Personal Computer or programs for
the IBM Personal Computer, or for requests for
additional pUblications; this only delays the response.
Instead, direct your inquiries or request to your
authorized IBM Personal Computer dealer.
Comments:
111111
NO POSTAGE
NECESSARY
IF MAILED
IN THE
UNITED STATES
BUSINESS REPLY MAIL
FIRST CLASS
PERMIT NO. 123
BOCA RATON, FLORIDA 33432
POSTAGE WILL BE PAID BY ADDRESSEE
IBM PERSONAL COMPUTER
SALES & SERVICE
P.O. BOX 1328-C
BOCA RATON, FLORIDA 33432
aJa4 PIO:::!
aldelS lOU op aseald
ade.l
--------- ---- -------- -----®
International Business Machines Corporation
P.O. Box 1328-W
Boca Raton, Florida 33432
1502237
Printed in United States of America
Source Exif Data:
File Type : PDF
File Type Extension : pdf
MIME Type : application/pdf
PDF Version : 1.3
Linearized : No
XMP Toolkit : Adobe XMP Core 4.2.1-c043 52.372728, 2009/01/18-15:56:37
Create Date : 2013:05:24 16:49:44-08:00
Modify Date : 2013:05:24 17:00:37-07:00
Metadata Date : 2013:05:24 17:00:37-07:00
Producer : Adobe Acrobat 9.53 Paper Capture Plug-in
Format : application/pdf
Document ID : uuid:d5f62b0e-8f8b-b242-9246-9be9251959b5
Instance ID : uuid:3e838cd5-2e42-6a4e-b649-a9f95a343830
Page Layout : SinglePage
Page Mode : UseNone
Page Count : 628
EXIF Metadata provided by EXIF.tools