IBM AT 5170 Technical Reference page 243

Table of Contents

Advertisement

IBM Perllonal Computer MACRO Allllembler
Verllion 2.00
1-14
TEST2 ---- 06/10/85
POST TESTS AND INITIALIZATION ROUTINES
06-10-85
1435 0173 51
PUSH
01
:
SAVE WORK REGISTER
1436 0114 BF ,1",1,,55
MDV
DI,OAA55H
: GET TEST PATTERN
1431 0111 2B DB
SUB
BX,BX
:
SET BX_OOOO
1438 0119 88 07
MDV
AX, [9XI
; GET
I ST WORD FROt.4 MODULE
1439 011B 38 Cl
GMP
AX,DI
; =
TO
10 WORD?
1440 0110 5F
POP
01
I RECOVER WORK REG I STER
1441 017E 15 05
JNZ
NEXT ROM
; PROCEED TO NEXT ROt.4
I
F NOT
1442 0180 E8 0000 E
CALL
ROM CHECK
; GO CHECK OUT MODULE
1443 0183 E8 04
JMP
SHORT ARE_WE_DONE
, CHECK FOR END OF ROM SPACE
1444 0785
NEXT ROM;
1445 0165 81
C2 0080
-
AOO
DX,0080H
PO I NT TO NEXT 2K ADDRESS
1446 0769
ARE WE DONEI
1447 0789 81 FA EOOO
-
-
CMP
OX ,OEOOOH
AT EOOOO YET?
1448 0780 7C E2
JL
ROM_SCAN2
GO CHECK ANOTHER ADD.
IF NOT
1449
1450
1-----
TEST FOR KEYBOARD LOCKED
1451
1452 018F E8 0000 E
CALL
DDS
SET 0,1" T A SEGMENT
1453 0192 E4 64
IN
AL,STATUS PORT
I S KEYBOARD UNLOCKED?
1454 0194 24
10
AND
AL,KYBD IJilH
1455 0196 14 02
JZ
KEYI
-
NO -
SET ERROR FLAGS AND PRINT MESSAGE
1456 0198 EB OB
JMP
SHORT KEY 1 0
GO IF OFF
1451 019A
KEY1 :
1458 019A 80 OE 0016 R 80
OR
OMFG ERR FLAG+I,KEY FAILI
<><><><><><><><><><><><><><>
1459
-
-
- ;
<><>
KEYBOARD
I SLaCKED
<><>
1460
ASSUME
DS;DATA
1461
019F BE 0000 E
MDV
51,OFFSET E302
PRINT LOCKED MESSAGE
(3021
1462 01,1,,2 E6 0000 E
CALL
E_MSG
1463 07,1,,5
KEYIOI
1464
; ===:: ::======::::=======
1465
1-----
SETUP OPR I NTER BASE
1466
1
:::= =::=: ===:===i'=====
1461
1468 07,1,,5 BF 0905 R
MOV
01 ,OFFSET F4
1 OFFSET OF PRINTER ADDRESS TABLE
1469 07,1,,8 BE 0000
MDV
S 1,0
1470 07AB
F161
1471
07A8
2E:
8B 15
MDV
DX,CS:[DII
GET PR INTER BASE ADDRESS
1412 alAE BO ,1",1"
MDV
AL,OAAH
WR I TE DATA TO PORT A
1413 01BO EE
OUT
DX,AL
1414 01BI
E8 00
JMP
0·2
1/0 DELAY
1415 0183
IE
PUSH
OS
BUS SETTL I NG
1416 0184 EC
IN
AL,DX
READ PORT A
1411 0185
IF
POP
OS
1418 0186 3C ,1",1"
CMP
AL.OAAH
DATA PATTERN SAME
1419 0188 15 06
JNE
FJ7
NO -
CHECK NEXT PR I NTER CARD
1480 01BA 89 94 0008 R
MOV
~~R INTER_BASE[SI
J
,ox
YES -
STORE PR
I
NTER BASE ADDRESS
1481 07BE 46
INC
I NCREt.4ENT TO NEXT WORD
1482 07BF 46
INC
51
1463 07CO
FIT:
1484 07CO 41
INC
01
PO I NT TO NEXT BASE ADDRESS
1485 OlCI 47
INC
01
1486 01C2 81
FF 0909 R
CMP
01 ,OFFSET F4E
ALL POSS IBLE AODRESSES CHECKED?
1487 01C6 75 E3
JNE
Fl6
PRT_BASE
1488
;==========::==
1489
; -----
SETUP RS232
1490
1491 01C8 88 0000
POINTER TO RS232 TABLE
~o~::====;;:~==
1492 01C8 9A 03FA
t.40V
DX,3FAH
CHECK IF RS232 CARD I ATTACHED?
1493 01CE EC
IN
AL,DX
READ INTERRUPT 10 REGI STER
1494 01CF A8 F8
TEST
AL. OF8H
1495 0101
15 08
,jNZ
FI6
1496 0103 Cl 81 0000 R OlF8
~~~
:~S232_BASE[BXJ
,3F8H
SETUP RS232 CARD "1
ADDRESS
1491 0109 43
1498 01DA 43
INC
BX
1499 0lOB BA 02FA
FI81
MOV
DX,2FAH
CHECK
IF RS232 CARD 2 ATTACHED
1500 07DE EC
IN
AL,DX
READ INTERRUPT
IO
REG
I
STER
150 1 07DF ,1,,8 F8
TEST
AL, OF8H
1502 07EI
15 08
,jNZ
F19
BASE END
150l 01E3 Cl 81 0000 R 02F8
MOV
PRS232 BASE(BX] ,2F8H
SETUP RS232 CARD '2
1504 01E9 43
INC
BX
­
1505 OlEA 43
INC
BX
1506
,_ •• =:::::: ==:::::: =::
=
=:::: =
= ==::::
=========::
=:: = =::::
==:::: =:::::: ==
=-
=-
=::::
==== =
===
1501
SET UP PEQUIP_FLAG TO INDICATE NUMBER OF PRINTERS AND RS232 CARDS
1508
; === =============== "'=='" "': ===:== ===::==::::==::======== ==== ==::==== ==: =
1509 01E8
F19:
; BASE END,
1510 01E8 89 C6
t.40V
AX,SI
;
SI HAS 2- NUMBER OF RS232
1511
OlEO 9103
MOV
CL,3
;
SHIFT COUNT
1512 07EF 02 C8
ROR
AL,CL
; ROTATE RIGHT 3 POSITIONS
1513 07FI
0,1" C3
OR
AL,BL
; OR IN THE PRINTER COUNT
1514 07F) ,1,,2 0011 R
MOV
BYTE PTR <PEQU I P _FLAG-<-
I
,AL
;
STORE AS SECOND BYTE
1515
1516
INSURE CMOS CLOCK HAS VALID HOURS.MINUTES.SECONDS
1511
1518 01F6 E8 0000 E
CALL
SET_TOO
1
INSURE CMOS CLOCK IS VALID
1519
1520
1-----
ENABLE HARDWARE INTERRUPT IF MATH PROCESSOR
(80287)
1521
1522 01F9 BO 40
MDV
AL ,40H
<> <> <><><><><><><><><><>
1523 07FB E6 80
OUT
MFG_PORT, AL
<><>
CHECKPOINT
40
<><>
1524
1525 OlFD BF 0061 R
MOV
ADDRESS WORK STORAGE LOCATION
~~:~~FSET PIO_ROM_INIT
1526 0800 33 co
XDR
CLEAR WORK REGISTER
(AHI.O
(NO 281)
1521 0802 89 05
MDV
WORD PTR [Dll,AX
CLEAR THE WORK LOCA T I ON
1528 0804 08 E3
FNINIT
INITIALIZE THE 80287 WITH NO WAIT
1529 0806 E8 00
JMP
0.2
DELAY
1530 0808 09 3D
FNSTCW
WORD PTR [OJ
1
WRITE THE CURRENT 80281 CONTROL WORD
1531
080,1" 60
PUSHA
TIt.4E FOR 80261 TO RESPOND
1532 0808 61
POP A
1533 080e 81
25
IF3F
AND
WORD PTR
[DII,OIF3FH
CLEAR UNUSED 60281 BITS
15340810 81
3D 033F
CMP
WORD PTR
10
I I, 0033FH
IS THE 80281 INSTALLED?
1535 0814 15
13
JNE
NO_281
GO IF MATH PROCESSOR
(S NOT INSTALLED
1536
1537 0816 9B DO 3D
FSTSW
WORO PTR
[0 I)
STORE THE STATUS WORD
(WITH WAITl
1538 0819 60
PUSHA
TIME FOR 80281 TO RESPOND
1539 081,1" 61
POPA
1540 0819 F7 05 989F
TEST
WORD PTR [0 I ] , OB88FH
ALL BITS SHOULD 9E OFF
(OR ERROR)
1541 081F 15 08
JNZ
NO_281
GO IF NOT
INSTALLED
1542
1543 0821 E4 AI
IN
AL,INTB01
GET THE SLAVE I NTERRUPT MASK
1544 0823 24 OF
AND
AL,OOFH
ENABLE 80287
INTERRUPTS
1545 0825 B4 02
MOV
AH,002H
SET WORK REGISTER FOR 80287 FOUND
15460821 E6 AI
OUT
INTB01,AL
1541 0829
15480829 ,1,,0 0010 R
Mav
AL,BYTE PTR qlEQU IP_FLAG
GET LOW EQUIPMENT FLAG
TEST2
5-71

Advertisement

Table of Contents
loading

Table of Contents