*new function 18/6 with LFN support from diamond 26.09.06 (see docs)
*new RDsave from me *end - added button to run rdsave *cpu - title with fn0 git-svn-id: svn://kolibrios.org@341 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
@@ -1,27 +1,22 @@
|
|||||||
sysfn_saveramdisk: ; 18.6 = SAVE FLOPPY IMAGE (HD version only)
|
iglobal
|
||||||
cmp ebx,1
|
saverd_fileinfo:
|
||||||
jnz img_save_hd_1
|
dd 2 ; subfunction: write
|
||||||
mov edx,bootpath ; path = '/KOLIBRI '
|
dd 0 ; (reserved)
|
||||||
jmp img_save_hd_3
|
dd 0 ; (reserved)
|
||||||
img_save_hd_1:
|
dd 1440*1024 ; size 1440 Kb
|
||||||
cmp ebx,2
|
dd 0x100000 - std_application_base_address ; base address
|
||||||
jnz img_save_hd_2
|
db 0
|
||||||
mov edx,bootpath2 ; path = 0 (root dir)
|
.name:
|
||||||
jmp img_save_hd_3
|
dd ?
|
||||||
img_save_hd_2:
|
endg
|
||||||
cmp ebx,3
|
sysfn_saveramdisk: ; 18.6 = SAVE FLOPPY IMAGE (HD version only)
|
||||||
jnz exit_for_anyone
|
call restorefatchain
|
||||||
mov edx,[0x3010]
|
mov eax, saverd_fileinfo - std_application_base_address
|
||||||
mov edx,[edx+TASKDATA.mem_start]
|
mov [saverd_fileinfo.name], ebx
|
||||||
add edx,ecx
|
pushad
|
||||||
img_save_hd_3:
|
push eax
|
||||||
call reserve_hd1
|
call file_system_lfn
|
||||||
call reserve_hd_channel
|
pop eax
|
||||||
call restorefatchain ; restore FAT !!!
|
popad
|
||||||
mov eax,image_save
|
mov [esp+36], eax
|
||||||
mov ebx,1440*1024 ; size 1440 Kb
|
ret
|
||||||
mov ecx,0x100000 ; address of image
|
|
||||||
call file_write
|
|
||||||
call free_hd_channel
|
|
||||||
mov [esp+36],eax
|
|
||||||
ret
|
|
||||||
|
@@ -676,19 +676,12 @@
|
|||||||
<EFBFBD><EFBFBD>ࠬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
<EFBFBD><EFBFBD>ࠬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||||
* eax = 18 - <20><><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨
|
* eax = 18 - <20><><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨
|
||||||
* ebx = 6 - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㭪樨
|
* ebx = 6 - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㭪樨
|
||||||
* ecx <EFBFBD><EFBFBD>।<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <EFBFBD> 䠩<><E4A0A9>:
|
* ecx = 㪠<><E3AAA0>⥫<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ப<EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<><E4A0A9>
|
||||||
* 1 = <20> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "/KOLIBRI"
|
(<28><EFBFBD><EFBFBD>ਬ<EFBFBD><EFBFBD>, "/hd0/1/kolibri/kolibri.img")
|
||||||
* 2 = <20> <20><><EFBFBD><E0ADA5><EFBFBD> <20><>⠫<EFBFBD><E2A0AB><EFBFBD>
|
|
||||||
* 3 = edx 㪠<>뢠<EFBFBD><EBA2A0> <20><> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><>ଠ<EFBFBD><E0ACA0> 8+3,
|
|
||||||
ࠧ<><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> '/')
|
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>頥<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD>:
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>頥<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD>:
|
||||||
* eax = 0 - <20>ᯥ譮
|
* eax = 0 - <20>ᯥ譮
|
||||||
* <20><><EFBFBD><EFBFBD><EFBFBD> eax = <20><><EFBFBD> <20>訡<EFBFBD><E8A8A1> 䠩<><E4A0A9><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⥬<EFBFBD>
|
* <20><><EFBFBD><EFBFBD><EFBFBD> eax = <20><><EFBFBD> <20>訡<EFBFBD><E8A8A1> 䠩<><E4A0A9><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⥬<EFBFBD>
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>砭<EFBFBD><EFBFBD>:
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>砭<EFBFBD><EFBFBD>:
|
||||||
* <20><><EFBFBD> 䠩<><E4A0A9> 䨪<><E4A8AA><EFBFBD><E0AEA2><EFBFBD>, "kolibri.img" (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>쭠<EFBFBD> <20><>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
||||||
image_save <20><> preboot.inc)
|
|
||||||
* <20><> <20><><EFBFBD><EFBFBD><EFBFBD> ࠧ<><E0A0A7><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>᪠ 䠩<> <20>㤥<EFBFBD> <20><><EFBFBD>࠭<EFBFBD><E0A0AD>, <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
<20><><EFBFBD><EFBFBD>㭪樥<E3ADAA> 7 <20> <20><><EFBFBD><EFBFBD>㭪樥<E3ADAA> 8 <20>㭪樨 21.
|
|
||||||
* <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> 㪠<><E3AAA0><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>⢮<EFBFBD><E2A2AE><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
* <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> 㪠<><E3AAA0><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>⢮<EFBFBD><E2A2AE><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
<20><><EFBFBD>祭<EFBFBD><E7A5AD> 5, "䠩<> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>".
|
<20><><EFBFBD>祭<EFBFBD><E7A5AD> 5, "䠩<> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>".
|
||||||
|
|
||||||
|
@@ -671,19 +671,12 @@ Returned value:
|
|||||||
Parameters:
|
Parameters:
|
||||||
* eax = 18 - function number
|
* eax = 18 - function number
|
||||||
* ebx = 6 - subfunction number
|
* ebx = 6 - subfunction number
|
||||||
* ecx defines path to the file:
|
* ecx = pointer to the full path to file
|
||||||
* 1 = in the folder "/KOLIBRI"
|
(for example, "/hd0/1/kolibri/kolibri.img")
|
||||||
* 2 = in the root folder
|
|
||||||
* 3 = edx points to the path (names of folders in the format 8+3,
|
|
||||||
divided by '/')
|
|
||||||
Returned value:
|
Returned value:
|
||||||
* eax = 0 - success
|
* eax = 0 - success
|
||||||
* else eax = error code of the file system
|
* else eax = error code of the file system
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
Remarks:
|
||||||
* Filename is fixed, "kolibri.img" (global kernel variable
|
|
||||||
'image_save' from 'preboot.inc')
|
|
||||||
* Drive and partition are defined by subfunction 7
|
|
||||||
and subfunction 8 of function 21.
|
|
||||||
* All folders in the given path must exist, otherwise function
|
* All folders in the given path must exist, otherwise function
|
||||||
returns value 5, "file not found".
|
returns value 5, "file not found".
|
||||||
|
|
||||||
|
@@ -126,7 +126,7 @@ still_end:
|
|||||||
;close program if we going to reboot
|
;close program if we going to reboot
|
||||||
|
|
||||||
close:
|
close:
|
||||||
mov eax,-1 ; close this program
|
or eax,-1 ; close this program
|
||||||
int 0x40
|
int 0x40
|
||||||
|
|
||||||
draw_next_process:
|
draw_next_process:
|
||||||
@@ -479,19 +479,12 @@ draw_window:
|
|||||||
xor eax,eax ; function 0 : define and draw window
|
xor eax,eax ; function 0 : define and draw window
|
||||||
mov ebx,[winxpos] ; [x start] *65536 + [x size]
|
mov ebx,[winxpos] ; [x start] *65536 + [x size]
|
||||||
mov ecx,[winypos] ; [y start] *65536 + [y size]
|
mov ecx,[winypos] ; [y start] *65536 + [y size]
|
||||||
mov edx,0x03ddffdd ;ffffff ; color of work area RRGGBB,8->color
|
mov edx,0x13ddffdd ;ffffff ; color of work area RRGGBB,8->color
|
||||||
mov esi,0x805080d0 ; color of grab bar RRGGBB,8->color gl
|
mov edi,header ; WINDOW CAPTION;
|
||||||
mov edi,0x005080d0 ; color of frames RRGGBB
|
|
||||||
int 0x40
|
int 0x40
|
||||||
|
|
||||||
; WINDOW CAPTION
|
|
||||||
mov eax,4 ; function 4 : write text to window
|
mov eax,4 ; function 4 : write text to window
|
||||||
mov ebx,8*65536+8 ; [x start] *65536 + [y start]
|
|
||||||
mov ecx,0x10ffffff ; font 1 & color ( 0xF0RRGGBB )
|
|
||||||
mov edx,labelt ; pointer to text beginning
|
|
||||||
mov esi,labellen-labelt ; text length
|
|
||||||
int 0x40
|
|
||||||
|
|
||||||
mov ebx,22*65536+35 ; draw info text with function 4
|
mov ebx,22*65536+35 ; draw info text with function 4
|
||||||
xor ecx,ecx
|
xor ecx,ecx
|
||||||
mov edx,text
|
mov edx,text
|
||||||
@@ -601,9 +594,7 @@ tbts_2 db '>'
|
|||||||
tbts_3 db 'START'
|
tbts_3 db 'START'
|
||||||
tbte_2:
|
tbte_2:
|
||||||
|
|
||||||
labelt:
|
header db 'Prozesse - Ctrl/Alt/Del',0
|
||||||
db 'Prozesse - Ctrl/Alt/Del'
|
|
||||||
labellen:
|
|
||||||
|
|
||||||
else if lang eq et
|
else if lang eq et
|
||||||
text:
|
text:
|
||||||
@@ -617,9 +608,7 @@ tbts_2 db '>'
|
|||||||
tbts_3 db 'START'
|
tbts_3 db 'START'
|
||||||
tbte_2:
|
tbte_2:
|
||||||
|
|
||||||
labelt:
|
header db 'Protsessid - Ctrl/Alt/Del',0
|
||||||
db 'Protsessid - Ctrl/Alt/Del'
|
|
||||||
labellen:
|
|
||||||
|
|
||||||
else
|
else
|
||||||
text:
|
text:
|
||||||
@@ -633,9 +622,7 @@ tbts_2 db '>'
|
|||||||
tbts_3 db 'RUN'
|
tbts_3 db 'RUN'
|
||||||
tbte_2:
|
tbte_2:
|
||||||
|
|
||||||
labelt:
|
header db 'Processes - Ctrl/Alt/Del',0
|
||||||
db 'Processes - Ctrl/Alt/Del'
|
|
||||||
labellen:
|
|
||||||
|
|
||||||
end if
|
end if
|
||||||
|
|
||||||
|
@@ -29,19 +29,14 @@ do_draw:
|
|||||||
movzx ecx,ax
|
movzx ecx,ax
|
||||||
|
|
||||||
shr eax,17
|
shr eax,17
|
||||||
; sub eax,110
|
|
||||||
shl eax,16
|
shl eax,16
|
||||||
; mov ebx,eax
|
|
||||||
; add ebx,220
|
|
||||||
lea ebx,[eax-110*10000h+220]
|
lea ebx,[eax-110*10000h+220]
|
||||||
|
|
||||||
shr ecx,1
|
shr ecx,1
|
||||||
; sub ecx,50
|
|
||||||
shl ecx,16
|
shl ecx,16
|
||||||
; add ecx,100
|
sub ecx,50*10000h - 120
|
||||||
sub ecx,50*10000h - 100
|
|
||||||
|
|
||||||
mov eax,0 ; define and draw window
|
xor eax,eax ; define and draw window
|
||||||
mov edx,[sc.work]
|
mov edx,[sc.work]
|
||||||
mov esi,edx
|
mov esi,edx
|
||||||
mov edi,edx
|
mov edi,edx
|
||||||
@@ -51,11 +46,12 @@ do_draw:
|
|||||||
mov al,13
|
mov al,13
|
||||||
mcall ,18 shl 16+90,29 shl 16+27
|
mcall ,18 shl 16+90,29 shl 16+27
|
||||||
push ebx
|
push ebx
|
||||||
mcall ,121 shl 16+90,
|
mcall ,121 shl 16+90
|
||||||
xchg ebx,[esp]
|
xchg ebx,[esp]
|
||||||
mcall ,,63 shl 16+27
|
mcall ,,63 shl 16+27
|
||||||
pop ebx
|
pop ebx
|
||||||
mcall
|
mcall
|
||||||
|
mcall ,179 shl 16+30,99 shl 16+15
|
||||||
|
|
||||||
xor edx,edx
|
xor edx,edx
|
||||||
mov al,8
|
mov al,8
|
||||||
@@ -67,38 +63,38 @@ do_draw:
|
|||||||
mcall ,15 shl 16+87,60 shl 16+24,,0x9900
|
mcall ,15 shl 16+87,60 shl 16+24,,0x9900
|
||||||
inc edx
|
inc edx
|
||||||
mcall ,118 shl 16+87,,,0xaaaaaa ;cccccc
|
mcall ,118 shl 16+87,,,0xaaaaaa ;cccccc
|
||||||
|
inc edx
|
||||||
|
mcall ,175 shl 16+30,95 shl 16+15,,[sc.work_button]
|
||||||
|
|
||||||
mov al,4 ; 0x00000004 = write text
|
mov al,4 ; 0x00000004 = write text
|
||||||
mov ebx,75*65536+10
|
mov ebx,75*65536+10
|
||||||
mov ecx,[sc.work_text] ; 8b window nro - RR GG BB color
|
mov ecx,[sc.work_text] ; 8b window nro - RR GG BB color
|
||||||
or ecx,0x10000000
|
or ecx,0x90000000
|
||||||
mov edx,label1 ; pointer to text beginning
|
mov edx,label1 ; pointer to text beginning
|
||||||
mov esi,label1_len ; text length
|
|
||||||
int 0x40
|
int 0x40
|
||||||
|
|
||||||
mov ecx,0xeeeeee ; 8b window nro - RR GG BB color
|
mov ebx,15*65536+101
|
||||||
or ecx,0x10000000
|
mov edx,label4
|
||||||
|
int 0x40
|
||||||
|
|
||||||
|
mov ecx,0x90eeeeee ; 8b window nro - RR GG BB color
|
||||||
mov ebx,25*65536+30
|
mov ebx,25*65536+30
|
||||||
mov edx,label2 ; pointer to text beginning
|
mov edx,label2 ; pointer to text beginning
|
||||||
mov esi,label2_len ; text length
|
|
||||||
int 0x40
|
int 0x40
|
||||||
|
|
||||||
mov ebx,20*65536+64
|
mov ebx,20*65536+64
|
||||||
mov edx,label3 ; pointer to text beginning
|
mov edx,label3
|
||||||
mov esi,label3_len ; text length
|
|
||||||
int 0x40
|
int 0x40
|
||||||
|
|
||||||
mov ebx,45*65536+41
|
mov ebx,45*65536+41
|
||||||
mov edx,label4 ; pointer to text beginning
|
mov edx,label5
|
||||||
mov esi,label4_len ; text length
|
|
||||||
int 0x40
|
int 0x40
|
||||||
|
|
||||||
mov ebx,40*65536+75
|
mov ebx,40*65536+75
|
||||||
mov edx,label5 ; pointer to text beginning
|
mov edx,label6
|
||||||
mov esi,label5_len ; text length
|
|
||||||
int 0x40
|
int 0x40
|
||||||
|
|
||||||
mov al,12 ; tell os about redraw end
|
mov al,12 ;end of redraw
|
||||||
mov ebx,2
|
mov ebx,2
|
||||||
int 0x40
|
int 0x40
|
||||||
|
|
||||||
@@ -135,6 +131,8 @@ still:
|
|||||||
jz restart_kernel
|
jz restart_kernel
|
||||||
dec eax
|
dec eax
|
||||||
jz restart
|
jz restart
|
||||||
|
dec eax
|
||||||
|
jnz run_rdsave
|
||||||
; we have only one button left, this is close button
|
; we have only one button left, this is close button
|
||||||
; dec eax
|
; dec eax
|
||||||
; jnz still
|
; jnz still
|
||||||
@@ -157,75 +155,67 @@ mcall_and_close:
|
|||||||
mcall 18,9
|
mcall 18,9
|
||||||
jmp close_1
|
jmp close_1
|
||||||
|
|
||||||
|
run_rdsave:
|
||||||
|
mov eax,70
|
||||||
|
mov ebx,rdsave
|
||||||
|
int 0x40
|
||||||
|
jmp still
|
||||||
|
|
||||||
data
|
data
|
||||||
|
|
||||||
if lang eq ru
|
if lang eq ru
|
||||||
|
|
||||||
label1:
|
label1:
|
||||||
db '<27><><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:'
|
db '<27><><EFBFBD> <20>롮<EFBFBD>:',0
|
||||||
label1_len = $ - label1
|
|
||||||
|
|
||||||
label2:
|
label2:
|
||||||
db '<27><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>'
|
db '<27>몫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>',0
|
||||||
label2_len = $ - label2
|
|
||||||
|
|
||||||
label3:
|
label3:
|
||||||
db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
db '<27><>१<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⬥<EFBFBD><EFBFBD>',0
|
||||||
label3_len = $ - label3
|
label4:
|
||||||
|
db '<27><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD>ன<EFBFBD><E0AEA9>',0
|
||||||
|
|
||||||
else if lang eq en
|
else if lang eq en
|
||||||
|
|
||||||
label1:
|
label1:
|
||||||
db ' SELECT:'
|
db ' SELECT:',0
|
||||||
label1_len = $ - label1
|
|
||||||
|
|
||||||
label2:
|
label2:
|
||||||
db 'POWER OFF KERNEL'
|
db 'POWER OFF KERNEL',0
|
||||||
label2_len = $ - label2
|
|
||||||
|
|
||||||
label3:
|
label3:
|
||||||
db ' RESTART CANCEL'
|
db ' RESTART CANCEL',0
|
||||||
label3_len = $ - label3
|
label4:
|
||||||
|
db 'Save settings',0
|
||||||
|
|
||||||
else if lang eq et
|
else if lang eq et
|
||||||
|
|
||||||
label1:
|
label1:
|
||||||
db ' VALI:'
|
db ' VALI:',0
|
||||||
label1_len = $ - label1
|
|
||||||
|
|
||||||
label2:
|
label2:
|
||||||
db 'L<>LITA V<>LJA KERNEL'
|
db 'L<>LITA V<>LJA KERNEL',0
|
||||||
label2_len = $ - label2
|
|
||||||
|
|
||||||
label3:
|
label3:
|
||||||
db ' RESTART T<>HISTA'
|
db ' RESTART T<>HISTA',0
|
||||||
label3_len = $ - label3
|
label4:
|
||||||
|
db 'Save settings',0
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
||||||
label1:
|
label1:
|
||||||
db 'WAEHLEN:'
|
db 'WAEHLEN:',0
|
||||||
label1_len = $ - label1
|
|
||||||
|
|
||||||
label2:
|
label2:
|
||||||
db ' BEENDEN KERNEL'
|
db ' BEENDEN KERNEL',0
|
||||||
label2_len = $ - label2
|
|
||||||
|
|
||||||
label3:
|
label3:
|
||||||
db ' NEUSTART ABBRECHEN'
|
db ' NEUSTART ABBRECHEN',0
|
||||||
label3_len = $ - label3
|
label4:
|
||||||
|
db 'Save settings',0
|
||||||
|
|
||||||
end if
|
end if
|
||||||
|
|
||||||
label4:
|
|
||||||
db '(End) (Home)'
|
|
||||||
label4_len = $ - label4
|
|
||||||
|
|
||||||
label5:
|
label5:
|
||||||
db '(Enter) (Esc)'
|
db '(End) (Home)',0
|
||||||
label5_len = $ - label5
|
label6:
|
||||||
|
db '(Enter) (Esc)',0
|
||||||
|
|
||||||
|
rdsave:
|
||||||
|
dd 7
|
||||||
|
dd 0
|
||||||
|
dd 0
|
||||||
|
dd 0
|
||||||
|
dd 0
|
||||||
|
db '/rd/1/rdsave',0
|
||||||
udata
|
udata
|
||||||
sc system_colors
|
sc system_colors
|
||||||
|
|
||||||
|
978
programs/system/rdsave/trunk/editbox.inc
Normal file
978
programs/system/rdsave/trunk/editbox.inc
Normal file
@@ -0,0 +1,978 @@
|
|||||||
|
; <Lrz> 01.02.2007 <EFBFBD><EFBFBD>ࠡ<EFBFBD>⪠ edit_box, <EFBFBD><EFBFBD><EFBFBD>ࠢ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
|
; <Lrz> 26.01.2007 <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> .check_offset
|
||||||
|
; <Lrz> 24.01.2007 <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> )).
|
||||||
|
; <Lrz> 22.01.2007 <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> del & backspase
|
||||||
|
; <Lrz> 20.01.2007 ॠ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>뤥<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⥪<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> shift
|
||||||
|
; <Lrz> 12.12.2006 ॠ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>প<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> insert <EFBFBD> ᥣ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠡ<EFBFBD>⠥<EFBFBD>!!!!
|
||||||
|
; <Lrz> 07.12.2006 <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><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ᥭ<EFBFBD><EFBFBD> ᨬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
|
; <Lrz> 03.09.2006 <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>⪠<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> 16 <EFBFBD><EFBFBD>⭮<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>䬥⨪<EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
; <Lrz> 09.08.2006 <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> DEL <EFBFBD> Backspace, 㬥<EFBFBD><EFBFBD>襭 ࠧ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>믮<EFBFBD><EFBFBD>塞<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
|
; <Lrz> 21.07.2006 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>㭪<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Del, ⥯<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>ᨬ (Maxxxx32) email: maxxxxm@mail.ru
|
||||||
|
; <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 13.06.06 10:40
|
||||||
|
; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD>室<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>ணࠬ<EFBFBD><EFBFBD> use_edit_box,
|
||||||
|
; <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>:
|
||||||
|
; edit_box.draw - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᮢ<EFBFBD><EFBFBD>;
|
||||||
|
; edit_box.key - <EFBFBD><EFBFBD>ࠡ<EFBFBD>⪠ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
||||||
|
; edit_box.mouse - <EFBFBD><EFBFBD>ࠡ<EFBFBD>⪠ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
||||||
|
; edit_box.focus - <EFBFBD><EFBFBD>⠭<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䮪<EFBFBD><EFBFBD><EFBFBD>;
|
||||||
|
; edit_box.blur - <EFBFBD><EFBFBD><EFBFBD> ࠧ<EFBFBD>뢠<EFBFBD><EFBFBD><EFBFBD>;
|
||||||
|
; edit_box.get_n - <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> edi <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>:
|
||||||
|
; some_edit edit_box 100,10,30,0x00ffffff,0,0x00aaaaaa,0,255,some_edit_text
|
||||||
|
; <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><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>⢮ 255:
|
||||||
|
; some_edit_text:
|
||||||
|
; rb 256 ;255+1
|
||||||
|
|
||||||
|
; <EFBFBD>ਬ<EFBFBD><EFBFBD> <EFBFBD>맮<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>楤<EFBFBD><EFBFBD><EFBFBD>:
|
||||||
|
; mov edi,some_edit
|
||||||
|
; call edit_box.draw
|
||||||
|
|
||||||
|
; <EFBFBD><EFBFBD><EFBFBD> <EFBFBD>맮<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>楤<EFBFBD><EFBFBD><EFBFBD> edit_box.key <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
; <EFBFBD><EFBFBD>室<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> ah, <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>
|
||||||
|
; 2-<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ᥬ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>㭪<EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD>ਬ<EFBFBD><EFBFBD>:
|
||||||
|
; mov eax,2
|
||||||
|
; int 0x40
|
||||||
|
; mov edi,some_edit1
|
||||||
|
; call edit_box.key
|
||||||
|
; mov edi,some_edit2
|
||||||
|
; call edit_box.key
|
||||||
|
; <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> edit box
|
||||||
|
; 䮪<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
|
macro use_edit_box
|
||||||
|
{
|
||||||
|
edit_box:
|
||||||
|
ed_width equ [edi] ;<EFBFBD><EFBFBD>ਭ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
ed_left equ [edi+4] ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD>
|
||||||
|
ed_top equ [edi+8] ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD>
|
||||||
|
ed_color equ [edi+12] ;梥<EFBFBD> 䮭<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
ed_focus_border_color equ [edi+16] ;梥<EFBFBD> ࠬ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
ed_blur_border_color equ [edi+20] ;梥<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>⨢<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
ed_text_color equ [edi+24] ;梥<EFBFBD> ⥪<EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
ed_max equ [edi+28] ;<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>
|
||||||
|
ed_text equ [edi+32] ;㪠<EFBFBD><EFBFBD>⥫<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
ed_flags equ [edi+36] ;䫠<EFBFBD><EFBFBD>
|
||||||
|
ed_size equ [edi+38] ;<EFBFBD><EFBFBD><EFBFBD>-<EFBFBD><EFBFBD> ᨬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
ed_pos equ [edi+42] ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
ed_offset equ [edi+46] ;ᬥ饭<EFBFBD><EFBFBD>
|
||||||
|
cl_curs_x equ [edi+50] ;<EFBFBD>।<EFBFBD><EFBFBD><EFBFBD>饥 <EFBFBD><EFBFBD><EFBFBD>न<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>
|
||||||
|
cl_curs_y equ [edi+54] ;<EFBFBD>।<EFBFBD><EFBFBD><EFBFBD>饥 <EFBFBD><EFBFBD><EFBFBD>न<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>
|
||||||
|
ed_shift_pos equ [edi+58]
|
||||||
|
ed_height=14 ; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
shift_color=0x6a9480
|
||||||
|
ed_insert=10000b
|
||||||
|
ed_insert_cl=1111111111101111b
|
||||||
|
;==========================================================
|
||||||
|
;=== <EFBFBD><EFBFBD><EFBFBD>楤<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᮢ<EFBFBD><EFBFBD> =================================
|
||||||
|
;==========================================================
|
||||||
|
.draw:
|
||||||
|
pusha
|
||||||
|
;--- <EFBFBD><EFBFBD><EFBFBD>㥬 ࠬ<EFBFBD><EFBFBD> ---
|
||||||
|
call .draw_border ; <EFBFBD>㭪<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>⠡<EFBFBD><EFBFBD>쭠
|
||||||
|
.draw_bg_cursor_text:
|
||||||
|
;--- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>塞 ᬥ饭<EFBFBD><EFBFBD>, <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> ---
|
||||||
|
call .check_offset ;<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> ---
|
||||||
|
call .draw_bg ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᮢ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>אַ㣮<EFBFBD>쭨<EFBFBD> ࠡ<EFBFBD>祩 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
.draw_cursor_text:
|
||||||
|
;--- <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> ----
|
||||||
|
test word ed_flags,ed_focus
|
||||||
|
je @f
|
||||||
|
call .draw_cursor
|
||||||
|
@@:
|
||||||
|
call .draw_text
|
||||||
|
popa
|
||||||
|
ret
|
||||||
|
|
||||||
|
;.str:
|
||||||
|
; mov ecx,0x0a ;<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> ebx,eax,ecx,edx <EFBFBD>室<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ࠬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> eax - <EFBFBD><EFBFBD>
|
||||||
|
; ;<EFBFBD><EFBFBD><EFBFBD>ॢ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD> ASCII <EFBFBD><EFBFBD>ப<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ecx=<EFBFBD><EFBFBD><EFBFBD>⥬<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> edi <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>
|
||||||
|
; cmp eax,ecx ;<EFBFBD>ࠢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD> eax <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 祬 <EFBFBD> ecx <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>३<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> @@-1 <EFBFBD>.<EFBFBD>. <EFBFBD><EFBFBD> pop eax
|
||||||
|
; jb @f
|
||||||
|
; xor edx,edx ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> edx
|
||||||
|
; div ecx ;ࠧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⮪ <EFBFBD> edx
|
||||||
|
; push edx ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD>⥪
|
||||||
|
; ;dec edi ;ᬥ饭<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>
|
||||||
|
; call .str;<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> eax <EFBFBD><EFBFBD> <EFBFBD>⠭<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 祬 <EFBFBD> ecx
|
||||||
|
; pop eax
|
||||||
|
; @@: ;cmp al,10 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>祭<EFBFBD><EFBFBD> <EFBFBD> al 祬 10 (<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⥬<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 10 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <EFBFBD><EFBFBD>譠<EFBFBD>))
|
||||||
|
; ;sbb al,$69 ;- <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>
|
||||||
|
; ;das ;<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> al <EFBFBD><EFBFBD> 66h (<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᠭ<EFBFBD> <EFBFBD><EFBFBD>㣮<EFBFBD>)
|
||||||
|
; or al,0x30 ;<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>
|
||||||
|
; stosb ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> ॣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> al <EFBFBD> <EFBFBD>祪<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> es:edi
|
||||||
|
;
|
||||||
|
; ret ;<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><EFBFBD><EFBFBD> --------------------------
|
||||||
|
;----------------------------------------------------------
|
||||||
|
.draw_text:
|
||||||
|
;--- <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> ---
|
||||||
|
call .get_n
|
||||||
|
mov esi,ed_size
|
||||||
|
mov ebx,ed_offset
|
||||||
|
sub esi,ebx
|
||||||
|
cmp eax,esi
|
||||||
|
jae @F
|
||||||
|
mov esi,eax ;<EFBFBD>⮡<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>室<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>।<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>࠭<EFBFBD>
|
||||||
|
;--- <EFBFBD><EFBFBD><EFBFBD>㥬 ⥪<EFBFBD><EFBFBD> ---
|
||||||
|
@@: mov eax,4
|
||||||
|
mov ebx,ed_left
|
||||||
|
mov edx,ed_offset
|
||||||
|
add ebx,2
|
||||||
|
shl ebx,16
|
||||||
|
mov bx,ed_top
|
||||||
|
add ebx,4
|
||||||
|
mov ecx,ed_text_color
|
||||||
|
add edx,ed_text
|
||||||
|
int 0x40
|
||||||
|
ret
|
||||||
|
;----------------------------------------------------------
|
||||||
|
;--- <EFBFBD><EFBFBD><EFBFBD>楤<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᮢ<EFBFBD><EFBFBD> 䮭<EFBFBD> ----------------------------
|
||||||
|
;<EFBFBD>室<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
;eax
|
||||||
|
;edx - color
|
||||||
|
;----------------------------------------------------------
|
||||||
|
.draw_bg_eax:
|
||||||
|
mov ecx,ed_top
|
||||||
|
add ecx,1
|
||||||
|
shl ecx,16
|
||||||
|
mov cx,13
|
||||||
|
mov eax,13
|
||||||
|
int 0x40
|
||||||
|
ret
|
||||||
|
|
||||||
|
jmp @f
|
||||||
|
.draw_bg:
|
||||||
|
mov ebx,ed_left
|
||||||
|
add ebx,1
|
||||||
|
shl ebx,16
|
||||||
|
mov bx,ed_width
|
||||||
|
sub ebx,1
|
||||||
|
|
||||||
|
@@:
|
||||||
|
mov ecx,ed_top
|
||||||
|
mov eax,13
|
||||||
|
add ecx,1
|
||||||
|
shl ecx,16
|
||||||
|
mov edx,ed_color
|
||||||
|
mov cx,ed_height
|
||||||
|
sub ecx,1
|
||||||
|
int 0x40
|
||||||
|
ret
|
||||||
|
|
||||||
|
;----------------------------------------------------------
|
||||||
|
;--- <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> --------------
|
||||||
|
;----------------------------------------------------------
|
||||||
|
.get_n:
|
||||||
|
mov eax,ed_width ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD>祬 <EFBFBD><EFBFBD>ਭ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
xor edx,edx ;१<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ᯮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> edx:eax <EFBFBD> eax - <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⮪
|
||||||
|
sub eax,4 ;<EFBFBD><EFBFBD><EFBFBD>⨬ 4
|
||||||
|
mov ebx,6 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD>㧬<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥫<EFBFBD>
|
||||||
|
div ebx ;ࠧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> 6
|
||||||
|
ret
|
||||||
|
|
||||||
|
;----------------------------------------------------------
|
||||||
|
;--- <EFBFBD><EFBFBD><EFBFBD>楤<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ᮢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> --------------------------
|
||||||
|
;----------------------------------------------------------
|
||||||
|
.clear_cursor:
|
||||||
|
mov edx,ed_color
|
||||||
|
test word ed_flags,ed_shift
|
||||||
|
je @f
|
||||||
|
mov edx,shift_color
|
||||||
|
@@:
|
||||||
|
mov ebx,cl_curs_x
|
||||||
|
mov ecx,cl_curs_y
|
||||||
|
jmp .draw_curs
|
||||||
|
.draw_cursor:
|
||||||
|
|
||||||
|
mov edx,ed_text_color
|
||||||
|
@@:
|
||||||
|
mov ebx,ed_pos
|
||||||
|
mov ecx,ed_offset
|
||||||
|
sub ebx,ecx
|
||||||
|
|
||||||
|
lea ebx,[ebx*2+ebx]
|
||||||
|
shl ebx,1
|
||||||
|
;imul ebx,6
|
||||||
|
add bx,ed_left
|
||||||
|
mov ecx,ed_top
|
||||||
|
inc ebx
|
||||||
|
add ecx,2
|
||||||
|
mov ebp,ebx
|
||||||
|
shl ebx,16
|
||||||
|
mov bx,bp
|
||||||
|
mov ebp,ecx
|
||||||
|
|
||||||
|
shl ecx,16
|
||||||
|
mov cx,bp
|
||||||
|
add cx,ed_height-4
|
||||||
|
|
||||||
|
mov cl_curs_x,ebx
|
||||||
|
mov cl_curs_y,ecx
|
||||||
|
.draw_curs:
|
||||||
|
mov eax,38
|
||||||
|
int 0x40
|
||||||
|
ret
|
||||||
|
|
||||||
|
;----------------------------------------------------------
|
||||||
|
;--- <EFBFBD><EFBFBD><EFBFBD>楤<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ᮢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠬ<EFBFBD><EFBFBD> ----------------------------
|
||||||
|
;----------------------------------------------------------
|
||||||
|
.draw_border:
|
||||||
|
;--- 梥<EFBFBD> ࠬ<EFBFBD><EFBFBD> ---
|
||||||
|
test dword ed_flags,ed_focus
|
||||||
|
mov edx,ed_focus_border_color
|
||||||
|
jne @f
|
||||||
|
mov edx,ed_blur_border_color
|
||||||
|
@@:
|
||||||
|
;--- ᢥ<EFBFBD><EFBFBD><EFBFBD> ---
|
||||||
|
mov eax,38
|
||||||
|
mov ebx,ed_left
|
||||||
|
mov ecx,ebx
|
||||||
|
shl ebx,16
|
||||||
|
mov bx,cx
|
||||||
|
add bx,ed_width
|
||||||
|
mov ecx, ed_top
|
||||||
|
mov esi,ecx
|
||||||
|
shl ecx,16
|
||||||
|
mov cx,si
|
||||||
|
int 0x40
|
||||||
|
|
||||||
|
;--- ᭨<EFBFBD><EFBFBD> ---
|
||||||
|
mov esi,ecx
|
||||||
|
add ecx,ed_height
|
||||||
|
mov ebp,ecx
|
||||||
|
shl ecx,16
|
||||||
|
mov cx,bp
|
||||||
|
int 0x40
|
||||||
|
|
||||||
|
;--- <EFBFBD><EFBFBD> ---
|
||||||
|
mov cx,si
|
||||||
|
mov ebp,ebx
|
||||||
|
sub bx,ed_width
|
||||||
|
int 0x40
|
||||||
|
|
||||||
|
;--- <EFBFBD><EFBFBD>ࠢ<EFBFBD> ---
|
||||||
|
mov ebx,ebp
|
||||||
|
shl ebx,16
|
||||||
|
mov bx,bp
|
||||||
|
int 0x40
|
||||||
|
ret
|
||||||
|
;----------------------------------------------------------
|
||||||
|
;--- <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> ------------------------------------
|
||||||
|
;--- eax = -1, <EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> eax = 0, <EFBFBD>
|
||||||
|
; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
;----------------------------------------------------------
|
||||||
|
.check_offset:
|
||||||
|
pushad
|
||||||
|
mov ecx,ed_pos
|
||||||
|
mov ebx,ed_offset
|
||||||
|
cmp ebx,ecx
|
||||||
|
ja .sub_8
|
||||||
|
|
||||||
|
push ebx
|
||||||
|
call .get_n ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD>稬 <EFBFBD><EFBFBD><EFBFBD>-<EFBFBD><EFBFBD> ᨬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> ॣ<EFBFBD><EFBFBD><EFBFBD> edx:eax
|
||||||
|
pop ebx
|
||||||
|
mov edx,ebx
|
||||||
|
add edx,eax ;ed_offset+width editbox
|
||||||
|
cmp edx,ecx
|
||||||
|
ja @f
|
||||||
|
|
||||||
|
mov edx,ed_size
|
||||||
|
cmp edx,ecx
|
||||||
|
je .add_end
|
||||||
|
|
||||||
|
sub edx,ecx
|
||||||
|
cmp edx,8
|
||||||
|
jbe .add_8
|
||||||
|
add ebx,8
|
||||||
|
jmp .chk_d
|
||||||
|
|
||||||
|
.sub_8: cmp ecx,0
|
||||||
|
je .sub_min
|
||||||
|
cmp ebx,8
|
||||||
|
jbe .sub_min
|
||||||
|
sub ebx,8 ;ebx=ed_offset
|
||||||
|
jmp .chk_d
|
||||||
|
.sub_min:
|
||||||
|
xor ebx,ebx
|
||||||
|
jmp .chk_d
|
||||||
|
|
||||||
|
.add_end:sub edx,eax
|
||||||
|
mov ebx,edx
|
||||||
|
jmp .chk_d
|
||||||
|
.add_8: add ebx,edx
|
||||||
|
|
||||||
|
; ;----------- <EFBFBD>⫠<EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
; pushad
|
||||||
|
; mov [data_of_code],0
|
||||||
|
; mov eax,ebx;ed_offset
|
||||||
|
; mov edi,data_of_code
|
||||||
|
; call .str
|
||||||
|
; ;<EFBFBD><EFBFBD>ᮢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䮭<EFBFBD>
|
||||||
|
; mov eax,13
|
||||||
|
; mov ebx,178*65536+36
|
||||||
|
; mov ecx,28*65536+10
|
||||||
|
; xor edx,edx
|
||||||
|
; int 0x40
|
||||||
|
; ;<EFBFBD>뢮<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>祭<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>࠭
|
||||||
|
; mov eax,4
|
||||||
|
; mov ebx,180*65536+30
|
||||||
|
; mov ecx,0x10DDBBCC
|
||||||
|
; mov edx,data_of_code
|
||||||
|
; mov esi,4
|
||||||
|
; int 0x40
|
||||||
|
; popad
|
||||||
|
; ;----------- <EFBFBD>⫠<EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
|
.chk_d: mov ed_offset,ebx
|
||||||
|
|
||||||
|
call .draw_bg
|
||||||
|
mov dword [esp+28],-1
|
||||||
|
popad
|
||||||
|
ret
|
||||||
|
|
||||||
|
@@:
|
||||||
|
mov dword [esp+28],0
|
||||||
|
popad
|
||||||
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
; mov ebx,eax
|
||||||
|
; mov eax,ed_pos
|
||||||
|
; xor edx,edx
|
||||||
|
; idiv ebx
|
||||||
|
; xor edx,edx
|
||||||
|
; imul eax,ebx
|
||||||
|
; mov ed_offset,eax
|
||||||
|
; pop ebx
|
||||||
|
; cmp ax,bx
|
||||||
|
; je @f
|
||||||
|
;;;;;;;; <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>
|
||||||
|
; mov ebx,ed_left
|
||||||
|
; inc ebx
|
||||||
|
; shl ebx,16
|
||||||
|
; mov bx,ed_width
|
||||||
|
; dec ebx
|
||||||
|
; mov edx,ed_color
|
||||||
|
; call .draw_bg_eax
|
||||||
|
; mov dword [esp+28],0
|
||||||
|
;@@: popad
|
||||||
|
; ret
|
||||||
|
;==========================================================
|
||||||
|
;=== <EFBFBD><EFBFBD>ࠡ<EFBFBD>⪠ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> =================================
|
||||||
|
;==========================================================
|
||||||
|
.key:
|
||||||
|
pusha
|
||||||
|
test word ed_flags,ed_focus ; <EFBFBD> <EFBFBD><EFBFBD> <EFBFBD> 䮪<EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD>室<EFBFBD><EFBFBD>
|
||||||
|
je .no_figure ;@f
|
||||||
|
|
||||||
|
xor ecx,ecx
|
||||||
|
push eax
|
||||||
|
inc ecx
|
||||||
|
mov eax,66
|
||||||
|
mov ebx,3
|
||||||
|
int 0x40
|
||||||
|
test al,0x03
|
||||||
|
je @f
|
||||||
|
or word ed_flags,ed_shift
|
||||||
|
|
||||||
|
@@: pop eax
|
||||||
|
;----------------------------------------------------------
|
||||||
|
;--- <EFBFBD><EFBFBD><EFBFBD>塞, <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> --------------------------------
|
||||||
|
;----------------------------------------------------------
|
||||||
|
cmp ah,8
|
||||||
|
jz .backspace
|
||||||
|
cmp ah,0xb6
|
||||||
|
jz .delete
|
||||||
|
cmp ah,176
|
||||||
|
jz .left
|
||||||
|
cmp ah,179
|
||||||
|
jz .right
|
||||||
|
cmp ah,180
|
||||||
|
jz .home
|
||||||
|
cmp ah,181
|
||||||
|
jz .end
|
||||||
|
cmp ah,185 ;insert
|
||||||
|
jz .insert
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;<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>
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
cmp ah,177
|
||||||
|
jz .no_figure
|
||||||
|
cmp ah,178
|
||||||
|
jz .no_figure
|
||||||
|
cmp ah,27 ;ESC - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ))
|
||||||
|
jz .no_figure
|
||||||
|
;--- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>㣠<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ---
|
||||||
|
test word ed_flags,ed_figure_only ; ⮫쪮 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ?
|
||||||
|
jz @f
|
||||||
|
cmp ah,'0'
|
||||||
|
jb .no_figure
|
||||||
|
cmp ah,'9'
|
||||||
|
ja .no_figure
|
||||||
|
|
||||||
|
|
||||||
|
;<EFBFBD><EFBFBD>ઠ <EFBFBD><EFBFBD> shift
|
||||||
|
@@: test word ed_flags,ed_shift_on
|
||||||
|
je @f
|
||||||
|
;<EFBFBD>室<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> edx=ed_size;ecx=ed_pos
|
||||||
|
push eax
|
||||||
|
mov edx,ed_size
|
||||||
|
mov ecx,ed_pos
|
||||||
|
call .del_char
|
||||||
|
;;;;
|
||||||
|
mov eax,ed_shift_pos
|
||||||
|
mov ebx,ed_size
|
||||||
|
sub ebx,eax
|
||||||
|
mov ed_size,ebx
|
||||||
|
pop eax
|
||||||
|
|
||||||
|
; <EFBFBD><EFBFBD><EFBFBD>塞, <EFBFBD><EFBFBD>室<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
@@: mov ecx,ed_size
|
||||||
|
mov edx, ed_max
|
||||||
|
cmp ecx,edx
|
||||||
|
jae .no_figure
|
||||||
|
mov ebx, ed_pos
|
||||||
|
cmp ebx,edx
|
||||||
|
jl @f ; <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> ࠢ<EFBFBD><EFBFBD>
|
||||||
|
.no_figure:
|
||||||
|
popa
|
||||||
|
ret
|
||||||
|
.insert: test word ed_flags,ed_insert ;not word ed_insert
|
||||||
|
je .insert_1
|
||||||
|
and word ed_flags,ed_insert_cl
|
||||||
|
jmp .no_figure
|
||||||
|
.insert_1:
|
||||||
|
or word ed_flags,ed_insert
|
||||||
|
jmp .no_figure
|
||||||
|
.ins_v:
|
||||||
|
dec dword [ebp+38];ed_size ;processing is insert
|
||||||
|
sub esi,ecx
|
||||||
|
add esi,ebx
|
||||||
|
mov edi,esi
|
||||||
|
jmp .In_k
|
||||||
|
@@: ; ᤢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᨬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ࠢ<EFBFBD>
|
||||||
|
mov ecx,ed_size
|
||||||
|
push edi eax
|
||||||
|
mov ebp,edi
|
||||||
|
mov esi,ed_text ; <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 esi,ecx ;add ed_size <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> max size
|
||||||
|
mov edi,esi
|
||||||
|
|
||||||
|
cmp ecx,ebx ;<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>
|
||||||
|
je .In_k
|
||||||
|
|
||||||
|
test word [ebp+36],ed_insert ;IF insert is enable <EFBFBD>.<EFBFBD>. edi <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㥬 <EFBFBD><EFBFBD>१ ebp
|
||||||
|
jne .ins_v
|
||||||
|
|
||||||
|
sub ecx,ebx ;<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>.
|
||||||
|
inc edi ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD>⨬ <EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᨬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD>ࠢ<EFBFBD>
|
||||||
|
std
|
||||||
|
inc ecx
|
||||||
|
@@:
|
||||||
|
;--------
|
||||||
|
lodsb
|
||||||
|
stosb
|
||||||
|
;--------
|
||||||
|
loop @b
|
||||||
|
.In_k: cld
|
||||||
|
pop eax
|
||||||
|
mov al,ah
|
||||||
|
stosb
|
||||||
|
pop edi
|
||||||
|
; <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>樨
|
||||||
|
inc dword ed_size
|
||||||
|
inc dword ed_pos
|
||||||
|
call .draw_all2
|
||||||
|
jmp .shift;.draw_cursor_text
|
||||||
|
.delete:
|
||||||
|
mov edx,ed_size
|
||||||
|
mov ecx,ed_pos
|
||||||
|
cmp edx,ecx
|
||||||
|
jg .bac_del
|
||||||
|
test word ed_flags,ed_shift_on
|
||||||
|
jne .del_bac
|
||||||
|
popa
|
||||||
|
ret
|
||||||
|
.bac_del:
|
||||||
|
call .del_char
|
||||||
|
jmp .draw_all
|
||||||
|
|
||||||
|
;--- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> backspace ---
|
||||||
|
.backspace:
|
||||||
|
; <EFBFBD><EFBFBD><EFBFBD>塞, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> ?
|
||||||
|
mov edx,ed_size
|
||||||
|
mov ecx,ed_pos
|
||||||
|
test ecx,ecx
|
||||||
|
jnz .del_bac
|
||||||
|
test word ed_flags,ed_shift_on
|
||||||
|
jne .bac_del
|
||||||
|
popa
|
||||||
|
ret
|
||||||
|
.del_bac:
|
||||||
|
cmp edx,ecx ;if ed_pos=ed_size
|
||||||
|
je @f
|
||||||
|
dec ecx
|
||||||
|
call .del_char
|
||||||
|
@@: test word ed_flags,ed_shift_on
|
||||||
|
jne .bac_del
|
||||||
|
dec dword ed_pos
|
||||||
|
|
||||||
|
.draw_all:
|
||||||
|
push .shift;.draw_cursor_text;eax
|
||||||
|
|
||||||
|
test word ed_flags,ed_shift_on
|
||||||
|
je @f
|
||||||
|
mov eax,ed_shift_pos
|
||||||
|
mov ebx,ed_size
|
||||||
|
sub ebx,eax
|
||||||
|
mov ed_size,ebx
|
||||||
|
jmp .draw_all2
|
||||||
|
|
||||||
|
@@: dec dword ed_size
|
||||||
|
|
||||||
|
.draw_all2:
|
||||||
|
and word ed_flags,ed_shift_cl
|
||||||
|
call .clear_cursor
|
||||||
|
call .check_offset
|
||||||
|
;;;;;;;;;;;;;;;
|
||||||
|
test eax,eax
|
||||||
|
jne @f
|
||||||
|
call .draw_bg
|
||||||
|
ret
|
||||||
|
;;;;;;;;;;;;;;;
|
||||||
|
@@: call .get_n
|
||||||
|
push eax
|
||||||
|
mov ebx,ed_offset
|
||||||
|
add eax,ebx ;eax = w_off= ed_offset+width
|
||||||
|
mov ebx,ed_size
|
||||||
|
|
||||||
|
cmp eax,ebx
|
||||||
|
jb @f
|
||||||
|
mov eax,ed_pos
|
||||||
|
sub ebx,eax
|
||||||
|
mov ecx,ed_offset
|
||||||
|
sub eax,ecx
|
||||||
|
jmp .nxt
|
||||||
|
@@: mov ebx,ed_pos
|
||||||
|
push ebx
|
||||||
|
sub eax,ebx
|
||||||
|
mov ebx,eax ;It is don't optimal
|
||||||
|
|
||||||
|
pop eax ;ed_pos
|
||||||
|
mov ecx,ed_offset
|
||||||
|
sub eax,ecx
|
||||||
|
|
||||||
|
.nxt:
|
||||||
|
mov ebp,eax ;<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>
|
||||||
|
add ebp,ebx
|
||||||
|
pop edx
|
||||||
|
cmp ebp,edx
|
||||||
|
je @f
|
||||||
|
inc ebx
|
||||||
|
|
||||||
|
@@: mov edx,ebx
|
||||||
|
lea ebx,[eax*2+eax]
|
||||||
|
shl ebx,1
|
||||||
|
add ebx,ed_left
|
||||||
|
inc ebx
|
||||||
|
shl ebx,16
|
||||||
|
lea ecx,[edx*2+edx]
|
||||||
|
shl ecx,1
|
||||||
|
mov bx,cx
|
||||||
|
mov edx,ed_color
|
||||||
|
call .draw_bg_eax
|
||||||
|
ret
|
||||||
|
; jmp .shift
|
||||||
|
;--- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> left ---
|
||||||
|
.left: call .sh_enable
|
||||||
|
mov ebx,ed_pos
|
||||||
|
test ebx,ebx
|
||||||
|
jz .nd_k
|
||||||
|
call .clear_cursor
|
||||||
|
dec dword ed_pos
|
||||||
|
jmp .nd_k
|
||||||
|
;--- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> right ---
|
||||||
|
.right: call .sh_enable
|
||||||
|
mov ebx,ed_pos
|
||||||
|
cmp ebx,ed_size
|
||||||
|
je .nd_k
|
||||||
|
call .clear_cursor
|
||||||
|
inc dword ed_pos
|
||||||
|
jmp .nd_k
|
||||||
|
.home: call .sh_enable
|
||||||
|
mov ebx,ed_pos
|
||||||
|
test ebx,ebx
|
||||||
|
jz .nd_k
|
||||||
|
call .clear_cursor
|
||||||
|
xor eax,eax
|
||||||
|
mov ed_pos,eax
|
||||||
|
jmp .nd_k
|
||||||
|
|
||||||
|
.end: call .sh_enable
|
||||||
|
mov ebx,ed_pos
|
||||||
|
cmp ebx,dword ed_size
|
||||||
|
je .nd_k
|
||||||
|
call .clear_cursor
|
||||||
|
mov eax,ed_size
|
||||||
|
mov ed_pos,eax
|
||||||
|
.nd_k: call .check_offset
|
||||||
|
;test eax,eax
|
||||||
|
;jz .draw_bg_cursor_text
|
||||||
|
call .draw_cursor
|
||||||
|
|
||||||
|
.shift: ;;;;;;;SHIFT
|
||||||
|
|
||||||
|
call .draw_bg ;<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>⨬<EFBFBD><EFBFBD>쭮
|
||||||
|
test word ed_flags,ed_shift
|
||||||
|
je .f_exit
|
||||||
|
;;;;;;SHIFT end
|
||||||
|
mov eax,dword ed_pos
|
||||||
|
mov ebx,dword ed_shift_pos
|
||||||
|
cmp eax,ebx
|
||||||
|
jae .sh_n
|
||||||
|
push eax ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD>襥 <EFBFBD> eax
|
||||||
|
push ebx ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD>襥
|
||||||
|
jmp .sh_n1
|
||||||
|
;<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
.sh_n: push ebx
|
||||||
|
push eax
|
||||||
|
.sh_n1:
|
||||||
|
; jmp .draw_all2
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;call .clear_cursor
|
||||||
|
call .check_offset
|
||||||
|
call .get_n
|
||||||
|
mov edx,eax ;size of ed_box
|
||||||
|
; push eax
|
||||||
|
mov ecx,ed_offset
|
||||||
|
add eax,ecx ;eax = w_off= ed_offset+width
|
||||||
|
mov ebp,eax ;save
|
||||||
|
pop ebx ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD>襥
|
||||||
|
pop eax ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD>襥
|
||||||
|
|
||||||
|
|
||||||
|
cmp eax,ecx ;<EFBFBD>ࠢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>襣<EFBFBD> <EFBFBD> offset.
|
||||||
|
jae .f_f ;<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
xor eax,eax
|
||||||
|
cmp ebp,ebx ;cࠢ<EFBFBD><EFBFBD><EFBFBD> ࠧ<EFBFBD><EFBFBD><EFBFBD> w_off <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>訬
|
||||||
|
jb @f
|
||||||
|
sub ebx,ecx
|
||||||
|
jmp .nxt_f
|
||||||
|
@@: mov ebx,ebp
|
||||||
|
sub ebx,ecx
|
||||||
|
jmp .nxt_f
|
||||||
|
|
||||||
|
.f_f:
|
||||||
|
sub eax,ecx
|
||||||
|
cmp ebp,ebx ;cࠢ<EFBFBD><EFBFBD><EFBFBD> ࠧ<EFBFBD><EFBFBD><EFBFBD> w_off <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>訬
|
||||||
|
jle @f
|
||||||
|
sub ebx,ecx
|
||||||
|
sub ebx,eax
|
||||||
|
jmp .nxt_f
|
||||||
|
@@:
|
||||||
|
mov ebx,ebp
|
||||||
|
sub ebx,ecx
|
||||||
|
sub ebx,eax
|
||||||
|
.nxt_f:
|
||||||
|
mov edx,ebx
|
||||||
|
lea ebx,[eax*2+eax]
|
||||||
|
shl ebx,1
|
||||||
|
add ebx,ed_left
|
||||||
|
inc ebx
|
||||||
|
shl ebx,16
|
||||||
|
lea ecx,[edx*2+edx]
|
||||||
|
shl ecx,1
|
||||||
|
mov bx,cx
|
||||||
|
mov edx,shift_color
|
||||||
|
call .draw_bg_eax
|
||||||
|
and word ed_flags,1111111111111011b
|
||||||
|
jmp .draw_cursor_text
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
|
.f_exit: and word ed_flags,ed_shift_cl
|
||||||
|
jmp .draw_cursor_text
|
||||||
|
|
||||||
|
;<EFBFBD><EFBFBD>ઠ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ﭨ<EFBFBD> shift <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠭<EFBFBD><EFBFBD><EFBFBD>?
|
||||||
|
.sh_enable:
|
||||||
|
test word ed_flags,ed_shift
|
||||||
|
je @f
|
||||||
|
test word ed_flags,ed_shift_on
|
||||||
|
jne .sh_ext_en
|
||||||
|
push dword ed_pos
|
||||||
|
pop dword ed_shift_pos
|
||||||
|
or word ed_flags,ed_shift_on
|
||||||
|
ret
|
||||||
|
|
||||||
|
@@: and word ed_flags,ed_shift_cl
|
||||||
|
.sh_ext_en: ret
|
||||||
|
|
||||||
|
;- 㤠<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᨬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
;<EFBFBD>室<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> edx=ed_size;ecx=ed_pos
|
||||||
|
.del_char:
|
||||||
|
mov esi,ed_text
|
||||||
|
test word ed_flags,ed_shift_on
|
||||||
|
je @f
|
||||||
|
mov eax,dword ed_shift_pos
|
||||||
|
mov ebx,esi
|
||||||
|
cmp eax,ecx
|
||||||
|
jae .dh_n
|
||||||
|
|
||||||
|
mov ed_pos,eax ;<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>뫮 㡥<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
mov ebp,ecx
|
||||||
|
sub ebp,eax
|
||||||
|
add ebx,eax ;eax <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
sub edx,ecx
|
||||||
|
add esi,ecx
|
||||||
|
|
||||||
|
|
||||||
|
mov ed_shift_pos,ebp
|
||||||
|
jmp .del_ch_sh
|
||||||
|
;<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
.dh_n:
|
||||||
|
mov ebp,eax
|
||||||
|
sub ebp,ecx
|
||||||
|
add ebx,ecx
|
||||||
|
sub edx,eax
|
||||||
|
add esi,eax
|
||||||
|
mov ed_shift_pos,ebp
|
||||||
|
jmp .del_ch_sh
|
||||||
|
|
||||||
|
@@: add esi,ecx ;㪠<EFBFBD><EFBFBD>⥫<EFBFBD> + ᬥ饭<EFBFBD><EFBFBD> <EFBFBD> ॠ<EFBFBD>쭮<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
mov ebx,esi
|
||||||
|
inc esi
|
||||||
|
cld
|
||||||
|
|
||||||
|
sub edx,ecx
|
||||||
|
.del_ch_sh:
|
||||||
|
|
||||||
|
push edi
|
||||||
|
mov edi,ebx
|
||||||
|
@@:
|
||||||
|
lodsb
|
||||||
|
stosb
|
||||||
|
dec edx
|
||||||
|
jns @b
|
||||||
|
|
||||||
|
pop edi
|
||||||
|
ret
|
||||||
|
;==========================================================
|
||||||
|
;=== <EFBFBD><EFBFBD>ࠡ<EFBFBD>⪠ <EFBFBD><EFBFBD><EFBFBD><EFBFBD> =======================================
|
||||||
|
;==========================================================
|
||||||
|
.mouse:
|
||||||
|
pusha
|
||||||
|
;----------------------------------------------------------
|
||||||
|
;--- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>砥<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ﭨ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> -----------------------
|
||||||
|
;----------------------------------------------------------
|
||||||
|
mov eax,37
|
||||||
|
mov ebx,2
|
||||||
|
int 0x40
|
||||||
|
;----------------------------------------------------------
|
||||||
|
;--- <EFBFBD><EFBFBD><EFBFBD>塞 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ﭨ<EFBFBD> ----------------------------------
|
||||||
|
;----------------------------------------------------------
|
||||||
|
test eax,1
|
||||||
|
jnz .mouse_left_button
|
||||||
|
@@: popa
|
||||||
|
ret
|
||||||
|
|
||||||
|
.mouse_left_button:
|
||||||
|
;----------------------------------------------------------
|
||||||
|
;--- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>砥<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>न<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> -----------------------------
|
||||||
|
;----------------------------------------------------------
|
||||||
|
mov eax,37
|
||||||
|
xor ebx,ebx
|
||||||
|
inc ebx
|
||||||
|
int 0x40
|
||||||
|
;----------------------------------------------------------
|
||||||
|
;--- <EFBFBD><EFBFBD><EFBFBD>塞, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> edit box -------------
|
||||||
|
;----------------------------------------------------------
|
||||||
|
mov ebx,ed_top
|
||||||
|
cmp ax,bx
|
||||||
|
jl ._blur;.mouse_end_no_focus
|
||||||
|
|
||||||
|
add bx,ed_height
|
||||||
|
cmp ax,bx
|
||||||
|
jg ._blur;.mouse_end_no_focus
|
||||||
|
|
||||||
|
shr eax,16
|
||||||
|
|
||||||
|
mov bx,ed_left
|
||||||
|
cmp ax,bx
|
||||||
|
jl ._blur;.mouse_end_no_focus
|
||||||
|
|
||||||
|
add bx,ed_width
|
||||||
|
cmp ax,bx
|
||||||
|
jg ._blur;.mouse_end_no_focus
|
||||||
|
;--- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>塞 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ---
|
||||||
|
push eax
|
||||||
|
call .clear_cursor
|
||||||
|
pop eax
|
||||||
|
xor dx,dx
|
||||||
|
sub ax,ed_left
|
||||||
|
add ax,2
|
||||||
|
mov bx,6
|
||||||
|
div bx
|
||||||
|
add ax,ed_offset
|
||||||
|
cmp ax,ed_size
|
||||||
|
jna @f
|
||||||
|
mov ax,ed_size
|
||||||
|
@@:
|
||||||
|
mov ed_pos,ax
|
||||||
|
call .check_offset
|
||||||
|
call .draw_cursor
|
||||||
|
;----------------------------------------------------------
|
||||||
|
;--- <EFBFBD><EFBFBD><EFBFBD>楤<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>⠭<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䮪<EFBFBD><EFBFBD><EFBFBD> ---------------------------
|
||||||
|
;----------------------------------------------------------
|
||||||
|
bts word ed_flags,1
|
||||||
|
jc .mouse_pressed
|
||||||
|
call .draw_cursor
|
||||||
|
call .draw_border
|
||||||
|
.mouse_pressed:
|
||||||
|
popa
|
||||||
|
ret
|
||||||
|
;.mouse_end_no_focus:
|
||||||
|
; call .blur
|
||||||
|
;popa
|
||||||
|
;ret
|
||||||
|
;.blur:
|
||||||
|
;pusha
|
||||||
|
._blur:
|
||||||
|
test word ed_flags,ed_always_focus
|
||||||
|
jne @f
|
||||||
|
btr word ed_flags,1 ; <EFBFBD> <EFBFBD><EFBFBD> <EFBFBD> 䮪<EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD>室<EFBFBD><EFBFBD>
|
||||||
|
jnc @f
|
||||||
|
call .clear_cursor
|
||||||
|
call .draw_border
|
||||||
|
@@:
|
||||||
|
popa
|
||||||
|
ret
|
||||||
|
|
||||||
|
;----------------------------------------------------------
|
||||||
|
;--- <EFBFBD><EFBFBD><EFBFBD>楤<EFBFBD><EFBFBD><EFBFBD> ࠧ<EFBFBD>뢠<EFBFBD><EFBFBD><EFBFBD> 䮪<EFBFBD><EFBFBD><EFBFBD> --------------------------
|
||||||
|
;----------------------------------------------------------
|
||||||
|
;.blur:
|
||||||
|
;pusha
|
||||||
|
;._blur:
|
||||||
|
;btr ed_flags,1
|
||||||
|
;jnc @f
|
||||||
|
;call .draw_border
|
||||||
|
;call .clear_cursor
|
||||||
|
;@@:
|
||||||
|
;popa
|
||||||
|
;ret
|
||||||
|
}
|
||||||
|
ed_figure_only=1000000000000000b
|
||||||
|
ed_always_focus=100000000000000b
|
||||||
|
ed_focus=10b
|
||||||
|
ed_shift_on=1000b
|
||||||
|
ed_shift=100b
|
||||||
|
ed_shift_cl=1111111111110011b
|
||||||
|
macro draw_edit_boxes start,end
|
||||||
|
{
|
||||||
|
mov edi,start
|
||||||
|
mov ecx,((end-start)/ed_struc_size)
|
||||||
|
@@:
|
||||||
|
call edit_box.draw
|
||||||
|
add edi,ed_struc_size
|
||||||
|
loop @b
|
||||||
|
}
|
||||||
|
|
||||||
|
macro mouse_edit_boxes start,end
|
||||||
|
{
|
||||||
|
mov edi,start
|
||||||
|
mov ecx,((end-start)/ed_struc_size)
|
||||||
|
@@:
|
||||||
|
call edit_box.mouse
|
||||||
|
add edi,ed_struc_size
|
||||||
|
loop @b
|
||||||
|
}
|
||||||
|
|
||||||
|
macro key_edit_boxes start,end
|
||||||
|
{
|
||||||
|
mov edi,start
|
||||||
|
mov ecx,((end-start)/ed_struc_size)
|
||||||
|
@@:
|
||||||
|
call edit_box.key
|
||||||
|
add edi,ed_struc_size
|
||||||
|
loop @b
|
||||||
|
}
|
||||||
|
ed_struc_size=62
|
||||||
|
struc edit_box width,left,top,color,focus_border_color,\
|
||||||
|
blur_border_color,text_color,max,text,flags,size
|
||||||
|
{
|
||||||
|
.width dd width
|
||||||
|
.left dd left
|
||||||
|
.top dd top
|
||||||
|
.color dd color
|
||||||
|
.focus_border_color dd focus_border_color
|
||||||
|
.blur_border_color dd blur_border_color
|
||||||
|
.text_color dd text_color
|
||||||
|
.max dd max
|
||||||
|
.text dd text
|
||||||
|
.flags dw flags+0
|
||||||
|
.size dd size+0
|
||||||
|
.pos dd 0
|
||||||
|
.offset dd 0
|
||||||
|
.cl_curs_x dd 0
|
||||||
|
.cl_curs_y dd 0
|
||||||
|
.shift dd 0
|
||||||
|
}
|
||||||
|
|
||||||
|
macro edit_boxes_set_sys_color start,end,color_table
|
||||||
|
{
|
||||||
|
mov edi,start
|
||||||
|
mov ecx,((end-start)/ed_struc_size)
|
||||||
|
mov esi,color_table
|
||||||
|
@@:
|
||||||
|
mov eax,[esi+36]
|
||||||
|
mov ebx,[esi+20]
|
||||||
|
mov ed_focus_border_color,eax
|
||||||
|
shr bh,1
|
||||||
|
shr bl,1
|
||||||
|
shr ah,1
|
||||||
|
shr al,1
|
||||||
|
add ah,bh
|
||||||
|
add al,bl
|
||||||
|
ror eax,16
|
||||||
|
ror ebx,16
|
||||||
|
shr bl,1
|
||||||
|
shr al,1
|
||||||
|
add al,bl
|
||||||
|
ror eax,16
|
||||||
|
mov ed_blur_border_color,eax
|
||||||
|
add edi,ed_struc_size
|
||||||
|
loop @b
|
||||||
|
}
|
||||||
|
|
||||||
|
macro draw_edit_box ed_ptr
|
||||||
|
{
|
||||||
|
mov edi,ed_ptr
|
||||||
|
call edit_box.draw
|
||||||
|
}
|
||||||
|
|
||||||
|
macro mouse_edit_box ed_ptr
|
||||||
|
{
|
||||||
|
mov edi,ed_ptr
|
||||||
|
call edit_box.mouse
|
||||||
|
}
|
||||||
|
|
||||||
|
macro key_edit_box ed_ptr
|
||||||
|
{
|
||||||
|
mov edi,ed_ptr
|
||||||
|
call edit_box.key
|
||||||
|
}
|
@@ -1,212 +1,334 @@
|
|||||||
;
|
;
|
||||||
; Save Ramdisk to HD and FD
|
; RDsave <EFBFBD><EFBFBD><EFBFBD> Kolibri (0.6.5.0 <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||||
|
;
|
||||||
; Mario79 2005
|
; Mario79 2005
|
||||||
; Compile with FASM for Menuet
|
; Heavyiron 12.02.2007
|
||||||
;
|
;
|
||||||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD> FASM'<27><>
|
||||||
|
;
|
||||||
|
;---------------------------------------------------------------------
|
||||||
include 'lang.inc'
|
include 'lang.inc'
|
||||||
include 'macros.inc'
|
include 'macros.inc'
|
||||||
|
|
||||||
appname equ 'RDsave '
|
appname equ 'RDsave '
|
||||||
version equ '1.1'
|
version equ '1.2'
|
||||||
|
|
||||||
|
use32 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 32-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ०<><E0A5A6> <20><>ᥬ<EFBFBD><E1A5AC><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
org 0x0 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
use32
|
db 'MENUET01' ; 8-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>䨪<EFBFBD><E4A8AA><EFBFBD><EFBFBD> MenuetOS
|
||||||
org 0x0
|
dd 0x01 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28>ᥣ<EFBFBD><E1A5A3> 1)
|
||||||
|
dd START ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><>ࢮ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
dd I_END ; ࠧ<><E0A0A7><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>
|
||||||
|
dd 0x1000 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢮ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
dd 0x1000 ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>設<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
dd 0x0 ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><>ࠬ<EFBFBD><E0A0AC> (<28><> <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||||
|
dd 0x0 ; <20><>१<EFBFBD>ࢨ<E0A2A8><E0AEA2><EFBFBD>
|
||||||
|
|
||||||
db 'MENUET01' ; 8 byte id
|
include 'editbox.inc'
|
||||||
dd 0x01 ; header version
|
use_edit_box
|
||||||
dd START ; start of code
|
|
||||||
dd I_END ; size of image
|
|
||||||
dd 0x1000 ; memory for app
|
|
||||||
dd 0x1000 ; esp
|
|
||||||
dd 0x0 , 0x0 ; I_Param , I_Icon
|
|
||||||
|
|
||||||
|
;---------------------------------------------------------------------
|
||||||
|
;--- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ----------------------------------------------
|
||||||
|
;---------------------------------------------------------------------
|
||||||
|
|
||||||
;******************************************************************************
|
START:
|
||||||
|
mov eax, 40
|
||||||
|
mov ebx, 100111b
|
||||||
|
int 0x40
|
||||||
|
red: ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᮢ<EFBFBD><E1AEA2><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
|
call draw_window ; <20><><EFBFBD>뢠<EFBFBD><EBA2A0> <20><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD> <20><><EFBFBD><EFBFBD>ᮢ<EFBFBD><E1AEA2> <20><><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
|
;---------------------------------------------------------------------
|
||||||
START: ; start of execution
|
;--- <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ----------------------------------------
|
||||||
xor eax,eax
|
;---------------------------------------------------------------------
|
||||||
mov edi,bootpath
|
|
||||||
mov ecx,128
|
|
||||||
rep stosd
|
|
||||||
|
|
||||||
mcall 6,filename,0,-1,bootpath
|
|
||||||
|
|
||||||
mov esi,bootpath+1
|
|
||||||
mov cx,512
|
|
||||||
start_search:
|
|
||||||
lodsb
|
|
||||||
cmp al,"'"
|
|
||||||
jz set_end_path
|
|
||||||
dec cx
|
|
||||||
cmp cx,0
|
|
||||||
ja start_search
|
|
||||||
set_end_path:
|
|
||||||
mov [esi-1],byte 0
|
|
||||||
|
|
||||||
mov eax,40
|
|
||||||
mov ebx,101b
|
|
||||||
int 0x40
|
|
||||||
|
|
||||||
red:
|
|
||||||
call draw_window
|
|
||||||
|
|
||||||
still:
|
still:
|
||||||
mov eax, 10 ; wait here for event
|
push 10
|
||||||
|
pop eax
|
||||||
|
int 40h
|
||||||
|
|
||||||
|
dec eax ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᮢ<EFBFBD><E1AEA2><EFBFBD> <20><><EFBFBD><EFBFBD>?
|
||||||
|
jz red ; <20> <20><> - <20><> <20><><EFBFBD><EFBFBD><EFBFBD> red
|
||||||
|
dec eax
|
||||||
|
jz key
|
||||||
|
dec eax
|
||||||
|
jz button
|
||||||
|
|
||||||
|
mouse:
|
||||||
|
mouse_edit_boxes editbox,editbox_end
|
||||||
|
jmp still
|
||||||
|
|
||||||
|
button:
|
||||||
|
mov al,17 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>䨪<EFBFBD><E4A8AA><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>⮩ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
int 0x40
|
int 0x40
|
||||||
|
|
||||||
dec eax ; redraw request ?
|
cmp ah,1 ; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> id=1("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>")?
|
||||||
je red
|
jne noclose
|
||||||
; dec eax
|
or eax,-1 ; <20>㭪<EFBFBD><E3ADAA><EFBFBD> -1: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>
|
||||||
; dec eax ; button in buffer ?
|
|
||||||
; je button
|
|
||||||
|
|
||||||
|
|
||||||
button: ; button
|
|
||||||
mov eax,17 ; get id
|
|
||||||
int 0x40
|
int 0x40
|
||||||
|
|
||||||
|
noclose:
|
||||||
cmp ah,2
|
cmp ah,2
|
||||||
jne ah_3
|
jne path_2
|
||||||
mcall 18,6,1
|
call clear_err
|
||||||
jmp red
|
mov al,16
|
||||||
ah_3:
|
mov ebx,1
|
||||||
|
int 0x40
|
||||||
|
call check_for_error
|
||||||
|
jmp still
|
||||||
|
path_2:
|
||||||
cmp ah,3
|
cmp ah,3
|
||||||
jne ah_4
|
jne path_3
|
||||||
mcall 18,6,2
|
call clear_err
|
||||||
jmp red
|
mov al,16
|
||||||
ah_4:
|
mov ebx,2
|
||||||
|
int 0x40
|
||||||
|
call check_for_error
|
||||||
|
jmp still
|
||||||
|
path_3:
|
||||||
cmp ah,4
|
cmp ah,4
|
||||||
jne ah_5
|
jne path_4
|
||||||
mcall 18,6,3,bootpath+1
|
call clear_err
|
||||||
jmp red
|
mov al,18
|
||||||
ah_5:
|
mov ebx,6
|
||||||
cmp ah,5
|
mov ecx,path3
|
||||||
jne ah_6
|
int 0x40
|
||||||
mcall 16,1
|
call check_for_error
|
||||||
jmp red
|
jmp still
|
||||||
ah_6:
|
path_4:
|
||||||
cmp ah,6
|
call clear_err
|
||||||
jne ah_1
|
mov eax,18
|
||||||
mcall 16,2
|
mov ebx,6
|
||||||
jmp red
|
mov ecx,path4
|
||||||
|
int 0x40
|
||||||
ah_1:
|
call check_for_error
|
||||||
cmp ah,1
|
|
||||||
je exit
|
|
||||||
jmp still
|
jmp still
|
||||||
|
|
||||||
exit:
|
key:
|
||||||
or eax,-1 ; close this program
|
mov al,2
|
||||||
int 0x40
|
int 0x40
|
||||||
|
key_edit_boxes editbox,editbox_end
|
||||||
|
jmp still
|
||||||
|
|
||||||
|
|
||||||
; *********************************************
|
check_for_error: ;<3B><>ࠡ<EFBFBD><E0A0A1>稪 <20>訡<EFBFBD><E8A8A1>
|
||||||
; ******* WINDOW DEFINITIONS AND DRAW ********
|
cmp eax,0
|
||||||
; *********************************************
|
jne err1
|
||||||
|
mov ecx,[sc.work_text]
|
||||||
|
mov edx,ok
|
||||||
|
jmp print
|
||||||
|
err1:
|
||||||
|
cmp eax,1
|
||||||
|
jne err3
|
||||||
|
mov ecx,0xdd2222
|
||||||
|
mov edx,error11
|
||||||
|
jmp print
|
||||||
|
err3:
|
||||||
|
cmp eax,3
|
||||||
|
jne err5
|
||||||
|
mov ecx,0xdd2222
|
||||||
|
mov edx,error3
|
||||||
|
jmp print
|
||||||
|
err5:
|
||||||
|
cmp eax,5
|
||||||
|
jne err8
|
||||||
|
mov ecx,0xdd2222
|
||||||
|
mov edx,error5
|
||||||
|
jmp print
|
||||||
|
err8:
|
||||||
|
cmp eax,8
|
||||||
|
jne err9
|
||||||
|
mov ecx,0xdd2222
|
||||||
|
mov edx,error8
|
||||||
|
jmp print
|
||||||
|
err9:
|
||||||
|
cmp eax,9
|
||||||
|
jne err10
|
||||||
|
mov ecx,0xdd2222
|
||||||
|
mov edx,error9
|
||||||
|
jmp print
|
||||||
|
err10:
|
||||||
|
cmp eax,10
|
||||||
|
jne err11
|
||||||
|
mov ecx,0xdd2222
|
||||||
|
mov edx,error10
|
||||||
|
jmp print
|
||||||
|
err11:
|
||||||
|
mov ecx,0xdd2222
|
||||||
|
mov edx,error11
|
||||||
|
jmp print
|
||||||
|
|
||||||
|
print:
|
||||||
|
mov eax,4 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
mov ebx,20 shl 16 + 148
|
||||||
|
or ecx,0x80000000
|
||||||
|
int 0x40
|
||||||
|
ret
|
||||||
|
|
||||||
|
clear_err:
|
||||||
|
mov al,13
|
||||||
|
mov ebx,15 shl 16 + 240
|
||||||
|
mov ecx,145 shl 16 +15
|
||||||
|
mov edx,[sc.work]
|
||||||
|
int 0x40
|
||||||
|
ret
|
||||||
|
|
||||||
|
;---------------------------------------------------------------------
|
||||||
|
;--- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ----------------------------------
|
||||||
|
;---------------------------------------------------------------------
|
||||||
|
|
||||||
draw_window:
|
draw_window:
|
||||||
|
|
||||||
mov eax,48
|
mov eax,48
|
||||||
mov ebx,3
|
mov ebx,3
|
||||||
mov ecx,sc
|
mov ecx,sc
|
||||||
mov edx,sizeof.system_colors
|
mov edx,sizeof.system_colors
|
||||||
int 0x40
|
int 0x40
|
||||||
|
|
||||||
mov eax, 12 ; function 12:tell os about windowdraw
|
mov eax,12 ; <20>㭪<EFBFBD><E3ADAA><EFBFBD> 12: ᮮ<><E1AEAE><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD>ᮢ<EFBFBD><E1AEA2> <20><><EFBFBD><EFBFBD>
|
||||||
mov ebx, 1 ; 1, start of draw
|
mov bl,1 ; 1 - <20><>稭<EFBFBD><E7A8AD><EFBFBD> <20><>ᮢ<EFBFBD><E1AEA2><EFBFBD>
|
||||||
int 0x40
|
int 0x40
|
||||||
; DRAW WINDOW
|
|
||||||
mov eax, 0 ; function 0 : define and draw window
|
|
||||||
mov ebx, 200*65536+230 ; [x start] *65536 + [x size]
|
|
||||||
mov ecx, 200*65536+260 ; [y start] *65536 + [y size]
|
|
||||||
mov edx, [sc.work] ; color of work area RRGGBB,8->color gl
|
|
||||||
or edx,0x33000000
|
|
||||||
mov edi,header ; WINDOW LABEL
|
|
||||||
int 0x40
|
|
||||||
|
|
||||||
mcall 8,<11,17>,<26,17>,2,[sc.work_button]
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
inc edx
|
xor eax,eax ; <20>㭪<EFBFBD><E3ADAA><EFBFBD> 0 : <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>ᮢ<EFBFBD><E1AEA2><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
mcall , ,<56,17>, ,
|
mov ebx,200 shl 16 + 270 ; [x <20><><EFBFBD><EFBFBD><EFBFBD>] *65536 + [x ࠧ<><E0A0A7><EFBFBD>]
|
||||||
inc edx
|
mov ecx,200 shl 16 + 190 ; [y <20><><EFBFBD><EFBFBD><EFBFBD>] *65536 + [y ࠧ<><E0A0A7><EFBFBD>]
|
||||||
mcall , ,<86,17>, ,
|
mov edx,[sc.work] ; 梥<> ࠡ<>祩 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> RRGGBB,8->color gl
|
||||||
inc edx
|
or edx,0x33000000
|
||||||
mcall , ,<166,17>, ,
|
mov edi,header ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
inc edx
|
int 0x40
|
||||||
mcall , ,<196,17>, ,
|
|
||||||
|
|
||||||
mov ecx,[sc.work_button_text]
|
draw_edit_boxes editbox,editbox_end ;<3B><>ᮢ<EFBFBD><E1AEA2><EFBFBD><EFBFBD> edit box'<27><>
|
||||||
or ecx,0x10000000
|
|
||||||
mcall 4,<17,31>, ,text_123,1
|
|
||||||
add ebx,30
|
|
||||||
add edx,1
|
|
||||||
mcall
|
|
||||||
add ebx,30
|
|
||||||
add edx,1
|
|
||||||
mcall
|
|
||||||
add ebx,80
|
|
||||||
add edx,1
|
|
||||||
mcall
|
|
||||||
add ebx,30
|
|
||||||
add edx,1
|
|
||||||
mcall
|
|
||||||
|
|
||||||
mov ecx,[sc.work_text]
|
mov al,13 ;<3B><><EFBFBD><EFBFBD>ᮢ<EFBFBD><E1AEA2> ⥭<><E2A5AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
or ecx,0x80000000
|
mov ebx,194 shl 16 + 60
|
||||||
mcall ,<40,31>, ,text_1,
|
mov ecx,34 shl 16 +15
|
||||||
add ebx,30
|
mov edx,0x444444
|
||||||
mcall , , ,text_2,
|
int 0x40
|
||||||
add ebx,30
|
|
||||||
mcall , , ,text_3,
|
|
||||||
mcall ,<15,115>, ,text_4,
|
|
||||||
mcall ,<35,125>, ,text_5,
|
|
||||||
|
|
||||||
mcall ,<35,41>, ,text_6,
|
add ecx,20 shl 16
|
||||||
mcall ,<35,101>, ,text_6,
|
int 0x40
|
||||||
mcall ,<40,171>, ,text_7,
|
|
||||||
mcall ,<40,201>, ,text_8,
|
|
||||||
mcall ,<25,10>, ,text_9,
|
|
||||||
mcall ,<25,150>, ,text_10,
|
|
||||||
|
|
||||||
mov eax,12 ; function 12:tell os about windowdraw
|
add ecx,20 shl 16
|
||||||
mov ebx,2 ; 2, end of draw
|
int 0x40
|
||||||
int 0x40
|
|
||||||
ret
|
add ecx,40 shl 16
|
||||||
|
int 0x40
|
||||||
|
|
||||||
|
mov eax,8 ;<3B><><EFBFBD><EFBFBD>ᮢ<EFBFBD><E1AEA2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
sub ebx,4 shl 16
|
||||||
|
sub ecx,4 shl 16
|
||||||
|
mov edx,5
|
||||||
|
mov esi,[sc.work_button]
|
||||||
|
int 0x40
|
||||||
|
|
||||||
|
sub ecx,40 shl 16
|
||||||
|
dec edx
|
||||||
|
int 0x40
|
||||||
|
|
||||||
|
sub ecx,20 shl 16
|
||||||
|
dec edx
|
||||||
|
int 0x40
|
||||||
|
|
||||||
|
sub ecx,20 shl 16
|
||||||
|
dec edx
|
||||||
|
int 0x40
|
||||||
|
|
||||||
|
mov al,4 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
mov ebx,45 shl 16 + 12
|
||||||
|
mov ecx,[sc.work_text]
|
||||||
|
or ecx,0x80000000
|
||||||
|
mov edx,label1
|
||||||
|
int 0x40
|
||||||
|
|
||||||
|
mov ebx,150 shl 16 + 35
|
||||||
|
mov edx,path1
|
||||||
|
int 0x40
|
||||||
|
|
||||||
|
add ebx,20
|
||||||
|
mov edx,path2
|
||||||
|
int 0x40
|
||||||
|
|
||||||
|
mov ebx,75 shl 16 + 75
|
||||||
|
mov edx,path3
|
||||||
|
int 0x40
|
||||||
|
|
||||||
|
mov ebx,30 shl 16 + 97
|
||||||
|
mov edx,label2
|
||||||
|
int 0x40
|
||||||
|
|
||||||
|
mov ebx,40 shl 16 + 135
|
||||||
|
mov edx,label3
|
||||||
|
int 0x40
|
||||||
|
|
||||||
|
mov ecx,[sc.work_button_text]
|
||||||
|
or ecx,0x80000000
|
||||||
|
mov ebx,195 shl 16 + 35
|
||||||
|
mov edx,save
|
||||||
|
int 0x40
|
||||||
|
|
||||||
|
add ebx,20
|
||||||
|
int 0x40
|
||||||
|
|
||||||
|
add ebx,20
|
||||||
|
int 0x40
|
||||||
|
|
||||||
|
add ebx,40
|
||||||
|
int 0x40
|
||||||
|
|
||||||
|
mov al,12 ; <20>㭪<EFBFBD><E3ADAA><EFBFBD> 12: ᮮ<><E1AEAE><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD>ᮢ<EFBFBD><E1AEA2> <20><><EFBFBD><EFBFBD>
|
||||||
|
mov ebx,2 ; 2, <20><><EFBFBD><EFBFBD><EFBFBD>稫<EFBFBD> <20><>ᮢ<EFBFBD><E1AEA2><EFBFBD>
|
||||||
|
int 0x40
|
||||||
|
|
||||||
|
ret ; <20><>室<EFBFBD><E5AEA4> <20><> <20><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD>
|
||||||
|
|
||||||
|
|
||||||
header db appname,version,0
|
;---------------------------------------------------------------------
|
||||||
|
;--- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ----------------------------------------------
|
||||||
|
;---------------------------------------------------------------------
|
||||||
|
|
||||||
text_123 db '12345'
|
header db appname,version,0
|
||||||
|
|
||||||
|
editbox:
|
||||||
|
edit1 edit_box 170,10,113,0xffffff,0,0,0,1024,path4,ed_focus
|
||||||
|
editbox_end:
|
||||||
|
|
||||||
|
path1 db '/fd/1/',0
|
||||||
|
path2 db '/fd/2/',0
|
||||||
|
path3 db '/hd0/1/kolibri.img',0
|
||||||
|
|
||||||
if lang eq ru
|
if lang eq ru
|
||||||
|
save db '<27><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD>',0
|
||||||
text_1 db '<27> <20><><EFBFBD><EFBFBD><EFBFBD> <20>:\KOLIBRI',0
|
label1 db '<27>롥<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD> <20><EFBFBD>ਠ<EFBFBD>⮢:',0
|
||||||
text_2 db '<27> <20><>७<EFBFBD> <20><>᪠ <20>',0
|
label2 db '<27><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> 䠩<><E4A0A9>:',0
|
||||||
text_3 db '<27><><EFBFBD><EFBFBD> <20> 䠩<><E4A0A9> RD2HD.TXT',0
|
label3 db '<27><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>⢮<EFBFBD><E2A2AE><EFBFBD><EFBFBD>',0
|
||||||
text_4 db '<27>.3 <20><><EFBFBD> १<>ࢭ<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD><EFBFBD>',0
|
ok db 'RAM-<2D><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>࠭<EFBFBD><E0A0AD> <20>ᯥ譮',0
|
||||||
text_5 db '<27>.<2E>. <20> <20><><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>.',0
|
error3 db '<27><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⭠<EFBFBD> 䠩<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>⥬<EFBFBD>',0
|
||||||
text_6 db '(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢮<EFBFBD><EFBFBD><EFBFBD><EFBFBD>)',0
|
error5 db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>騩 <20><><EFBFBD><EFBFBD>',0
|
||||||
text_7 db '<27><> /FD/1',0
|
error8 db '<27><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>᪥',0
|
||||||
text_8 db '<27><> /FD/2',0
|
error9 db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> FAT ࠧ<><E0A0A7>襭<EFBFBD>',0
|
||||||
text_9 db '<27><><EFBFBD>࠭<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <EFBFBD><EFBFBD><EFBFBD>⪨<EFBFBD> <20><><EFBFBD><EFBFBD>:',0
|
error10 db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>饭',0
|
||||||
text_10 db '<27><EFBFBD><EFBFBD>࠭<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>᪥<EFBFBD><E1AAA5>:',0
|
error11 db '<27>訡<EFBFBD><EFBFBD> <20><><EFBFBD>ன<EFBFBD>⢠',0
|
||||||
|
|
||||||
else
|
else
|
||||||
|
save db ' Save',0
|
||||||
text_1 db 'To the folder C:\KOLIBRI',0
|
label1 db 'Select one of the variants:',0
|
||||||
text_2 db 'To the root of C',0
|
label2 db ' Or enter full path to file:',0
|
||||||
text_3 db 'To path in the file RD2HD.TXT',0
|
label3 db ' All folders must exist',0
|
||||||
text_4 db 'p.3 for backup, as the kernel',0
|
ok db 'RAM-drive was saved successfully',0
|
||||||
text_5 db 'can not boot from there.',0
|
error3 db 'Unknown file system',0
|
||||||
text_6 db '(folder must exist)',0
|
error5 db 'Incorrect path',0
|
||||||
text_7 db 'To /FD/1',0
|
error8 db 'Disk is full',0
|
||||||
text_8 db 'To /FD/2',0
|
error9 db 'FAT table corrupted',0
|
||||||
text_9 db 'Save to hard disk:',0
|
error10 db 'Access denied',0
|
||||||
text_10 db 'Save to floppy:',0
|
error11 db 'Device error',0
|
||||||
|
|
||||||
end if
|
end if
|
||||||
|
|
||||||
filename db 'RD2HD TXT'
|
;---------------------------------------------------------------------
|
||||||
I_END:
|
|
||||||
sc system_colors
|
I_END: ; <20><>⪠ <20><><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>
|
||||||
bootpath:
|
|
||||||
|
sc system_colors
|
||||||
|
path4 rb 1025;1024+1
|
Reference in New Issue
Block a user