Subversion Repositories Kolibri OS

Rev

Rev 111 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 111 Rev 131
Line 25... Line 25...
25
; random bug deleted eax is use.
25
; random bug deleted eax is use.
26
;0.11 loadfile from me +puttxt bug del ~07.09.2004
26
;0.11 loadfile from me +puttxt bug del ~07.09.2004
27
;0.12 open/save dialog ~13.09.2004
27
;0.12 open/save dialog ~13.09.2004
28
;0.13 dialogs bugs deleted
28
;0.13 dialogs bugs deleted
29
;0.14 drawlbut ~03.10.2004
29
;0.14 drawlbut ~03.10.2004
-
 
30
;0.15 extendet label!
Line 30... Line 31...
30
 
31
 
31
; LOADFILE
32
; LOADFILE
32
; (SYNTAX)  LOADFILE 'full_path_to_file',file_load_area,file_temp_area
33
; (SYNTAX)  LOADFILE 'full_path_to_file',file_load_area,file_temp_area
Line -... Line 34...
-
 
34
; (SAMPLE)  LOADFILE '/rd/1/clock.bmp',load_area,temp_area
33
; (SAMPLE)  LOADFILE '/rd/1/clock.bmp',load_area,temp_area
35
 
34
 
36
 
35
macro loadfile file_name,file_load_area,file_temp_area
37
macro loadfile file_name,file_load_area,file_temp_area
36
{
38
{
37
local open,fileinfo,string
39
local open,fileinfo,string
Line 57... Line 59...
57
    mov  ebx,fileinfo
59
    mov  ebx,fileinfo
58
    int  0x40
60
    int  0x40
59
}
61
}
Line 60... Line 62...
60
 
62
 
-
 
63
 
-
 
64
;macro wordstoreg reg,hiword,loword
-
 
65
;{
-
 
66
;if  hiword eqtype 0 & loword eqtype 0
-
 
67
;    mov  reg,dword hiword*65536+loword
-
 
68
;else if hiword eqtype 12 & loword eqtype eax
-
 
69
;    mov  reg,dword hiword*65536
-
 
70
;    add  reg,dword loword
-
 
71
;else if hiword eqtype 12 & loword eqtype [123]
-
 
72
;    mov  reg,dword hiword*65536
-
 
73
;    add  reg,dword loword
-
 
74
;else
-
 
75
;    mov  reg,dword hiword
-
 
76
;    shl  reg,16
-
 
77
;    add  reg,dword loword
-
 
78
;end if
-
 
79
;}
-
 
80
 
-
 
81
macro dword2reg reg,doubleword
-
 
82
{
-
 
83
if doubleword eq
-
 
84
   ; not changes
-
 
85
else
-
 
86
   mov reg,dword doubleword
-
 
87
end if
-
 
88
}
61
 
89
 
-
 
90
macro words2reg reg,hiword,lowword
-
 
91
{
-
 
92
if hiword eq
-
 
93
   if lowword eq
62
macro wordstoreg reg,hiword,loword
94
      ; not changes
-
 
95
   else
63
{
96
      if lowword eqtype 12
-
 
97
         and reg,dword 0xffff0000
64
if  hiword eqtype 0 & loword eqtype 0
98
         add reg,dword lowword
65
    mov  reg,(hiword)*65536+(loword)
99
      else
66
else if hiword eqtype 12 & loword eqtype eax
100
         and reg,dword 0xffff0000
-
 
101
         add reg,dword lowword
-
 
102
      end if
67
    mov  reg,(hiword)*65536
103
   end if
68
    add  reg,loword
104
else
69
else if hiword eqtype 0 & loword eqtype [123]
105
   if lowword eq
70
    mov  reg,(hiword)*65536
106
      if hiword eqtype 12
71
    add  reg,loword
107
         and reg,dword 0x0000ffff
72
else if (hiword eq ) & (loword eq )
-
 
73
else
108
         add reg,dword hiword*65536
-
 
109
      else
-
 
110
         shl reg,16
-
 
111
         add reg,dword hiword
-
 
112
         ror reg,16
-
 
113
      end if
-
 
114
   else
-
 
115
      if lowword eqtype 12 & hiword eqtype 12
-
 
116
         if lowword eq 0 & hiword eq 0
-
 
117
               xor reg,reg
-
 
118
            else
-
 
119
               mov reg,dword hiword*65536+lowword
-
 
120
         end if
-
 
121
      else
74
    mov  reg,hiword
122
         mov reg,dword hiword
-
 
123
         shl reg,16
-
 
124
         add reg,dword lowword
75
    shl  reg,16
125
      end if
76
    add  reg,loword
126
   end if
Line -... Line 127...
-
 
127
end if
-
 
128
}
77
end if
129
 
Line 78... Line 130...
78
}
130
 
79
 
131
 
80
 
132
 
81
; DRAW BUTTON with label
133
; DRAW BUTTON with label
82
 
134
 
83
macro drawlbut x,y,xs,ys,text,id,bcolor,tcolor
135
macro drawlbut x,y,xs,ys,text,id,bcolor,tcolor
84
{
136
{
85
local asd,lab
137
local asd,lab
86
    jmp asd
138
    jmp asd
87
lab db  text                 ;arg label
139
lab db  text                 ;arg label
88
asd:
140
asd:
89
    wordstoreg ebx,x,xs
141
    words2reg ebx,x,xs
Line 326... Line 378...
326
 dd procinfo ; 0x10000
378
 dd procinfo ; 0x10000
327
;run_filepath
379
;run_filepath
328
 db '/RD/1/SYSXTREE',0
380
 db '/RD/1/SYSXTREE',0
Line 329... Line 381...
329
 
381
 
330
procinfo:
382
procinfo:
331
times 256 db 0
383
times 1024 db 0
Line 332... Line 384...
332
}
384
}
333
 
385
 
Line 388... Line 440...
388
 
440
 
389
; define IPC memory
441
; define IPC memory
390
    mov eax,60
442
    mov eax,60
391
    mov ebx,1        ; define IPC
443
    mov ebx,1        ; define IPC
392
    mov ecx,path ; offset of area
444
    mov ecx,path ; offset of area
393
    mov edx,120      ; size 150 bytes
445
    mov edx,150      ; size 150 bytes
Line 394... Line 446...
394
    int 0x40
446
    int 0x40
395
 
447
 
396
; change wanted events list 7-bit IPC event
448
; change wanted events list 7-bit IPC event
Line 456... Line 508...
456
 
508
 
457
mred:
509
mred:
458
    call redproc
510
    call redproc
459
    jmp  getmesloop
511
    jmp  getmesloop
-
 
512
mkey:
460
mkey:
513
    mov  eax,2
461
    int  0x40                   ; read (eax=2)
514
    int  0x40                   ; read (eax=2)
462
    jmp  getmesloop
515
    jmp  getmesloop
463
mbutton:
516
mbutton:
464
    mov  eax,17                 ; get id
517
    mov  eax,17                 ; get id
Line 524... Line 577...
524
get_loops   dd 0
577
get_loops   dd 0
525
dlg_pid_get dd 0
578
dlg_pid_get dd 0
526
DLGPID      dd 0
579
DLGPID      dd 0
Line 527... Line 580...
527
 
580
 
528
param:
581
param:
529
   rb 4  ; My dec PID
582
   dd 0  ; My dec PID
Line 530... Line 583...
530
   rb 6  ; Type of dialog
583
   dd 0,0  ; Type of dialog
531
 
584
 
532
run_fileinfo:
585
run_fileinfo:
533
 dd 16
586
 dd 16
534
 dd 0
587
 dd 0
535
 dd param
588
 dd param
536
 dd 0
589
 dd 0
537
 dd procinfo
590
 dd procinfo
Line 538... Line 591...
538
run_filepath:
591
;run_filepath:
539
 db '/RD/1/SYSXTREE',0
592
 db '/RD/1/SYSXTREE',0
540
 
593
 
Line 633... Line 686...
633
macro puttxt x,y,offs,size,color
686
macro puttxt x,y,offs,size,color
634
{
687
{
635
;    mov ebx,x
688
;    mov ebx,x
636
;    shl ebx,16
689
;    shl ebx,16
637
;    add ebx,y
690
;    add ebx,y
638
    wordstoreg ebx,x,y
691
    words2reg ebx,x,y
-
 
692
 
-
 
693
    dword2reg ecx,color
-
 
694
    dword2reg edx,offs
-
 
695
    dword2reg esi,size
-
 
696
 
639
    mov ecx,color
697
;    mov ecx,color
640
    mov edx,offs
698
;    mov edx,offs
641
    mov esi,size
699
;    mov esi,size
642
    mov eax,4
700
    mov eax,4
643
    int 0x40
701
    int 0x40
644
}
702
}
Line 645... Line 703...
645
 
703
 
646
macro outcount data, x, y, color, numtype
704
macro outcount data, x, y, color, numtype
647
{
705
{
648
    mov ecx,data
706
    mov ecx,data
649
    mov ebx,numtype
707
    mov ebx,numtype
650
    mov bl,0
708
    mov bl,0
651
;    mov edx,x*65536+y
709
;    mov edx,x*65536+y
652
    wordstoreg edx,x,y
710
    words2reg edx,x,y
653
    mov esi,color
711
    mov esi,color
654
    mov eax,47
712
    mov eax,47
655
    int 0x40
713
    int 0x40
Line 726... Line 784...
726
 
784
 
727
macro window arg1,arg2,arg3,arg4,arg5
785
macro window arg1,arg2,arg3,arg4,arg5
728
{
786
{
729
;    mov ebx,arg1*65536+arg3
787
;    mov ebx,arg1*65536+arg3
730
;    mov ecx,arg2*65536+arg4
788
;    mov ecx,arg2*65536+arg4
731
    wordstoreg ebx,arg1,arg3
789
    words2reg ebx,arg1,arg3
732
    wordstoreg ecx,arg2,arg4
790
    words2reg ecx,arg2,arg4
733
    mov edx,arg5
791
    mov edx,arg5
734
    mov eax,0
792
    mov eax,0
735
    int 0x40
793
    int 0x40
Line 767... Line 825...
767
 
825
 
768
; LABEL - Put text to frame
826
; LABEL - Put text to frame
769
; (SYNTAX)  LABEL Xstart,Ystart,'Text',Color
827
; (SYNTAX)  LABEL Xstart,Ystart,'Text',Color
Line 770... Line 828...
770
; (SAMPLE)  LABEL 10,12,'Hello World!',cl_Green+font_Big
828
; (SAMPLE)  LABEL 10,12,'Hello World!',cl_Green+font_Big
771
 
829
 
772
macro label arg1,arg2,arg3,arg4
830
macro glabel arg1,arg2,arg3,arg4
773
{
831
{
774
local asd,lab
832
local asd,lab
775
    jmp asd
833
    jmp asd
776
lab db  arg3                 ;arg label
834
lab db  arg3                 ;arg label
777
asd:
835
asd:
778
;    mov ebx,arg1             ;arg1=y arg2=x
836
;    mov ebx,arg1             ;arg1=y arg2=x
-
 
837
;    shl ebx,16
779
;    shl ebx,16
838
;    add ebx,arg2
-
 
839
 
780
;    add ebx,arg2
840
   words2reg ebx,arg1,arg2
781
    wordstoreg ebx,arg1,arg2
-
 
782
if ~(arg4 eq )
841
 
783
    mov ecx,arg4             ;arg4 color
842
   dword2reg ecx,arg4
784
end if
843
 
785
    mov edx,lab
844
    mov edx,lab
786
    mov esi,asd-lab          ;calc size
845
    mov esi,asd-lab          ;calc size
787
    mov eax,4
846
    mov eax,4