'log_el' modify code

git-svn-id: svn://kolibrios.org@6213 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
IgorA 2016-02-13 11:46:04 +00:00
parent c76a2da0d0
commit d2784c11d7
2 changed files with 57 additions and 137 deletions

View File

@ -97,8 +97,6 @@ proc pole_clear uses eax ecx edi, pole:dword
mov edi,pole_index
@@:
stosd ;for(i=0;i<pole_max_cell;i++) pole_index[i]=i;
;mov dword[edi],eax
;add edi,4
inc eax
loop @b
ret
@ -1002,16 +1000,14 @@ endp
;--------------------------------------
align 4
proc pole_draw_pok uses eax ebx ecx edx edi esi, pole:dword
proc pole_draw_pok, pole:dword
pushad
;mov edi,dword[pole]
mov eax,4 ;à¨á®¢ ­¨¥ ⥪áâ 
mov ebx,400*65536+5
mov ecx,[sc.work_text]
or ecx,0x80000000 ;or (1 shl 30)
mov edx,txt_zoom
;mov edi,[sc.work]
int 0x40
mcall SF_DRAW_TEXT,(400 shl 16)+5,,txt_zoom
add bx,9
mov edx,txt_osob
@ -1021,22 +1017,20 @@ proc pole_draw_pok uses eax ebx ecx edx edi esi, pole:dword
mov edx,txt_info
int 0x40
mov eax,47
movzx ecx,byte[zoom]
mov ebx,(2 shl 16)
mov edx,(400+6*9)*65536+5
mov esi,[sc.work_button_text]
or esi,(1 shl 30)
mov edi,[sc.work_button]
int 0x40 ;¬ áèâ ¡
mcall SF_DRAW_NUMBER,(2 shl 16) ;¬ áèâ ¡
mov edi,dword[pole]
mov ecx,pole_index
mov ecx,[ecx]
mov edi,[sc.work_button]
mov ebx,(5 shl 16)
add edx,(6*0)*65536+9
int 0x40 ;ç¨á«® â®ç¥ª
mcall ,(5 shl 16) ;ç¨á«® â®ç¥ª
popad
ret
endp

View File

