IBM AT 5170 Technical Reference page 257

Table of Contents

Advertisement

•••
IBM Personal
Computer MACRO Assembler
Version 2.00
1-'
TEST.. ---- 06/10/85
POST AND 8105 UTlL.ITY ROUTINES
06-10-85
423
PAGE
424
425
ROM CHECKSUM SUBROUT I NE
426
;
- - -- -- ---
-
-
--------------- ­
427
428
0110
ROM CHECKSUM
PROC
NEAR
42'
0110 28 C9
-
SUB
CX.CX
NUMBER OF BYTES 10 ADD IS 64K
430
431
0172
ROM CHECKSUM CNTI
ENTRY FOR OPT IONAl ROM 1EST
432
011232 CO
-
XOR -
AL,AL
433
011""
ROM_L.:
434
011"" 02 07
ADD
AL. [BX]
GET
(DS:BXl
435
0116 .. 3
INC
BX
POINT TO NEXT BYTE
.3.
0111 E2 FB
LOOP
ROM_L
ADD All 8YTES
IN ROM MODULE
431
436
0119 OA CO
DR
AL,AL
SUM::;:
O?
439
0118 C3
RET
440
,
..
onc
ROM_CHECK
SUM
ENDP
442
443
444
THIS ROUTINE CHECKSUMS OPTIONAL ROM MODULES AND
445
IF CHECKSUM IS OK, CALLS
INI1IALlZATION/TEST CODE
IN MODULE
446
447
446
o
17C
ROM_CHECK
PROC
NEAR
44'
017C88----R
MO'
AX,DATA
;
POINT ES TO DATA AREA
450 017F 8E CO
MD'
ES .... X
451
0181
2A E4
SUB
AH,AH
;
ZERO OUT AH
452 0183 8A 47 02
MDV
AL, [8X+2]
I GET LENGTH I NO I CATOR
4"
453
0186 CI
EO 09
SHL
AX.9
;
MULTIPLY 8'1' 512
0189 88 C8
MDV
CX,AX
,
SET COUNT
455
0188 CI
E8 04
SHR
AX,4
456
018E 03 DO
ADD
OX,AX
SET PO
I
NTER TO NEXT MODUL.E
0190 E8 0172 R
CALL
ROM CHECKSUM CNT
DO CHECKSUM
456
0193
H
05
JZ
ROM::::CHECK_l
­
'59
460
0195 E8 0000 E
CALL
ROM ERR
POST CHECKSUM ERROR
461
0198 EB
13
JMP
SHORT ROM_CHECK_END
AND EXIT
462
463
o
19A
ROM CHECK
I:
464
o
19A 52
-
PUSH
OX
SAVE POINTER
"5
019B 26: C1 06 0061 R 0003
MDV
ES:OIO ROM INIT ,0003H
LOAD OFFSET
466
01A2 261 8C IE 0069 R
MD'
ES:
III
I O-ROM-SEG, OS
;
loOAD SEGMENT
467
01A7 261 FF
IE 0067 R
CALL
DWORD PTR ES:(l1O ROM
INIT; CALL INITIALIZEITEST ROUTINE
468
01 AC SA
POP
OX
-
­
4 ••
410 DIAD
ROM CHEC", END:
01AD C3
-
RET
;
RETURN TO CALLER
4"
412
413
OIAE
ROM_CHEC'"
ENDP
414
415
; --- "'80 RESET - ------- - - --------------------- -------------------------­
41.
;
THIS PROCEDURE WILL SEND A SOFTWARE RESET TO THE KEYBOARD.
4n
;
SCAN CODE
OAAH
SHOULD BE RETURNED TO THE PROCESSOR.
416
;
SCAN CODE
065H
IS DEFINED FOR MANUFACTURING TEST
479
480
481
01 AE
KBD_RESET
PROC
NEAR
482 01AE BO FF
MOV
AL,OFFH
SET KEY80ARD RESET COMMAND
483 OIBO E8 0000 E
CALL
XMIT_8042
GO I SSUE THE COMMAND
484 0lB3 E3 23
JCXZ
013
EXIT
IF ERROR
485
486
0185 3C FA
CMP
AL,KB_ACK
487
01B7
75
IF
JNZ
G13
486
489
0189 80 FD
MDV
AL.OFDH
ENABLE KEY80ARD
INTERRUPTS
490
0188 E6 21
OUT
INTA01,AL
WRITE 8259
INTERRUPT MASK REGISTER
491
01BD C6 06 0068 R 00
MOV
01 NTR_FLAG, 0
RESET INTERRUPT
INDICATOR
492
OICZ FB
511
ENABLE
INTERRUPTS
493
0lC3 83 OA
MOV
8L,I0
TRY FOR 400 MILLISECONDS
494
OICS 2B C9
SUB
CX,CX
SETUP INTERRUPT TIMEOUT COUNT
495 OICl
GIll
0lC1 F6 06 0068 R 02
TEST
OINTR_FLAG.02H
DID A KEYBOARD I NTERRUPT OCCUR
?
497
OICC 75 06
JNZ
G12
YES - READ SCAN CODE RETURNED
496
OICE
E2
F1
LOOP
Gil
NO -
LOOP TILL TIMEOUT
'9'
4.9
500
0100 FE C8
DEC
BL
50 I
0102 75 F3
JNZ
Gil
TRY AGAIN
502
0104
G12:
503
0104 E4 60
IN
AL.PORT_A
READ KEYBOARD SCAN CODE
504
0106 8A 08
MOV
BL,AL
SAVE SCAN CODE JUST READ
505
0108
G13:
50.
0108 C3
RET
RETURN TO CALLER
501
50.
0109
"'BD_RESET
ENOP
509
510
;
- -
---------
------ -- - - - - - -
------------------
--
---------­
511
;
BLINK LED PROCEDURE FOR MFG RUN-IN TESTS
512
;
IF LED IS ON,
TURN
IT OFF.
IF OFF, TURN ON.
513
1-- - - --- - --- - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - --- - - - - - - - - - - ­
514
515
0109
BLINK
INT
PROC
NEAR
516
01 D9 FB
-
ST!
517
01DA 50
PUSH
AX
SAVE AX REGISTER CONTENTS
518
01DB E4 80
IN
AL,MFG PORT
READ CURRENT VALUE OF MFG PORT
51'
0100 34 40
XOR
AL,O I 00'00008
FLIP CONTROL BIT
­
520 OIOF E6 80
OUT
MFG PORT,AL
521
01E1
BO 20
MD'
AL,£OI
522 01E3 E6 20
OUT
INTAOO,AL
523 01 E5 58
PDP
AX
RESTORE AX REG! STER
524 01 E6 CF
IRET
525
526 01El
ENDP
TEST4
5-85

Advertisement

Table of Contents
loading

Table of Contents