EasyManua.ls Logo

IBM 5150 - Page 147

IBM 5150
309 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
LOC
OBJ
LINE
SOURCE
1816
1817
1818
;
----
INT
16
---.--------------------
--
----------------------------------
1819
I
KEYBOARD
110
1620
I THESE
ROUTINES
PROVIDE
KEYBOARD SUPPORT
162:1 I
INPUT
1822
(AH
)=0
READ THE NEXT
ASCII
CHARACTER STRUt:K
FROM
THE KEYBOARD
1823
RETURN
THE
RESULT
IN
Uli.
SCAN
CODE
IN
(AH)
1824
(AH)=
1
SET
THE Z FLAG
TO
INDICATE
IF
AN
ASCII
CH.ARACTER
IS
1825
AVAILABLE
TO
BE
READ.
1826
(IF)=l
--
NO
cODE AVAILABLE
1827
(IF
)=0
--
CODE
IS
AVAILABLE
1826
IF
ZF
=
0,
THE
NEXT
CHARACTER
IN
THE
BUFFER
TO
BE
READ
1629
IS
IN
AX.
AND
THE
ENTRY
REMAINS
IN
THE
BUFFER
1830
(AHI=2
RETURN THE CURRENT
SHIFT
STATUS
IN
AL
REGISTER
1811
THE
BIT
SETTINGS
FOR
THIS
CODE
ARE
INDICATED
IN
THE
1832
THE
EQUATES
FOR
KBJLAG
1833
;
OUTPUT
1834
AS
NOTED ABOVE I ONLY AX
AND
flAGS
CHANGED
1835
ALL
REGISTERS
PRESERVED
1836
1----------------------------------------------------------------------.-
1837
ASSUME
CS:CODE,DS:DATA
f82E
18
..
OR'
oEa2EH
f8ZE
1839
KEYBOARD_IO
PROC
FAR
f82:E
FB
1840
sn
; INTERRUPTS
BACK
ON
EeZF
IE
1841
PUSH
OS
I
SAVE
CURRENT
OS
E830
53
1842:
PUSH
ex
I
SAVE
BX
TEMPORARILY
E831 E80A17
1843
CAll
DOS
E834
OAE4
184.
OR
AH,AH
I
AH=O
E836
740A
1845
JZ
01
; ASCII_READ
E838
FEee
184.
DEC
AH
; AH=l
E83A 741E
1847
JZ
0'
J ASCII_STATUS
Eelt
FEee
1848
DEe
AH
;
AH=2
£63E
742B
1849
JZ
03
; SHIFT_STATUS
E840
EBlt
1850
JHP
SHORT
INTlO_END ; EXIT
1851
1852
;-----
READ
THE
KEY
TO
FIGURE
OUT
WHAT
TO
DO
1853
£842
1854
Kl:
,
ASCII
READ
£842
FB
1855
sn
; INTERRUPTS
BACK
ON
DUIHNG
LOOP
f843
90
1856
NOP
I AllOW
AN
INTERRUPT
TO
OCCUR
E844
FA
1857
eLI
, INTERRUPTS
BACK
OFF
£845
8BIEl.l.OO
1858
HOY
BX,BUFFER_HEAD I
GET
POINTER
TO
HEAD
OF
BUFFER
£849
381EICOO
1859
CHP
BX,BUFFEICTAIL
; TEST
EI'I)
OF
BUFFER
£840
74F3
1860
JZ
01
;
LOOP
UNTIL
SOMEllHNG
IN
BUFFER
E84F
8B07
1861
HOY
AX,IBX]
;
GET
SCAN
CODe
041'1)
ASCII
CODE
E651 E8}DOO
1862
CALL
04
;
MOVE
POINTER
TO
NEXT
POSITION
E8S4
891ElAOO
1863
HOV
BUFFER_HEAD,ex
;
STORE
VALUE
IN
VARIABLE
E858
EB14
1864
JHP
SHORT
INTIO_EHD
;
RETURN
1865
1866
1-----
ASCII
STATUS
1867
E85A
1868
K2:
E85A
FA
1869
ell
I INTERRUPTS
OFF
E85B
8BIElAOO
1870
I10Y
ex,eUFFER_HEAD
;
GET
HEAD
POINTER
E85F 3BlEICOO
1871
CHP
Bx.eUFFER_TAIL
;
IF
EQUAL
(l=l'
THEN
NOTHING
TliERE
E863
8B07
1872
HOY
Ax.(eX]
E865
FB
1873
sn
; INTERRUPTS
BACK
ON
E866
56
1874
POP
ex
;
RECOVER
REGISTER
E867
IF
E868
tA0200
1875
1876
POP
RET
OS
,
i
RECOVER
SEGMENT
;
THROW
AWAY
FLAGS
1877
1878
1-----
SHIFT
STATUS
1879
EMe
1880
E86B
.6.01700
1881
AL.KB]LAG
I
GET
THE
SHIFT
STATUS
FLAGS
E66E
1882
EabE
58
1883
pop
BX
;
RECOVEIJ
REGISTER
E86F
IF
1884
POP
OS
I
RECOVER
REGISTERS
E870
CF
1885
IRET
;
RETlJRN
TO
CALLER
1886-
KEYBOARD_IO
ENDP
1887
1888
;-----
INCREMENT
A eUFfER
POINTER
1889
Ee71
1890
04
PROC
NEAR
£871
43
1891
INC
ax
I
MOVE
TO
NEXT
WORD
IN
LIST
E872
43
1892
INC
ex
5-54
System
BIOS

Table of Contents

Other manuals for IBM 5150

Related product manuals