IBM XT 5160 Technical Reference page 250

Hide thumbs Also See for XT 5160:
Table of Contents

Advertisement

IBM Personal Computer MACRO Assembler
Version 2.00
POST ----- 01/10/86
SYSTEM POST AND BIOS PROCEDURES
1-20
01-10-86
; -- HARDWARE I NT
08 H --
(
I RQ LEVEL 0 )
TH I S PROCEDURE WILL SEND A SOFTWARE RESET TO THE KEYBOARD.
SCAN CODE 'AA' SHOULD BE RETURNED TO THE CPU.
TEST
DATA AREA[OINTR FLAG-DATA40) ,02H ; DID A KEYBOARD INTR OCCUR?
.JNZ
G I 0 -
-
;
YES - READ SCAN CODE RETURNED
LOOP
G9
; NO - LOOP TILL TIMEOUT
LOOP FOR 20 MS
SET CLK, ENABLE LINES HIGH
1 /2 SECOND DELAY AFTER SHORT BEEP
DELA Y BETWEEN BEEPS
DONE WITH SHORT BEEPS COUNT
LOOP TILL DONE
1 /2 SECOND DELAY AFTER LAST BEEP
MAKE I T ONE SECOND DELA Y BEFORE RETURN
RESTORE FLAGS TO OR I G I NAL SETT I NGS
RETURN TO CALLER
SET KBD CLK LINE LOW
WR I TE 8255 PORT B
HOLD KBD CLK LOW FOR 20 MS
READ KEYBOARD SCAN CODE
SAVE SCAN CODE .JUST READ
CLEAR KEYBOARD
; RETURN TO CALLER
LOAD (DS)
TO DATA AREA
PUT SEGMENT VALUE OF DATA AREA INTO DS
RETURN TO USER WITH
(DS)
=
DATA
;
SEGMENT SELECTOR VALUE FOR DATA AREA
;
I NTERRUPTS BACK ON
CLEAR T I MER COUNT HIGH
AND LOW
SET T I MER ELAPSED 24 HOURS FLAG
I NCREMENT ELAPSED DAY COUNTER
SAVE MACHINE STATE
GET ADDRESS OF DATA SEGMENT
; ESTABLISH ADDRESSABILITY
;
INCREMENT T I ME
; GO TO TEST DAY
;
INCREMENT HIGH WORD OF T I ME
;
TEST DAY
; TEST FOR COUNT EQUAL I NG 24 HOURS
; GO TO D I SKETTE_CTL
; GO TO D I SKETTE_CTL
DECREMENT DISKETTE MOTOR CONTROL
RETURN I F COUNT NOT OUT
TURN OFF MOTOR RUNN I NG BITS
FDC CTL PORT
TURN OFF THE MOTOR
T I MER TICK INTERRUPT
TRANSFER CONTROL TO A USER ROUT I NE
D I SABLE INTERRUPTS TILL STACK CLEARED
GET END OF I NTERRUPT MASK
; END OF I NTERRUPT TO 8259 -
I
"; RESTORE (DX)
; RESET MACHINE STATE
;
RETURN FROM INTERRUPT
lCH
AX,AX
OTIMER HIGH,AX
OT I MER-LOW, AX
OT I MER-OFL , 1
ODAY_COUNT
ENDP
DATA
AL,EOI
INTAOO ,AL
DX
AX
DS
OMOTOR COUNT
T6
-
OMOTOR STATUS,OFOH
AL,OCH-
DX,03F2H
DX,AL
AL,PORT A
BL,AL
-
AL,OC8H
PORT_B,AL
ENDP
NEAR
DS ,CS :DDSDATA
ENTRY FOR MANUF ACTUR I NG TEST 2
AL ,48H
SET KBD CLK HIGH, ENABLE LOW
PORT B,AL
AL,OF'DH
; ENABLE KEYBOARD INTERRUPTS
INTA01,AL
; WRITE 8259
IMR
DATA_AREA [01 NTR_FLAG-DATA40) ,0
; RESET I NTERRUPT I ND I CATOR
; ENABLE INTERRUPTS
CX, CX
;
SETUP INTERRUPT TIMEOUT CNT
PROC
NEAR
G8
AL,OC8H
PORT_B,AL
DS
AX
DX
AX,DATA
DS,AX
OTIMER LOW
T4
-
OT I MER_H I GH
OT I MER HIGH, 0 18H
T5
-
OT I MER LOW, OBOH
T5
-
CX,33144
WAITF
DL
G3
CX,33144
WAITF
SUB
MOV
MOV
MOV
INC
DEC
.JNZ
AND
MOV
MOV
OUT
T5:
LOOP
MOV
OUT
SP TEST:
-
MOV
OUT
MOV
OUT
MOV
STI
SUB
T6:
T4:
TIMER INT 1
-
STI
PUSH
PUSH
PUSH
MOV
MOV
INC
.JNZ
INC
CMP
.JNZ
CMP
.JNZ
TEST FOR DISKETTE T I ME OUT
INT
CLI
MOV
OUT
POP
POP
POP
IRET
TIMER_INT_'
ENDP
T I MER HAS GONE 24 HOURS
ASSUME
CS:CODE,DS:DATA
TH I S ROUT I NE HANDLES THE T I MER I NTERRUPT FROM FROM CHANNEL 0 OF
THE 8254 T I MER.
I NPUT FREQUENCY
I S I. 19318 MHZ AND THE D I V I SOR
IS 65536, RESULT I NG IN APPROX I MATEL Y 18.2 I NTERRUPTS EVERY SECOND.
THE INTERRUPT HANDLER MAINTAINS A COUNT (40:6C) OF INTERRUPTS SINCE
POWER ON TIME, WHICH MAY BE USED TO ESTABLISH TIME OF DAY.
THE I NTERRUPT HANDLER ALSO DECREMENTS THE MOTOR CONTROL COUNT (40 :40 )
OF THE DISKETTE, AND WHEN IT EXP I RES, WILL TURN OFF THE
DISKETTE MOTOR ( s), ANI" RESET THE MOTOR RUNN I NG FLAGS.
THE I NTERRUPT HANDLER WILL ALSO I NVOKE A USER ROUT I NE THROUGH
I NTERRUPT I CH AT EVERY
TI ME TICK.
THE USER MUST CODE A
ROUTINE AND PLACE THE CORRECT ADDRESS
IN THE VECTOR TABLE.
PROC
MOV
RET
DDSDATA DW
G8:
Gl0:
G9:
IN
MOV
MOV
OUT
RET
KBD_RESET
DDS
MOV
CALL
DEC
.JNZ
MOV
CALL
POPF
RET
ERR_BEEP
DDS
ENDP
.
------
-
--
-
-
--
- - -
- -
-
- - - - -
-
-
--
-
--
- - -
- ---
- -
-
-
-
- - - ------
--
-
-
---
- -
-
- -
-
---
- ---
KBD RESET
PROC
NEAR
-
ASSUME
DS:ABSO
MOV
AL,08H
OUT
PORT B, AL
MOV
CX,I0582
2161
19D I B9 8178
2 I 62 19D4 E8 OCAO R
2163 19D7 FE CA
2 I 64 19D9 75 EE
2165 19DB B9 8178
2166 19DE E8 OCAO R
2167
19E I
9D
2168 19E2 C3
2169 19E3
2170
2171
2172
2173
2174
2175 19E3
2176
2177 19E3 BO 08
2178 19E5 E6 61
2179 19E7 B9 2956
2180 19EA
2 I 8 I
19EA E2 FE
2 I 82 19EC BO C8
2183 19EE E6 61
2184 19FO
2185 19FO BO 48
2 I 86 19F2 E6 61
2187
19F4 BO FD
2188 19F6 E6 21
2189 19F8 C6 06 046B R 00
2190
19FD FB
2191
19FE 2B C9
2192 I AOO
2193 I AOO F6 06 046B R 02
2194 lA05 75 02
2195
1A07 E2 F7
2196 1A09
2197
IA09 E4 60
2198 1AOB 8A D8
2 I 99 1AOD BO C8
2200
I AOF E6 61
2201
1A 11 C3
2202 1A 12
2203
2204 1A 12
2205 1A 12 2E: 8E 1E 1A 18 R
2206 1A 17 C3
2207
2208 lA18 ---- R
2209
2210
lAI A
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229 1A I A
2230
I A 1A FB
2231
1A I B IE
2232 1A I C 50
2233 1AID 52
2234 IAIE B8 ---- R
2235 1A2 1 8E D8
2236 1A23 FF 06 006C R
2237
1A27 75 04
2238 1A29 FF 06 006E R
2239 I A2D
224\
I A2D 83 3E 006E R 18
2241
1A32 75
19
2242 1A34 81
3E 006C R OOBO
2243
I A3A 75
I I
2244
2245
2246
2247
1A3C 2B CO
2248 1A3E A3 006E R
2249 I A41
A3 006C R
2250
1A44 C6 06 0070 R 0
I
2251
1A49 FF 06 OOCE R
2252
2253
2254
2255 1A4D
2256
1A4D FE OE 0040 R
2257
lA51
75 OB
2258 1A53 80 26 003F R FO
2259 1A58 BO OC
2260
1A5A BA 03F2
2261
I A5D EE
2262
2263 1A5E
2264 1A5E CD 1C
2265
2266
1A60 FA
2267
1A6 1 BO 20
2268 1A63 E6 20
2269 1A65 5A
2270
1A66 58
2271
IA67
IF
2272 1A68 CF
2273
2274 1A69
POST (01/10/86)
5-103

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents