All: Update locale codes (Part 2) (#76)

- Update language codes and add comments.
- Correct `en_US` translations.
- Some whitespace clean-up (mainly EOL sanitation).

Reviewed-on: #76
Co-authored-by: Andrew <dent.ace@gmail.com>
Co-committed-by: Andrew <dent.ace@gmail.com>
This commit is contained in:
2024-06-14 10:35:46 +02:00
committed by Andrew
parent c0324e5907
commit f222e98a09
93 changed files with 61410 additions and 60666 deletions

View File

@@ -1,5 +1,5 @@
@erase lang.inc
@echo lang fix fr >lang.inc
@echo lang fix fr_FR >lang.inc
@fasm template.asm template
@erase lang.inc
@pause
@pause

View File

@@ -5,10 +5,10 @@
; last update: 1/03/2007
; written by: Ivan Poddubny
; e-mail: ivan-yar@bk.ru
;modified by: Heavyiron, maxcodehack
; modified by: Heavyiron, maxcodehack
; <--- include all KolibriOS stuff --->
include "lang.inc"
include "lang.inc" ; Language support for locales: ru_RU (CP866), fr_FR, en_US.
include "..\..\..\..\macros.inc"
@@ -62,7 +62,7 @@ CODE
xor eax, eax ; create and draw the window
mov ebx, 100*65536+200 ; (window_cx)*65536+(window_sx)
mov ecx, 100*65536+100 ; (window_cy)*65536+(window_sy)
mov edx, [sc.work] ; work area color
mov edx, [sc.work] ; work area color
or edx, 0x33000000 ; & window type 3
mov edi, title ; window title
int 0x40
@@ -80,7 +80,7 @@ if lang eq ru_RU
title db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>',0
else if lang eq fr_FR
title db 'La programme poncive',0
else
else ; Default to en_US
title db 'Template program',0
end if

View File

@@ -15,7 +15,7 @@
dd 0x2000 ; esp
dd 0x0 , 0x0 ; I_Param , I_Icon
include 'lang.inc'
include 'lang.inc' ; Language support for locales: ru_RU (CP866), en_US.
include '..\..\..\..\macros.inc'
@@ -97,7 +97,7 @@ draw_window:
mov edi,title ; WINDOW LABEL
mcall
mov eax,8 ; NEW THREAD BUTTON
mov ebx,20*65536+128
mov ecx,63*65536+20
@@ -136,11 +136,11 @@ if lang eq ru_RU
db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><E2AEAA> <20><><EFBFBD><EFBFBD><EFBFBD>. '
db ' '
db ' <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> '
db 'x' ; <- END MARKER, DONT DELETE
db 'x' ; <- END MARKER, DO NOT DELETE
title db '<27><EFBFBD><E0A8AC> <20><EFBFBD><EFBFBD><ECA7AE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E2AEAA>',0
else
else ; Default to en_US
text:
db 'THIS EXAMPLE CREATES THREADS BY RUNNING '
db 'THE SAME CODE MULTIPLE TIMES. ALL WE '
@@ -149,7 +149,7 @@ else
db ' '
db ' '
db ' CREATE NEW THREAD '
db 'x' ; <- END MARKER, DONT DELETE
db 'x' ; <- END MARKER, DO NOT DELETE
title db 'THREAD EXAMPLE',0

View File

@@ -1,43 +1,42 @@
include 'lang.inc'
if lang eq ru_RU
text db ' <20><EFBFBD><E594A0>:','<27><><EFBFBD><E594A0>:',' <20><><EFBFBD><EFBFBD>:'
.line_size = ($-text)/3
s_compile db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.'
s_run db ' <20><><EFBFBD><EFBFBD> '
s_debug db '<27><EFBFBD><E2ABA0><EFBFBD>'
s_dbgdescr db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E2ABA0><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0ACA0><EFBFBD>',0
sz_EPnotFound db 'Not found entry point to ',0
sizeof.sz_EPnotFound = $-sz_EPnotFound
sz_cantLL db 'Can not load library ',0
sizeof.sz_cantLL = $-sz_cantLL
sz_system_error db 'System error: ',0
sizeof.sz_system_error = $-sz_system_error
else
text db ' InFile:','OutFile:',' Path:'
.line_size = ($-text)/3
s_compile db 'COMPILE'
s_run db ' RUN '
s_debug db ' DEBUG '
s_dbgdescr db 'Generate debug information',0
sz_EPnotFound db 'Not found entry point to ',0
sizeof.sz_EPnotFound = $-sz_EPnotFound
sz_cantLL db 'Can not load library ',0
sizeof.sz_cantLL = $-sz_cantLL
sz_system_error db 'System error: ',0
sizeof.sz_system_error = $-sz_system_error
end if
include 'lang.inc' ; Language support for locales: ru_RU (CP866), en_US.
if lang eq ru_RU
text db ' <20><EFBFBD><E594A0>:','<27><><EFBFBD><E594A0>:',' <20><><EFBFBD><EFBFBD>:'
.line_size = ($-text)/3
s_compile db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.'
s_run db ' <20><><EFBFBD><EFBFBD> '
s_debug db '<27><EFBFBD><E2ABA0><EFBFBD>'
s_dbgdescr db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E2ABA0><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0ACA0><EFBFBD>',0
sz_EPnotFound db 'Not found entry point to ',0
sizeof.sz_EPnotFound = $-sz_EPnotFound
sz_cantLL db 'Cannot load library ',0
sizeof.sz_cantLL = $-sz_cantLL
sz_system_error db 'System error: ',0
sizeof.sz_system_error = $-sz_system_error
else ; Default to en_US
text db ' InFile:','OutFile:',' Path:'
.line_size = ($-text)/3
s_compile db 'COMPILE'
s_run db ' RUN '
s_debug db ' DEBUG '
s_dbgdescr db 'Generate debug information',0
sz_EPnotFound db 'Not found entry point to ',0
sizeof.sz_EPnotFound = $-sz_EPnotFound
sz_cantLL db 'Cannot load library ',0
sizeof.sz_cantLL = $-sz_cantLL
sz_system_error db 'System error: ',0
sizeof.sz_system_error = $-sz_system_error
end if

View File

@@ -22,7 +22,7 @@ include '../../../macros.inc' ;
include '../../../KOSfuncs.inc'
include '../../../load_lib.mac'
include '../../../develop/libraries/box_lib/trunk/box_lib.mac'
include 'lang.inc'
include 'lang.inc' ; Language support for locales: ru_RU (CP866), en_US.
@use_library
@@ -170,7 +170,7 @@ draw_window:
;or esi, [sys_colors.grab_text]
mcall SF_CREATE_WINDOW, 200*65536+WIN_W, 200*65536+179, ,,title
mcall SF_DEFINE_BUTTON, 15*65536+42,106*65536+ 21, 2, [sys_colors.work_button] ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> shl
mcall , 70*65536+42, , , ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> sal
mcall , (WIN_W-55)*65536+42, , 3, ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> shr
@@ -196,7 +196,7 @@ draw_window:
mcall SF_DRAW_NUMBER, 10*65536, ,(WIN_W-92)*65536+62, ; 10-<2D><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BIN_LINE_BLOCK_W = 76
mcall SF_DRAW_NUMBER, 8*65536+512,,(WIN_W-BIN_LINE_BLOCK_W)*65536+30 ; 2-<2D><><EFBFBD>
mcall SF_DRAW_NUMBER, 8*65536+512,,(WIN_W-BIN_LINE_BLOCK_W)*65536+30 ; 2-<2D><><EFBFBD>
ror ecx, 8
mov edx, (WIN_W-BIN_LINE_BLOCK_W*2)*65536+30
mcall
@@ -275,7 +275,7 @@ string1_end:
if lang eq ru_RU
numstr db '<27><>᫮:',0
Okstr db '<27><><EFBFBD><EFBFBD>',0
else
else ; Default to en_US
numstr db 'Number:',0
Okstr db 'Enter',0
end if

View File

@@ -13,7 +13,7 @@
; Marat Zakiyanov aka Mario79, aka Mario
;--------------------------------------------------------------------
; v.014 05.02.2010
;
;
; PageUp, PageDown - <20><><EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD>
; Ctrl+UP, Ctrl+Down - <20><EFBFBD><E0AEAA><20><><EFBFBD><E0A0AD><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD> <20><><EFBFBD> ᬥ饭<E1ACA5><E9A5AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
; Home,End - <20> <20><><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
@@ -59,9 +59,9 @@ use32
;--------------------------------------------------------------------
_title equ 'HeEd 0.16', 0
include 'lang.inc'
include 'lang.inc' ; Language support for locales: ru_RU (CP866), en_US.
include '../../../KOSfuncs.inc'
include '../../../config.inc' ;for nightbuild
include '../../../config.inc' ; for nightbuild
include '../../../macros.inc'
include '../../libraries/box_lib/trunk/box_lib.mac'
include '../../../load_lib.mac'
@@ -108,25 +108,25 @@ load_libraries l_libs_start,end_l_libs
;OpenDialog initialisation
push dword OpenDialog_data
call [OpenDialog_Init]
;--------------------------------------------------------------------
;--------------------------------------------------------------------
mov esi,fname_buf
cmp [esi],byte 0
je .start_temp_file_name
cld
@@:
lodsb
test al,al
jne @b
std
@@:
lodsb
cmp al,'/'
cmp al,'/'
jne @b
add esi,2
jmp .selected_start_file_name
;--------------------------------------------------------------------
;--------------------------------------------------------------------
.start_temp_file_name:
mov esi,start_temp_file_name
.selected_start_file_name:
@@ -1068,7 +1068,7 @@ main_area:
mov ecx,edx
mov edx,frgrd_color
movzx ebx,[scroll_bar_data_vertical.x_pos]
mov ax,[scroll_bar_data_vertical.x_size]
test ax,ax
jnz .no_inc_ebx
@@ -1091,7 +1091,7 @@ main_area:
shl ebx,16
mov bx,ax
mov cx,16
mov ax,[scroll_bar_data_vertical.x_size]
test ax,ax
jnz .no_inc_ebx_2
@@ -1938,13 +1938,13 @@ draw_ed_box: ;
cmp al,1
jne .2
call draw_window
mov eax,[threath_buf+70]
test eax,10b
jnz .2
test eax,100b
jnz .2
call main_area
bt [flags],2
jnc @f
@@ -2805,7 +2805,7 @@ Ctrl_V:
mov [shblock_end],eax
jmp red
;--------------------------------------------------------------------
;<3B><20><><EFBFBD><EFBFBD> <20><> <20><EFBFBD><EBA4A5><EFBFBD>, <20><> <20><><EFBFBD><20><><EFBFBD><EFBFBD> <20><><20><><EFBFBD><EFBFBD><EFBFBD>
;<3B><20><><EFBFBD><EFBFBD> <20><> <20><EFBFBD><EBA4A5><EFBFBD>, <20><> <20><><EFBFBD><20><><EFBFBD><EFBFBD> <20><><20><><EFBFBD><EFBFBD><EFBFBD>
.past_kurs:
; bt [flags],1
; jnc still
@@ -2965,7 +2965,7 @@ menu_data_1:
.x1:
if lang eq ru_RU
.size_x1 dw 4*2+9*6 ;+32
else
else ; Default to en_US
.size_x1 dw 40 ;+32
end if
.start_x1 dw 2 ;+34
@@ -3000,7 +3000,7 @@ if lang eq ru_RU
db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
db '<27><><EFBFBD><EFBFBD><E0A0AD><EFBFBD>',0
db '<27><>室',0
else
else ; Default to en_US
db 'File',0
.1:
db 'Open',0
@@ -3056,7 +3056,7 @@ menu_text_area_2:
if lang eq ru_RU
db '<27><><EFBFBD>',0
.1:
else
else ; Default to en_US
db 'View',0
.1:
end if
@@ -3074,7 +3074,7 @@ menu_data_3:
.x:
if lang eq ru_RU
.size_x dw 4*2+7*6 ;+32
else
else ; Default to en_US
.size_x dw 40 ;+4
end if
.start_x dw 84 ;+6
@@ -3089,7 +3089,7 @@ end if
.x1:
if lang eq ru_RU
.size_x1 dw 4*2+7*6 ;+32
else
else ; Default to en_US
.size_x1 dw 40 ;+32
end if
.start_x1 dw 84 ;+34
@@ -3122,7 +3122,7 @@ if lang eq ru_RU
db '<27><><EFBFBD><E0A0A2>',0
.1:
db '<27><><EFBFBD><E0A0A2>',0
else
else ; Default to en_US
db 'Help',0
.1:
db 'Help',0
@@ -3155,7 +3155,7 @@ if lang eq ru_RU
.e2:
.3 db '<27><><EFBFBD><EFBFBD><EFBFBD>'
.e3:
else
else ; Default to en_US
.1 db 'Absolutely'
.e1:
.2 db 'Forward'
@@ -3181,7 +3181,7 @@ head_f_i:
if lang eq ru_RU
error_open_file_string db "<22><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!",0
error_save_file_string db "<22><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><E0A0AD>!",0
else
else ; Default to en_US
error_open_file_string db "Isn't found!",0
error_save_file_string db "Isn't saved!",0
end if
@@ -3240,7 +3240,7 @@ if lang eq ru_RU
db 'Ctrl+C - <20><><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD> <20><><EFBFBD><EFBFBD> '
db 'Ctrl+V - <20><><EFBFBD><E2A0A2><EFBFBD> <20> <20><EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
db 'Ctrl+X - <20><><EFBFBD><E0A5A7><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> '
else
else ; Default to en_US
db 'Ctrl+O - open file '
db 'Ctrl+S - save file '
db 'PageUp, PageDown - page up/down '
@@ -3268,7 +3268,7 @@ help_end:
;align 4096
font_buffer file 'cp866-8x16' ;ASCII+cp866 (+<2B>,<2C>)
cp1251 file 'cp1251-8x16'
koi8_r file 'koi8-r-8x16'
koi8_r file 'koi8-r-8x16'
title db _title
;---------------------------------------------------------------------

View File

@@ -1,459 +1,460 @@
;
; <EFBFBD>㭪樨 <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> *.stl <EFBFBD> *.3ds
;
; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> *.3ds:
; CHUNK_MAIN (40+n+v+f)
; + CHUNK_OBJMESH (34+n+v+f)
; + CHUNK_OBJBLOCK (28+n+v+f)
; + CHUNK_TRIMESH (22+v+f)
; + CHUNK_VERTLIST (8+v)
; + CHUNK_FACELIST (8+f)
;
; <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
; n - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
; v - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>
; f - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>
; <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *.stl:
; char[80] - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
; uint32 - <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>
; <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>:
; float[3] - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
; float[9] - <EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1,2,3
; uint16 - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if lang eq ru_RU
txt_err_stl_open:
db '"STL',13,10
db '<EFBFBD><EFBFBD><EFBFBD><EFBFBD> *.stl <20><EFBFBD> <20><><EFBFBD><EFBFBD>让." -tW',0
txt_err_stl_null_v:
db '"STL',13,10
db '<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>." -tE',0
else
txt_err_stl_open:
db '"STL',13,10
db 'File *.stl is very large." -tW',0
txt_err_stl_null_v:
db '"STL',13,10
db 'Vertexes not found." -tE',0
end if
;output:
; eax - <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ନ஢<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> 3ds (<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0)
; ecx - <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ନ஢<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> 3ds
align 4
proc convert_stl_3ds uses ebx edx edi esi, f_data:dword, f_size:dword
locals
c_mem dd ? ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (convert memory)
c_size dd ? ;<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (convert memory size)
vert_c dd ? ;<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> (vertex count)
face_c dd ? ;<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> (faces count)
endl
xor eax,eax
mov esi,[f_data]
cmp dword[esi],'soli'
jne .bin_stl
cmp word[esi+4],'d '
jne .bin_stl
jmp @f
.bin_stl:
;<EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>
mov ecx,[esi+80]
imul ecx,50
add ecx,84 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cmp ecx,[f_size]
jne .no_stl
call convert_binary_stl
jmp .no_stl
@@:
;<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 'solid '
stdcall txt_next_line, 80
mov eax,[f_data]
sub eax,esi
add eax,[f_size]
stdcall get_stl_vertex_count, esi,eax
or eax,eax
jnz @f
notify_window_run txt_err_stl_null_v
jmp .no_stl
@@:
cmp eax,0xffff
jle @f
notify_window_run txt_err_stl_open
mov eax,0xffff
@@:
mov [vert_c],eax
mov ecx,3
xor edx,edx
div ecx
mov [face_c],eax
shl eax,3
mov ecx,[vert_c]
imul ecx,12
lea ecx,[ecx+eax+40]
lea edx,[esi-6]
sub edx,[f_data]
cmp edx,2
jge @f
mov edx,2 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@:
add ecx,edx ;for object name
mov [c_size],ecx
stdcall mem.Alloc,ecx
mov [c_mem],eax
mov ebx,eax
mov word[ebx],CHUNK_MAIN
mov dword[ebx+2],ecx
add ebx,6
;3d3d
mov word[ebx],CHUNK_OBJMESH
sub ecx,6
mov dword[ebx+2],ecx
add ebx,6
;4000
mov word[ebx],CHUNK_OBJBLOCK
sub ecx,6
mov dword[ebx+2],ecx
add ebx,6
push ecx esi
mov ecx,edx
mov edi,ebx
mov esi,[f_data]
add esi,6 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 'solid '
rep movsb ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov byte[edi-1],0
add ebx,edx
pop esi ecx
;4100
mov word[ebx],CHUNK_TRIMESH
sub ecx,6
mov dword[ebx+2],ecx
add ebx,6
;4110
mov word[ebx],CHUNK_VERTLIST
mov dword[ebx+2],8 ;+ <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> * 12
add ebx,6
mov edx,ebx
mov word[edx],0 ;<EFBFBD><EFBFBD><EFBFBD>. <EFBFBD><EFBFBD><EFBFBD>
add ebx,2
finit
.cycle0:
call txt_ignore_space
cmp dword[esi],'face'
jne .end_v
stdcall txt_next_line, 80
call txt_ignore_space
cmp dword[esi],'oute'
jne .end_v
stdcall txt_next_line, 80
mov ecx,3 ;3 <EFBFBD><EFBFBD> <EFBFBD><EFBFBD> 1 <EFBFBD><EFBFBD>
@@:
stdcall stl_vertex_init, ebx
or eax,eax
jz .end_v
add ebx,12
inc word[edx]
loop @b
mov eax,[vert_c]
cmp word[edx],ax
jge .end_v
call txt_ignore_space
cmp dword[esi],'endl'
jne .end_v
stdcall txt_next_line, 80
call txt_ignore_space
cmp dword[esi],'endf'
jne .end_v
stdcall txt_next_line, 80
jmp .cycle0
.end_v:
movzx eax,word[edx]
imul eax,12
add [edx-4],eax ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4110
;4120
mov word[ebx],CHUNK_FACELIST
mov ecx,[face_c]
mov edx,ecx
shl edx,3 ;<EFBFBD><EFBFBD><EFBFBD>. <EFBFBD><EFBFBD><EFBFBD> * 8
add edx,8
mov [ebx+2],edx
add ebx,6
mov [ebx],cx ;<EFBFBD><EFBFBD><EFBFBD>. <EFBFBD><EFBFBD><EFBFBD>
add ebx,2
xor eax,eax
@@:
mov [ebx],ax
inc eax
mov [ebx+2],ax
inc eax
mov [ebx+4],ax
inc eax
mov word[ebx+6],0 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
add ebx,8
loop @b
mov eax,[c_mem]
mov ecx,[c_size]
.no_stl:
ret
endp
;input:
; esi - <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>
; ecx - <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>
align 4
proc convert_binary_stl
locals
c_mem dd ? ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (convert memory)
c_size dd ? ;<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (convert memory size)
vert_c dd ? ;<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> (vertex count)
face_c dd ? ;<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> (faces count)
endl
mov eax,[esi+80]
or eax,eax
jnz @f
notify_window_run txt_err_stl_null_v
jmp .no_stl
@@:
cmp eax,0xffff/3
jle @f
notify_window_run txt_err_stl_open
mov eax,0xffff/3
@@:
mov [face_c],eax
mov ecx,eax
imul eax,3
mov [vert_c],eax
shl ecx,3
imul eax,12
lea ecx,[ecx+eax+40+4] ;+4 <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov [c_size],ecx
stdcall mem.Alloc,ecx
mov [c_mem],eax
mov ebx,eax
mov word[ebx],CHUNK_MAIN
mov dword[ebx+2],ecx
add ebx,6
;3d3d
mov word[ebx],CHUNK_OBJMESH
sub ecx,6
mov dword[ebx+2],ecx
add ebx,6
;4000
mov word[ebx],CHUNK_OBJBLOCK
sub ecx,6
mov dword[ebx+2],ecx
add ebx,6
mov dword[ebx],'Stl' ;<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
add ebx,4
;4100
mov word[ebx],CHUNK_TRIMESH
sub ecx,6
mov dword[ebx+2],ecx
add ebx,6
;4110
mov word[ebx],CHUNK_VERTLIST
mov dword[ebx+2],8 ;+ <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> * 12
add ebx,6
mov edx,ebx
mov ecx,[vert_c]
mov word[edx],cx ;<EFBFBD><EFBFBD><EFBFBD>. <EFBFBD><EFBFBD><EFBFBD>
add ebx,2
add esi,80+4+12 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>, 1-<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov edi,ebx
mov eax,[face_c]
@@: ;<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>
mov ecx,9
rep movsd ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 3-<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>
add esi,14 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD>
dec eax
jnz @b
mov ebx,edi
movzx eax,word[edx]
imul eax,12
add [edx-4],eax ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4110
;4120
mov word[ebx],CHUNK_FACELIST
mov ecx,[face_c]
mov edx,ecx
shl edx,3 ;<EFBFBD><EFBFBD><EFBFBD>. <EFBFBD><EFBFBD><EFBFBD> * 8
add edx,8
mov [ebx+2],edx
add ebx,6
mov [ebx],cx ;<EFBFBD><EFBFBD><EFBFBD>. <EFBFBD><EFBFBD><EFBFBD>
add ebx,2
xor eax,eax
@@:
mov [ebx],ax
inc eax
mov [ebx+2],ax
inc eax
mov [ebx+4],ax
inc eax
mov word[ebx+6],0 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
add ebx,8
loop @b
mov eax,[c_mem]
mov ecx,[c_size]
.no_stl:
ret
endp
;output:
; eax - vertex count
align 4
proc get_stl_vertex_count uses ebx ecx edi, f_data:dword, f_size:dword
mov al,'v'
xor ebx,ebx
mov ecx,[f_size]
mov edi,[f_data]
.cycle0:
repne scasb
cmp dword[edi],'erte'
jne @f
inc ebx
add edi,4
sub ecx,4
cmp ecx,4
jg .cycle0
@@:
mov eax,ebx
ret
endp
;input:
; esi - input description text
; ppoi - pointer to vertex struct
;output:
; eax - 0 (if error init) or 1
; esi - output description text
align 4
proc stl_vertex_init uses ebx ecx edi, ppoi:dword
call txt_ignore_space
cmp dword[esi],'vert'
jne .err_init
cmp word[esi+4],'ex'
jne .err_init
add esi,6
mov ebx,[ppoi]
call txt_copy_data
call String_to_DoubleFloat
fld qword[Data_Double]
fstp dword[ebx] ;coord X
call txt_copy_data
call String_to_DoubleFloat
fld qword[Data_Double]
fstp dword[ebx+4] ;coord X
call txt_copy_data
call String_to_DoubleFloat
fld qword[Data_Double]
fstp dword[ebx+8] ;coord Z
stdcall txt_next_line, 80
jmp @f
.err_init:
xor eax,eax
jmp .end_f
@@:
xor eax,eax
inc eax
.end_f:
ret
endp
;input:
; esi - <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
;output:
; al - destroy
; ecx - destroy
; esi - <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>
align 4
txt_ignore_space:
mov ecx,64 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@:
lodsb
cmp al,' '
jne @f
loop @b
@@:
dec esi
ret
;input:
; esi - <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD> (<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
;output:
; al - destroy
; ecx - destroy
; edi - destroy
; esi - <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>
; Data_String - <EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> esi
align 4
txt_copy_data:
call txt_ignore_space
mov ecx,32
mov edi,esi
@@:
lodsb
or al,al
jz @f
cmp al,' '
je @f
cmp al,13
je @f
loop @b
@@:
mov esi,edi
sub ecx,32
neg ecx
mov edi,Data_String
rep movsb
mov byte[edi],0
ret
;input:
; esi - text pointer
align 4
proc txt_next_line uses eax ecx edi, mlen:dword
mov al,13
mov ecx,[mlen]
mov edi,esi
repne scasb
cmp byte[edi],10
jne @f
inc edi
@@:
mov esi,edi
ret
endp
;
; <EFBFBD>㭪樨 <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> *.stl <EFBFBD> *.3ds
;
; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> *.3ds:
; CHUNK_MAIN (40+n+v+f)
; + CHUNK_OBJMESH (34+n+v+f)
; + CHUNK_OBJBLOCK (28+n+v+f)
; + CHUNK_TRIMESH (22+v+f)
; + CHUNK_VERTLIST (8+v)
; + CHUNK_FACELIST (8+f)
;
; <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
; n - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
; v - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>
; f - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>
; <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *.stl:
; char[80] - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
; uint32 - <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>
; <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>:
; float[3] - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
; float[9] - <EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1,2,3
; uint16 - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
; Language support for locales: ru_RU (CP866), en_US.
if lang eq ru_RU
txt_err_stl_open:
db '"STL',13,10
db '<27><><EFBFBD><EFBFBD> *.stl <20><EFBFBD> <20><><EFBFBD><EFBFBD>让." -tW',0
txt_err_stl_null_v:
db '"STL',13,10
db '<27><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>." -tE',0
else ; Default to en_US
txt_err_stl_open:
db '"STL',13,10
db 'File *.stl is very large." -tW',0
txt_err_stl_null_v:
db '"STL',13,10
db 'Vertexes not found." -tE',0
end if
;output:
; eax - <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ନ஢<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> 3ds (<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0)
; ecx - <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ନ஢<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> 3ds
align 4
proc convert_stl_3ds uses ebx edx edi esi, f_data:dword, f_size:dword
locals
c_mem dd ? ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (convert memory)
c_size dd ? ;<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (convert memory size)
vert_c dd ? ;<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> (vertex count)
face_c dd ? ;<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> (faces count)
endl
xor eax,eax
mov esi,[f_data]
cmp dword[esi],'soli'
jne .bin_stl
cmp word[esi+4],'d '
jne .bin_stl
jmp @f
.bin_stl:
;<EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>
mov ecx,[esi+80]
imul ecx,50
add ecx,84 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cmp ecx,[f_size]
jne .no_stl
call convert_binary_stl
jmp .no_stl
@@:
;<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 'solid '
stdcall txt_next_line, 80
mov eax,[f_data]
sub eax,esi
add eax,[f_size]
stdcall get_stl_vertex_count, esi,eax
or eax,eax
jnz @f
notify_window_run txt_err_stl_null_v
jmp .no_stl
@@:
cmp eax,0xffff
jle @f
notify_window_run txt_err_stl_open
mov eax,0xffff
@@:
mov [vert_c],eax
mov ecx,3
xor edx,edx
div ecx
mov [face_c],eax
shl eax,3
mov ecx,[vert_c]
imul ecx,12
lea ecx,[ecx+eax+40]
lea edx,[esi-6]
sub edx,[f_data]
cmp edx,2
jge @f
mov edx,2 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@:
add ecx,edx ;for object name
mov [c_size],ecx
stdcall mem.Alloc,ecx
mov [c_mem],eax
mov ebx,eax
mov word[ebx],CHUNK_MAIN
mov dword[ebx+2],ecx
add ebx,6
;3d3d
mov word[ebx],CHUNK_OBJMESH
sub ecx,6
mov dword[ebx+2],ecx
add ebx,6
;4000
mov word[ebx],CHUNK_OBJBLOCK
sub ecx,6
mov dword[ebx+2],ecx
add ebx,6
push ecx esi
mov ecx,edx
mov edi,ebx
mov esi,[f_data]
add esi,6 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 'solid '
rep movsb ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov byte[edi-1],0
add ebx,edx
pop esi ecx
;4100
mov word[ebx],CHUNK_TRIMESH
sub ecx,6
mov dword[ebx+2],ecx
add ebx,6
;4110
mov word[ebx],CHUNK_VERTLIST
mov dword[ebx+2],8 ;+ <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> * 12
add ebx,6
mov edx,ebx
mov word[edx],0 ;<EFBFBD><EFBFBD><EFBFBD>. <EFBFBD><EFBFBD><EFBFBD>
add ebx,2
finit
.cycle0:
call txt_ignore_space
cmp dword[esi],'face'
jne .end_v
stdcall txt_next_line, 80
call txt_ignore_space
cmp dword[esi],'oute'
jne .end_v
stdcall txt_next_line, 80
mov ecx,3 ;3 <EFBFBD><EFBFBD> <EFBFBD><EFBFBD> 1 <EFBFBD><EFBFBD>
@@:
stdcall stl_vertex_init, ebx
or eax,eax
jz .end_v
add ebx,12
inc word[edx]
loop @b
mov eax,[vert_c]
cmp word[edx],ax
jge .end_v
call txt_ignore_space
cmp dword[esi],'endl'
jne .end_v
stdcall txt_next_line, 80
call txt_ignore_space
cmp dword[esi],'endf'
jne .end_v
stdcall txt_next_line, 80
jmp .cycle0
.end_v:
movzx eax,word[edx]
imul eax,12
add [edx-4],eax ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4110
;4120
mov word[ebx],CHUNK_FACELIST
mov ecx,[face_c]
mov edx,ecx
shl edx,3 ;<EFBFBD><EFBFBD><EFBFBD>. <EFBFBD><EFBFBD><EFBFBD> * 8
add edx,8
mov [ebx+2],edx
add ebx,6
mov [ebx],cx ;<EFBFBD><EFBFBD><EFBFBD>. <EFBFBD><EFBFBD><EFBFBD>
add ebx,2
xor eax,eax
@@:
mov [ebx],ax
inc eax
mov [ebx+2],ax
inc eax
mov [ebx+4],ax
inc eax
mov word[ebx+6],0 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
add ebx,8
loop @b
mov eax,[c_mem]
mov ecx,[c_size]
.no_stl:
ret
endp
;input:
; esi - <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>
; ecx - <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>
align 4
proc convert_binary_stl
locals
c_mem dd ? ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (convert memory)
c_size dd ? ;<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (convert memory size)
vert_c dd ? ;<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> (vertex count)
face_c dd ? ;<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> (faces count)
endl
mov eax,[esi+80]
or eax,eax
jnz @f
notify_window_run txt_err_stl_null_v
jmp .no_stl
@@:
cmp eax,0xffff/3
jle @f
notify_window_run txt_err_stl_open
mov eax,0xffff/3
@@:
mov [face_c],eax
mov ecx,eax
imul eax,3
mov [vert_c],eax
shl ecx,3
imul eax,12
lea ecx,[ecx+eax+40+4] ;+4 <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov [c_size],ecx
stdcall mem.Alloc,ecx
mov [c_mem],eax
mov ebx,eax
mov word[ebx],CHUNK_MAIN
mov dword[ebx+2],ecx
add ebx,6
;3d3d
mov word[ebx],CHUNK_OBJMESH
sub ecx,6
mov dword[ebx+2],ecx
add ebx,6
;4000
mov word[ebx],CHUNK_OBJBLOCK
sub ecx,6
mov dword[ebx+2],ecx
add ebx,6
mov dword[ebx],'Stl' ;<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
add ebx,4
;4100
mov word[ebx],CHUNK_TRIMESH
sub ecx,6
mov dword[ebx+2],ecx
add ebx,6
;4110
mov word[ebx],CHUNK_VERTLIST
mov dword[ebx+2],8 ;+ <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> * 12
add ebx,6
mov edx,ebx
mov ecx,[vert_c]
mov word[edx],cx ;<EFBFBD><EFBFBD><EFBFBD>. <EFBFBD><EFBFBD><EFBFBD>
add ebx,2
add esi,80+4+12 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>, 1-<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov edi,ebx
mov eax,[face_c]
@@: ;<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>
mov ecx,9
rep movsd ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 3-<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>
add esi,14 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD>
dec eax
jnz @b
mov ebx,edi
movzx eax,word[edx]
imul eax,12
add [edx-4],eax ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4110
;4120
mov word[ebx],CHUNK_FACELIST
mov ecx,[face_c]
mov edx,ecx
shl edx,3 ;<EFBFBD><EFBFBD><EFBFBD>. <EFBFBD><EFBFBD><EFBFBD> * 8
add edx,8
mov [ebx+2],edx
add ebx,6
mov [ebx],cx ;<EFBFBD><EFBFBD><EFBFBD>. <EFBFBD><EFBFBD><EFBFBD>
add ebx,2
xor eax,eax
@@:
mov [ebx],ax
inc eax
mov [ebx+2],ax
inc eax
mov [ebx+4],ax
inc eax
mov word[ebx+6],0 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
add ebx,8
loop @b
mov eax,[c_mem]
mov ecx,[c_size]
.no_stl:
ret
endp
;output:
; eax - vertex count
align 4
proc get_stl_vertex_count uses ebx ecx edi, f_data:dword, f_size:dword
mov al,'v'
xor ebx,ebx
mov ecx,[f_size]
mov edi,[f_data]
.cycle0:
repne scasb
cmp dword[edi],'erte'
jne @f
inc ebx
add edi,4
sub ecx,4
cmp ecx,4
jg .cycle0
@@:
mov eax,ebx
ret
endp
;input:
; esi - input description text
; ppoi - pointer to vertex struct
;output:
; eax - 0 (if error init) or 1
; esi - output description text
align 4
proc stl_vertex_init uses ebx ecx edi, ppoi:dword
call txt_ignore_space
cmp dword[esi],'vert'
jne .err_init
cmp word[esi+4],'ex'
jne .err_init
add esi,6
mov ebx,[ppoi]
call txt_copy_data
call String_to_DoubleFloat
fld qword[Data_Double]
fstp dword[ebx] ;coord X
call txt_copy_data
call String_to_DoubleFloat
fld qword[Data_Double]
fstp dword[ebx+4] ;coord X
call txt_copy_data
call String_to_DoubleFloat
fld qword[Data_Double]
fstp dword[ebx+8] ;coord Z
stdcall txt_next_line, 80
jmp @f
.err_init:
xor eax,eax
jmp .end_f
@@:
xor eax,eax
inc eax
.end_f:
ret
endp
;input:
; esi - <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
;output:
; al - destroy
; ecx - destroy
; esi - <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>
align 4
txt_ignore_space:
mov ecx,64 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@:
lodsb
cmp al,' '
jne @f
loop @b
@@:
dec esi
ret
;input:
; esi - <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD> (<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
;output:
; al - destroy
; ecx - destroy
; edi - destroy
; esi - <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>
; Data_String - <EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> esi
align 4
txt_copy_data:
call txt_ignore_space
mov ecx,32
mov edi,esi
@@:
lodsb
or al,al
jz @f
cmp al,' '
je @f
cmp al,13
je @f
loop @b
@@:
mov esi,edi
sub ecx,32
neg ecx
mov edi,Data_String
rep movsb
mov byte[edi],0
ret
;input:
; esi - text pointer
align 4
proc txt_next_line uses eax ecx edi, mlen:dword
mov al,13
mov ecx,[mlen]
mov edi,esi
repne scasb
cmp byte[edi],10
jne @f
inc edi
@@:
mov esi,edi
ret
endp

View File

@@ -1,320 +1,324 @@
;
; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᮡ࠭<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *.3ds
;
MAX_FILE_LEVEL equ 20 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
sizeof.block_3ds equ 9
can_save db 0 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>
macro block_3ds id,icon,par,caption
{
dw id ;+0 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD> 3ds
dw icon ;+2 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
db par ;+4 <EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (0-<EFBFBD><EFBFBD> 1-<EFBFBD><EFBFBD><EFBFBD>)
dd caption+0 ;+5 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
CHUNK_MAIN equ 0x4D4D ; [-] <EFBFBD><EFBFBD>
CHUNK_ambient_color equ 0x2100 ; [-] ambient color
CHUNK_OBJMESH equ 0x3D3D ; [-] <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ꥪ⮢
CHUNK_OBJBLOCK equ 0x4000 ; [+] <EFBFBD><EFBFBD><EFBFBD>
CHUNK_TRIMESH equ 0x4100 ; [-] trimesh-<EFBFBD><EFBFBD><EFBFBD>
CHUNK_VERTLIST equ 0x4110 ; [+] ᯨ᮪ <EFBFBD><EFBFBD><EFBFBD>
CHUNK_FACELIST equ 0x4120 ; [+] ᯨ᮪ <EFBFBD><EFBFBD><EFBFBD>
CHUNK_FACEMAT equ 0x4130 ; [+] <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>
CHUNK_MAPLIST equ 0x4140 ; [+] <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHUNK_TRMATRIX equ 0x4160 ; [+] <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHUNK_CAMERA equ 0x4700 ; [+] <EFBFBD><EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHUNK_MATERIAL equ 0xAFFF ; [-] <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHUNK_MATNAME equ 0xA000 ; [+] <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHUNK_TEXTURE equ 0xA200 ; [-] <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHUNK_MAPFILE equ 0xA300 ; [+] <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHUNK_KEYFRAMER equ 0xB000 ; [-] <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHUNK_TRACKINFO equ 0xB002 ; [-] <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHUNK_TRACKOBJNAME equ 0xB010 ; [+] <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHUNK_TRACKPIVOT equ 0xB013 ; [+] <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHUNK_TRACKPOS equ 0xB020 ; [+] <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHUNK_TRACKROTATE equ 0xB021 ; [+] <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHUNK_TRACKCAMERA equ 0xB003 ; [-] <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHUNK_TRACKFOV equ 0xB023 ; [+] <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> fov <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHUNK_TRACKROLL equ 0xB024 ; [+] <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> roll <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHUNK_TRACKCAMTGT equ 0xB004 ; [-] <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<EFBFBD>" <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD>⬥祭<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
align 4
type_bloks:
block_3ds 0x0002,5,1,txt_0002
block_3ds 0x3d3e,5,1 ; [+] mesh version
block_3ds 0x0011,4,1,txt_0011
block_3ds 0x0100,3,1,txt_0100
block_3ds CHUNK_ambient_color,3,0,txt_2100 ; [-] ambient color
block_3ds CHUNK_OBJMESH, 3,0,txt_3d3d
block_3ds CHUNK_OBJBLOCK,11,1,txt_4000
block_3ds CHUNK_TRIMESH, 3,0,txt_4100
block_3ds CHUNK_VERTLIST,8,1,txt_4110
block_3ds CHUNK_FACELIST,3,1,txt_4120
block_3ds CHUNK_FACEMAT,10,1,txt_4130
block_3ds CHUNK_MAPLIST, 3,1,txt_4140
block_3ds CHUNK_TRMATRIX,3,1,txt_4160
block_3ds 0x4600,3,1,txt_4600
block_3ds CHUNK_CAMERA, 3,1,txt_4700
block_3ds CHUNK_MATERIAL,10,0,txt_afff
block_3ds CHUNK_MATNAME, 3,1,txt_a000
block_3ds 0xa010,4,0,txt_a010
block_3ds 0xa020,4,0,txt_a020
block_3ds 0xa030,4,0,txt_a030
block_3ds 0xa100,5,1,txt_a100
block_3ds CHUNK_TEXTURE, 3,0,txt_a200
block_3ds CHUNK_MAPFILE, 6,1,txt_a300
block_3ds CHUNK_KEYFRAMER, 7,0,txt_b000
block_3ds CHUNK_TRACKINFO, 3,0,txt_b002
block_3ds CHUNK_TRACKOBJNAME,3,1,txt_b010
block_3ds 0xb011,3,1,txt_b011
block_3ds CHUNK_TRACKPIVOT, 3,1,txt_b013
block_3ds 0xb014,3,1,txt_b014
block_3ds CHUNK_TRACKPOS, 3,1,txt_b020
block_3ds CHUNK_TRACKROTATE, 3,1,txt_b021
block_3ds CHUNK_TRACKCAMERA, 7,0,txt_b003
block_3ds CHUNK_TRACKFOV, 7,1,txt_b023
block_3ds CHUNK_TRACKROLL, 7,1,txt_b024
block_3ds CHUNK_TRACKCAMTGT, 7,0,txt_b004
;--- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>
block_3ds 0x4111, 3,1,txt_4111
block_3ds 0x4150, 3,1,txt_4150
block_3ds 0x4165, 3,1,txt_4165
block_3ds 0x4610, 3,1,txt_4610
block_3ds 0x4627, 3,1,txt_4627
block_3ds 0x4630, 3,1,txt_4630
block_3ds 0x4641, 3,1,txt_4641
block_3ds 0x4650, 3,1,txt_4650
block_3ds 0x4651, 3,1,txt_4651
block_3ds 0x4652, 3,1,txt_4652
block_3ds 0x4653, 3,1,txt_4653
block_3ds 0x4656, 3,1,txt_4656
block_3ds 0x4658, 3,1,txt_4658
block_3ds 0x4620, 3,1,txt_4620
block_3ds 0x4625, 3,1,txt_4625
block_3ds 0x4659, 3,1,txt_4659
block_3ds 0x465a, 3,1,txt_465a
block_3ds 0x465b, 3,1,txt_465b
block_3ds 0xa230, 3,1,txt_a230
block_3ds 0xa220, 3,1,txt_a220
block_3ds 0xa351, 3,1,txt_a351
block_3ds 0xb007, 3,1,txt_b007
block_3ds 0xb008, 3,1,txt_b008
block_3ds 0xb022, 3,1,txt_b022
block_3ds 0xb030, 3,1,txt_b030
block_3ds 0xa040, 3,1,txt_a040
block_3ds 0xa041, 3,1,txt_a041
block_3ds 0xa050, 3,1,txt_a050
block_3ds 0xa052, 3,1,txt_a052
block_3ds 0xa053, 3,1,txt_a053
block_3ds 0xa081, 3,1,txt_a081
block_3ds 0xa083, 3,1,txt_a083
block_3ds 0xa084, 3,1,txt_a084
block_3ds 0xa085, 3,1,txt_a085
block_3ds 0xa087, 3,1,txt_a087
block_3ds 0xa088, 3,1,txt_a088
block_3ds 0xa08a, 3,1,txt_a08a
block_3ds 0xa08c, 3,1,txt_a08c
block_3ds 0xa08e, 3,1,txt_a08e
.end:
if lang eq ru_RU
txt_0002 db '3ds <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
txt_0011 db '<27><><EFBFBD><EFBFBD> rgb (<28><><EFBFBD><EFBFBD><E2AEA2> <20><><EFBFBD>)',0
;txt_0012 db 'LIN_COLOR_24',0
;txt_0030 db 'Percentage value (int)',0
;txt_0031 db 'Percentage value (float)',0
txt_0100 db 'Master scale',0
txt_2100 db '<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><20><EFBFBD>',0
txt_3d3d db '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ꥪ⮢',0
txt_4000 db '<27><><EFBFBD> (<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)',0
txt_4100 db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>',0
txt_4110 db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
txt_4120 db '<27><><EFBFBD><20><EFBFBD><E0A0AD>',0
txt_4130 db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD>',0
txt_4140 db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD>',0
txt_4160 db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
txt_4600 db '<27><><EFBFBD><EFBFBD>',0
txt_4700 db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
txt_a000 db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A8A0>',0
txt_a010 db '<27><><EFBFBD><EFBFBD>騩 梥<EFBFBD>',0
txt_a020 db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>',0
txt_a030 db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><>',0
txt_a100 db '<27><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A8A0> [1=flat 2=gouraud 3=phong 4=metal]',0
txt_a200 db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1',0
txt_a300 db '<27><><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
;txt_a353 db 'MAT_MAP_TEXBLUR',0
txt_afff db '<27><><EFBFBD><EFBFBD><EFBFBD>',0
txt_b000 db '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>',0
txt_b002 db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>',0
;txt_b009 db 'KFCURTIME',0
;txt_b00a db 'KFHDR',0
txt_b010 db '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EAA5AA>',0
txt_b011 db '<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
txt_b013 db '<27><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EAA5AA>',0
txt_b014 db 'Bound box',0
txt_b020 db '<27><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
txt_b021 db '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E9A5AD>',0
txt_b003 db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
txt_b023 db '<27><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> fov <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
txt_b024 db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> roll <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
txt_b004 db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "楫<>" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
;--- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>
txt_4111 db '<27><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>設',0
txt_4150 db 'Smoothing group list',0
txt_4165 db 'Object color in editor',0
txt_4610 db '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><>',0
txt_4627 db 'Spot raytrace',0
txt_4630 db 'Light shadowed',0
txt_4641 db 'Spot shadow map',0
txt_4650 db 'Spot show cone',0
txt_4651 db 'Spot is rectangular',0
txt_4652 db 'Spot overshoot',0
txt_4653 db 'Spot map',0
txt_4656 db 'Spot roll',0
txt_4658 db 'Spot ray trace bias',0
txt_4620 db 'Light off',0
txt_4625 db 'Attenuation on',0
txt_4659 db 'Range start',0
txt_465a db 'Range end',0
txt_465b db 'Multiplier',0
txt_a230 db '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⪠ ५<><E0A5AB><EFBFBD><EFBFBD>',0
txt_a220 db '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><E0A0A6><EFBFBD><EFBFBD>',0
txt_a351 db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E0A0A7>',0
txt_b007 db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD> <20>ᢥ饭<EFBFBD><EFBFBD>',0
txt_b008 db '<27><><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)',0
txt_b022 db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
txt_b030 db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>',0
txt_a040 db 'Shininess percent',0
txt_a041 db 'Shininess strength percent',0
txt_a050 db 'Transparency percent',0
txt_a052 db 'Transparency falloff percent',0
txt_a053 db 'Reflection blur percent',0
txt_a081 db '2 sided',0
txt_a083 db 'Add trans',0
txt_a084 db 'Self illum',0
txt_a085 db 'Wire frame on',0
txt_a087 db 'Wire thickness',0
txt_a088 db 'Face map',0
txt_a08a db 'In tranc',0
txt_a08c db 'Soften',0
txt_a08e db 'Wire in units',0
txt_not_delete db '<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><><E3A4A0><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD>. <20><> <20><><EFBFBD><EFBFBD>饭.',0
else
txt_0002 db '3ds version',0
txt_0011 db 'Color rgb (byte format)',0
txt_0100 db 'Master scale',0
txt_2100 db 'Ambient color',0
txt_3d3d db 'Editor chunk',0
txt_4000 db 'Object (with name)',0
txt_4100 db 'Triangular mesh',0
txt_4110 db 'Vertices list',0
txt_4120 db 'Faces description',0
txt_4130 db 'Faces material',0
txt_4140 db 'Mapping coordinates list',0
txt_4160 db 'Local coordinate system',0
txt_4600 db 'Light',0
txt_4700 db 'Camera',0
txt_a000 db 'Material name',0
txt_a010 db 'Ambient color',0
txt_a020 db 'Diffuse color',0
txt_a030 db 'Specular color',0
txt_a100 db 'Material type [1=flat 2=gouraud 3=phong 4=metal]',0
txt_a200 db 'Texture map 1',0
txt_a300 db 'Mapping filename',0
txt_afff db 'Meterial',0
txt_b000 db 'Keyframer',0
txt_b002 db 'Mesh information',0
txt_b010 db 'Object name',0
txt_b011 db 'Instance name',0
txt_b013 db 'Object pivot point',0
txt_b014 db 'Bound box',0
txt_b020 db 'Position track',0
txt_b021 db 'Rotation track',0
txt_b003 db 'Camera information',0
txt_b023 db 'Fov track',0
txt_b024 db 'Roll track',0
txt_b004 db 'Camera target information',0
;---
txt_4111 db 'Vertex flags',0
txt_4150 db 'Smoothing group list',0
txt_4165 db 'Object color in editor',0
txt_4610 db 'Spotlight',0
txt_4627 db 'Spot raytrace',0
txt_4630 db 'Light shadowed',0
txt_4641 db 'Spot shadow map',0
txt_4650 db 'Spot show cone',0
txt_4651 db 'Spot is rectangular',0
txt_4652 db 'Spot overshoot',0
txt_4653 db 'Spot map',0
txt_4656 db 'Spot roll',0
txt_4658 db 'Spot ray trace bias',0
txt_4620 db 'Light off',0
txt_4625 db 'Attenuation on',0
txt_4659 db 'Range start',0
txt_465a db 'Range end',0
txt_465b db 'Multiplier',0
txt_a230 db 'Bump map',0
txt_a220 db 'Reflection map',0
txt_a351 db 'Mapping parameters',0
txt_b007 db 'Spot light information',0
txt_b008 db 'Frames (Start and End)',0
txt_b022 db 'Scale track',0
txt_b030 db 'Hierarchy position',0
txt_a040 db 'Shininess percent',0
txt_a041 db 'Shininess strength percent',0
txt_a050 db 'Transparency percent',0
txt_a052 db 'Transparency falloff percent',0
txt_a053 db 'Reflection blur percent',0
txt_a081 db '2 sided',0
txt_a083 db 'Add trans',0
txt_a084 db 'Self illum',0
txt_a085 db 'Wire frame on',0
txt_a087 db 'Wire thickness',0
txt_a088 db 'Face map',0
txt_a08a db 'In tranc',0
txt_a08c db 'Soften',0
txt_a08e db 'Wire in units',0
txt_not_delete db 'I can not delete the selected chunk. It is protected.',0
end if
if lang eq ru_RU
txt_open_3ds db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><>:',0
txt_no_3ds: db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><> <20><> <20> <20><><EFBFBD><E0ACA0> *.3ds ',39
.zag: rb 8
db 39,0
txt_3ds_err_sizes db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
txt_count db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢮',0
txt_3ds_offs:
db '<27><><EFBFBD><EFBFBD><E9A5AD>: '
.dig: rb 8
db ' <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: '
.siz: rb 8
db 0
txt_mat_null db '<27><><EFBFBD><EFBFBD><EFBFBD><E0A8A0> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
else
txt_open_3ds db 'Open file:',0
txt_no_3ds: db 'Open file not in format *.3ds ',39
.zag: rb 8
db 39,0
txt_3ds_err_sizes db 'File may be corrupted',0
txt_count db 'Count',0
txt_3ds_offs:
db 'Offset: '
.dig: rb 8
db ' Size: '
.siz: rb 8
db 0
txt_mat_null db 'No materials found',0
end if
;
; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᮡ࠭<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *.3ds
;
; Language support for locales: ru_RU (CP866), en_US.
MAX_FILE_LEVEL equ 20 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
sizeof.block_3ds equ 9
can_save db 0 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>
macro block_3ds id,icon,par,caption
{
dw id ;+0 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD> 3ds
dw icon ;+2 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
db par ;+4 <EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (0-<EFBFBD><EFBFBD> 1-<EFBFBD><EFBFBD><EFBFBD>)
dd caption+0 ;+5 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
CHUNK_MAIN equ 0x4D4D ; [-] <EFBFBD><EFBFBD>
CHUNK_ambient_color equ 0x2100 ; [-] ambient color
CHUNK_OBJMESH equ 0x3D3D ; [-] <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>
CHUNK_OBJBLOCK equ 0x4000 ; [+] <EFBFBD><EFBFBD><EFBFBD>
CHUNK_TRIMESH equ 0x4100 ; [-] trimesh-<EFBFBD><EFBFBD><EFBFBD>
CHUNK_VERTLIST equ 0x4110 ; [+] ᯨ᮪ <EFBFBD><EFBFBD><EFBFBD>
CHUNK_FACELIST equ 0x4120 ; [+] ᯨ᮪ <EFBFBD><EFBFBD><EFBFBD>
CHUNK_FACEMAT equ 0x4130 ; [+] <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>
CHUNK_MAPLIST equ 0x4140 ; [+] <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHUNK_TRMATRIX equ 0x4160 ; [+] <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHUNK_CAMERA equ 0x4700 ; [+] <EFBFBD><EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHUNK_MATERIAL equ 0xAFFF ; [-] <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHUNK_MATNAME equ 0xA000 ; [+] <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHUNK_TEXTURE equ 0xA200 ; [-] <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHUNK_MAPFILE equ 0xA300 ; [+] <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHUNK_KEYFRAMER equ 0xB000 ; [-] <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHUNK_TRACKINFO equ 0xB002 ; [-] <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHUNK_TRACKOBJNAME equ 0xB010 ; [+] <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHUNK_TRACKPIVOT equ 0xB013 ; [+] <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHUNK_TRACKPOS equ 0xB020 ; [+] <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHUNK_TRACKROTATE equ 0xB021 ; [+] <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHUNK_TRACKCAMERA equ 0xB003 ; [-] <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHUNK_TRACKFOV equ 0xB023 ; [+] <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> fov <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHUNK_TRACKROLL equ 0xB024 ; [+] <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> roll <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHUNK_TRACKCAMTGT equ 0xB004 ; [-] <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<EFBFBD>" <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD>⬥祭<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
align 4
type_bloks:
block_3ds 0x0002,5,1,txt_0002
block_3ds 0x3d3e,5,1 ; [+] mesh version
block_3ds 0x0011,4,1,txt_0011
block_3ds 0x0100,3,1,txt_0100
block_3ds CHUNK_ambient_color,3,0,txt_2100 ; [-] ambient color
block_3ds CHUNK_OBJMESH, 3,0,txt_3d3d
block_3ds CHUNK_OBJBLOCK,11,1,txt_4000
block_3ds CHUNK_TRIMESH, 3,0,txt_4100
block_3ds CHUNK_VERTLIST,8,1,txt_4110
block_3ds CHUNK_FACELIST,3,1,txt_4120
block_3ds CHUNK_FACEMAT,10,1,txt_4130
block_3ds CHUNK_MAPLIST, 3,1,txt_4140
block_3ds CHUNK_TRMATRIX,3,1,txt_4160
block_3ds 0x4600,3,1,txt_4600
block_3ds CHUNK_CAMERA, 3,1,txt_4700
block_3ds CHUNK_MATERIAL,10,0,txt_afff
block_3ds CHUNK_MATNAME, 3,1,txt_a000
block_3ds 0xa010,4,0,txt_a010
block_3ds 0xa020,4,0,txt_a020
block_3ds 0xa030,4,0,txt_a030
block_3ds 0xa100,5,1,txt_a100
block_3ds CHUNK_TEXTURE, 3,0,txt_a200
block_3ds CHUNK_MAPFILE, 6,1,txt_a300
block_3ds CHUNK_KEYFRAMER, 7,0,txt_b000
block_3ds CHUNK_TRACKINFO, 3,0,txt_b002
block_3ds CHUNK_TRACKOBJNAME,3,1,txt_b010
block_3ds 0xb011,3,1,txt_b011
block_3ds CHUNK_TRACKPIVOT, 3,1,txt_b013
block_3ds 0xb014,3,1,txt_b014
block_3ds CHUNK_TRACKPOS, 3,1,txt_b020
block_3ds CHUNK_TRACKROTATE, 3,1,txt_b021
block_3ds CHUNK_TRACKCAMERA, 7,0,txt_b003
block_3ds CHUNK_TRACKFOV, 7,1,txt_b023
block_3ds CHUNK_TRACKROLL, 7,1,txt_b024
block_3ds CHUNK_TRACKCAMTGT, 7,0,txt_b004
;--- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>
block_3ds 0x4111, 3,1,txt_4111
block_3ds 0x4150, 3,1,txt_4150
block_3ds 0x4165, 3,1,txt_4165
block_3ds 0x4610, 3,1,txt_4610
block_3ds 0x4627, 3,1,txt_4627
block_3ds 0x4630, 3,1,txt_4630
block_3ds 0x4641, 3,1,txt_4641
block_3ds 0x4650, 3,1,txt_4650
block_3ds 0x4651, 3,1,txt_4651
block_3ds 0x4652, 3,1,txt_4652
block_3ds 0x4653, 3,1,txt_4653
block_3ds 0x4656, 3,1,txt_4656
block_3ds 0x4658, 3,1,txt_4658
block_3ds 0x4620, 3,1,txt_4620
block_3ds 0x4625, 3,1,txt_4625
block_3ds 0x4659, 3,1,txt_4659
block_3ds 0x465a, 3,1,txt_465a
block_3ds 0x465b, 3,1,txt_465b
block_3ds 0xa230, 3,1,txt_a230
block_3ds 0xa220, 3,1,txt_a220
block_3ds 0xa351, 3,1,txt_a351
block_3ds 0xb007, 3,1,txt_b007
block_3ds 0xb008, 3,1,txt_b008
block_3ds 0xb022, 3,1,txt_b022
block_3ds 0xb030, 3,1,txt_b030
block_3ds 0xa040, 3,1,txt_a040
block_3ds 0xa041, 3,1,txt_a041
block_3ds 0xa050, 3,1,txt_a050
block_3ds 0xa052, 3,1,txt_a052
block_3ds 0xa053, 3,1,txt_a053
block_3ds 0xa081, 3,1,txt_a081
block_3ds 0xa083, 3,1,txt_a083
block_3ds 0xa084, 3,1,txt_a084
block_3ds 0xa085, 3,1,txt_a085
block_3ds 0xa087, 3,1,txt_a087
block_3ds 0xa088, 3,1,txt_a088
block_3ds 0xa08a, 3,1,txt_a08a
block_3ds 0xa08c, 3,1,txt_a08c
block_3ds 0xa08e, 3,1,txt_a08e
.end:
if lang eq ru_RU
txt_0002 db '3ds <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
txt_0011 db '<EFBFBD><EFBFBD><EFBFBD><EFBFBD> rgb (<28><><EFBFBD><EFBFBD><E2AEA2> <20><><EFBFBD>)',0
;txt_0012 db 'LIN_COLOR_24',0
;txt_0030 db 'Percentage value (int)',0
;txt_0031 db 'Percentage value (float)',0
txt_0100 db 'Master scale',0
txt_2100 db '<27><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><20><EFBFBD>',0
txt_3d3d db '<27><><EFBFBD><EFBFBD><EFBFBD> <20><>ꥪ⮢',0
txt_4000 db '<27><><EFBFBD> (<28> <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)',0
txt_4100 db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>',0
txt_4110 db '<27><><EFBFBD> <20><><EFBFBD>',0
txt_4120 db '<27><><EFBFBD><20><EFBFBD><EFBFBD>',0
txt_4130 db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD>',0
txt_4140 db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD>',0
txt_4160 db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A5A2><EFBFBD>',0
txt_4600 db '<27><><EFBFBD><EFBFBD>',0
txt_4700 db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
txt_a000 db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
txt_a010 db '<27><><EFBFBD><EFBFBD><>',0
txt_a020 db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><>',0
txt_a030 db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>',0
txt_a100 db '<27><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [1=flat 2=gouraud 3=phong 4=metal]',0
txt_a200 db '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A8A0> 1',0
txt_a300 db '<27><><EFBFBD><><E4A0A9><><E2A5AA><EFBFBD><EFBFBD><EFBFBD>',0
;txt_a353 db 'MAT_MAP_TEXBLUR',0
txt_afff db '<27><><EFBFBD><EFBFBD><EFBFBD>',0
txt_b000 db '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>',0
txt_b002 db '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EAA5AA>',0
;txt_b009 db 'KFCURTIME',0
;txt_b00a db 'KFHDR',0
txt_b010 db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EAA5AA>',0
txt_b011 db '<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
txt_b013 db '<27><><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
txt_b014 db 'Bound box',0
txt_b020 db '<27><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
txt_b021 db '<27><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>',0
txt_b003 db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
txt_b023 db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> fov <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
txt_b024 db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> roll <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
txt_b004 db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "楫<>" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
;--- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>
txt_4111 db '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>',0
txt_4150 db 'Smoothing group list',0
txt_4165 db 'Object color in editor',0
txt_4610 db '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><>',0
txt_4627 db 'Spot raytrace',0
txt_4630 db 'Light shadowed',0
txt_4641 db 'Spot shadow map',0
txt_4650 db 'Spot show cone',0
txt_4651 db 'Spot is rectangular',0
txt_4652 db 'Spot overshoot',0
txt_4653 db 'Spot map',0
txt_4656 db 'Spot roll',0
txt_4658 db 'Spot ray trace bias',0
txt_4620 db 'Light off',0
txt_4625 db 'Attenuation on',0
txt_4659 db 'Range start',0
txt_465a db 'Range end',0
txt_465b db 'Multiplier',0
txt_a230 db '<27><><EFBFBD><EFBFBD><EFBFBD>⪠ ५<><E0A5AB><EFBFBD><EFBFBD>',0
txt_a220 db '<27><><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><E0A0A6><EFBFBD><EFBFBD>',0
txt_a351 db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E0A0A7>',0
txt_b007 db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD> <20>ᢥ饭<EFBFBD><EFBFBD>',0
txt_b008 db '<27><><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><E7A0AB><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)',0
txt_b022 db '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
txt_b030 db '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>',0
txt_a040 db 'Shininess percent',0
txt_a041 db 'Shininess strength percent',0
txt_a050 db 'Transparency percent',0
txt_a052 db 'Transparency falloff percent',0
txt_a053 db 'Reflection blur percent',0
txt_a081 db '2 sided',0
txt_a083 db 'Add trans',0
txt_a084 db 'Self illum',0
txt_a085 db 'Wire frame on',0
txt_a087 db 'Wire thickness',0
txt_a088 db 'Face map',0
txt_a08a db 'In tranc',0
txt_a08c db 'Soften',0
txt_a08e db 'Wire in units',0
txt_not_delete db '<27><> <20><><EFBFBD><EFBFBD><><E3A4A0><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD>. <20><> <20><><EFBFBD><EFBFBD>饭.',0
else ; Default to en_US
txt_0002 db '3ds version',0
txt_0011 db 'Color rgb (byte format)',0
txt_0100 db 'Master scale',0
txt_2100 db 'Ambient color',0
txt_3d3d db 'Editor chunk',0
txt_4000 db 'Object (with name)',0
txt_4100 db 'Triangular mesh',0
txt_4110 db 'Vertices list',0
txt_4120 db 'Faces description',0
txt_4130 db 'Faces material',0
txt_4140 db 'Mapping coordinates list',0
txt_4160 db 'Local coordinate system',0
txt_4600 db 'Light',0
txt_4700 db 'Camera',0
txt_a000 db 'Material name',0
txt_a010 db 'Ambient color',0
txt_a020 db 'Diffuse color',0
txt_a030 db 'Specular color',0
txt_a100 db 'Material type [1=flat 2=gouraud 3=phong 4=metal]',0
txt_a200 db 'Texture map 1',0
txt_a300 db 'Mapping filename',0
txt_afff db 'Meterial',0
txt_b000 db 'Keyframer',0
txt_b002 db 'Mesh information',0
txt_b010 db 'Object name',0
txt_b011 db 'Instance name',0
txt_b013 db 'Object pivot point',0
txt_b014 db 'Bound box',0
txt_b020 db 'Position track',0
txt_b021 db 'Rotation track',0
txt_b003 db 'Camera information',0
txt_b023 db 'Fov track',0
txt_b024 db 'Roll track',0
txt_b004 db 'Camera target information',0
;---
txt_4111 db 'Vertex flags',0
txt_4150 db 'Smoothing group list',0
txt_4165 db 'Object color in editor',0
txt_4610 db 'Spotlight',0
txt_4627 db 'Spot raytrace',0
txt_4630 db 'Light shadowed',0
txt_4641 db 'Spot shadow map',0
txt_4650 db 'Spot show cone',0
txt_4651 db 'Spot is rectangular',0
txt_4652 db 'Spot overshoot',0
txt_4653 db 'Spot map',0
txt_4656 db 'Spot roll',0
txt_4658 db 'Spot ray trace bias',0
txt_4620 db 'Light off',0
txt_4625 db 'Attenuation on',0
txt_4659 db 'Range start',0
txt_465a db 'Range end',0
txt_465b db 'Multiplier',0
txt_a230 db 'Bump map',0
txt_a220 db 'Reflection map',0
txt_a351 db 'Mapping parameters',0
txt_b007 db 'Spot light information',0
txt_b008 db 'Frames (Start and End)',0
txt_b022 db 'Scale track',0
txt_b030 db 'Hierarchy position',0
txt_a040 db 'Shininess percent',0
txt_a041 db 'Shininess strength percent',0
txt_a050 db 'Transparency percent',0
txt_a052 db 'Transparency falloff percent',0
txt_a053 db 'Reflection blur percent',0
txt_a081 db '2 sided',0
txt_a083 db 'Add trans',0
txt_a084 db 'Self illum',0
txt_a085 db 'Wire frame on',0
txt_a087 db 'Wire thickness',0
txt_a088 db 'Face map',0
txt_a08a db 'In tranc',0
txt_a08c db 'Soften',0
txt_a08e db 'Wire in units',0
txt_not_delete db 'Cannot delete the selected chunk: it is protected.',0
end if
if lang eq ru_RU
txt_open_3ds db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><>:',0
txt_no_3ds: db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><> <20><> <20> <20><><EFBFBD><E0ACA0> *.3ds ',39
.zag: rb 8
db 39,0
txt_3ds_err_sizes db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><> <20><><EFBFBD><EFBFBD><E0A5A6><EFBFBD>',0
txt_count db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢮',0
txt_3ds_offs:
db '<27><><EFBFBD><EFBFBD><E9A5AD>: '
.dig: rb 8
db ' <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: '
.siz: rb 8
db 0
txt_mat_null db '<27><><EFBFBD><EFBFBD><EFBFBD><E0A8A0> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
else ; Default to en_US
txt_open_3ds db 'Open file:',0
txt_no_3ds: db 'Open file not in format *.3ds ',39
.zag: rb 8
db 39,0
txt_3ds_err_sizes db 'File may be corrupted',0
txt_count db 'Count',0
txt_3ds_offs:
db 'Offset: '
.dig: rb 8
db ' Size: '
.siz: rb 8
db 0
txt_mat_null db 'No materials found',0
end if

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1 +1,55 @@
; Language support for locales: ru_RU (CP866), en_US.
if lang eq ru_RU
sz_main_menu_View db '<27><><EFBFBD>', 0
sz_main_menu_Veiw_Vertexes db '<27><><EFBFBD><EFBFBD> <20><><EFBFBD>.', 0
sz_main_menu_Veiw_Faces db '<27><><EFBFBD><E0AAA0><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD>.', 0
sz_main_menu_Veiw_Faces_Fill db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD>.', 0
sz_main_menu_Veiw_Light db '<27><><EFBFBD><EFBFBD> <20><><EFBFBD>./<2F>몫.', 0
sz_main_menu_Veiw_Smooth db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>./<2F>몫.', 0
sz_main_menu_Veiw_Reset db '<27><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>', 0
if version_edit eq 0
sz_main_menu_Veiw_Faces_Mat db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6A2A5><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD>.', 0
else
sz_main_menu_Vertexes db '<27><><EFBFBD><EFBFBD>', 0
sz_main_menu_Vertexes_Select db '<27><EFBFBD><EBA4A5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>', 0
sz_main_menu_Vertexes_Deselect db '<27><EFBFBD><E2ACA5><EFBFBD><EFBFBD> <20><><EFBFBD> <20><EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD>', 0
sz_main_menu_Average_x db '<27><EFBFBD><E0A5A4><EFBFBD> x',0
sz_main_menu_Average_y db '<27><EFBFBD><E0A5A4><EFBFBD> y',0
sz_main_menu_Average_z db '<27><EFBFBD><E0A5A4><EFBFBD> z',0
end if
else ; Default to en_US
sz_main_menu_View db 'View', 0
sz_main_menu_Veiw_Vertexes db 'Vertexes on', 0
sz_main_menu_Veiw_Faces db 'Edges on', 0
sz_main_menu_Veiw_Faces_Fill db 'Faces on', 0
sz_main_menu_Veiw_Light db 'Light on/off', 0
sz_main_menu_Veiw_Smooth db 'Smooth on/off', 0
sz_main_menu_Veiw_Reset db 'Reset settings', 0
if version_edit eq 0
sz_main_menu_Veiw_Faces_Mat db 'Diferent color faces on', 0
else
sz_main_menu_Vertexes db 'Vertexes', 0
sz_main_menu_Vertexes_Select db 'Select vertex', 0
sz_main_menu_Vertexes_Deselect db 'Deselect all', 0
sz_main_menu_Average_x db 'Average x',0
sz_main_menu_Average_y db 'Average y',0
sz_main_menu_Average_z db 'Average z',0
end if
end if
main_menu dd 0
main_menu_file dd 0
main_menu_view dd 0
main_menu_vertexes dd 0
KMENUITEM_NORMAL equ 0
KMENUITEM_SUBMENU equ 1
KMENUITEM_SEPARATOR equ 2

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,318 +1,318 @@
; <20>ணࠬ<E0AEA3><E0A0AC> <20><><EFBFBD> <20><EFBFBD><EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><20><> <20><><EFBFBD>
; <20> <20><><EFBFBD> float, double, <20><><E2A0AA> <20><> 10 <20><><EFBFBD> 16 <20><><EFBFBD><E7ADAE>
; <20><> float.
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><EFBFBD><E1ADAE> hex2dec2bin <20> <20><EFBFBD><20><><><E4A0A9> list2_05.inc
; (<28><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E3ABA0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><ECA5A2> 24.05.2002),
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ChE <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD> <20> 16 <20><> 32 <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><E1A5AC><EFBFBD><EFBFBD> fasm.
; <20>ணࠬ<E0AEA3><E0A0AC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E2A0AA> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
; 1) <20><><20> <20><><EFBFBD><E0AEAA><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><E0A5A2><EFBFBD><EFBFBD> <20> 4 <20><><EFBFBD><EFBFBD><EFBFBD> (float) <20> <20><><EFBFBD><E8A8AD><EFBFBD> <20><><EFBFBD>
; 2) <20><><20> <20><><EFBFBD><E0AEAA><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><E0A5A2><EFBFBD><EFBFBD> <20> 8 <20><><EFBFBD><EFBFBD> (double) <20> <20><><EFBFBD><E8A8AD><EFBFBD> <20><><EFBFBD>
; 3) <20><><20> <20><><EFBFBD><E8A8AD><EFBFBD> <20><><EFBFBD><EFBFBD> (float) <20><><EFBFBD><E0A5A2><EFBFBD><EFBFBD> <20> <20><><EFBFBD><E0AEAA><EFBFBD><EFBFBD> <20><><EFBFBD> (5 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><20><><EFBFBD><EFBFBD>⮩)
use32
org 0
db 'MENUET01'
dd 1,start,i_end,e_end,e_end,0,sys_path
include '../../../proc32.inc'
include '../../../macros.inc'
include '../../../KOSfuncs.inc'
include '../../../load_lib.mac'
include '../../../develop/libraries/box_lib/trunk/box_lib.mac'
include '../../../develop/info3ds/info_fun_float.inc'
include 'lang.inc'
@use_library
align 4
start:
load_libraries l_libs_start,l_libs_end
;<3B><EFBFBD><20><><>쪮 㤠筮 <20><><EFBFBD><EFBFBD><E3A7A8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov ebp,lib_0
cmp dword[ebp+ll_struc_size-4],0
jz @f
mcall SF_TERMINATE_PROCESS
@@:
mcall SF_SET_EVENTS_MASK,0xC0000027
mcall SF_STYLE_SETTINGS,SSF_GET_COLORS, sys_colors, sizeof.system_colors
edit_boxes_set_sys_color edit1,editboxes_end,sys_colors
option_boxes_set_sys_color sys_colors,Option_boxes1
align 4
red:
call draw_window
align 4
still:
mcall SF_WAIT_EVENT
cmp eax,1 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1AEA2><EFBFBD> <20><><EFBFBD><EFBFBD> ?
je red ; <20><20><> - <20><> <20><><EFBFBD><EFBFBD><EFBFBD> red
cmp eax,2 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ?
je key ; <20><20><> - <20><> key
cmp eax,3 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ?
je button ; <20><20><> - <20><> button
cmp eax,6
je mouse
jmp still ; <20><20><><EFBFBD><>⨥ - <20> <20><><EFBFBD><><E6A8AA>
align 4
key: ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mcall SF_GET_KEY
;cmp ah,13
stdcall [edit_box_key], edit1
jmp still ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><><E6A8AA>
align 4
button:
mcall SF_GET_BUTTON
cmp ah, 1 ; <20><20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>஬ 1,
jne @f
mcall SF_TERMINATE_PROCESS
@@:
cmp ah, 5
jne @f
cmp dword[option_group1],opt3
jne .opt_3_end
stdcall conv_str_to_int,[edit1.text]
mov dword[Data_Double],eax
finit
fld dword[Data_Double]
fstp qword[Data_Double]
; Data_Double - <20><EFBFBD>ࠧ㥬<E0A0A7><E3A5AC> <20><>
mov word[NumberSymbolsAD],8 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><20><><20><><EFBFBD><EFBFBD>⮩ (1-17)
call DoubleFloat_to_String
call String_crop_0
mov dword[Data_Double],eax ;<3B><><EFBFBD><EFBFBD><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD> <20> <20><><EFBFBD><E0ACA0> float
jmp .opt_all_end
.opt_3_end:
mov esi,string1
mov edi,Data_String
cld
mov ecx,32
rep movsb
call String_to_DoubleFloat
cmp dword[option_group1],opt1
jne .opt_all_end ;<3B><20><><EFBFBD>࠭ float, <20><> <20><EFBFBD>ࠧ㥬 <20><><><E0A0AD> <20><><EFBFBD><EFBFBD><EFBFBD><E7A5AD><EFBFBD><EFBFBD> double
finit
fld qword[Data_Double] ;<3B><><EFBFBD> <20><> double
fstp dword[Data_Double] ;<3B> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> float
.opt_all_end:
jmp red
@@:
jmp still
align 4
mouse:
stdcall [edit_box_mouse], edit1
stdcall [option_box_mouse], Option_boxes1
jmp still
;------------------------------------------------
align 4
draw_window:
mcall SF_STYLE_SETTINGS,SSF_GET_COLORS, sys_colors, sizeof.system_colors
mcall SF_REDRAW,SSF_BEGIN_DRAW
mov edx, 0x14000000
or edx, [sys_colors.work]
mcall SF_CREATE_WINDOW, (200 shl 16)+300, (200 shl 16)+175, ,,title
mcall SF_DEFINE_BUTTON, ((300-53) shl 16)+38, (145 shl 16)+15, 5, [sys_colors.work_button] ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ok
mov ecx, 0x80000000
or ecx, [sys_colors.work_text]
mcall SF_DRAW_TEXT, (15 shl 16) +30,, binstr,
mcall , (15 shl 16) +58,, decstr,
mcall , ((240-56*3) shl 16) +58,, Data_String,
mcall , (15 shl 16) +72,, hexstr,
mcall , (15 shl 16)+150,, numstr,
mov ecx, 0x80000000
or ecx, [sys_colors.work_button_text]
mcall , ((300-42) shl 16)+149, , Okstr,3
cmp dword[option_group1],opt1
je @f ;<3B><20><><EFBFBD>࠭ float, <20><> <20><><EFBFBD><EFBFBD>訥 4 <20><><EFBFBD><EFBFBD><EFBFBD> (<28><> double) <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
cmp dword[option_group1],opt3
je @f ;<3B><20><><EFBFBD>࠭ float, <20><> <20><><EFBFBD><EFBFBD>訥 4 <20><><EFBFBD><EFBFBD><EFBFBD> (<28><> double) <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
mov ecx, dword[Data_Double+4]
mcall SF_DRAW_NUMBER, (8 shl 16)+256,,(185 shl 16)+72,[sys_colors.work_text] ; 16-<2D><><EFBFBD>
mov ecx, dword[Data_Double+4]
mcall ,(8 shl 16)+512,,(240 shl 16)+30, ; 2-<2D><><EFBFBD>
ror ecx, 8
mcall ,,,((240-56) shl 16)+30,
ror ecx, 8
mcall ,,,((240-56*2) shl 16)+30,
ror ecx, 8
mcall ,,,((240-56*3) shl 16)+30,
ror ecx, 8
@@:
mov ecx,dword[Data_Double]
mcall SF_DRAW_NUMBER, (8 shl 16)+256,,(240 shl 16)+72,[sys_colors.work_text] ; 16-<2D><><EFBFBD>
mov ecx,dword[Data_Double]
mcall , (8 shl 16)+512,,(240 shl 16)+44, ; 2-<2D><><EFBFBD>
ror ecx, 8
mcall ,,,((240-56) shl 16)+44,
ror ecx, 8
mcall ,,,((240-56*2) shl 16)+44,
ror ecx, 8
mcall ,,,((240-56*3) shl 16)+44,
ror ecx, 8
mcall SF_DRAW_LINE, (15 shl 16)+300-15, (137 shl 16)+137, [sys_colors.work_graph]
stdcall [edit_box_draw], edit1
stdcall [option_box_draw], Option_boxes1
mcall SF_REDRAW,SSF_END_DRAW
ret
string1 db 32 dup (0)
string1_end:
;input:
; buf - 㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD>, <20><><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> 10 <20><><EFBFBD> 16 <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
;output:
; eax - <20><>
align 4
proc conv_str_to_int uses ebx ecx esi, buf:dword
xor eax,eax
xor ebx,ebx
mov esi,[buf]
;<3B><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A5AB><EFBFBD><EFBFBD> <20><>
xor ecx,ecx
inc ecx
cmp byte[esi],'-'
jne @f
dec ecx
inc esi
@@:
cmp word[esi],'0x'
je .load_digit_16
.load_digit_10: ;<3B><><EFBFBD><EFBFBD><EFBFBD><EBA2A0><EFBFBD> 10-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
mov bl,byte[esi]
cmp bl,'0'
jl @f
cmp bl,'9'
jg @f
sub bl,'0'
imul eax,10
add eax,ebx
inc esi
jmp .load_digit_10
jmp @f
.load_digit_16: ;<3B><><EFBFBD><EFBFBD><EFBFBD><EBA2A0><EFBFBD> 16-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
add esi,2
.cycle_16:
mov bl,byte[esi]
cmp bl,'0'
jl @f
cmp bl,'f'
jg @f
cmp bl,'9'
jle .us1
cmp bl,'A'
jl @f ;<3B><><EFBFBD><E1A5A8><EFBFBD><EFBFBD><><E1A8AC><EFBFBD><EFBFBD> >'9' <20> <'A'
.us1: ;<3B><><EFBFBD><EFBFBD><E2A0A2><EFBFBD> <20><EFBFBD><E1ABAE><EFBFBD>
cmp bl,'F'
jle .us2
cmp bl,'a'
jl @f ;<3B><><EFBFBD><E1A5A8><EFBFBD><EFBFBD><><E1A8AC><EFBFBD><EFBFBD> >'F' <20> <'a'
sub bl,32 ;<3B><><EFBFBD><E0A5A2><EFBFBD><EFBFBD><><E1A8AC><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><><E0A5A3><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E9A5AD> <20><> <20><><EFBFBD><E1ABA5><20><><EFBFBD>
.us2: ;<3B><><EFBFBD><EFBFBD><E2A0A2><EFBFBD> <20><EFBFBD><E1ABAE><EFBFBD>
sub bl,'0'
cmp bl,9
jle .cor1
sub bl,7 ;convert 'A' to '10'
.cor1:
shl eax,4
add eax,ebx
inc esi
jmp .cycle_16
@@:
cmp ecx,0 ;<3B><20><><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥫쭮<E2A5AB>
jne @f
sub ecx,eax
mov eax,ecx
@@:
ret
endp
;-------------------------------------------------
title db 'string to double 03.01.21',0
hexstr db 'hex:',0
decstr db 'dec:',0
binstr db 'bin:',0
if lang eq ru_RU
numstr db '<27><>᫮:',0
Okstr db '<27><><EFBFBD><EFBFBD>',0
else
numstr db 'Number:',0
Okstr db 'Ok',0
end if
mouse_dd dd 0
edit1 edit_box 182, 59, 146, 0xffffff, 0xff, 0x80ff, 0, 0x8000, (string1_end-string1), string1, mouse_dd, 0
editboxes_end:
;option_boxes
opt1 option_box option_group1, 15, 90, 8, 12, 0xffffff, 0x80ff, 0, op_text.1, 17
opt2 option_box option_group1, 15, 106, 8, 12, 0xffffff, 0x80ff, 0, op_text.2, 18
opt3 option_box option_group1, 15, 122, 8, 12, 0xffffff, 0x80ff, 0, op_text.3, 21
op_text: ;⥪<><E2A5AA> <20><><EFBFBD><><E0A0A4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
.1 db 'str(dec) -> float'
.2 db 'str(dec) -> double'
.3 db 'float(dec,hex) -> str'
;㪠<><E3AAA0><EFBFBD> <20><><EFBFBD> option_box
option_group1 dd opt1
Option_boxes1 dd opt1, opt2, opt3, 0
system_dir_0 db '/sys/lib/'
lib_name_0 db 'box_lib.obj',0
l_libs_start:
lib_0 l_libs lib_name_0, library_path, system_dir_0,import_box_lib
l_libs_end:
align 4
import_box_lib:
;dd sz_init1
edit_box_draw dd sz_edit_box_draw
edit_box_key dd sz_edit_box_key
edit_box_mouse dd sz_edit_box_mouse
;edit_box_set_text dd sz_edit_box_set_text
option_box_draw dd aOption_box_draw
option_box_mouse dd aOption_box_mouse
;version_op dd aVersion_op
dd 0,0
;sz_init1 db 'lib_init',0
sz_edit_box_draw db 'edit_box_draw',0
sz_edit_box_key db 'edit_box_key',0
sz_edit_box_mouse db 'edit_box_mouse',0
;sz_edit_box_set_text db 'edit_box_set_text',0
aOption_box_draw db 'option_box_draw',0
aOption_box_mouse db 'option_box_mouse',0
;aVersion_op db 'version_op',0
i_end:
sys_colors system_colors
align 16
sys_path rb 4096
library_path rb 4096
rb 0x400 ;stack
e_end: ; <20><><20><><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>
; <20>ணࠬ<E0AEA3><E0A0AC> <20><><EFBFBD> <20><EFBFBD><EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><20><> <20><><EFBFBD>
; <20> <20><><EFBFBD> float, double, <20><><E2A0AA> <20><> 10 <20><><EFBFBD> 16 <20><><EFBFBD><E7ADAE>
; <20><> float.
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><EFBFBD><E1ADAE> hex2dec2bin <20> <20><EFBFBD><20><><><E4A0A9> list2_05.inc
; (<28><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E3ABA0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><ECA5A2> 24.05.2002),
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ChE <20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD> <20> 16 <20><> 32 <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><E1A5AC><EFBFBD><EFBFBD> fasm.
; <20>ணࠬ<E0AEA3><E0A0AC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E2A0AA> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
; 1) <20><><20> <20><><EFBFBD><E0AEAA><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><E0A5A2><EFBFBD><EFBFBD> <20> 4 <20><><EFBFBD><EFBFBD><EFBFBD> (float) <20> <20><><EFBFBD><E8A8AD><EFBFBD> <20><><EFBFBD>
; 2) <20><><20> <20><><EFBFBD><E0AEAA><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><E0A5A2><EFBFBD><EFBFBD> <20> 8 <20><><EFBFBD><EFBFBD> (double) <20> <20><><EFBFBD><E8A8AD><EFBFBD> <20><><EFBFBD>
; 3) <20><><20> <20><><EFBFBD><E8A8AD><EFBFBD> <20><><EFBFBD><EFBFBD> (float) <20><><EFBFBD><E0A5A2><EFBFBD><EFBFBD> <20> <20><><EFBFBD><E0AEAA><EFBFBD><EFBFBD> <20><><EFBFBD> (5 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><20><><EFBFBD><EFBFBD>⮩)
use32
org 0
db 'MENUET01'
dd 1,start,i_end,e_end,e_end,0,sys_path
include '../../../proc32.inc'
include '../../../macros.inc'
include '../../../KOSfuncs.inc'
include '../../../load_lib.mac'
include '../../../develop/libraries/box_lib/trunk/box_lib.mac'
include '../../../develop/info3ds/info_fun_float.inc'
include 'lang.inc' ; Language support for locales: ru_RU (CP866), en_US.
@use_library
align 4
start:
load_libraries l_libs_start,l_libs_end
;<3B><EFBFBD><20><><>쪮 㤠筮 <20><><EFBFBD><EFBFBD><E3A7A8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov ebp,lib_0
cmp dword[ebp+ll_struc_size-4],0
jz @f
mcall SF_TERMINATE_PROCESS
@@:
mcall SF_SET_EVENTS_MASK,0xC0000027
mcall SF_STYLE_SETTINGS,SSF_GET_COLORS, sys_colors, sizeof.system_colors
edit_boxes_set_sys_color edit1,editboxes_end,sys_colors
option_boxes_set_sys_color sys_colors,Option_boxes1
align 4
red:
call draw_window
align 4
still:
mcall SF_WAIT_EVENT
cmp eax,1 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1AEA2><EFBFBD> <20><><EFBFBD><EFBFBD> ?
je red ; <20><20><> - <20><> <20><><EFBFBD><EFBFBD><EFBFBD> red
cmp eax,2 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ?
je key ; <20><20><> - <20><> key
cmp eax,3 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ?
je button ; <20><20><> - <20><> button
cmp eax,6
je mouse
jmp still ; <20><20><><EFBFBD><>⨥ - <20> <20><><EFBFBD><><E6A8AA>
align 4
key: ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mcall SF_GET_KEY
;cmp ah,13
stdcall [edit_box_key], edit1
jmp still ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><><E6A8AA>
align 4
button:
mcall SF_GET_BUTTON
cmp ah, 1 ; <20><20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>஬ 1,
jne @f
mcall SF_TERMINATE_PROCESS
@@:
cmp ah, 5
jne @f
cmp dword[option_group1],opt3
jne .opt_3_end
stdcall conv_str_to_int,[edit1.text]
mov dword[Data_Double],eax
finit
fld dword[Data_Double]
fstp qword[Data_Double]
; Data_Double - <20><EFBFBD>ࠧ㥬<E0A0A7><E3A5AC> <20><>
mov word[NumberSymbolsAD],8 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><20><><20><><EFBFBD><EFBFBD>⮩ (1-17)
call DoubleFloat_to_String
call String_crop_0
mov dword[Data_Double],eax ;<3B><><EFBFBD><EFBFBD><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD> <20> <20><><EFBFBD><E0ACA0> float
jmp .opt_all_end
.opt_3_end:
mov esi,string1
mov edi,Data_String
cld
mov ecx,32
rep movsb
call String_to_DoubleFloat
cmp dword[option_group1],opt1
jne .opt_all_end ;<3B><20><><EFBFBD>࠭ float, <20><> <20><EFBFBD>ࠧ㥬 <20><><><E0A0AD> <20><><EFBFBD><EFBFBD><EFBFBD><E7A5AD><EFBFBD><EFBFBD> double
finit
fld qword[Data_Double] ;<3B><><EFBFBD> <20><> double
fstp dword[Data_Double] ;<3B> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> float
.opt_all_end:
jmp red
@@:
jmp still
align 4
mouse:
stdcall [edit_box_mouse], edit1
stdcall [option_box_mouse], Option_boxes1
jmp still
;------------------------------------------------
align 4
draw_window:
mcall SF_STYLE_SETTINGS,SSF_GET_COLORS, sys_colors, sizeof.system_colors
mcall SF_REDRAW,SSF_BEGIN_DRAW
mov edx, 0x14000000
or edx, [sys_colors.work]
mcall SF_CREATE_WINDOW, (200 shl 16)+300, (200 shl 16)+175, ,,title
mcall SF_DEFINE_BUTTON, ((300-53) shl 16)+38, (145 shl 16)+15, 5, [sys_colors.work_button] ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ok
mov ecx, 0x80000000
or ecx, [sys_colors.work_text]
mcall SF_DRAW_TEXT, (15 shl 16) +30,, binstr,
mcall , (15 shl 16) +58,, decstr,
mcall , ((240-56*3) shl 16) +58,, Data_String,
mcall , (15 shl 16) +72,, hexstr,
mcall , (15 shl 16)+150,, numstr,
mov ecx, 0x80000000
or ecx, [sys_colors.work_button_text]
mcall , ((300-42) shl 16)+149, , Okstr,3
cmp dword[option_group1],opt1
je @f ;<3B><20><><EFBFBD>࠭ float, <20><> <20><><EFBFBD><EFBFBD>訥 4 <20><><EFBFBD><EFBFBD><EFBFBD> (<28><> double) <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
cmp dword[option_group1],opt3
je @f ;<3B><20><><EFBFBD>࠭ float, <20><> <20><><EFBFBD><EFBFBD>訥 4 <20><><EFBFBD><EFBFBD><EFBFBD> (<28><> double) <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
mov ecx, dword[Data_Double+4]
mcall SF_DRAW_NUMBER, (8 shl 16)+256,,(185 shl 16)+72,[sys_colors.work_text] ; 16-<2D><><EFBFBD>
mov ecx, dword[Data_Double+4]
mcall ,(8 shl 16)+512,,(240 shl 16)+30, ; 2-<2D><><EFBFBD>
ror ecx, 8
mcall ,,,((240-56) shl 16)+30,
ror ecx, 8
mcall ,,,((240-56*2) shl 16)+30,
ror ecx, 8
mcall ,,,((240-56*3) shl 16)+30,
ror ecx, 8
@@:
mov ecx,dword[Data_Double]
mcall SF_DRAW_NUMBER, (8 shl 16)+256,,(240 shl 16)+72,[sys_colors.work_text] ; 16-<2D><><EFBFBD>
mov ecx,dword[Data_Double]
mcall , (8 shl 16)+512,,(240 shl 16)+44, ; 2-<2D><><EFBFBD>
ror ecx, 8
mcall ,,,((240-56) shl 16)+44,
ror ecx, 8
mcall ,,,((240-56*2) shl 16)+44,
ror ecx, 8
mcall ,,,((240-56*3) shl 16)+44,
ror ecx, 8
mcall SF_DRAW_LINE, (15 shl 16)+300-15, (137 shl 16)+137, [sys_colors.work_graph]
stdcall [edit_box_draw], edit1
stdcall [option_box_draw], Option_boxes1
mcall SF_REDRAW,SSF_END_DRAW
ret
string1 db 32 dup (0)
string1_end:
;input:
; buf - 㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD>, <20><><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> 10 <20><><EFBFBD> 16 <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
;output:
; eax - <20><>
align 4
proc conv_str_to_int uses ebx ecx esi, buf:dword
xor eax,eax
xor ebx,ebx
mov esi,[buf]
;<3B><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A5AB><EFBFBD><EFBFBD> <20><>
xor ecx,ecx
inc ecx
cmp byte[esi],'-'
jne @f
dec ecx
inc esi
@@:
cmp word[esi],'0x'
je .load_digit_16
.load_digit_10: ;<3B><><EFBFBD><EFBFBD><EFBFBD><EBA2A0><EFBFBD> 10-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
mov bl,byte[esi]
cmp bl,'0'
jl @f
cmp bl,'9'
jg @f
sub bl,'0'
imul eax,10
add eax,ebx
inc esi
jmp .load_digit_10
jmp @f
.load_digit_16: ;<3B><><EFBFBD><EFBFBD><EFBFBD><EBA2A0><EFBFBD> 16-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
add esi,2
.cycle_16:
mov bl,byte[esi]
cmp bl,'0'
jl @f
cmp bl,'f'
jg @f
cmp bl,'9'
jle .us1
cmp bl,'A'
jl @f ;<3B><><EFBFBD><E1A5A8><EFBFBD><EFBFBD><><E1A8AC><EFBFBD><EFBFBD> >'9' <20> <'A'
.us1: ;<3B><><EFBFBD><EFBFBD><E2A0A2><EFBFBD> <20><EFBFBD><E1ABAE><EFBFBD>
cmp bl,'F'
jle .us2
cmp bl,'a'
jl @f ;<3B><><EFBFBD><E1A5A8><EFBFBD><EFBFBD><><E1A8AC><EFBFBD><EFBFBD> >'F' <20> <'a'
sub bl,32 ;<3B><><EFBFBD><E0A5A2><EFBFBD><EFBFBD><><E1A8AC><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><><E0A5A3><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E9A5AD> <20><> <20><><EFBFBD><E1ABA5><20><><EFBFBD>
.us2: ;<3B><><EFBFBD><EFBFBD><E2A0A2><EFBFBD> <20><EFBFBD><E1ABAE><EFBFBD>
sub bl,'0'
cmp bl,9
jle .cor1
sub bl,7 ;convert 'A' to '10'
.cor1:
shl eax,4
add eax,ebx
inc esi
jmp .cycle_16
@@:
cmp ecx,0 ;<3B><20><><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥫쭮<E2A5AB>
jne @f
sub ecx,eax
mov eax,ecx
@@:
ret
endp
;-------------------------------------------------
title db 'string to double 03.01.21',0
hexstr db 'hex:',0
decstr db 'dec:',0
binstr db 'bin:',0
if lang eq ru_RU
numstr db '<27><>᫮:',0
Okstr db '<27><><EFBFBD><EFBFBD>',0
else ; Default to en_US
numstr db 'Number:',0
Okstr db 'Ok',0
end if
mouse_dd dd 0
edit1 edit_box 182, 59, 146, 0xffffff, 0xff, 0x80ff, 0, 0x8000, (string1_end-string1), string1, mouse_dd, 0
editboxes_end:
;option_boxes
opt1 option_box option_group1, 15, 90, 8, 12, 0xffffff, 0x80ff, 0, op_text.1, 17
opt2 option_box option_group1, 15, 106, 8, 12, 0xffffff, 0x80ff, 0, op_text.2, 18
opt3 option_box option_group1, 15, 122, 8, 12, 0xffffff, 0x80ff, 0, op_text.3, 21
op_text: ;⥪<><E2A5AA> <20><><EFBFBD><><E0A0A4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
.1 db 'str(dec) -> float'
.2 db 'str(dec) -> double'
.3 db 'float(dec,hex) -> str'
;㪠<><E3AAA0><EFBFBD> <20><><EFBFBD> option_box
option_group1 dd opt1
Option_boxes1 dd opt1, opt2, opt3, 0
system_dir_0 db '/sys/lib/'
lib_name_0 db 'box_lib.obj',0
l_libs_start:
lib_0 l_libs lib_name_0, library_path, system_dir_0,import_box_lib
l_libs_end:
align 4
import_box_lib:
;dd sz_init1
edit_box_draw dd sz_edit_box_draw
edit_box_key dd sz_edit_box_key
edit_box_mouse dd sz_edit_box_mouse
;edit_box_set_text dd sz_edit_box_set_text
option_box_draw dd aOption_box_draw
option_box_mouse dd aOption_box_mouse
;version_op dd aVersion_op
dd 0,0
;sz_init1 db 'lib_init',0
sz_edit_box_draw db 'edit_box_draw',0
sz_edit_box_key db 'edit_box_key',0
sz_edit_box_mouse db 'edit_box_mouse',0
;sz_edit_box_set_text db 'edit_box_set_text',0
aOption_box_draw db 'option_box_draw',0
aOption_box_mouse db 'option_box_mouse',0
;aVersion_op db 'version_op',0
i_end:
sys_colors system_colors
align 16
sys_path rb 4096
library_path rb 4096
rb 0x400 ;stack
e_end: ; <20><><20><><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>

