IBM AT 5170 Technical Reference page 340

Table of Contents

Advertisement

IBM Personal Computer MACRO Asselrlbl.r
Vers,on 2.00
1-6
BIOSI
---- 06/10/85
INTERRUPT
15H BIOS ROUTINES
06-10-85
554
0101
8C
16 0069 R
555
0105 89 26 0067 R
55.
557
558
559
5.0
5.'
562
0109 8C CO
563
010B 8E 08
564
0100 8A F4
565
OIDF CO EE 04
566
0lE2 CI EO 04
567
0lE5 03 C6
568
0lE7 80 06 00
5.9
570
571
572
0 lEA C7 44 013 FFFF
573
OIEF 89 44 OA
574
0lF2 88 74 DC
575
0lF5 C7 44 DE 0000
57.
577
578
579
OIFA C7 44 20 FFFF
580
0 IFF C7 44 22 0000
581
0204 C6 44 24 OF
582
0208 C6 44 25 9B
583
020C C7 44 26 0000
584
585
58.
58702118CDO
588
0213 8A F4
589
0215 CO EE 04
590
0218 CI
EO 04
591
592
593
594
021B C1 44 28 FFFF
595
0220 89 44 2A
596
0223 88 14 2C
597
0226 C6 44 20 93
598
599
.00
601
022A B4 OF
602
022C E8 03CC R
603
022F 3C 00
604
0231
74 06
.05
606
0233 BO 03
601
0235 E6 80
608
0237 EB 51
.09
.'0
61 I
0239
612
0239 B8 098F
613
023C E8 0000 E
.,,
.'5
.,.
6!1
023F 2A CO
618
0241
E680
619
620
621
622
0243 BO 02C6 R
623
624
0246 2E
.25
626
0241 OF
621
0248
628
0248 8B 5E 00
629
0248
630
0248
631
0248 01
632
0248
633
63'
635
0248 OF
636
024C
631
024C 88 54 08
638
024F
639
024C
640
024C 0
I
641
024F
6'2
•• 3
6"
6'5
646
024F 88 0001
6.7
648
0252 OF 0 I FO
649
0255 EA
650
0256 025A R
651
0258 0020
652
025A
653
65.
655
656
025A B8 0028
651
0250 8E 00
658
025F B8 0010
659
0262 8E 08
660
0264 88 0018
661
0261 8E CO
662
0269 28 F6
603
0268 28 FF
...
665
0260 F3/
A5
666
667
"OV
<!'tID ROM SEG, SS
:
SAVE USERS STACK SEGMENT
"OV
<!'tIO=:ROM=:INIT,SP
;
SAVE USERS STACK POINTER
, =====
SET UP THE PROTECTED MODE DEFINITIONS
=====
MAKE A 24 BIT ADDRESS OUT OF THE ES:SI FOR THE GOT POINTER
ASSUME
OS:NOTHING
PO I NT
(OS
J
TO USERS CONTROL. BL.OCK
"OV
AX ,ES
GET THE GOT DATA SEGMENT
"OV
OS ,AX
MOVE THE GOT SEGMENT PO I NTER TO
(OS)
"OV
OH.AH
BU I LD HIGH BYTE OF THE 24 BIT ADDRESS
SHR
OH,4
USE ONLY HIGH NIB8LE SHIFT - RIGHT 4
SHL
AX,4
STRIP HIGH NIBBLE FROM
(AX)
ADO
AX,
S I
ADD THE GeT OFFSET TO DEVELOP LOW WORD
AOC
OH,O
ADJUST HIGH BYTE
I F CARRY FROM LOW
SET THE GOT L.OC
"OV
"OV
(;:) :gggi-tgg
:~~~EL~~I~O~~:A~EG~~E~ET
THE LOW WORO
"OV
[SI].CGDT-LOC.BASE-HI-8YTE,DH
SET THE HIGH BYTE
[SI j.CGOT=:LOC.DATA:RESERVEO,O
j
RESERVED
SET UP THE CODE SEGMENT DESCRIPTOR
"OV
"OV
"OV
"OV
"OV
MAKE A 24 BIT ADDRESS OUT OF THE
(SS)
-
I
(SP)
REMAINS USER
(SP)
)
"OV
AX,
SS
: GET THE CURRENT STACK SEGMENT
"OV
OH,AH
: FORM HIGH BYTE OF 24 BIT ADDRESS
SHR
OH,4
; FORM HIGH BYTE -
SHIFT RIGHT 4
SHL
AX,4
;
STRIP HIGH NIBBLE FROM lAX)
;-----
SS
IS NOW
IN POSITION FOR A 24 81T ADDRESS
-->
SETUP THE
(55)
DESCRIPTOR
"OV
"OV
f~~1:i~~~~~~:~~~EL~~I!O~~~AiEG_LEN
;
;~i i~~ ~~WS:g~~NT
LIMIT
"OV
[Slj.TEMP-SS.BASE-HI-8YTE.DH
; SET THE HIGH BYTE
"OV
[SI].TEMP=:SS.DATA=ACC_RIGHTS.CPLO_DATA_ACCESS
;
SET CPL 0
;
-----
GATE ADDRESS BIT 20 ON
(0
I SA8LE INTERRUPTS)
"OV
AH,ENA8LE 81T20
ClET ENABLE MASK
CALL
GATE_A20 -
ENABLE A20 AND CL.EAR INTERRUPTS
e"p
"L,O
WAS THE COMMAND ACCEPTED?
JZ
BLA
GO IF YES
MDY
AL.,03H
I
SET THE ERROR FLAG
I
F NOT
DUT
MFG PORT, AL
J"P
SHORT SHUT9
EARLY ERROR EX
I
T
SET SI-lUToOWN RETURN ADDRESS AND DISABLE NMI
MOV
AX,9-H+CMOS SHUT DOWN+NMI
;
SET THE SHUTDOWN 8YTE L.OCATION
CALL
CMOS_WRITE -
-
: TO SHUT DOWN 9 AND
0 I SABLE NM [
CLEAR EXCEPT I ON ERROR FLAG
SUB
AL,AL
OUT
MFG_PORT .AL
SET ERROR FLAG LOCATION TO 0
LOAD THE
(DT AND GOT
MDY
~~,OFFSET
ROM_loT_LOC
5EGOV
; L.OAD THE lOT
DB
02EH
LIDT
[BPj
REG I STER FROM TH
[5
AREA
DB
OOFH
710001
LABEL
BYTE
"OV
BX,WORD PTR [BP]
??0002 LABEL.
8YTE
ORG
OFFSET C5:770001
DB
001H
ORG
OFFSET CS: ??0002
LGOT
[SI).CGDT LOC
; LOAD GL.OBAL DESCRIPTOR TABLE REGISTER
DB
OOFH
­
??0003
LABEL.
8YTE
"DV
OX,WORD PTR
[SI
J
.CGOT LOC
??0004
LABEL.
8YTE
­
ORG
OFFSET CS: ??0003
DB
00'
H
ORG
OFFSET CS: ??0004
SWITCH TO VIRTUAL.
MODE
"OY
AX, V I RTUAL. ENA8LE
MACH
J
NE STATUS WORD NEEDED TO
LMSW
AX
-
SWITCH TO VIRTUAL MODE
DS
OOFH.001H,OFOH
DS
OEAH
PURGE PRE-FETCH QUEUE WITH FAR ..JUMP
DW
OFFSET V IRT
-
TO OFFSET
OW
810S_CS
-
I
N SEGMENT -PROTECTED MODE SELECTOR
v
I RT:
J
N PROTECTED MODE
SETUP STACK SELECTOR AND SOURCE
IT
ARGET SELECTORS
MDY
AX, TEMP SS
USER'S SS+SP IS NOT A DESCRIPTOR
MDV
SS, AX
-
LOAD STACK SELECTOR
"DV
AX, SOURCE
GET THE SOURCE ENTRY
MDY
oS,AX
LOAD SOURCE SELECTOR
"DV
AX, TARGET
GET THE TARGET ENTRY
"DY
ES,AX
LOAD TARGET SELECTOR
SUS
S I, S (
SET SOURCE
INDEX REGlSTER TO ZERO
SUB
OJ
,O!
SET
TARGET
INDEX REG! STER TO ZERO
REP
MOVSW
MOVE THE BL.OCK COUNT PASSED IN
(CX)
1-----
CHECK FOR MEMORY PAR I TY BEFORE SHUTDOWN
5-168
BIOS1

Advertisement

Table of Contents
loading

Table of Contents