EasyManua.ls Logo

IBM PC CONVERTIBLE

IBM PC CONVERTIBLE
275 pages
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...
Keyboard Data
NMI
(KBNMI_DATA)
007D
0000
004B
0038
0008
0080
0057
025F
025F
IE
0260
07
0261
;
*******************************************************************
;
LOCAL
EQUATES
FOR
KEYBOARD
NMI
PROCESSING
;
*******************************************************************
KBNMLDATA
EQU
7DH
KEYBOARD
NMI
SCAN
CODE
INPUT
PORT
NO_HOLD
EQU
OOH
VAL
OF
P60_HOLD_BYTE
FOR
NOT
Q'
0
NMLSLASH_SC
EQU
4BH
SCAN
CODE
FOR
/
MAKE
AT
NMI
LEVEL
P60-AL
LSC
EQU
038H
SCAN
CODE
FOR
AL
T
AT
P60
LEVEL
NMLR-AL
LBIT3
EQU
08H
USED
TO
DENOTE
LEFT
&
RIGHT
ALT
NMI
SC.
R-ALT
HAS
THIS
BIT
SET.
BREAK-BIT
EQU
BOH
USED
TO
TST
AND
SET
BRK
BIT
OF
SCs
P60_FILSC
EQU
057H
Fll
MAKE
SC
FOR
P60
;
*******************************************************************
KYBD_PREP
-
KEYBOARD
SCAN
CODE
NMI
PROCESSING
DESCRIPTION:
THIS
ROUTINE
IS
JUMPED
TO
FROM
THE
FIRST
LEVEL
NMI
INTERRUPT
HANDLER
WHEN
THE
INTERRUPT
IS
THE
RESULT
OF
A
KEYSTROKE.
A
CLICK
IS
SOUNDED
WHEN
A
KEY
SCAN
CODE
'MAKE'
IS
RECEIVED
AND
THE
CLICK
STATE
IS
ON.
THE
SCAN
CODE
IS
READ
THEN
TESTS
ARE
MADE
TO
SEE
IF
THE
BUFFER
IS
EMPTY
AND
PORT
60
IS
NOT
ACTIVE. I F
THESE
2
CONDITIONS
ARE
MET
A
CALL
IS
MADE
TO
THE
XLATE
ROUTINE
WITH
THE
KEY
SCAN
CODE
IN AL.
ELSE
THE
SCAN
CODE
IS
BUFFERED
IN
THE
16
POSITION
NMI
SCAN
CODE
BUFFER
AT
THE
BUFFER
TAIL.
IF
PORT
60
IS
NOT
ACTIVE
A
CALL
IS
MADE
TO
THE
XLATE
ROUTINE
WITH
THE
KEY
SCAN
CODE
TO
BE
TRANSLATED
AT
THE
BUFFER
HEAD.
THE
FIRST
LEVEL
NMI
INTERRUPT
HANDLER
SAVES
REGISTERS
AND
MOVES
THE
ADDRESS
OF
"DATA"
TO
THE
OS
REGISTER
BEFORE
IT
JUMPS
TO
THIS
ROUTINE.
ON
EXIT
THE
FIRST
LEVEL
INTERRUPT
HANDLER
RESTORES
REGISTERS.
INPUT:
DATA
IN
PORT
7DH
OS
=
DATA
(40H)
OUTPUT:
STORE
SCAN
CODE
INTO
KB_NMLBUFFER
UPDATE
KB_NMLHEAD
_TAIL
SAVE
LASLCLICK-KEY
INTERNAL
ROUTINES:
KYBD_XLT
EXTERNAL
ROUTINES:
SPKILON,
KLNO I
SE,
SPKR_RESTORE
REGISTERS
MODIFIED: N/A
INTERRUPTS:
LEFT
AS
ARE
KYBD
NMI
INITIALLY
DISABLED,
ENABLED
BEFORE
EXIT
NORMAL
EXIT:
JMP
NMIH_EXIT
;
*******************************************************************
ASSUME
ASSUME
PUSH
POP
PREPI0:
OS:
DATA
ES:
DATA
DS
ES
NEAR
DATA
POINTER
TO
ES
ENABLE
DISPLAY
I F
DISABLED
BY
KEYBOARD
INACTIVITY
0261
F6
06
0016 R
80
TEST
JZ
BIOS_STATUS,DSP_BLANKED
; IS
LCD
BLANKED?
PREP
_12
0266
74
OF
,
;
RESET
BLANKED
FLAG
AND
ENABLE
DISPLAY
ROM BIOS 2-35

Related product manuals