View File

@@ -1,491 +1,501 @@
sz htext,'TINYPAD ',APP_VERSION
menubar_res main_menu,\
ru,'<27><><EFBFBD><EFBFBD>' ,mm.File ,onshow.file ,\
ru,'<27><EFBFBD><E0A0A2>' ,mm.Edit ,onshow.edit ,\
ru,'<27><><EFBFBD><EFBFBD><EFBFBD>' ,mm.Search ,onshow.search ,\
ru,'<27><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' ,mm.Run ,onshow.run ,\
ru,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',mm.Encoding,onshow.recode ,\
ru,'<27><>' ,mm.Options ,onshow.options,\
\
en,'File' ,mm.File ,onshow.file ,\
en,'Edit' ,mm.Edit ,onshow.edit ,\
en,'Search' ,mm.Search ,onshow.search ,\
en,'Run' ,mm.Run ,onshow.run ,\
en,'Encoding' ,mm.Encoding,onshow.recode ,\
en,'Options' ,mm.Options ,onshow.options,\
\
it,'File' ,mm.File ,onshow.file ,\
it,'Modificare' ,mm.Edit ,onshow.edit ,\
it,'Ricerca' ,mm.Search ,onshow.search ,\
it,'Correre' ,mm.Run ,onshow.run ,\
it,'Codifica' ,mm.Encoding,onshow.recode ,\
it,'Opzioni' ,mm.Options ,onshow.options,\
\
et,'Fail' ,mm.File ,onshow.file ,\
et,'Muuda' ,mm.Edit ,onshow.edit ,\
et,'Otsi' ,mm.Search ,onshow.search ,\
et,'K<EFBFBD>ivita' ,mm.Run ,onshow.run ,\
et,'Kodeering',mm.Encoding,onshow.recode ,\
et,'Seaded' ,mm.Options ,onshow.options,\
\
sp,'Archivo' ,mm.File ,onshow.file ,\
sp,'Editar' ,mm.Edit ,onshow.edit ,\
sp,'Buscar' ,mm.Search ,onshow.search ,\
sp,'Ejecutar' ,mm.Run ,onshow.run ,\
sp,'Codificaci<EFBFBD>n',mm.Encoding,onshow.recode,\
sp,'Opciones' ,mm.Options ,onshow.options
popup_res mm.File,\
ru,'<27><><EFBFBD><EFBFBD><EFBFBD>' ,'Ctrl+N' ,New ,\
ru,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...','Ctrl+O' ,Open ,\
ru,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' ,'Ctrl+S' ,Save ,\
ru,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>...','Ctrl+Shift+S',SaveAs,\
ru,'-','',,\
ru,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' ,'Ctrl+F4' ,Close ,\
ru,'-','',,\
ru,'<27><>' ,'Alt+X' ,Exit ,\
\
en,'New' ,'Ctrl+N' ,New ,\
en,'Open...' ,'Ctrl+O' ,Open ,\
en,'Save' ,'Ctrl+S' ,Save ,\
en,'Save as...','Ctrl+Shift+S',SaveAs ,\
en,'-','',,\
en,'Close' ,'Ctrl+F4' ,Close ,\
en,'-','',,\
en,'Exit' ,'Alt+X' ,Exit ,\
\
it,'Nuovo' ,'Ctrl+N' ,New ,\
it,'Aperto...' ,'Ctrl+O' ,Open ,\
it,'Salva' ,'Ctrl+S' ,Save ,\
it,'Salva come...','Ctrl+Shift+S',SaveAs ,\
it,'-','',,\
it,'Chiudi' ,'Ctrl+F4' ,Close ,\
it,'-','',,\
it,'Uscita' ,'Alt+X' ,Exit ,\
\
et,'Uus' ,'Ctrl+N' ,New ,\
et,'Ava...' ,'Ctrl+O' ,Open ,\
et,'Salvesta' ,'Ctrl+S' ,Save ,\
et,'Salvesta nimega...','Ctrl+Shift+S',SaveAs,\
et,'-','',,\
et,'Sulge' ,'Ctrl+F4' ,Close ,\
et,'-','',,\
et,'V<EFBFBD>lju' ,'Alt+X' ,Exit ,\
\
sp,'Nuevo' ,'Ctrl+N' ,New ,\
sp,'Abrir...' ,'Ctrl+O' ,Open ,\
sp,'Guardar' ,'Ctrl+S' ,Save ,\
sp,'Guardar como...','Ctrl+Shift+S',SaveAs,\
sp,'-','',,\
sp,'Cerrar' ,'Ctrl+F4',Close,\
sp,'-','',,\
sp,'Salir' ,'Alt+X' ,Exit
popup_res mm.Edit,\
ru,'<27><><EFBFBD><E0A5A7><EFBFBD>' ,'Ctrl+X',Cut ,\
ru,'<27><><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD>' ,'Ctrl+C',Copy ,\
ru,'<27><><EFBFBD><EFBFBD><EFBFBD>' ,'Ctrl+V',Insert,\
ru,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' ,'' ,Delete,\
ru,'-','',,\
ru,'<27><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD>' ,'Ctrl+A',SelAll,\
\
en,'Cut' ,'Ctrl+X',Cut ,\
en,'Copy' ,'Ctrl+C',Copy ,\
en,'Paste' ,'Ctrl+V',Insert,\
en,'Delete' ,'' ,Delete,\
en,'-','',,\
en,'Select all','Ctrl+A',SelAll,\
\
it,'Taglio' ,'Ctrl+X',Cut ,\
it,'Copia' ,'Ctrl+C',Copy ,\
it,'Incolla' ,'Ctrl+V',Insert,\
it,'Elimina' ,'' ,Delete,\
it,'-','',,\
it,'Seleziona tutto','Ctrl+A',SelAll,\
\
et,'L<EFBFBD>ika' ,'Ctrl+X',Cut ,\
et,'Kopeeri' ,'Ctrl+C',Copy ,\
et,'Kleebi' ,'Ctrl+V',Insert,\
et,'Kustuta' ,'' ,Delete,\
et,'-','',,\
et,'Vali k<>ik','Ctrl+A',SelAll,\
\
sp,'Cortar' ,'Ctrl+X',Cut ,\
sp,'Copiar' ,'Ctrl+C',Copy ,\
sp,'Pegar' ,'Ctrl+V',Insert,\
sp,'Eliminar' ,'' ,Delete,\
sp,'-','',,\
sp,'Seleccionar todo','Ctrl+A',SelAll
popup_res mm.Search,\
ru,'<27><><EFBFBD><E0A5A9>...' ,'Ctrl+G',Position,\
ru,'-','',,\
ru,'<27><><EFBFBD><EFBFBD><EFBFBD>...' ,'Ctrl+F',Find ,\
ru,'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>','F3' ,FindNext,\
ru,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...','Ctrl+H',Replace ,\
\
en,'Position...','Ctrl+G',Position,\
en,'-','',,\
en,'Find...' ,'Ctrl+F',Find ,\
en,'Find next' ,'F3' ,FindNext,\
en,'Replace...' ,'Ctrl+H',Replace ,\
\
it,'Posizione...','Ctrl+G',Position,\
it,'-','',,\
it,'Trova...' ,'Ctrl+F',Find ,\
it,'Trova il prossimo' ,'F3' ,FindNext,\
it,'Sostituire...' ,'Ctrl+H',Replace ,\
\
et,'Positsioon...','Ctrl+G',Position,\
et,'-','',,\
et,'Leia...' ,'Ctrl+F',Find ,\
et,'Leia j<>rgmine','F3' ,FindNext,\
et,'Asenda...' ,'Ctrl+H',Replace ,\
\
sp,'Posici<EFBFBD>n...' ,'Ctrl+G',Position,\
sp,'-','',,\
sp,'Buscar...' ,'Ctrl+F',Find ,\
sp,'Buscar siguiente','F3' ,FindNext,\
sp,'Reemplazar...','Ctrl+H',Replace
popup_res mm.Run,\
ru,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' ,'F9' ,Run ,\
ru,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','F10',Debug ,\
ru,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' ,'Ctrl+F9',Compile ,\
ru,'-','',,\
ru,'<27><><20><EFBFBD><EFBFBD><EFBFBD>' ,'' ,DbgBoard,\
ru,'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨','' ,SysFuncs,\
\
en,'Run' ,'F9' ,Run ,\
en,'Run in debugger' ,'F10' ,Debug ,\
en,'Compile' ,'Ctrl+F9',Compile ,\
en,'-','',,\
en,'Debug board' ,'' ,DbgBoard,\
en,'System functions' ,'' ,SysFuncs,\
\
it,'Correre' ,'F9' ,Run ,\
it,'Esegui nel debugger','F10',Debug ,\
it,'Compilare','Ctrl+F9',Compile ,\
it,'-','',,\
it,'Scheda di debug' ,'' ,DbgBoard,\
it,'Funzioni di sistema','' ,SysFuncs,\
\
et,'K<EFBFBD>ivita' ,'F9' ,Run ,\
et,'K<>ivita aastal siluri','F10',Debug ,\
et,'Kompileeri' ,'Ctrl+F9',Compile ,\
et,'-','',,\
et,'Silumis paneel' ,'' ,DbgBoard,\
et,'S<EFBFBD>steemi funktsioonid','' ,SysFuncs,\
\
sp,'Ejecutar' ,'F9' ,Run ,\
sp,'Ejecutar en el depurador','F10',Debug,\
sp,'Compilar' ,'Ctrl+F9',Compile ,\
sp,'-','',,\
sp,'Depuraci<EFBFBD>n' ,'' ,DbgBoard,\
sp,'Funciones del sistema' ,'',SysFuncs
popup_res mm.Encoding,\
@!,<'CP866 ',0x1A,' CP1251'>,'',CP866.CP1251,\
@!,<'CP1251 ',0x1A,' CP866' >,'',CP1251.CP866,\
@!,<'-'>,'',,\
@!,<'CP866 ',0x1A,' KOI8-R'>,'',CP866.KOI8R ,\
@!,<'KOI8-R ',0x1A,' CP866' >,'',KOI8R.CP866 ,\
@!,<'-'>,'',,\
@!,<'CP1251 ',0x1A,' KOI8-R'>,'',CP1251.KOI8R,\
@!,<'KOI8-R ',0x1A,' CP1251'>,'',KOI8R.CP1251
popup_res mm.Options,\
ru,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' ,'Ctrl +',ZoomIn ,\
ru,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' ,'Ctrl -',ZoomOut ,\
ru,'-','',,\
ru,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>' ,'',LineNumbers ,\
ru,'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD>' ,'',SecureSel ,\
ru,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' ,'',AutoBrackets,\
ru,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' ,'',AutoIndents ,\
ru,'<27><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' ,'',OptimalFill ,\
ru,'-','',,\
ru,'<27><><EFBFBD><EFBFBD> <20><><EFBFBD>...' ,'',Appearance ,\
\
en,'Zoom in' ,'Ctrl +',ZoomIn ,\
en,'Zoom out' ,'Ctrl -',ZoomOut ,\
en,'-','',,\
en,'Line numbers' ,'',LineNumbers ,\
en,'Secure selection' ,'',SecureSel ,\
en,'Automatic brackets' ,'',AutoBrackets,\
en,'Automatic indents' ,'',AutoIndents ,\
en,'Optimal fill on saving' ,'',OptimalFill ,\
en,'-','',,\
en,'Appearance...' ,'',Appearance ,\
\
it,'Ingrandire' ,'Ctrl +',ZoomIn ,\
it,'Rimpicciolisci' ,'Ctrl -',ZoomOut ,\
it,'-','',,\
it,'Numeri di riga' ,'',LineNumbers ,\
it,'Selezione sicura' ,'',SecureSel ,\
it,'Staffe automatiche' ,'',AutoBrackets,\
it,'Rientri automatici' ,'',AutoIndents ,\
it,'Combina spazi' ,'',OptimalFill ,\
it,'-','',,\
it,'Aspetto...' ,'',Appearance ,\
\
et,'Zoom in' ,'Ctrl +',ZoomIn ,\
et,'Zoom out' ,'Ctrl -',ZoomOut ,\
et,'-','',,\
et,'Rea numbrid' ,'',LineNumbers ,\
et,'Turvaline valimine' ,'',SecureSel ,\
et,'Automaatsed sulud' ,'',AutoBrackets,\
et,'Automaatsed taandread' ,'',AutoIndents ,\
et,'Optimaalne t<>itmine salvestamisel','',OptimalFill,\
et,'-','',,\
et,'V<EFBFBD>limus...' ,'',Appearance ,\
\
sp,'Zoom in' ,'Ctrl +',ZoomIn ,\
sp,'Zoom out' ,'Ctrl -',ZoomOut ,\
sp,'-','',,\
sp,'N<EFBFBD>meros en l<>neas' ,'',LineNumbers ,\
sp,'Selecci<EFBFBD>n segura' ,'',SecureSel ,\
sp,'Par<EFBFBD>ntesis autom<6F>ticos' ,'',AutoBrackets,\
sp,'Identaci<EFBFBD>n autom<6F>tica' ,'',AutoIndents ,\
sp,'Llenado <20>ptimo al guardar','',OptimalFill ,\
sp,'-','',,\
sp,'Apariencia...' ,'',Appearance
lsz s_defname,\
ru,<'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFADAD>',0>,\
en,<'Untitled',0>,\
it,<'Senza titolo',0>,\
et,<'Nimetu',0>,\
sp,<'Sin t<>tulo',0>
lsz s_modified,\
ru,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',\
en,'Modified',\
it,'Modificato',\
et,'Muudetud',\
sp,'Modificado'
lsz s_2filename,\
ru,'<27><><EFBFBD><><E4A0A9>:',\
en,'Filename:',\
en,'Nome del file:',\
et,'Faili nimi:',\
sp,'Nombre de archivo:'
lsz s_2open,\
ru,'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',\
en,'Open',\
it,'Aperto',\
et,'Ava',\
sp,'Abrir'
lsz s_2save,\
ru,'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',\
en,'Save',\
it,'Salva',\
et,'Salvesta',\
sp,'Guardar'
lsz s_2save_no,\
ru,'<EFBFBD><EFBFBD><EFBFBD>',\
en,'No',\
it,'No',\
et,'Ei',\
sp,'No'
lsz s_2find,\
ru,'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',\
en,'Find',\
it,'Trova',\
et,'Leia',\
sp,'Buscar'
db ':'
lsz s_2replace,\
ru,'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',\
en,'Replace',\
it,'Sostituire',\
et,'Asenda',\
sp,'Reemplazar'
db ':'
lsz s_2cancel,\
ru,'<27><EFBFBD><EFBFBD>',\
en,'Cancel',\
it,'Annulla',\
et,'T<EFBFBD>hista',\
sp,'Cancelar'
lsz s_color,\
ru,'<27><><EFBFBD><EFBFBD>: 0x',\
en,'Color: 0x',\
it,'Colore: 0x',\
et,'V<EFBFBD>rv: 0x',\
sp,'Color: 0x'
lsz s_tabpos,\
ru,'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',\
en,'Tabs placement',\
it,'Posizionamento delle schede',\
et,'Saki asetus',\
sp,'Lugar de tabulador'
lsz s_enter_filename,\
ru,<'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><><E4A0A9>',0>,\
en,<'Enter filename',0>,\
it,<'Inserisci il nome del file',0>,\
et,<'Sisesta faili nimi',0>,\
sp,<'Ingresa el nombre del archivo',0>
lsz s_ask_save,\
ru,<'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A0AD><EFBFBD>?',0>,\
en,<'Would you like to save?',0>,\
it,<'Vorresti salvare?',0>,\
et,<'Kas soovite salvestada?',0>,\ ; Now correct
sp,<'<EFBFBD>Quieres guardar?',0>
lsz s_enter_text_to_find,\
ru,<'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E2A5AA> <20><><EFBFBD> <20><><EFBFBD>',0>,\
en,<'Enter text to find',0>,\
it,<'Inserisci il testo per trovare',0>,\
et,<'Sisesta otsitav tekst',0>,\
sp,<'Ingresa el texto a buscar',0>
lsz s_enter_text_to_replace,\
ru,<'<27><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E2A5AA> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0>,\
en,<'Enter text to replace',0>,\
it,<'Inserisci il testo da sostituire',0>,\
et,<'Sisesta asendatav tekst',0>,\
sp,<'Ingresa el texto a reemplazar',0>
lsz s_text_not_found,\
ru,<'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><><E4A0A9>, ⥪<><E2A5AA> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0>,\
en,<'Reached end of file, text not found',0>,\
it,<'Raggiunta la fine del file, testo non trovato',0>,\
et,<'Faili l<>pp, teksti ei leitud',0>,\
sp,<'Se lleg<65> al final del archivo, texto no encontrado',0>
lszc s_fs_error,b,\
ru,<'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ᯥ譮 (0)',0>,\
ru,<'',0>,\
ru,<'<27><EFBFBD><E3ADAA><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0A6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E4A0A9><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (2)',0>,\
ru,<'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E4A0A9><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (3)',0>,\
ru,<'',0>,\
ru,<'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><> (5)',0>,\
ru,<'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ᯥ譮 (6)',0>,\
ru,<'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E5AEA4><EFBFBD><EFBFBD> <20><> <20><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> (7)',0>,\
ru,<'<27><> <20><><20><><EFBFBD><><E1A2AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (8)',0>,\
ru,<'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> FAT 㭨<><EFBFBD><E2AEA6><EFBFBD> (9)',0>,\
ru,<'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (10)',0>,\
ru,<'<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>⢠ (11)',0>,\
\
en,<'Operation executed successfully (0)',0>,\
en,<'',0>,\
en,<'Function is not supported for the given filesystem (2)',0>,\
en,<'Unknown filesystem (3)',0>,\
en,<'',0>,\
en,<'Unable to open file (5)',0>,\
en,<'Operation executed successfully (6)',0>,\
en,<'Pointer lies outside of application memory (7)',0>,\
en,<'Disk is full (8)',0>,\
en,<'FAT table is destroyed (9)',0>,\
en,<'Access denied (10)',0>,\
en,<'Device error (11)',0>,\
\
it,<'Operazione eseguita correttamente (0)',0>,\
it,<'',0>,\
it,<'La funzione non e supportata per il file system specificato (2)', 0>, \
it,<'Unknown filesystem (3)',0>,\
it,<'',0>,\
it,<'Impossibile aprire il file (5)',0>,\
it,<'Operazione eseguita correttamente (6)',0>,\
it,<'Il puntatore si trova al di fuori della memoria dell',96,'applicazione (7)', 0>, \
it,<'Il disco e pieno (8)',0>,\
it,<'La tabella FAT e distrutta (9)',0>,\
it,<'Accesso negato (10)',0>,\
it,<'Errore dispositivo (11)',0>,\
\
et,<'Operatsioon k<>ivitati edukalt (0)',0>,\
et,<'',0>,\
et,<'Failis<EFBFBD>steem ei toeta funktsiooni (2)',0>,\
et,<'Tundmatu failis<69>steem (3)',0>,\
et,<'',0>,\
et,<'Faili ei suudetud avada (5)',0>,\
et,<'Operatsioon k<>ivitatud edukalt (6)',0>,\
et,<'Viit on v<>ljaspool programmi m<>lu (7)',0>,\
et,<'Ketas t<>is (8)',0>,\
et,<'FAT tabel h<>vitatud (9)',0>,\
et,<'Juurdep<EFBFBD><EFBFBD>s keelatud (10)',0>,\
et,<'Seadme viga (11)',0>,\
\
sp,<'Operaci<EFBFBD>n ejecutada correctamente (0)',0>,\
sp,<'',0>,\
sp,<'La funci<63>n no est<73> soportada por el sistema de archivos dado (2)',0>,\
sp,<'Sistema de archivos desconocido (3)',0>,\
sp,<'',0>,\
sp,<'No es posible abrir el archivo (5)',0>,\
sp,<'Operaci<EFBFBD>n ejecutada correctamente (6)',0>,\
sp,<'El puntero est<73> fuera de la memoria de la aplicaci<63>n (7)',0>,\
sp,<'El disco est<73> lleno (8)',0>,\
sp,<'La tabla FAT est<73> destruida (9)',0>,\
sp,<'Acceso denegado (10)',0>,\
sp,<'Error de dispositivo (11)',0>
lszc s_appearance,b,\
ru,'<27><><EFBFBD><EFBFBD><EFBFBD>',\
ru,'<27><><EFBFBD>',\
ru,'<27><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD>',\
ru,'<27><><EFBFBD> <20><EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD>',\
ru,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',\
ru,'<27><>᫠',\
ru,'<27><><EFBFBD>',\
ru,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ਨ',\
ru,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>',\
ru,'<27><><EFBFBD><EFBFBD><E0A0AD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>',\
\
en,'Text',\
en,'Background',\
en,'Selection text',\
en,'Selection background',\
en,'Symbols',\
en,'Numbers',\
en,'Strings',\
en,'Comments',\
en,'Modified lines',\
en,'Saved lines',\
\
it,'Testo',\
it,'Sfondo',\
it,'Testo di selezione',\
it,'Sfondo di selezione',\
it,'Simboli',\
it,'Numeri',\
it,'Stringhe',\
it,'Commenti',\
it,'Linee modificate',\
it,'Linee salvate',\
\
et,'Tekst',\
et,'Taust',\
et,'Valitud tekst',\
et,'Valitud taust',\
et,'S<EFBFBD>mbolid',\
et,'Numbrid',\
et,'Stringid',\
et,'Kommentaarid',\
et,'Muudetud read',\
et,'Salvestatud read',\
\
sp,'Texto',\
sp,'Fondo',\
sp,'Texto de selecci<63>n',\
sp,'Fondo de selecci<63>n',\
sp,'S<EFBFBD>mbolos',\
sp,'N<EFBFBD>meros',\
sp,'Cadenas',\
sp,'Comentarios',\
sp,'L<EFBFBD>neas modificadas',\
sp,'L<>neas guardadas'
lsz sysfuncs_filename,\
ru,<'SYSFUNCR.TXT',0>,\
en,<'SYSFUNCS.TXT',0>,\
it,<'SYSFUNCS.TXT',0>,\
et,<'SYSFUNCET.TXT',0>,\
sp,<'SYSFUNCS.TXT',0>
sz s_example,'/sys/example.asm'
sz s_still ,'still'
sz htext,'TINYPAD ',APP_VERSION
; Language support for locales: ru_RU (CP866), en_US, it_IT, et_EE, es_ES.
menubar_res main_menu,\
ru_RU,'<27><><EFBFBD><EFBFBD>' ,mm.File ,onshow.file ,\
ru_RU,'<27><EFBFBD><EFBFBD>' ,mm.Edit ,onshow.edit ,\
ru_RU,'<27><><EFBFBD><EFBFBD><EFBFBD>' ,mm.Search ,onshow.search ,\
ru_RU,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' ,mm.Run ,onshow.run ,\
ru_RU,'<27><><EFBFBD><EFBFBD><EFBFBD><E0AEA2>',mm.Encoding,onshow.recode ,\
ru_RU,'<EFBFBD><EFBFBD>' ,mm.Options ,onshow.options,\
\
en_US,'File' ,mm.File ,onshow.file ,\
en_US,'Edit' ,mm.Edit ,onshow.edit ,\
en_US,'Search' ,mm.Search ,onshow.search ,\
en_US,'Run' ,mm.Run ,onshow.run ,\
en_US,'Encoding' ,mm.Encoding,onshow.recode ,\
en_US,'Options' ,mm.Options ,onshow.options,\
\
it_IT,'File' ,mm.File ,onshow.file ,\
it_IT,'Modificare' ,mm.Edit ,onshow.edit ,\
it_IT,'Ricerca' ,mm.Search ,onshow.search ,\
it_IT,'Correre' ,mm.Run ,onshow.run ,\
it_IT,'Codifica' ,mm.Encoding,onshow.recode ,\
it_IT,'Opzioni' ,mm.Options ,onshow.options,\
\
et_EE,'Fail' ,mm.File ,onshow.file ,\
et_EE,'Muuda' ,mm.Edit ,onshow.edit ,\
et_EE,'Otsi' ,mm.Search ,onshow.search ,\
et_EE,'K<EFBFBD>ivita' ,mm.Run ,onshow.run ,\
et_EE,'Kodeering',mm.Encoding,onshow.recode ,\
et_EE,'Seaded' ,mm.Options ,onshow.options,\
\
es_ES,'Archivo' ,mm.File ,onshow.file ,\
es_ES,'Editar' ,mm.Edit ,onshow.edit ,\
es_ES,'Buscar' ,mm.Search ,onshow.search ,\
es_ES,'Ejecutar' ,mm.Run ,onshow.run ,\
es_ES,'Codificaci<63>n',mm.Encoding,onshow.recode,\
es_ES,'Opciones' ,mm.Options ,onshow.options
popup_res mm.File,\
ru_RU,'<27><><EFBFBD><EFBFBD><EFBFBD>' ,'Ctrl+N' ,New ,\
ru_RU,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...','Ctrl+O' ,Open ,\
ru_RU,'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' ,'Ctrl+S' ,Save ,\
ru_RU,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>...','Ctrl+Shift+S',SaveAs,\
ru_RU,'-','',,\
ru_RU,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' ,'Ctrl+F4' ,Close ,\
ru_RU,'-','',,\
ru_RU,'<EFBFBD><EFBFBD>' ,'Alt+X' ,Exit ,\
\
en_US,'New' ,'Ctrl+N' ,New ,\
en_US,'Open...' ,'Ctrl+O' ,Open ,\
en_US,'Save' ,'Ctrl+S' ,Save ,\
en_US,'Save as...','Ctrl+Shift+S',SaveAs ,\
en_US,'-','',,\
en_US,'Close' ,'Ctrl+F4' ,Close ,\
en_US,'-','',,\
en_US,'Exit' ,'Alt+X' ,Exit ,\
\
it_IT,'Nuovo' ,'Ctrl+N' ,New ,\
it_IT,'Aperto...' ,'Ctrl+O' ,Open ,\
it_IT,'Salva' ,'Ctrl+S' ,Save ,\
it_IT,'Salva come...','Ctrl+Shift+S',SaveAs ,\
it_IT,'-','',,\
it_IT,'Chiudi' ,'Ctrl+F4' ,Close ,\
it_IT,'-','',,\
it_IT,'Uscita' ,'Alt+X' ,Exit ,\
\
et_EE,'Uus' ,'Ctrl+N' ,New ,\
et_EE,'Ava...' ,'Ctrl+O' ,Open ,\
et_EE,'Salvesta' ,'Ctrl+S' ,Save ,\
et_EE,'Salvesta nimega...','Ctrl+Shift+S',SaveAs,\
et_EE,'-','',,\
et_EE,'Sulge' ,'Ctrl+F4' ,Close ,\
et_EE,'-','',,\
et_EE,'V<EFBFBD>lju' ,'Alt+X' ,Exit ,\
\
es_ES,'Nuevo' ,'Ctrl+N' ,New ,\
es_ES,'Abrir...' ,'Ctrl+O' ,Open ,\
es_ES,'Guardar' ,'Ctrl+S' ,Save ,\
es_ES,'Guardar como...','Ctrl+Shift+S',SaveAs,\
es_ES,'-','',,\
es_ES,'Cerrar' ,'Ctrl+F4',Close,\
es_ES,'-','',,\
es_ES,'Salir' ,'Alt+X' ,Exit
popup_res mm.Edit,\
ru_RU,'<27><><EFBFBD><EFBFBD><EFBFBD>' ,'Ctrl+X',Cut ,\
ru_RU,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' ,'Ctrl+C',Copy ,\
ru_RU,'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' ,'Ctrl+V',Insert,\
ru_RU,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' ,'' ,Delete,\
ru_RU,'-','',,\
ru_RU,'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>' ,'Ctrl+A',SelAll,\
\
en_US,'Cut' ,'Ctrl+X',Cut ,\
en_US,'Copy' ,'Ctrl+C',Copy ,\
en_US,'Paste' ,'Ctrl+V',Insert,\
en_US,'Delete' ,'' ,Delete,\
en_US,'-','',,\
en_US,'Select all','Ctrl+A',SelAll,\
\
it_IT,'Taglio' ,'Ctrl+X',Cut ,\
it_IT,'Copia' ,'Ctrl+C',Copy ,\
it_IT,'Incolla' ,'Ctrl+V',Insert,\
it_IT,'Elimina' ,'' ,Delete,\
it_IT,'-','',,\
it_IT,'Seleziona tutto','Ctrl+A',SelAll,\
\
et_EE,'L<EFBFBD>ika' ,'Ctrl+X',Cut ,\
et_EE,'Kopeeri' ,'Ctrl+C',Copy ,\
et_EE,'Kleebi' ,'Ctrl+V',Insert,\
et_EE,'Kustuta' ,'' ,Delete,\
et_EE,'-','',,\
et_EE,'Vali k<>ik','Ctrl+A',SelAll,\
\
es_ES,'Cortar' ,'Ctrl+X',Cut ,\
es_ES,'Copiar' ,'Ctrl+C',Copy ,\
es_ES,'Pegar' ,'Ctrl+V',Insert,\
es_ES,'Eliminar' ,'' ,Delete,\
es_ES,'-','',,\
es_ES,'Seleccionar todo','Ctrl+A',SelAll
popup_res mm.Search,\
ru_RU,'<27><><EFBFBD><EFBFBD>...' ,'Ctrl+G',Position,\
ru_RU,'-','',,\
ru_RU,'<27><><EFBFBD><EFBFBD><EFBFBD>...' ,'Ctrl+F',Find ,\
ru_RU,'<27><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>','F3' ,FindNext,\
ru_RU,'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...','Ctrl+H',Replace ,\
\
en_US,'Position...','Ctrl+G',Position,\
en_US,'-','',,\
en_US,'Find...' ,'Ctrl+F',Find ,\
en_US,'Find next' ,'F3' ,FindNext,\
en_US,'Replace...' ,'Ctrl+H',Replace ,\
\
it_IT,'Posizione...','Ctrl+G',Position,\
it_IT,'-','',,\
it_IT,'Trova...' ,'Ctrl+F',Find ,\
it_IT,'Trova il prossimo' ,'F3' ,FindNext,\
it_IT,'Sostituire...' ,'Ctrl+H',Replace ,\
\
et_EE,'Positsioon...','Ctrl+G',Position,\
et_EE,'-','',,\
et_EE,'Leia...' ,'Ctrl+F',Find ,\
et_EE,'Leia j<>rgmine','F3' ,FindNext,\
et_EE,'Asenda...' ,'Ctrl+H',Replace ,\
\
es_ES,'Posici<EFBFBD>n...' ,'Ctrl+G',Position,\
es_ES,'-','',,\
es_ES,'Buscar...' ,'Ctrl+F',Find ,\
es_ES,'Buscar siguiente','F3' ,FindNext,\
es_ES,'Reemplazar...','Ctrl+H',Replace
popup_res mm.Run,\
ru_RU,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' ,'F9' ,Run ,\
ru_RU,'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','F10',Debug ,\
ru_RU,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' ,'Ctrl+F9',Compile ,\
ru_RU,'-','',,\
ru_RU,'<27><><20><EFBFBD><E2ABA0><EFBFBD>' ,'' ,DbgBoard,\
ru_RU,'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨','' ,SysFuncs,\
\
en_US,'Run' ,'F9' ,Run ,\
en_US,'Run in debugger' ,'F10' ,Debug ,\
en_US,'Compile' ,'Ctrl+F9',Compile ,\
en_US,'-','',,\
en_US,'Debug board' ,'' ,DbgBoard,\
en_US,'System functions' ,'' ,SysFuncs,\
\
it_IT,'Correre' ,'F9' ,Run ,\
it_IT,'Esegui nel debugger','F10',Debug ,\
it_IT,'Compilare','Ctrl+F9',Compile ,\
it_IT,'-','',,\
it_IT,'Scheda di debug' ,'' ,DbgBoard,\
it_IT,'Funzioni di sistema','' ,SysFuncs,\
\
et_EE,'K<EFBFBD>ivita' ,'F9' ,Run ,\
et_EE,'K<EFBFBD>ivita aastal siluri','F10',Debug ,\
et_EE,'Kompileeri' ,'Ctrl+F9',Compile ,\
et_EE,'-','',,\
et_EE,'Silumis paneel' ,'' ,DbgBoard,\
et_EE,'S<EFBFBD>steemi funktsioonid','' ,SysFuncs,\
\
es_ES,'Ejecutar' ,'F9' ,Run ,\
es_ES,'Ejecutar en el depurador','F10',Debug,\
es_ES,'Compilar' ,'Ctrl+F9',Compile ,\
es_ES,'-','',,\
es_ES,'Depuraci<63>n' ,'' ,DbgBoard,\
es_ES,'Funciones del sistema' ,'',SysFuncs
popup_res mm.Encoding,\
@!,<'CP866 ',0x1A,' CP1251'>,'',CP866.CP1251,\
@!,<'CP1251 ',0x1A,' CP866' >,'',CP1251.CP866,\
@!,<'-'>,'',,\
@!,<'CP866 ',0x1A,' KOI8-R'>,'',CP866.KOI8R ,\
@!,<'KOI8-R ',0x1A,' CP866' >,'',KOI8R.CP866 ,\
@!,<'-'>,'',,\
@!,<'CP1251 ',0x1A,' KOI8-R'>,'',CP1251.KOI8R,\
@!,<'KOI8-R ',0x1A,' CP1251'>,'',KOI8R.CP1251
popup_res mm.Options,\
ru_RU,'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' ,'Ctrl +',ZoomIn ,\
ru_RU,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' ,'Ctrl -',ZoomOut ,\
ru_RU,'-','',,\
ru_RU,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>' ,'',LineNumbers ,\
ru_RU,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' ,'',SecureSel ,\
ru_RU,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' ,'',AutoBrackets,\
ru_RU,'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' ,'',AutoIndents ,\
ru_RU,'<27><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' ,'',OptimalFill ,\
ru_RU,'-','',,\
ru_RU,'<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>...' ,'',Appearance ,\
\
en_US,'Zoom in' ,'Ctrl +',ZoomIn ,\
en_US,'Zoom out' ,'Ctrl -',ZoomOut ,\
en_US,'-','',,\
en_US,'Line numbers' ,'',LineNumbers ,\
en_US,'Secure selection' ,'',SecureSel ,\
en_US,'Automatic brackets' ,'',AutoBrackets,\
en_US,'Automatic indents' ,'',AutoIndents ,\
en_US,'Optimal fill on saving' ,'',OptimalFill ,\
en_US,'-','',,\
en_US,'Appearance...' ,'',Appearance ,\
\
it_IT,'Ingrandire' ,'Ctrl +',ZoomIn ,\
it_IT,'Rimpicciolisci' ,'Ctrl -',ZoomOut ,\
it_IT,'-','',,\
it_IT,'Numeri di riga' ,'',LineNumbers ,\
it_IT,'Selezione sicura' ,'',SecureSel ,\
it_IT,'Staffe automatiche' ,'',AutoBrackets,\
it_IT,'Rientri automatici' ,'',AutoIndents ,\
it_IT,'Combina spazi' ,'',OptimalFill ,\
it_IT,'-','',,\
it_IT,'Aspetto...' ,'',Appearance ,\
\
et_EE,'Zoom in' ,'Ctrl +',ZoomIn ,\
et_EE,'Zoom out' ,'Ctrl -',ZoomOut ,\
et_EE,'-','',,\
et_EE,'Rea numbrid' ,'',LineNumbers ,\
et_EE,'Turvaline valimine' ,'',SecureSel ,\
et_EE,'Automaatsed sulud' ,'',AutoBrackets,\
et_EE,'Automaatsed taandread' ,'',AutoIndents ,\
et_EE,'Optimaalne t<>itmine salvestamisel','',OptimalFill,\
et_EE,'-','',,\
et_EE,'V<EFBFBD>limus...' ,'',Appearance ,\
\
es_ES,'Zoom in' ,'Ctrl +',ZoomIn ,\
es_ES,'Zoom out' ,'Ctrl -',ZoomOut ,\
es_ES,'-','',,\
es_ES,'N<EFBFBD>meros en l<>neas' ,'',LineNumbers ,\
es_ES,'Selecci<EFBFBD>n segura' ,'',SecureSel ,\
es_ES,'Par<EFBFBD>ntesis autom<6F>ticos' ,'',AutoBrackets,\
es_ES,'Identaci<EFBFBD>n autom<6F>tica' ,'',AutoIndents ,\
es_ES,'Llenado <20>ptimo al guardar','',OptimalFill ,\
es_ES,'-','',,\
es_ES,'Apariencia...' ,'',Appearance
lsz s_defname,\
ru_RU,<'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0>,\
en_US,<'Untitled',0>,\
it_IT,<'Senza titolo',0>,\
et_EE,<'Nimetu',0>,\
es_ES,<'Sin t<>tulo',0>
lsz s_modified,\
ru_RU,'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',\
en_US,'Modified',\
it_IT,'Modificato',\
et_EE,'Muudetud',\
es_ES,'Modificado'
lsz s_2filename,\
ru_RU,'<EFBFBD><EFBFBD><EFBFBD><><E4A0A9>:',\
en_US,'Filename:',\
en_US,'Nome del file:',\
et_EE,'Faili nimi:',\
es_ES,'Nombre de archivo:'
lsz s_2open,\
ru_RU,'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',\
en_US,'Open',\
it_IT,'Aperto',\
et_EE,'Ava',\
es_ES,'Abrir'
lsz s_2save,\
ru_RU,'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',\
en_US,'Save',\
it_IT,'Salva',\
et_EE,'Salvesta',\
es_ES,'Guardar'
lsz s_2save_no,\
ru_RU,'<27><><EFBFBD>',\
en_US,'No',\
it_IT,'No',\
et_EE,'Ei',\
es_ES,'No'
lsz s_2find,\
ru_RU,'<27><><EFBFBD><EFBFBD><EFBFBD>',\
en_US,'Find',\
it_IT,'Trova',\
et_EE,'Leia',\
es_ES,'Buscar'
db ':'
lsz s_2replace,\
ru_RU,'<27><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',\
en_US,'Replace',\
it_IT,'Sostituire',\
et_EE,'Asenda',\
es_ES,'Reemplazar'
db ':'
lsz s_2cancel,\
ru_RU,'<EFBFBD><EFBFBD><EFBFBD>',\
en_US,'Cancel',\
it_IT,'Annulla',\
et_EE,'T<>hista',\
es_ES,'Cancelar'
lsz s_color,\
ru_RU,'<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 0x',\
en_US,'Color: 0x',\
it_IT,'Colore: 0x',\
et_EE,'V<>rv: 0x',\
es_ES,'Color: 0x'
lsz s_tabpos,\
ru_RU,'<27><><EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',\
en_US,'Tabs placement',\
it_IT,'Posizionamento delle schede',\
et_EE,'Saki asetus',\
es_ES,'Lugar de tabulador'
lsz s_enter_filename,\
ru_RU,<'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><><E4A0A9>',0>,\
en_US,<'Enter filename',0>,\
it_IT,<'Inserisci il nome del file',0>,\
et_EE,<'Sisesta faili nimi',0>,\
es_ES,<'Ingresa el nombre del archivo',0>
lsz s_ask_save,\
ru_RU,<'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E0A0AD><EFBFBD>?',0>,\
en_US,<'Would you like to save?',0>,\
it_IT,<'Vorresti salvare?',0>,\
et_EE,<'Kas soovite salvestada?',0>,\
es_ES,<'<27>Quieres guardar?',0>
lsz s_enter_text_to_find,\
ru_RU,<'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E2A5AA> <20><><EFBFBD> <20><><EFBFBD>',0>,\
en_US,<'Enter text to find',0>,\
it_IT,<'Inserisci il testo per trovare',0>,\
et_EE,<'Sisesta otsitav tekst',0>,\
es_ES,<'Ingresa el texto a buscar',0>
lsz s_enter_text_to_replace,\
ru_RU,<'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E2A5AA> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0>,\
en_US,<'Enter text to replace',0>,\
it_IT,<'Inserisci il testo da sostituire',0>,\
et_EE,<'Sisesta asendatav tekst',0>,\
es_ES,<'Ingresa el texto a reemplazar',0>
lsz s_text_not_found,\
ru_RU,<'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><><E4A0A9>, ⥪<><E2A5AA> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0>,\
en_US,<'Reached end of file, text not found',0>,\
it_IT,<'Raggiunta la fine del file, testo non trovato',0>,\
et_EE,<'Faili l<>pp, teksti ei leitud',0>,\
es_ES,<'Se lleg<65> al final del archivo, texto no encontrado',0>
lszc s_fs_error,b,\
ru_RU,<'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ᯥ譮 (0)',0>,\
ru_RU,<'',0>,\
ru_RU,<'<27><EFBFBD><E3ADAA><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0A6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E4A0A9><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (2)',0>,\
ru_RU,<'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E4A0A9><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (3)',0>,\
ru_RU,<'',0>,\
ru_RU,<'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><> (5)',0>,\
ru_RU,<'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ᯥ譮 (6)',0>,\
ru_RU,<'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E5AEA4><EFBFBD><EFBFBD> <20><> <20><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> (7)',0>,\
ru_RU,<'<EFBFBD><EFBFBD> <20><><20><><EFBFBD><><E1A2AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (8)',0>,\
ru_RU,<'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> FAT 㭨<><EFBFBD><E2AEA6><EFBFBD> (9)',0>,\
ru_RU,<'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (10)',0>,\
ru_RU,<'<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>⢠ (11)',0>,\
\
en_US,<'Operation executed successfully (0)',0>,\
en_US,<'',0>,\
en_US,<'Function is not supported for the given filesystem (2)',0>,\
en_US,<'Unknown filesystem (3)',0>,\
en_US,<'',0>,\
en_US,<'Unable to open file (5)',0>,\
en_US,<'Operation executed successfully (6)',0>,\
en_US,<'Pointer lies outside of application memory (7)',0>,\
en_US,<'Disk is full (8)',0>,\
en_US,<'FAT table is destroyed (9)',0>,\
en_US,<'Access denied (10)',0>,\
en_US,<'Device error (11)',0>,\
\
it_IT,<'Operazione eseguita correttamente (0)',0>,\
it_IT,<'',0>,\
it_IT,<'La funzione non e supportata per il file system specificato (2)', 0>, \
it_IT,<'Unknown filesystem (3)',0>,\
it_IT,<'',0>,\
it_IT,<'Impossibile aprire il file (5)',0>,\
it_IT,<'Operazione eseguita correttamente (6)',0>,\
it_IT,<'Il puntatore si trova al di fuori della memoria dell',96,'applicazione (7)', 0>, \
it_IT,<'Il disco e pieno (8)',0>,\
it_IT,<'La tabella FAT e distrutta (9)',0>,\
it_IT,<'Accesso negato (10)',0>,\
it_IT,<'Errore dispositivo (11)',0>,\
\
et_EE,<'Operatsioon k<>ivitati edukalt (0)',0>,\
et_EE,<'',0>,\
et_EE,<'Failis<69>steem ei toeta funktsiooni (2)',0>,\
et_EE,<'Tundmatu failis<69>steem (3)',0>,\
et_EE,<'',0>,\
et_EE,<'Faili ei suudetud avada (5)',0>,\
et_EE,<'Operatsioon k<>ivitatud edukalt (6)',0>,\
et_EE,<'Viit on v<>ljaspool programmi m<>lu (7)',0>,\
et_EE,<'Ketas t<>is (8)',0>,\
et_EE,<'FAT tabel h<>vitatud (9)',0>,\
et_EE,<'Juurdep<EFBFBD><EFBFBD>s keelatud (10)',0>,\
et_EE,<'Seadme viga (11)',0>,\
\
es_ES,<'Operaci<EFBFBD>n ejecutada correctamente (0)',0>,\
es_ES,<'',0>,\
es_ES,<'La funci<63>n no est<73> soportada por el sistema de archivos dado (2)',0>,\
es_ES,<'Sistema de archivos desconocido (3)',0>,\
es_ES,<'',0>,\
es_ES,<'No es posible abrir el archivo (5)',0>,\
es_ES,<'Operaci<63>n ejecutada correctamente (6)',0>,\
es_ES,<'El puntero est<73> fuera de la memoria de la aplicaci<63>n (7)',0>,\
es_ES,<'El disco est<73> lleno (8)',0>,\
es_ES,<'La tabla FAT est<73> destruida (9)',0>,\
es_ES,<'Acceso denegado (10)',0>,\
es_ES,<'Error de dispositivo (11)',0>
lszc s_appearance,b,\
ru_RU,'<27><><EFBFBD><EFBFBD><EFBFBD>',\
ru_RU,'<EFBFBD><EFBFBD><EFBFBD>',\
ru_RU,'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD>',\
ru_RU,'<EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD>',\
ru_RU,'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',\
ru_RU,'<EFBFBD><EFBFBD>',\
ru_RU,'<EFBFBD><EFBFBD><EFBFBD>',\
ru_RU,'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',\
ru_RU,'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>',\
ru_RU,'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>',\
\
en_US,'Text',\
en_US,'Background',\
en_US,'Selection text',\
en_US,'Selection background',\
en_US,'Symbols',\
en_US,'Numbers',\
en_US,'Strings',\
en_US,'Comments',\
en_US,'Modified lines',\
en_US,'Saved lines',\
\
it_IT,'Testo',\
it_IT,'Sfondo',\
it_IT,'Testo di selezione',\
it_IT,'Sfondo di selezione',\
it_IT,'Simboli',\
it_IT,'Numeri',\
it_IT,'Stringhe',\
it_IT,'Commenti',\
it_IT,'Linee modificate',\
it_IT,'Linee salvate',\
\
et_EE,'Tekst',\
et_EE,'Taust',\
et_EE,'Valitud tekst',\
et_EE,'Valitud taust',\
et_EE,'S<EFBFBD>mbolid',\
et_EE,'Numbrid',\
et_EE,'Stringid',\
et_EE,'Kommentaarid',\
et_EE,'Muudetud read',\
et_EE,'Salvestatud read',\
\
es_ES,'Texto',\
es_ES,'Fondo',\
es_ES,'Texto de selecci<63>n',\
es_ES,'Fondo de selecci<63>n',\
es_ES,'S<>mbolos',\
es_ES,'N<>meros',\
es_ES,'Cadenas',\
es_ES,'Comentarios',\
es_ES,'L<>neas modificadas',\
es_ES,'L<>neas guardadas'
lsz sysfuncs_filename,\
ru_RU,<'SYSFUNCR.TXT',0>,\
en_US,<'SYSFUNCS.TXT',0>,\
it_IT,<'SYSFUNCS.TXT',0>,\
et_EE,<'SYSFUNCET.TXT',0>,\
es_ES,<'SYSFUNCS.TXT',0>
sz s_example,'/sys/example.asm'
sz s_still ,'still'