IBM 5150 Technical Reference page 156

Hide thumbs Also See for 5150:
Table of Contents

Advertisement

LaC OBJ
LINE
SOURCE
EB05 3eFF
2330
CMP
At,-I
I IS THIS AN IG""ORE CHAR
ES07 741F
2331
JE
K59
I YES. DO HaTH ING
WITH
IT
EBD9 80FCFF
2332
CMP
AH,-I
I LOOK FOR -1 PSEUDO SCAN
EBOC 741A
2333
JE
K59
I NEAR_iNTERRUPT_RETURN
,,,.
2335
1----- HANDLE THE CAPS LOCK PROBlE"
2336
~
EeOE
Z337
KS8:
I BUFFER-FILL-NOTEST
EBDE F606170040
2338
TEST
KB_F LAG. CAPS_S1 ATE
I ARE WE
IN
CAPS LOCK STATE
EBEl 7420
2339
JZ
K61
I SKIP IF NOT
2340
2341
1----- IN CAPS LOCK STATE
'34'
fBES F606170003
'343
TEST
KB]LAG. LEFT_SHIFT+RIGHT_SHIFT
I TEST FeR SHIFT STATE
EBEA 740F
2344
JZ
060
I IF NOT SHIFT
I
CONVERT LOWER TO LFPER
'345
2346
1----- CONVERT ANY UPPER CASE TO LOWER CASE
2347
fBEC 3C41
2348
tMP
AL. 'A'
I FINO OUT IF ALPHABETIC
EBEE 7215
2349
Ja
Kbi
I HOT_tAPS_STATE
EBFO 3C5"
2350
tMP
AL, 'Z'
ESF2 7711
2351
JA
0.1
I NOT_tAPS_STATE
EBF4 0420
2352
ADD
ALt'.'-'.'
I CONVERT TO LOWER CASE
E6F6 E800
2353
JMP
SHORT K61
; NOT_CAPS_STATE
EBF8
2354
K59:
I NEAR-INTERRUPT-RETURN
EBF8 E95EFE
2355
JMP
K26
I INTERRUPT_RETURN
2356
2357
1----- CONVERT ANY LOWER CASE TO UPPER CASE
2358
EBFB
2359
K60:
I LOWER-TO-UPPER
EBFB 3C61
2360
tMP
AL.·.·
I FIND OUT I f AlPHABETIC
EBFD 7206
2361
Ja
K61
; NOT_CAPS_STATE
EBFF le7A
2362
CMP
AL. 'z'
ECOI 7702
2363
JA
K61
I NOT_CAPS_STATE
£C03 2C20
2364
SUB
Al. 'a'-'A'
I CONVERT TO UPPER CASE
EC05
2365
K61:
I HOT-CAPS-STATE
EC05 8BIEICOO
2366
MOV
BX.BUFFER_TAIL
I GET THE END POINTER TO THE BUFFER
~
EC09 8BF3
2367
MDV
SI,ex
I SAVE THE VALUE
ECOB E863FC
2368
CALL
O.
I ADVANCE THE TAll
ECOE 3B1ElAOO
2369
CMP
BX,BUFFER_HEAD
I HAS THE BUFFER WRAPPED AROl.IND
EC12 7413
2370
JE
K6'
I
BUFFERJUl~BEEP
EC14 8904
2371
MOV
[SIl.AX
; STORE THE VALUE
EC16 891£1COO
2372
MDV
BUFFER_TAIL.BX
I HOVE THE POINTER UP
ECIA E93tFE
2373
JMP
02.
I INTERRUPT_RETURN
2374
2375
;----- TRANSUTE SCAN FOR PSEUDO SCAN CODES
2376
EtlD
2377
K63:
I TRANSLATE-SCAN
EC1D 2C38
2378
SUB
AL,59
; CONVERT ORIGIN TO FUNCTION KEYS
EClf
2379
K64:
; TRANSLATE-stAN-ORGO
EelF 2ED7
2380
XLAT
CS:K9
; CTL TABLE SCAN
EC21 8AEO
2381
MDV
AH.AL
; PUT VAWE INTO AH
EC23 BODO
2382
MDV
AL,O
I ZERO ASCll CODE
EC25 EBAf
2383
JMP
057
I PUT IT INTO THE BUFFER
23M
2385
KB_INT
ENDP
2386
2387
;----- BUFfER IS FULL. SOlH) THE BEEPER
2388
EC27
'389
K62:
I BUFFER-FUlL-BEEP
EC27 B020
2390
MDV
AL.EDI
; END OF INTERRUPT COHtIAND
EC29 E620
2391
OUT
20H,Al
; SEND COmANO TO INT CONTROL PORT
EC2B 888000
2392
MOV
BX.080H
1 NUMBER OF CYClES FOR 1/12 SECOND TONE
EC2E £461
2393
IN
Al,KB_CTl
; GET CONTROL INFORMATION
EC30 50
2394
PUSH
AX
I SAVE
EC31
2395
K65:
I BEEP-CVClE
EC31 24Ft
2396
AND
Al.OFtH
I TURN Off TIMER GATE AI'I) SPEAKER DATA
~
Et33 E661
2397
OUT
KB_CTL,AL
I OUTPUT TO CONTROL
EC35 B94800
2398
MOV
CX,48H
; HALF CVCLE TIME FOR TONE
EC38
2399
K66:
EC38 E2FE
2:400
LOOP
K66
I SPEAKER OFF
EC3A OC02
2401
DR
Al,2
j
TURN ON SPEAKER BIT
fC3t E661
2402
OUT
KB_CTL,Al
; OUTPUT TO CONTROL
EC3E 894600
2403
MOV
CX.48H
I SET UP COUNT
Et41
2404
R67:
fC41 f2Ff
2405
LOOP
0'7
j
ANOTHER HALF CYCLE
EC43 4B
2406
DEC
ax
I TOTAL TIME Ctun'
System BIOS 5-63

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents