home *** CD-ROM | disk | FTP | other *** search
- ASEG
- NAME ('TRANSLATE')
- .Z80
- ; ASSEMBLE USING M80
- TITLE KEYBOARD TRANSLATION FOR BIG BOARD
-
- ; The code changes included in TABLE are for use with WORDMASTER and a
- ; HONEYWELL keyboard model 104SD30.
-
- ORG 0100H ;START WHERE CP/M LIKES TO
- NOP
- NOP
- NOP
- START: LD BC,0100H ;MOVE 256 BYTES (1 PAGE)
- LD DE,0FE00H ;MOVE TRANSLATE TABLE TO $FE00 (NOT USED BY MON)
- LD HL,TABLE ;MOVE THE 10 BYTE TRANSLATE PROG.
- LDIR ;MOVE IT
- LD BC,000AH ;MOVE THE TRANSLATE TABLE
- LD DE,0FD00H ;MOVE IT TO $FD00
- LD HL,PROG ;POINT TO TRANSLATE PROG
- LDIR ;MOVE IT
- LD BC,0003H ;MOVE 3 BYTE ZAP THAT OVERLAYS MONITOR
- LD DE,0F468H ;OVERLAY ADDR $F468 'A CALL TO INDEX'
- LD HL,ZAP ;POINT TO ZAP
- LDIR ;MOVE IT WITH OVERKILL
- EXIT: JP 0 ;RETURN TO CP/M
- ZAP: CALL PROG1 ;CALL THE TRANSLATE ROUTINE AT $FD00
- PROG1 EQU 0FD00H
- PROG: PUSH HL ;SAVE
- LD H,0FEH ;LOAD PAGE ADDRESS OF TABLE
- LD L,C ;LOAD THE CHAR TO TRANSLATE FROM KEYBOARD
- LD C,(HL) ;DO THE TRANSLATE
- POP HL ;RESTORE
- INDEX EQU 0F474H ;CALL INDEX ROUTINE AT $F474
- CALL INDEX ;CALL IT BECAUSE WE ZAPPED THIS INSTRUCTION
- RET ;NOW BACK TO MONITOR AND CONTINUE KEYBOARD I/O
- TABLE: DEFB 000H
- DEFB 001H
- DEFB 002H
- DEFB 003H
- DEFB 004H
- DEFB 005H
- DEFB 006H
- DEFB 007H
- DEFB 008H
- DEFB 009H
- DEFB 00AH
- DEFB 00BH
- DEFB 00CH
- DEFB 00DH
- DEFB 00EH
- DEFB 00FH
- DEFB 010H
- DEFB 011H
- DEFB 012H
- DEFB 013H
- DEFB 014H
- DEFB 015H
- DEFB 016H
- DEFB 017H
- DEFB 018H
- DEFB 019H
- DEFB 01AH
- DEFB 01BH
- DEFB 01CH
- DEFB 01DH
- DEFB 01EH
- DEFB 01FH
- DEFB 020H
- DEFB 021H
- DEFB 022H
- DEFB 023H
- DEFB 024H
- DEFB 025H
- DEFB 026H
- DEFB 027H
- DEFB 028H
- DEFB 029H
- DEFB 02AH
- DEFB 02BH
- DEFB 02CH
- DEFB 02DH
- DEFB 02EH
- DEFB 02FH
- DEFB 030H
- DEFB 031H
- DEFB 032H
- DEFB 033H
- DEFB 034H
- DEFB 035H
- DEFB 036H
- DEFB 037H
- DEFB 038H
- DEFB 039H
- DEFB 03AH
- DEFB 03BH
- DEFB 03CH
- DEFB 03DH
- DEFB 03EH
- DEFB 03FH
- DEFB 040H
- DEFB 041H
- DEFB 042H
- DEFB 043H
- DEFB 044H
- DEFB 045H
- DEFB 046H
- DEFB 047H
- DEFB 048H
- DEFB 049H
- DEFB 04AH
- DEFB 04BH
- DEFB 04CH
- DEFB 04DH
- DEFB 04EH
- DEFB 04FH
- DEFB 050H
- DEFB 051H
- DEFB 052H
- DEFB 053H
- DEFB 054H
- DEFB 055H
- DEFB 056H
- DEFB 057H
- DEFB 058H
- DEFB 059H
- DEFB 05AH
- DEFB 05BH
- DEFB 05CH
- DEFB 05DH
- DEFB 05EH
- DEFB 05FH
- DEFB 060H
- DEFB 061H
- DEFB 062H
- DEFB 063H
- DEFB 064H
- DEFB 065H
- DEFB 066H
- DEFB 067H
- DEFB 068H
- DEFB 069H
- DEFB 06AH
- DEFB 06BH
- DEFB 06CH
- DEFB 06DH
- DEFB 06EH
- DEFB 06FH
- DEFB 070H
- DEFB 071H
- DEFB 072H
- DEFB 073H
- DEFB 074H
- DEFB 075H
- DEFB 076H
- DEFB 077H
- DEFB 078H
- DEFB 079H
- DEFB 07AH
- DEFB 07BH
- DEFB 07CH
- DEFB 07DH
- DEFB 07EH
- DEFB 07FH
- DEFB 00FH ;INSERT TOGGLE ON/OFF
- DEFB 005H ;CURSOR UP LINE
- DEFB 018H ;CURSOR DOWN LINE
- DEFB 004H ;CURSOR RIGHT CHARACTER
- DEFB 013H ;CURSOR LEFT CHARACTER
- DEFB 085H
- DEFB 086H
- DEFB 087H
- DEFB 01EH ;CUSOR TOP/BOTTOM OF SCREEN
- DEFB 089H
- DEFB 002H ;CURSOR LEFT/RIGHT OF LINE
- DEFB 00BH ;DELETE LINE RIGHT
- DEFB 014H ;INSERT CR LEAVE CURSOR BEFORE IT
- DEFB 019H ;DELETE LINE
- DEFB 003H ;FILE UP ONE SCREENFUL
- DEFB 012H ;FILE DOWN ONE SCREENFUL
- DEFB 07FH ;DELETE CHAR LEFT
- DEFB 091H
- DEFB 092H
- DEFB 093H
- DEFB 094H
- DEFB 095H
- DEFB 096H
- DEFB 097H
- DEFB 098H
- DEFB 01AH ;FILE UP ONE LINE
- DEFB 017H ;FILE DOWN ONE LINE
- DEFB 09BH
- DEFB 09CH
- DEFB 09DH
- DEFB 09EH
- DEFB 09FH
- DEFB 0A0H
- DEFB 0A1H
- DEFB 0A2H
- DEFB 0A3H
- DEFB 0A4H
- DEFB 0A5H
- DEFB 0A6H
- DEFB 0A7H
- DEFB 0A8H
- DEFB 0A9H
- DEFB 0AAH
- DEFB 0ABH
- DEFB 02EH ;CHANGES NUMERIC PAD , INTO .
- DEFB 0ADH
- DEFB 0AEH
- DEFB 0AFH
- DEFB 0B0H
- DEFB 0B1H
- DEFB 0B2H
- DEFB 0B3H
- DEFB 0B4H
- DEFB 0B5H
- DEFB 0B6H
- DEFB 0B7H
- DEFB 0B8H
- DEFB 0B9H
- DEFB 0BAH
- DEFB 0BBH
- DEFB 0BCH
- DEFB 0BDH
- DEFB 0BEH
- DEFB 0BFH
- DEFB 0C0H
- DEFB 0C1H
- DEFB 0C2H
- DEFB 0C3H
- DEFB 0C4H
- DEFB 0C5H
- DEFB 0C6H
- DEFB 0C7H
- DEFB 0C8H
- DEFB 0C9H
- DEFB 0CAH
- DEFB 0CBH
- DEFB 0CCH
- DEFB 0CDH
- DEFB 0CEH
- DEFB 0CFH
- DEFB 0D0H
- DEFB 0D1H
- DEFB 0D2H
- DEFB 0D3H
- DEFB 0D4H
- DEFB 0D5H
- DEFB 0D6H
- DEFB 0D7H
- DEFB 0D8H
- DEFB 0D9H
- DEFB 0DAH
- DEFB 0DBH
- DEFB 0DCH
- DEFB 0DDH
- DEFB 0DEH
- DEFB 0DFH
- DEFB 0E0H
- DEFB 0E1H
- DEFB 003H ;^C..WARM BOOT
- DEFB 0E3H
- DEFB 0E4H
- DEFB 0E5H
- DEFB 0E6H
- DEFB 0E7H
- DEFB 0E8H
- DEFB 0E9H
- DEFB 0EAH
- DEFB 0EBH
- DEFB 0ECH
- DEFB 0EDH
- DEFB 000H ;DO NEXT CHAR 4 TIMES
- DEFB 0EFH
- DEFB 0F0H
- DEFB 0F1H
- DEFB 0F2H
- DEFB 0F3H
- DEFB 0F4H
- DEFB 0F5H
- DEFB 0F6H
- DEFB 0F7H
- DEFB 0F8H
- DEFB 0F9H
- DEFB 0FAH
- DEFB 0FBH
- DEFB 0FCH
- DEFB 0FDH
- DEFB 0FEH
- DEFB 0FFH
- END
-