IBM 5170 Technical Reference page 294

Hide thumbs Also See for 5170:
Table of Contents

Advertisement

01 F5
01 F5
04
01F6
80 E4 OF
01 F9
01F9
D1
EO
OHB
01F9
OH9
D1F9
C1
DHB
OHB
04
01 FC
26: 88 74 2C
0200
26: 89 44 2A
0204
26: C7 44 28 fFFF
020A
26: c6 44 20 93
020F
26: c6 44 24 OF
0214
26: C7 44 22 0000
021A
26: C7 44 20 FHF
0220
26: C6 44 25 9B
0225
26: C7 44 26 0000
022B
B8 0001
022E
Of
022F
0221"
8B Fa
0231
022F
022F
01
0231
0231
EA
0232
0236 R
0234
0020
0236
0236
B8 0028
0239
8E DO
0236
B8 0010
023E
8E 08
0240
B8 0018
0243
8E
co
0245
2B FF
0247
2B F6
0249
F3/ A5
0248
£4 61
024D
24 CO
024F
74 lC
0251
26: 8B 04
0254
26: 89 04
0257
88 05
0259
89 05
0258
BO
01
0250
E6 80
025F
E4 61
0261
EB 00
0263
DC OC
0265
E6 61
0267
EB 00
0269
24 f3
026B
E6 61
0260
E9 0000 E
0270
0270
2A CO
0272
E6 70
0274
84 DO
0276
E8 03BO R
0279
3C 00
027B
74 OA
0270
E4 80
0271"
3C 00
0281
75 04
0283
BO 03
0285
E6 80
0287
E8 0000 E
02BA
A 1 0069 R
0280
8E DO
028F
Al 0067 R
0292
8B EO
0294
1 F
ORG
OFFSET CS: 770000
DB
4
AND
AH, aOFH
STRI? HIGH NIBBLE FROM AH
ISHL
AX,4
SHI FT AX
+ ??OOOF LABEL
BYTE
+
SHL
AX,1
+
110010 LABEL
BYTE
+
ORG
OFFSET CS: ?1000F
+ 710011
LABEL
NEAR
+
DB
OC1H
ORG
OFFSET CS: 7?0010
DB
4
;-------- SS IS NOW IN ?OSITION FOR A 24 BIT ADDRESS --> SETUP THE DESCRIPTOR
BLl:
MOV
MOV
MOV
MOV
; -------- STACK I S NOW SET
--->
SET UP THE CODE SEGMENT DESCR I PTOR
MOY
ES:[SIJ.BIOS_CS.BASE_HI_BYTE,CSEG@_HI
; HIGH BYTE OF CS=OF
MOV
ES:[SIJ.BIOS_CS.BASE_LO_WORD,CSEG@LLO; LOW WORD OF CS=O
MOV
ES:!SIJ.BIOS_CS.SEG_LlMIT,MAX_SEG_LEN
MOY
ES; [ S I
J.
B I OS_CS, DATA_ACC_R I GHTS, CPLO_CODE_ACCESS
MOY
ES: [SI}. BIOS_CS, DATA_RESERYED,O
; RESERVED
; ------
SWI TCH TO VI RTUAL MODE
MOV
AX, V I RTUAL_ENABLE
MACH I NE STATUS WORD NEEDED TO
LMSW
AX
SWITCH TO VIRTUAL MODE
+
DB
OOFH
+ ?70012 LABEL
BYTE
+
MOV
SI,AX
+ ??0013 LABEL
BYTE
+
ORG
OFFSET CS:??0012
DB
OOlH
ORG
OFFSET CS: ??0013
JUMPFAR VIRT ,BIOS_CS
; MUST PURGE PRE-FETCH QUEUE
DB
OEAH
; Jump fa r d
j
rect
ow
(OFFSET VIRTI
;
to th
j
s offset
ow
B 10S_CS
in th
i
s segment
VIRT:
;------- SET STACK SEGMENT
(NEEDED FOR POSSIBLE EXCEPTIONS)
MOV
AX, TEMP SS
USER'S SS+SP I S NOT A OESCR I PTOR
MOV
SS,AX
­
;------- SETUP SOURCE/TARGET REGISTERS
MOV
AX, SOURCE
GET THE SOURCE ENTRY
MOV
OS,AX
MOV
AX, TARGET
GET THE TARGET ENTRY
MOV
ES,AX
SUB
01,01
SET I NDEX REGS TO ZERO
SUB
SI,SI
REP
MOVSW
MOVE THE BLOCK
;------- CHECK FOR RAM PARITY BEFORE SHUTDOWN
IN
AL, PORT B
GET THE PAR I TY LATCHES
AND
AL, PARITY_ERR
STR
I
P UNWANTED BITS
JZ
DONE'
GO I f NO PAR
I
TY ERROR
; -------- CLEAR PAR I TY BEFORE SHUTDOWN
MOV
AX,ES:[SI]
FETCH CURRENT TARGET DATA
MOV
ES:[Stj,AX
WRITE IT BACK
MOV
AX,DS:[DI
J
fETCH CURRENT SOURCE DATA
MOV
OS:
[01 LAX
WRITE IT BACK
MOV
AL,01
SET PAR ITY CHECK ERROR
OUT
MFG_PORT, AL
IN
AL, PORT_B
JMP
SHORT $+2
10 DELAY
OR
AL, RAM_PAR_OFF
TOGGLE PAR I TY CHECK LATCHES
OUT
PORT B,AL
,JMP
SHORT $+2
10 DELAY
AND
AL, RAM PAR ON
OUT
PORT_B-:-AL ­
;-------- CAUSE A SHUTDOWN
DONEl: JMP
SHUT9:
j-------
ENABLE NMI
INTERRUPTS
SUS
AL,AL
OUT
CMOS_PORT, AL
;------- GATE ADDRESS BIT 20 OFF
MOY
AH, 0 I SABLE_B I T20
CALL
GATE A20
CMP
AL,O-
COMMAND ACCEPTED?
JZ
OONE3
GO IF YES
IN
AL,MFG_PORT
CHECK fOR ERROR
CMP
AL,O
WAS THERE
AN
ERROR?
JNZ
DONEJ
GO I F YES
MOV
AL,03H
SET ERROR FLAG
OUT
MfG_PORT ,AL
; -------- RESTORE USERS STACK
DONEJ: CALL
DDS
SET OS
TO
DATA AREA
MOV
AX, 10_ROM_SEG
SAVE STACK SEGMENT
MOV
SS,AX
RESTORE THE STACK POINTER
MOV
AX,IO_ROM_IN1T
MOV
SP,AX
; ------- RESTORE THE USER DATA SEGMENT
POP
OS
RESTORE USER DATA SEGMENT
5-152 BIOS 1

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents