IBM 5170 Technical Reference page 188

Hide thumbs Also See for 5170:
Table of Contents

Advertisement

08AC
B8 0018
MOV
AX. RSDA_PTR
RESTORE THE DATA SEGMENT
OMF
8E 08
MOV
OS,AX
0881
89 lE 0013 R
MOV
MEMORY_SIZE,BX
SAVE MEMORY SIZE
08BS
9D
POPF
RESTORE THE FLAG REG
08B6
C3
RET
TEST.13A
MEMORY SIZE DETERMINE (RAM ABOVE 1024K)
OESCR I PT I ON
THIS ROUTINE RUNS IN PROTECTED MODE
MEMORY SIZE ABOVE 1MEG ADDRESS I NG IS
SAVED I N CMOS
08B7
~ONE:
08B7
B8 0008
MOV
;
POINT DS TO HiE DESCRIPTER TABLE
08BA
BE 08
MOV
;------- START WITH SEGMENT ADOR 10-0000 (ONE MEG AND ABOVE)
08BC
C6 06 004C 10
MOV
BYTE PTR OS: (ES_lEMP.BASCHI_BYTE), 10H
08Cl
C7 06 004A 0000
MOV
os:
ES_ TEMP. BASE_LO_WORD, OH
08C7
BO 10
MOV
AL,
1
DH
<><><><><><><><><><><><>
08C9
E6 80
OUT
MFG_PORT,AL
<><><>CHECKPO I NT 10 <><>
08CB
2B DB
SUB
BX,ax
START WITH COUNT 0
; ------- START STORAGE SIZE/CLEAR
08CD
NOT_DONEl:
08CD
68 0048
MOV
AX, ES_TEMP
PO I NT ES TO DATA
0800
8E CO
MOV
ES,AX
PO I NT TO SEGMENT TO 1£ST
0802
E8 08EE R
CALL
HOW_B I G1
DO THE FIRST 64K
0805
74 03
JZ
DONEA
CHECK I F TOP
0807
EB 75 90
JMP
DONE1
GO I
F
TOP
08DA
83 C3 40
DONEA:
ADD
BX,16*4
BUMP MEMORY COUNT BY 64K
;------- DO NEXT 64K (XXOOOO) BLOCK
0800
FE 06 004C
INC
;------- CHECK FOR TOP OF RAM (FEOOOO)
08El
NOT_ENO_6ASE:
08El
80 3 E 004C FE
CMP
BYTE PTR OS: (ES_TEMP.BASE_HI_BYTEJ,OFEH
LAST OF POSSI BLE RAM?
08E6
75 E5
JNZ
NOT DONEl
GO I F NOT
08E8
E8 0933 R
CALL
How:=a I G_ENDl
GO SET MEMORY SIZE
08EB
EB 61 90
JMP
DONEl
;------- FilL/CHECK LOOP
08EE
08EE
2B FF
HOW BIG1:
-
SUB
01,01
08FO
B8 AA55
MOV
AX,OAA55H
TEST PATTERN
08F3
08FS
08F8
08FA
08FD
88 C8
26: 89 05
BO OF
26: 86 05
26:
89
05
MOV
MOV
MOV
MOV
MOV
CX,AX
ES: [01 LAX
AL,OFH
AX,ES:[Dlj
ES: [01
LAX
SAVE PATTERJIi
SEND PATTERN TO MEM.
PUT SOMETH I NG IN Al
GET PATTERN
INSURE NO PARITY 10 CHECK
0900
0902
33 Cl
75 2F
XOR
JNZ
AX,CX
HOW_B I G_ENDl
COMPARE PATTERNS
GO END I F NO COMPARE
0904
0905
1 £
138 0018
PUSH
MOV
os
AX, RSOA_PTR
POI NT TO SYSTEM DATA AREA
0908
090A
0910
8£ 08
81 3E 0072 R 1234
1
F
MOV
CMP
POP
OS,AX
RESET_FLAG,1234H
os
SOFT RESET
RESTORE OS
0911
7518
JNZ
HOW_B I G_2A
GO I F NOT SOFT RESET
0913
26: C7 05 0101
MOV
WORD PTR ES:[01],0101H
TURN OFF BOTH PARITY BITS
0918
B8 FFFF
140V
AX,OFFFFH
0918
50
PUSH
AX
091C
58
POP
AX
DELAY
0910
0920
0922
26: 8B 05
Ej~
61
A8 40
MOV
IN
TEST
AX,ES:[Olj
AL, PORT_B
AL, 10_CHK
CHECK PAR I TY
CHECK FOR 10 CHECK
0924
0929
26: C7 05 0000
75 08
MOV
JNZ
WORD PTR ES:[DI],O
HOW_B I G_ENDl
I NSURE NO PAR I TY 10 CHECK
GO IF 10 CHECK
092B
0926
0920
28 CO
69 8000
HOW_B 1
G_~~~
MOV
AX,AX
CX.2000H*4
WR ITE ZEROS
SET COUNT FOR 32K WORDS
0930
0932
F3/ AB
C3
REP
RET
STOSW
FILL 32K WORDS
0933
HOW_BIG_ENDl :
0933
BO lE
MOV
AL.1Ell
<><><><><><><><><><><><>
0935
E6 80
OUT
MFG_PORT, AL
<><>CHECKPO I NT 1 E <><><>
;------- SET 10 RAM SIZE IN CMOS
0937
0939
BO BO
E6 70
MOV
OUT
AL,M SIZE LO
CMOS-PORT-:;-AL
ADDRESS LO BYTE
093B
EB 00
JMP
SHORT $+2
10
DELAY
0930
093F
8A C3
£6 71
MOV
OUT
AL,Bl
CMOS PORT+1,AL
SET LOW MEMORY SIZE
I N CMOS
0941
0943
EB 00
BO ,81
Jr~p
MOV
SHORT $+2
AL.M_SIZE_tll
10 DELAY
ADDRESS H I BYTE
0945
0947
E6 70
EO
00
OUT
JMP
CMOS PORT, AL
SHORT $+2
10 DELAY
0949
094B
8A C7
E6 71
MOV
OUT
AL, BH
CMOS_PORT+1,AL
SET THE HIGH MEMORY SIZE
I N CMOS
0940
C3
RET
;------- TEST ADDRESS LINES 19 - 23
094E
BO
1
F
DONE1:
MOV
AL, 1 FH
; <><><><><><><><><><><><>
0950
E6 80
OUT
MFG_PORT ,AL
;
<><><>CHECKPOI NT 1 F <><>
0952
C6 06 004C 00
MOV
BYTE PTR DS:{ES_TEMP,BASE_HI_BYTEl,OOI-l
0957
BA FFFF
MOV
DX,OFFFFH
; WRITE FFFF AT ADDRESS
0
095A
E8 098A R
CALL
0950
2B 02
SUB
~~~OX
; WRITE 0
095F
C6 06 004C 08
MOV
BYTE PTR OS! (ES_TEMP.BASE_HI_BYTE),08H
0964
E8 098A R
CALL
500
;
0967
C6 06 004C 10
MOV
BYTE PTR
os:
(ES_TEMP.BASE_HI_BYTEJ, 10H
096C
E8 098A R
CALL
SOO
;
096 F
C6 06 004C 20
MOV
BYTE PTR OS: (ES_TEMP,BASE_HI_BYTE),20H
0974
E8 098A R
CALL
0977
C6 06 004C 40
MOV
~~~E
PTR OS: (ES_TEMP.BASE_HI_BYTEJ,40H
097C
E8 098A R
CALL
SDO
5-46 Test 1

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents