IBM 5170 Technical Reference page 260

Hide thumbs Also See for 5170:
Table of Contents

Advertisement

:------ NOT IN
HOLD STATE
01F7
K28:
; NO-HOLD-STATE
01F7
F6 06 0017 R 08
TEST
KBJLAG,ALl_SHIFT ; ARE WE IN ALTERNATE SHIFT
01FC
7503
JNZ
K29
; JUMP I r ALTERNATE SH I FT
01 FE
E9 0290 R
JMP
K38
; JUMP I F NOT ALTERNATE
;------ TEST FOR RESET KEY SEQuENCE (CTL ALT DEL)
0201
K29:
; TEST-RESET
0201
F6 06 0017 R 04
TEST
KBJLAG,CTL_SHIFT; ARE WE IN CONTROL SHIfT ALSO
0206
74 31
JZ
K31
; NO RESET
0208
3C 53
CMP
AL, DEL_KEY
; SHIFT STATE I S THERE, TEST KEY
020A
75 20
JNE
K31
; NO_RESET
;------ ClL-ALl-DEL HAS BEEN FOUND, DO I/O CLEANUP
020C
C7 06 0072 R 1234
MDV
RESET FLAG,
1234H ; SET FLAG FOR RESET FUNCTION
0212
E9 0000 E
JMP
START:1
; JUMP TO POWER ON DIAGNOSTICS
; -----­ All-I NPUT-TABLE
0215
K30
LABEL
BYTE
0215
52 4F 50 51 48 4C
40
DB
82,79,80,81,75,76,77
021C
47 48 49
DB
71,72,73
; 10 NUMBERS ON KEYPAD
021f
10 11 12 13 14 15
;------ SUPER-SHIFT-TABLE
DB
16,17,18,19,20,21,22,23; A-L TYPEWRITER CHARS
16 17
0227
1819 1E lF 20 21
DB
24,25,30,31,32,33,34,35
22 23
022F
24 25 26 2C 20 2E
2F 30
DB
36,37,38,44,45,46,47,48
0237
31 32
DB
49,50
;-----­ IN ALTERNATE SHI FT,
RESET NOT FOUND
0239
K31 :
NO-RESET
0239
3C 39
CMP
AL,57
TEST FOR SPACE KEY
0238
75 05
JNE
K32
NOT THERE
0230
BO 20
MDV
AL,'
t
SET SPACE CHAR
023F
E9 0375 R
JMP
K57
BUfFER_F I LL
; -----­ LOOK FOR KEY PAD ENTRY
0242
K32:
ALT-KEY-PAD
0242
8F 0215 R
MOV
01, OF FSET K30
ALT-I NPUT-TABLE
0245
B9 OOOA
MOV
CX,10
LOOK FOR ENTRY US I NG KEYPAD
0248
024A
F2/ AE
75 12
REPNE
JNE
SCASB
K33
LOOK FOR I>1ATCH
NO_AL T _KEYPAD
024C
81 EF 0216 R
SUB
01, OFFSET K30+1
OJ NOW HAS ENTRY VALUE
0250
0253
AD 0019 R
B4 OA
MOV
MOV
AL,ALT INPUT
AH, 10 -
GET THE CURRENT BYTE
MULTIPLY BY 10
0255
F6 Ell
MUL
AH
0257
0259
03 C7
A2 0019 R
ADD
MOV
AX,DI
ALT_1NPUT,AL
ADD
!
N THE LATEST ENTRY
STORE I T AWAY
025C
EB 84
JMP
K26
THROW AWAY THAT KEYSTROKE
; -----­ LOOK FOR SUPERSH I FT ENTRY
025E
K33 :
NO-ALT-I<EYPAiJ
025E
C6 06 0019 R 00
MOV
ALT_INPUT,O
LERO ANY PREV I OUS ENTRY I NTO I N PUT
0263
89 001A
MOV
CX,26
01 ,ES ALREADY PO I NT I NG
0266
0268
026A
026C
F2/ AE
75 05
80 00
E9 0375 R
REPNE
JNE
MOV
JMP
SCASB
K34
AL,O
K57
LOOK FOR MATCH
I N ALPHABET
NOT rOUND,
rUNCTION KEY OR OTHER
ASC I I CODE OF LERO
PUT
I TIN THE BUFFER
;------ LOOK FOR TOP ROW OF ALTERNATE SHIFT
026F
K34:
ALl-TOP-ROW
026F
0271
3C 02
72 DC
eMP
JB
AL,2
K35
KEY WITI-I '1' ON IT
NOT ONE or I NTEREST I NG KEYS
0273
3C DE
eMP
AL,14
IS IT IN THE REGION
0275
73 08
JAE
K35
ALT-rUNGT I ON
0277
80 C4 76
ADD
AH, 1 18
CONVERT PSUEDO SCAN CODE TO RANGE
027A
027C
BO 00
E9 0375 R
MOV
JMP
AL,O
K57
INDICATE AS SUCH
BUFFERJ I LL
;
_ M _ _ _ _
TRANSLATE ALTERNATE SH I FT PSEUDO SCAN CODES
027F
K35:
ALT-FUNCTION
027F
0281
3C 3B
73 03
CMP
JAE
AL,59
K37
TEST FOR I N TABLE
ALT-CONTINUE
0283
K36:
CLOSE-RETURN
0283
E9 01 E2 R
JMP
K26
I GNORE THE KEY
0286
K37:
ALT-CONTINUE
0286
3C 47
CMP
AL,71
I N KEYPAD REG I ON
0288
73 F9
JAE
K36
I F SO,
IGNORE
028A
BB 0000 E
MOV
BX,OFFSET K13
ALT SH I FT PSEUDO SCAN TABLE
0280
E9 03CC R
JMP
K63
TRANSLATE THAT
; -----­ NOT IN ALTERNATE SHI FT
0290
0290
0295
F6 06 0017 R 04
74 62
1<38:
TEST
JZ
KB_FLAG, CTL_SH I FT
K44
NOT-ALT-SHIFT
ARE WE I N CONTROL SH 1FT
NOT-CTL-SHI FT
;------ CONTROL SHIFT, TEST SPECIAL CHARACTERS
; -----­ TEST FOR BREAK AND PAUSE KEYS
0297
3C 46
CMP
AL, SCROll_KEY
TEST FOR BREAK
0299
75 10
JNE
K39
NO-BREAK
029B
8B 1 E 0080 R
"IOV
BX,BUFFER_START
RESET BUFFER TO EMPTY
029F
89 1 E OOlA R
MOV
BUFFER HEAD, BX
02A3
02A7
89 lE OOlC R
C6 06 0071 R 80
MOV
MOV
BUFFER=TA I L, BX
B lOS_BREAK, 80H
TURN ON B lOS_BREAK BIT
; -------­ ENABLE KEYBOARD
02AC
BO AE
Mev
AL. ENA_KBD
ENABLE KEYBOARD
02AE
02B1
E8 01198 R
CD 1B
CALL
INT
SHI P IT
lBH -
EXECUTE ENABLE
BREAK INTER:lUPT VECTOR
02B3
02B5
2B CO
E9 0375 R
SUB
JMP
AX,AX
K57
PUT OUT DUMMY CHARACTER
8UFFER_F I LL
02B8
02B8
02BA
3C 45
75 26
K39:
CMP
JNE
AL, NUM KEY
K!ll
-
NO-BREAK
LOOK FOR PAUSE KEY
NO-PAUSE
02BC
80 DE 0018 R 08
OR
KB_FLAG_' , HOLD_STATE
TURN ON THE HOLD FLAG
; -------­ ENABLE KEYBOARD
02Cl
02C3
BO AE
E8 0498 R
MOV
CALL
AL, ENA_KBD
SH I PIT
ENABLE KEYBOARD
EXECUTE ENABLE
02C6
BO 20
MOV
AL, EOI
END OF INTERRUPT TO CONTROL PORT
02C8
E6 20
OUT
020H, AL
ALLOW FURTHER KEYSTROKE I NTS
5-118 Keyboard

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents