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