diff --git a/programs/system/cpuid/trunk/CPUID b/programs/system/cpuid/trunk/CPUID
deleted file mode 100644
index c70adac129..0000000000
Binary files a/programs/system/cpuid/trunk/CPUID and /dev/null differ
diff --git a/programs/system/cpuid/trunk/FASM.EXE b/programs/system/cpuid/trunk/FASM.EXE
deleted file mode 100644
index 18e2e3aa32..0000000000
Binary files a/programs/system/cpuid/trunk/FASM.EXE and /dev/null differ
diff --git a/programs/system/cpuid/trunk/config.inc b/programs/system/cpuid/trunk/config.inc
deleted file mode 100644
index 541f904386..0000000000
--- a/programs/system/cpuid/trunk/config.inc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- __CPU_type fix p5
-
-
diff --git a/programs/system/cpuid/trunk/gif2img.inc b/programs/system/cpuid/trunk/gif2img.inc
deleted file mode 100644
index 4413ae4e2b..0000000000
--- a/programs/system/cpuid/trunk/gif2img.inc
+++ /dev/null
@@ -1,301 +0,0 @@
-COLOR_ORDER equ MENUETOS
-gif_hash_offset = gif_hash_area
-
-macro gif2img gifsrc,imgsrc
-{
-local hasharea, ReadGIF, nextblock,_null
-local globalColor, img_count, cur_info, img_start
-local codesize, compsize, bit_count, CC, EOI, Palette
-local block_ofs, table_ptr, gifmacend
-local no_gc, block_skip, no_comm, noextblock, uselocal
-local setPal, filltable, reinit, cycle, zadd, noinc
-local notintable, er, zend, nxt, continue, ex, Gif_skipmap
-local Gif_get_sym, shift, nextbl, noblock, loop1, exx
-local Gif_output, next, loop2
-
-_null fix 0x1000 ; 0x1000
-
-if ~gifsrc eq esi
- mov esi,gifsrc
-end if
-if ~imgsrc eq edi
- mov edi,imgsrc
-end if
-
- if defined gif_hash_offset
- mov eax,gif_hash_offset
- else
- mov eax,hasharea
- end if
-
- call ReadGIF
- jmp gifmacend
-
- if defined gif_hash_offset
- else
- hasharea:
- times 4096 dd 0 ;4096
- end if
-
-ReadGIF:
- push esi edi
- mov [table_ptr],eax
- mov [cur_info],edi
- xor eax,eax
- mov [globalColor],eax
- mov [img_count],eax
- inc eax
- cmp dword[esi],'GIF8'
- jne er ; signature
- mov ecx,[esi+0xa]
- inc eax
- add esi,0xd
- mov edi,esi
- bt ecx,7
- jnc nextblock
- mov [globalColor],esi
- call Gif_skipmap
-nextblock:
- cmp byte[edi],0x21
- jne noextblock
- inc edi
- cmp byte[edi],0xf9 ; Graphic Control Ext
- jne no_gc
- add edi,7
- jmp nextblock
-no_gc:
- cmp byte[edi],0xfe ; Comment Ext
- jne no_comm
- inc edi
-block_skip:
- movzx eax,byte[edi]
- lea edi,[edi+eax+1]
- cmp byte[edi],0
- jnz block_skip
- inc edi
- jmp nextblock
-no_comm:
- cmp byte[edi],0xff ; Application Ext
- jne nextblock
- add edi,13
- jmp block_skip
-noextblock:
- cmp byte[edi],0x2c ; image beginning
- jne er
- inc [img_count]
- inc edi
- mov esi,[cur_info]
- xchg esi,edi
-; movsd
-; movsd
-
- mov bp,word[esi+4]
- movzx ebx,bp
- mov [edi],ebx
-
- mov bp,word[esi+6]
- movzx ebx,bp
- mov [edi+4],ebx
-
- add edi,8
- add esi,8
-
- push edi
- movzx ecx,word[esi]
- inc esi
- bt ecx,7
- jc uselocal
- push [globalColor]
- mov edi,esi
- jmp setPal
-uselocal:
- call Gif_skipmap
- push esi
-setPal:
- movzx ecx,byte[edi]
- inc ecx
- mov [codesize],ecx
- dec ecx
- pop [Palette]
- lea esi,[edi+1]
- mov edi,[table_ptr]
- xor eax,eax
- cld
- lodsb ; eax - block_count
- add eax,esi
- mov [block_ofs],eax
- mov [bit_count],8
- mov eax,1
- shl eax,cl
- mov [CC],eax
- inc eax
- mov [EOI],eax
- lea ecx,[eax-1]
- mov eax, _null shl 16
-filltable:
- stosd
- inc eax
- loop filltable
- pop edi
- mov [img_start],edi
-reinit:
- mov edx,[EOI]
- inc edx
- push [codesize]
- pop [compsize]
- call Gif_get_sym
- cmp eax,[CC]
- je reinit
- call Gif_output
-cycle:
- movzx ebx,ax
- call Gif_get_sym
- cmp eax,edx
- jae notintable
- cmp eax,[CC]
- je reinit
- cmp eax,[EOI]
- je zend
- call Gif_output
-zadd:
- push eax
- mov eax,[table_ptr]
- mov [eax+edx*4],ebx
- pop eax
- cmp edx,0xFFF
- jae cycle
- inc edx
- bsr ebx,edx
- cmp ebx,[compsize]
- jne noinc
- inc [compsize]
-noinc:
- jmp cycle
-notintable:
- push eax
- mov eax,ebx
- call Gif_output
- push ebx
- movzx eax,bx
- call Gif_output
- pop ebx eax
- jmp zadd
-er:
- pop edi
- jmp ex
-zend:
-; mov eax,[.cur_info] ; skip offset to next frame
-; mov [eax],edi
- mov [cur_info],edi
- add esi,2
- xchg esi,edi
-nxt:
- cmp byte[edi],0
- jnz continue
- inc edi
- jmp nxt
-continue:
-; cmp byte[edi],0x3b ;read next frame
-; jne nextblock
- xor eax,eax
- stosd
- mov ecx,[img_count]
-ex:
- pop edi esi
- ret
-
-Gif_skipmap:
-; in: ecx - image descriptor, esi - pointer to colormap
-; out: edi - pointer to area after colormap
-
- and ecx,111b
- inc ecx ; color map size
- mov ebx,1
- shl ebx,cl
- lea ebx,[ebx*2+ebx]
- lea edi,[esi+ebx]
- ret
-
-Gif_get_sym:
- mov ecx,[compsize]
- push ecx
- xor eax,eax
-shift:
- ror byte[esi],1
- rcr eax,1
- dec [bit_count]
- jnz loop1
- inc esi
- cmp esi,[block_ofs]
- jb noblock
- push eax
- xor eax,eax
- lodsb
- test eax,eax
- jnz nextbl
- mov eax,[EOI]
- sub esi,2
- add esp,8
- jmp exx
-nextbl:
- add eax,esi
- mov [block_ofs],eax
- pop eax
-noblock:
- mov [bit_count],8
-loop1:
- loop shift
- pop ecx
- rol eax,cl
-exx:
- xor ecx,ecx
- ret
-
-Gif_output:
- push esi eax edx
- mov edx,[table_ptr]
-next:
- push word[edx+eax*4]
- mov ax,word[edx+eax*4+2]
- inc ecx
- cmp ax,_null
- jnz next
- shl ebx,16
- mov bx,[esp]
-loop2:
- pop ax
-
- lea esi,[eax+eax*2]
- add esi,[Palette]
-
- if COLOR_ORDER eq MENUETOS
- mov esi,[esi]
- bswap esi
- shr esi,8
- mov [edi],esi
- add edi,3
- else
- movsw
- movsb
- end if
-
- loop loop2
- pop edx eax esi
- ret
-
- globalColor dd 1
- img_count dd 1
- cur_info dd 1 ; image table pointer
- img_start dd 1
- codesize dd 1
- compsize dd 1
- bit_count dd 1
- CC dd 1
- EOI dd 1
- Palette dd 1
- block_ofs dd 1
- table_ptr dd 1
-
-gifmacend:
-}
-
diff --git a/programs/system/cpuid/trunk/gif_lite.inc b/programs/system/cpuid/trunk/gif_lite.inc
deleted file mode 100644
index 22322ef959..0000000000
--- a/programs/system/cpuid/trunk/gif_lite.inc
+++ /dev/null
@@ -1,485 +0,0 @@
-; GIF LITE v3.0 by Willow
-; Written in pure assembler by Ivushkin Andrey aka Willow
-; Modified by Diamond
-;
-; This include file will contain functions to handle GIF image format
-;
-; Created: August 15, 2004
-; Last changed: June 24, 2007
-
-; Requires kglobals.inc (iglobal/uglobal macro)
-; (program must 'include "kglobals.inc"' and say 'IncludeUGlobal'
-; somewhere in uninitialized data area).
-
-; Configuration: [changed from program which includes this file]
-; 1. The constant COLOR_ORDER: must be one of
-; PALETTE - for 8-bit image with palette (sysfunction 65)
-; MENUETOS - for MenuetOS and KolibriOS color order (sysfunction 7)
-; OTHER - for standard color order
-; 2. Define constant GIF_SUPPORT_INTERLACED if you want to support interlaced
-; GIFs.
-; 3. Single image mode vs multiple image mode:
-; if the program defines the variable 'gif_img_count' of type dword
-; somewhere, ReadGIF will enter multiple image mode: gif_img_count
-; will be initialized with image count, output format is GIF_list,
-; the function GetGIFinfo retrieves Nth image info. Otherwise, ReadGIF
-; uses single image mode: exit after end of first image, output is
-;
-
-if ~ (COLOR_ORDER in )
-; This message may not appear under MenuetOS, so watch...
- display 'Please define COLOR_ORDER: PALETTE, MENUETOS or OTHER',13,10
-end if
-
-if defined gif_img_count
-; virtual structure, used internally
-
-struct GIF_list
- NextImg rd 1
- Left rw 1
- Top rw 1
- Width rw 1
- Height rw 1
- Delay rd 1
- Displacement rd 1 ; 0 = not specified
- ; 1 = do not dispose
- ; 2 = restore to background color
- ; 3 = restore to previous
-if COLOR_ORDER eq PALETTE
- Image rd 1
-end if
-ends
-
-struct GIF_info
- Left rw 1
- Top rw 1
- Width rw 1
- Height rw 1
- Delay rd 1
- Displacement rd 1
-if COLOR_ORDER eq PALETTE
- Palette rd 1
-end if
-ends
-
-; ****************************************
-; FUNCTION GetGIFinfo - retrieve Nth image info
-; ****************************************
-; in:
-; esi - pointer to image list header
-; ecx - image_index (0...img_count-1)
-; edi - pointer to GIF_info structure to be filled
-
-; out:
-; eax - pointer to RAW data, or 0, if error
-
-GetGIFinfo:
- push esi ecx edi
- xor eax,eax
- jecxz .eloop
- .lp:
- mov esi,[esi]
- test esi,esi
- jz .error
- loop .lp
- .eloop:
- lodsd
- movsd
- movsd
- movsd
- movsd
-if COLOR_ORDER eq PALETTE
- lodsd
- mov [edi],esi
-else
- mov eax,esi
-end if
- .error:
- pop edi ecx esi
- ret
-
-end if
-
-_null fix 0x1000
-
-; ****************************************
-; FUNCTION ReadGIF - unpacks GIF image
-; ****************************************
-; in:
-; esi - pointer to GIF file in memory
-; edi - pointer to output image list
-
-; out:
-; eax - 0, all OK;
-; eax - 1, invalid signature;
-; eax >=8, unsupported image attributes
-;
-
-ReadGIF:
- push esi edi
- mov [.cur_info],edi
- xor eax,eax
- mov [.globalColor],eax
-if defined gif_img_count
- mov [gif_img_count],eax
- mov [.anim_delay],eax
- mov [.anim_disp],eax
-end if
- inc eax
- cmp dword[esi],'GIF8'
- jne .ex ; signature
- mov ecx,[esi+0xa]
- add esi,0xd
- mov edi,esi
- test cl,cl
- jns .nextblock
- mov [.globalColor],esi
- call .Gif_skipmap
- .nextblock:
- cmp byte[edi],0x21
- jne .noextblock
- inc edi
-if defined gif_img_count
- cmp byte[edi],0xf9 ; Graphic Control Ext
- jne .no_gc
- movzx eax,word [edi+3]
- mov [.anim_delay],eax
- mov al,[edi+2]
- shr al,2
- and eax,7
- mov [.anim_disp],eax
- add edi,7
- jmp .nextblock
- .no_gc:
-end if
- inc edi
- .block_skip:
- movzx eax,byte[edi]
- lea edi,[edi+eax+1]
- test eax,eax
- jnz .block_skip
- jmp .nextblock
- .noextblock:
- mov al,8
- cmp byte[edi],0x2c ; image beginning
- jne .ex
-if defined gif_img_count
- inc [gif_img_count]
-end if
- inc edi
- mov esi,[.cur_info]
-if defined gif_img_count
- add esi,4
-end if
- xchg esi,edi
-if defined GIF_SUPPORT_INTERLACED
- movzx ecx,word[esi+4]
- mov [.width],ecx
- movzx eax,word[esi+6]
- imul eax,ecx
-if ~(COLOR_ORDER eq PALETTE)
- lea eax,[eax*3]
-end if
- mov [.img_end],eax
- inc eax
- mov [.row_end],eax
- and [.pass],0
- test byte[esi+8],40h
- jz @f
-if ~(COLOR_ORDER eq PALETTE)
- lea ecx,[ecx*3]
-end if
- mov [.row_end],ecx
-@@:
-end if
-if defined gif_img_count
- movsd
- movsd
- mov eax,[.anim_delay]
- stosd
- mov eax,[.anim_disp]
- stosd
-else
- movzx eax,word[esi+4]
- stosd
- movzx eax,word[esi+6]
- stosd
- add esi,8
-end if
- push edi
- mov ecx,[esi]
- inc esi
- test cl,cl
- js .uselocal
- push [.globalColor]
- mov edi,esi
- jmp .setPal
- .uselocal:
- call .Gif_skipmap
- push esi
- .setPal:
- movzx ecx,byte[edi]
- inc ecx
- mov [.codesize],ecx
- dec ecx
-if ~(COLOR_ORDER eq PALETTE)
- pop [.Palette]
-end if
- lea esi,[edi+1]
- mov edi,.gif_workarea
- xor eax,eax
- lodsb ; eax - block_count
- add eax,esi
- mov [.block_ofs],eax
- mov [.bit_count],8
- mov eax,1
- shl eax,cl
- mov [.CC],eax
- mov ecx,eax
- inc eax
- mov [.EOI],eax
- mov eax, _null shl 16
- .filltable:
- stosd
- inc eax
- loop .filltable
-if COLOR_ORDER eq PALETTE
- pop eax
- pop edi
- push edi
- scasd
- push esi
- mov esi,eax
- mov ecx,[.CC]
-@@:
- lodsd
- dec esi
- bswap eax
- shr eax,8
- stosd
- loop @b
- pop esi
- pop eax
- mov [eax],edi
-else
- pop edi
-end if
-if defined GIF_SUPPORT_INTERLACED
- mov [.img_start],edi
- add [.img_end],edi
- add [.row_end],edi
-end if
- .reinit:
- mov edx,[.EOI]
- inc edx
- push [.codesize]
- pop [.compsize]
- call .Gif_get_sym
- cmp eax,[.CC]
- je .reinit
- call .Gif_output
- .cycle:
- movzx ebx,ax
- call .Gif_get_sym
- cmp eax,edx
- jae .notintable
- cmp eax,[.CC]
- je .reinit
- cmp eax,[.EOI]
- je .end
- call .Gif_output
- .add:
- mov dword [.gif_workarea+edx*4],ebx
- cmp edx,0xFFF
- jae .cycle
- inc edx
- bsr ebx,edx
- cmp ebx,[.compsize]
- jne .noinc
- inc [.compsize]
- .noinc:
- jmp .cycle
- .notintable:
- push eax
- mov eax,ebx
- call .Gif_output
- push ebx
- movzx eax,bx
- call .Gif_output
- pop ebx eax
- jmp .add
- .end:
-if defined GIF_SUPPORT_INTERLACED
- mov edi,[.img_end]
-end if
-if defined gif_img_count
- mov eax,[.cur_info]
- mov [eax],edi
- mov [.cur_info],edi
- add esi,2
- xchg esi,edi
- .nxt:
- cmp byte[edi],0
- jnz .continue
- inc edi
- jmp .nxt
- .continue:
- cmp byte[edi],0x3b
- jne .nextblock
- xchg esi,edi
- and dword [eax],0
-end if
- xor eax,eax
- .ex:
- pop edi esi
- ret
-
-.Gif_skipmap:
-; in: ecx - image descriptor, esi - pointer to colormap
-; out: edi - pointer to area after colormap
-
- and ecx,111b
- inc ecx ; color map size
- mov ebx,1
- shl ebx,cl
- lea ebx,[ebx*2+ebx]
- lea edi,[esi+ebx]
- ret
-
-.Gif_get_sym:
- mov ecx,[.compsize]
- push ecx
- xor eax,eax
- .shift:
- ror byte[esi],1
- rcr eax,1
- dec [.bit_count]
- jnz .loop1
- inc esi
- cmp esi,[.block_ofs]
- jb .noblock
- push eax
- xor eax,eax
- lodsb
- test eax,eax
- jnz .nextbl
- mov eax,[.EOI]
- sub esi,2
- add esp,8
- jmp .exx
- .nextbl:
- add eax,esi
- mov [.block_ofs],eax
- pop eax
- .noblock:
- mov [.bit_count],8
- .loop1:
- loop .shift
- pop ecx
- rol eax,cl
- .exx:
- xor ecx,ecx
- ret
-
-.Gif_output:
- push esi eax edx
- mov edx,.gif_workarea
- .next:
- push word[edx+eax*4]
- mov ax,word[edx+eax*4+2]
- inc ecx
- cmp ax,_null
- jnz .next
- shl ebx,16
- mov bx,[esp]
- .loop2:
- pop ax
-
- if COLOR_ORDER eq PALETTE
- stosb
- else
- lea esi,[eax+eax*2]
- add esi,[.Palette]
-
- if COLOR_ORDER eq MENUETOS
- mov esi,[esi]
- bswap esi
- shr esi,8
- mov [edi],esi
- add edi,3
- else
- movsb
- movsb
- movsb
- end if
- end if
-
-if defined GIF_SUPPORT_INTERLACED
- cmp edi,[.row_end]
- jb .norowend
- mov eax,[.width]
-if ~(COLOR_ORDER eq PALETTE)
- lea eax,[eax*3]
-end if
- push eax
- sub edi,eax
- add eax,eax
- cmp [.pass],3
- jz @f
- add eax,eax
- cmp [.pass],2
- jz @f
- add eax,eax
-@@:
- add edi,eax
- pop eax
- cmp edi,[.img_end]
- jb .nextrow
- mov edi,[.img_start]
- inc [.pass]
- add edi,eax
- cmp [.pass],3
- jz @f
- add edi,eax
- cmp [.pass],2
- jz @f
- add edi,eax
- add edi,eax
-@@:
-.nextrow:
- add eax,edi
- mov [.row_end],eax
- xor eax,eax
-.norowend:
-end if
-
- loop .loop2
- pop edx eax esi
- ret
-
-uglobal
-align 4
- ReadGIF.globalColor rd 1
- ReadGIF.cur_info rd 1 ; image table pointer
- ReadGIF.codesize rd 1
- ReadGIF.compsize rd 1
- ReadGIF.bit_count rd 1
- ReadGIF.CC rd 1
- ReadGIF.EOI rd 1
-if ~(COLOR_ORDER eq PALETTE)
- ReadGIF.Palette rd 1
-end if
- ReadGIF.block_ofs rd 1
-if defined GIF_SUPPORT_INTERLACED
- ReadGIF.row_end rd 1
- ReadGIF.img_end rd 1
- ReadGIF.img_start rd 1
- ReadGIF.pass rd 1
- ReadGIF.width rd 1
-end if
-if defined gif_img_count
- ReadGIF.anim_delay rd 1
- ReadGIF.anim_disp rd 1
-end if
- ReadGIF.gif_workarea rb 16*1024
-endg
diff --git a/programs/system/cpuid/trunk/lang.inc b/programs/system/cpuid/trunk/lang.inc
deleted file mode 100644
index dc151ef654..0000000000
--- a/programs/system/cpuid/trunk/lang.inc
+++ /dev/null
@@ -1 +0,0 @@
-lang fix en
\ No newline at end of file
diff --git a/programs/system/cpuid/trunk/load_lib.mac b/programs/system/cpuid/trunk/load_lib.mac
deleted file mode 100644
index 249dd534e3..0000000000
--- a/programs/system/cpuid/trunk/load_lib.mac
+++ /dev/null
@@ -1,617 +0,0 @@
-;13.03.2013 - use @notify
-;08.06.2010 - new macros @use_library_mem
-;08.05.2009 - bugfix
-;14.04.2009 - a macros for code load library the box_lib.obj from '/sys/lib/' or current dirrectory.
-; The macros for load any library/libraries:
-; Copyright (c) 2009,
-; All rights reserved.
-;
-; Redistribution and use in source and binary forms, with or without
-; modification, are permitted provided that the following conditions are met:
-; * Redistributions of source code must retain the above copyright
-; notice, this list of conditions and the following disclaimer.
-; * Redistributions in binary form must reproduce the above copyright
-; notice, this list of conditions and the following disclaimer in the
-; documentation and/or other materials provided with the distribution.
-; * Neither the name of the nor the
-; names of its contributors may be used to endorse or promote products
-; derived from this software without specific prior written permission.
-;
-; THIS SOFTWARE IS PROVIDED BY Alexey Teplov aka ''AS IS'' AND ANY
-; EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-; DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY
-; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-; (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-; ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-;*****************************************************************************
-; This macros based on source code:
-; - Alexey Teplov / Алексей Теплов
-; Mario79, Mario - Marat Zakiyanov / Марат Закиянов
-; Diamondz - Evgeny Grechnikov / Евгений Гречников
-;------------------------
-; DESCRIPTION
-; Macro load_library
-; Logick of work.
-; A first time we must to check system path, where I belive find a system library. System path is "/sys/lib/".
-; If I cannot found my library, i must to check second way. Second way is current dirrectory.
-; If we cannot load library, we must show the error message:
-; "I'm sorry,the programm cannot found system library box_lib.obj."
-; "The find was make on 2 ways: /sys/lib/ and current dirrectory."
-;
-;
-;---------------------------------------------------------------------
-; Macro sys_load_library
-; A first time we must to check own path in current dirrectory the program, where I belive find a system library.
-; If I cannot found my library, i must to check second way. Second way is system path a "/sys/lib/".
-; If we cannot load library, we must show the error message:
-; "I'm sorry,the programm cannot found system library box_lib.obj."
-; "The find was make on 2 ways: /sys/lib/ and current dirrectory."
-;
-;---------------------------------------------------------------------
-; How can I use it?
-;---------------------------------------------------------------------
-;-Example using single load library
-;-universal load library/librarys
-;load_library library_name__, cur_dir_path__, library_path__, system_path__, \
-;err_message_found_lib__, head_f_l__, myimport, err_message_import__, head_f_i__
-;-if return code =-1 then exit, else normally work
-; cmp eax,-1
-; jz exit
-;- Well, if you get
-;
-;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
-;DATA данные
-;Всегда соблюдать последовательность в имени.
-;system_path__ db '/sys/lib/'
-;library_name__ db 'box_lib.obj',0
-; Если есть желание разъединить, то нужно использовать следующию конструкцию
-;system_path__ db '/sys/lib/box_lib.obj',0
-;... любая последовательность других команд и определений.
-;library_name__ db 'box_lib.obj',0
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-;err_message_found_lib__ db 'Sorry I cannot found library box_lib.obj',0
-;head_f_i__:
-;head_f_l__ db 'System error',0
-;err_message_import__ db 'Error on load import library box_lib.obj',0
-
-;myimport:
-;
-;edit_box_draw dd aEdit_box_draw
-;edit_box_key dd aEdit_box_key
-;edit_box_mouse dd aEdit_box_mouse
-;version_ed dd aVersion_ed
-;
-;check_box_draw dd aCheck_box_draw
-;check_box_mouse dd aCheck_box_mouse
-;version_ch dd aVersion_ch
-;
-;option_box_draw dd aOption_box_draw
-;option_box_mouse dd aOption_box_mouse
-;version_op dd aVersion_op
-
-; dd 0
-; dd 0
-;
-;aEdit_box_draw db 'edit_box',0
-;aEdit_box_key db 'edit_box_key',0
-;aEdit_box_mouse db 'edit_box_mouse',0
-;aVersion_ed db 'version_ed',0
-
-;aCheck_box_draw db 'check_box_draw',0
-;aCheck_box_mouse db 'check_box_mouse',0
-;aVersion_ch db 'version_ch',0
-
-;aOption_box_draw db 'option_box_draw',0
-;aOption_box_mouse db 'option_box_mouse',0
-;aVersion_op db 'version_op',0
-
-;---------------------------------------------------------------------
-macro @use_library
-{
-local lp1
-local lp2
-local lp3
-local lp4
-local lp5
-local lp6
-local file_name
-
-library_fun_memory_alloc equ 0 ;не использовать в макросах проверку на функции 'lib_init'
-
-align 4
-arrea_xx dd 0
-file_name db '/rd/1/@notify',0
-
-align 4
-run_notify_struct:
- .Function dd 7
- .Position dd 0
- .Flags dd ?
- .Count dd 0
- .Buffer dd 0
- db 0
- .FileName dd file_name
-;---------------------------------------------------------------------
-
-@library_name equ dword [esp+16]
-@cur_dir_path equ dword [esp+12]
-@library_path equ dword [esp+8]
-@point_dir_name equ dword [esp+4]
-
-align 4
-@copy_path:
- mov esi,@cur_dir_path
- mov edi,@library_path
- xor eax,eax
- cld
-align 4
-.lp1:
- lodsb
- stosb
- test eax,eax
- jnz .lp1
- mov esi,edi
- dec esi ;переход на символ конца строки @cur_dir_path
- std
-align 4
-.lp2:
- lodsb
- cmp al,'/'
- jnz .lp2
- mov edi,esi
- add edi,2
- cld
- mov esi,@point_dir_name
- test esi,esi
- jz .str_lp4
-
- ;проверка относительных путей c двумя точками '../'
- cmp word[esi],'..'
- jne .lp3
- dec edi ;для перехода на '/'
-.lp6:
- add esi,3 ;пропускаем одно поднятие '../'
-.lp5:
- dec edi ;идем по папкам
- cmp byte[edi],'/'
- jnz .lp5
- cmp word[esi],'..'
- je .lp6
- inc edi ;для перехода на '/'
-
- ;копирование относительного пути
-align 4
-.lp3:
- lodsb
- stosb
- test eax,eax
- jnz .lp3
- dec edi
-.str_lp4:
- mov esi,@library_name
-align 4
-.lp4:
- lodsb
- stosb
- test eax,eax
- jnz .lp4
-;---------------------------------------------------------------------
- ret
-}
-
-
-
-macro @use_library_mem mem_alloc,mem_free,mem_realloc,dll_load
-{
-@use_library
-library_fun_memory_alloc equ mem_alloc
-library_fun_memory_free equ mem_free
-library_fun_memory_realloc equ mem_realloc
-library_fun_dll_load equ dll_load
-}
-
-
-macro sys_load_library library_name__, cur_dir_path__, library_path__, system_path__, err_message_found_lib__, head_f_l__, myimport, err_message_import__, head_f_i__,point_dir_name__
-{
-local end_steep
-local exit
-;---------------------------------------------------------------------
-; loading Box_Lib library
-
- mcall 68,19,system_path__ ; load of sys directory
- test eax,eax
- jnz end_steep
-
-if point_dir_name__ eq
- copy_path library_name__, cur_dir_path__, library_path__,0x0
-else
- copy_path library_name__, cur_dir_path__, library_path__,point_dir_name__ ;the macros making way /current pach a program/+ name system library
-end if
-
- mcall 68,19,library_path__ ; load of alternative
- test eax,eax
- jnz end_steep
- show_error_window err_message_found_lib__, head_f_l__ ;show error message /create window
- jmp exit
-
-
-align 4
-end_steep:
-
- import_boxlib myimport, err_message_import__, head_f_i__ ;import
-exit:
- test eax,eax
- jz @f
-
- notify_window_run [arrea_xx] ; создаем окно @notify
- or eax,-1
-@@:
-
-;---------------------------------------------------------------------
-}
-
-
-macro load_library library_name__, cur_dir_path__, library_path__, system_path__, err_message_found_lib__, head_f_l__, myimport, err_message_import__, head_f_i__,point_dir_name__
-{
-local end_steep
-local exit
-;---------------------------------------------------------------------
-; loading Box_Lib library
-
-if point_dir_name__ eq
- copy_path library_name__, cur_dir_path__, library_path__,0x0
-else
- copy_path library_name__, cur_dir_path__, library_path__,point_dir_name__ ;the macros making way /current pach a program/+ name system library
-end if
-
- mcall 68,19,library_path__ ; load of alternative
- test eax,eax
- jnz end_steep
-
- mcall 68,19,system_path__ ; load of sys directory
- test eax,eax
- jnz end_steep
-
- show_error_window err_message_found_lib__, head_f_l__ ;show error message /create window
- jmp exit
-
-align 4
-end_steep:
-
- import_boxlib myimport, err_message_import__, head_f_i__ ;import
-exit:
- test eax,eax
- jz @f
-
- notify_window_run [arrea_xx] ; создаем окно @notify
- or eax,-1
-@@:
-
-;---------------------------------------------------------------------
-}
-macro sys_load_libraries _start,_end
-{
-local exit_lp2
-local lp2
-local lp
-local end_steep
-local next
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-library_name__ equ [ebp]
-cur_dir_path__ equ [ebp+4]
-library_path__ equ [ebp+8]
-system_path__ equ [ebp+12]
-err_message_found_lib__ equ [ebp+16]
-head_f_l__ equ [ebp+20]
-my_import equ [ebp+24]
-err_message_import__ equ [ebp+28]
-head_f_i__ equ [ebp+32]
-point_dir_name__ equ [ebp+36]
-adr_load_lib equ dword [ebp+40]
-status_lib equ dword [ebp+44]
-
- mov ebp,_start
- mov ecx,((_end-_start)/ll_struc_size)
-
-align 4
-lp: push ecx
- mcall 68,19,system_path__ ; load of sys directory
- test eax,eax
- jnz end_steep
-
- copy_path library_name__, cur_dir_path__, library_path__,point_dir_name__ ;the macros making way /current pach a program/+ name system library
-
- mcall 68,19,library_path__ ; load of alternative
- test eax,eax
- jnz end_steep
-
- or status_lib,0x1 ; status of code - enable error - not found library
-
- show_error_window err_message_found_lib__, head_f_l__, ;show error message /create window
- jmp next
-
-align 4
-end_steep:
- mov adr_load_lib,eax ;save adr lib in memory
- import_boxlib my_import, err_message_import__, head_f_i__ ;import
-
- test eax,eax
- jz next
-
- or status_lib,0x2 ; status of code - enable error - import error
-
-next:
- pop ecx
- add ebp,ll_struc_size
- dec ecx
- jnz lp
-
-;----------------------------------
- mov ebp,_start
- mov ecx,((_end-_start)/ll_struc_size)
-
-align 4
-lp2:
- mov eax,status_lib
- test eax,eax
- jz @f
-
- notify_window_run [arrea_xx] ; создаем окно @notify
- or eax,-1
- jmp exit_lp2
-
-@@:
- add ebp,ll_struc_size
- dec ecx
- jnz lp2
-exit_lp2:
-}
-
-macro load_libraries _start,_end
-{
-local lp2
-local exit_lp2
-local lp
-local end_steep
-local next
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-library_name__ equ [ebp]
-cur_dir_path__ equ [ebp+4]
-library_path__ equ [ebp+8]
-system_path__ equ [ebp+12]
-err_message_found_lib__ equ [ebp+16]
-head_f_l__ equ [ebp+20]
-my_import equ [ebp+24]
-err_message_import__ equ [ebp+28]
-head_f_i__ equ [ebp+32]
-point_dir_name__ equ [ebp+36]
-adr_load_lib equ dword [ebp+40]
-status_lib equ dword [ebp+44]
-
- mov ebp,_start
- mov ecx,((_end-_start)/ll_struc_size)
-
-align 4
-lp: push ecx
-
- copy_path library_name__, cur_dir_path__, library_path__,point_dir_name__ ;the macros making way /current pach a program/+ name system library
-
- mcall 68,19,library_path__ ; load of alternative
- test eax,eax
- jnz end_steep
-
- mcall 68,19,system_path__ ; load of sys directory
- test eax,eax
- jnz end_steep
-
- or status_lib,0x1 ; status of code - enable error - not found library
-
- show_error_window err_message_found_lib__, head_f_l__ ;show error message /create window
- jmp next
-
-align 4
-end_steep:
- mov adr_load_lib,eax ;save adr lib in memory
-
- import_boxlib my_import, err_message_import__, head_f_i__ ;import
-
- test eax,eax
- jz next
-
- or status_lib,0x2 ; status of code - enable error - import error
-
-next:
- pop ecx
- add ebp,ll_struc_size
- dec ecx
- jnz lp
-
-;-----------------------------------------------
- mov ebp,_start
- mov ecx,((_end-_start)/ll_struc_size)
-
-align 4
-lp2:
- mov eax,status_lib
- test eax,eax
- jz @f
-
- notify_window_run [arrea_xx] ; создаем окно @notify
- or eax,-1
- jmp exit_lp2
-
-@@:
- add ebp,ll_struc_size
- dec ecx
- jnz lp2
-exit_lp2:
-
-}
-
-
-macro copy_path lib_name,dir_path,lib_path,point_dir_name
-{
-pushad ;save all registers
- push dword lib_name
- push dword dir_path
- push dword lib_path
- push dword point_dir_name
- call @copy_path
-
- add esp,16
- ;notify_window_run lib_path ;unblok for test load path
-popad ;restore all registers
-}
-
-; готовим текст для показа через @notify:
-; 1) выделяем память в [arrea_xx]
-; 2) копируем err_message и head в [arrea_xx]
-macro show_error_window err_message, head
-{
-local lp0
-local lp1
-
-pushad
- mcall 68,11
- mcall 68,12,4096
- push eax
- pop dword [arrea_xx]
-
- mov edi,eax
- mov esi,dword head
- cld
-align 4
-lp0:
- movsb
- cmp byte[esi],0
- jne lp0
- mov word[edi],'. '
- add edi,2
- mov esi,dword err_message
-align 4
-lp1:
- movsb
- cmp byte[esi],0
- jne lp1
- mov byte[edi],0
-popad
- or eax,-1 ;увы
-}
-
-; включаем показ сообщения через @notify:
-macro notify_window_run message
-{
-push eax ebx
- mov eax,message ;параметры для командной строки
- mov [run_notify_struct.Flags], eax
- mov eax,70 ;run @notify
- mov ebx,run_notify_struct
- int 0x40
-pop ebx eax
-}
-
-
-;входные параметры:
-;eax - адрес библиотеки в памяти
-;myimport - импортируемые функции
-macro import_boxlib myimport, err_message_import__, head_f_i__
-{
-local import_loop
-local import_find
-local lp
-local import_find_next
-local import_found
-local import_done
-local exit
-local e.exit
-local import_not_found
-; initialize import
-
- mov edx, eax
- mov esi,myimport
-import_loop:
- lodsd ;mov eax,dword[esi] ;add esi,4 ;получаем в eax указатель на имя импортируемой функции
- test eax, eax
- jz import_done ;если указатель на имя функции = 0 (в пользовательской программе)
- push edx ;сохраняем начало библиотечных указателей на функции
-import_find:
- mov ebx, [ds:edx]
- test ebx, ebx
- jz import_not_found ;если указатель на имя функции = 0 (в библиотеке)
- push eax ;eax - указатель на имя экспортируемой функции (в пользовательской программе)
-lp:
- mov cl, [ds:eax]
- cmp cl, [ds:ebx] ;сравниваем имена функций в библиотеке и в пользовательской программе
- jnz import_find_next ;если названия не совпали
- test cl, cl
- jz import_found ;если названия совпали, и уже конец строки (cl=0)
- inc eax
- inc ebx
- jmp lp
-import_find_next:
- pop eax
- add edx, 8 ;8 = 4 байта указатель на название и 4 байта указатель на функцию
- jmp import_find
-import_found:
- pop ebx ;востанавливаем указатель на имя функции (который был в eax) и освобождаем стек
- mov eax, [ds:edx+4] ;eax = указатель на функцию (в библиотеке)
- mov [esi-4], eax ;копируем указатель (на функцию) в программу, -4 ставим потому что esi было сдвинуто командой lodsd
- pop edx ;устанавливаем edx на начало библиотечных функций
-;--- проверяем совпадает ли имя экспортированной функции с 'lib_init'
-if library_fun_memory_alloc eq 0
-else
- cmp dword[ebx],'lib_'
- jne import_loop
- cmp dword[ebx+4],'init'
- jne import_loop
-;--- если имя функции совпало с 'lib_init' попадаем сюда
- ;подключение функций для работы с памятью
- ;push eax
- ;call dll.Init
- pushad
- mov esi,eax
- mov eax,library_fun_memory_alloc
- mov ebx,library_fun_memory_free
- mov ecx,library_fun_memory_realloc
- mov edx,library_fun_dll_load
- call dword esi
- popad
-end if
- jmp import_loop
-import_not_found:
- add esp,4
- show_error_window err_message_import__, head_f_i__ ;show error message /create window
- jmp e.exit
-import_done:
- xor eax,eax ;=0 все загрузилось удачно
-e.exit:
-;---------------------------------------------------------------------
-}
-ll_struc_size = 48;($-library_name__) ; constant size of struct
-struc l_libs library_name__, cur_dir_path__, library_path__, system_path__, err_message_found_lib__, head_f_l__, my_import, err_message_import__, head_f_i__,point_dir_name; struct for loading libraries
-{
-.library_name__ dd library_name__ ; имя загружаемой библиотеки
-.cur_dir_path__ dd cur_dir_path__ ; указатель на буфер в котором содержиться путь от куда была запущена программа
-
-.library_path__ dd library_path__ ; указатель на буфер в котором будет софоримирован путь к библиотеки, если нужно вычислить путь до либы с места запуска программы, обычно нужно, в случаях, если либа расположена в той же папке
-.complete_path dd system_path__ ; путь который четко содержит путь
-
-.err_message_found_lib__ dd err_message_found_lib__
-.head_f_l__ dd head_f_l__
-.my_import dd my_import
-.err_message_import__ dd err_message_import__
-.head_f_i__ dd head_f_i__
-if point_dir_name eq
-.point_dir_name__ dd 0x0
-else
-.point_dir_name__ dd point_dir_name ; имя вложенной дирректории в кторой храняться подгружаемые модули.
-end if
-.adr_load_lib dd 0x0
-.status_lib dd 0x0 ;status of load library
-;
-}
diff --git a/programs/system/cpuid/trunk/macros.inc b/programs/system/cpuid/trunk/macros.inc
deleted file mode 100644
index 9a42c0d50d..0000000000
--- a/programs/system/cpuid/trunk/macros.inc
+++ /dev/null
@@ -1,532 +0,0 @@
-
-
- @^ fix macro comment {
- ^@ fix }
-
- ; -------------------------
- macro library [lname,fname]
- {
- forward
- dd __#lname#_library_table__,__#lname#_library_name__
- common
- dd 0
- forward
- align 4
- __#lname#_library_name__ db fname,0
- }
-
- macro import lname,[name,sname]
- {
- common
- align 4
- __#lname#_library_table__:
- forward
- if used name
- name dd __#name#_import_name__
- end if
- common
- dd 0
- forward
- if used name
- align 4
- __#name#_import_name__ db sname,0
- end if
- }
-
- macro export [name,sname]
- {
- forward
- dd __#name#_export_name__,name
- common
- dd 0
- forward
- align 4
- __#name#_export_name__ db sname,0
- }
- ; -------------------------
-
- macro m2m dest,src {
- push src
- pop dest
- }
-
-
- macro iglobal {
- IGlobals equ IGlobals,
- macro __IGlobalBlock { }
-
- macro uglobal {
- UGlobals equ UGlobals,
- macro __UGlobalBlock { }
-
- endg fix } ; Use endg for ending iglobal and uglobal blocks.
-
-
- macro IncludeIGlobals{
- macro IGlobals dummy,[n] \{ __IGlobalBlock
- purge __IGlobalBlock \}
- match I, IGlobals \{ I \} }
-
- macro IncludeUGlobals{
- macro UGlobals dummy,[n] \{
- \common
- \local begin, size
- begin = $
- virtual at $
- \forward
- __UGlobalBlock
- purge __UGlobalBlock
- \common
- size = $ - begin
- end virtual
- rb size
- \}
- match U, UGlobals \{ U \} }
-
- uglobal
- endg
-
- iglobal
- endg
-
-
- ; new application structure
- macro meos_app_start
- {
- use32
- org 0x0
-
- db 'MENUET01'
- dd 0x01
- dd __start
- dd __end
- dd __memory
- dd __stack
-
- if used __params & ~defined __params
- dd __params
- else
- dd 0x0
- end if
-
- dd 0x0
- }
- MEOS_APP_START fix meos_app_start
-
- macro code
- {
- __start:
- }
- CODE fix code
-
- macro data
- {
- __data:
- IncludeIGlobals
- }
- DATA fix data
-
- macro udata
- {
- if used __params & ~defined __params
- __params:
- db 0
- __end:
- rb 255
- else
- __end:
- end if
- __udata:
- IncludeUGlobals
- }
- UDATA fix udata
-
- macro meos_app_end
- {
- align 32
- rb 2048
- __stack:
- __memory:
- }
- MEOS_APP_END fix meos_app_end
-
-
- ; macro for defining multiline text data
- struc mstr [sstring]
- {
- forward
- local ssize
- virtual at 0
- db sstring
- ssize = $
- end virtual
- dd ssize
- db sstring
- common
- dd -1
- }
-
- ; macro for defining multiline text data
- struc mls [sstring]
- {
- forward
- local ssize
- virtual at 0
- db sstring ; mod
- ssize = $
- end virtual
- db ssize
- db sstring
- common
- db -1 ; mod
- }
-
-
-
- ; strings
- macro sz name,[data] { ; from MFAR [mike.dld]
- common
- if used name
- name db data
- .size = $-name
- end if
- }
-
- macro szZ name,[data] { ; same as sz, but with 0 at the end of line (ASCIIZ string) [dunkaist]
- common
- if used name
- name db data,0
- .size = $-name-1
- end if
- }
- sz0 fix szZ
-
- macro lsz name,[lng,data] { ; from MFAR [mike.dld]
- common
- if used name
- label name
- forward
- if lang eq lng
- db data
- end if
- common
- .size = $-name
- end if
- }
-
- macro szc name,elsz,[data] { ; from MFAR [mike.dld]
- common
- local s,m
- m = 0
- if used name
- label name
- forward
- virtual at 0
- db data
- s = $
- end virtual
- d#elsz s
- if m < s
- m = s
- end if
- db data
- common
- .size = $-name
- .maxl = m
- end if
- }
-
- macro lszc name,elsz,[lng,data] { ; from MFAR [mike.dld]
- common
- local s,m,c
- m = 0
- c = 0
- if used name
- label name
- forward
- if lang eq lng
- virtual at 0
- db data
- s = $
- end virtual
- d#elsz s
- if m < s
- m = s
- end if
- db data
- c = c+1
- end if
- common
- .size = $-name
- .maxl = m
- .count = c
- end if
- }
-
-
- ; easy system call macro
- macro mpack dest, hsrc, lsrc
- {
- if (hsrc eqtype 0) & (lsrc eqtype 0)
- mov dest, (hsrc) shl 16 + lsrc
- else
- if (hsrc eqtype 0) & (~lsrc eqtype 0)
- mov dest, (hsrc) shl 16
- add dest, lsrc
- else
- mov dest, hsrc
- shl dest, 16
- add dest, lsrc
- end if
- end if
- }
-
- macro __mov reg,a,b { ; mike.dld
- if (~a eq)&(~b eq)
- mpack reg,a,b
- else if (~a eq)&(b eq)
- mov reg,a
- end if
- }
-
-
- include 'config.inc'
- ;__CPU_type equ p5
- SYSENTER_VAR equ 0
-
- macro mcall a,b,c,d,e,f { ; mike.dld
- __mov eax,a
- __mov ebx,b
- __mov ecx,c
- __mov edx,d
- __mov esi,e
- __mov edi,f
-
- int 0x40
- }
-
-
- ; -------------------------
- macro header a,[b] {
- common
- use32
- org 0
- db 'MENUET',a
- forward
- if b eq
- dd 0
- else
- dd b
- end if }
- macro section name { align 16
- label name }
- macro func name {
- if ~used name
- display 'FUNC NOT USED: ',`name,13,10
- else
- align 4
- name:
- ;diff16 `name,0,name
- ;pushad
- ;pushfd
- ;dps `name
- ;newline
- ;mcall 5,1
- ;popfd
- ;popad
- }
- macro endf { end if }
-
- macro diff16 title,l1,l2
- {
- local s,d
- s = l2-l1
- display title,': 0x'
- repeat 8
- d = '0' + s shr ((8-%) shl 2) and $0F
- if d > '9'
- d = d + 'A'-'9'-1
- end if
- display d
- end repeat
- display 13,10
- }
-
- macro diff10 title,l1,l2
- {
- local s,d,z,m
- s = l2-l1
- z = 0
- m = 1000000000
- display title,': '
- repeat 10
- d = '0' + s / m
- s = s - (s/m)*m
- m = m / 10
- if d <> '0'
- z = 1
- end if
- if z <> 0
- display d
- end if
- end repeat
- display 13,10
- }
-
- ; optimize the code for size
- __regs fix
-
- macro add arg1,arg2
- {
- if (arg2 eqtype 0)
- if (arg2) = 1
- inc arg1
- else
- add arg1,arg2
- end if
- else
- add arg1,arg2
- end if
- }
-
- macro sub arg1,arg2
- {
- if (arg2 eqtype 0)
- if (arg2) = 1
- dec arg1
- else
- sub arg1,arg2
- end if
- else
- sub arg1,arg2
- end if
- }
-
- macro mov arg1,arg2
- {
- if (arg1 in __regs) & ((arg2 eqtype 0) | (arg2 eqtype '0'))
- if (arg2) = 0
- xor arg1,arg1
- else if (arg2) = 1
- xor arg1,arg1
- inc arg1
- else if (arg2) = -1
- or arg1,-1
- else if (arg2) > -128 & (arg2) < 128
- push arg2
- pop arg1
- else
- mov arg1,arg2
- end if
- else
- mov arg1,arg2
- end if
- }
-
-
- 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'
-
- struct RECT
- left dd ?
- top dd ?
- right dd ?
- bottom dd ?
- ends
-
- struct BOX
- left dd ?
- top dd ?
- width dd ?
- height dd ?
- ends
-
- ; structures used in KolibriOS
- struct process_information
- cpu_usage dd ? ; +0
- window_stack_position dw ? ; +4
- window_stack_value dw ? ; +6
- dw ? ; +8
- process_name rb 12 ; +10
- memory_start dd ? ; +22
- used_memory dd ? ; +26
- PID dd ? ; +30
- box BOX ; +34
- slot_state dw ? ; +50
- dw ? ; +52
- client_box BOX ; +54
- wnd_state db ? ; +70
- rb (1024-71)
- 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
-
- struct FILEDATE
- Second db ?
- Minute db ?
- Hour db ?
- db ?
- Day db ?
- Month db ?
- Year dw ?
- ends
-
- struct FILEINFO
- Attributes dd ?
- IsUnicode db ?
- db 3 dup(?)
- DateCreate FILEDATE
- DateAccess FILEDATE
- DateModify FILEDATE
- Size dq ?
- ends
-
- ; constants
-
- ; events
- EV_IDLE = 0
- EV_TIMER = 0
- EV_REDRAW = 1
- EV_KEY = 2
- EV_BUTTON = 3
- EV_EXIT = 4
- EV_BACKGROUND = 5
- EV_MOUSE = 6
- EV_IPC = 7
- EV_STACK = 8
-
- ; event mask bits for function 40
- EVM_REDRAW = 1b
- EVM_KEY = 10b
- EVM_BUTTON = 100b
- EVM_EXIT = 1000b
- EVM_BACKGROUND = 10000b
- EVM_MOUSE = 100000b
- EVM_IPC = 1000000b
- EVM_STACK = 10000000b
-
-
diff --git a/programs/system/cpuid/trunk/struct.inc b/programs/system/cpuid/trunk/struct.inc
deleted file mode 100644
index 5b60756e32..0000000000
--- a/programs/system/cpuid/trunk/struct.inc
+++ /dev/null
@@ -1,184 +0,0 @@
-
-
-
- ; Macroinstructions for defining data structures
-
- macro struct name
- { fields@struct equ name
- match child parent, name \{ fields@struct equ child,fields@\#parent \}
- sub@struct equ
- struc db [val] \{ \common fields@struct equ fields@struct,.,db, \}
- struc dw [val] \{ \common fields@struct equ fields@struct,.,dw, \}
- struc du [val] \{ \common fields@struct equ fields@struct,.,du, \}
- struc dd [val] \{ \common fields@struct equ fields@struct,.,dd, \}
- struc dp [val] \{ \common fields@struct equ fields@struct,.,dp, \}
- struc dq [val] \{ \common fields@struct equ fields@struct,.,dq, \}
- struc dt [val] \{ \common fields@struct equ fields@struct,.,dt, \}
- struc rb count \{ fields@struct equ fields@struct,.,db,count dup (?) \}
- struc rw count \{ fields@struct equ fields@struct,.,dw,count dup (?) \}
- struc rd count \{ fields@struct equ fields@struct,.,dd,count dup (?) \}
- struc rp count \{ fields@struct equ fields@struct,.,dp,count dup (?) \}
- struc rq count \{ fields@struct equ fields@struct,.,dq,count dup (?) \}
- struc rt count \{ fields@struct equ fields@struct,.,dt,count dup (?) \}
- macro db [val] \{ \common \local anonymous
- fields@struct equ fields@struct,anonymous,db, \}
- macro dw [val] \{ \common \local anonymous
- fields@struct equ fields@struct,anonymous,dw, \}
- macro du [val] \{ \common \local anonymous
- fields@struct equ fields@struct,anonymous,du, \}
- macro dd [val] \{ \common \local anonymous
- fields@struct equ fields@struct,anonymous,dd, \}
- macro dp [val] \{ \common \local anonymous
- fields@struct equ fields@struct,anonymous,dp, \}
- macro dq [val] \{ \common \local anonymous
- fields@struct equ fields@struct,anonymous,dq, \}
- macro dt [val] \{ \common \local anonymous
- fields@struct equ fields@struct,anonymous,dt, \}
- macro rb count \{ \local anonymous
- fields@struct equ fields@struct,anonymous,db,count dup (?) \}
- macro rw count \{ \local anonymous
- fields@struct equ fields@struct,anonymous,dw,count dup (?) \}
- macro rd count \{ \local anonymous
- fields@struct equ fields@struct,anonymous,dd,count dup (?) \}
- macro rp count \{ \local anonymous
- fields@struct equ fields@struct,anonymous,dp,count dup (?) \}
- macro rq count \{ \local anonymous
- fields@struct equ fields@struct,anonymous,dq,count dup (?) \}
- macro rt count \{ \local anonymous
- fields@struct equ fields@struct,anonymous,dt,count dup (?) \}
- macro union \{ fields@struct equ fields@struct,,union,<
- sub@struct equ union \}
- macro struct \{ fields@struct equ fields@struct,,substruct,<
- sub@struct equ substruct \}
- virtual at 0 }
-
- macro ends
- { match , sub@struct \{ restruc db,dw,du,dd,dp,dq,dt
- restruc rb,rw,rd,rp,rq,rt
- purge db,dw,du,dd,dp,dq,dt
- purge rb,rw,rd,rp,rq,rt
- purge union,struct
- match name=,fields,fields@struct \\{ fields@struct equ
- make@struct name,fields
- fields@\\#name equ fields \\}
- end virtual \}
- match any, sub@struct \{ fields@struct equ fields@struct> \}
- restore sub@struct }
-
- macro make@struct name,[field,type,def]
- { common
- if $
- display 'Error: definition of ',`name,' contains illegal instructions.',0Dh,0Ah
- err
- end if
- local define
- define equ name
- forward
- local sub
- match , field \{ make@substruct type,name,sub def
- define equ define,.,sub, \}
- match any, field \{ define equ define,.#field,type, \}
- common
- match fields, define \{ define@struct fields \} }
-
- macro define@struct name,[field,type,def]
- { common
- local list
- list equ
- forward
- if ~ field eq .
- name#field type def
- sizeof.#name#field = $ - name#field
- else
- rb sizeof.#type
- end if
- local value
- match any, list \{ list equ list, \}
- list equ list
- common
- sizeof.#name = $
- restruc name
- match values, list \{
- struc name value \\{
- match any, fields@struct \\\{ fields@struct equ fields@struct,.,name, \\\}
- match , fields@struct \\\{ label .
- forward
- match , value \\\\{ field type def \\\\}
- match any, value \\\\{ field type value
- if ~ field eq .
- rb sizeof.#name#field - ($-field)
- end if \\\\}
- common \\\} \\} \} }
-
- macro enable@substruct
- { macro make@substruct substruct,parent,name,[field,type,def]
- \{ \common
- \local define
- define equ parent,name
- \forward
- \local sub
- match , field \\{ match any, type \\\{ enable@substruct
- make@substruct type,name,sub def
- purge make@substruct
- define equ define,.,sub, \\\} \\}
- match any, field \\{ define equ define,.\#field,type, \\}
- \common
- match fields, define \\{ define@\#substruct fields \\} \} }
-
- enable@substruct
-
- macro define@union parent,name,[field,type,def]
- { common
- virtual at 0
- forward
- if ~ field eq .
- virtual at 0
- parent#field type def
- sizeof.#parent#field = $ - parent#field
- end virtual
- if sizeof.#parent#field > $
- rb sizeof.#parent#field - $
- end if
- else if sizeof.#type > $
- rb sizeof.#type - $
- end if
- common
- sizeof.#name = $
- end virtual
- struc name [value] \{ \common
- label .\#name
- last@union equ
- forward
- match any, last@union \\{ virtual at .\#name
- field type def
- end virtual \\}
- match , last@union \\{ match , value \\\{ field type def \\\}
- match any, value \\\{ field type value \\\} \\}
- last@union equ field
- common rb sizeof.#name - ($ - .\#name) \} }
-
- macro define@substruct parent,name,[field,type,def]
- { common
- virtual at 0
- forward
- if ~ field eq .
- parent#field type def
- sizeof.#parent#field = $ - parent#field
- else
- rb sizeof.#type
- end if
- local value
- common
- sizeof.#name = $
- end virtual
- struc name value \{
- label .\#name
- forward
- match , value \\{ field type def \\}
- match any, value \\{ field type value
- if ~ field eq .
- rb sizeof.#parent#field - ($-field)
- end if \\}
- common \} }
-
-