|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Июн 6, 2003 21:16:36 Мне необходимо оформить ввод строки рускими буквами... Что я придумал... 1. Написал переменную содержащую все буквы русского алфавита (если запустить кейрус то выводиться это безобразие вполне коректно) 2. В тд посмотрел аски код каждой буквы и записал на листик 80) 3. при считывании скан кода соответствующей клавиши выдаеться на экан соответствующий же аски код "с листика". 4. Естественно ничего не работает... День чесно штудировал код но ошибку не нашол. Помогите! - очень надо! Я этот кусок в курсовой вставить хочу... а его в понедельник здавать... вместо й при скан коде 10 и выводимом мной кодом 0a9h высвечивает @9 вместо ц выводимый код 0e6h высвечивает почемуто d6... и т.д. З.Ы. статью по русификации видео адаптеров на вашем сайте прочитал но мало что понял и посему применить не смог... четвертую ночь не сплю!!! (почти) Выручайте. С надеждой на помощь и покровительство замученым жизнью студентам. Ворон. Злополучный код: dosseg .386 stacks segment stack 'STACK' use16 db 100h dup (?) stacks ends codes segment 'code' use16 assume cs:codes begin: mov bp,offset PSP mov [bp],es mov bx,stacks add bx,(100h+15)/16 mov ax,[bp] sub bx,ax mov ah,4ah int 21h mov ah,00h mov al,03h int 10h call DrawHelp call DrawMain mov ax,seg pr mov ds,ax mov ah,35h mov al,09h int 21h mov bp,offset oldkeyoff mov ds:[bp],bx mov bp,offset oldkeyseg mov ds:[bp],es mov ah,25h mov al,09h mov dx,offset key_handler int 21h loopit: mov ax,datas mov ds,ax mov al,01h mov bp,offset exstat cmp ds:[bp],al je endit mov al,01h mov bp,offset wrstat cmp ds:[bp],al je wrayt jmp loopit wrayt: call wrstr jmp loopit endit: mov bp,offset oldkeyseg mov ax,ds:[bp] mov ds,ax mov bp,offset oldkeyoff mov dx,ds:[bp] mov ah,25h mov al,09h int 21h mov ah,4ch int 21h codes ends pr segment 'pr' use16 assume cs:pr DrawHelp proc far push es push di push ax push cx push 0b800h pop es push 00h pop di mov ax,seg datas mov ds,ax mov ax,offset hstr mov si,ax mov cx,hstrl mov al,dark h1: movsb stosb dec cx jne h1 mov ax,offset text mov si,ax mov cx,textl mov al,dark ht: movsb stosb dec cx jne ht add di,0a0h sub di,hstrl sub di,hstrl sub di,textl sub di,textl mov ax,offset hdel mov si,ax mov cx,hdell mov al,dark h2: movsb stosb dec cx jne h2 mov ax,offset del mov si,ax mov cx,dell mov al,dark hd: movsb stosb dec cx jne hd pop cx pop ax pop di pop es ret DrawHelp endp DrawMain proc far push es push di push ax push cx push ds push 0b800h pop es push 0540h pop di mov ax,seg datas mov ds,ax mov ax,offset op1 mov si,ax mov cx,op1l mov al,dark cmp ds:stat,01h jne dark1 mov al,light dark1: o1: movsb stosb dec cx jne o1 add di,0a0h sub di,op1l sub di,op1l mov ax,seg datas mov ds,ax mov ax,offset op2 mov si,ax mov al,dark mov cx,op2l cmp ds:stat,02h jne dark2 mov al,light dark2: o2: movsb stosb dec cx jne o2 add di,0a0h sub di,op2l sub di,op2l mov ax,seg datas mov ds,ax mov ax,offset op3 mov si,ax mov cx,op3l mov al,dark cmp ds:stat,03h jne dark3 mov al,light dark3: o3: movsb stosb dec cx jne o3 add di,0a0h sub di,op3l sub di,op3l mov ax,seg datas mov ds,ax mov ax,offset op4 mov si,ax mov al,dark mov cx,op4l cmp ds:stat,04h jne dark4 mov al,light dark4: o4: movsb stosb dec cx jne o4 pop ds pop cx pop ax pop di pop es ret DrawMain endp key_handler proc far push es push di push ax push ds push ax push bx push cs pop ds mov ax,seg datas mov ds,ax mov al,01h mov bp,offset wrstat mov ah,ds:[bp] cmp al,ah je rukb in al,60h cmp al,48h je uparrow cmp al,50h je downarrow cmp al,1ch je enterkey cmp al,01h je exitkey jmp over rukb: push 0b800h pop es push 0b00h pop di in al,60h cmp al,1ch jne gou mov ax,seg datas mov ds,ax mov al,00h mov bp,offset wrstat mov ds:[bp],al gou: cmp al,10h jne next0 add di,hmessl add di,hmessl mov al,"?" mov es:[di],al next0: cmp al,11h jne next1 add di,hmessl add di,hmessl mov al,0e6h mov es:[di],al next1: cmp al,12h jne next2 add di,hmessl add di,hmessl mov al,"ц" mov es:[di],al next2: cmp al,13h jne next3 add di,hmessl add di,hmessl mov al,"у" mov es:[di],al next3: cmp al,14h jne next4 add di,hmessl add di,hmessl mov al,"к" mov es:[di],al next4: push ax shr al,4 add al,30h daa mov es:[di],al inc di mov bh,00000010b mov es:[di],bh inc di pop ax and al,0fh add al,30h daa mov es:[di],al inc di mov bh,00000010b mov es:[di],bh inc di jmp over enterkey: cmp ds:stat,01h je writestr cmp ds:stat,04h je exitkey jmp over writestr: mov ax,datas mov ds,ax mov al,01h mov bp,offset wrstat mov ds:[bp],al jmp over exitkey: mov ax,datas mov ds,ax mov al,01h mov bp,offset exstat mov ds:[bp],al jmp over uparrow: cmp ds:stat,01h jne up2 mov ds:stat,04h call DrawMain jmp over up2: cmp ds:stat,02h jne up3 mov ds:stat,01h call DrawMain jmp over up3: cmp ds:stat,03h jne up4 mov ds:stat,02h call DrawMain jmp over up4: cmp ds:stat,04h jne up1 mov ds:stat,03h call DrawMain jmp over up1: jmp over downarrow: cmp ds:stat,01h jne down2 mov ds:stat,02h call DrawMain jmp over down2: cmp ds:stat,02h jne down3 mov ds:stat,03h call DrawMain jmp over down3: cmp ds:stat,03h jne down4 mov ds:stat,04h call DrawMain jmp over down4: cmp ds:stat,04h jne down1 mov ds:stat,01h call DrawMain jmp over down1: jmp over over: pop bx pop ax pop ds pop ax pop di pop es db 0eah; oldkeyoff dw ? oldkeyseg dw ? iret key_handler endp wrstr proc far push es push di push ax push cx push ds push 0b800h pop es push 0a00h pop di mov ax,seg datas mov ds,ax mov ax,offset hmess mov si,ax mov cx,hmessl mov al,dark hm: movsb stosb dec cx jne hm looper: mov al,00h mov bp,offset wrstat cmp ds:[bp],al je last jmp looper last: mov ax,seg datas mov ds,ax mov al,00h mov bp,offset wrstat mov ds:[bp],al call DrawHelp pop ds pop cx pop ax pop di pop es ret wrstr endp pr ends datas segment 'DATA' use16 op1 db "Ввести строку" op1l equ $-op1 op2 db "Определить задержку" op2l equ $-op2 op3 db "Запустить строку" op3l equ $-op3 op4 db "Віход" op4l equ $-op4 hstr db "Стр. : " hstrl equ $-hstr hdel db "Задержка : " hdell equ $-hdel hmess db "Введите строку: " hmessl equ $-hmess text db 60h dup (0) textl equ $-text delbcd dw 1234h del db "1234" dell equ $-del light equ 00001010b dark equ 00000010b stat db 01h exstat db 00h wrstat db 00h nl dw 00h PSP db (?) datas ends end |
|
|
Дата: Июн 6, 2003 22:49:48 Я не очень понял, в чем твоя проблема ;) Если хочешь, глянь мой русификатор: http://www.vingrad.ru/cgi-bin/soft/show.pl?action=show_list&categorie_ id=29 |
|
|
Дата: Июн 7, 2003 09:27:28 1. Твой руссификатор посмотреть не получилось - его там просто нет... т.е. ссылка на vovarus 1.0 (http://www.vingrad.ru/cgi-bin/soft/download.pl?id_pr=132&link=1&type= Vovarus.zip) ведет в никуда. 2. Моя проблема заключаеться в том что я не могу понять почему оно выводит на экран вместо русской буквы нечто маловразумительное... С уважением. Ворон. |
|
|
Дата: Июн 7, 2003 09:45:06 Какой же я все таки ... Все что мне надо было что бы все это заработало - выспаться!!! и вот все работает. Извините за глупый вопрос - мне за него стыдно... |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.047 |