home *** CD-ROM | disk | FTP | other *** search
-
- ;++++++++++++++++++++++++++++++++++++++++++++++
- ;
- ; WYLE KEYBOARD CODE CONVERSION
- ; WITH LOWER CASE
- ;
- ; WYLECON2.LIB - Version 2.0 - 11 OCT 77
- ;
- ; J.W. SHOOK, P.O. BOX 185, ROCKY POINT, NY 11778
- ;
- ;++++++++++++++++++++++++++++++++++++++++++++++
-
-
- ; Convert codes from Wyle Computer keyboard
- ; to ASCII codes by use of a lookup table
- ; and then convert alphabetic characters
- ; to lower case if shift lock is off and
- ; shift key not depressed.
-
-
- WYLECON:
-
- PUSH B ; Save register contents
- PUSH H
- MOV C,A ; Save bit 7 (shift key)
- MVI B,TABLEN+1 ; Set table length
- LXI H,TABLST-1 ; Conversion table start
- WYLEC1: DCR B ; Decrement table entry count
- JZ WYLEC2 ; Done?
- INX H ; Move pointer to test value
- CMP M ; Compare character to entry
- INX H ; Move pointer to replacement char
- JNZ WYLEC1 ; Same?
- MOV A,M
- WYLEC2: ANI 7FH ; Delete shift bit
- MOV B,A ; Save converted char
- CPI 'A' ; Test for alpha char
- JC WYLEC3 ; Non alpha?
- CPI 'Z'+1 ;
- JNC WYLEC3 ; Non alpha?
- INR C ; Test shift bit
- DCR C
- JM WYLEC3 ; Shift key pressed?
- IN SENSW ; Test shift lock switch
- ANI SHFTLK ; Mask bit
- MOV A,B ; Restore char to A
- JNZ WYLEC3 ; Switch on?
- ADI 20H ; Convert to lower case
- WYLEC3: POP H ; Restore registers
- POP B
- RET
-
-
- TABLST: DB 0B7H,21H
- DB 03DH,59H
- DB 023H,55H
- DB 05CH,49H
- DB 05EH,4FH
- DB 01FH,3DH
- DB 09FH,22H
- DB 00CH,23H
- DB 08EH,0AH
- DB 00EH,7FH
- DB 08FH,7BH
- DB 00FH,1BH
- DB 09AH,7DH
- DB 01DH,15H
- DB 09EH,7CH
- DB 01EH,16H
- DB 09BH,10H
- DB 01BH,13H
- DB 00BH,03H
- DB 089H,5EH
- DB 021H,08H
- DB 0A1H,5CH
- TABLND:
-
- TABLEN: EQU (TABLND-TABLST)/2 ; Number of entries
-