home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Overload
/
ShartewareOverload.cdr
/
progm
/
tptools.zip
/
ALLINST.ZIP
/
ESCSEQ.ASM
< prev
next >
Wrap
Assembly Source File
|
1987-12-21
|
12KB
|
323 lines
;
; ESCSEQ.ASM
; Editor Toolbox 4.0
; Copyright (c) 1985, 87 by Borland International, Inc.
;
; Text strings for extended scan codes
;
DATA SEGMENT BYTE PUBLIC
DATA ENDS
CODE SEGMENT BYTE PUBLIC
ASSUME CS:CODE,DS:DATA
PUBLIC GetEscapeSequence
;CS-relative data:
;packed table of key names for IBM extended keystroke sequences
;compatible with SuperKey Version 1.16 and later
;
Keys LABEL BYTE
db 1, "?" ;0
db 6, "AltEsc" ;1
db 1, "?" ;2
db 5, "Ctrl@" ;3
db 1, "?" ;4
db 1, "?" ;5
db 1, "?" ;6
db 1, "?" ;7
db 1, "?" ;8
db 1, "?" ;9
db 1, "?" ;10
db 1, "?" ;11
db 1, "?" ;12
db 1, "?" ;13
db 6, "AltBks" ;14
db 8, "ShiftTab" ;15
db 4, "AltQ" ;16
db 4, "AltW" ;17
db 4, "AltE" ;18
db 4, "AltR" ;19
db 4, "AltT" ;20
db 4, "AltY" ;21
db 4, "AltU" ;22
db 4, "AltI" ;23
db 4, "AltO" ;24
db 4, "AltP" ;25
db 4, "Alt[" ;26
db 1, "?" ;27
db 8, "AltEnter" ;28
db 1, "?" ;29
db 4, "AltA" ;30
db 4, "AltS" ;31
db 4, "AltD" ;32
db 4, "AltF" ;33
db 4, "AltG" ;34
db 4, "AltH" ;35
db 4, "AltJ" ;36
db 4, "AltK" ;37
db 4, "AltL" ;38
db 4, "Alt;" ;39
db 4, "Alt'" ;40
db 4, "Alt`" ;41
db 1, "?" ;42
db 1, "?" ;43
db 4, "AltZ" ;44
db 4, "AltX" ;45
db 4, "AltC" ;46
db 4, "AltV" ;47
db 4, "AltB" ;48
db 4, "AltN" ;49
db 4, "AltM" ;50
db 4, "Alt," ;51
db 4, "Alt." ;52
db 1, "?" ;53
db 1, "?" ;54
db 1, "?" ;55
db 1, "?" ;56
db 1, "?" ;57
db 1, "?" ;58
db 2, "F1" ;59
db 2, "F2" ;60
db 2, "F3" ;61
db 2, "F4" ;62
db 2, "F5" ;63
db 2, "F6" ;64
db 2, "F7" ;65
db 2, "F8" ;66
db 2, "F9" ;67
db 3, "F10" ;68
db 1, "?" ;69
db 1, "?" ;70
db 4, "Home" ;71
db 2, "Up" ;72
db 4, "PgUp" ;73
db 6, "AltMin" ;74
db 3, "Lft" ;75
db 3, "Ctr" ;76
db 3, "Rgt" ;77
db 6, "AltPls" ;78
db 3, "End" ;79
db 2, "Dn" ;80
db 4, "PgDn" ;81
db 3, "Ins" ;82
db 3, "Del" ;83
db 7, "ShiftF1" ;84
db 7, "ShiftF2" ;85
db 7, "ShiftF3" ;86
db 7, "ShiftF4" ;87
db 7, "ShiftF5" ;88
db 7, "ShiftF6" ;89
db 7, "ShiftF7" ;90
db 7, "ShiftF8" ;91
db 7, "ShiftF9" ;92
db 8, "ShiftF10" ;93
db 6, "CtrlF1" ;94
db 6, "CtrlF2" ;95
db 6, "CtrlF3" ;96
db 6, "CtrlF4" ;97
db 6, "CtrlF5" ;98
db 6, "CtrlF6" ;99
db 6, "CtrlF7" ;100
db 6, "CtrlF8" ;101
db 6, "CtrlF9" ;102
db 7, "CtrlF10" ;103
db 5, "AltF1" ;104
db 5, "AltF2" ;105
db 5, "AltF3" ;106
db 5, "AltF4" ;107
db 5, "AltF5" ;108
db 5, "AltF6" ;109
db 5, "AltF7" ;110
db 5, "AltF8" ;111
db 5, "AltF9" ;112
db 6, "AltF10" ;113
db 7, "CtrlPrt" ;114
db 7, "CtrlLft" ;115
db 7, "CtrlRgt" ;116
db 7, "CtrlEnd" ;117
db 8, "CtrlPgDn" ;118
db 8, "CtrlHome" ;119
db 4, "Alt1" ;120
db 4, "Alt2" ;121
db 4, "Alt3" ;122
db 4, "Alt4" ;123
db 4, "Alt5" ;124
db 4, "Alt6" ;125
db 4, "Alt7" ;126
db 4, "Alt8" ;127
db 4, "Alt9" ;128
db 4, "Alt0" ;129
db 4, "Alt-" ;130
db 4, "Alt=" ;131
db 8, "CtrlPgUp" ;132
db 1, "?" ;133
db 1, "?" ;134
db 1, "?" ;135
db 1, "?" ;136
db 1, "?" ;137
db 1, "?" ;138
db 1, "?" ;139
db 1, "?" ;140
db 6, "CtrlUp" ;141
db 7, "CtrlMin" ;142
db 7, "CtrlCtr" ;143
db 7, "CtrlPls" ;144
db 6, "CtrlDn" ;145
db 7, "CtrlIns" ;146
db 7, "CtrlDel" ;147
db 7, "CtrlTab" ;148
db 1, "?" ;149
db 1, "?" ;150
db 7, "AltHome" ;151
db 5, "AltUp" ;152
db 7, "AltPgUp" ;153
db 1, "?" ;154
db 6, "AltLft" ;155
db 6, "AltCtr" ;156
db 6, "AltRgt" ;157
db 1, "?" ;158
db 6, "AltEnd" ;159
db 5, "AltDn" ;160
db 7, "AltPgDn" ;161
db 6, "AltIns" ;162
db 6, "AltDel" ;163
db 1, "?" ;164
db 6, "AltTab" ;165
db 1, "?" ;166
db 1, "?" ;167
db 1, "?" ;168
db 1, "?" ;169
db 1, "?" ;170
db 1, "?" ;171
db 1, "?" ;172
db 1, "?" ;173
db 1, "?" ;174
db 1, "?" ;175
db 1, "?" ;176
db 5, "Ctrl=" ;177
db 5, "Ctrl'" ;178
db 5, "Ctrl`" ;179
db 5, "Ctrl," ;180
db 5, "Ctrl/" ;181
db 1, "?" ;182
db 1, "?" ;183
db 5, "Ctrl0" ;184
db 5, "Ctrl1" ;185
db 5, "Ctrl;" ;186
db 5, "Ctrl3" ;187
db 5, "Ctrl4" ;188
db 5, "Ctrl5" ;189
db 5, "Ctrl." ;190
db 5, "Ctrl7" ;191
db 5, "Ctrl8" ;192
db 5, "Ctrl9" ;193
db 1, "?" ;194
db 1, "?" ;195
db 1, "?" ;196
db 1, "?" ;197
db 1, "?" ;198
db 1, "?" ;199
db 1, "?" ;200
db 1, "?" ;201
db 1, "?" ;202
db 1, "?" ;203
db 1, "?" ;204
db 1, "?" ;205
db 1, "?" ;206
db 1, "?" ;207
db 1, "?" ;208
db 1, "?" ;209
db 1, "?" ;210
db 1, "?" ;211
db 1, "?" ;212
db 1, "?" ;213
db 1, "?" ;214
db 1, "?" ;215
db 1, "?" ;216
db 1, "?" ;217
db 1, "?" ;218
db 1, "?" ;219
db 1, "?" ;220
db 1, "?" ;221
db 1, "?" ;222
db 1, "?" ;223
db 1, "?" ;224
db 1, "?" ;225
db 1, "?" ;226
db 1, "?" ;227
db 1, "?" ;228
db 1, "?" ;229
db 1, "?" ;230
db 1, "?" ;231
db 1, "?" ;232
db 1, "?" ;233
db 1, "?" ;234
db 1, "?" ;235
db 1, "?" ;236
db 1, "?" ;237
db 1, "?" ;238
db 1, "?" ;239
db 1, "?" ;240
db 1, "?" ;241
db 1, "?" ;242
db 1, "?" ;243
db 1, "?" ;244
db 1, "?" ;245
db 1, "?" ;246
db 1, "?" ;247
db 1, "?" ;248
db 1, "?" ;249
db 1, "?" ;250
db 1, "?" ;251
db 1, "?" ;252
db 1, "?" ;253
db 1, "?" ;254
db 1, "?" ;255
db 0
;-------------------------------------------------- GetEscapeSequence
;
; function GetEscapeSequence(ch:char):StringPtr;
; {-Return a pointer to the text string}
GetEscapeSequence PROC NEAR
MOV BX,SP ;Set up stack frame
MOV DX,DS ;Save DS
XOR CX,CX
MOV CL,BYTE PTR SS:[BX+2] ;Get character to seek
LEA SI,Keys ;SI points to Keys
JCXZ Done ;Character #0? We're done
MOV AX,CS
MOV DS,AX ;DS:SI points to Keys
ASSUME DS:CODE
CLD ;Forward direction
XOR AX,AX ;Clear top half of length word
Next: LODSB ;Length byte into AL
ADD SI,AX ;Skip over string
LOOP Next ;Repeat for number of characters
Done: MOV DS,DX ;Restore DS
ASSUME DS:DATA
MOV DX,CS ;Pointer Segment is current CS
MOV AX,SI ;SI points to length byte of string
RET 2 ;Remove parameter from stack
GetEscapeSequence ENDP
CODE ENDS
END