Category : Word Perfect
Archive   : RUSIANWP.ZIP
Filename : RUSSKEY.ASM

 
Output of file : RUSSKEY.ASM contained in archive : RUSIANWP.ZIP

cseg segment
assume cs:cseg,ds:cseg
zero:
org 100h
entry:
jmp start
trtab equ $
;THE SYMBOLS LOOK MEANINGLESS UNLESS YOU HAVE LOADED THE ega FONT
;RUSSIAN.EGA
db 001h,01Eh,'ò' ;Umlaut A
db 000h,01Eh,'ó' ;umlaut a
db 00Fh,018h,'ô' ;umlaut O
db 000h,018h,'õ' ;umlaut o
db 015h,016h,'ö' ;umlaut U
db 000h,016h,'÷' ;umlaut u
db 01Ah,02Ch,'ø' ;Cap Eszet
db 000h,02Ch,'ù' ;eszet
db 02Dh,00Ch,'í' ;-
db 05Fh,00Ch,'' ;_
db 03Dh,00Dh,'©' ;=
db 02Bh,00Dh,'‰' ;+
db 07Ah,02Ch,'§' ;z
db 05Ah,02Ch,'‡' ;Z
db 078h,02Dh,'å' ;x
db 058h,02Dh,'•' ;X
db 063h,02Eh,'æ' ;c
db 043h,02Eh,'–' ;C
db 076h,02Fh,'¢' ;v
db 056h,02Fh,'‚' ;V
db 062h,030h,'¡' ;b
db 042h,030h,'' ;B
db 06Eh,031h,'­' ;n
db 04Eh,031h,'' ;N
db 06Dh,032h,'¬' ;m
db 04Dh,032h,'Œ' ;M
db 060h,029h,'ê' ;`
db 07Eh,029h,'š' ;~
db 071h,010h,'é' ;q
db 051h,010h,'™' ;Q
db 077h,011h,'è' ;w
db 057h,011h,'˜' ;W
db 065h,012h,'¥' ;e
db 045h,012h,'…' ;E
db 072h,013h,'à' ;r
db 052h,013h,'' ;R
db 074h,014h,'â' ;t
db 054h,014h,'’' ;T
db 079h,015h,'ë' ;y
db 059h,015h,'›' ;Y
db 075h,016h,'ã' ;u
db 055h,016h,'“' ;U
db 069h,017h,'¨' ;i
db 049h,017h,'ˆ' ;I
db 06Fh,018h,'®' ;o
db 04Fh,018h,'Ž' ;O
db 070h,019h,'¯' ;p
db 050h,019h,'' ;P
db 05Bh,01Ah,'ï' ;[
db 07Bh,01Ah,'Ÿ' ;{
db 05Dh,01Bh,'î' ;]
db 07Dh,01Bh,'ž' ;}
db 05Ch,02Bh,'ñ' ;\
db 07Ch,02Bh,'ð' ;|
db 061h,01Eh,' ' ;a
db 041h,01Eh,'€' ;A
db 073h,01Fh,'á' ;s
db 053h,01Fh,'‘' ;S
db 064h,020h,'¤' ;d
db 044h,020h,'„' ;D
db 066h,021h,'ä' ;f
db 046h,021h,'”' ;F
db 067h,022h,'£' ;g
db 047h,022h,'ƒ' ;G
db 068h,023h,'¦' ;h
db 048h,023h,'†' ;H
db 06Ah,024h,'ç' ;j
db 04Ah,024h,'—' ;J
db 06Bh,025h,'ª' ;k
db 04Bh,025h,'Š' ;K
db 06Ch,026h,'«' ;l
db 04Ch,026h,'‹' ;L
db 03Bh,027h,'ì' ;;
db 03Ah,027h,'œ' ;:
trtabl equ ($-trtab)/3

inah db ? ;ah we called with

newi16:
mov cs:inah,ah
pushf
db 09ah ;far call
oldi16 dw 0,0
pushf
push bx
mov bl,cs:inah
cmp bl,2
jb yes
cmp bl,10h
jb no
cmp bl,12h
jae no
yes:
push ds
xor bx,bx
mov ds,bx
test byte ptr ds:[417h],10h
pop ds
jz no ;only when scroll lock is lit
push cx
push ds
push cs
pop ds
mov bx,offset trtab
mov cx,trtabl
scan: cmp ax,ds:[bx]
jnz scann
mov al,ds:[bx+2]
jmp short scanx
scann: add bx,3
loop scan
scanx:
pop ds
pop cx
no:
pop bx
popf
db 0cah ;retf 2
dw 2
start: xor ax,ax
mov ds,ax
mov ax,offset newi16
xchg ax,ds:[16h*4]
mov cs:oldi16,ax
mov ax,cs
xchg ax,ds:[16h*4+2]
mov cs:oldi16+2,ax
push cs
pop ds
mov dx,offset msg
mov ah,9
int 21h
mov dx,(start-zero+15)/16
mov ax,3100h
int 21h
msg db 'Russian keyboard driver loaded. Hot key is Scroll Lock'
db 13,10,'$'

cseg ends
end entry


  3 Responses to “Category : Word Perfect
Archive   : RUSIANWP.ZIP
Filename : RUSSKEY.ASM

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/