@ -1,13 +1,7 @@
use32
org 0x0
db 'MENUET01' ;¨¤¥­â¨ä. ¨á¯®«­ï¥¬®£® ä ©«  ¢á¥£¤  8 ¡ ©â
dd 0x1
dd start
dd i_end ;à §¬¥à ¯à¨«®¦¥­¨ï
dd mem
dd stacktop
dd 0
dd sys_path
dd 1,start,i_end,mem,stacktop,0,sys_path
ini_def_c_bkgnd equ 0
ini_def_c_border equ 0xff0000
@ -46,20 +40,26 @@ capt_offs equ 10 ;ᬥ饭
include '../../../macros.inc'
include '../../../proc32.inc'
include '../../../develop/libraries/box_lib/load_lib.mac'
include '../../../KOSfuncs.inc'
include '../../../load_img.inc'
include '../../../develop/libraries/box_lib/trunk/box_lib.mac'
include '../../../dll.inc'
include 'le_pole.inc'
include 'le_signal.inc'
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
caption db '‹®£¨ç¥áª¨¥ í«¥¬¥­âë 15.11.15',0 ;¯®¤¯¨áì ®ª­ 
caption db '‹®£¨ç¥áª¨¥ í«¥¬¥­âë 13.02.16',0 ;¯®¤¯¨áì ®ª­ 
panel_0_coord_top equ 5 ;¢¥àå­ïï ª®®à¤¨­ â  0-£® à鸞 ¯ ­¥«¨ ¨­áâà㬥­â®¢
panel_1_coord_top equ 35
panel_2_coord_top equ 60
panel_3_coord_top equ 85
;input:
; eax - coord x
; ebx - coord y
;output:
; eax - coord x + d_x * cos(angle)
; ebx - coord y + d_x * sin(angle)
align 4
proc move_rotate_x_n90 uses ecx edi, d_x:dword, angle:dword
mov edi,[angle] ;㣮« ¯®¢®à®â  / 90 (®â 0-3)
@ -74,20 +74,9 @@ proc move_rotate_x_n90 uses ecx edi, d_x:dword, angle:dword
mov ecx,[d_x]
imul ecx,dword[edi+8]
add ebx,ecx
ret
endp
struct FileInfoBlock
Function dd ?
Position dd ?
Flags dd ?
Count dd ?
Buffer dd ?
db ?
FileName dd ?
ends
macro elOpt nam,col,box_x,box_y,table, tbl_i_legs, ol0, ol1, ol2
{
@@: db nam,0
@ -181,60 +170,15 @@ mcs dd 1, 0, 0, 1,\
-1, 0, 0,-1,\
0,-1, 1, 0
run_file_70 FileInfoBlock
image_data dd 0 ;㪠§ â¥«ì ­  ¢à¥¬¥­­ãî ¯ ¬ïâì. ¤«ï ­ã¦¥­ ¯à¥®¡à §®¢ ­¨ï ¨§®¡à ¦¥­¨ï
IMAGE_TOOLBAR_ICON_SIZE equ 16*16*3
IMAGE_TOOLBAR_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*25
image_data_toolbar dd 0
TREE_ICON_SYS16_BMP_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*11+54 ;à §¬¥à bmp ä ©«  á á¨á⥬­ë¬¨ ¨ª®­ª ¬¨
icon_tl_sys dd 0 ;㪠§ â¥«ì ­  ¯ ¬ïâì ¤«ï åà ­¥­¨ï á¨á⥬­ëå ¨ª®­®ª
TOOLBAR_ICON_BMP_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*5+54 ;à §¬¥à bmp ä ©«  á ¨ª®­ª ¬¨ ®¡ê¥ªâ®¢
icon_toolbar dd 0 ;㪠§ â¥«ì ­  ¯ ¬ïâì ¤«ï åà ­¥­¨ï ¨ª®­®ª ®¡ê¥ªâ®¢
IMAGE_FONT_SIZE equ 128*144*3
image_data_gray dd 0 ;¯ ¬ïâì á ¢à¥¬¥­­ë¬¨ á¥à묨 ¨§®¡à ¦¥­¨ï¬¨ ¢ ä®à¬ â¥ 24-bit, ¨§ ª®â®àëå ¡ã¤ãâ ᮧ¤ ¢ âìáï âà ä à¥âë
cursors_count equ 4
IMAGE_CURSORS_SIZE equ 4096*cursors_count ;à §¬¥à ª à⨭ª¨ á ªãàá®à ¬¨
macro load_image_file path,buf,size { ;¬ ªà®á ¤«ï § £à㧪¨ ¨§®¡à ¦¥­¨©
;path - ¬®¦¥â ¡ëâì ¯¥à¥¬¥­­®© ¨«¨ áâப®¢ë¬ ¯ à ¬¥â஬
if path eqtype '' ;¯à®¢¥à塞 § ¤ ­ «¨ áâப®© ¯ à ¬¥âà path
jmp @f
local .path_str
.path_str db path ;ä®à¬¨à㥬 «®ª «ì­ãî ¯¥à¥¬¥­­ãî
db 0
@@:
;32 - áâ ­¤ àâ­ë©  ¤à¥á ¯® ª®â®à®¬ã ¤®«¦¥­ ¡ëâì ¡ãä¥à á á¨á⥬­ë¬ ¯ã⥬
copy_path .path_str,[32],file_name,0
else
copy_path path,[32],file_name,0x0 ;ä®à¬¨à㥬 ¯®«­ë© ¯ãâì ª ä ©«ã ¨§®¡à ¦¥­¨ï, ¯®¤à §ã¬¥¢ ¥¬ çâ® ®­ ¢ ®¤­®© ¯ ¯ª¥ á ¯à®£à ¬¬®©
end if
stdcall mem.Alloc, dword size ;¢ë¤¥«ï¥¬ ¯ ¬ïâì ¤«ï ¨§®¡à ¦¥­¨ï
mov [buf],eax
mov [run_file_70.Function], 0
mov [run_file_70.Position], 0
mov [run_file_70.Flags], 0
mov [run_file_70.Count], dword size
m2m [run_file_70.Buffer], eax
mov byte[run_file_70+20], 0
mov [run_file_70.FileName], file_name
mcall 70,run_file_70 ;§ £à㦠¥¬ ä ©« ¨§®¡à ¦¥­¨ï
cmp ebx,0xffffffff
je @f
;®¯à¥¤¥«ï¥¬ ¢¨¤ ¨§®¡à ¦¥­¨ï ¨ ¯¥à¥¢®¤¨¬ ¥£® ¢® ¢à¥¬¥­­ë© ¡ãä¥à image_data
stdcall dword[img_decode], dword[buf],ebx,0
mov dword[image_data],eax
;¯à¥®¡à §ã¥¬ ¨§®¡à ¦¥­¨¥ ª ä®à¬ âã rgb
stdcall dword[img_to_rgb2], dword[image_data],dword[buf]
;㤠«ï¥¬ ¢à¥¬¥­­ë© ¡ãä¥à image_data
stdcall dword[img_destroy], dword[image_data]
@@:
}
ini_name db 'log_el.ini',0 ;¨¬ï ä ©« 
ini_sec_color db 'Colors',0
@ -255,10 +199,10 @@ start:
mov ebp,lib_7
cmp dword [ebp+ll_struc_size-4],0
jz @f
mcall -1 ;exit not correct
mcall SF_TERMINATE_PROCESS
@@:
mcall 48,3,sc,sizeof.system_colors
mcall 40,0x27
mcall SF_STYLE_SETTINGS,SSF_GET_COLORS,sc,sizeof.system_colors
mcall SF_SET_EVENTS_MASK,0x27
;*** áç¨â뢠­¨¥ ­ áâ஥ª ¨§ *.ini ä ©« 
copy_path ini_name,sys_path,file_name,0x0
@ -295,27 +239,27 @@ start:
;*** ¯®¤£®â®¢ª  ¤¨ «®£ 
stdcall [OpenDialog_Init],OpenDialog_data
stdcall [buf2d_create], buf_0 ;ᮧ¤ ­¨¥ ¡ãä¥à 
load_image_file 'toolbar.png', image_data_toolbar,IMAGE_TOOLBAR_SIZE
load_image_file 'toolbar.png', image_data_toolbar
stdcall pole_init, pole
stdcall dword[tl_data_init], tree1
stdcall dword[tl_data_init], tree2
;á¨á⥬­ë¥ ¨ª®­ª¨ 16*16 ¤«ï tree_list
load_image_file 'tl_sys_16.png', icon_tl_sys,TREE_ICON_SYS16_BMP_SIZE
load_image_file 'tl_sys_16.png', icon_tl_sys
;¥á«¨ ¨§®¡à ¦¥­¨¥ ­¥ ®âªàë«®áì, â® ¢ icon_tl_sys ¡ã¤ãâ
;­¥ ¨­¨æ¨ «¨§¨à®¢ ­­ë¥ ¤ ­­ë¥, ­® ®è¨¡ª¨ ­¥ ¡ã¤¥â, â. ª. ¡ãä¥à ­ã¦­®£® à §¬¥à 
mov eax,dword[icon_tl_sys]
mov dword[tree1.data_img_sys],eax
mov dword[tree2.data_img_sys],eax
load_image_file 'objects.png', icon_toolbar,TOOLBAR_ICON_BMP_SIZE
load_image_file 'objects.png', icon_toolbar
mov eax,dword[icon_toolbar]
mov dword[tree1.data_img],eax
mov dword[tree2.data_img],eax
;*** § £à㧪  èà¨äâ 
load_image_file 'font6x9.bmp', image_data_gray,IMAGE_FONT_SIZE
load_image_file 'font6x9.bmp', image_data_gray
stdcall [buf2d_create_f_img], buf_font,[image_data_gray] ;ᮧ¤ ¥¬ ¡ãä¥à
stdcall mem.Free,[image_data_gray] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì
@ -323,11 +267,11 @@ start:
stdcall [buf2d_convert_text_matrix], buf_font
;*** § £à㧪  ªãàá®à®¢
load_image_file 'cursors_gr.png',image_data_gray,IMAGE_CURSORS_SIZE
load_image_file 'cursors_gr.png',image_data_gray
stdcall [buf2d_create_f_img], buf_curs_8,[image_data_gray] ;ᮧ¤ ¥¬ ¡ãä¥à
stdcall mem.Free,[image_data_gray] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì
load_image_file 'cursors.png',image_data_gray, IMAGE_CURSORS_SIZE
load_image_file 'cursors.png',image_data_gray
stdcall [buf2d_create_f_img], buf_curs,[image_data_gray] ;ᮧ¤ ¥¬ ¡ãä¥à
stdcall mem.Free,[image_data_gray] ;®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì
@ -346,7 +290,7 @@ start:
stdcall [tl_cur_beg], tree2
;*** ãáâ ­®¢ª  ¢à¥¬¥­¨ ¤«ï â ©¬¥à 
mcall 26,9
mcall SF_SYSTEM_GET,SSF_TIME_COUNT
mov [last_time],eax
align 4
@ -355,7 +299,7 @@ red_win:
align 4
still:
mcall 26,9
mcall SF_SYSTEM_GET,SSF_TIME_COUNT
mov ebx,[last_time]
add ebx,10 ;§ ¤¥à¦ª 
cmp ebx,eax
@ -363,11 +307,7 @@ still:
mov ebx,eax
@@:
sub ebx,eax
;cmp ebx,10 ;§ ¤¥à¦ª 
;ja timer_funct
;test ebx,ebx
;jz timer_funct
mcall 23
mcall SF_WAIT_EVENT_TIMEOUT
cmp eax,0
je timer_funct
@ -386,7 +326,7 @@ still:
align 4
timer_funct:
pushad
mcall 26,9
mcall SF_SYSTEM_GET,SSF_TIME_COUNT
mov [last_time],eax
cmp byte[tim_ch],0
@ -424,7 +364,7 @@ mouse:
stdcall [tl_mouse], tree2
pushad
mcall 37,2 ;­ ¦ âë¥ ª­®¯ª¨ ¬ëè¨
mcall SF_MOUSE_GET,SSF_BUTTON
bt eax,0 ;«¥¢ ï ª­®¯ª  ­ ¦ â ?
jc @f
bt eax,1 ;¯à ¢ ï ª­®¯ª  ­ ¦ â ?
@ -436,7 +376,7 @@ mouse:
@@:
mov esi,eax
mcall 37,1 ;eax = (x shl 16) + y
mcall SF_MOUSE_GET,SSF_WINDOW_POSITION ;eax = (x shl 16) + y
cmp ax,word[buf_0.t]
jl .end_buf_wnd ;­¥ ¯®¯ «¨ ¢ ®ª­® ¡ãä¥à  ¯® ®á¨ y
@ -693,24 +633,16 @@ endp
align 4
draw_window:
pushad
mcall 12,1
mcall SF_REDRAW,SSF_BEGIN_DRAW
; *** à¨á®¢ ­¨¥ £« ¢­®£® ®ª­  (¢ë¯®«­ï¥âáï 1 à § ¯à¨ § ¯ã᪥) ***
xor eax,eax
mov ebx,(20 shl 16)+580
mov ecx,(20 shl 16)+415
mov edx,[sc.work]
or edx,(3 shl 24)+0x10000000+0x20000000
mov edi,caption
int 0x40
mcall SF_CREATE_WINDOW, (20 shl 16)+580,(20 shl 16)+415
; *** ᮧ¤ ­¨¥ ª­®¯®ª ­  ¯ ­¥«ì ***
mov eax,8
mov ebx,(5 shl 16)+20
mov ecx,(panel_0_coord_top shl 16)+20
mov edx,3
mov esi,[sc.work_button]
int 0x40
mcall SF_DEFINE_BUTTON, (5 shl 16)+20, (panel_0_coord_top shl 16)+20, 3,, [sc.work_button]
add ebx,25 shl 16
mov edx,4
@ -769,11 +701,8 @@ pushad
int 0x40
; *** à¨á®¢ ­¨¥ ¨ª®­®ª ­  ª­®¯ª å ***
mov eax,7
mov ebx,[image_data_toolbar]
mov ecx,(16 shl 16)+16
mov edx,(7 shl 16)+panel_0_coord_top+2 ;icon new
int 0x40
mcall SF_PUT_IMAGE, [image_data_toolbar],(16 shl 16)+16
add ebx,IMAGE_TOOLBAR_ICON_SIZE
add edx,(25 shl 16) ;icon open
@ -830,7 +759,7 @@ pushad
; *** ᮧ¤ ­¨¥ ª­®¯®ª ãáâ ­®¢ª¨ ᨣ­ «®¢ set_0 ¨ set_1 ***
mov esi,[sc.work_button]
mcall 8, (5 shl 16)+20, (panel_1_coord_top shl 16)+20, 20
mcall SF_DEFINE_BUTTON, (5 shl 16)+20, (panel_1_coord_top shl 16)+20, 20
add ebx,25 shl 16
mov edx,21
@ -855,7 +784,7 @@ pushad
mov ecx,[sc.work_text]
or ecx,0x80000000 ;or (1 shl 30)
;mov edi,[sc.work]
mcall 4, (12 shl 16)+panel_1_coord_top+6,, txt_set_0
mcall SF_DRAW_TEXT, (12 shl 16)+panel_1_coord_top+6,, txt_set_0
add ebx,25 shl 16
mov edx,txt_set_1
@ -864,7 +793,7 @@ pushad
; *** à¨á®¢ ­¨¥ ¨ª®­®ª ­  ª­®¯ª å ***
mov ebx,[image_data_toolbar]
add ebx,IMAGE_TOOLBAR_ICON_SIZE*15
mcall 7,, (16 shl 16)+16, (62 shl 16)+panel_1_coord_top+2
mcall SF_PUT_IMAGE,, (16 shl 16)+16, (62 shl 16)+panel_1_coord_top+2
add ebx,IMAGE_TOOLBAR_ICON_SIZE
add edx,(25 shl 16)
@ -880,7 +809,7 @@ pushad
; *** ᮧ¤ ­¨¥ ª­®¯®ª à¨á®¢ ­¨ï ¯à®¢®¤  ***
mov esi,[sc.work_button]
mcall 8, (5 shl 16)+20, (panel_2_coord_top shl 16)+20, 30
mcall SF_DEFINE_BUTTON, (5 shl 16)+20, (panel_2_coord_top shl 16)+20, 30
add ebx,30 shl 16
mov edx,31
@ -903,13 +832,9 @@ pushad
int 0x40
; *** à¨á®¢ ­¨¥ ¨ª®­®ª ­  ª­®¯ª å ***
mov eax,7
mov ebx,[image_data_toolbar]
mov ecx,(16 shl 16)+16
mov edx,(7 shl 16)+panel_2_coord_top+2 ;¨ª®­ª  áâ५ 
add ebx,IMAGE_TOOLBAR_ICON_SIZE*19
int 0x40
mcall SF_PUT_IMAGE,, (16 shl 16)+16,(7 shl 16)+panel_2_coord_top+2 ;¨ª®­ª  áâ५ 
add ebx,IMAGE_TOOLBAR_ICON_SIZE
add edx,(30 shl 16) ;icon - à¨á®¢ ­¨¥ ¯à®¢®¤ 
@ -931,21 +856,21 @@ pushad
add edx,(25 shl 16) ;icon - § â¨à çª 
int 0x40
mcall 12,2
mcall SF_REDRAW,SSF_END_DRAW
popad
ret
align 4
key:
mcall 2
stdcall [tl_key], dword tree1
stdcall [tl_key], dword tree2
mcall SF_GET_KEY
stdcall [tl_key], tree1
stdcall [tl_key], tree2
jmp still
align 4
button:
mcall 17
mcall SF_GET_BUTTON
cmp ah,3
jne @f
call but_new_file
@ -1087,9 +1012,9 @@ button:
stdcall [tl_data_clear], tree2
cmp [cursor_pointer],0
je @f
mcall 37,6,[cursor_pointer]
mcall SF_MOUSE_GET,SSF_DEL_CURSOR,[cursor_pointer]
@@:
mcall -1
mcall SF_TERMINATE_PROCESS
;ᮧ¤ ­¨¥ ­®¢®© á奬ë
align 4
@ -1132,21 +1057,21 @@ but_open_file:
jne .end_open_file
;ª®¤ ¯à¨ 㤠筮¬ ®âªàë⨨ ¤¨ «®£ 
mov [run_file_70.Function], 0
mov [run_file_70.Function], SSF_READ_FILE
mov [run_file_70.Position], 0
mov [run_file_70.Flags], 0
mov dword[run_file_70.Count], open_file_lif.end-open_file_lif
m2m [run_file_70.Buffer], open_file_lif
mov byte[run_file_70+20], 0
mov dword[run_file_70.FileName], openfile_path
mcall 70,run_file_70 ;§ £à㦠¥¬ ä ©«
mcall SF_FILE,run_file_70 ;§ £à㦠¥¬ ä ©«
cmp ebx,0xffffffff
je .end_open_file
mov dword[f_size],ebx
add ebx,open_file_lif
mov byte[ebx],0 ;­  á«ãç © ¥á«¨ à ­¥¥ ¡ë« ®âªàëâ ä ©« ¡®«ì襣® à §¬¥à  ç¨á⨬ ª®­¥æ ¡ãä¥à  á ä ©«®¬
mcall 71,1,openfile_path
mcall SF_SET_CAPTION,1,openfile_path
;---
;§ ¤ ¥¬ ¬¨­¨¬ «ì­ë¥ §­ ç¥­¨ï, ­  á«ãç © ¥á«¨ ¢ ä ©«¥ ¡ã¤ãâ ­¥ª®à¥ªâ­ë¥ à §¬¥àë
@ -1820,14 +1745,14 @@ end if
stdcall str_len,edi
;*** § ¯¨áì ä ©« 
mov [run_file_70.Function], 2
mov [run_file_70.Function], SSF_CREATE_FILE
mov [run_file_70.Position], 0
mov [run_file_70.Flags], 0
mov dword[run_file_70.Count], eax
mov [run_file_70.Buffer], edi
mov byte[run_file_70+20], 0
mov dword[run_file_70.FileName], openfile_path
mcall 70,run_file_70 ;á®å࠭塞 ä ©«
mcall SF_FILE,run_file_70 ;á®å࠭塞 ä ©«
call redraw_pole
.end_save_file:
@ -2345,7 +2270,7 @@ proc but_set_none
cmp [cursor_pointer],0
je @f
push eax ebx ecx
mcall 37,6,[cursor_pointer]
mcall SF_MOUSE_GET,SSF_DEL_CURSOR,[cursor_pointer]
pop ecx ebx eax
@@:
ret
@ -2363,12 +2288,12 @@ proc set_pen_mode uses eax ebx ecx edx, mode:dword, icon:dword, hot_p:dword
mov ecx,[icon]
shl ecx,12 ;㬭®¦ ¥¬ ­  4 ª¡
add ecx,[buf_curs.data]
mcall 37,4
mcall SF_MOUSE_GET,SSF_LOAD_CURSOR
cmp eax,0
je @f
mov [cursor_pointer],eax
mcall 37,5,[cursor_pointer]
mcall SF_MOUSE_GET,SSF_SET_CURSOR,[cursor_pointer]
@@:
ret
endp
@ -2689,10 +2614,11 @@ align 4
@@: ;cmp al,10 ;¯à®¢¥à¨âì ­¥ ¬¥­ìè¥ «¨ §­ ç¥­¨¥ ¢ al 祬 10 (¤«ï á¨á⥬ë áç¨á«¥­ï 10 ¤ ­­ ï ª®¬ ­¤  - «¨è­ ï))
or al,0x30 ;¤ ­­ ï ª®¬ ­¤  ª®à®ç¥ 祬 ¤¢¥ ¢ëè¥
stosb ;§ ¯¨á âì í«¥¬¥­â ¨§ ॣ¨áâà  al ¢ ï祪㠯 ¬ï⨠es:edi
ret ;¢¥à­ãâìáï ç¥­ì ¨­â¥à¥á­ë© 室 â.ª. ¯®ª  ¢ á⥪¥ åà ­¨âìáï ª®«-¢® ¢ë§®¢®¢ â® á⮫쪮 à § ¬ë ¨ ¡ã¤¥¬ ¢ë§ë¢ âìáï
ret ;¢¥à­ãâìáï ®ç¥­ì ¨­â¥à¥á­ë© 室 â.ª. ¯®ª  ¢ á⥪¥ åà ­¨âìáï ª®«-¢® ¢ë§®¢®¢ â® á⮫쪮 à § ¬ë ¨ ¡ã¤¥¬ ¢ë§ë¢ âìáï
align 16
i_end:
run_file_70 FileInfoBlock
rb 1024
stacktop:
sys_path rb 1024