IBM 5170 Technical Reference page 297

Hide thumbs Also See for 5170:
Table of Contents

Advertisement

0387
03A7 R
OW
Destination offset
0389
038B
0020
00
OW
DB
Destination segment selector
Word count for stack-to-stack COpt (only for call gates ....hen PL cha
03ec
87
nges)
DB
TRAP GATE
; Access rights byte
0380
0000
OW
0
-
Rese rved
; EXCEPT I ON 29
oESCR_OU
GATE, EX_INT, B I 05_CS,0, TRAP_GATE
03aF
03A7
R
OW
EX_'NT
;
Destination offset
0391
0393
0020
00
OW
DB
BIOS_C5
0
;
Destination segment selector
Word count for stack-to-stack copy (only for call gates ",hen PL cha
0394
0395
87
0000
nges)
Oil
OW
TRAP GATE
a
-
; Access rights byte
Rese rved
;EXCEPTION 30
DESCR_DEF
GATE. EX_I NT, B I OS_C5, 0 , TRAP_GATE
0397
03A7
R
ow
EX INT
Destination offset
~
0399
039B
0020
00
OW
DB
BIOS CS
0
-
Destination segment selector
Word count for stack-to-stack copy (only for call gates ",hen PL cha
nges)
039C
87
DB
; Access rights byte
0390
0000
OW
Rese rved
;EXCEPTION 31
OESCR_OEF
GATE,EX_INT,BIOS_CS,O, TRAP_GATE
039r
03A7 R
OW
EX_'NT
;
Destination offset
03A1
03A3
0020
00
OW
DB
BIOS_CS
0
;
Destination segment selector
Word count for stack-to-stack copy (only for ca II gates ....hen PL cha
nges)
03A4
03AS
B7
0000
DB
OW
TRAP GATE
o
-
; Access
Reserved
rights byte
;------- EXCEPTION INTERRUPT HANDLER
03A7
EX_INT:
03A7
BO 02
MOV
AL,02H
SET EXCEPT I ON I NT
03A9
E6 80
OUT
MFG_PORT. AL
03AB
E9 0000 E
JMP
PROC_SHUTDOWN
CAUSE A EARLY SHUTDOWN
03AE
EX_I NT1
03AE
EB FE
JMP
EX_I NT1
STAY HERE TI LL SHUTDOWN
03BO
BLOCKMOVE
ENDP
PAGE
GATE_A20
THIS ROUTINE CONTROLS A SIGNAL WHICH GATES ADDRESS BIT 20.
THE GATE A20 SIGNAL I S AN OUTPUT OF THE 8042 SLAVE PROCCESSOR.
ADDRESS BIT 20 SHOULD BE GATED ON BEFORE ENTERING PROTECTED MODE,
I T SHOULD BE GATED OFF AFTER ENTER I NG REAL MODE FROM PROTECTED
MODE,
INPUT
(AH)=ODH ADDRESS BIT 20 GATE OFF.
(A20 ALWAYS ZERO)
(AH1=DFH ADDRESS BIT 20 GATE ON,
OUTPUT
IA20 CONTROLLED BY 80286)
(AL)=O OPERATION SUCCESSFUL. 8042 HAS ACCEPTED COMMAND.
(AL)=2 FAILURE--8042 UNABLE TO ACCEPT COMMAND.
03BO
03BO
03B1
F'
E8 03C7 R
b;;:E:A20----;~Oc----------------------------------------------------------
CLI
;DISABLE
INTERRUPTS WHILE USING 8042
CALL
EMPTY_8042
; INSURE 8042 I NPUT BUFFER EMPTY
03B4
75
10
JNZ
GATE.:..A20_RETURN ;RETURN IF 8042 UNABLE TO ACCEPT COMMAND
0386
80
01
MOV
AL,OD1H
;8042 COMMAND TO WRITE OUTPUT PORT
03B8
E6 64
OUT
STATUS_PORT,AL
;OUTPUT COMMAND TO 8042
03BA
E8 03C7 R
CALL
EMPTY_8042
;WAIT FOR 8042 TO ACCEPT COMMAND
~
03BD
03BF
7S 07
8A
C4
JNZ
MOV
GATE A20 RETURN; RETURN IF 8042 UNABLE TO ACCEPT COMMAND
AL.AH
-
;8042 PORT DATA
03C1
E6 60
OUT
PORT_A,AL
;OUTPUT PORT DATA TO 8042
03C3
E8 03C7 R
CALL
EMPTY_8042
;WAIT FOR 8042 TO ACCEPT PORT DATA
;----- 801,2 OUTPUT WILL SWITCH WITHIN 20 USEC OF ACCEPTING PORT DATA ----­
03C6
6ATE_A20_RETURN:
03C6
C3
RET
;
----------
­
---­ ----­ --­
--------------------
--------------­
--------------­
EMPTY_80ll2
THIS ROUTINE WAITS FOR THE 8042 INPUT BUFFER TO EMPTY.
INPUT
NONE
OUTPUT
(ALj=O 801,2 INPUT BUFFER EMPTY (ZERO FLAG SET)
(AL)=2 TIME OUT, 8042 INPUT BUFFER FULL (NON-ZERO FLAG SET)
03C7
EMPTY 8042:
03C7
51
-
PUSH
ex
; SAVE CX
03Ca
03CA
U3CA
2B C9
EI, 64
SUB
EMPTY LOOP:
-
IN
CX,CX
AL. STATUS_PORT
;CX=O, WILL BE USED AS TIME OUT VALUE
; READ 8042 STATUS PORT
03CC
03CE
24 02
EO FA
AND
LOOPNZ
AL.INPT BUF FULL;TEST INPUT BUFFER FULL FLAG (BIT 1)
EMPTY_LOOP -
;LOOP UNTIL INPUT BUFFER EMPTY OR TIME OUT
0300
59
POP
CX
; RESTORE CX
0301
C3
RET
0302
GATE_A20
ENDP
PAGE
; -----­ I NT 1 S (FUNCT I ON 88H -
10 MEMORY SIZE DETERM I NE)
; EXT_MEMORY
-------­
;
TH I S ROUT I NE RETURNS
THE AMOUNT OF MEMORY I N THE
:
;
SYSTEM THAT IS LOCATEO STARTING AT THE 1024K ADDRESSING:
;
RANGE, AS DETERMINED BY THE POST ROUTINES.
NOTE THAT THE SYSTEM MAY NOT
BE
ABLE TO USE I/O MEMORY
UNLESS THERE IS A FULL COMPLEMENT OF 512K OR 640 BYTES
ON THE PLANAR.
THIS SIZE IS STORED IN CMOS AT ADDRESS
30 AND 31,
INPUT
AH = 88H
THE
10
MEMORY SIZE VARIABLE
IS SET DURING POWER ON
DIAGNOSTICS ACCORDING TO THE FOLLOWING ASSUMPTIONS:
3. ALL INSTALLED MEMORY IS FUNCTIONAL,
4. ALL MEMORY FROM 0 TO 640K MUST BE CONTIGUOUS,
OUTPUT
(AX)
=
NUMBER OF CONT I GUOUS 1 K BLOCI(S OF MEMORY A
AVAILABLE STARTING AT ADORESS 1024K.
0302
~XT-MEM;;~:;:'--~
---;ROC-­ --­--- ------------------------------­-----:
0302
FB
-
5T I
I NTERRUPTS BACK ON
0303
BO 31
MOV
AL,31H
GET THE HIGH BYTE OF 10 MEMORY
03D5
E6 70
OUT
CMOS_PORT. AL
0307
EB 00
JMP
SHORT $+2
10
DELAY
0309
E4 71
IN
AL, CMOS_PORT+1
030B
86 C4
XCHG
AL,AH
PUT HIGH BYTE IN POSITION (AH)
0300
BO 30
MOV
Al,30H
GET THE lOW BYTE OF
10
MEMORY
03DF
E6 70
OUT
CMOS_PORT, AL
BIOS 1 5-155

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents