IBM AT 5170 Technical Reference page 234

Table of Contents

Advertisement

•••
1-'
06-10-85
.57
SAVE COUNTS IN STACK FOR BOTH MEMORY ANO ADDRESSING TESTS
4 ••
459
022A 52
PUSH
ox
SAVE BASE MEMORY SIZE COUNT
4bO
0228 6A 40
PUSH
BYTE PTR 64
SAvE STARTING AMOUNT OF MEMORY OK
461
0220 53
PUSH
8X
SAVE COUNT OF b4K BLOCKS TO BE TESTED
462
463
022E 52
PUSH
ox
SAVE BASE MEMORY SIZE COUNT
4b4
022F EoA 40
PUSH
BYTE PTR 64
SAVE STARTiNG AMOUNT OF MEMORY OK
465
0231 53
PUSH
8X
SAVE COUNT OF b4K BLOCKS TO BE TESTED
'66
4&1
I--~--
MODIFY DESCRIPTOR TABLES
469
0232 6A 08
PUSH
BYTE PTR GOT PTR
1 MODIFY THE DESCRIPTOR TABLE
470
0234 07
pop
ES
­
4"
412
;-----
SET TEMPORARY ES DESCRIPTOR 64K SEGMENT LIMIT STARTING AT 000000
413
414
0235 26
Cl 06 0048 FFFF
"OV
415
023C 26
CT 06 004A 0000
"OV
~~ ;~~-i~~~: ~~~EL~~I ~o~ri:
OSEG_LEN
476
0243 26
C6 06 004C 00
MOV
BYTE PTR ESI (ES-TEMP.BASE HI BYTEf ,0
;
FIRST b5K
... 77
0249 26
C6 06 0040 93
MOV
BYTE PTR ESI (ES=TEMP.OATA=AC'f_RIGHTSf ,CPLO_OATA_ACCESS
.,8
479
;-----
SET TEMPORARY OS OESCR
I
PTOR 64K SEGMENT
LI
MIT AT FI RST 65K BLOCK
.80
48!
024F 26
Cl 06 0060 FFFF
MOV
ES;OS TEMP.SEG LIMIT .MAX SEG LEN
482
0256 26
C7 06 00&2 0000
MOV
ESIDS-TEMP.BASE LO WORD,O
­
483
0250 26
C6 06 0064 00
MOV
BYTE PTR ES: (OS-TEQp.BASE HI BYTE).O
484
0263 26
C6 06 0065 93
MOV
BYTE PTR ES: (OS:TEMP.DATA=ACC_RIGHTSI .CPLO_DATA._ACCESS
48.
486
;-----
TEMPORARY SEGMENT SAVE IN OMA PAGE REGISTER FOR SECOND 65K BLOCK
.81
488
0269 2A CO
SU8
AL,A.L
I
INITIALIZE VALUES TO 010000
489
0268 E6 85
OUT
DMA PAGE+4.AL
;
HIGH BYTE OF LOW WORD OF SEGMENT
490
0260 E6 86
OUT
I
LOW BYTE OF LOW WORD OF SEGMENT
~~A:PAGE+5.AL
49'
026F FE CO
INC
;
SET HIGH BYTE OF SEGMENT WORD
492
0211 E6 84
OUT
DMA_PAGE+3.AL
I HIGH BYTE OF SEGMENT
493
494
495
1-----
MEMORY TEST LOOP -
PO
I
NT TO NEXT BLOCK OF 32K WORDS
(64K I
496
491
0213
E21:
;
MEMORY TEST LOOP
498
0273 6A 08
PUSH
BYTE PTR GOT PTR
; POINT TO START OF DESCRIPTOR TABLE
499
0215
1
F
POP
os
­
500
0216 FE 06 0064
INC
BYTE PTR OSI lOS TEMP.BASE HI BYTE)
;
POINT TO NEXT BLOCK
501
021A
FE 06 004C
INC
BYTE PTR DSI (ES=TEMP.BASE=HI:BYTE)
.02
503
CHECK FOR END OF 256K PLANAR MEMORY
50.
505
021E 60 3E 00b4 04
CMP
BYTE PTR OS: (OS TEMP.BASE HI BYTE) ,04H
506
0283 72 04
JB
E21_0
-
-GO-IF STILL FIRST 256K OF BASE MEMORY
.01
508
0285 80 CO
MOV
AL.PARITY CHECK+IO CHECK; CHECK FOR ANY TYPE OF PARITY ERROR
509
0287 E6 87
OUT
OMA_PAGE+6,AL
-
;
AFTER FIRST 25bK
510
CHECK END OF FIRST 640K OR ABOVE
(END OF MAXIMUM BASE MEMORY)
~:~
0289
~~~=~;
513
0269 80 3E 0064 OA
CMP
BYTE PTR OS;
~DS
TEMP.BASE HI BYTEf ,OAH
514
OZ8E 71
16-
.JA
NEXT
-
; -CONT I NUE
I F ABOVE 1 MEG
515
516
;-----
CHECK FOR END OF SASE MEMORY TO BE TESTED
511
518
0290 59
POP
CX
GET COUNT
519
0291 58
POP
BX
,
GET COUNT TE S TED
520
0292 58
POP
AX
;
RECOVER COUNT OF BASE MEMORY BLOCKS
521
0293 50
PUSH
AX
i
SAVE BASE COUNT
522
0294 53
PUSH
BX
:
SAVE TESTED COUNT
523
0295 51
PUSH
CX
;
SAVE TOTAL COUNT
524
0296 38 06 0064
CMP
BYTE PTR OS; (OS TEMP.BASE HI BYTE) .AL
;
MAX BASE COUNT
525
029A 72 OA
.JB
NEXT
-
:-CONTINUE IF NOT DONE WITH BASE MEMORY
526
527
;-----
00
ADD I T
I
ONAL STORAGE ABOVE
I
MEG
528
529
029C C6
Ob 0064 10
MOV
BYTE PTR OS: (OS TEMP. BASE H I
BYTE), I OH
530
02A I C6 06 004C
10
MOV
BYTE PTR OS: (ES:TEMP. BASE::::H I ::::BYTE) , 10H
531
532
;-----
SAVE BASE_HI_BYTE IN DMA PAGE REG] STERS 3
533
53-4
02A6 AO 0064
NEXT;
MOV
"6
535
02:A9 E6 8-4
OUT
~~;.B~r~E~~~AES: (DS_TEMP.~A~~V~IT~~T~:GH
BYTE OF SEGMENT
-
;
FOR POSSIBLE ERROR
531
. .8
CHECK FOR TOP OF MEMORY
(FEOOOO)
16 MEG
.,.
540
02A8 80 3E 004C FE
CMP
BYTE PTR OS: (ES TEMP. BASE HI BYTE) ,OFEH
TOP OF MEMORY?
541
0280 74 29
.JE
KB_LOOP3
-
-
-
EXIT NEXT TEST
IF DONE
542
543
;-----
SET ES AND OS REGISTERS TO MEMORY BLOCK
544
545
02B2 6A 60
PUSH
BYTE PTR OS_TEMP
5-46
0284 1 F
POP
os
5-47
0285 bA 48
PUSH
BYTE PTR ES_TEMP
548
0287 07
POP
ES
5.9
550
0288 BO 31
MOV
AL,31H
<> <> <> <><><><><> <> <> <> <>
551
02BA E6 80
OUT
MFG_PORT ,AL
<><>
CHECKPOINT
31
552
553
028C B9 8000
"OV
CX,8000H
SET COUNT FOR 32K WORDS
554
028F E8 0000 E
CALL
STGTST_CNT
555
02C2 74 03
JZ
NI
SKIP IF OK
556
02C4 E9 0361 R
JMP
E21A
GO
PR
I
NT ERROR
557
02C1
NI,
558
02C1 59
POP
CX
;
POP CX TO GET AX
559
02C8 58
POP
AX
;
RECOVER TESTED MEMORY
.60
561
WRITE THE CURRENT SIZE FOR
(ADDRESS LINE 23-17 TEST!
USED LATER
562
563
02C9 2B FF
SUS
OJ
,01
POINT TO BEGINNING OR A BLOCK
564
02CB AB
STOSW
WR I TE THE CURRENT SIZE
565
AT THE STARTING ADDRESS
566
02CC 05 0040
ADD
AX.64
ADVANCE COUNT TO NEXT BLOCK
561
02CF 50
PUSH
AX
SAVE TESTED MEMORY
568
0200 51
PUSH
CX
SAVE LOOP COUNT
56.
570
0201
E8 099F R
CALL
PRT _OK
DISPLAY "OXXXX
OK~
MESSAGE
5-62
TEST2

Advertisement

Table of Contents
loading

Table of Contents