IBM 5170 Technical Reference page 197

Hide thumbs Also See for 5170:
Table of Contents

Advertisement

0?6?
0?64
()266
0?68
()?68
0?6A
0?6E
0?6E
0271
0273
0275
38 C8
77
02
8B C8
03 09
89 lE 0011 R
83 EB 40
S1 06
03 EB
53
r""\
0276
0279
B8 0008
8E CO
027B
26: C7 06 0048 FFFF
0282
26: C6 06 0040 93
0288
0?8E
26: C6 06 004C 00
26: C7 06 004A 0000
0295
26: C7 06 0060 FFFF
029C
26 : c6 06 0065 93
02A2
02A8
26: c6 06 0064 00
26: C7 06 0062 0000
02AF
02B1
0?R3
02t35
02R7
2A CO
E6 85
E6 86
FE CO
E6 84
r ' \
O?c6
02C13
02CD
02CE
0201
0203
0206
0207
0209
020B
0200
B8 0008
8E 08
FE 06 0064
FE 06 004C
80 3E 0064 04
72 12
1E
B8 0018
8E 08
AO 0012 R
, F
A8 10
75 04
BO
40
E6 87
02DF
02El
0?E3
02[5
BO 03
E6 70
EB 00
E4 71
0?E7
onc
80 3E 0064 08
72
08
02EE
02FO
02F2
O?Flj
86 C4
80 40
E6 87
86 C4
02F6
02F8
02FA
02FF
0301
0304
0309
A8 80
74 OA
80 3E 0064 OA
75 14
EB
OB 90
80 3E 0064 08
75 OA
~
0308
0310
C6 06 0064 10
C6 06 004C 10
031
~
0318
AO 0064
E6 84
BO 3E 004C FE
75 03
EB 66 90
eX,AX
IS CONFIC GREATER THAN DETERMINED?
SET_MEM
GO I F YES
CX,AX
USE MEMORY SIZE DETERMINE IF NOT
SET _MEM:
ADD
MOY
BX,CX
WORD PTR KB_FLAG,
ax
SET
SAVE
TOTAL MEMORY SIZE
TOTAL SIZE FOR LATER TESTING
E?OC:
E?OD:
SUB
BX,16*4
1 ST 64K ALREADY DONE
MDV
SHR
PUSH
CL,06H
BX,CL
BX
DIVIDE BY 54
SAVE COUNT OF 64K BLOCKS
MOD I FY THE OEseR I PTER TABLE
; -------' SET TEMP ES DESCR I PTOR 64K SEGMENT LIM J T
;
-----------------------
-
-
- - -- -
---------­
MOV
ES: ES_ TEMP. SEG_L I M J T ,MA>CSEG_LEN
; ------- CPLO,
DATA ACCESS RIGHTS
MOV
BYTE PTR ES:(ES_TEMP.OATA_ACC_RIGHTS),CPLO_DATA_ACCESS
;------- START WITH SEcMENT 010000 (SECOND 64K)
MOV
BYTE PTR ES: ( ES_ TEMP. BASE_H I_BYTE) , 0
MOV
ES:ES_TEMP.BASE_LO_WORD,O
;-------'SET TEMP OS DESCRIPTOR 64K SEGMENT LlNIT
MOV
ES: OS_TEMP, SEG_I I MIT, MAX_SEC_LEN
;------- CPLO, DATA ACCESS RIGHTS
MOY
;------- START WITH SEGMENT 010000
MOV
BYTE PTR ES:(DS_TEMP.BASE_HI_BYTE),O
MOV
ES:DS_TEMP,BASE_IO_WORD,O
; ------- TEMPORARY SEGMENT SAVE IN DMA PAGE REG I STER
SUB
AL,AL
OUT
DMA PAGE+4.AL
; HIGH BYTE OF LOW WORD OF SEGMENT
OUT
OMA:='PAGE+5. AL
;
LOW BYTE OF LOW WORD OF SEGMENT
INC
AL
;
SET HIGH BYTE OF SEGMENT WORD
OUT
OMA_PAGE+3.AL
; HIGH BYTE OF SEGMENT
PO I NT TO NEXT BLOCK OF 32K WORDS
[21 ;
AX,GDT PTR
;
POINT TO STA((T OF DESCR TABLE
OS,AX -
;
BYTE PTR OS: (DS_TEMP.BASE_H I_BYTE)
BYTE PTR OS: (ES_TEMP.BASCH I_BYTE)
; -------- CHECK FOR END OF 256K PLANAR RAM
CMP
BYTE PTR DS:(DS_TEMP.BASE_HI_BYTE),04H
-lB
E21 0
GO
IF
STILL BASE RAM
PUSH
OS -
SAVE THE CURRENT DATA SECMENT
MOV
AX, RSDA_PTR
PO I NT TO POST DATA SEGMENT
MOV
DS,AX
MOV
AL,MFG_TST
GET THE JUMPER INFO
POP
OS
RESTORE OS
TEST
AL, BASE_RAM
CHECK I F SECOND 256K ON BASE PI ANAR
JNZ
E21
0
GO I F YES
MOV
AL, TO_CHK
SET 10 CHANNEL CHECK rEST
OUT
DMA_PAGE+6,AL
;------- CHECK END OF FIRST 516K OR 640K (END OF BASE RAM)
E21_0:
MOV
AL, I fiFO STATUS
SET 640K BASE RAM BIT
OUT
CMOS PORT, AL
,IMP
SHORT $+2
:
iO DELAY
IN
AL. CMOS_PORT+l
; GET THE CURREt\T STATUS
; -------- CHECK FOR END OF 512K PLANAR RAM
CMP
BYTE PTR DS:(DS_TEMP.BAS[_III_BYTE),OBH
J!3
E12_A
GO I
r
ST I LL BASE RAM
;------- SET USE TEST 10 CHECK
XCHG
AL,AH
SAVE AL
MOV
AL,IO_CHK
OUT
DMA_PAGE+6.AL
XCHG
AL,AH
RESTORE AL
; ------- CHECK FOR 640K BASE RAM (128K
10 CARD)
;
IS 640K BASE I NSTALLEO?
;
GO
I F
NO
CMP
BYTE PTR DS:(DS_TEMP.BASE_Hl_BYTELOAH
JNZ
NEXTl
JMP
E12_C
; CONTINUE
BYTE PTR OS; (Os_TEMP.BASE_HI_BYTEL08H
NEXTl
;------- DO ADDITIONAL STORAGE ABOVE 1 MEG
BYTE PTR DS:(DS_TEMP.BASE_HI_BYTE),10H
BYTE PTR OS: (ES_TEMP.BASE_H I_BYTE), 10H
;------- SAVE BASE_Hi_BYTE iN DMA PAGE REGISTERS 3
NEXTl;
MOV
AL,BYTE PTR DS:(DS TEMP,BASE III
I3YT[)
OUT
DMA_PAGE+3,AL
-
;
SAVE THE HIGH BYTE OF SEGMENT
;
FOR POS II3U': ERROR
;------- CHECK FOR TOP OF RAM (FEOOOO) 16MEG
eMP
BYTE PTR DS:(ES_TEMP.BASCHI_BYTE),OI,.H ;
TOP OF RAM?
JNZ
NEXT
;
GO I f
NOT
JMP
KB_LOOP3
;
GO NEXT
TES~
; ------- SET ES AND OS REG I STERS
Test 2 5-55

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents