IBM XT 5160 Technical Reference page 278

Hide thumbs Also See for XT 5160:
Table of Contents

Advertisement

LOC OBJECT
LINE
SOURCE
(BIOS FOR THE IBM PERSONAL COMPUTER XT)
I 1 /08/82
; ----- READ THE KEY TO FIGURE OUT WHAT TO DO
GET THE SHIFT STATUS FLAGS
AT END OF BUFFER?
NO, CaNT I NUE
YES, RESET TO BUFFER BEG I NN I NG
MOVE TO NEXT WORD
IN LIST
RECOVER REG ISTER
RECOVER REG ISTERS
RETURN TO CALLER
I NTERRUPTS OFF
GET HEAD PO INTER
I F EQUAL
(Z= I)
THEN NOTH I NG THERE
I NTERRUPTS BACK ON
RECOVER REG ISTER
RECOVER SEGMENT
THROW AWAY FLAGS
ASC II READ
I NTERRUPTS BACK ON DUR I NG LOOP
ALLOW AN
I NTERRUPT TO OCCUR
I NTERRUPTS BACK OFF
GET PO I NTER TO HEAD OF BUFFER
TE ST END OF BUFFER
LOOP UNT I L
SOMETH I NG
I N BUFFER
GET SCAN CODE AND ASC I I CODE
MOVE PO I NTER TO NEXT pas I T I ON
STORE VALUE
IN VAR I ABLE
RETURN
I NTERRUPTS BACK ON
SAVE CURRENT DS
SAVE BX TEMPORAR I L Y
AH=O
ASC II READ
AH=1
-
ASC I I
STATUS
AH=2 -
SHIFT STATUS
EX IT
FAR
DB
27 , - I ,0, - I ,- I ,- 1 ,30, - 1
LEFT _ SH I FT , RIGHT _ SH I FT
BYTE
INS SHIFT
;
INSERT MODE SHIFT
CAPS_SH I FT, NUM_SH I FT, SCROLL_SH I FT, AL T_SH I FT, CTL_SH I FT
BYTE
I NS KEY
;
I NSERT KEY
CAPS_KEY, NUM_KEY, SCROLL_KEY, AL T_KEY ,CTL_KEY
NEAR
BX
BX
BX ,BUFFER END
K5
-
BX,BUFFER_START
ENDP
AL,KB_FLAG
BX
DS
BX ,BUFFER HEAD
BX ,BUFFER-TA I L
AX,[BX]
-
BX
DS
2
BX ,BUFFER HEAD
BX, BUFFER-T A I L
KI
-
AX, [BX]
K4
BUFFER HEAD, BX
SHORT TNT 1O_END
DS
BX
DDS
AH,AH
K 1
AH
K2
AH
K3
SHORT
I NT 1O_END
CS:CODE,DS:DATA
OE82EH
PROC
READ THE NEXT ASC I I CHARACTER STRUCK FROM THE KEYBOARD
RETURN THE RESULT
IN (AL),
SCAN CODE
IN
(AH)
SET THE Z FLAG TO I ND I CATE
I F AN ASC I I
CHARACTER
IS
AVAILABLE TO BE READ.
(ZF) = I
-- NO CODE AVA I LABLE
( ZF) = 0 - -
CODE
I S AVA I LABLE
IF ZF = 0,
THE NEXT CHARACTER
I N THE BUFFER TO BE READ
I SIN AX,
AND THE ENTRY REMA I NS
I N THE BUFFER
RETURN THE CURRENT SH I FT STATUS
IN AL REG I STER
THE BI T SETT I NGS FOR TH I S CODE ARE
I ND I CA TED
I N THE
THE EQUATES FOR KB_FLAG
LABEL
DB
DB
DB
DB
LEFT_KEY,RIGHT_KEY
EQU
S-K6
LABEL
DB
DB
RET
ENDP
PROC
INC
INC
CMP
JNE
MOV
(AH) =2
(AH)
=
1
(AH) =0
CLI
MOV
CMP
MOV
STI
POP
POP
RET
STI
NOP
CLI
MOV
CMP
JZ
MOV
CALL
MOV
JMP
SCAN CODE TABLES
I NCREMENT A BUFFER PO INTER
SHIFT STATUS
INPUT
OUTPUT
AS NOTED ABOVE, ONLY AX AND FLAGS CHANGED
ALL REG I STERS PRESERVED
; ----- TABLE OF SH I FT KEYS AND MASK VALUES
; ----- ASC II
STATUS
MOV
INT I 0 END:
-
POP
POP
IRET
KEYBOARD_IO
;----
INT
16 -----------------------------------------------------------
;
KEYBOARD
I /0
;
THESE ROUT I NES PROV I DE KEYBOARD SUPPORT
ASSUME
ORG
KEYBOARD 10
STI
PUSH
PUSH
CALL
OR
JZ
DEC
JZ
DEC
JZ
JMP
1793
1794
K6L
1795
1796
1797
1798
K7
1799
1800
1802
1803
1804
1805
K8
1801
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
K I:
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
K2:
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
K3:
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
K5:
1785
1786
K4
1787
1788
1789
1790
K6
1791
1792
E88E IB
E88F FF
E890 00
E891
FF
E892 FF
E893 FF
E894 IE
E85A
E85A FA
E85B 8BIE1AOO
E85F 3BIE1COO
E863 8B07
E865 FB
E866 5B
E867
IF
E868 CA0200
E87E
E87E 52
E87F 3A
E880 45
E881
46
E882 38
E883
I D
E884 2A
E885 36
0008
E871
E871
43
E872 43
E873 3B1E8200
E877 7504
E879 8B1E8000
E87D
E87D C3
E842
E842 FB
E843 90
E844 FA
E845 8BIEIAOO
E849 3BIEICOO
E84D 74F3
E84F 8B07
E851
E81 DOO
E854891EIAOO
E858 EB14
E886
E886 80
E887 40
E888 ·20
E889
10
E88A 08
E88B 04
E88C 02
E88D 0 I
E86B
E86B AO 1700
E86E
E86E 5B
E86F IF
E870 CF
E82E
E82E
E82E FB
E82F
IE
E830 53
E831
E82512
E834 OAE4
E836 740A
E838 FECC
E83A 741E
E83C FECC
E83E 742B
E840 EB2C
PC-XT System BIOS (11/08/82)
5-131

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents