home *** CD-ROM | disk | FTP | other *** search
/ Play and Learn 2 / 19941.ZIP / 19941 / SPANISH / ZIPFILES / ACCENT.ZIP / ACCENT < prev   
Encoding:
Text File  |  1991-04-12  |  1.5 KB  |  67 lines

  1. ;ACCENT written by Doug Cox, April 11,1991, & assembled with A86
  2.   JMP SHORT INSTALL
  3. CHARS:
  4.   DW 01E00,0A0    ;á
  5.   DW 01200,082    ;é
  6.   DW 01700,0A1    ;í
  7.   DW 01800,0A2    ;ó
  8.   DW 01600,0A3    ;ú
  9.   DW 03100,0A4    ;ñ
  10.   DW 07800,0AD    ;¡
  11.   DW 035F0,0A8    ;¿
  12. INT9:
  13.   PUSHF
  14.   DB 09A        ;machine code for CALL FAR IMMEDIATE
  15. INT9OFF DW ?
  16. INT9SEG DW ?
  17.   PUSH DS,DI
  18.   MOV DI,040        ;bios data segment
  19.   MOV DS,DI
  20.   TEST B[018],2     ;bit 1
  21.   JNZ >L4        ;if right alt key not pressed
  22.   PUSH ES,SI,CX
  23.   MOV ES,DI
  24.   MOV DI,[01C]        ;kbd buffer tail
  25.   CMP DI,[01A]        ;kbd buffer head
  26.   JE >L3        ;if buffer is full
  27.   DEC DI,2        ;back to last char entered
  28.   CMP DI,01E        ;beginning of kbd buffer
  29.   IF C MOV DI,03C    ;end of kbd buffer
  30.   MOV SI,CS
  31.   MOV DS,SI
  32.   MOV SI,OFFSET CHARS
  33.   MOV CX,8
  34. L1:
  35.   CMPSW         ;cmp es:[di] with ds:[si] & inc both twice
  36.   JE >L2
  37.   DEC DI,2        ;keep it pointing at char
  38.   INC SI,2        ;jump past replacement
  39.   LOOP L1
  40.   JMP SHORT >L3     ;if no match
  41. L2:
  42.   DEC DI,2
  43.   MOVSW         ;replace char in keyboard buffer
  44. L3:
  45.   POP CX,SI,ES
  46. L4:
  47.   POP DI,DS
  48.   IRET
  49. ;*****************
  50. INSTALL:
  51.   MOV AX,03509        ;function to get interrupt vector for INT 9
  52.   INT 021
  53.   MOV INT9OFF,BX
  54.   MOV INT9SEG,ES
  55.   MOV AX,02509        ;function to re-vector INT 9
  56.   MOV DX,OFFSET INT9
  57.   INT 021
  58.   MOV AH,9        ;function to write string
  59.   MOV DX,OFFSET MSG
  60.   INT 021
  61.   MOV DX,OFFSET INSTALL
  62.   INT 027        ;terminate & stay resident (TSR)
  63.  
  64. MSG DB 'Press RIGHT ALT KEY and LETTER KEY to get á, é, í, ó, ú, ñ, ¿, or ¡'
  65.     DB 0D,0A,'$'
  66.  
  67.