home *** CD-ROM | disk | FTP | other *** search
- ;ACCENT written by Doug Cox, April 11,1991, & assembled with A86
- JMP SHORT INSTALL
- CHARS:
- DW 01E00,0A0 ;á
- DW 01200,082 ;é
- DW 01700,0A1 ;í
- DW 01800,0A2 ;ó
- DW 01600,0A3 ;ú
- DW 03100,0A4 ;ñ
- DW 07800,0AD ;¡
- DW 035F0,0A8 ;¿
- INT9:
- PUSHF
- DB 09A ;machine code for CALL FAR IMMEDIATE
- INT9OFF DW ?
- INT9SEG DW ?
- PUSH DS,DI
- MOV DI,040 ;bios data segment
- MOV DS,DI
- TEST B[018],2 ;bit 1
- JNZ >L4 ;if right alt key not pressed
- PUSH ES,SI,CX
- MOV ES,DI
- MOV DI,[01C] ;kbd buffer tail
- CMP DI,[01A] ;kbd buffer head
- JE >L3 ;if buffer is full
- DEC DI,2 ;back to last char entered
- CMP DI,01E ;beginning of kbd buffer
- IF C MOV DI,03C ;end of kbd buffer
- MOV SI,CS
- MOV DS,SI
- MOV SI,OFFSET CHARS
- MOV CX,8
- L1:
- CMPSW ;cmp es:[di] with ds:[si] & inc both twice
- JE >L2
- DEC DI,2 ;keep it pointing at char
- INC SI,2 ;jump past replacement
- LOOP L1
- JMP SHORT >L3 ;if no match
- L2:
- DEC DI,2
- MOVSW ;replace char in keyboard buffer
- L3:
- POP CX,SI,ES
- L4:
- POP DI,DS
- IRET
- ;*****************
- INSTALL:
- MOV AX,03509 ;function to get interrupt vector for INT 9
- INT 021
- MOV INT9OFF,BX
- MOV INT9SEG,ES
- MOV AX,02509 ;function to re-vector INT 9
- MOV DX,OFFSET INT9
- INT 021
- MOV AH,9 ;function to write string
- MOV DX,OFFSET MSG
- INT 021
- MOV DX,OFFSET INSTALL
- INT 027 ;terminate & stay resident (TSR)
-
- MSG DB 'Press RIGHT ALT KEY and LETTER KEY to get á, é, í, ó, ú, ñ, ¿, or ¡'
- DB 0D,0A,'$'
-
-