IBM 5170 Technical Reference page 198

Hide thumbs Also See for 5170:
Table of Contents

Advertisement

0324
0327
0329
032C
B8
8E
B8
8E
0060
08
0048
CO
NEXT:
MOV
MOV
MOV
MOV
AX, OS_TEMP
OS,AX
AX, ES_TEMP
ES,AX
032E
0330
BO
E6
31
80
MOV
OUT
AL,31H
MFG_PORT,AL
; <><><><><><><><><><><><><><>
; <><><>CHECKPO I NT 31 <><><><>
0332
0335
0338
033A
0330
033£
B9
E8
74
E9
59
58
8000
0000
03
0470
E
R
N1 :
MOV
CALL
JZ
JMP
POP
POP
CX,2000H*4
STGTST CNT
N1
-
E21A
ex
AX
SET COUNT FOR 32K WORDS
CONTI NUE I f OK
GO PR I NT ERROR
POP CX TO GET AX
RECOVER TESTED MEMORY
;------- WRITE THE CURRENT SIZE FOR (ADDRESS LINE 23-17 TEST) USED LATER
033f
0341
2B
AB
Ff
SUB
STOSW
01,01
POINT TO BEGINING OR A BLOCK
WR I TE THE CURRENT SIZE
AT THE START I NG ADDRESS
0342
05 0040
ADD
AX, 16*4
0345
50
PUSH
AX
SAVE TESTED MmORY
0346
51
PUSH
ex
SAVE LOOP COUNT
0347
PRT_SIZ:
0347
50
PUSH
AX
0348
BB OOOA
MOV
BX,10
SET DEC I MAL CONVERT
; ------- CONVERT AND SAVE
0348
B9 0005
MOV
CX,5
OF 5 NIBBLES XX,xxx KB
034E
2B FF
SUB
01,01
CRT BUFFER POSITION
0350
DEC I MAL_LOOP:
0350
33
02
XOR
OX, OX
0352
f7 f3
DIV
BX
DIVIDE BY 10
0354
80 CA 30
OR
DL,30H
MAKE INTO ASCII
0357
52
PUSH
OX
SAVE
0358
E2 F6
LOOP
DECIMAL LOOP
;------- DISPLAY LAST
OK
MEMORY
035A
B9 0005
MOV
CX,5
0350
PRT_OEC_LOOP:
0350
58
POP
AX
RECOVER A NUMBER
035E
E8 0000
E
CALL
PROT_PRT _HEX
0361
47
INC
01
PO I NT TO CRT BUFF
0362
E2 f9
LOOP
PRT DEC LOOP
0364
B9 0006
MOV
CX,6
­
0367
BE 0000 E
MOV
SI,OFFSET F3B
PRINT
I
KB OK'
036A
KB_LOOP:
036A
2E: 8A 04
MOV
AL,CS:[Slj
0360
46
INC
51
036E
E8 0000 E
CALL
PROT_PRT _HEX
0371
47
INC
01
I
NCREMENT BUff PTR
0372
E2 F6
LOOP
KB_LOOP
0374
58
POP
AX
RECOVER WORK REGS
0375
3D 0040
CMP
AX,16*4
FIRST PASS?
0378
75 03
JNZ
KB LOOPl
GO I F NOT
037A
£9 01AO R
JMP
E20B
0370
KB_LOOPl :
0370
59
POP
CX
RECOVER 64K
BLOC~
COUNT
037E
58
POP
AX
037F
E2 03
LOOP
KB_LOOP2
LOOP TILL ALL MEM. CHECKED
0381
EB 06 90
JMP
KB_LOOP3
CONT I NUE
0384
KB_LOOP2 ;
0384
50
PUSH
AX
0385
51
PUSH
CX
SAVE LOOP COUNT
0386
E9 02B9 R
JMP
E21
LOOP TILL ALL MEM CHECKED
0389
KB_LOOP3;
; .------;
~~~~~~~=~~:i=~6:~;=;~~;
;:;;================"' ' ' ' = ' ' ' = =
; ------- CALCULATE NUMBER OF
64K BLOCKS
0389
B8 0040
MOV
AX,64
START AT SECC.W 64K
038C
50
PUSH
AX
SAVE STARTI NG ADOR
0380
B8 0018
MOV
AX, RSOA_PTR
GET THE MEMORY SIZE
0390
8E 08
MOV
OS,AX
0392
8B 1 E 0017 R
MOV
ax, WORD PTR KB_fLAG
GET THE TOTAL MEMORY SIZE
0396
83 EB 40
SUD
aX,64
~h~~~T u~~go~g ~~~PB~~~~~~E
0399
al 06
MOV
CL,06H
DIVIDE BY 64K
039B
03 EB
S"R
BX,CL
0390
53
PUSH
BX
SAVE LOOP COUNT
;------- INITIALIZE OS OESCRI PTOR
039E
B8 0008
MOV
AX,GOT_PTR
03Al
8E CO
MOV
ES,AX
03A3
26: C6 06 0064 00
MOV
BYTE PTR ES;(OS_TEMP.BASE_HI_BYTE).O
03A9
26: C7 06 0062 0000
MOV
ES: OS_TEMP. BASE_La_woRD, a
;------- TEMPORARY SEGMENT SAVE IN OMA PAGE REGISTER
03BO
2A CO
SUB
AL,AL
03B2
E6 85
OUT
OMA_PAGE"'4, AL
HIGH lIYTE OF LOW WORD OF SEGMENT
03B4
E6 86
OUT
OMA_PAGE+5,AL
LOW BYTE OF LOW WORD OF SEGMENT
03B6
BO 01
MOV
AL,OlH
SET HIGH BYTE Of SEGMENT WORD
03B8
E6 84
OUT
OMA_PAGE+3,AL
HIGH BYTE Of SEGMENT
;------- POINT TO NEXT BLOCK Of 64[(
03BA
E21_A:
03BA
BO 33
MOV
03BC
E6 80
OUT
03BE
26: 80 06 0064 01
ADD
;------- CHECK END OF fiRST 516K OR 640K (END OF BASE RAM)
03ell
BO 83
MOV
AL, INFO_STATUS
SET 640K BASE RAM BIT
03C6
E6 70
OUT
CMOS PORT ,AL
03C8
EB 00
JMP
SHORT
$"'2
10
DELAY
03CA
E4 71
IN
AL,CMOS PORT""
GET
THE CURRENT STATUS
03ec
A8 80
TEST
AL,M640K
CHECK FOR 640K BASE RAM
03CE
74 OB
JZ
NEXT_Al
GO I F ONLY 512K
;-------- CHECK FOR END OF 512K PLANAR RAM
0300
26: 80 3E 0064 OA
CMP
BYTE PTR ES:(OS_TEMP.BASE_HI_BYTE) .. OAH
0306
75 15
JNZ
NEXT A
; GO IF ST I LL BASE RAM
0308
EB 09 90
JMP
NEXT=:A2
;
030B
26: 80 3E 0064 08
BYTE PTR ES:(DS_TEMP.BASE_HI_BYTE) .. 08H
NEXT_A'
:~=~
03El
75 OA
NEXT_A
5-56 Test 2

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents