docpak: added; now it uses new 70th function; use new tinypad/tinypad2

tinypad: new version from Kolibri 0.5.8.1 + corrections in IPC algo for new docpak
tinypad2: corrections in IPC for new docpak + full english translation
bcdclk, crownscr: small fixes to match to Kolibri 0.5.8.1 distro

git-svn-id: svn://kolibrios.org@122 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Evgeny Grechnikov (Diamond) 2006-08-14 12:50:43 +00:00
parent 857f757f85
commit 11c04adbbc
6 changed files with 870 additions and 2820 deletions

View File

@ -136,7 +136,7 @@ call drawclock
mov ebx,8*65536+8 mov ebx,8*65536+8
mov ecx,0x10ddeeff mov ecx,0x10ddeeff
mov edx,title mov edx,title
mov esi,title-titlend mov esi,titlend-title
int 0x40 int 0x40

View File

@ -132,8 +132,8 @@ draw_window:
cmp [flscr],0 cmp [flscr],0
jnz m2 jnz m2
mov ebx,1*65536+640 ; [x start] *65536 + [x size] mov ebx,1*65536+638 ; [x start] *65536 + [x size]
mov ecx,1*65536+480 ; [y start] *65536 + [y size] mov ecx,1*65536+478 ; [y start] *65536 + [y size]
mov edx,0x02000000 ; color of work area RRGGBB,8->color gl mov edx,0x02000000 ; color of work area RRGGBB,8->color gl
mov esi,0x805080d0 ; color of grab bar RRGGBB,8->color gl mov esi,0x805080d0 ; color of grab bar RRGGBB,8->color gl
mov edi,0x005080d0 ; color of frames RRGGBB mov edi,0x005080d0 ; color of frames RRGGBB

View File

@ -1,9 +1,15 @@
; language for programs ; language for programs
lang fix en ; ru en fr ge fi
@^ fix macro comment { @^ fix macro comment {
^@ fix } ^@ fix }
macro m2m dest,src {
push src
pop dest
}
; new application structure ; new application structure
macro meos_app_start macro meos_app_start
{ {
@ -83,8 +89,7 @@ struc mstr [sstring]
macro sz name,[data] { ; from MFAR [mike.dld] macro sz name,[data] { ; from MFAR [mike.dld]
common common
if used name if used name
name: name db data
db data
.size = $-name .size = $-name
end if end if
} }
@ -124,8 +129,9 @@ macro szc name,elsz,[data] { ; from MFAR [mike.dld]
macro lszc name,elsz,[lng,data] { ; from MFAR [mike.dld] macro lszc name,elsz,[lng,data] { ; from MFAR [mike.dld]
common common
local s,m local s,m,c
m = 0 m = 0
c = 0
if used name if used name
label name label name
forward forward
@ -139,10 +145,12 @@ macro lszc name,elsz,[lng,data] { ; from MFAR [mike.dld]
m = s m = s
end if end if
db data db data
c = c+1
end if end if
common common
.size = $-name .size = $-name
.maxl = m .maxl = m
.count = c
end if end if
} }
@ -209,6 +217,7 @@ macro func name {
else else
align 4 align 4
name: name:
;diff16 `name,0,name
;pushad ;pushad
;pushfd ;pushfd
;dps `name ;dps `name
@ -306,61 +315,53 @@ macro mov arg1,arg2
} }
macro RGB [a] {
common
match (r=,g=,b),a \{
\dd ((r) shl 16) or ((g) shl 8) or (b)
\}
}
struc POINT _t,_dx,_dy { struc POINT _t,_dx,_dy {
.x _t _dx .x _t _dx
.y _t _dy .y _t _dy
} }
; structure definition helper ; structure definition helper
;include 'struct.inc' include 'struct.inc'
macro union [def]
{
common size@union = 0
origin@union = $
forward virtual
def
if $-origin@union > size@union
size@union = $-origin@union
end if
end virtual
common rb size@union
}
; structures used in MeOS ; structures used in MeOS
struc process_information struct process_information
{ cpu_usage dd ? ; +0
.cpu_usage dd ? ; +0 window_stack_position dw ? ; +4
.window_stack_position dw ? ; +4 window_stack_value dw ? ; +6
.window_stack_value dw ? ; +6 not_used1 dw ? ; +8
.not_used1 dw ? ; +8 process_name rb 12 ; +10
.process_name rb 12 ; +10 memory_start dd ? ; +22
.memory_start dd ? ; +22 used_memory dd ? ; +26
.used_memory dd ? ; +26 PID dd ? ; +30
.PID dd ? ; +30 x_start dd ? ; +34
.x_start dd ? ; +34 y_start dd ? ; +38
.y_start dd ? ; +38 x_size dd ? ; +42
.x_size dd ? ; +42 y_size dd ? ; +46
.y_size dd ? ; +46 slot_state dw ? ; +50
.slot_state dw ? ; +50
rb (1024-52) rb (1024-52)
} ends
sizeof.process_information=1024
struct system_colors
frame dd ?
grab dd ?
grab_button dd ?
grab_button_text dd ?
grab_text dd ?
work dd ?
work_button dd ?
work_button_text dd ?
work_text dd ?
work_graph dd ?
ends
struc system_colors
{
.frame dd ?
.grab dd ?
.grab_button dd ?
.grab_button_text dd ?
.grab_text dd ?
.work dd ?
.work_button dd ?
.work_button_text dd ?
.work_text dd ?
.work_graph dd ?
}
sizeof.system_colors=40
; constants ; constants

View File

@ -88,7 +88,6 @@ macro define@struct name,[field,type,def]
name#field type def name#field type def
sizeof.#name#field = $ - name#field sizeof.#name#field = $ - name#field
else else
label name#.#type
rb sizeof.#type rb sizeof.#type
end if end if
local value local value
@ -128,24 +127,21 @@ enable@substruct
macro define@union parent,name,[field,type,def] macro define@union parent,name,[field,type,def]
{ common { common
virtual at parent#.#name virtual at 0
forward forward
if ~ field eq . if ~ field eq .
virtual at parent#.#name virtual at 0
parent#field type def parent#field type def
sizeof.#parent#field = $ - parent#field sizeof.#parent#field = $ - parent#field
end virtual end virtual
if sizeof.#parent#field > $ - parent#.#name if sizeof.#parent#field > $
rb sizeof.#parent#field - ($ - parent#.#name) rb sizeof.#parent#field - $
end if
else
label name#.#type at parent#.#name
if sizeof.#type > $ - parent#.#name
rb sizeof.#type - ($ - parent#.#name)
end if end if
else if sizeof.#type > $
rb sizeof.#type - $
end if end if
common common
sizeof.#name = $ - parent#.#name sizeof.#name = $
end virtual end virtual
struc name [value] \{ \common struc name [value] \{ \common
label .\#name label .\#name
@ -161,17 +157,17 @@ macro define@union parent,name,[field,type,def]
macro define@substruct parent,name,[field,type,def] macro define@substruct parent,name,[field,type,def]
{ common { common
virtual at parent#.#name virtual at 0
forward forward
if ~ field eq . if ~ field eq .
parent#field type def parent#field type def
sizeof.#parent#field = $ - parent#field sizeof.#parent#field = $ - parent#field
else else
label name#.#type
rb sizeof.#type rb sizeof.#type
end if end if
local value
common common
sizeof.#name = $ - parent#.#name sizeof.#name = $
end virtual end virtual
struc name value \{ struc name value \{
label .\#name label .\#name

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
; SYSTEM HAEDER: ; SYSTEM HEADER:
use32 use32
org 0x0 org 0x0
db 'MENUET01' ; identifier db 'MENUET01' ; identifier
@ -9,12 +9,12 @@
dd 0xeff0 ;0x4fffff ;0x3ff000;0xeff0 ; esp dd 0xeff0 ;0x4fffff ;0x3ff000;0xeff0 ; esp
dd I_PARAM ; parameters dd I_PARAM ; parameters
dd 0 ; reserved dd 0 ; reserved
include 'lang.inc'
include 'ascl.inc' include 'ascl.inc'
include 'lang.inc'
include 'macros.inc' ; useful stuff include 'macros.inc' ; useful stuff
include 'dialogs1.inc' include 'dialogs1.inc'
include 'scroll.inc' include 'scroll.inc'
;include 'debug.inc' include 'debug.inc'
purge mov ;  SPEED purge mov ;  SPEED
;****************************************************************************** ;******************************************************************************
; INITIALIZING ; INITIALIZING
@ -25,6 +25,38 @@ call mask_events
cmp [I_PARAM],byte 0 cmp [I_PARAM],byte 0
jz noparams jz noparams
;//Willow
cmp byte[I_PARAM],'*'
jne .noipc
; convert size from decimal representation to dword
mov esi, I_PARAM+1
xor edx, edx
xor eax, eax
@@:
lodsb
test al, al
jz @f
lea edx, [edx*4+edx]
lea edx, [edx*2+eax]
jmp @b
@@:
add edx,20
mcall 60,1,0x10000-16
mov dword[0x10000+-16+4],8
mcall 40,1000000b
mcall 23,200
; dpd eax
cmp eax,7
jne exit_now
mov esi,0x10000-16
mov byte[esi],1
call mask_events
mov eax,[esi+12]
inc eax
call file_found
jmp do_load_file.restorecursor
.noipc:
;//Willow
; parameters are at I_PARAM ; parameters are at I_PARAM
mov esi,I_PARAM mov esi,I_PARAM
mov edi,filename mov edi,filename
@ -413,12 +445,19 @@ mov edx,cl_White
int 0x40 int 0x40
if lang eq ru
putlabel 190,120,'‘®åà ­¨âì ¤®ªã¬¥­â?',cl_White putlabel 190,120,'‘®åà ­¨âì ¤®ªã¬¥­â?',cl_White
drawlbut 170,140,30,15,'„ ',49,[sc.work_button],cl_White drawlbut 170,140,30,15,'„ ',49,[sc.work_button],cl_White
drawlbut 230,140,30,15,'<27>¥â',48,[sc.work_button],cl_White drawlbut 230,140,30,15,'<27>¥â',48,[sc.work_button],cl_White
drawlbut 290,140,45,15,'Žâ¬¥­ ',47,[sc.work_button],cl_White drawlbut 290,140,45,15,'Žâ¬¥­ ',47,[sc.work_button],cl_White
else
putlabel 190,120,'Save the document?',cl_White
drawlbut 170,140,30,15,'Yes',49,[sc.work_button],cl_White
drawlbut 230,140,30,15,'No',48,[sc.work_button],cl_White
drawlbut 290,140,45,15,'Cancel',47,[sc.work_button],cl_White
end if
mov [exit_wnd_on],1 mov [exit_wnd_on],1
;---------------- ;----------------
@ -2537,7 +2576,11 @@ writepos:
cmp [modified],1 cmp [modified],1
jne no_mod jne no_mod
if lang eq ru
putlabel 270,386,'ˆ‡Œ…<C592><EFBFBD>',[sc.work_button_text] putlabel 270,386,'ˆ‡Œ…<C592><EFBFBD>',[sc.work_button_text]
else
putlabel 270,386,'MODIFIED',[sc.work_button_text]
end if
no_mod: no_mod:
popa popa
@ -2575,9 +2618,13 @@ mov ecx,160*65536+160
mov edx,cl_White mov edx,cl_White
int 0x40 int 0x40
if lang eq ru
drawlbut 375,110,50,15,'<27>®¨áª',50,[sc.work_button],[sc.work_button_text] drawlbut 375,110,50,15,'<27>®¨áª',50,[sc.work_button],[sc.work_button_text]
drawlbut 375,130,50,15,'Žâ¬¥­ ',94,[sc.work_button],[sc.work_button_text] drawlbut 375,130,50,15,'Žâ¬¥­ ',94,[sc.work_button],[sc.work_button_text]
else
drawlbut 375,110,50,15,'Search',50,[sc.work_button],[sc.work_button_text]
drawlbut 375,130,50,15,'Cancel',94,[sc.work_button],[sc.work_button_text]
end if
call read_string call read_string
@ -2618,8 +2665,11 @@ mov ecx,100*65536+170
mov edx,cl_White mov edx,cl_White
int 0x40 int 0x40
if lang eq ru
putlabel 195,120,'‘âப  ­¥ ­ ©¤¥­­ !',cl_White putlabel 195,120,'‘âப  ­¥ ­ ©¤¥­ !',cl_White
else
putlabel 195,120,'String not found!',cl_White
end if
drawlbut 235,140,30,15,'Žª',94,[sc.work_button],cl_White drawlbut 235,140,30,15,'Žª',94,[sc.work_button],cl_White
@ -3501,12 +3551,19 @@ mov ecx,100*65536+170
mov edx,cl_White mov edx,cl_White
int 0x40 int 0x40
if lang eq ru
putlabel 190,120,'‘®åà ­¨âì ¤®ªã¬¥­â?',cl_White putlabel 190,120,'‘®åà ­¨âì ¤®ªã¬¥­â?',cl_White
drawlbut 170,140,30,15,'„ ',46,[sc.work_button],cl_White drawlbut 170,140,30,15,'„ ',46,[sc.work_button],cl_White
drawlbut 230,140,30,15,'<27>¥â',45,[sc.work_button],cl_White drawlbut 230,140,30,15,'<27>¥â',45,[sc.work_button],cl_White
drawlbut 290,140,45,15,'Žâ¬¥­ ',47,[sc.work_button],cl_White drawlbut 290,140,45,15,'Žâ¬¥­ ',47,[sc.work_button],cl_White
else
putlabel 190,120,'Save document?',cl_White
drawlbut 170,140,30,15,'Yes',46,[sc.work_button],cl_White
drawlbut 230,140,30,15,'No',45,[sc.work_button],cl_White
drawlbut 290,140,45,15,'Cancel',47,[sc.work_button],cl_White
end if
mov [exit_wnd_on],1 mov [exit_wnd_on],1
jmp still jmp still
@ -3666,10 +3723,17 @@ mov ecx,39*65536+5
mov edx,0x00aaaaaa mov edx,0x00aaaaaa
int 0x40 int 0x40
if lang eq ru
drawlbut 5,22,70,15,'” ©«',97,[sc.work_button],[sc.work_button_text] drawlbut 5,22,70,15,'” ©«',97,[sc.work_button],[sc.work_button_text]
drawlbut 75,22,70,15,'Š®¤',98,[sc.work_button],[sc.work_button_text] drawlbut 75,22,70,15,'Š®¤',98,[sc.work_button],[sc.work_button_text]
drawlbut 145,22,70,15,'’¥ªáâ',96,[sc.work_button],[sc.work_button_text] drawlbut 145,22,70,15,'’¥ªáâ',96,[sc.work_button],[sc.work_button_text]
drawlbut 431,22,70,15,'‘¯à ¢ª ',99,[sc.work_button],[sc.work_button_text] drawlbut 431,22,70,15,'‘¯à ¢ª ',99,[sc.work_button],[sc.work_button_text]
else
drawlbut 5,22,70,15,'File',97,[sc.work_button],[sc.work_button_text]
drawlbut 75,22,70,15,'Code',98,[sc.work_button],[sc.work_button_text]
drawlbut 145,22,70,15,'Text',96,[sc.work_button],[sc.work_button_text]
drawlbut 431,22,70,15,'Help',99,[sc.work_button],[sc.work_button_text]
end if
ret ret
@ -3688,30 +3752,52 @@ call drawwindow
;int 0x40 ;int 0x40
mov [menu_is_on],1 mov [menu_is_on],1
if lang eq ru
drawlbut 5,38,70,15,'<27>®¢®¥ ®ª­®',100,[sc.grab_button],[sc.grab_button_text] drawlbut 5,38,70,15,'<27>®¢®¥ ®ª­®',100,[sc.grab_button],[sc.grab_button_text]
drawlbut 5,53,70,15,'<27>®¢ë©',101,[sc.grab_button],[sc.grab_button_text] drawlbut 5,53,70,15,'<27>®¢ë©',101,[sc.grab_button],[sc.grab_button_text]
drawlbut 5,68,70,15,'‘®åà ­¨âì',2,[sc.grab_button],[sc.grab_button_text] drawlbut 5,68,70,15,'‘®åà ­¨âì',2,[sc.grab_button],[sc.grab_button_text]
drawlbut 5,83,70,15,'‘®åà. ª ª',102,[sc.grab_button],[sc.grab_button_text] drawlbut 5,83,70,15,'‘®åà. ª ª',102,[sc.grab_button],[sc.grab_button_text]
drawlbut 5,98,70,15,'Žâªàëâì',103,[sc.grab_button],[sc.grab_button_text] drawlbut 5,98,70,15,'Žâªàëâì',103,[sc.grab_button],[sc.grab_button_text]
drawlbut 5,113,70,15,'‚ë室',104,[sc.grab_button],[sc.grab_button_text] drawlbut 5,113,70,15,'‚ë室',104,[sc.grab_button],[sc.grab_button_text]
else
drawlbut 5,38,70,15,'New window',100,[sc.grab_button],[sc.grab_button_text]
drawlbut 5,53,70,15,'New',101,[sc.grab_button],[sc.grab_button_text]
drawlbut 5,68,70,15,'Save',2,[sc.grab_button],[sc.grab_button_text]
drawlbut 5,83,70,15,'Save as',102,[sc.grab_button],[sc.grab_button_text]
drawlbut 5,98,70,15,'Open',103,[sc.grab_button],[sc.grab_button_text]
drawlbut 5,113,70,15,'Exit',104,[sc.grab_button],[sc.grab_button_text]
end if
jmp still jmp still
draw_win_menu_code: draw_win_menu_code:
call clear_screen call clear_screen
call drawwindow call drawwindow
if lang eq ru
drawlbut 75,38,70,15,'Š®¬¯¨«.',10000,[sc.grab_button],[sc.grab_button_text] drawlbut 75,38,70,15,'Š®¬¯¨«.',10000,[sc.grab_button],[sc.grab_button_text]
drawlbut 75,53,70,15,'‡ ¯ãáâ¨âì',10001,[sc.grab_button],[sc.grab_button_text] drawlbut 75,53,70,15,'‡ ¯ãáâ¨âì',10001,[sc.grab_button],[sc.grab_button_text]
drawlbut 75,68,70,15,'„®áª  ®â«.',10002,[sc.grab_button],[sc.grab_button_text] drawlbut 75,68,70,15,'„®áª  ®â«.',10002,[sc.grab_button],[sc.grab_button_text]
drawlbut 75,83,70,15,'SysFunc',10003,[sc.grab_button],[sc.grab_button_text] drawlbut 75,83,70,15,'SysFunc',10003,[sc.grab_button],[sc.grab_button_text]
else
drawlbut 75,38,70,15,'Compile',10000,[sc.grab_button],[sc.grab_button_text]
drawlbut 75,53,70,15,'Run',10001,[sc.grab_button],[sc.grab_button_text]
drawlbut 75,68,70,15,'Debug board',10002,[sc.grab_button],[sc.grab_button_text]
drawlbut 75,83,70,15,'SysFunc',10003,[sc.grab_button],[sc.grab_button_text]
end if
mov [menu_is_on],1 mov [menu_is_on],1
jmp still jmp still
draw_win_menu_text: draw_win_menu_text:
call clear_screen call clear_screen
call drawwindow call drawwindow
if lang eq ru
drawlbut 145,38,70,15,'GoTo Line#',95,[sc.grab_button],[sc.grab_button_text] drawlbut 145,38,70,15,'GoTo Line#',95,[sc.grab_button],[sc.grab_button_text]
drawlbut 145,53,70,15,'<27> ©â¨',92,[sc.grab_button],[sc.grab_button_text] drawlbut 145,53,70,15,'<27> ©â¨',92,[sc.grab_button],[sc.grab_button_text]
drawlbut 145,68,70,15,'<27> ©â¨ ¤ «¥¥',50,[sc.grab_button],[sc.grab_button_text] drawlbut 145,68,70,15,'<27> ©â¨ ¤ «¥¥',50,[sc.grab_button],[sc.grab_button_text]
else
drawlbut 145,38,70,15,'GoTo Line#',95,[sc.grab_button],[sc.grab_button_text]
drawlbut 145,53,70,15,'Find',92,[sc.grab_button],[sc.grab_button_text]
drawlbut 145,68,70,15,'Find next',50,[sc.grab_button],[sc.grab_button_text]
end if
mov [menu_is_on],1 mov [menu_is_on],1
jmp still jmp still
@ -3724,9 +3810,15 @@ jmp still
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
if lang eq ru
openerrtext db 'Žè¨¡ª  ®âªàëâ¨ï ä ©«  ¨«¨ ®âªàë⨥ ®â¬¥­¥­®!',0 openerrtext db 'Žè¨¡ª  ®âªàëâ¨ï ä ©«  ¨«¨ ®âªàë⨥ ®â¬¥­¥­®!',0
saveerrtext db 'Žè¨¡ª  á®åà ­¥­¨ï ä ©«  ¨«¨ á®åà ­¥­¨¥ ®â¬¥­¥­®!',0 saveerrtext db 'Žè¨¡ª  á®åà ­¥­¨ï ä ©«  ¨«¨ á®åà ­¥­¨¥ ®â¬¥­¥­®!',0
newfileerror db '<27>¥¢®§¬®¦­® á®å¤ âì ­®¢ë© ä ©«',0 newfileerror db '<27>¥¢®§¬®¦­® ᮧ¤ âì ­®¢ë© ä ©«',0
else
openerrtext db 'Error while opening file or opening canceled!',0
saveerrtext db 'Error while saving file or saving canceled!',0
newfileerror db 'Cannot create new file',0
end if
; ******************** ; ********************
; ****** DATA ****** ; ****** DATA ******
; ******************** ; ********************