forked from KolibriOS/kolibrios
Small corrections
git-svn-id: svn://kolibrios.org@3683 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
97b8aba9e2
commit
ced1aca361
@ -1,26 +1,25 @@
|
|||||||
|
|
||||||
|
use32 ; âà á«ïâ®à, ¨á¯®«ì§ãî騩 32 à §àï¤ëå ª®¬ ¤ë
|
||||||
|
org 0x0 ; ¡ §®¢ë© ¤à¥á ª®¤ , ¢á¥£¤ 0x0
|
||||||
|
db 'MENUET01' ; ¨¤¥â¨ä¨ª â®à ¨á¯®«ï¥¬®£® ä ©« (8 ¡ ©â)
|
||||||
|
dd 0x1 ; ¢¥àá¨ï ä®à¬ â § £®«®¢ª ¨á¯®«ï¥¬®£® ä ©«
|
||||||
|
dd start ; ¤à¥á, ª®â®àë© á¨á⥬ ¯¥à¥¤ ñâ ã¯à ¢«¥¨¥
|
||||||
|
; ¯®á«¥ § £à㧪¨ ¯à¨«®¦¥¨ï ¢ ¯ ¬ïâì
|
||||||
|
dd i_end ; à §¬¥à ¯à¨«®¦¥¨ï
|
||||||
|
dd mem ; Ž¡ê¥¬ ¨á¯®«ì§ã¥¬®© ¯ ¬ïâ¨, ¤«ï á⥪ ®â¢¥¤¥¬ 0å100 ¡ ©â ¨ ¢ë஢¨¬ £à¨æã 4 ¡ ©â
|
||||||
|
dd mem ; à ᯮ«®¦¨¬ ¯®§¨æ¨î á⥪ ¢ ®¡« á⨠¯ ¬ïâ¨, áà §ã § ⥫®¬ ¯à®£à ¬¬ë. ‚¥àè¨ á⥪ ¢ ¤¨ ¯ §®¥ ¯ ¬ïâ¨, 㪠§ ®¬ ¢ëè¥
|
||||||
|
dd 0x0 ; 㪠§ ⥫ì áâபã á ¯ à ¬¥âà ¬¨.
|
||||||
|
dd 0;pathprog ;¯ãâì ¨ ¨¬ï ¯à®£¨
|
||||||
|
|
||||||
include "../../macros.inc"
|
include "../../macros.inc"
|
||||||
include "../../proc32.inc"
|
include "../../proc32.inc"
|
||||||
|
include "API.inc"
|
||||||
include "../../dll.inc"
|
include "../../dll.inc"
|
||||||
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
|
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
|
||||||
include '../../develop/libraries/box_lib/load_lib.mac'
|
include '../../develop/libraries/box_lib/load_lib.mac'
|
||||||
|
|
||||||
include "API.inc"
|
|
||||||
|
|
||||||
use32 ; транслятор, использующий 32 разрядных команды
|
|
||||||
org 0x0 ; базовый адрес кода, всегда 0x0
|
|
||||||
db 'MENUET01' ; идентификатор исполняемого файла (8 байт)
|
|
||||||
dd 0x1 ; версия формата заголовка исполняемого файла
|
|
||||||
dd start ; адрес, на который система передаёт управление
|
|
||||||
; после загрузки приложения в память
|
|
||||||
dd i_end ; размер приложения
|
|
||||||
dd mem ; Объем используемой памяти, для стека отведем 0х100 байт и выровним на грницу 4 байта
|
|
||||||
dd mem ; расположим позицию стека в области памяти, сразу за телом программы. Вершина стека в диапазоне памяти, указанном выше
|
|
||||||
dd 0x0 ; указатель на строку с параметрами.
|
|
||||||
dd 0;pathprog ;путь и имя проги
|
|
||||||
|
|
||||||
|
|
||||||
start:
|
start:
|
||||||
mcall 68,11 ;инициализируем кучу
|
mcall 68,11 ;¨¨æ¨ «¨§¨à㥬 ªãçã
|
||||||
test eax,eax
|
test eax,eax
|
||||||
jz Win1.Exit
|
jz Win1.Exit
|
||||||
stdcall dll.Load, @IMPORT
|
stdcall dll.Load, @IMPORT
|
||||||
@ -40,8 +39,8 @@ start:
|
|||||||
; test al,al
|
; test al,al
|
||||||
; jne @b
|
; jne @b
|
||||||
|
|
||||||
;GetFileInfo fStruc,pathprog,fInfo ;проверка на наличие файла
|
;GetFileInfo fStruc,pathprog,fInfo ;¯à®¢¥àª «¨ç¨¥ ä ©«
|
||||||
;test eax,eax ;заодно и получу размер файла
|
;test eax,eax ;§ ®¤® ¨ ¯®«ãçã à §¬¥à ä ©«
|
||||||
;je WordFileOK
|
;je WordFileOK
|
||||||
|
|
||||||
;stdcall [mb_create],msgNotFound,mbThread
|
;stdcall [mb_create],msgNotFound,mbThread
|
||||||
@ -51,7 +50,7 @@ start:
|
|||||||
; stdcall mem.Alloc,dword [fInfo+32]
|
; stdcall mem.Alloc,dword [fInfo+32]
|
||||||
; mov ebx,dword [fInfo+32]
|
; mov ebx,dword [fInfo+32]
|
||||||
; mov [filBuffer],eax
|
; mov [filBuffer],eax
|
||||||
; add dword[fInfo+32],eax ;здесь хранится указатель на конец буфера
|
; add dword[fInfo+32],eax ;§¤¥áì åà ¨âáï 㪠§ â¥«ì ª®¥æ ¡ãä¥à
|
||||||
; ReadFile fStruc,pathprog,ebx,eax,0
|
; ReadFile fStruc,pathprog,ebx,eax,0
|
||||||
; test eax,eax
|
; test eax,eax
|
||||||
; jz Win1.Redraw
|
; jz Win1.Redraw
|
||||||
@ -71,7 +70,7 @@ Win1.Redraw:
|
|||||||
mov ecx,(548*10000h+200)
|
mov ecx,(548*10000h+200)
|
||||||
mov edx,73FFFFFFh
|
mov edx,73FFFFFFh
|
||||||
mov edi,Win1.Caption
|
mov edi,Win1.Caption
|
||||||
int 40h ;окно с прозрачным фонoм
|
int 40h ;®ª® á ¯à®§à çë¬ ä®o¬
|
||||||
|
|
||||||
mcall 9,ThreadInfo,-1
|
mcall 9,ThreadInfo,-1
|
||||||
|
|
||||||
@ -81,9 +80,9 @@ Win1.Redraw:
|
|||||||
mov ecx,[ThreadInfo+42h]
|
mov ecx,[ThreadInfo+42h]
|
||||||
inc ecx
|
inc ecx
|
||||||
mov edx,clWhite
|
mov edx,clWhite
|
||||||
int 40h ;а теперь не прозрачным:)
|
int 40h ; ⥯¥àì ¥ ¯à®§à çë¬:)
|
||||||
|
|
||||||
call Perevod ; в перерисовке сразу переводим введённое слово
|
call Perevod ; ¢ ¯¥à¥à¨á®¢ª¥ áà §ã ¯¥à¥¢®¤¨¬ ¢¢¥¤ñ®¥ á«®¢®
|
||||||
call NextPerev
|
call NextPerev
|
||||||
stdcall [edit_box_draw],EditIN
|
stdcall [edit_box_draw],EditIN
|
||||||
RedrawWinEnd
|
RedrawWinEnd
|
||||||
@ -120,7 +119,7 @@ Win1.Exit:
|
|||||||
|
|
||||||
ExitProcess
|
ExitProcess
|
||||||
|
|
||||||
Win1.FonRedraw: ;перерисовка области вывода
|
Win1.FonRedraw: ;¯¥à¥à¨á®¢ª ®¡« á⨠¢ë¢®¤
|
||||||
mcall 9,ThreadInfo,-1
|
mcall 9,ThreadInfo,-1
|
||||||
|
|
||||||
mov eax,13
|
mov eax,13
|
||||||
@ -139,12 +138,12 @@ jmp Win1.Events
|
|||||||
|
|
||||||
;-------------------------------------------------------------------------------
|
;-------------------------------------------------------------------------------
|
||||||
|
|
||||||
Perevod: ;сам перевод
|
Perevod: ;á ¬ ¯¥à¥¢®¤
|
||||||
mov edi,dict;[filBuffer]
|
mov edi,dict;[filBuffer]
|
||||||
|
|
||||||
Perev:
|
Perev:
|
||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
@@: ;сравнием исх. слово со словом под esi
|
@@: ;áà ¢¨¥¬ ¨áå. á«®¢® á® á«®¢®¬ ¯®¤ esi
|
||||||
mov al,[text+ebx]
|
mov al,[text+ebx]
|
||||||
test al,al
|
test al,al
|
||||||
je endWord
|
je endWord
|
||||||
@ -158,14 +157,14 @@ Perevod: ;
|
|||||||
jne WordNotFound
|
jne WordNotFound
|
||||||
|
|
||||||
add edi,ebx
|
add edi,ebx
|
||||||
dec edi ;пропускаем пробелы после английского слова
|
dec edi ;¯à®¯ã᪠¥¬ ¯à®¡¥«ë ¯®á«¥ £«¨©áª®£® á«®¢
|
||||||
@@:
|
@@:
|
||||||
inc edi
|
inc edi
|
||||||
cmp byte[edi],20h
|
cmp byte[edi],20h
|
||||||
je @b
|
je @b
|
||||||
|
|
||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
CopyWord: ;копируем перевод в строку для вывода
|
CopyWord: ;ª®¯¨à㥬 ¯¥à¥¢®¤ ¢ áâப㠤«ï ¢ë¢®¤
|
||||||
mov al,[edi+ebx]
|
mov al,[edi+ebx]
|
||||||
cmp al,0Dh
|
cmp al,0Dh
|
||||||
je @f
|
je @f
|
||||||
@ -178,7 +177,7 @@ Perevod: ;
|
|||||||
OutText 7,25,perevText
|
OutText 7,25,perevText
|
||||||
ret
|
ret
|
||||||
|
|
||||||
WordNotFound: ;если слово не подошло
|
WordNotFound: ;¥á«¨ á«®¢® ¥ ¯®¤®è«®
|
||||||
add edi,ebx
|
add edi,ebx
|
||||||
@@:
|
@@:
|
||||||
cmp byte[edi],0Dh
|
cmp byte[edi],0Dh
|
||||||
@ -201,9 +200,9 @@ Perevod: ;
|
|||||||
NextPerev:
|
NextPerev:
|
||||||
mov ecx,Lines
|
mov ecx,Lines
|
||||||
mov edi,dict;[filBuffer]
|
mov edi,dict;[filBuffer]
|
||||||
LinePerev: ;цикл рисования строки
|
LinePerev: ;横« à¨á®¢ ¨ï áâப¨
|
||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
@@: ;сравнием исх. слово со словом под esi
|
@@: ;áà ¢¨¥¬ ¨áå. á«®¢® á® á«®¢®¬ ¯®¤ esi
|
||||||
mov al,[text+ebx]
|
mov al,[text+ebx]
|
||||||
test al,al
|
test al,al
|
||||||
je N_endWord
|
je N_endWord
|
||||||
@ -217,7 +216,7 @@ NextPerev:
|
|||||||
jne N_Ppoisk
|
jne N_Ppoisk
|
||||||
ret
|
ret
|
||||||
|
|
||||||
N_Ppoisk: ;поиск начала строки
|
N_Ppoisk: ;¯®¨áª ç « áâப¨
|
||||||
add edi,ebx
|
add edi,ebx
|
||||||
@@:
|
@@:
|
||||||
dec edi
|
dec edi
|
||||||
@ -225,7 +224,7 @@ NextPerev:
|
|||||||
jne @b
|
jne @b
|
||||||
inc edi
|
inc edi
|
||||||
|
|
||||||
;########пропускаем уже переведённое слово########
|
;########¯à®¯ã᪠¥¬ 㦥 ¯¥à¥¢¥¤ñ®¥ á«®¢®########
|
||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
N_NoDouble:
|
N_NoDouble:
|
||||||
mov al,[text+ebx]
|
mov al,[text+ebx]
|
||||||
@ -248,8 +247,8 @@ NextPerev:
|
|||||||
add edi,2
|
add edi,2
|
||||||
jmp LinePerev
|
jmp LinePerev
|
||||||
|
|
||||||
N_NoDblOk: ;############вывод результатов####################
|
N_NoDblOk: ;############¢ë¢®¤ १ã«ìâ ⮢####################
|
||||||
xor ebx,ebx ;копируем результат
|
xor ebx,ebx ;ª®¯¨à㥬 १ã«ìâ â
|
||||||
N_CopyWord:
|
N_CopyWord:
|
||||||
mov al,[edi+ebx]
|
mov al,[edi+ebx]
|
||||||
cmp al,20h
|
cmp al,20h
|
||||||
@ -306,7 +305,7 @@ NextPerev:
|
|||||||
jne @b
|
jne @b
|
||||||
inc edi
|
inc edi
|
||||||
|
|
||||||
loop @f ;недотягивается до LinePerev
|
loop @f ;¥¤®â¢ ¥âáï ¤® LinePerev
|
||||||
ret
|
ret
|
||||||
@@:
|
@@:
|
||||||
jmp LinePerev
|
jmp LinePerev
|
||||||
@ -337,11 +336,11 @@ NextPerev:
|
|||||||
|
|
||||||
idbExit = 1
|
idbExit = 1
|
||||||
|
|
||||||
Lines = 16 ;количеств строк
|
Lines = 16 ;ª®«¨ç¥á⢠áâப
|
||||||
|
|
||||||
clTheme = 080B0FFh
|
clTheme = 080B0FFh
|
||||||
|
|
||||||
Win1.Caption db 'Dictionary RUS -> ENG',0
|
Win1.Caption db 'Dictionary ENG -> RUS',0
|
||||||
Win1X = 524
|
Win1X = 524
|
||||||
Win1Y = 548
|
Win1Y = 548
|
||||||
Win1W = 500
|
Win1W = 500
|
||||||
@ -359,18 +358,18 @@ NextPerev:
|
|||||||
|
|
||||||
; msgNotFound:
|
; msgNotFound:
|
||||||
; dw 0
|
; dw 0
|
||||||
; db 'Ошибка',0
|
; db 'Žè¨¡ª ',0
|
||||||
; db 'Файл dictionary.wrd не найден',0
|
; db '” ©« dictionary.wrd ¥ ©¤¥',0
|
||||||
; db 'Ясно',0
|
; db 'Ÿá®',0
|
||||||
; db 0
|
; db 0
|
||||||
;
|
;
|
||||||
; msgNotFound1:
|
; msgNotFound1:
|
||||||
; dw 0
|
; dw 0
|
||||||
; db '!!!',0
|
; db '!!!',0
|
||||||
; db 'Ошибка чтения '
|
; db 'Žè¨¡ª ç⥨ï '
|
||||||
; NumErr: db 0
|
; NumErr: db 0
|
||||||
; db 0
|
; db 0
|
||||||
; db 'Ясно',0
|
; db 'Ÿá®',0
|
||||||
; db 0
|
; db 0
|
||||||
;
|
;
|
||||||
; WordFile db '.wrd',0
|
; WordFile db '.wrd',0
|
||||||
|
Loading…
Reference in New Issue
Block a user