IBM 5170 Technical Reference page 187

Hide thumbs Also See for 5170:
Table of Contents

Advertisement

01£5
ORG
OFFSET CS:??OOOF
07E5
A9 0001
TEST
AX.
V I RTUAL ENABLE
ARE WE I N PROTECTED MODE
07E8
75 10
JNZ
VIR_OK
-
07EA
BO 8F
SHUT_8:
AL, S'iUT_DOWN
SET THE RETURN ADDR
07EC
E6 70
CMOS_PORT, AL
07EE
EB 00
SHORT $+2
10 DELAY
07FO
BO 08
AL,08H
SET SHUTDOWN 8
07F2
07F4
E6 71
E9 0000 E
CMOS_PORT+1,AL
PROC_SHUTDOWN
CAUSE A SHUTDOWN
;-------- ViRTUAL MODE ERROR HALT
07F7
F4
SHUTS:
~ILT
07F8
EB FL
JMP
SHUTS
;
ERROH HALT
~
;------- 64K SEGMENT LIMIT
07FA
C7 06 0048 FFFF
;--- .. --­ CPLO,
DATA ACCESS RIGHTS
oaoo
C6 06 0040 93
MOV
BYTE PTR OS: (ES_TEMP.DATA_ACC_RIGHTS),CPLO_OATA_ACCESS
;------- START WITH SEGMENT ADDR 01-0000 (SECOND 64K)
oa05
oaOA
C6 06 004C 01
C7 06 004A 0000
MOV
MOV
BYTE PTR DS:(ES TEMP. BASE Hi BYTEL01H
DS:ES_TEMP,BASE:=LO_WORD,OH­
oa10
50 1 B
MOV
AL,lBH
<><><><><><><><><><><><>
0812
E6 80
OUT
MfG_PORT,AL
<><><>CHECKPOINT lB <><>
0814
BB 0040
MOV
BX,16*4
SET THE fiRST 64K DONE
;------- START STORAGE SIZE/CLEAR
0817
NOT_DONE:
0817
B8 0048
MOV
AX, ES TEMP
POINT ES TO DATA
081A
BE CO
MOV
ES,AX­
PO I NT TO SEGMENT TO TEST
081C
E8 0838 R
CALL
HOW_BIG
DO THE FIRST 6L;K
081 F
74 03
JZ
NOT FI N
CHECK I F TOP OF RAM
0821
E9 08B7 R
JMP
DONE
OB24
0824
83 C3 40
BX,16*4
BUMP MEMORY COUNT BY 64K
;------- DO NEXT 64K (OXOOOO) BLOCK
0827
FE 06 004C
INC
BYTE PTR OS: (ES_TEMP. BASE_H I_BYTE)
;------- CHECK FOR END OF fiRST 640K (END OF BASE RAM)
082B
0830
80 3E 004C OA
75 E5
CMP
JNZ
BYTE PTR OS: ( ES_ TEMP. BASE_H I_BYTE), OAH
NOT DONE
GO IF NOT
0832
E8 088B
R
CALL
HOW=B I G_END
GO SET MEMORY SIZE
0835
E9 08B7
R
JMP
DONE
;------- FILL/CHECK LOOP
0838
HO'rC~IG:
0838
2B FF
SUB
01,01
083A
OB3D
OB3F
0842
0841~
0847
084A
138 AA55
B6 C8
26: 89 05
(30 OF
26: 8B 05
26: 89 05
33 C1
MOV
MOV
MOV
MOV
MOV
MOY
XOR
AX,OAA55H
CX,AX
ES: [01 ),AX
AL,OFH
AX,ES:[ol]
ES:[ol],AX
AX,CX
TEST PATTERN
SAVE PATTERN
SEND PATTERN TO MEM.
PUT SOMETH I NG IN AL
GET PATTERN
I NSURE NO PAR I TY 10 CHECK
COMPARE PATTERNS
084C
75 30
JNZ
HOW_B I G_END
GO END I F NO COMPARE
084E
1E
PUSH
OS
084F
B8 0018
MOV
AX, RSDA_PTR
POINT TO SYSTEM DATA AREA
0852
8E 08
MOV
DS,AX
0854
085A
81 3E 0072 R 1234
1F
CMP
POP
RESET_fLAG,1234H
OS
son
RESET
RESTORE OS
0856
75 26
JNZ
HOW_B I G_2
GO' I F NOT SOfT RESET
0850
26: C7 05 0101
MOV
WORD PTR ES:(OI ],0101H
TURN OF F BOTH PAR I TY B [TS
OB62
E4 61
IN
AL, PORT_B
OB64
EB 00
JMP
SHORT $+2
10
DELAY
OB66
OC OC
OR
AL, RAM_PAR_OfF
TOGGLE PARITY CHECK ENABLES
0868
E6 61
OUT
PORT_B,AL
086A
EB 00
JMP
SHORT $+2
10 DELAY
OB6C
086E
24 F3
E6 61
AND
OUT
AL, RAM_PAR_ON
PORT_B,AL
0870
B8 FFFF
MOY
AX,OFfFfH
0873
50
PUSH
AX
0874
58
POP
AX
DELAY
0875
26: 86 05
MOV
AX,ES:
(01]
CHECK PAR ITY
0878
E4 61
IN
AL, PORT_B
CHECK FOR PARITY/IO CHECK
087A
24 CO
AND
AL, PAR I TY _ERR
087C
0881
26: C7 05 0000
75
08
MOV
JNZ
WORD PTR ES:loIJ,O
HffiCB I G_END
I NSURE NO PAR I TY 10 CHECK
GO
If PARITY/IO CHECK
0883
HOW_B I G_2:
0883
2B CO
SUB
AX,AX
WR I TE ZEROS
08B5
69 8000
MOV
CX,2000H*4
SET COUNT fOR 32K WORDS
08B8
OBBA
F3/ AB
e3
REP
RET
STOSW
FILL 32K WORDS
0886
HOW_B I G_ENo:
088B
088C
ge
60 1C
PUSHf
MOV
AL, 1CH
SAVE THE CURRENT fLAGS
<><><><><><><><><><><><>
OBBE
E6 BO
OUT
MFG_PORT ,AL
<><>CHECKPO I NT 1 C <><><>
;---¥--~~
SET OR RESET 512 TO 640 INSTALLED FLAG
0890
BO 63
MOY
AL, INFO_STATUS
SET/RESET 640K STATUS' FLAG
OB92
E6 70
OUT
CMOS PORT, AL
0894
EB 00
JMP
SHORT $+2
10 DELAY
0896
E4 71
IN
AL, CMOS_PORT+1
GET THE DIAGNOSTIC STATUS
0898
OB9A
DC 80
86
C4
OR
XGHG
AL, M640K
AL,AH
SAVE THE STATUS
OB9C
BO B3
MOV
AL, INFO_STATUS
089E
£6 70
OUT
CMOS PORT, AL
OBAO
86 C4
XCHG
AL.AH
RESTORE THE STATUS
08A2
08A6
B1
FB 0200
77 02
eMP
JA
BX,512
K640
CHECK MEMORY SIZE
SET fLAG fOR 512 -> 640 I NSTALL£D
08A8
24 7F
AND
AL, NOT M640K
D8AA
E6 71
K640:
OUT
CMOS_PORT+l,AL
Test 1 5-45

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents