IBM 5150 Hardware Reference Manual page 217

Hide thumbs Also See for 5150:
Table of Contents

Advertisement

LaC OBJ
LINE
SOURCE
1659
ASSUME
CS:CODE,DS!DAiA
E8tE
1660
KEYBOARD_IO
PROC
"R
E82E FB
1661
SH
j
INTERRUPTS BACK ON
ESZ:F
IE
1662
PUSH
OS
J SAVE CURRENT DS
. E8lt 53
16.63
IJUSH
6X
I
SAVE BX TEMPORARILY
E831 B84000
1664
I10V
ex,OATA
E8M SEDB
1665
MOV
OS,BX
I
ESTABLISH POINTER TO DATA REGION
£836 OAF.
1666
OR
.......
; AH=O
E83& 740B
1667
JZ
.1
; ASCII_READ
E63A
fEee
E83C 7420
E83E
FEet
1666
1669
1670
O'C
JZ
DEC
A.
••
AH
I AH-=1
J
ASCII_STATUS
; AH:::2
E840
71\2D
1671
JZ
Kl
; SHIFT_STATUS
E842 5B
1672
POP
BX
J
RECOVER REGISTER
E843 IF
1673
POP
OS
E84lt CF
1674
IRET
J INVALID COHt1AND
1675
1676
;------ READ THE KEY TO FIGURE OUT WHAT TO DO
1677
'84'
1678
Kl:
; ASCII READ
E845 FB
1679
STt
; INTERRUPTS BACK
ON DURING LOOP
E846 90
1680
NOP
J AlLOW AN INTERRUPT TO
OCCUR
EM7 FA
1681
eLI
I INTERRUPTS BACK OFf
E848 881ElAOO
1682
MaV
ex.BUfFER_HEAD­
I GET POINTER TO HEAD OF BUFFER
EMC
381EICOO
1683
eMP
BX,BUFFER_TAIl
I TEST END Of BUFfER
E850
74F3
1684
JZ
Kl
I
LOOP
UNTIL
SOMETHING IN BUFFER
f652 8B07
1685
I10V
AX,lBXl
j
GET SCAM
CODE
AND ASCII CODE
E654
E81EOO
16. .
CALL
K'
I
MOVE POINTER TO NEXT POSITION
E857
891E
lAOO
1687
I10V
eUfFER_HEAD,BX
I
STORE VALUE IN VARIABLE
E858 58
1688
pop
ex
; RECOVER REGISTER
f85t
IF
1689
POP
os
• RECOVER SEGMENT
E8SD Cf
1690
IRET
~
RETURN TO C.A
LLER
1691
1692
1------ .ASCII STATUS
1693
E85E
1694
E85E FA
169S
eLI
; INTERRUPTS Off
E85F
881£1AOO
1696
I10V
ax .SUFFER_HEAD
; GET HUD POINTER
E86.3
381ElCOO
1697
CMP
ex.BUFFER_TAIl
; IF EQUAL (Z=l) THEN NOTHIHG THERE
E867
8807
1696
HOV
AX.fex]
[869 Fe
1699
SH
; INTERRUIJTS BACK ON
E8~A
58
1700
POP
BX
J RECOVER REGISTER
E86B IF
1701
POP
OS
o RECOVER SEGMENT
E86C CA02O'O
1702
RET
; THROW AWAY fLAGS
1703
1704
1------ SHIfT SfArus
1705
E8bF
1706
K3:
E86F
A01700
1707
I10V
Al
,KBJ
LAG
1 GET THE SHIFT STATUS FLAGS
E872 58
1708
pop
ex
; RECOVER REGISTER
£873 IF
1709
POP
DS
; RECOVER REGISTERS
E874 CF
1710
IRET
; RETURN TO CALLER
1711
1712
17U
j------
INCREMENT A BUFfER POINTER
1714
E875
1715
K4
PROC
NEAR
E875 83C302
1716
ADD
B)(,2
; MOVE TO NEXT WORD IN LIST
E878 81 F83EOO
1717
CHP
BX,OfFSET KB_BUFFER_ENO ; AT END OF eUFFER?
Ea7C
7503
1718
JNE
.s
j
NO. CONTINUE
E87E 881EOO
J719
MOV
ax ,OFfSET Ke_BUFFER
t YES, RESET TO eUFFER BEGINNING
'681
1720
KS:
E881 C3
1721
RET
1722
K4
ENDP
1723
1724
~------
TABLE OF SHIfT KEYS
AtI)
tuSK VALUES
Ins
Eee!
1726
K6
LABEL
eYTE
E882 ;2
1727
DB
INS_KEY
; INSERT KEY
E8&3 3A45463&10
1728
06
CAPS_KEY ,NUN_KEY
,SCROL~KEY
• AlT_KEY .eTl_KEY
E888
2A36
1729
DB
LEF-r_KEy,RIGHT_KEY
0008
1130
.bL
'OU
$-K6
1731
1732
;------ SHIFT_H'\sK_TABLE
1733
.....
1734
K7
LABEL
BYTE
E88A 80
1735
DB
; INSERT MODE SHIFT
A-24

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents