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 ecx,0x10ddeeff
mov edx,title
mov esi,title-titlend
mov esi,titlend-title
int 0x40

View File

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

View File

@@ -1,9 +1,15 @@
; language for programs
lang fix en ; ru en fr ge fi
@^ fix macro comment {
^@ fix }
macro m2m dest,src {
push src
pop dest
}
; new application structure
macro meos_app_start
{
@@ -83,8 +89,7 @@ struc mstr [sstring]
macro sz name,[data] { ; from MFAR [mike.dld]
common
if used name
name:
db data
name db data
.size = $-name
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]
common
local s,m
local s,m,c
m = 0
c = 0
if used name
label name
forward
@@ -139,10 +145,12 @@ macro lszc name,elsz,[lng,data] { ; from MFAR [mike.dld]
m = s
end if
db data
c = c+1
end if
common
.size = $-name
.maxl = m
.size = $-name
.maxl = m
.count = c
end if
}
@@ -209,6 +217,7 @@ macro func name {
else
align 4
name:
;diff16 `name,0,name
;pushad
;pushfd
;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 {
.x _t _dx
.y _t _dy
}
; structure definition helper
;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
}
include 'struct.inc'
; structures used in MeOS
struc process_information
{
.cpu_usage dd ? ; +0
.window_stack_position dw ? ; +4
.window_stack_value dw ? ; +6
.not_used1 dw ? ; +8
.process_name rb 12 ; +10
.memory_start dd ? ; +22
.used_memory dd ? ; +26
.PID dd ? ; +30
.x_start dd ? ; +34
.y_start dd ? ; +38
.x_size dd ? ; +42
.y_size dd ? ; +46
.slot_state dw ? ; +50
struct process_information
cpu_usage dd ? ; +0
window_stack_position dw ? ; +4
window_stack_value dw ? ; +6
not_used1 dw ? ; +8
process_name rb 12 ; +10
memory_start dd ? ; +22
used_memory dd ? ; +26
PID dd ? ; +30
x_start dd ? ; +34
y_start dd ? ; +38
x_size dd ? ; +42
y_size dd ? ; +46
slot_state dw ? ; +50
rb (1024-52)
}
sizeof.process_information=1024
ends
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

View File

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

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,4 @@
; SYSTEM HAEDER:
; SYSTEM HEADER:
use32
org 0x0
db 'MENUET01' ; identifier
@@ -9,12 +9,12 @@
dd 0xeff0 ;0x4fffff ;0x3ff000;0xeff0 ; esp
dd I_PARAM ; parameters
dd 0 ; reserved
include 'lang.inc'
include 'ascl.inc'
include 'lang.inc'
include 'macros.inc' ; useful stuff
include 'dialogs1.inc'
include 'scroll.inc'
;include 'debug.inc'
include 'debug.inc'
purge mov ;  SPEED
;******************************************************************************
; INITIALIZING
@@ -25,6 +25,38 @@ call mask_events
cmp [I_PARAM],byte 0
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
mov esi,I_PARAM
mov edi,filename
@@ -413,12 +445,19 @@ mov edx,cl_White
int 0x40
if lang eq ru
putlabel 190,120,'<27><><EFBFBD><EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD><E3ACA5>?',cl_White
drawlbut 170,140,30,15,'<27><>',49,[sc.work_button],cl_White
drawlbut 230,140,30,15,'<27><><EFBFBD>',48,[sc.work_button],cl_White
drawlbut 290,140,45,15,'<27><EFBFBD><E2ACA5>',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
;----------------
@@ -2537,7 +2576,11 @@ writepos:
cmp [modified],1
jne no_mod
if lang eq ru
putlabel 270,386,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',[sc.work_button_text]
else
putlabel 270,386,'MODIFIED',[sc.work_button_text]
end if
no_mod:
popa
@@ -2575,9 +2618,13 @@ mov ecx,160*65536+160
mov edx,cl_White
int 0x40
if lang eq ru
drawlbut 375,110,50,15,'<27><><EFBFBD><EFBFBD><EFBFBD>',50,[sc.work_button],[sc.work_button_text]
drawlbut 375,130,50,15,'<27><EFBFBD><E2ACA5>',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
@@ -2618,8 +2665,11 @@ mov ecx,100*65536+170
mov edx,cl_White
int 0x40
putlabel 195,120,'<27><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!',cl_White
if lang eq ru
putlabel 195,120,'<27><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!',cl_White
else
putlabel 195,120,'String not found!',cl_White
end if
drawlbut 235,140,30,15,'<27><>',94,[sc.work_button],cl_White
@@ -3501,12 +3551,19 @@ mov ecx,100*65536+170
mov edx,cl_White
int 0x40
if lang eq ru
putlabel 190,120,'<27><><EFBFBD><EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD><E3ACA5>?',cl_White
drawlbut 170,140,30,15,'<27><>',46,[sc.work_button],cl_White
drawlbut 230,140,30,15,'<27><><EFBFBD>',45,[sc.work_button],cl_White
drawlbut 290,140,45,15,'<27><EFBFBD><E2ACA5>',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
jmp still
@@ -3666,10 +3723,17 @@ mov ecx,39*65536+5
mov edx,0x00aaaaaa
int 0x40
if lang eq ru
drawlbut 5,22,70,15,'<27><><EFBFBD><EFBFBD>',97,[sc.work_button],[sc.work_button_text]
drawlbut 75,22,70,15,'<27><><EFBFBD>',98,[sc.work_button],[sc.work_button_text]
drawlbut 145,22,70,15,'<27><><EFBFBD><EFBFBD><EFBFBD>',96,[sc.work_button],[sc.work_button_text]
drawlbut 431,22,70,15,'<27><><EFBFBD><E0A0A2>',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
@@ -3688,30 +3752,52 @@ call drawwindow
;int 0x40
mov [menu_is_on],1
if lang eq ru
drawlbut 5,38,70,15,'<27><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>',100,[sc.grab_button],[sc.grab_button_text]
drawlbut 5,53,70,15,'<27><><EFBFBD><EFBFBD><EFBFBD>',101,[sc.grab_button],[sc.grab_button_text]
drawlbut 5,68,70,15,'<27><><EFBFBD><EFBFBD><E0A0AD><EFBFBD>',2,[sc.grab_button],[sc.grab_button_text]
drawlbut 5,83,70,15,'<27><><EFBFBD><EFBFBD>. <20><><EFBFBD>',102,[sc.grab_button],[sc.grab_button_text]
drawlbut 5,98,70,15,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',103,[sc.grab_button],[sc.grab_button_text]
drawlbut 5,113,70,15,'<27><>室',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
draw_win_menu_code:
call clear_screen
call drawwindow
if lang eq ru
drawlbut 75,38,70,15,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.',10000,[sc.grab_button],[sc.grab_button_text]
drawlbut 75,53,70,15,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',10001,[sc.grab_button],[sc.grab_button_text]
drawlbut 75,68,70,15,'<27><><20><><EFBFBD>.',10002,[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
jmp still
draw_win_menu_text:
call clear_screen
call drawwindow
if lang eq ru
drawlbut 145,38,70,15,'GoTo Line#',95,[sc.grab_button],[sc.grab_button_text]
drawlbut 145,53,70,15,'<27><><EFBFBD><EFBFBD><EFBFBD>',92,[sc.grab_button],[sc.grab_button_text]
drawlbut 145,68,70,15,'<27><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>',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
jmp still
@@ -3724,9 +3810,15 @@ jmp still
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
if lang eq ru
openerrtext db '<27><EFBFBD><E8A8A1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E4A0A9> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><20><EFBFBD><E2ACA5><EFBFBD><EFBFBD>!',0
saveerrtext db '<27><EFBFBD><E8A8A1> <20><><EFBFBD><EFBFBD><E0A0AD><EFBFBD><EFBFBD><><E4A0A9> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><E0A0AD><EFBFBD><EFBFBD> <20><EFBFBD><E2ACA5><EFBFBD><EFBFBD>!',0
newfileerror db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><>',0
newfileerror db '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><>',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 ******
; ********************