4 Commits

Author SHA1 Message Date
8d235ce49b Libraries: fixed a bug in lib_init functions (#274)
added verification of the second initialization attempt

Reviewed-on: #274
2025-08-02 18:00:18 +02:00
e423bfb2d1 CtrlDemo: code cleaning, library import optimization (#242)
CtrlDemo, EditboxEx, TooltipDemo:
- code cleaning, library import optimization

Reviewed-on: #242
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Ivan B <dunkaist@noreply.localhost>
Co-authored-by: IgorA <aie85playm@gmail.com>
Co-committed-by: IgorA <aie85playm@gmail.com>
2025-07-14 08:49:18 +02:00
1483ec8462 Libraries (box_lib, buf2d, libimg, tinygl): optimize function import (#231)
Libraries (box_lib, buf2d, libimg, tinygl): optimize function import

Programs updated:
- gears, test3, test_glu1, test_glu2,
- test_array1, textures0, textures1, textures2,
- ctrldemo, editbox_ex, crypt_files, img_transform,
- scrshoot, t_edit, cnc_control, cnc_editor

Reviewed-on: #231
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Ivan B <dunkaist@noreply.localhost>
Co-authored-by: IgorA <aie85playm@gmail.com>
Co-committed-by: IgorA <aie85playm@gmail.com>
2025-07-14 08:20:32 +02:00
e8121c66f8 drivers/usb: add usbother driver and usbdrv.dat config (#253)
This driver loading usb drivers for class and for vendor and product id device.

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #253
Reviewed-by: Ivan B <dunkaist@noreply.localhost>
Reviewed-by: Burer <burer@noreply.localhost>
2025-07-12 03:31:44 +02:00
41 changed files with 1607 additions and 2763 deletions

View File

@@ -69,6 +69,7 @@ img_files = {
{"SETTINGS/SYSTEM.INI", "common/settings/system.ini"}, {"SETTINGS/SYSTEM.INI", "common/settings/system.ini"},
{"SETTINGS/TASKBAR.INI", "common/settings/taskbar.ini"}, {"SETTINGS/TASKBAR.INI", "common/settings/taskbar.ini"},
{"SETTINGS/SYSTEM.ENV", "common/settings/system.env"}, {"SETTINGS/SYSTEM.ENV", "common/settings/system.env"},
{"SETTINGS/USBDRV.DAT",VAR_DRVS .. "/usb/usbother/usbdrv.dat"},
} }
-- For russian build, add russian-only files. -- For russian build, add russian-only files.
@@ -567,6 +568,7 @@ tup.append_table(img_files, {
{"DRIVERS/OHCI.SYS", VAR_DRVS .. "/usb/ohci.sys"}, {"DRIVERS/OHCI.SYS", VAR_DRVS .. "/usb/ohci.sys"},
{"DRIVERS/EHCI.SYS", VAR_DRVS .. "/usb/ehci.sys"}, {"DRIVERS/EHCI.SYS", VAR_DRVS .. "/usb/ehci.sys"},
{"DRIVERS/USBHID.SYS", VAR_DRVS .. "/usb/usbhid/usbhid.sys"}, {"DRIVERS/USBHID.SYS", VAR_DRVS .. "/usb/usbhid/usbhid.sys"},
{"DRIVERS/USBOTHER.SYS",VAR_DRVS .. "/usb/usbother/usbother.sys"},
{"DRIVERS/USBSTOR.SYS", VAR_DRVS .. "/usb/usbstor.sys"}, {"DRIVERS/USBSTOR.SYS", VAR_DRVS .. "/usb/usbstor.sys"},
{"DRIVERS/RDC.SYS", VAR_DRVS .. "/video/rdc.sys"}, {"DRIVERS/RDC.SYS", VAR_DRVS .. "/video/rdc.sys"},
{"DRIVERS/COMMOUSE.SYS", VAR_DRVS .. "/mouse/commouse.sys"}, {"DRIVERS/COMMOUSE.SYS", VAR_DRVS .. "/mouse/commouse.sys"},

View File

@@ -0,0 +1,4 @@
if tup.getconfig("NO_FASM") ~= "" then return end
ROOT = "../../.."
tup.rule("usbother.asm", "fasm %f %o " .. tup.getconfig("PESTRIP_CMD") .. tup.getconfig("KPACK_CMD"), "%B.sys")
tup.rule("usbdrv.asm", "fasm %f %o ", "%B.dat")

View File

@@ -0,0 +1,214 @@
;*****************************************************************************;
; Copyright (C) 2025, Mikhail Frolov aka Doczom . All rights reserved. ;
; Distributed under terms of the 3-Clause BSD License. ;
;*****************************************************************************;
; File of usb drivers
; base = 0
; offset | Size | Name | Description
;=======================|=======|===============|=============================
; base + 0 | 4 | ID_drv_table | offset to dev_ven drv array
; base + 4 | 4 | Class_table | offset to class drv array
;
; n = 0 .. count driver with ID table
; nt = count driver with ID table
; ID_drv_table + 0*(n-1)| 4 | ID_TABLE | offset from base to table VID:PID
; ID_drv_table + 4*(n-1)| 4 | DRV_NAME | offset from base to name of driver
; ID_drv_table + 8*nt | 8 | __ZERO | terminaror of list
; k = 0 .. count driver on class code
; kt = count driver on class code
; Class_table + 0*(k-1) | 1 | LENGTH_CLASS | length of class code 1..3
; Class_table + 1*(k-1) | 1 | USB_CLASS | main usb class code (M)
; Class_table + 2*(k-1) | 1 | USB_SUBCLASS | USB subclass code or zero(V)
; Class_table + 2*(k-1) | 1 | USB_PROTOCOL | USB protocol code or zero(V)
; Class_table + 4*(k-1) | 4 | DRV_NAME | offset from base to name of driver
; Class_table + 8*kt | 8 | __ZERO | terminaror of list
; i = 0 .. count VID:PID
; it = count VID:PID
; ID_TABLE + 0*(i-1) | 2 | VID | Vendor id
; ID_TABLE + 2*(i-1) | 2 | PID | Product id
; ID_TABLE + 4*it | 4 | __ZERO | terminaror of list
macro INIT_USBDRV_FILE {
local ..id_list, ..class_list
format binary as 'dat'
use32
org 0
dd ..id_list
dd ..class_list
macro ID_DRV_TABLE \{
dd 0, 0
\}
macro CLASS_TABLE \{
dd 0, 0
\}
macro ID_TABLE \{
\}
macro DRV_NAME_LIST \{
\}
postpone \{
..id_list: ID_DRV_TABLE
..class_list: CLASS_TABLE
ID_TABLE
DRV_NAME_LIST
\}
}
macro ADD_CLASS drv_name, class, subclass, protocol {
local ..length, ..class_code, ..drv_name
..length = 3
match =X, class \{
err 'Class is mandatory argument'
\}
match =X, protocol \{
..length = 2
\}
match =X, subclass \{
..length = 1
\}
..class_code = ..length or (class shl 8)
if ..length = 3
..class_code = ..class_code or (protocol shl 24)
end if
if ..length = 2
..class_code = ..class_code or (subclass shl 16)
end if
; add in list
macro DRV_NAME_LIST \{
..drv_name: db drv_name, 0
DRV_NAME_LIST
\}
macro CLASS_TABLE \{
dd ..class_code, ..drv_name
CLASS_TABLE
\}
}
macro ADD_ID drv_name, [device_id] {
common
local ..drv_name, ..id_table
macro ID_TABLE \{
ID_TABLE
..id_table:
\}
reverse
local vid_pid
match VID:PID, device_id \{
vid_pid = (PID shl 16) + VID
\}
macro ID_TABLE \{
ID_TABLE
dd vid_pid
\}
common
macro ID_TABLE \{
ID_TABLE
dd 0
\}
macro DRV_NAME_LIST \{
..drv_name: db drv_name, 0
DRV_NAME_LIST
\}
macro ID_DRV_TABLE \{
dd ..id_table, ..drv_name
ID_DRV_TABLE
\}
}
; ADD ID driver Linux
macro ADD_IDL drv_name, [vendor_id, device_id] {
common
local ..drv_name, ..id_table
macro ID_TABLE \{
ID_TABLE
..id_table:
\}
reverse
local vid_pid
vid_pid = (device_id shl 16) + vendor_id
macro ID_TABLE \{
ID_TABLE
dd vid_pid
\}
common
macro ID_TABLE \{
ID_TABLE
dd 0
\}
macro DRV_NAME_LIST \{
..drv_name: db drv_name, 0
DRV_NAME_LIST
\}
macro ID_DRV_TABLE \{
dd ..id_table, ..drv_name
ID_DRV_TABLE
\}
}
INIT_USBDRV_FILE
;ADD_CLASS 'usbcdc-ctrl' , 0x02, X , X
;ADD_CLASS 'usbimage' , 0x06, 1 , 1
;ADD_CLASS 'usbcdc-data' , 0x0A, X , X
;ADD_CLASS 'ccid' , 0x0B, X , X
;ADD_CLASS 'uvd' , 0x0E, X , X
;ADD_CLASS 'uvd_2' , 0x0E, 0x02, X
;ADD_CLASS 'usb_bluetooth' , 0xE0, 0x01, X
;ADD_CLASS 'usb_wifi' , 0xE0, 0x02, X
ADD_ID 'usbftdi',\
0x0403:0 ; Any FTDI device
;https://github.com/avrdudes/avrdude/blob/main/src/usbdevs.h#L51
;ADD_ID 'usbasp',\
; 0x16c0:0x05dc,\ ; VOTI Obdev's free shared PID
; 0x03e8:0xc7b4,\ ; ATMEL (unofficial) USBasp
; 0x16c0:0x092f ; VOTI NIBObee PID
;https://github.com/WCHSoftGroup/ch341par_linux/blob/main/driver/ch34x_pis.c
;ADD_IDL 'ch341par',\
; 0x1a86, 0x5512,\ ; ch341a default
; 0x1a86, 0x55db,\ ; CH347T Mode1 SPI+IIC+UART
; 0x1a86, 0x55dd,\ ; CH347T Mode3 JTAG+UART
; 0x1a86, 0x55de,\ ; CH347F
; 0x1a86, 0x55e7 ; CH339W
;https://github.com/openbsd/src/blob/master/sys/dev/usb/uchcom.c
;https://github.com/WCHSoftGroup/ch341ser_linux/blob/main/driver/ch341.c
;ADD_IDL 'ch341ser',\
; 0x1a86, 0x7523,\ ; ch340 chip
; 0x1a86, 0x7522,\ ; ch340k chip
; 0x1a86, 0x5523,\ ; ch341 chip
; 0x1a86, 0xe523,\ ; ch330 chip
; 0x4348, 0x5523 ; ch340 custom chip

View File

@@ -0,0 +1,523 @@
;*****************************************************************************;
; Copyright (C) 2025, Mikhail Frolov aka Doczom . All rights reserved. ;
; Distributed under terms of the 3-Clause BSD License. ;
; ;
; usbother is a driver for loading USB drivers of a certain class and vendor. ;
; ;
; Version 0.1.1, 24 May 2025 ;
; ;
;*****************************************************************************;
format PE native 0.05
entry START
; const
DRV_VERSION = 0x0101 ; 0.1.1
; struct
include '../../struct.inc'
; USB device descriptor
struct DEVICE_DESCR
bLength db ?
bDescriptorType db ?
bcdUSB dw ?
bDeviceClass db ?
bDeviceSubClass db ?
bDeviceProtocol db ?
bMaxPacketSize0 db ?
idVendor dw ?
idProduct dw ?
bcdDevice dw ?
iManufacturer db ?
iProduct db ?
iSerialNumber db ?
bNumConfigurations db ?
ends
struct INTERFACE_DESCR
bLength db ?
bDescriptorType db ?
bInterfaceNumber db ?
bAlternateSetting db ?
bNumEndpoints db ?
bInterfaceClass db ?
bInterfaceSubClass db ?
bInterfaceProtocol db ?
iInterface db ?
ends
struct SRV
srv_name rb 16 ;ASCIIZ string
magic dd ? ;+0x10 ;'SRV '
size dd ? ;+0x14 ;size of structure SRV
fd dd ? ;+0x18 ;next SRV descriptor
bk dd ? ;+0x1C ;prev SRV descriptor
base dd ? ;+0x20 ;service base address
entry dd ? ;+0x24 ;service START function
srv_proc dd ? ;+0x28 ;user mode service handler
srv_proc_ex dd ? ;+0x2C ;kernel mode service handler
ends
struct USBSRV
srv SRV
usb_func dd ?
ends
struct USBFUNC
strucsize dd ?
add_device dd ?
device_disconnect dd ?
ends
USBDRV_TYPE_NOLOCK = 0 ; usb device not controlled (native driver
; not found and IOCTL not opened device)
USBDRV_TYPE_NATIVE = 1 ; native PE kernel driver for usb
USBDRV_TYPE_IOCTL = 2 ; usb device is controlled by IOCTL service
; (driver or userspace process/threads)
USBDRV_IOCTL_BLOCKED = 4 ; blocked IOCTL interface, device disconnected
struct DRV_CONTEXT
next dd ?
prev dd ?
drv_hand dd ?
drv_pdata dd ?
flags dd ?
config_descr dd ?
interface_descr dd ?
ep rd 64 ; 32 IN + 32 OUT endpoints' pipes
ends
DRV_CONTEXT.ep0 fix (DRV_CONTEXT.ep + 0)
section '.flat' code readable writable executable
include '../../proc32.inc'
include '../../peimport.inc'
include '../../macros.inc'
proc START c, state:dword, cmdline:dword
cmp [state], DRV_ENTRY
jne .end
; init
mov ecx, drv_list_lock
invoke MutexInit
mov ecx, interface_list_lock
invoke MutexInit
; load drv_list
stdcall load_drv_list, default_list
test eax, eax
jnz .end
; reg driver
invoke RegUSBDriver, drv_name, service_proc, usb_functions
ret
.end:
xor eax, eax
ret
endp
proc load_drv_list stdcall, .path:dword
push ebx
mov ecx, drv_list_lock
invoke MutexLock
; load file
invoke LoadFile, [.path]
test eax, eax
push eax
jnz @f
mov dword[esp], -1
jmp .exit
@@:
cmp [drv_list], 0
jz @f
invoke KernelFree, [drv_list]
@@:
mov eax,[esp]
mov [drv_list], eax
mov dword[esp], 0
.exit:
mov ecx, drv_list_lock
invoke MutexUnlock
pop eax
pop ebx
ret
endp
proc service_proc stdcall, .ioctl:dword
push esi
or eax, -1
mov esi, [.ioctl]
mov ecx, [esi + IOCTL.io_code]
cmp ecx, .count_ioctl_codes
jae .fail
jmp dword[.table_subfunction + ecx*4]
.table_subfunction:
dd .get_version
dd .update_list
dd .get_array_dev
dd .get_full_dev_data
dd .open_dev
dd .close_dev
dd .control_transfer
dd .bulk_transfer
dd .interrupt_transfer
;dd .control_transfer_async
;dd .bulk_transfer_async
;dd .interrupt_transfer_async
.count_ioctl_codes = ($ - .table_subfunction)/4
.get_version:
mov eax, [esi + IOCTL.output]
cmp [esi + IOCTL.out_size], 4
jne .fail
mov dword[eax], DRV_VERSION
xor eax, eax
jmp .exit
.update_list:
; update list
mov ecx, [esi + IOCTL.input]
cmp [esi + IOCTL.inp_size], 0
jnz @f
mov ecx, default_list
@@:
stdcall load_drv_list, ecx
.exit:
pop esi
ret
.get_array_dev:
.get_full_dev_data:
.open_dev:
.close_dev:
;
.control_transfer:
.bulk_transfer:
.interrupt_transfer:
.fail:
or eax, -1
jmp .exit
endp
proc AddDevice stdcall, .config_pipe:dword, \
.config_descr:dword,\
.interface:dword
push esi edi
mov eax, sizeof.DRV_CONTEXT
invoke Kmalloc
test eax, eax
jz .err_init
mov esi, eax
mov ecx, interface_list_lock
invoke MutexLock
mov edx, [usb_interface_list] ; next
mov [esi + DRV_CONTEXT.next], edx
mov [esi + DRV_CONTEXT.prev], usb_interface_list
mov [usb_interface_list], esi
mov [edx + DRV_CONTEXT.prev], esi
mov ecx, interface_list_lock
invoke MutexUnlock
and [esi + DRV_CONTEXT.drv_hand], 0
mov [esi + DRV_CONTEXT.flags], USBDRV_TYPE_NOLOCK
; lock mutex
mov ecx, drv_list_lock
invoke MutexLock
; save device context data
mov eax, [.config_pipe]
mov [esi + DRV_CONTEXT.ep0], eax
mov eax, [.config_descr]
mov [esi + DRV_CONTEXT.config_descr], eax
mov eax, [.interface]
mov [esi + DRV_CONTEXT.interface_descr], eax
; get pointer to list
mov edx, [drv_list]
test edx, edx
jz .err_exit
mov edi, edx
add edi, [edx]
; get in ecx VID:PID code
invoke USBGetParam, [.config_pipe], 0
mov ecx, dword[eax + DEVICE_DESCR.idVendor]
.loop_id_drv:
cmp dword[edi], 0
jz .end_loop_id_drv
mov edx, [drv_list]
add edx, [edi] ; ID_TABLE
.loop_id:
cmp dword[edx], 0
jz .end_loop_id
; check id
mov eax, ecx
test word[edx + 2], 0xffff
jne @f
; driver for all devices of VID
and eax, 0xffff
@@:
cmp [edx], eax ; check VID:PID
je @f
add edx, 4
jmp .loop_id
@@: ; found
call .load_drv
jnz .exit
add edx, 4
jmp .loop_id
.end_loop_id:
add edi, 8
jmp .loop_id_drv
.end_loop_id_drv:
push esi
mov esi, str_1
invoke SysMsgBoardStr
pop esi
; get in ecx class code
mov eax, [.interface]
mov ecx, dword[eax + INTERFACE_DESCR.bInterfaceClass] ; 24-31 bits
mov edi, [drv_list]
add edi, [edi + 4]
.loop_class:
cmp dword[edi], 0
jz .end_loop_class
; check class
movzx eax, byte[edi] ; length
and eax, 11b ; protect - max length = 3
lea eax, [eax*8] ; 1 = 8; 2 = 16; 3 = 24
xor edx, edx
bts edx, eax
dec edx ; bitmask
mov eax, [edi]
shr eax, 8
and eax, edx ; good class in list
and edx, ecx ; good class of device
cmp eax, edx
je @f
add edi, 8
jmp .loop_class
@@: ; found
call .load_drv
jnz .exit
add edi, 8
jmp .loop_class
; IN: edi - item list of driver
; esi - DRV_CONTEXT
; OUT: ZF - not found zF - found
; function save drv handl in DRV_CONTEXT.drv_hand
; and pdata in DRV_CONTEXT.drv_pdata
.load_drv:
push ecx edx
; load driver
push esi
mov esi, str_2
invoke SysMsgBoardStr
pop esi
mov ecx, [drv_list]
add ecx, [edi + 4]
pusha
mov esi, ecx
invoke SysMsgBoardStr
mov esi, str_newline
invoke SysMsgBoardStr
popa
invoke GetService, ecx
test eax, eax
jz @f
mov [esi + DRV_CONTEXT.drv_hand], eax
; get function list
mov ecx, [eax + USBSRV.usb_func]
; call AddDevice of driver
stdcall [ecx + USBFUNC.add_device], [.config_pipe], \
[.config_descr],\
[.interface]
mov [esi + DRV_CONTEXT.drv_pdata], eax
test eax, eax
jnz .load_drv.good
push esi
mov esi, str_4
invoke SysMsgBoardStr
pop esi
and [esi + DRV_CONTEXT.drv_hand], 0
@@:
pushf
push esi
mov esi, str_5
invoke SysMsgBoardStr
pop esi
popf
pop edx ecx
retn
.load_drv.good:
pushf
push esi
mov esi, str_3
invoke SysMsgBoardStr
pop esi
popf
mov [esi + DRV_CONTEXT.flags], USBDRV_TYPE_NATIVE
pop edx ecx
retn
.err_exit:
mov eax, esi
invoke Kfree
xor esi, esi
.end_loop_class:
.exit:
; driver not found - Added libusb driver
; unlock mutex
mov ecx, drv_list_lock
invoke MutexUnlock
mov eax, esi
pop edi esi
ret
.err_init:
xor eax, eax
pop edi esi
ret
endp
proc DeviceDisconnected stdcall, .pdata:dword
mov eax, [.pdata]
test [eax + DRV_CONTEXT.flags], USBDRV_TYPE_NATIVE
jz .no_native
cmp [eax + DRV_CONTEXT.drv_hand], 0
jz .free
; call device disconnected
mov ecx, [eax + DRV_CONTEXT.drv_hand]
mov edx, [ecx + USBSRV.usb_func]
cmp dword[edx], USBFUNC.device_disconnect
jbe .free ; TODO: check
stdcall [edx + USBFUNC.device_disconnect], [eax + DRV_CONTEXT.drv_pdata]
.free:
; clear list of DRV_CONTENT
mov ecx, interface_list_lock
invoke MutexLock
mov eax, [.pdata]
mov edx, [eax + DRV_CONTEXT.prev]
mov ecx, [eax + DRV_CONTEXT.next]
mov [edx + DRV_CONTEXT.next], ecx
mov [ecx + DRV_CONTEXT.prev], edx
mov ecx, interface_list_lock
invoke MutexUnlock
; free context
mov eax, [.pdata]
invoke Kfree
ret
.no_native:
test [eax + DRV_CONTEXT.flags], USBDRV_TYPE_IOCTL
jz .free
; set state for block user api and clear struct
or [eax + DRV_CONTEXT.flags], USBDRV_IOCTL_BLOCKED
xor ecx, ecx
;mov [eax + DRV_CONTEXT.drv_hand], ecx
;mov [eax + DRV_CONTEXT.drv_pdata], ecx
mov [eax + DRV_CONTEXT.config_descr], ecx
mov [eax + DRV_CONTEXT.interface_descr], ecx
mov [eax + DRV_CONTEXT.ep0], ecx
; TODO
jmp .free
endp
; data
drv_list_lock MUTEX
drv_list dd ?
interface_list_lock MUTEX
usb_interface_list:
dd usb_interface_list
dd usb_interface_list
usb_functions:
dd .end - usb_functions
dd AddDevice
dd DeviceDisconnected
.end:
drv_name db 'usbother', 0
default_list: db '/sys/settings/usbdrv.dat', 0
str_1: db 'USBOTHER: Driver for this ID not found', 13, 10, 0
str_2: db 'USBOTHER: Check found driver: ', 0, 13, 10, 0
str_3: db 'USBOTHER: Device driver is good', 13, 10, 0
str_4: db 'USBOTHER: Device driver fail prob', 13, 10, 0
str_5: db 'USBOTHER: Device driver load error', 13, 10, 0
str_newline: db 13,10,0
data fixups
end data

View File

@@ -60412,67 +60412,6 @@ dd -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0,\
0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0,\ 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0,\
0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0
@@: @@:
db 'r1x3x1',0
align 4
dd (@f-$)/24 ;points
dd -1.95, -1.95, 0.0, -1.95, 9.95, 3.0, -1.95, 9.95,\
0.0, -1.95, 9.95, 3.0, -1.95, -1.95, 0.0, -1.95, -1.95,\
3.0, -1.95, 9.95, 3.0, 1.95, -1.95, 3.0, 1.95, 9.95,\
3.0, 1.95, -1.95, 3.0, -1.95, 9.95, 3.0, -1.95, -1.95,\
3.0, 1.95, -1.95, 3.0, 1.95, 9.95, 0.0, 1.95, 9.95,\
3.0, 1.95, 9.95, 0.0, 1.95, -1.95, 3.0, 1.95, -1.95,\
0.0, 1.95, -1.95, 0.0, 1.25, -1.25, 0.0, 1.95, 9.95,\
0.0, 1.95, -1.95, 0.0, -1.25, -1.25, 0.0, 1.25, -1.25,\
0.0, -1.25, -1.25, 0.0, -1.95, -1.95, 0.0, -1.25, 9.25,\
0.0, -1.95, -1.95, 0.0, -1.25, -1.25, 0.0, 1.95, -1.95,\
0.0, 1.25, 9.25, 0.0, 1.95, 9.95, 0.0, 1.25, -1.25,\
0.0, -1.25, 9.25, 0.0, 1.95, 9.95, 0.0, 1.25, 9.25,\
0.0, -1.25, 9.25, 0.0, -1.95, 9.95, 0.0, 1.95, 9.95,\
0.0, -1.95, 9.95, 0.0, -1.25, 9.25, 0.0, -1.95, -1.95,\
0.0, -1.95, -1.95, 0.0, 1.95, -1.95, 3.0, -1.95, -1.95,\
3.0, 1.95, -1.95, 3.0, -1.95, -1.95, 0.0, 1.95, -1.95,\
0.0, 1.95, 9.95, 0.0, -1.95, 9.95, 3.0, 1.95, 9.95,\
3.0, -1.95, 9.95, 3.0, 1.95, 9.95, 0.0, -1.95, 9.95,\
0.0, -1.25, -1.25, 1.999, -1.25, 9.25, 0.0, -1.25, 9.25,\
1.999, -1.25, 9.25, 0.0, -1.25, -1.25, 1.999, -1.25, -1.25,\
0.0, -1.25, -1.25, 1.999, 1.25, 9.25, 1.999, 1.25, -1.25,\
1.999, 1.25, 9.25, 1.999, -1.25, -1.25, 1.999, -1.25, 9.25,\
1.999, 1.25, -1.25, 0.0, 1.25, 9.25, 1.999, 1.25, 9.25,\
0.0, 1.25, 9.25, 1.999, 1.25, -1.25, 0.0, 1.25, -1.25,\
1.999, -1.25, 9.25, 0.0, 1.25, 9.25, 1.999, -1.25, 9.25,\
1.999, 1.25, 9.25, 1.999, -1.25, 9.25, 0.0, 1.25, 9.25,\
0.0, 1.25, -1.25, 0.0, -1.25, -1.25, 1.999, 1.25, -1.25,\
1.999, -1.25, -1.25, 1.999, 1.25, -1.25, 0.0, -1.25, -1.25,\
0.0
dd -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0,\
-1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0,\
0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0,\
0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0,\
1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0,\
1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0,\
0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0,\
0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0,\
0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0,\
0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0,\
0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0,\
0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0,\
0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0,\
0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0,\
0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0,\
0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0,\
0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0,\
0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0,\
1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0,\
1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0,\
0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0,\
0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0,\
-1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0,\
-1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0,\
0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0,\
0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0,\
0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0,\
0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0
@@:
db 'f1x2x1',0 db 'f1x2x1',0
align 4 align 4
dd (@f-$)/24 ;points dd (@f-$)/24 ;points
@@ -65937,76 +65876,6 @@ dd 0.32144, -0.94693, 0.0, 0.13052, -0.99145, 0.0, 0.44229, -0.89687, 0.0,\
-0.7071, -0.70711, 0.0, -0.38269, -0.92388, 0.0, -0.70711, -0.70711, 0.0,\ -0.7071, -0.70711, 0.0, -0.38269, -0.92388, 0.0, -0.70711, -0.70711, 0.0,\
-0.38268, -0.92388, 0.0, -0.70711, -0.70711, 0.0, -0.38268, -0.92388, 0.0 -0.38268, -0.92388, 0.0, -0.70711, -0.70711, 0.0, -0.38268, -0.92388, 0.0
@@: @@:
db 'a1x1x2',0
align 4
dd (@f-$)/24 ;points
dd -1.95, -1.95, 0.0, -1.95, 1.95, 3.0, -1.95, 1.95,\
0.0, -1.95, 1.95, 3.0, -1.95, -1.95, 0.0, -1.95, -1.94994,\
6.0, -1.95, -1.94994, 6.0, -1.95, -1.95, 0.0, -1.95, -1.95,\
6.0, -1.95, -1.94994, 6.0, 1.95, -1.95, 6.0, 1.95, -1.94994,\
6.0, 1.95, -1.95, 6.0, -1.95, -1.94994, 6.0, -1.95, -1.95,\
6.0, 1.95, -1.95, 0.0, 1.95, 1.95, 3.0, 1.95, -1.94994,\
6.0, 1.95, -1.95, 0.0, 1.95, -1.94994, 6.0, 1.95, -1.95,\
6.0, 1.95, 1.95, 3.0, 1.95, -1.95, 0.0, 1.95, 1.95,\
0.0, -1.95, -1.95, 0.0, 1.95, -1.95, 6.0, -1.95, -1.95,\
6.0, 1.95, -1.95, 6.0, -1.95, -1.95, 0.0, 1.95, -1.95,\
0.0, 1.95, 1.95, 0.0, -1.95, 1.95, 3.0, 1.95, 1.95,\
3.0, -1.95, 1.95, 3.0, 1.95, 1.95, 0.0, -1.95, 1.95,\
0.0, -1.95, 1.95, 3.0, 1.95, -1.94994, 6.0, 1.95, 1.95,\
3.0, 1.95, -1.94994, 6.0, -1.95, 1.95, 3.0, -1.95, -1.94994,\
6.0, 1.95, -1.95, 0.0, 1.25, -1.25, 0.0, 1.95, 1.95,\
0.0, 1.95, -1.95, 0.0, -1.25, -1.25, 0.0, 1.25, -1.25,\
0.0, -1.25, -1.25, 0.0, -1.95, -1.95, 0.0, -1.25, 1.25,\
0.0, -1.95, -1.95, 0.0, -1.25, -1.25, 0.0, 1.95, -1.95,\
0.0, 1.25, 1.25, 0.0, 1.95, 1.95, 0.0, 1.25, -1.25,\
0.0, -1.25, 1.25, 0.0, 1.95, 1.95, 0.0, 1.25, 1.25,\
0.0, -1.25, 1.25, 0.0, -1.95, 1.95, 0.0, 1.95, 1.95,\
0.0, -1.95, 1.95, 0.0, -1.25, 1.25, 0.0, -1.95, -1.95,\
0.0, -1.25, -1.25, 1.999, -1.25, 1.25, 0.0, -1.25, 1.25,\
1.999, -1.25, 1.25, 0.0, -1.25, -1.25, 1.999, -1.25, -1.25,\
0.0, -1.25, -1.25, 1.999, 1.25, 1.25, 1.999, 1.25, -1.25,\
1.999, 1.25, 1.25, 1.999, -1.25, -1.25, 1.999, -1.25, 1.25,\
1.999, 1.25, -1.25, 0.0, 1.25, 1.25, 1.999, 1.25, 1.25,\
0.0, 1.25, 1.25, 1.999, 1.25, -1.25, 0.0, 1.25, -1.25,\
1.999, -1.25, 1.25, 0.0, 1.25, 1.25, 1.999, -1.25, 1.25,\
1.999, 1.25, 1.25, 1.999, -1.25, 1.25, 0.0, 1.25, 1.25,\
0.0, 1.25, -1.25, 0.0, -1.25, -1.25, 1.999, 1.25, -1.25,\
1.999, -1.25, -1.25, 1.999, 1.25, -1.25, 0.0, -1.25, -1.25,\
0.0
dd -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0,\
0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0,\
0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0,\
0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0,\
1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0,\
1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0,\
0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0,\
0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0,\
0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0,\
0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0,\
0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0,\
0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0,\
0.0, 0.0, 0.60972, 0.79262, 0.0, 0.60972, 0.79262, 0.0, 0.60972,\
0.79262, 0.0, 0.60972, 0.79262, 0.0, 0.60972, 0.79262, 0.0, 0.60972,\
0.79262, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0,\
-1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0,\
-1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0,\
-1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0,\
-1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0,\
-1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0,\
-1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0,\
-1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0,\
-1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0,\
0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0,\
0.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0,\
-1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0,\
-1.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0,\
0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0,\
0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0,\
0.0, 0.0, -1.0, 0.0, 0.0, -1.0, 0.0, 0.0, -1.0,\
0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0,\
0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0,\
0.0
@@:
db 'a1x2x2',0 db 'a1x2x2',0
align 4 align 4
dd (@f-$)/24 ;points dd (@f-$)/24 ;points

View File

@@ -1,170 +0,0 @@
// block name, color, step, coord: x,y,z, rotation: x,y,z
const m1=6740181;
const m2=6650840;
const m3=16777215;
const m4=16757993;
const m5=8454144;
model_list=[
['b1x6x1', m1, 0, 0, -4, 0, 0,0,90],
['b2x6x1', m1, 0, 0, 0, 0, 0,0,90],
['b2x6x1', m1, 0, 0,-12, 0, 0,0,90],
['b2x4x1', m1, 0, 16, 0, 0, 0,0,90],
['b2x4x1', m1, 0, 16,-12, 0, 0,0,90],
['b1x4x1', m1, 0, 16, -4, 0, 0,0,90],
['u1x2x1', m1, 0,-24, -4, 0, 0,0,90],
['u1x2x1', m1, 0,-24, 0, 0, 0,0,90],
['u1x2x1', m1, 0,-24, -8, 0, 0,0,90],
['b2x3x1', m1, 0, 20, -8, 0, 0,0,0],
['t2x3x1', m1, 0, 28, -4, 0, 0,0,0],
['b1x3x1', m2, 0, -8,-16, 0, 0,0,90],
['b1x3x1', m2, 0, -8, 8, 0, 0,0,90],
['b1x3x1', m2, 0, 16, 8, 0, 0,0,90],
['b1x3x1', m2, 0, 16,-16, 0, 0,0,90],
['b1x3x1', m2, 0, 36, -8, 0, 0,0,0],
['b1x2x1', m2, 0, -8, 12, 0, 0,0,90],
['b1x2x1', m2, 0, -8,-20, 0, 0,0,90],
['b1x2x1', m2, 0, 20, 12, 0, 0,0,90],
['b1x2x1', m2, 0, 20,-20, 0, 0,0,90],
['b1x2x1', m2, 0, 16,-24, 0, 0,0,90],
['b1x2x1', m2, 0, 16, 16, 0, 0,0,90],
['b1x2x1', m2, 0,-12, 16, 0, 0,0,90],
['b1x2x1', m2, 0,-12,-24, 0, 0,0,90],
['t2x3x1', m2, 0, 40, -4, 0, 0,0,0],
['a1x2x2', m3, 0,-16,-20, 0, 0,0,90],
['a1x2x2', m3, 0,-16, 12, 0, 0,0,90],
['a1x2x2', m3, 0, 12, 12, 0, 0,0,90],
['a1x2x2', m3, 0, 12,-20, 0, 0,0,90],
['u1x2x2', m1, 1,-28, 0, 3, 0,0,90],
['u1x2x2', m1, 1,-28, -4, 3, 0,0,90],
['u1x2x2', m1, 1,-28, -8, 3, 0,0,90],
['b2x3x1', m1, 1,-24, -8, 3, 0,0,0],
['l2x2x1', m1, 1,-16, 4, 3, 0,0,180],
['l2x2x1', m1, 1,-16,-12, 3, 0,0,90],
['b2x3x1', m1, 1,-12, -8, 3, 0,0,0],
['t2x3x1', m1, 1, -8, 4, 3, 0,0,90],
['t2x3x1', m1, 1,-12, 12, 3, 0,0,180],
['t2x3x1', m1, 1,-12,-20, 3, 0,0,180],
['t2x3x1', m1, 1, -8,-12, 3, 0,0,-90],
['b2x3x1', m1, 1, 0, -8, 3, 0,0,0],
['b2x3x1', m1, 1, 8, -8, 3, 0,0,0],
['b1x2x1', m1, 1, 4, 4, 3, 0,0,90],
['b1x2x1', m1, 1, 4,-12, 3, 0,0,90],
['b1x2x1', m1, 1, 8,-16, 3, 0,0,0],
['b1x2x1', m1, 1, 8, 4, 3, 0,0,0],
['b1x4x1', m1, 1, 12, 4, 3, 0,0,0],
['b1x4x1', m1, 1, 12,-24, 3, 0,0,0],
['b1x2x1', m1, 1, 20, 0, 3, 0,0,90],
['b1x2x1', m1, 1, 20, -8, 3, 0,0,90],
['b1x4x1', m2, 1, 28, -4, 3, 0,0,90],
['b1x3x1', m1, 1, 40, -4, 3, 0,0,90],
['b2x3x1', m1, 2,-28, -8, 6, 0,0,0],
['t2x3x1', m1, 2,-20, -4, 6, 0,0,0],
['b2x3x1', m1, 2, -8, 0, 6, 0,0,90],
['b2x3x1', m1, 2, -8,-12, 6, 0,0,90],
['b2x3x1', m1, 2, 4,-16, 6, 0,0,90],
['b2x3x1', m1, 2, 4, 4, 6, 0,0,90],
['l2x2x1', m1, 2, 8, 0, 6, 0,0,90],
['l2x2x1', m1, 2, 8, -8, 6, 0,0,180],
['t2x3x1', m1, 2, 12, -4, 6, 0,0,0],
['u1x2x2', m1, 3,-32, -4, 9, 0,0,90],
['u1x2x2', m1, 3,-32, -8, 9, 0,0,90],
['u1x2x2', m1, 3,-32, 0, 9, 0,0,90],
['a1x2x3', m1, 3,-28, 0, 9, 0,0,-90],
['a1x2x3', m1, 3,-28, -8, 9, 0,0,-90],
['b1x3x1', m1, 3,-20, -4, 9, 0,0,90],
['b2x3x1', m1, 3,-16, -8, 9, 0,0,0],
['b2x3x1', m1, 3, -8, -8, 9, 0,0,0],
['b2x3x1', m1, 3, 0, 4, 9, 0,0,90],
['b2x3x1', m1, 3, 0,-16, 9, 0,0,90],
['b1x1x1', m1, 3,-12, 4, 9, 0,0,0],
['b1x1x1', m1, 3,-12,-12, 9, 0,0,0],
['l2x2x1', m1, 3, 4, 0, 9, 0,0,90],
['t2x3x1', m1, 3, 8, -4, 9, 0,0,0],
['t2x3x1', m1, 3, 4, -8, 9, 0,0,-180],
['b2x3x1', m1, 4,-32, -8, 12, 0,0,0],
['b1x1x1', m1, 4,-24, -4, 12, 0,0,0],
['b2x3x1', m1, 4,-12, -8, 12, 0,0,0],
['b1x1x1', m1, 4,-12, 4, 12, 0,0,0],
['b1x2x1', m1, 4, -4, 0, 12, 0,0,0],
['b1x3x1', m1, 4, -4,-12, 12, 0,0,0],
['b1x3x1', m1, 4, 4, -8, 12, 0,0,0],
['b1x4x1', m2, 4, 0,-12, 12, 0,0,0],
['b1x1x1', m2, 4, 8, -4, 12, 0,0,0],
['b1x1x1', m2, 4, 0, 4, 12, 0,0,0],
['b1x1x1', m2, 4, -8, 4, 12, 0,0,0],
['b1x1x1', m2, 4,-16, -4, 12, 0,0,0],
['b1x1x1', m2, 4, -8,-12, 12, 0,0,0],
['b2x3x1', m1, 5,-36, -8, 15, 0,0,0],
['t2x3x1', m1, 5,-28, -4, 15, 0,0,0],
['b1x3x1', m1, 5, -4, -8, 15, 0,0,0],
['b1x1x1', m2, 5, 0, -4, 15, 0,0,0],
['b1x3x1', m2, 5, -8, -8, 15, 0,0,0],
['b2x3x1', m1, 6,-36, -8, 18, 0,0,0],
['t2x3x1', m1, 6,-28, -4, 18, 0,0,0],
['l2x2x1', m1, 7,-36, -8, 21, 0,0,-90],
['l2x2x1', m1, 7,-36, 0, 21, 0,0,0],
['b1x4x1', m1, 7,-36, -4, 21, 0,0,-90],
['u1x2x1', m1, 7,-28, 0, 21, 0,0,-90],
['u1x2x1', m1, 7,-28, -8, 21, 0,0,-90],
['b2x3x1', m1, 8,-48, -8, 24, 0,0,0],
['b2x3x1', m1, 8,-40, -8, 24, 0,0,0],
['u1x2x1', m4, 8,-40, -8, 21, 0,0,90],
['u1x2x1', m4, 8,-40, -4, 21, 0,0,90],
['u1x2x1', m4, 8,-40, 0, 21, 0,0,90],
['b2x3x1', m1, 8,-32,-12, 24, 0,0,0],
['b2x2x1', m1, 8,-32, 0, 24, 0,0,0],
['b1x3x1', m1, 8,-36, 4, 24, 0,0,90],
['b1x3x1', m1, 8,-36,-12, 24, 0,0,90],
['b1x1x1', m1, 8,-24, 0, 24, 0,0,0],
['b1x1x1', m1, 8,-24, -8, 24, 0,0,0],
['b1x1x1', m2, 8,-24, -4, 24, 0,0,0],
['u1x2x1', m1, 8,-32, 4, 21, 0,0,-90],
['u1x2x1', m1, 8,-32,-12, 21, 0,0,-90],
['b1x2x1', m2, 9,-24, -4, 27, 0,0,90],
['a1x1x2', m2, 9,-48, 0, 27, 0,0,90],
['a1x1x2', m2, 9,-48, -8, 27, 0,0,90],
['a1x1x2', m1, 9,-48, -4, 27, 0,0,90],
['b2x3x1', m1, 9,-44,-12, 27, 0,0,0],
['b2x3x1', m1, 9,-36, -8, 27, 0,0,0],
['b2x2x1', m1, 9,-44, 0, 27, 0,0,0],
['a1x2x3', m1, 9,-28, 0, 27, 0,0,-90],
['a1x2x3', m1, 9,-28, -8, 27, 0,0,-90],
['b1x1x1', m1, 9,-28,-12, 27, 0,0,0],
['b1x1x1', m1, 9,-28, 4, 27, 0,0,0],
['b1x1x1', m4, 9,-32,-12, 27, 0,0,90],
['b1x1x1', m4, 9,-32, 4, 27, 0,0,90],
['b1x1x1', m5, 9,-36,-12, 27, 0,0,90],
['b1x1x1', m5, 9,-36, 4, 27, 0,0,90],
['b1x1x1', m5, 10,-36, 4, 30, 0,0,90],
['b1x1x1', m5, 10,-36,-12, 30, 0,0,90],
['a1x2x3', m2, 10,-28, -4, 30, 0,0,-90],
['b2x3x1', m1, 10,-44, -8, 30, 0,0,0],
['b1x1x1', m1, 10,-40, 4, 30, 0,0,0],
['b1x1x1', m1, 10,-40,-12, 30, 0,0,0],
['l2x2x1', m1, 10,-32, -8, 30, 0,0,-90],
['l2x2x1', m1, 10,-32, 0, 30, 0,0,0],
['a1x1x2', m1, 10,-44, 4, 30, 0,0,90],
['a1x1x2', m1, 10,-44,-12, 30, 0,0,90],
['a1x1x2', m1, 10,-28,-12, 30, 0,0,-90],
['a1x1x2', m1, 10,-28, 4, 30, 0,0,-90],
['t2x3x1', m1, 11,-40, -4, 33, 0,0,-180],
['t2x3x1', m2, 11,-32, -4, 33, 0,0,0],
['a1x1x2', m1, 11,-40, 4, 33, 0,0,0],
['a1x1x2', m1, 11,-36, 4, 33, 0,0,0],
['a1x1x2', m1, 11,-32, 4, 33, 0,0,0],
['a1x1x2', m1, 11,-28, 0, 33, 0,0,-90],
['a1x1x2', m1, 11,-28, -8, 33, 0,0,-90],
['a1x1x2', m1, 11,-32,-12, 33, 0,0,-180],
['a1x1x2', m1, 11,-36,-12, 33, 0,0,-180],
['a1x1x2', m1, 11,-40,-12, 33, 0,0,-180],
['a1x1x2', m1, 11,-44, -8, 33, 0,0,90],
['a1x1x2', m1, 11,-44, 0, 33, 0,0,90],
['a1x1x2', m2, 12,-44, -4, 36, 0,0,90],
['a1x1x2', m2, 12,-28, -4, 36, 0,0,-90],
['b1x3x1', m1, 12,-32, -4, 36, 0,0,90],
['r1x3x1', m1, 12,-32, 0, 36, 0,0,90],
['r1x3x1', m1, 12,-32, -8, 36, 0,0,90],
['r1x3x1', m2, 13,-32, -4, 39, 0,0,90],
];

View File

@@ -1,200 +0,0 @@
// block name, color, step, coord: x,y,z, rotation: x,y,z
const m1=0x008000;
const m2=0xffffff;
const m3=0xfff5be;
const m4=0x005100;
const m5=0xff0000;
const m6=0x510000;
const m7=0xffaaaa;
model_list=[
['b2x3x1', m1, 0, 32, -4, 9, 0,0,0],
['b1x1x1', m2, 0,-16, 4, 9, 0,0,0],
['b1x1x1', m2, 0,-16, -4, 9, 0,0,0],
['b1x1x1', m2, 0,-16, 12, 9, 0,0,0],
['b1x1x1', m2, 0,-16,-12, 9, 0,0,0],
['b1x3x1', m3, 0, 0, -4, 9, 0,0,0],
['b1x4x1', m3, 0, 16, 0, 9, 0,0,90],
['b1x3x1', m3, 0, 28, 0, 9, 0,0,90],
['b1x3x1', m1, 0, 40, -4, 9, 0,0,0],
['b1x1x1', m3, 0, 44, 0, 9, 0,0,0],
['b2x6x1', m3, 0, 24, 4, 9, 0,0,90],
['b2x6x1', m3, 0, 24, -8, 9, 0,0,90],
['l2x2x1', m1, 0, 16, 12, 9, 0,0,0],
['l2x2x1', m1, 0, 12, 12, 9, 0,0,90],
['l2x2x1', m1, 0, 12,-12, 9, 0,0,180],
['l2x2x1', m1, 0, 16,-12, 9, 0,0,-90],
['b2x3x1', m1, 1,-16, 4, 12, 0,0,0],
['b2x3x1', m1, 1,-16,-12, 12, 0,0,0],
['b1x4x1', m3, 1, 4, 4, 12, 0,0,90],
['b1x2x1', m3, 1, 12, 4, 12, 0,0,90],
['b2x6x1', m3, 1, 12, -4, 12, 0,0,90],
['b2x3x1', m1, 1, 16, -4, 12, 0,0,0],
['b2x2x1', m1, 1, 12, 8, 12, 0,0,0],
['b2x2x1', m1, 1, 12,-12, 12, 0,0,0],
['b1x2x1', m1, 1, 8, -8, 12, 0,0,90],
['b1x2x1', m1, 1, 24, -8, 12, 0,0,90],
['b1x2x1', m1, 1, 24, 8, 12, 0,0,90],
['b1x2x1', m1, 1, 8, 8, 12, 0,0,90],
['b1x3x1', m1, 1, 32, 4, 12, 0,0,90],
['b1x3x1', m1, 1, 32, -4, 12, 0,0,90],
['b1x6x1', m1, 1, 44, 0, 12, 0,0,90],
['b1x2x1', m1, 1, 44, 4, 12, 0,0,90],
['b1x2x1', m1, 1, 44, -4, 12, 0,0,90],
['b2x3x1', m1, 2, -4, 8, 15, 0,0,90],
['b2x3x1', m1, 2, -4,-12, 15, 0,0,90],
['b2x3x1', m1, 2, 8, -8, 15, 0,0,90],
['b2x3x1', m1, 2, 8, 4, 15, 0,0,90],
['b2x3x1', m1, 2, 12, -8, 15, 0,0,0],
['b2x3x1', m1, 2, 20, -8, 15, 0,0,0],
['b2x2x1', m1, 2, 12, 4, 15, 0,0,0],
['b2x2x1', m1, 2, 20, 4, 15, 0,0,0],
['t2x3x1', m1, 2, 28, 0, 15, 0,0,0],
['b2x3x1', m3, 2,-12, -4, 15, 0,0,0],
['b1x1x1', m4, 2, 36, 0, 15, 0,0,0],
['b1x3x1', m5, 2, 44, 0, 15, 0,0,-90],
['b1x2x1', m5, 2, 44, 4, 15, 0,0,-90],
['b1x2x1', m5, 2, 44, -4, 15, 0,0,-90],
['b1x1x1', m5, 2, 48, 0, 12, 0,0,0],
['b2x3x1', m3, 3,-16, -4, 18, 0,0,0],
['b1x1x1', m5, 3, 48, 0, 18, 0,0,0],
['b1x1x1', m4, 3, 28, 0, 18, 0,0,0],
['b1x3x1', m1, 3, -8, 4, 18, 0,0,0],
['b1x3x1', m1, 3, -8,-12, 18, 0,0,0],
['l2x2x1', m1, 3, -4, 8, 18, 0,0,0],
['l2x2x1', m1, 3, -4, -8, 18, 0,0,-90],
['b2x3x1', m1, 3, 12, 4, 18, 0,0,90],
['b2x3x1', m1, 3, 12, -8, 18, 0,0,90],
['b2x2x1', m1, 3, 16, 4, 18, 0,0,0],
['b2x2x1', m1, 3, 16, -8, 18, 0,0,0],
['b1x3x1', m1, 3, 24, -4, 18, 0,0,0],
['a1x1x2', m1, 3, 32, 0, 18, 0,0,90],
['b1x6x1', m1, 4, -8, 0, 21, 0,0,90],
['b1x6x1', m1, 4, -8, 4, 21, 0,0,90],
['b1x6x1', m1, 4, -8, -4, 21, 0,0,90],
['b1x6x1', m1, 4, -4, 8, 21, 0,0,90],
['b1x6x1', m1, 4, -4, -8, 21, 0,0,90],
['b1x2x1', m1, 4, 4, -8, 21, 0,0,90],
['b1x2x1', m1, 4, 4, 8, 21, 0,0,90],
['b2x3x1', m1, 4, 16, 4, 21, 0,0,90],
['b2x3x1', m1, 4, 16, -8, 21, 0,0,90],
['t2x3x1', m1, 4, 20, 0, 21, 0,0,0],
['b1x1x1', m4, 4, 28, 0, 21, 0,0,0],
['b2x3x1', m5, 5,-20, -4, 24, 0,0,0],
['b1x3x1', m5, 5,-12, -4, 24, 0,0,0],
['b1x1x1', m2, 5,-24, 0, 24, 0,0,0],
['c1x1x1', m2, 5,-16, 8, 24, 0,0,0],
['c1x1x1', m2, 5,-24, 8, 24, 0,0,0],
['c1x1x1', m2, 5,-24, -8, 24, 0,0,0],
['c1x1x1', m2, 5,-16, -8, 24, 0,0,0],
['b2x3x1', m1, 5, -8, 0, 24, 0,0,0],
['b2x3x1', m1, 5, 8, 4, 24, 0,0,90],
['b2x3x1', m1, 5, 4, -8, 24, 0,0,0],
['b2x3x1', m1, 5, 0, -8, 24, 0,0,90],
['b2x3x1', m1, 5, 12, -4, 24, 0,0,0],
['b1x1x1', m4, 5, 20, 0, 24, 0,0,0],
['b1x1x1', m1, 5, 24, 0, 24, 0,0,0],
['a1x1x2', m4, 5, 28, 0, 24, 0,0,90],
['b2x3x1', m5, 6,-28, -4, 27, 0,0,0],
['b2x3x1', m5, 6,-20, -4, 27, 0,0,0],
['b2x3x1', m5, 6,-12, -4, 27, 0,0,0],
['b2x3x1', m1, 6, -4, -8, 27, 0,0,0],
['b2x2x1', m1, 6, -4, 4, 27, 0,0,0],
['b1x6x1', m1, 6, -8, 8, 27, 0,0,90],
['b1x6x1', m1, 6, -8, -8, 27, 0,0,90],
['t2x3x1', m1, 6, 4, 0, 27, 0,0,0],
['b1x1x1', m4, 6, 12, 0, 27, 0,0,90],
['b1x1x1', m1, 6, 16, 0, 27, 0,0,0],
['b1x1x1', m4, 6, 20, 0, 27, 0,0,90],
['a1x1x2', m1, 6, 24, 0, 27, 0,0,90],
['b1x3x1', m1, 6,-32, -4, 27, 0,0,0],
['a1x2x2', m1, 7,-28, 4, 30, 0,0,90],
['a1x2x2', m1, 7,-28, 0, 30, 0,0,90],
['a1x2x2', m1, 7,-28, -4, 30, 0,0,90],
['b2x3x1', m1, 7,-24, -4, 30, 0,0,0],
['a1x3x2', m1, 7,-20, 8, 30, 0,0,90],
['a1x3x2', m1, 7,-20, -8, 30, 0,0,90],
['l2x2x1', m1, 7,-16, 4, 30, 0,0,0],
['l2x2x1', m1, 7,-16, -4, 30, 0,0,-90],
['b1x1x1', m6, 7,-12, -8, 30, 0,0,0],
['b1x1x1', m6, 7,-12, 8, 30, 0,0,0],
['b1x2x1', m7, 7, -8, -8, 30, 0,0,0],
['b1x2x1', m7, 7, -8, 4, 30, 0,0,0],
['b1x1x1', m1, 7, -4, 8, 30, 0,0,0],
['b1x1x1', m1, 7, -4, -8, 30, 0,0,0],
['a1x2x3', m1, 7, -4, 4, 30, 0,0,-90],
['a1x2x3', m1, 7, -4, -4, 30, 0,0,-90],
['b1x3x1', m1, 7, 0, 0, 30, 0,0,90],
['a1x1x2', m4, 7, 4, 0, 30, 0,0,90],
['b1x1x1', m1, 7, 8, 0, 30, 0,0,0],
['b1x1x1', m4, 7, 12, 0, 30, 0,0,0],
['b1x1x1', m1, 7, 16, 0, 30, 0,0,0],
['a1x1x2', m4, 7, 20, 0, 30, 0,0,90],
['r1x1x1', m1, 8,-28, 0, 33, 0,0,0],
['a1x3x2', m1, 8,-20, 4, 33, 0,0,90],
['a1x3x2', m1, 8,-20, -4, 33, 0,0,90],
['a1x2x2', m1, 8,-16, -8, 33, 0,0,90],
['a1x2x2', m1, 8,-16, 8, 33, 0,0,90],
['a1x2x2', m1, 8, -4, 4, 33, 0,0,0],
['a1x2x2', m1, 8, -4, -4, 33, 0,0,180],
['l2x2x1', m1, 8, -8, -4, 33, 0,0,180],
['l2x2x1', m1, 8, -8, 4, 33, 0,0,90],
['b1x2x1', m1, 8,-20, 0, 33, 0,0,90],
['b1x3x1', m1, 8,-16, -4, 33, 0,0,0],
['a1x2x3', m1, 8, -4, 0, 33, 0,0,-90],
['b1x1x1', m6, 8,-12, 8, 33, 0,0,0],
['b1x1x1', m6, 8,-12, -8, 33, 0,0,0],
['a1x1x2', m1, 8, 8, 0, 33, 0,0,90],
['a1x1x2', m4, 8, 12, 0, 33, 0,0,-90],
['a1x1x2', m1, 8, 16, 0, 33, 0,0,90],
['a1x1x2', m1, 9,-16, -8, 36, 0,0,180],
['a1x1x2', m1, 9,-12, -8, 36, 0,0,180],
['a1x1x2', m1, 9, -8, -8, 36, 0,0,180],
['a1x1x2', m1, 9,-16, 8, 36, 0,0,0],
['a1x1x2', m1, 9,-12, 8, 36, 0,0,0],
['a1x1x2', m1, 9, -8, 8, 36, 0,0,0],
['a1x1x2', m1, 9, -4, 4, 36, 0,0,-90],
['a1x1x2', m1, 9, -4, -4, 36, 0,0,-90],
['a1x1x2', m1, 9,-20, 4, 36, 0,0,90],
['a1x1x2', m1, 9,-20, -4, 36, 0,0,90],
['a1x2x2', m1, 9,-20, 0, 36, 0,0,90],
['b2x3x1', m1, 9,-16, -4, 36, 0,0,0],
['t2x3x1', m1, 9, -8, 0, 36, 0,0,0],
['a1x1x2', m5, 10,-20, 0, 39, 0,0,90],
['a1x1x2', m5, 10, -4, 0, 39, 0,0,-90],
['b1x3x1', m5, 10, -8, 0, 39, 0,0,90],
['r1x1x1', m1, 10,-16, -4, 39, 0,0,90],
['r1x1x1', m1, 10,-12, -4, 39, 0,0,90],
['r1x1x1', m1, 10, -8, -4, 39, 0,0,90],
['r1x1x1', m1, 10, -8, 4, 39, 0,0,90],
['r1x1x1', m1, 10,-12, 4, 39, 0,0,90],
['r1x1x1', m1, 10,-16, 4, 39, 0,0,90],
['r1x3x1', m5, 11, -8, 0, 42, 0,0,90],
['b1x2x1', m1, 12, -8,-12, 12, 0,0,0],
['b1x2x1', m1, 12, -8, 8, 12, 0,0,0],
['b1x2x1', m3, 12, 0, 8, 12, 0,0,90],
['b1x2x1', m3, 12, 0, -8, 12, 0,0,90],
['b2x2x1', m1, 12, 16, 8, 6, 0,0,0],
['b2x2x1', m1, 12, 16,-12, 6, 0,0,0],
['l2x2x1', m1, 12, 12,-16, 6, 0,0,0],
['l2x2x1', m1, 12, 12, 16, 6, 0,0,-90],
['b1x1x1', m1, 12, 12, 8, 6, 0,0,0],
['b1x1x1', m1, 12, 8, 12, 6, 0,0,0],
['b1x1x1', m1, 12, 12, -8, 6, 0,0,0],
['b1x1x1', m1, 12, 8,-12, 6, 0,0,0],
['b1x3x1', m3, 12, 40, 0, 6, 0,0,90],
['b2x3x1', m1, 13, 4,-16, 3, 0,0,0],
['b2x3x1', m1, 13, 4, 8, 3, 0,0,0],
['l2x2x1', m1, 13, 12, 12, 3, 0,0,-90],
['l2x2x1', m1, 13, 12,-12, 3, 0,0,0],
['b1x2x1', m1, 14, 12,-16, 0, 0,0,90],
['b1x2x1', m1, 14, 12, 16, 0, 0,0,90],
['t2x3x1', m1, 14, 8, 12, 0, 0,0,-90],
['t2x3x1', m1, 14, 8,-12, 0, 0,0,90],
['a1x2x2', m2, 14, 4,-16, 0, 0,0,90],
['a1x2x2', m2, 14, 4, -8, 0, 0,0,90],
['a1x2x2', m2, 14, 4, 8, 0, 0,0,90],
['a1x2x2', m2, 14, 4, 16, 0, 0,0,90],
];

View File

@@ -446,9 +446,9 @@ model_list=[
['f1x2x1', m5, 29,-28, 12, 72, 0,0,90], ['f1x2x1', m5, 29,-28, 12, 72, 0,0,90],
['f1x2x1', m5, 29,-28, 16, 72, 0,0,90], ['f1x2x1', m5, 29,-28, 16, 72, 0,0,90],
['f1x2x1', m5, 29,-30, 12, 75, 0,0,0], ['f1x2x1', m5, 29,-30, 12, 75, 0,0,0],
['c1x1x1', m5, 29,-30, 14, 78, 0,0,0], ['c1x1x1', m5, 29,-30, 12, 78, 0,0,0],
['c1x1x1', m5, 29,-30, 14, 81, 0,0,0], ['c1x1x1', m5, 29,-30, 12, 81, 0,0,0],
['c1x1x1', m7, 29,-30, 14, 84, 0,0,0], ['c1x1x1', m7, 29,-30, 12, 84, 0,0,0],
['b2x3x1', m5, 30, -8, 0, 57, 0,0,0], ['b2x3x1', m5, 30, -8, 0, 57, 0,0,0],
['b2x3x1', m5, 30,-16, 0, 57, 0,0,0], ['b2x3x1', m5, 30,-16, 0, 57, 0,0,0],
['b2x3x1', m5, 30,-24, 0, 57, 0,0,0], ['b2x3x1', m5, 30,-24, 0, 57, 0,0,0],

View File

@@ -1,139 +0,0 @@
// block name, color, step, coord: x,y,z, rotation: x,y,z
const m1=0xffecca;
const m2=0xff0000;
const m3=0;
const m4=0xffffff;
model_list=[
['t2x3x1', m1, 0, 0, -8, 0, 0,0,90],
['t2x3x1', m2, 0, -8, -4, 0, 0,0,-90],
['t2x3x1', m2, 0, 8, -4, 0, 0,0,-90],
['b1x2x1', m2, 0,-20, 0, 0, 0,0,90],
['b1x2x1', m2, 0,-12, 0, 0, 0,0,0],
['b1x2x1', m2, 0, 12, 0, 0, 0,0,0],
['b1x2x1', m2, 0, 24, 0, 0, 0,0,90],
['b2x3x1', m2, 0, -8, 0, 0, 0,0,0],
['b2x3x1', m2, 0, 4, 0, 0, 0,0,0],
['b1x3x1', m2, 0, 0, 0, 0, 0,0,0],
['b2x3x1', m1, 1, 0,-12, 3, 0,0,90],
['b2x2x1', m1, 1, 4,-12, 3, 0,0,0],
['t2x3x1', m2, 1,-12, -4, 3, 0,0,-90],
['t2x3x1', m2, 1, 12, -4, 3, 0,0,-90],
['b2x3x1', m2, 1, 4, -4, 3, 0,0,90],
['b1x4x1', m2, 1, -8, 0, 3, 0,0,90],
['b1x4x1', m2, 1, 20, 0, 3, 0,0,90],
['b1x3x1', m2, 1, -8, 4, 3, 0,0,90],
['b1x3x1', m2, 1, 4, 4, 3, 0,0,90],
['b1x3x1', m2, 1, 16, 4, 3, 0,0,90],
['l2x2x1', m2, 1, -8, 8, 3, 0,0,90],
['l2x2x1', m2, 1, 8, 8, 3, 0,0,0],
['b2x3x1', m2, 1, 4, 8, 3, 0,0,90],
['b2x3x1', m1, 2, 4,-12, 6, 0,0,90],
['b2x3x1', m2, 2, -8, -4, 6, 0,0,0],
['b2x3x1', m2, 2, 4, -4, 6, 0,0,0],
['b2x3x1', m2, 2, -4, 8, 6, 0,0,90],
['b2x4x1', m2, 2, 12, 8, 6, 0,0,90],
['b1x4x1', m2, 2,-16, -4, 6, 0,0,0],
['b1x4x1', m2, 2, 16, -4, 6, 0,0,0],
['b1x3x1', m2, 2, -8, -8, 6, 0,0,90],
['b1x3x1', m2, 2, 16, -8, 6, 0,0,90],
['b1x2x1', m2, 2, -8,-12, 6, 0,0,90],
['b1x2x1', m2, 2, 12,-12, 6, 0,0,90],
['b1x1x1', m2, 3,-28, 4, 3, 0,0,0],
['b1x1x1', m2, 3, 28, 4, 3, 0,0,0],
['t2x3x1', m2, 3,-24, 4, 6, 0,0,-90],
['t2x3x1', m2, 3, 24, 4, 6, 0,0,-90],
['b1x3x1', m2, 3,-16, 0, 9, 0,0,90],
['b1x3x1', m2, 3, 24, 0, 9, 0,0,90],
['l2x2x1', m2, 3,-16, -4, 9, 0,0,-90],
['l2x2x1', m2, 3, 16, -4, 9, 0,0,-180],
['b2x3x1', m2, 3, -4,-12, 9, 0,0,90],
['b2x4x1', m2, 3, 12,-12, 9, 0,0,90],
['b2x2x1', m2, 3,-16, 4, 9, 0,0,0],
['b2x2x1', m2, 3, 12, 4, 9, 0,0,0],
['b1x4x1', m2, 3, 0, 12, 9, 0,0,90],
['b1x3x1', m2, 3, 12, 12, 9, 0,0,90],
['b1x4x1', m2, 4, 28, 4, 12, 0,0,90],
['b1x4x1', m2, 4,-16, 4, 12, 0,0,90],
['l2x2x1', m2, 4,-12, 8, 12, 0,0,90],
['l2x2x1', m2, 4, 12, 8, 12, 0,0,0],
['b2x2x1', m2, 4, -8, 8, 12, 0,0,0],
['b2x3x1', m2, 4, 8, 8, 12, 0,0,90],
['b2x2x1', m2, 4,-16, -4, 12, 0,0,0],
['b2x2x1', m2, 4, 12, -4, 12, 0,0,0],
['b2x3x1', m2, 4, 4,-12, 12, 0,0,90],
['a1x2x2', m2, 4,-12, -8, 12, 0,0,90],
['a1x2x2', m2, 4, -8,-12, 12, 0,0,90],
['a1x2x2', m2, 4, 8,-12, 12, 0,0,-90],
['a1x2x2', m2, 4, 12, -8, 12, 0,0,-90],
['b1x1x1', m2, 5,-28, 4, 15, 0,0,0],
['b1x1x1', m2, 5, 28, 4, 15, 0,0,0],
['b1x2x1', m2, 5,-16, 0, 15, 0,0,0],
['b1x2x1', m2, 5, 16, 0, 15, 0,0,0],
['b1x3x1', m2, 5,-12, 0, 15, 0,0,0],
['b1x3x1', m2, 5, 12, 0, 15, 0,0,0],
['b2x3x1', m2, 5, 0, 8, 15, 0,0,90],
['b2x2x1', m2, 5, 4, 8, 15, 0,0,0],
['b2x2x1', m2, 5, 4, -8, 15, 0,0,0],
['b2x3x1', m2, 5, 0, -8, 15, 0,0,90],
['a1x2x2', m2, 5,-12, -4, 15, 0,0,90],
['a1x2x2', m2, 5, 12, -4, 15, 0,0,-90],
['r1x3x1', m3, 5, 4,-12, 15, 0,0,90],
['r1x1x1', m2, 5, -8,-12, 15, 0,0,0],
['r1x1x1', m2, 5, 8,-12, 15, 0,0,0],
['r1x1x1', m2, 5, 12, -8, 15, 0,0,0],
['r1x1x1', m2, 5,-12, -8, 15, 0,0,0],
['u1x2x1', m2, 6,-20, 0, 15, 0,0,90],
['t2x3x1', m2, 6,-20, 0, 18, 0,0,0],
['u1x2x2', m2, 6,-24, 0, 18, 0,0,90],
['u1x2x1', m2, 6, 20, 0, 15, 0,0,-90],
['t2x3x1', m2, 6, 20, 0, 18, 0,0,180],
['u1x2x2', m2, 6, 24, 0, 18, 0,0,-90],
['b1x2x1', m2, 6,-12, 0, 18, 0,0,0],
['b1x2x1', m2, 6, 12, 0, 18, 0,0,0],
['b2x4x1', m2, 6, -8, -4, 18, 0,0,0],
['b2x4x1', m2, 6, 0, -4, 18, 0,0,0],
['b1x4x1', m2, 6, 8, -4, 18, 0,0,0],
['r1x1x1', m2, 6,-12, -4, 18, 0,0,0],
['r1x1x1', m2, 6, 12, -4, 18, 0,0,0],
['r1x1x1', m3, 6, -8, -8, 18, 0,0,0],
['r1x1x1', m3, 6, 8, -8, 18, 0,0,0],
['b1x3x1', m2, 6, 4, -8, 18, 0,0,90],
['b1x3x1', m2, 7,-16, 4, 21, 0,0,90],
['b1x3x1', m2, 7, 24, 4, 21, 0,0,90],
['b2x3x1', m2, 7, 24, -4, 21, 0,0,90],
['b2x3x1', m2, 7,-16, -4, 21, 0,0,90],
['b1x2x1', m2, 7, -8, -4, 21, 0,0,0],
['b1x2x1', m2, 7, 8, -4, 21, 0,0,0],
['a1x1x2', m2, 8,-24, -4, 24, 0,0,90],
['a1x1x2', m2, 8, 24, -4, 24, 0,0,-90],
['l2x2x1', m2, 8, 24, 0, 24, 0,0,0],
['l2x2x1', m2, 8,-24, 0, 24, 0,0,90],
['b1x3x1', m2, 8,-16, -4, 24, 0,0,0],
['b1x3x1', m2, 8, 16, -4, 24, 0,0,0],
['b1x3x1', m2, 8, -4, 0, 24, 0,0,90],
['b1x3x1', m2, 8, 12, 0, 24, 0,0,90],
['b1x3x1', m4, 8, 12, -4, 24, 0,0,90],
['b1x3x1', m4, 8, -4, -4, 24, 0,0,90],
['a1x1x2', m2, 9,-28, 0, 27, 0,0,90],
['a1x1x2', m2, 9, 28, 0, 27, 0,0,-90],
['l2x2x1', m2, 9, 24, 4, 27, 0,0,180],
['l2x2x1', m2, 9, 20, 0, 27, 0,0,180],
['l2x2x1', m2, 9,-24, 4, 27, 0,0,-90],
['l2x2x1', m2, 9,-20, 0, 27, 0,0,-90],
['b1x3x1', m2, 9, -4, 0, 27, 0,0,90],
['b1x3x1', m2, 9, 12, 0, 27, 0,0,90],
['b1x1x1', m4, 9,-12, -4, 27, 0,0,90],
['b1x1x1', m4, 9, -4, -4, 27, 0,0,90],
['b1x1x1', m4, 9, 4, -4, 27, 0,0,90],
['b1x1x1', m4, 9, 12, -4, 27, 0,0,90],
['c1x1x1', m3, 9, -8, -4, 27, 0,0,90],
['c1x1x1', m3, 9, 8, -4, 27, 0,0,90],
['b1x2x1', m2, 10,-20, 0, 30, 0,0,90],
['b1x2x1', m2, 10, 24, 0, 30, 0,0,90],
['r1x3x1', m2, 10, -4, 0, 30, 0,0,90],
['r1x3x1', m2, 10, 12, 0, 30, 0,0,90],
['r1x3x1', m4, 10, 12, -4, 30, 0,0,90],
['r1x3x1', m4, 10, -4, -4, 30, 0,0,90],
];

View File

@@ -23,12 +23,6 @@ macro matr_cell c_funct,c_param,funct,param, dia
dia dword[esp-4*(c_param*(c_funct-funct)+(1+c_param-param))] dia dword[esp-4*(c_param*(c_funct-funct)+(1+c_param-param))]
} }
;Macro for double type parameters (8 bytes)
macro glpush GLDoubleVar {
push dword[GLDoubleVar+4]
push dword[GLDoubleVar]
}
align 4 align 4
start: start:
load_library name_tgl, library_path, system_path, import_tinygl load_library name_tgl, library_path, system_path, import_tinygl
@@ -901,22 +895,8 @@ endp
;-------------------------------------------------- ;--------------------------------------------------
align 4 include '../import.inc'
import_tinygl:
macro E_LIB n
{
n dd sz_#n
}
include '../export.inc'
dd 0,0
macro E_LIB n
{
sz_#n db `n,0
}
include '../export.inc'
;--------------------------------------------------
system_path db '/sys/lib/' system_path db '/sys/lib/'
name_tgl db 'tinygl.obj',0 name_tgl db 'tinygl.obj',0
;-------------------------------------------------- ;--------------------------------------------------

View File

@@ -1,3 +1,7 @@
; SPDX-License-Identifier: GPL-2.0-only
; Test 3 - example of drawing triangles
; Copyright (C) 2014-2025 KolibriOS team
use32 use32
org 0 org 0
db 'MENUET01' db 'MENUET01'
@@ -8,13 +12,14 @@ include '../../../../../macros.inc'
include '../../../../../KOSfuncs.inc' include '../../../../../KOSfuncs.inc'
include '../../../../../load_lib.mac' include '../../../../../load_lib.mac'
include '../../../../../dll.inc' include '../../../../../dll.inc'
include '../kosgl.inc'
include '../opengl_const.inc' include '../opengl_const.inc'
@use_library @use_library
align 4 align 4
start: start:
load_library name_tgl, library_path, system_path, import_lib_tinygl load_library name_tgl, library_path, system_path, import_tinygl
cmp eax,SF_TERMINATE_PROCESS cmp eax,SF_TERMINATE_PROCESS
jz button.exit jz button.exit
@@ -34,11 +39,11 @@ red_win:
align 16 align 16
still: still:
mcall SF_WAIT_EVENT mcall SF_WAIT_EVENT
cmp al,1 cmp al,EV_REDRAW
jz red_win jz red_win
cmp al,2 cmp al,EV_KEY
jz key jz key
cmp al,3 cmp al,EV_BUTTON
jz button jz button
jmp still jmp still
@@ -99,7 +104,7 @@ caption db 'Test tinygl library, [Esc] - exit, [<-] and [->] - rotate',0
align 4 align 4
draw_3d: draw_3d:
stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;очистим буфер цвета и глубины stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;clear the color and depth buffer
call [glPushMatrix] call [glPushMatrix]
stdcall [glRotatef], [angle_z],0.0,0.0,1.0 stdcall [glRotatef], [angle_z],0.0,0.0,1.0
@@ -136,30 +141,15 @@ angle_z dd 15.0
delt_size dd 3.0 delt_size dd 3.0
;-------------------------------------------------- ;--------------------------------------------------
align 4 include '../import.inc' ;tinygl
import_lib_tinygl:
macro E_LIB n
{
n dd sz_#n
}
include '../export.inc'
dd 0,0
macro E_LIB n
{
sz_#n db `n,0
}
include '../export.inc'
;--------------------------------------------------
system_path db '/sys/lib/' system_path db '/sys/lib/'
name_tgl db 'tinygl.obj',0 name_tgl db 'tinygl.obj',0
;-------------------------------------------------- ;--------------------------------------------------
align 16 align 16
i_end: i_end:
ctx1 rb 28 ;TinyGLContext or KOSGLContext ctx1 TinyGLContext
;sizeof.TinyGLContext = 28
cur_dir_path rb 4096 cur_dir_path rb 4096
library_path rb 4096 library_path rb 4096
rb 1024 rb 1024

View File

@@ -1,3 +1,7 @@
; SPDX-License-Identifier: GPL-2.0-only
; Test array1 - example of using vertex array functions
; Copyright (C) 2014-2025 KolibriOS team
use32 use32
org 0 org 0
db 'MENUET01' db 'MENUET01'
@@ -8,6 +12,7 @@ include '../../../../../macros.inc'
include '../../../../../KOSfuncs.inc' include '../../../../../KOSfuncs.inc'
include '../../../../../load_lib.mac' include '../../../../../load_lib.mac'
include '../../../../../dll.inc' include '../../../../../dll.inc'
include '../kosgl.inc'
include '../opengl_const.inc' include '../opengl_const.inc'
@use_library @use_library
@@ -191,29 +196,15 @@ align 4
Indices rb FACES_COUNT*6 ;3 points per edge, point index 2 bytes Indices rb FACES_COUNT*6 ;3 points per edge, point index 2 bytes
;-------------------------------------------------- ;--------------------------------------------------
align 4 include '../import.inc' ;tinygl
import_tinygl:
macro E_LIB n
{
n dd sz_#n
}
include '../export.inc'
dd 0,0
macro E_LIB n
{
sz_#n db `n,0
}
include '../export.inc'
;--------------------------------------------------
system_path db '/sys/lib/' system_path db '/sys/lib/'
name_tgl db 'tinygl.obj',0 name_tgl db 'tinygl.obj',0
;-------------------------------------------------- ;--------------------------------------------------
align 4 align 4
i_end: i_end:
ctx1 rb 28 ;sizeof.TinyGLContext = 28 ctx1 TinyGLContext
cur_dir_path rb 4096 cur_dir_path rb 4096
library_path rb 4096 library_path rb 4096
rb 4096 rb 4096

View File

@@ -490,127 +490,9 @@ white_light dd 0.8, 0.8, 0.8, 1.0 ; Цвет и интенсивность ос
lmodel_ambient dd 0.2, 0.2, 0.2, 1.0 ; Параметры фонового освещения lmodel_ambient dd 0.2, 0.2, 0.2, 1.0 ; Параметры фонового освещения
;-------------------------------------------------- ;--------------------------------------------------
align 4 include '../import.inc' ;tinygl
import_tinygl: include '../../../buf2d/import.inc'
include '../../../libs-dev/libimg/import.inc'
macro E_LIB n
{
if defined sz_#n
n dd sz_#n
end if
}
include '../export.inc'
dd 0,0
macro E_LIB n
{
if used n
sz_#n db `n,0
end if
}
include '../export.inc'
align 4
import_buf2d:
dd sz_init0
buf2d_create dd sz_buf2d_create
buf2d_create_f_img dd sz_buf2d_create_f_img
buf2d_clear dd sz_buf2d_clear
buf2d_draw dd sz_buf2d_draw
buf2d_delete dd sz_buf2d_delete
buf2d_resize dd sz_buf2d_resize
buf2d_line dd sz_buf2d_line
buf2d_rect_by_size dd sz_buf2d_rect_by_size
buf2d_filled_rect_by_size dd sz_buf2d_filled_rect_by_size
buf2d_circle dd sz_buf2d_circle
buf2d_img_hdiv2 dd sz_buf2d_img_hdiv2
buf2d_img_wdiv2 dd sz_buf2d_img_wdiv2
buf2d_conv_24_to_8 dd sz_buf2d_conv_24_to_8
buf2d_conv_24_to_32 dd sz_buf2d_conv_24_to_32
buf2d_bit_blt dd sz_buf2d_bit_blt
buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp
buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha
buf2d_curve_bezier dd sz_buf2d_curve_bezier
buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix
buf2d_draw_text dd sz_buf2d_draw_text
buf2d_crop_color dd sz_buf2d_crop_color
buf2d_offset_h dd sz_buf2d_offset_h
buf2d_flood_fill dd sz_buf2d_flood_fill
buf2d_set_pixel dd sz_buf2d_set_pixel
dd 0,0
sz_init0 db 'lib_init',0
sz_buf2d_create db 'buf2d_create',0
sz_buf2d_create_f_img db 'buf2d_create_f_img',0
sz_buf2d_clear db 'buf2d_clear',0
sz_buf2d_draw db 'buf2d_draw',0
sz_buf2d_delete db 'buf2d_delete',0
sz_buf2d_resize db 'buf2d_resize',0
sz_buf2d_line db 'buf2d_line',0
sz_buf2d_rect_by_size db 'buf2d_rect_by_size',0
sz_buf2d_filled_rect_by_size db 'buf2d_filled_rect_by_size',0
sz_buf2d_circle db 'buf2d_circle',0
sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0
sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0
sz_buf2d_conv_24_to_8 db 'buf2d_conv_24_to_8',0
sz_buf2d_conv_24_to_32 db 'buf2d_conv_24_to_32',0
sz_buf2d_bit_blt db 'buf2d_bit_blt',0
sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0
sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0
sz_buf2d_curve_bezier db 'buf2d_curve_bezier',0
sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0
sz_buf2d_draw_text db 'buf2d_draw_text',0
sz_buf2d_crop_color db 'buf2d_crop_color',0
sz_buf2d_offset_h db 'buf2d_offset_h',0
sz_buf2d_flood_fill db 'buf2d_flood_fill',0
sz_buf2d_set_pixel db 'buf2d_set_pixel',0
align 4
import_libimg:
dd alib_init1
; img_is_img dd aimg_is_img
; img_info dd aimg_info
; img_from_file dd aimg_from_file
; img_to_file dd aimg_to_file
; img_from_rgb dd aimg_from_rgb
; img_to_rgb dd aimg_to_rgb
img_to_rgb2 dd aimg_to_rgb2
img_decode dd aimg_decode
; img_encode dd aimg_encode
; img_create dd aimg_create
img_destroy dd aimg_destroy
; img_destroy_layer dd aimg_destroy_layer
; img_count dd aimg_count
; img_lock_bits dd aimg_lock_bits
; img_unlock_bits dd aimg_unlock_bits
; img_flip dd aimg_flip
; img_flip_layer dd aimg_flip_layer
; img_rotate dd aimg_rotate
; img_rotate_layer dd aimg_rotate_layer
; img_draw dd aimg_draw
; img_convert dd aimg_convert
dd 0,0
alib_init1 db 'lib_init',0
; aimg_is_img db 'img_is_img',0 ;определяет по данным, может ли библиотека сделать из них изображение
; aimg_info db 'img_info',0
; aimg_from_file db 'img_from_file',0
; aimg_to_file db 'img_to_file',0
; aimg_from_rgb db 'img_from_rgb',0
; aimg_to_rgb db 'img_to_rgb',0 ;преобразование изображения в данные RGB
aimg_to_rgb2 db 'img_to_rgb2',0
aimg_decode db 'img_decode',0 ;автоматически определяет формат графических данных
; aimg_encode db 'img_encode',0
; aimg_create db 'img_create',0
aimg_destroy db 'img_destroy',0
; aimg_destroy_layer db 'img_destroy_layer',0
; aimg_count db 'img_count',0
; aimg_lock_bits db 'img_lock_bits',0
; aimg_unlock_bits db 'img_unlock_bits',0
; aimg_flip db 'img_flip',0
; aimg_flip_layer db 'img_flip_layer',0
; aimg_rotate db 'img_rotate',0
; aimg_rotate_layer db 'img_rotate_layer',0
; aimg_draw db 'img_draw',0
; aimg_convert db 'img_convert',0
;-------------------------------------------------- ;--------------------------------------------------
system_dir_0 db '/sys/lib/' system_dir_0 db '/sys/lib/'

View File

@@ -473,127 +473,9 @@ white_light dd 0.8, 0.8, 0.8, 1.0 ; Цвет и интенсивность ос
lmodel_ambient dd 0.2, 0.2, 0.2, 1.0 ; Параметры фонового освещения lmodel_ambient dd 0.2, 0.2, 0.2, 1.0 ; Параметры фонового освещения
;-------------------------------------------------- ;--------------------------------------------------
align 4 include '../import.inc' ;tinygl
import_tinygl: include '../../../buf2d/import.inc'
include '../../../libs-dev/libimg/import.inc'
macro E_LIB n
{
if defined sz_#n
n dd sz_#n
end if
}
include '../export.inc'
dd 0,0
macro E_LIB n
{
if used n
sz_#n db `n,0
end if
}
include '../export.inc'
align 4
import_buf2d:
dd sz_init0
buf2d_create dd sz_buf2d_create
buf2d_create_f_img dd sz_buf2d_create_f_img
buf2d_clear dd sz_buf2d_clear
buf2d_draw dd sz_buf2d_draw
buf2d_delete dd sz_buf2d_delete
buf2d_resize dd sz_buf2d_resize
buf2d_line dd sz_buf2d_line
buf2d_rect_by_size dd sz_buf2d_rect_by_size
buf2d_filled_rect_by_size dd sz_buf2d_filled_rect_by_size
buf2d_circle dd sz_buf2d_circle
buf2d_img_hdiv2 dd sz_buf2d_img_hdiv2
buf2d_img_wdiv2 dd sz_buf2d_img_wdiv2
buf2d_conv_24_to_8 dd sz_buf2d_conv_24_to_8
buf2d_conv_24_to_32 dd sz_buf2d_conv_24_to_32
buf2d_bit_blt dd sz_buf2d_bit_blt
buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp
buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha
buf2d_curve_bezier dd sz_buf2d_curve_bezier
buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix
buf2d_draw_text dd sz_buf2d_draw_text
buf2d_crop_color dd sz_buf2d_crop_color
buf2d_offset_h dd sz_buf2d_offset_h
buf2d_flood_fill dd sz_buf2d_flood_fill
buf2d_set_pixel dd sz_buf2d_set_pixel
dd 0,0
sz_init0 db 'lib_init',0
sz_buf2d_create db 'buf2d_create',0
sz_buf2d_create_f_img db 'buf2d_create_f_img',0
sz_buf2d_clear db 'buf2d_clear',0
sz_buf2d_draw db 'buf2d_draw',0
sz_buf2d_delete db 'buf2d_delete',0
sz_buf2d_resize db 'buf2d_resize',0
sz_buf2d_line db 'buf2d_line',0
sz_buf2d_rect_by_size db 'buf2d_rect_by_size',0
sz_buf2d_filled_rect_by_size db 'buf2d_filled_rect_by_size',0
sz_buf2d_circle db 'buf2d_circle',0
sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0
sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0
sz_buf2d_conv_24_to_8 db 'buf2d_conv_24_to_8',0
sz_buf2d_conv_24_to_32 db 'buf2d_conv_24_to_32',0
sz_buf2d_bit_blt db 'buf2d_bit_blt',0
sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0
sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0
sz_buf2d_curve_bezier db 'buf2d_curve_bezier',0
sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0
sz_buf2d_draw_text db 'buf2d_draw_text',0
sz_buf2d_crop_color db 'buf2d_crop_color',0
sz_buf2d_offset_h db 'buf2d_offset_h',0
sz_buf2d_flood_fill db 'buf2d_flood_fill',0
sz_buf2d_set_pixel db 'buf2d_set_pixel',0
align 4
import_libimg:
dd alib_init1
; img_is_img dd aimg_is_img
; img_info dd aimg_info
; img_from_file dd aimg_from_file
; img_to_file dd aimg_to_file
; img_from_rgb dd aimg_from_rgb
; img_to_rgb dd aimg_to_rgb
img_to_rgb2 dd aimg_to_rgb2
img_decode dd aimg_decode
; img_encode dd aimg_encode
; img_create dd aimg_create
img_destroy dd aimg_destroy
; img_destroy_layer dd aimg_destroy_layer
; img_count dd aimg_count
; img_lock_bits dd aimg_lock_bits
; img_unlock_bits dd aimg_unlock_bits
; img_flip dd aimg_flip
; img_flip_layer dd aimg_flip_layer
; img_rotate dd aimg_rotate
; img_rotate_layer dd aimg_rotate_layer
; img_draw dd aimg_draw
; img_convert dd aimg_convert
dd 0,0
alib_init1 db 'lib_init',0
; aimg_is_img db 'img_is_img',0 ;определяет по данным, может ли библиотека сделать из них изображение
; aimg_info db 'img_info',0
; aimg_from_file db 'img_from_file',0
; aimg_to_file db 'img_to_file',0
; aimg_from_rgb db 'img_from_rgb',0
; aimg_to_rgb db 'img_to_rgb',0 ;преобразование изображения в данные RGB
aimg_to_rgb2 db 'img_to_rgb2',0
aimg_decode db 'img_decode',0 ;автоматически определяет формат графических данных
; aimg_encode db 'img_encode',0
; aimg_create db 'img_create',0
aimg_destroy db 'img_destroy',0
; aimg_destroy_layer db 'img_destroy_layer',0
; aimg_count db 'img_count',0
; aimg_lock_bits db 'img_lock_bits',0
; aimg_unlock_bits db 'img_unlock_bits',0
; aimg_flip db 'img_flip',0
; aimg_flip_layer db 'img_flip_layer',0
; aimg_rotate db 'img_rotate',0
; aimg_rotate_layer db 'img_rotate_layer',0
; aimg_draw db 'img_draw',0
; aimg_convert db 'img_convert',0
;-------------------------------------------------- ;--------------------------------------------------
system_dir_0 db '/sys/lib/' system_dir_0 db '/sys/lib/'

View File

@@ -433,127 +433,9 @@ white_light dd 0.8, 0.8, 0.8, 1.0 ; Цвет и интенсивность ос
lmodel_ambient dd 0.2, 0.2, 0.2, 1.0 ; Параметры фонового освещения lmodel_ambient dd 0.2, 0.2, 0.2, 1.0 ; Параметры фонового освещения
;-------------------------------------------------- ;--------------------------------------------------
align 4 include '../import.inc' ;tinygl
import_tinygl: include '../../../buf2d/import.inc'
include '../../../libs-dev/libimg/import.inc'
macro E_LIB n
{
if defined sz_#n
n dd sz_#n
end if
}
include '../export.inc'
dd 0,0
macro E_LIB n
{
if used n
sz_#n db `n,0
end if
}
include '../export.inc'
align 4
import_buf2d:
dd sz_init0
buf2d_create dd sz_buf2d_create
buf2d_create_f_img dd sz_buf2d_create_f_img
buf2d_clear dd sz_buf2d_clear
buf2d_draw dd sz_buf2d_draw
buf2d_delete dd sz_buf2d_delete
buf2d_resize dd sz_buf2d_resize
buf2d_line dd sz_buf2d_line
buf2d_rect_by_size dd sz_buf2d_rect_by_size
buf2d_filled_rect_by_size dd sz_buf2d_filled_rect_by_size
buf2d_circle dd sz_buf2d_circle
buf2d_img_hdiv2 dd sz_buf2d_img_hdiv2
buf2d_img_wdiv2 dd sz_buf2d_img_wdiv2
buf2d_conv_24_to_8 dd sz_buf2d_conv_24_to_8
buf2d_conv_24_to_32 dd sz_buf2d_conv_24_to_32
buf2d_bit_blt dd sz_buf2d_bit_blt
buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp
buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha
buf2d_curve_bezier dd sz_buf2d_curve_bezier
buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix
buf2d_draw_text dd sz_buf2d_draw_text
buf2d_crop_color dd sz_buf2d_crop_color
buf2d_offset_h dd sz_buf2d_offset_h
buf2d_flood_fill dd sz_buf2d_flood_fill
buf2d_set_pixel dd sz_buf2d_set_pixel
dd 0,0
sz_init0 db 'lib_init',0
sz_buf2d_create db 'buf2d_create',0
sz_buf2d_create_f_img db 'buf2d_create_f_img',0
sz_buf2d_clear db 'buf2d_clear',0
sz_buf2d_draw db 'buf2d_draw',0
sz_buf2d_delete db 'buf2d_delete',0
sz_buf2d_resize db 'buf2d_resize',0
sz_buf2d_line db 'buf2d_line',0
sz_buf2d_rect_by_size db 'buf2d_rect_by_size',0
sz_buf2d_filled_rect_by_size db 'buf2d_filled_rect_by_size',0
sz_buf2d_circle db 'buf2d_circle',0
sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0
sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0
sz_buf2d_conv_24_to_8 db 'buf2d_conv_24_to_8',0
sz_buf2d_conv_24_to_32 db 'buf2d_conv_24_to_32',0
sz_buf2d_bit_blt db 'buf2d_bit_blt',0
sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0
sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0
sz_buf2d_curve_bezier db 'buf2d_curve_bezier',0
sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0
sz_buf2d_draw_text db 'buf2d_draw_text',0
sz_buf2d_crop_color db 'buf2d_crop_color',0
sz_buf2d_offset_h db 'buf2d_offset_h',0
sz_buf2d_flood_fill db 'buf2d_flood_fill',0
sz_buf2d_set_pixel db 'buf2d_set_pixel',0
align 4
import_libimg:
dd alib_init1
; img_is_img dd aimg_is_img
; img_info dd aimg_info
; img_from_file dd aimg_from_file
; img_to_file dd aimg_to_file
; img_from_rgb dd aimg_from_rgb
; img_to_rgb dd aimg_to_rgb
img_to_rgb2 dd aimg_to_rgb2
img_decode dd aimg_decode
; img_encode dd aimg_encode
; img_create dd aimg_create
img_destroy dd aimg_destroy
; img_destroy_layer dd aimg_destroy_layer
; img_count dd aimg_count
; img_lock_bits dd aimg_lock_bits
; img_unlock_bits dd aimg_unlock_bits
; img_flip dd aimg_flip
; img_flip_layer dd aimg_flip_layer
; img_rotate dd aimg_rotate
; img_rotate_layer dd aimg_rotate_layer
; img_draw dd aimg_draw
; img_convert dd aimg_convert
dd 0,0
alib_init1 db 'lib_init',0
; aimg_is_img db 'img_is_img',0 ;определяет по данным, может ли библиотека сделать из них изображение
; aimg_info db 'img_info',0
; aimg_from_file db 'img_from_file',0
; aimg_to_file db 'img_to_file',0
; aimg_from_rgb db 'img_from_rgb',0
; aimg_to_rgb db 'img_to_rgb',0 ;преобразование изображения в данные RGB
aimg_to_rgb2 db 'img_to_rgb2',0
aimg_decode db 'img_decode',0 ;автоматически определяет формат графических данных
; aimg_encode db 'img_encode',0
; aimg_create db 'img_create',0
aimg_destroy db 'img_destroy',0
; aimg_destroy_layer db 'img_destroy_layer',0
; aimg_count db 'img_count',0
; aimg_lock_bits db 'img_lock_bits',0
; aimg_unlock_bits db 'img_unlock_bits',0
; aimg_flip db 'img_flip',0
; aimg_flip_layer db 'img_flip_layer',0
; aimg_rotate db 'img_rotate',0
; aimg_rotate_layer db 'img_rotate_layer',0
; aimg_draw db 'img_draw',0
; aimg_convert db 'img_convert',0
;-------------------------------------------------- ;--------------------------------------------------
system_dir_0 db '/sys/lib/' system_dir_0 db '/sys/lib/'

View File

@@ -364,127 +364,9 @@ angle_y dd 0.0
delt_size dd 3.0 delt_size dd 3.0
;-------------------------------------------------- ;--------------------------------------------------
align 4 include '../import.inc' ;tinygl
import_tinygl: include '../../../buf2d/import.inc'
include '../../../libs-dev/libimg/import.inc'
macro E_LIB n
{
if defined sz_#n
n dd sz_#n
end if
}
include '../export.inc'
dd 0,0
macro E_LIB n
{
if used n
sz_#n db `n,0
end if
}
include '../export.inc'
align 4
import_buf2d:
dd sz_init0
buf2d_create dd sz_buf2d_create
buf2d_create_f_img dd sz_buf2d_create_f_img
buf2d_clear dd sz_buf2d_clear
buf2d_draw dd sz_buf2d_draw
buf2d_delete dd sz_buf2d_delete
buf2d_resize dd sz_buf2d_resize
buf2d_line dd sz_buf2d_line
buf2d_rect_by_size dd sz_buf2d_rect_by_size
buf2d_filled_rect_by_size dd sz_buf2d_filled_rect_by_size
buf2d_circle dd sz_buf2d_circle
buf2d_img_hdiv2 dd sz_buf2d_img_hdiv2
buf2d_img_wdiv2 dd sz_buf2d_img_wdiv2
buf2d_conv_24_to_8 dd sz_buf2d_conv_24_to_8
buf2d_conv_24_to_32 dd sz_buf2d_conv_24_to_32
buf2d_bit_blt dd sz_buf2d_bit_blt
buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp
buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha
buf2d_curve_bezier dd sz_buf2d_curve_bezier
buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix
buf2d_draw_text dd sz_buf2d_draw_text
buf2d_crop_color dd sz_buf2d_crop_color
buf2d_offset_h dd sz_buf2d_offset_h
buf2d_flood_fill dd sz_buf2d_flood_fill
buf2d_set_pixel dd sz_buf2d_set_pixel
dd 0,0
sz_init0 db 'lib_init',0
sz_buf2d_create db 'buf2d_create',0
sz_buf2d_create_f_img db 'buf2d_create_f_img',0
sz_buf2d_clear db 'buf2d_clear',0
sz_buf2d_draw db 'buf2d_draw',0
sz_buf2d_delete db 'buf2d_delete',0
sz_buf2d_resize db 'buf2d_resize',0
sz_buf2d_line db 'buf2d_line',0
sz_buf2d_rect_by_size db 'buf2d_rect_by_size',0
sz_buf2d_filled_rect_by_size db 'buf2d_filled_rect_by_size',0
sz_buf2d_circle db 'buf2d_circle',0
sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0
sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0
sz_buf2d_conv_24_to_8 db 'buf2d_conv_24_to_8',0
sz_buf2d_conv_24_to_32 db 'buf2d_conv_24_to_32',0
sz_buf2d_bit_blt db 'buf2d_bit_blt',0
sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0
sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0
sz_buf2d_curve_bezier db 'buf2d_curve_bezier',0
sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0
sz_buf2d_draw_text db 'buf2d_draw_text',0
sz_buf2d_crop_color db 'buf2d_crop_color',0
sz_buf2d_offset_h db 'buf2d_offset_h',0
sz_buf2d_flood_fill db 'buf2d_flood_fill',0
sz_buf2d_set_pixel db 'buf2d_set_pixel',0
align 4
import_libimg:
dd alib_init1
; img_is_img dd aimg_is_img
; img_info dd aimg_info
; img_from_file dd aimg_from_file
; img_to_file dd aimg_to_file
; img_from_rgb dd aimg_from_rgb
; img_to_rgb dd aimg_to_rgb
img_to_rgb2 dd aimg_to_rgb2
img_decode dd aimg_decode
; img_encode dd aimg_encode
; img_create dd aimg_create
img_destroy dd aimg_destroy
; img_destroy_layer dd aimg_destroy_layer
; img_count dd aimg_count
; img_lock_bits dd aimg_lock_bits
; img_unlock_bits dd aimg_unlock_bits
; img_flip dd aimg_flip
; img_flip_layer dd aimg_flip_layer
; img_rotate dd aimg_rotate
; img_rotate_layer dd aimg_rotate_layer
; img_draw dd aimg_draw
; img_convert dd aimg_convert
dd 0,0
alib_init1 db 'lib_init',0
; aimg_is_img db 'img_is_img',0 ;определяет по данным, может ли библиотека сделать из них изображение
; aimg_info db 'img_info',0
; aimg_from_file db 'img_from_file',0
; aimg_to_file db 'img_to_file',0
; aimg_from_rgb db 'img_from_rgb',0
; aimg_to_rgb db 'img_to_rgb',0 ;преобразование изображения в данные RGB
aimg_to_rgb2 db 'img_to_rgb2',0
aimg_decode db 'img_decode',0 ;автоматически определяет формат графических данных
; aimg_encode db 'img_encode',0
; aimg_create db 'img_create',0
aimg_destroy db 'img_destroy',0
; aimg_destroy_layer db 'img_destroy_layer',0
; aimg_count db 'img_count',0
; aimg_lock_bits db 'img_lock_bits',0
; aimg_unlock_bits db 'img_unlock_bits',0
; aimg_flip db 'img_flip',0
; aimg_flip_layer db 'img_flip_layer',0
; aimg_rotate db 'img_rotate',0
; aimg_rotate_layer db 'img_rotate_layer',0
; aimg_draw db 'img_draw',0
; aimg_convert db 'img_convert',0
;-------------------------------------------------- ;--------------------------------------------------
system_dir_0 db '/sys/lib/' system_dir_0 db '/sys/lib/'

View File

@@ -315,127 +315,9 @@ angle_y dd 0.0
delt_size dd 3.0 delt_size dd 3.0
;-------------------------------------------------- ;--------------------------------------------------
align 4 include '../import.inc' ;tinygl
import_tinygl: include '../../../buf2d/import.inc'
include '../../../libs-dev/libimg/import.inc'
macro E_LIB n
{
if defined sz_#n
n dd sz_#n
end if
}
include '../export.inc'
dd 0,0
macro E_LIB n
{
if used n
sz_#n db `n,0
end if
}
include '../export.inc'
align 4
import_buf2d:
dd sz_init0
buf2d_create dd sz_buf2d_create
buf2d_create_f_img dd sz_buf2d_create_f_img
buf2d_clear dd sz_buf2d_clear
buf2d_draw dd sz_buf2d_draw
buf2d_delete dd sz_buf2d_delete
buf2d_resize dd sz_buf2d_resize
buf2d_line dd sz_buf2d_line
buf2d_rect_by_size dd sz_buf2d_rect_by_size
buf2d_filled_rect_by_size dd sz_buf2d_filled_rect_by_size
buf2d_circle dd sz_buf2d_circle
buf2d_img_hdiv2 dd sz_buf2d_img_hdiv2
buf2d_img_wdiv2 dd sz_buf2d_img_wdiv2
buf2d_conv_24_to_8 dd sz_buf2d_conv_24_to_8
buf2d_conv_24_to_32 dd sz_buf2d_conv_24_to_32
buf2d_bit_blt dd sz_buf2d_bit_blt
buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp
buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha
buf2d_curve_bezier dd sz_buf2d_curve_bezier
buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix
buf2d_draw_text dd sz_buf2d_draw_text
buf2d_crop_color dd sz_buf2d_crop_color
buf2d_offset_h dd sz_buf2d_offset_h
buf2d_flood_fill dd sz_buf2d_flood_fill
buf2d_set_pixel dd sz_buf2d_set_pixel
dd 0,0
sz_init0 db 'lib_init',0
sz_buf2d_create db 'buf2d_create',0
sz_buf2d_create_f_img db 'buf2d_create_f_img',0
sz_buf2d_clear db 'buf2d_clear',0
sz_buf2d_draw db 'buf2d_draw',0
sz_buf2d_delete db 'buf2d_delete',0
sz_buf2d_resize db 'buf2d_resize',0
sz_buf2d_line db 'buf2d_line',0
sz_buf2d_rect_by_size db 'buf2d_rect_by_size',0
sz_buf2d_filled_rect_by_size db 'buf2d_filled_rect_by_size',0
sz_buf2d_circle db 'buf2d_circle',0
sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0
sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0
sz_buf2d_conv_24_to_8 db 'buf2d_conv_24_to_8',0
sz_buf2d_conv_24_to_32 db 'buf2d_conv_24_to_32',0
sz_buf2d_bit_blt db 'buf2d_bit_blt',0
sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0
sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0
sz_buf2d_curve_bezier db 'buf2d_curve_bezier',0
sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0
sz_buf2d_draw_text db 'buf2d_draw_text',0
sz_buf2d_crop_color db 'buf2d_crop_color',0
sz_buf2d_offset_h db 'buf2d_offset_h',0
sz_buf2d_flood_fill db 'buf2d_flood_fill',0
sz_buf2d_set_pixel db 'buf2d_set_pixel',0
align 4
import_libimg:
dd alib_init1
; img_is_img dd aimg_is_img
; img_info dd aimg_info
; img_from_file dd aimg_from_file
; img_to_file dd aimg_to_file
; img_from_rgb dd aimg_from_rgb
; img_to_rgb dd aimg_to_rgb
img_to_rgb2 dd aimg_to_rgb2
img_decode dd aimg_decode
; img_encode dd aimg_encode
; img_create dd aimg_create
img_destroy dd aimg_destroy
; img_destroy_layer dd aimg_destroy_layer
; img_count dd aimg_count
; img_lock_bits dd aimg_lock_bits
; img_unlock_bits dd aimg_unlock_bits
; img_flip dd aimg_flip
; img_flip_layer dd aimg_flip_layer
; img_rotate dd aimg_rotate
; img_rotate_layer dd aimg_rotate_layer
; img_draw dd aimg_draw
; img_convert dd aimg_convert
dd 0,0
alib_init1 db 'lib_init',0
; aimg_is_img db 'img_is_img',0 ;определяет по данным, может ли библиотека сделать из них изображение
; aimg_info db 'img_info',0
; aimg_from_file db 'img_from_file',0
; aimg_to_file db 'img_to_file',0
; aimg_from_rgb db 'img_from_rgb',0
; aimg_to_rgb db 'img_to_rgb',0 ;преобразование изображения в данные RGB
aimg_to_rgb2 db 'img_to_rgb2',0
aimg_decode db 'img_decode',0 ;автоматически определяет формат графических данных
; aimg_encode db 'img_encode',0
; aimg_create db 'img_create',0
aimg_destroy db 'img_destroy',0
; aimg_destroy_layer db 'img_destroy_layer',0
; aimg_count db 'img_count',0
; aimg_lock_bits db 'img_lock_bits',0
; aimg_unlock_bits db 'img_unlock_bits',0
; aimg_flip db 'img_flip',0
; aimg_flip_layer db 'img_flip_layer',0
; aimg_rotate db 'img_rotate',0
; aimg_rotate_layer db 'img_rotate_layer',0
; aimg_draw db 'img_draw',0
; aimg_convert db 'img_convert',0
;-------------------------------------------------- ;--------------------------------------------------
system_dir_0 db '/sys/lib/' system_dir_0 db '/sys/lib/'

View File

@@ -0,0 +1,18 @@
align 4
import_tinygl:
macro E_LIB n
{
if defined sz_#n
n dd sz_#n
end if
}
include 'export.inc'
dd 0,0
macro E_LIB n
{
if used n
sz_#n db `n,0
end if
}
include 'export.inc'

View File

@@ -49,9 +49,9 @@ include '../../../../../load_lib.mac'
;--- Start of program ---------------------------------------------- ;--- Start of program ----------------------------------------------
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
START: START:
mcall 68,11 mcall SF_SYS_MISC,SSF_HEAP_INIT
mcall 66,1,1 mcall SF_KEYBOARD,SSF_SET_INPUT_MODE,1
mcall 40,0x27 mcall SF_SET_EVENTS_MASK,0x27
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
load_libraries l_libs_start,end_l_libs load_libraries l_libs_start,end_l_libs
@@ -84,7 +84,7 @@ load_libraries l_libs_start,end_l_libs
copy_path icons_file_name,path,library_path,0 copy_path icons_file_name,path,library_path,0
mcall 70,fileinfo mcall SF_FILE,fileinfo
mov [fileinfo+0],dword 0 mov [fileinfo+0],dword 0
@@ -93,14 +93,14 @@ load_libraries l_libs_start,end_l_libs
mov [img_size],ecx mov [img_size],ecx
mcall 68,12 mcall SF_SYS_MISC,SSF_MEM_ALLOC
mov [fileinfo+16],eax mov [fileinfo+16],eax
mov [image_file],eax mov [image_file],eax
mcall 70,fileinfo mcall SF_FILE,fileinfo
xor eax,eax xor eax,eax
mov [return_code],eax mov [return_code],eax
@@ -108,8 +108,7 @@ load_libraries l_libs_start,end_l_libs
push image_file push image_file
call [cnv_png_import.Start] call [cnv_png_import.Start]
mov ecx,[image_file] mcall SF_SYS_MISC,SSF_MEM_FREE,[image_file]
mcall 68,13,
cmp [return_code],dword 0 cmp [return_code],dword 0
jne button.exit jne button.exit
@@ -151,28 +150,28 @@ load_libraries l_libs_start,end_l_libs
red: red:
call draw_window call draw_window
still: still:
mcall 10 mcall SF_WAIT_EVENT
cmp eax,1 cmp eax,EV_REDRAW
je red je red
cmp eax,2 cmp eax,EV_KEY
je key je key
cmp eax,3 cmp eax,EV_BUTTON
je button je button
cmp eax,6 cmp eax,EV_MOUSE
je mouse je mouse
jmp still jmp still
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
key: key:
mcall 2 mcall SF_GET_KEY
jmp still jmp still
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
button: button:
mcall 17 mcall SF_GET_BUTTON
cmp ah,1 cmp ah,1
jne still jne still
.exit: .exit:
mcall -1 mcall SF_TERMINATE_PROCESS
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
mouse: mouse:
;----------------------------------------------- ;-----------------------------------------------
@@ -184,7 +183,7 @@ mouse:
jbe .horizontal jbe .horizontal
; mouse event for Vertical ScrollBar ; mouse event for Vertical ScrollBar
push dword scroll_bar_data_vertical push dword scroll_bar_data_vertical
call [scrollbar_ver_mouse] call [scrollbar_v_mouse]
mov eax,scroll_bar_data_vertical.redraw mov eax,scroll_bar_data_vertical.redraw
xor ebx,ebx xor ebx,ebx
cmp [eax],ebx cmp [eax],ebx
@@ -200,7 +199,7 @@ mouse:
jbe .other jbe .other
; mouse event for Horizontal ScrollBar ; mouse event for Horizontal ScrollBar
push dword scroll_bar_data_horizontal push dword scroll_bar_data_horizontal
call [scrollbar_hor_mouse] call [scrollbar_h_mouse]
mov eax,scroll_bar_data_horizontal.redraw mov eax,scroll_bar_data_horizontal.redraw
xor ebx,ebx xor ebx,ebx
cmp [eax],ebx cmp [eax],ebx
@@ -240,7 +239,7 @@ mouse:
.mouse_dinamic_button: .mouse_dinamic_button:
; mouse event for Dinamic Button 1 ; mouse event for Dinamic Button 1
push dword dinamic_button_data_1 push dword dinamic_button_data_1
call [dinamic_button_mouse] call [dbutton_mouse]
mov eax,dinamic_button_data_1.click mov eax,dinamic_button_data_1.click
cmp [eax],dword 1 cmp [eax],dword 1
jne @f jne @f
@@ -249,7 +248,7 @@ mouse:
@@: @@:
; mouse event for Dinamic Button 2 ; mouse event for Dinamic Button 2
push dword dinamic_button_data_2 push dword dinamic_button_data_2
call [dinamic_button_mouse] call [dbutton_mouse]
mov eax,dinamic_button_data_2.click mov eax,dinamic_button_data_2.click
cmp [eax],dword 1 cmp [eax],dword 1
jne still ;@f jne still ;@f
@@ -283,7 +282,7 @@ analyse_out_menu_2:
jmp still jmp still
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
about: about:
mcall 51,1,thread3,thread mcall SF_CREATE_THREAD,1,thread3,thread
jmp still jmp still
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
OpenDialog_start_0: OpenDialog_start_0:
@@ -320,9 +319,9 @@ OpenDialog_start:
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
draw_window: draw_window:
mcall 12,1 mcall SF_REDRAW,SSF_BEGIN_DRAW
mcall 0,<0,400>,<0,400>,0x03AABBCC,0x805080D0,0x005080D0 mcall SF_CREATE_WINDOW,<0,400>,<0,400>,0x03AABBCC,0x805080D0,0x005080D0
mcall 71,1,header_1 mcall SF_SET_CAPTION,1,header_1
;--------------------------------------------- ;---------------------------------------------
; draw for Menu 1 ; draw for Menu 1
push dword menu_data_1 push dword menu_data_1
@@ -333,15 +332,15 @@ draw_window:
;--------------------------------------------- ;---------------------------------------------
; draw for Dinamic Button 1 ; draw for Dinamic Button 1
push dword dinamic_button_data_1 push dword dinamic_button_data_1
call [dinamic_button_draw] call [dbutton_draw]
; draw for Dinamic Button 2 ; draw for Dinamic Button 2
push dword dinamic_button_data_2 push dword dinamic_button_data_2
call [dinamic_button_draw] call [dbutton_draw]
;--------------------------------------------- ;---------------------------------------------
mcall 13,<170,200>,<25,15>,0xffffb0 mcall SF_DRAW_RECT,<170,200>,<25,15>,0xffffb0
; mov bx,28 ; mov bx,28
; add ebx,2 shl 16 ; add ebx,2 shl 16
; mcall 4,,0xC0000000,text_work_area,,0xffffb0 ; mcall SF_DRAW_TEXT,,0xC0000000,text_work_area,,0xffffb0
; draw for PathShow ; draw for PathShow
push dword PathShow_data_1 push dword PathShow_data_1
call [PathShow_draw] call [PathShow_draw]
@@ -357,21 +356,21 @@ draw_window:
; draw for Vertical ScrollBar ; draw for Vertical ScrollBar
push dword scroll_bar_data_vertical push dword scroll_bar_data_vertical
call [scrollbar_ver_draw] call [scrollbar_v_draw]
; draw for Horizontal ScrollBar ; draw for Horizontal ScrollBar
push dword scroll_bar_data_horizontal push dword scroll_bar_data_horizontal
call [scrollbar_hor_draw] call [scrollbar_h_draw]
; reset all_redraw flag ; reset all_redraw flag
xor eax,eax xor eax,eax
mov [scroll_bar_data_vertical.all_redraw],eax mov [scroll_bar_data_vertical.all_redraw],eax
mov [scroll_bar_data_horizontal.all_redraw],eax mov [scroll_bar_data_horizontal.all_redraw],eax
;--------------------------------------------- ;---------------------------------------------
call draw_cube call draw_cube
mcall 12,2 mcall SF_REDRAW,SSF_END_DRAW
ret ret
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
draw_cube: draw_cube:
mcall 13,<30,301>,<50,301>,0xafafaf mcall SF_DRAW_RECT,<30,301>,<50,301>,0xafafaf
mov ecx,[scroll_bar_data_vertical.position] mov ecx,[scroll_bar_data_vertical.position]
add ecx,50 add ecx,50
shl ecx,16 shl ecx,16
@@ -380,7 +379,7 @@ draw_cube:
add ebx,30 add ebx,30
shl ebx,16 shl ebx,16
mov bx,30 mov bx,30
mcall 13,,,0x0 mcall SF_DRAW_RECT,,,0x0
ret ret
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
include 'data.inc' include 'data.inc'

View File

@@ -30,7 +30,7 @@ system_dir_ProcLib db '/sys/lib/proc_lib.obj',0
align 4 align 4
l_libs_start: l_libs_start:
library01 l_libs system_dir_Boxlib+9, file_name, system_dir_Boxlib,\ library01 l_libs system_dir_Boxlib+9, file_name, system_dir_Boxlib,\
Box_lib_import, plugins_directory import_box_lib, plugins_directory
library02 l_libs system_dir_CnvPNG+9, file_name, system_dir_CnvPNG,\ library02 l_libs system_dir_CnvPNG+9, file_name, system_dir_CnvPNG,\
cnv_png_import, plugins_directory cnv_png_import, plugins_directory
@@ -126,91 +126,7 @@ deflate_unpack dd 0
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
align 4 include '../../import.inc' ;import_box_lib
Box_lib_import:
;init_lib dd a_init
;version_lib dd a_version
;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
scrollbar_ver_draw dd aScrollbar_ver_draw
scrollbar_ver_mouse dd aScrollbar_ver_mouse
scrollbar_hor_draw dd aScrollbar_hor_draw
scrollbar_hor_mouse dd aScrollbar_hor_mouse
;version_scrollbar dd aVersion_scrollbar
dinamic_button_draw dd aDbutton_draw
dinamic_button_mouse dd aDbutton_mouse
;version_dbutton dd aVersion_dbutton
menu_bar_draw dd aMenu_bar_draw
menu_bar_mouse dd aMenu_bar_mouse
menu_bar_activate dd aMenu_bar_activate
;version_menu_bar dd aVersion_menu_bar
;FileBrowser_draw dd aFileBrowser_draw
;FileBrowser_mouse dd aFileBrowser_mouse
;FileBrowser_key dd aFileBrowser_key
;Version_FileBrowser dd aVersion_FileBrowser
PathShow_prepare dd sz_PathShow_prepare
PathShow_draw dd sz_PathShow_draw
;Version_path_show dd szVersion_path_show
dd 0,0
;a_init db 'lib_init',0
;a_version db 'version',0
;aEdit_box_draw db 'edit_box_draw',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
aScrollbar_ver_draw db 'scrollbar_v_draw',0
aScrollbar_ver_mouse db 'scrollbar_v_mouse',0
aScrollbar_hor_draw db 'scrollbar_h_draw',0
aScrollbar_hor_mouse db 'scrollbar_h_mouse',0
;aVersion_scrollbar db 'version_scrollbar',0
aDbutton_draw db 'dbutton_draw',0
aDbutton_mouse db 'dbutton_mouse',0
;aVersion_dbutton db 'version_dbutton',0
aMenu_bar_draw db 'menu_bar_draw',0
aMenu_bar_mouse db 'menu_bar_mouse',0
aMenu_bar_activate db 'menu_bar_activate',0
;aVersion_menu_bar db 'version_menu_bar',0
;aFileBrowser_draw db 'FileBrowser_draw',0
;aFileBrowser_mouse db 'FileBrowser_mouse',0
;aFileBrowser_key db 'FileBrowser_key',0
;aVersion_FileBrowser db 'version_FileBrowser',0
sz_PathShow_prepare db 'PathShow_prepare',0
sz_PathShow_draw db 'PathShow_draw',0
;szVersion_path_show db 'version_PathShow',0
;---------------------------------------------------------------------
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
align 4 align 4

View File

@@ -18,7 +18,7 @@ include '../../../../../load_lib.mac'
@use_library ;use load lib macros @use_library ;use load lib macros
start: start:
;universal load library/librarys ;universal load library/librarys
sys_load_library library_name, library_path, system_path, myimport sys_load_library library_name, library_path, system_path, import_box_lib
;if return code =-1 then exit, else nornary work ;if return code =-1 then exit, else nornary work
cmp eax,-1 cmp eax,-1
jz exit jz exit
@@ -116,37 +116,7 @@ library_name db 'box_lib.obj',0
;library_name db 'box_lib.obj',0 ;library_name db 'box_lib.obj',0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
myimport: include '../../import.inc' ;creating a function import table
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
init_checkbox dd aInit_checkbox
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,0
aEdit_box_draw db 'edit_box_draw',0
aEdit_box_key db 'edit_box_key',0
aEdit_box_mouse db 'edit_box_mouse',0
aVersion_ed db 'version_ed',0
aInit_checkbox db 'init_checkbox2',0
aCheck_box_draw db 'check_box_draw2',0
aCheck_box_mouse db 'check_box_mouse2',0
aVersion_ch db 'version_ch2',0
aOption_box_draw db 'option_box_draw',0
aOption_box_mouse db 'option_box_mouse',0
aVersion_op db 'version_op',0
check1 check_box2 (10 shl 16 + 12),(45 shl 16 + 12),5,0x80AABBCC,0,0,check_text1,ch_flag_en check1 check_box2 (10 shl 16 + 12),(45 shl 16 + 12),5,0x80AABBCC,0,0,check_text1,ch_flag_en

View File

@@ -34,14 +34,14 @@ START:
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
;--- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ---------------------------------------- ;--- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ----------------------------------------
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
mcall 68, 11 mcall SF_SYS_MISC, SSF_HEAP_INIT
mcall 40, $C0000027 ; <20><>᪠ ᮡ<>⨩ - <20><><EFBFBD><EFBFBD> ⮫쪮 <20> <20><><EFBFBD><E2A8A2><EFBFBD> <20><><EFBFBD><EFBFBD> mcall SF_SET_EVENTS_MASK, $C0000027 ; <20><>᪠ ᮡ<>⨩ - <20><><EFBFBD><EFBFBD> ⮫쪮 <20> <20><><EFBFBD><E2A8A2><EFBFBD> <20><><EFBFBD><EFBFBD>
sys_load_library lib_name, lib_path, sys_path, myimport sys_load_library lib_name, lib_path, sys_path, import_box_lib
test eax,eax test eax,eax
jz @f jz @f
mcall -1 ; alarm exit mcall SF_TERMINATE_PROCESS
@@: @@:
@@ -56,16 +56,16 @@ call draw_window ;
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
still: still:
mcall 23, 5 ; <20><EFBFBD><E3ADAA><EFBFBD> 23 - <20><><EFBFBD><EFBFBD><EFBFBD><><E1AEA1><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> 祬 0.05<EFBFBD> mcall SF_WAIT_EVENT_TIMEOUT, 5 ; <20><><EFBFBD><EFBFBD><EFBFBD><><E1AEA1><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> 祬 0.05<EFBFBD>
test eax, eax ; <20><><EFBFBD><>⨩ - <20><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E1AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E2A8AF> <20><><><E2A0A9><EFBFBD><EFBFBD> test eax, eax ; <20><><EFBFBD><>⨩ - <20><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E1AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E2A8AF> <20><><><E2A0A9><EFBFBD><EFBFBD>
je yield je yield
cmp eax,1 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1AEA2><EFBFBD> <20><><EFBFBD><EFBFBD> ? cmp eax,EV_REDRAW
je red ; <20><20><> - <20><> <20><><EFBFBD><EFBFBD><EFBFBD> red je red ; <20><20><> - <20><> <20><><EFBFBD><EFBFBD><EFBFBD> red
cmp eax,2 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ? cmp eax,EV_KEY
je key ; <20><20><> - <20><> key je key ; <20><20><> - <20><> key
cmp eax,3 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ? cmp eax,EV_BUTTON
je button ; <20><20><> - <20><> button je button ; <20><20><> - <20><> button
cmp eax,6 ; ᮡ<><20><><EFBFBD><EFBFBD> cmp eax,EV_MOUSE
je mouse ; <20><20><> - <20><> mouse je mouse ; <20><20><> - <20><> mouse
jmp still ; <20><20><><EFBFBD><>⨥ - <20> <20><><EFBFBD><><E6A8AA> jmp still ; <20><20><><EFBFBD><>⨥ - <20> <20><><EFBFBD><><E6A8AA>
@@ -81,21 +81,21 @@ invoke tooltip_mouse, redbox_tt
jmp still ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><><E6A8AA> jmp still ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><><E6A8AA>
key: ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> key: ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mcall 2 ; <20><EFBFBD><E3ADAA><EFBFBD> 2 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><><E1A8AC><EFBFBD><EFBFBD> (<28> ah) mcall SF_GET_KEY ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><><E1A8AC><EFBFBD><EFBFBD> (<28> ah)
jmp still ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><><E6A8AA> jmp still ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><><E6A8AA>
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
button: button:
mcall 17 ; 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> mcall SF_GET_BUTTON ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4A8AA><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cmp ah, 1 ; <20><20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>஬ 1, cmp ah, 1 ; <20><20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>஬ 1,
jne still ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> jne still ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
pexit: pexit:
invoke tooltip_delete, redbox_tt ; <20><EFBFBD><E1A2AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> invoke tooltip_delete, redbox_tt ; <20><EFBFBD><E1A2AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mcall -1 ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> mcall SF_TERMINATE_PROCESS
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
@@ -104,20 +104,20 @@ mcall -1 ;
draw_window: draw_window:
mcall 12, 1 ; <20><EFBFBD><E3ADAA><EFBFBD> 12: ᮮ<><E1AEAE><EFBFBD><EFBFBD><EFBFBD> <20><> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E1AEA2> mcall SF_REDRAW, SSF_BEGIN_DRAW
mcall 48, 3, sc,sizeof.system_colors mcall SF_STYLE_SETTINGS, SSF_GET_COLORS, sc, sizeof.system_colors
mov edx, [sc.work] ; 梥<><> mov edx, [sc.work] ; 梥<><>
or edx, 0x33000000 ; <20> <20><><EFBFBD><EFBFBD> 3 or edx, 0x33000000 ; <20> <20><><EFBFBD><EFBFBD> 3
mcall 0, <200,300>, <200,150>, , ,title mcall SF_CREATE_WINDOW, <200,300>, <200,150>, , ,title
; <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A8AA> ; <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A8AA>
mcall 13, <60,50>, <50,50>, $FF0000 mcall SF_DRAW_RECT, <60,50>, <50,50>, $FF0000
mcall 13, <140,50>, <50,50>, $FF mcall SF_DRAW_RECT, <140,50>, <50,50>, $FF
mcall 12, 2 ; <20><EFBFBD><E3ADAA><EFBFBD> 12.2, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E1AEA2><EFBFBD> mcall SF_REDRAW, SSF_END_DRAW
ret ; <20><><EFBFBD><E5AEA4> <20><> <20><><EFBFBD><EFBFBD><E6A5A4><EFBFBD> ret ; <20><><EFBFBD><E5AEA4> <20><> <20><><EFBFBD><EFBFBD><E6A5A4><EFBFBD>
@@ -135,22 +135,7 @@ lib_name db 'box_lib.obj',0
cur_dir_path rb 4096 cur_dir_path rb 4096
lib_path rb 4096 lib_path rb 4096
myimport: include '../../import.inc' ;import_box_lib
dd sz_lib_init ;<3B><EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E1AAA0><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ᮬ 1 ࠧ <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7A5AD>
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20> <20>ணࠬ<E0AEA3><E0A0AC> <20><><20><> <20><><EFBFBD> <20><> <20><EFBFBD>
tooltip_init dd sz_tooltip_init
tooltip_delete dd sz_tooltip_delete
tooltip_test_show dd sz_tooltip_test_show
tooltip_mouse dd sz_tooltip_mouse
get_font_size dd sz_get_font_size
dd 0,0
sz_lib_init db 'lib_init',0
sz_tooltip_init db 'tooltip_init', 0
sz_tooltip_delete db 'tooltip_delete', 0
sz_tooltip_test_show db 'tooltip_test_show', 0
sz_tooltip_mouse db 'tooltip_mouse', 0
sz_get_font_size db 'get_font_size', 0
;tooltip txt, next, zone_x, zone_w, zone_y, zone_h, col_txt, col_bkg, tm_wait ;tooltip txt, next, zone_x, zone_w, zone_y, zone_h, col_txt, col_bkg, tm_wait

View File

@@ -0,0 +1,117 @@
;
; Export functions
;
E_LIB lib_init
E_LIB version
E_LIB edit_box_draw
E_LIB edit_box_key
E_LIB edit_box_key_safe
E_LIB edit_box_mouse
E_LIB edit_box_set_text
E_LIB version_ed
E_LIB init_checkbox, init_checkbox2
E_LIB check_box_draw, check_box_draw2
E_LIB check_box_mouse, check_box_mouse2
E_LIB version_ch, version_ch2
E_LIB option_box_draw
E_LIB option_box_mouse
E_LIB version_op
E_LIB scrollbar_v_draw
E_LIB scrollbar_v_mouse
E_LIB scrollbar_h_draw
E_LIB scrollbar_h_mouse
E_LIB version_scrollbar
E_LIB dbutton_draw
E_LIB dbutton_mouse
E_LIB version_dbutton
E_LIB menu_bar_draw
E_LIB menu_bar_mouse
E_LIB menu_bar_activate
E_LIB version_menu_bar
E_LIB FileBrowser_draw
E_LIB FileBrowser_mouse
E_LIB FileBrowser_key
E_LIB version_FileBrowser
E_LIB tl_data_init
E_LIB tl_data_clear
E_LIB tl_info_clear
E_LIB tl_key
E_LIB tl_mouse
E_LIB tl_draw
E_LIB tl_info_undo
E_LIB tl_info_redo
E_LIB tl_node_add
E_LIB tl_node_set_data
E_LIB tl_node_get_data
E_LIB tl_node_delete
E_LIB tl_cur_beg
E_LIB tl_cur_next
E_LIB tl_cur_perv
E_LIB tl_node_close_open
E_LIB tl_node_lev_inc
E_LIB tl_node_lev_dec
E_LIB tl_node_move_up
E_LIB tl_node_move_down
E_LIB tl_node_poi_get_info
E_LIB tl_node_poi_get_next_info
E_LIB tl_node_poi_get_data
E_LIB tl_save_mem
E_LIB tl_load_mem
E_LIB tl_get_mem_size
E_LIB version_tree_list
E_LIB PathShow_prepare
E_LIB PathShow_draw
E_LIB version_PathShow
E_LIB ted_but_sumb_upper
E_LIB ted_but_sumb_lover
E_LIB ted_but_convert_by_table
E_LIB ted_can_save
E_LIB ted_clear
E_LIB ted_delete
E_LIB ted_draw
E_LIB ted_init
E_LIB ted_init_scroll_bars
E_LIB ted_init_syntax_file
E_LIB ted_is_select
E_LIB ted_key
E_LIB ted_mouse
E_LIB ted_open_file
E_LIB ted_save_file
E_LIB ted_text_add
E_LIB ted_but_select_word
E_LIB ted_but_cut
E_LIB ted_but_copy
E_LIB ted_but_paste
E_LIB ted_but_undo
E_LIB ted_but_redo
E_LIB ted_but_reverse
E_LIB ted_but_find
E_LIB ted_but_replace
E_LIB ted_text_colored
E_LIB ted_go_to_position
E_LIB version_text_edit
E_LIB frame_draw
E_LIB version_frame
E_LIB progressbar_draw
E_LIB progressbar_progress
E_LIB tooltip_init
E_LIB tooltip_delete
E_LIB tooltip_test_show
E_LIB tooltip_mouse
E_LIB get_font_size
purge E_LIB

View File

@@ -0,0 +1,24 @@
align 4
import_box_lib:
macro E_LIB n, lfn
{
if n eq lib_init
dd strz_#n
else if defined sz_#n
n dd sz_#n
end if
}
include 'export.inc'
dd 0,0
macro E_LIB n, lfn
{
if used n
if lfn eq
sz_#n db `n,0
else
sz_#n db `lfn,0
end if
end if
}
include 'export.inc'

View File

@@ -0,0 +1,48 @@
;
; Export functions
;
E_LIB lib_init
E_LIB buf2d_create
E_LIB buf2d_create_f_img
E_LIB buf2d_clear
E_LIB buf2d_draw
E_LIB buf2d_delete
E_LIB buf2d_resize
E_LIB buf2d_rotate
E_LIB buf2d_line
E_LIB buf2d_line_sm
E_LIB buf2d_rect_by_size
E_LIB buf2d_filled_rect_by_size
E_LIB buf2d_circle
E_LIB buf2d_img_hdiv2
E_LIB buf2d_img_wdiv2
E_LIB buf2d_conv_24_to_8
E_LIB buf2d_conv_24_to_32
E_LIB buf2d_bit_blt
E_LIB buf2d_bit_blt_transp
E_LIB buf2d_bit_blt_alpha
E_LIB buf2d_curve_bezier
E_LIB buf2d_convert_text_matrix
E_LIB buf2d_draw_text
E_LIB buf2d_crop_color
E_LIB buf2d_offset_h
E_LIB buf2d_flood_fill
E_LIB buf2d_set_pixel
E_LIB buf2d_get_pixel
E_LIB buf2d_flip_h
E_LIB buf2d_flip_v
E_LIB buf2d_filter_dither
E_LIB buf2d_vox_brush_create
E_LIB buf2d_vox_brush_delete
E_LIB buf2d_vox_obj_get_img_w_3g
E_LIB buf2d_vox_obj_get_img_h_3g
E_LIB buf2d_vox_obj_draw_1g
E_LIB buf2d_vox_obj_draw_3g
E_LIB buf2d_vox_obj_draw_3g_scaled
E_LIB buf2d_vox_obj_draw_pl
E_LIB buf2d_vox_obj_draw_pl_scaled
E_LIB buf2d_vox_obj_draw_3g_shadows
purge E_LIB

View File

@@ -0,0 +1,20 @@
align 4
import_buf2d:
macro E_LIB n
{
if n eq lib_init
dd strz_#n
else if defined sz_#n
n dd sz_#n
end if
}
include 'export.inc'
dd 0,0
macro E_LIB n
{
if used n
sz_#n db `n,0
end if
}
include 'export.inc'

View File

@@ -11,7 +11,7 @@ include '../../../../develop/libraries/box_lib/trunk/box_lib.mac'
include '../../../../dll.inc' include '../../../../dll.inc'
@use_library mem.Alloc,mem.Free,mem.ReAlloc,dll.Load @use_library mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
caption db '<27><><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DES 05.03.13',0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> caption db '<27><><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DES 21.05.25',0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
struct FileInfoBlock struct FileInfoBlock
Function dd ? Function dd ?
@@ -112,13 +112,13 @@ align 4
still: still:
mcall SF_WAIT_EVENT mcall SF_WAIT_EVENT
cmp al,1 cmp al,EV_REDRAW
jz red_win jz red_win
cmp al,2 cmp al,EV_KEY
jz key jz key
cmp al,3 cmp al,EV_BUTTON
jz button jz button
cmp al,6 ;<3B><><EFBFBD><EFBFBD> cmp al,EV_MOUSE
jne @f jne @f
jmp mouse jmp mouse
@@: @@:
@@ -410,52 +410,7 @@ l_libs_start:
lib_4 l_libs lib_name_4, library_path, system_dir_4, import_box_lib lib_4 l_libs lib_name_4, library_path, system_dir_4, import_box_lib
l_libs_end: l_libs_end:
align 4 include '../../libs-dev/libimg/import.inc'
import_libimg:
dd alib_init1
img_is_img dd aimg_is_img
img_info dd aimg_info
img_from_file dd aimg_from_file
img_to_file dd aimg_to_file
img_from_rgb dd aimg_from_rgb
img_to_rgb dd aimg_to_rgb
img_to_rgb2 dd aimg_to_rgb2
img_decode dd aimg_decode
img_encode dd aimg_encode
img_create dd aimg_create
img_destroy dd aimg_destroy
img_destroy_layer dd aimg_destroy_layer
img_count dd aimg_count
img_lock_bits dd aimg_lock_bits
img_unlock_bits dd aimg_unlock_bits
img_flip dd aimg_flip
img_flip_layer dd aimg_flip_layer
img_rotate dd aimg_rotate
img_rotate_layer dd aimg_rotate_layer
img_draw dd aimg_draw
dd 0,0
alib_init1 db 'lib_init',0
aimg_is_img db 'img_is_img',0 ;<3B><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1A4A5><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>
aimg_info db 'img_info',0
aimg_from_file db 'img_from_file',0
aimg_to_file db 'img_to_file',0
aimg_from_rgb db 'img_from_rgb',0
aimg_to_rgb db 'img_to_rgb',0 ;<3B><EFBFBD><EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> RGB
aimg_to_rgb2 db 'img_to_rgb2',0
aimg_decode db 'img_decode',0 ;<3B><><EFBFBD><E2AEAC><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
aimg_encode db 'img_encode',0
aimg_create db 'img_create',0
aimg_destroy db 'img_destroy',0
aimg_destroy_layer db 'img_destroy_layer',0
aimg_count db 'img_count',0
aimg_lock_bits db 'img_lock_bits',0
aimg_unlock_bits db 'img_unlock_bits',0
aimg_flip db 'img_flip',0
aimg_flip_layer db 'img_flip_layer',0
aimg_rotate db 'img_rotate',0
aimg_rotate_layer db 'img_rotate_layer',0
aimg_draw db 'img_draw',0
align 4 align 4
import_proclib: ;<3B><><EFBFBD><EFBFBD><E1A0AD> <20><><EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><E3A5AC> <20>㭪権 import_proclib: ;<3B><><EFBFBD><EFBFBD><E1A0AD> <20><><EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><E3A5AC> <20>㭪権
@@ -465,57 +420,7 @@ dd 0,0
aOpenDialog_Init db 'OpenDialog_init',0 aOpenDialog_Init db 'OpenDialog_init',0
aOpenDialog_Start db 'OpenDialog_start',0 aOpenDialog_Start db 'OpenDialog_start',0
align 4 include '../../buf2d/import.inc'
import_buf2d:
init dd sz_init
buf2d_create dd sz_buf2d_create
buf2d_create_f_img dd sz_buf2d_create_f_img
buf2d_clear dd sz_buf2d_clear
buf2d_draw dd sz_buf2d_draw
buf2d_delete dd sz_buf2d_delete
;buf2d_line dd sz_buf2d_line
;buf2d_rect_by_size dd sz_buf2d_rect_by_size
;buf2d_filled_rect_by_size dd sz_buf2d_filled_rect_by_size
;buf2d_circle dd sz_buf2d_circle
;buf2d_img_hdiv2 dd sz_buf2d_img_hdiv2
;buf2d_img_wdiv2 dd sz_buf2d_img_wdiv2
buf2d_conv_24_to_8 dd sz_buf2d_conv_24_to_8
;buf2d_conv_24_to_32 dd sz_buf2d_conv_24_to_32
;buf2d_bit_blt dd sz_buf2d_bit_blt
;buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp
;buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha
;buf2d_curve_bezier dd sz_buf2d_curve_bezier
buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix
buf2d_draw_text dd sz_buf2d_draw_text
;buf2d_crop_color dd sz_buf2d_crop_color
;buf2d_offset_h dd sz_buf2d_offset_h
;buf2d_flood_fill dd sz_buf2d_flood_fill
;buf2d_set_pixel dd sz_buf2d_set_pixel
dd 0,0
sz_init db 'lib_init',0
sz_buf2d_create db 'buf2d_create',0
sz_buf2d_create_f_img db 'buf2d_create_f_img',0
sz_buf2d_clear db 'buf2d_clear',0
sz_buf2d_draw db 'buf2d_draw',0
sz_buf2d_delete db 'buf2d_delete',0
;sz_buf2d_line db 'buf2d_line',0
;sz_buf2d_rect_by_size db 'buf2d_rect_by_size',0
;sz_buf2d_filled_rect_by_size db 'buf2d_filled_rect_by_size',0
;sz_buf2d_circle db 'buf2d_circle',0
;sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0
;sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0
sz_buf2d_conv_24_to_8 db 'buf2d_conv_24_to_8',0
;sz_buf2d_conv_24_to_32 db 'buf2d_conv_24_to_32',0
;sz_buf2d_bit_blt db 'buf2d_bit_blt',0
;sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0
;sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0
;sz_buf2d_curve_bezier db 'buf2d_curve_bezier',0
sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0
sz_buf2d_draw_text db 'buf2d_draw_text',0
;sz_buf2d_crop_color db 'buf2d_crop_color',0
;sz_buf2d_offset_h db 'buf2d_offset_h',0
;sz_buf2d_flood_fill db 'buf2d_flood_fill',0
;sz_buf2d_set_pixel db 'buf2d_set_pixel',0
align 4 align 4
import_des: ;<3B><><EFBFBD><EFBFBD><E1A0AD> <20><><EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><E3A5AC> <20>㭪権 import_des: ;<3B><><EFBFBD><EFBFBD><E1A0AD> <20><><EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><E3A5AC> <20>㭪権
@@ -525,22 +430,7 @@ dd 0,0
sz_des_encryption db 'des_encryption',0 sz_des_encryption db 'des_encryption',0
sz_des_decryption db 'des_decryption',0 sz_des_decryption db 'des_decryption',0
align 4 include '../../box_lib/import.inc'
import_box_lib:
;dd sz_init1
edit_box_draw dd sz_edit_box_draw
edit_box_key dd sz_edit_box_key
edit_box_mouse dd sz_edit_box_mouse
;edit_box_set_text dd sz_edit_box_set_text
dd 0,0
;sz_init1 db 'lib_init',0
sz_edit_box_draw db 'edit_box_draw',0
sz_edit_box_key db 'edit_box_key',0
sz_edit_box_mouse db 'edit_box_mouse',0
;sz_edit_box_set_text db 'edit_box_set_text',0
mouse_dd dd 0x0
align 4 align 4
buf_0: dd 0 ;㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> buf_0: dd 0 ;㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>
@@ -564,12 +454,13 @@ buf_1:
edit1 edit_box 58, 140,8, 0xffffff, 0xff, 0x80ff, 0, 0x8000, 8, txt_key, mouse_dd, ed_focus+ed_always_focus,8,8 edit1 edit_box 58, 140,8, 0xffffff, 0xff, 0x80ff, 0, 0x8000, 8, txt_key, mouse_dd, ed_focus+ed_always_focus,8,8
txt_openfile db '<27><><EFBFBD><EFBFBD><E0AEA9><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD>.',0 txt_openfile db '<27><><EFBFBD><EFBFBD><E0AEA9><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD><EFBFBD>.',0
txt_buf rb 80
txt_key db 'des_0123',0 txt_key db 'des_0123',0
mem_key rb 120
align 16 align 16
i_end: i_end:
txt_buf rb 80
mem_key rb 120
mouse_dd rd 1
procinfo process_information procinfo process_information
sc system_colors sc system_colors
rb 2048 rb 2048

View File

@@ -100,6 +100,10 @@ lib_init: ;//////////////////////////////////////////////////////////////////;;
mov [mem.alloc], eax mov [mem.alloc], eax
mov [mem.free], ebx mov [mem.free], ebx
mov [mem.realloc], ecx mov [mem.realloc], ecx
cmp [dll.load], edx
je .ok
mov [dll.load], edx mov [dll.load], edx
invoke dll.load, @IMPORT invoke dll.load, @IMPORT
@@ -115,6 +119,7 @@ lib_init: ;//////////////////////////////////////////////////////////////////;;
invoke ini.get_str, inifile, sec_proxy, key_password, proxyPassword, 256, proxyPassword invoke ini.get_str, inifile, sec_proxy, key_password, proxyPassword, 256, proxyPassword
popa popa
.ok:
DEBUGF 1, "HTTP library: init OK\n" DEBUGF 1, "HTTP library: init OK\n"
xor eax, eax xor eax, eax
ret ret

View File

@@ -0,0 +1,34 @@
;
; Export functions
;
E_LIB lib_init
E_LIB version
E_LIB img_is_img
E_LIB img_info
E_LIB img_from_file
E_LIB img_to_file
E_LIB img_from_rgb
E_LIB img_to_rgb
E_LIB img_to_rgb2
E_LIB img_decode
E_LIB img_encode ;supported formats: PNG 24 32, BMP 24 32, PNM 1 8g 24
E_LIB img_create
E_LIB img_destroy
E_LIB img_destroy_layer
E_LIB img_count
E_LIB img_lock_bits
E_LIB img_unlock_bits
E_LIB img_flip
E_LIB img_flip_layer
E_LIB img_rotate
E_LIB img_rotate_layer
E_LIB img_draw
E_LIB img_scale
E_LIB img_get_scaled_size
E_LIB img_convert
E_LIB img_blend
E_LIB img_resize_data
E_LIB img_formats_table
purge E_LIB

View File

@@ -0,0 +1,20 @@
align 4
import_libimg:
macro E_LIB n
{
if n eq lib_init
dd strz_#n
else if defined sz_#n
n dd sz_#n
end if
}
include 'export.inc'
dd 0,0
macro E_LIB n
{
if used n
sz_#n db `n,0
end if
}
include 'export.inc'

View File

@@ -78,6 +78,10 @@ proc lib_init ;///////////////////////////////////////////////////////////////;;
mov [mem.alloc], eax mov [mem.alloc], eax
mov [mem.free], ebx mov [mem.free], ebx
mov [mem.realloc], ecx mov [mem.realloc], ecx
cmp [dll.load], edx
je .ok
mov [dll.load], edx mov [dll.load], edx
or edx, edx or edx, edx

View File

@@ -34,21 +34,25 @@ proc libini._.init ;////////////////////////////////////////////////////////////
;;------------------------------------------------------------------------------------------------;; ;;------------------------------------------------------------------------------------------------;;
;< eax = 1 (fail) / 0 (ok) (library initialization result) ;; ;< eax = 1 (fail) / 0 (ok) (library initialization result) ;;
;;================================================================================================;; ;;================================================================================================;;
mov [mem.alloc], eax mov [mem.alloc], eax
mov [mem.free], ebx mov [mem.free], ebx
mov [mem.realloc], ecx mov [mem.realloc], ecx
mov [dll.load], edx
invoke dll.load, @IMPORT cmp [dll.load], edx
or eax, eax je .ok
jz .ok
xor eax, eax mov [dll.load], edx
inc eax
ret
.ok: xor eax,eax invoke dll.load, @IMPORT
ret or eax, eax
jz .ok
xor eax, eax
inc eax
ret
.ok: xor eax,eax
ret
endp endp
;;================================================================================================;; ;;================================================================================================;;
@@ -60,16 +64,16 @@ proc libini._.unget_char _f ;///////////////////////////////////////////////////
;;------------------------------------------------------------------------------------------------;; ;;------------------------------------------------------------------------------------------------;;
;< --- TBD --- ;; ;< --- TBD --- ;;
;;================================================================================================;; ;;================================================================================================;;
push eax ecx push eax ecx
mov ecx, [_f] mov ecx, [_f]
inc [ecx + IniFile.cnt] inc [ecx + IniFile.cnt]
dec esi dec esi
mov eax, [ecx + IniFile.bsize] mov eax, [ecx + IniFile.bsize]
cmp [ecx + IniFile.cnt], eax cmp [ecx + IniFile.cnt], eax
jle @f jle @f
stdcall libini._.unload_block, [_f] stdcall libini._.unload_block, [_f]
@@: pop ecx eax @@: pop ecx eax
ret ret
endp endp
;;================================================================================================;; ;;================================================================================================;;
@@ -81,13 +85,13 @@ proc libini._.get_char _f ;/////////////////////////////////////////////////////
;;------------------------------------------------------------------------------------------------;; ;;------------------------------------------------------------------------------------------------;;
;< --- TBD --- ;; ;< --- TBD --- ;;
;;================================================================================================;; ;;================================================================================================;;
mov ecx, [_f] mov ecx, [_f]
dec [ecx + IniFile.cnt] dec [ecx + IniFile.cnt]
jns @f jns @f
stdcall libini._.preload_block, [_f] stdcall libini._.preload_block, [_f]
dec [ecx + IniFile.cnt] dec [ecx + IniFile.cnt]
@@: lodsb @@: lodsb
ret ret
endp endp
;;================================================================================================;; ;;================================================================================================;;
@@ -99,22 +103,22 @@ proc libini._.skip_nonblanks _f ;///////////////////////////////////////////////
;;------------------------------------------------------------------------------------------------;; ;;------------------------------------------------------------------------------------------------;;
;< --- TBD --- ;; ;< --- TBD --- ;;
;;================================================================================================;; ;;================================================================================================;;
mov ecx, [_f] mov ecx, [_f]
@@: stdcall libini._.get_char, [_f] @@: stdcall libini._.get_char, [_f]
cmp al, 32 cmp al, 32
je @b je @b
cmp al, 13 cmp al, 13
je @b je @b
cmp al, 10 cmp al, 10
je @b je @b
cmp al, 9 cmp al, 9
je @b je @b
cmp al, ini.COMMENT_CHAR cmp al, ini.COMMENT_CHAR
jne @f jne @f
stdcall libini._.skip_line, [_f] stdcall libini._.skip_line, [_f]
jmp @b jmp @b
@@: stdcall libini._.unget_char, [_f] @@: stdcall libini._.unget_char, [_f]
ret ret
endp endp
;;================================================================================================;; ;;================================================================================================;;
@@ -126,14 +130,14 @@ proc libini._.skip_spaces _f ;//////////////////////////////////////////////////
;;------------------------------------------------------------------------------------------------;; ;;------------------------------------------------------------------------------------------------;;
;< --- TBD --- ;; ;< --- TBD --- ;;
;;================================================================================================;; ;;================================================================================================;;
mov ecx, [_f] mov ecx, [_f]
@@: stdcall libini._.get_char, [_f] @@: stdcall libini._.get_char, [_f]
cmp al, 32 cmp al, 32
je @b je @b
cmp al, 9 cmp al, 9
je @b je @b
@@: stdcall libini._.unget_char, [_f] @@: stdcall libini._.unget_char, [_f]
ret ret
endp endp
;;================================================================================================;; ;;================================================================================================;;
@@ -145,16 +149,16 @@ proc libini._.skip_line _f ;////////////////////////////////////////////////////
;;------------------------------------------------------------------------------------------------;; ;;------------------------------------------------------------------------------------------------;;
;< --- TBD --- ;; ;< --- TBD --- ;;
;;================================================================================================;; ;;================================================================================================;;
mov ecx, [_f] mov ecx, [_f]
@@: stdcall libini._.get_char, [_f] @@: stdcall libini._.get_char, [_f]
or al, al or al, al
jz @f jz @f
cmp al, 13 cmp al, 13
je @f je @f
cmp al, 10 cmp al, 10
jne @b jne @b
@@: stdcall libini._.unget_char, [_f] @@: stdcall libini._.unget_char, [_f]
ret ret
endp endp
;;================================================================================================;; ;;================================================================================================;;
@@ -166,16 +170,16 @@ proc libini._.unload_block _f ;/////////////////////////////////////////////////
;;------------------------------------------------------------------------------------------------;; ;;------------------------------------------------------------------------------------------------;;
;< --- TBD --- ;; ;< --- TBD --- ;;
;;================================================================================================;; ;;================================================================================================;;
push eax ebx ecx push eax ebx ecx
mov ebx, [_f] mov ebx, [_f]
mov eax, [ebx + IniFile.pos] mov eax, [ebx + IniFile.pos]
add eax, -ini.BLOCK_SIZE add eax, -ini.BLOCK_SIZE
invoke file.seek, [ebx + IniFile.fh], eax, SEEK_SET invoke file.seek, [ebx + IniFile.fh], eax, SEEK_SET
stdcall libini._.preload_block, ebx stdcall libini._.preload_block, ebx
add esi, eax add esi, eax
mov [ebx + IniFile.cnt], 0 mov [ebx + IniFile.cnt], 0
pop ecx ebx eax pop ecx ebx eax
ret ret
endp endp
;;================================================================================================;; ;;================================================================================================;;
@@ -187,25 +191,25 @@ proc libini._.preload_block _f ;////////////////////////////////////////////////
;;------------------------------------------------------------------------------------------------;; ;;------------------------------------------------------------------------------------------------;;
;< --- TBD --- ;; ;< --- TBD --- ;;
;;================================================================================================;; ;;================================================================================================;;
push eax ebx ecx push eax ebx ecx
mov ebx, [_f] mov ebx, [_f]
@@: mov esi, [ebx + IniFile.buf] @@: mov esi, [ebx + IniFile.buf]
push edi push edi
mov edi, esi mov edi, esi
mov ecx, ini.BLOCK_SIZE / 4 mov ecx, ini.BLOCK_SIZE / 4
xor eax, eax xor eax, eax
rep stosd rep stosd
pop edi pop edi
invoke file.tell, [ebx + IniFile.fh] invoke file.tell, [ebx + IniFile.fh]
mov [ebx + IniFile.pos], eax mov [ebx + IniFile.pos], eax
invoke file.read, [ebx + IniFile.fh], esi, ini.BLOCK_SIZE invoke file.read, [ebx + IniFile.fh], esi, ini.BLOCK_SIZE
mov esi,[ebx + IniFile.buf] mov esi,[ebx + IniFile.buf]
cmp eax,ini.BLOCK_SIZE cmp eax,ini.BLOCK_SIZE
jl @f jl @f
@@: mov [ebx + IniFile.cnt], eax @@: mov [ebx + IniFile.cnt], eax
mov [ebx + IniFile.bsize], eax mov [ebx + IniFile.bsize], eax
pop ecx ebx eax pop ecx ebx eax
ret ret
endp endp
;;================================================================================================;; ;;================================================================================================;;
@@ -217,18 +221,18 @@ proc libini._.reload_block _f ;/////////////////////////////////////////////////
;;------------------------------------------------------------------------------------------------;; ;;------------------------------------------------------------------------------------------------;;
;< --- TBD --- ;; ;< --- TBD --- ;;
;;================================================================================================;; ;;================================================================================================;;
push eax ebx ecx push eax ebx ecx
mov ebx, [_f] mov ebx, [_f]
push [ebx + IniFile.bsize] push [ebx + IniFile.bsize]
push esi [ebx + IniFile.cnt] push esi [ebx + IniFile.cnt]
invoke file.seek, [ebx + IniFile.fh], [ebx + IniFile.pos], SEEK_SET invoke file.seek, [ebx + IniFile.fh], [ebx + IniFile.pos], SEEK_SET
stdcall libini._.preload_block, ebx stdcall libini._.preload_block, ebx
pop [ebx + IniFile.cnt] esi pop [ebx + IniFile.cnt] esi
pop eax pop eax
sub eax,[ebx + IniFile.bsize] sub eax,[ebx + IniFile.bsize]
sub [ebx + IniFile.cnt], eax sub [ebx + IniFile.cnt], eax
pop ecx ebx eax pop ecx ebx eax
ret ret
endp endp
; f_info - contains current file block number ; f_info - contains current file block number
@@ -249,91 +253,91 @@ locals
buf dd ? buf dd ?
endl endl
xor eax, eax xor eax, eax
cmp [_delta], 0 cmp [_delta], 0
je .skip je .skip
push ebx ecx push ebx ecx
invoke mem.alloc, ini.BLOCK_SIZE invoke mem.alloc, ini.BLOCK_SIZE
or eax, eax or eax, eax
jz .fail jz .fail
mov [buf], eax mov [buf], eax
cmp [_delta], 0 cmp [_delta], 0
jl .down jl .down
mov ebx, [_f] mov ebx, [_f]
mov ecx, [ebx + IniFile.cnt] mov ecx, [ebx + IniFile.cnt]
mov ebx, [ebx + IniFile.fh] mov ebx, [ebx + IniFile.fh]
invoke file.tell, ebx invoke file.tell, ebx
sub eax, ecx sub eax, ecx
invoke file.seek, ebx, eax, SEEK_SET invoke file.seek, ebx, eax, SEEK_SET
@@: invoke file.seek, ebx, [_delta], SEEK_CUR @@: invoke file.seek, ebx, [_delta], SEEK_CUR
invoke file.eof?, ebx invoke file.eof?, ebx
or eax, eax or eax, eax
jnz .done jnz .done
invoke file.read, ebx, [buf], ini.BLOCK_SIZE invoke file.read, ebx, [buf], ini.BLOCK_SIZE
mov ecx, eax mov ecx, eax
mov eax, [_delta] mov eax, [_delta]
neg eax neg eax
sub eax, ecx sub eax, ecx
invoke file.seek, ebx, eax, SEEK_CUR invoke file.seek, ebx, eax, SEEK_CUR
push ecx push ecx
invoke file.write, ebx, [buf], ecx invoke file.write, ebx, [buf], ecx
pop ecx pop ecx
cmp eax, ecx cmp eax, ecx
jz @b jz @b
.fail: .fail:
or eax, -1 or eax, -1
pop ecx ebx pop ecx ebx
ret ret
.done: .done:
mov eax, [_delta] mov eax, [_delta]
neg eax neg eax
invoke file.seek, ebx, eax, SEEK_CUR invoke file.seek, ebx, eax, SEEK_CUR
invoke file.seteof, ebx invoke file.seteof, ebx
stdcall libini._.reload_block, [_f] stdcall libini._.reload_block, [_f]
invoke mem.free, [buf] invoke mem.free, [buf]
pop ecx ebx pop ecx ebx
.skip: .skip:
ret ret
.down: .down:
neg [_delta] neg [_delta]
mov ebx, [_f] mov ebx, [_f]
mov ecx, [ebx + IniFile.cnt] mov ecx, [ebx + IniFile.cnt]
mov ebx, [ebx + IniFile.fh] mov ebx, [ebx + IniFile.fh]
invoke file.tell, ebx invoke file.tell, ebx
sub eax, ecx sub eax, ecx
lea edx, [eax - 1] lea edx, [eax - 1]
push edx push edx
@@: invoke file.seek, ebx, edx, SEEK_SET @@: invoke file.seek, ebx, edx, SEEK_SET
invoke file.eof?, ebx invoke file.eof?, ebx
or eax, eax or eax, eax
jnz @f jnz @f
add edx, ini.BLOCK_SIZE add edx, ini.BLOCK_SIZE
jmp @b jmp @b
@@: cmp edx, [esp] @@: cmp edx, [esp]
je .skip.2 je .skip.2
add edx, -ini.BLOCK_SIZE add edx, -ini.BLOCK_SIZE
cmp edx, [esp] cmp edx, [esp]
jl @f jl @f
invoke file.seek, ebx, edx, SEEK_SET invoke file.seek, ebx, edx, SEEK_SET
invoke file.read, ebx, [buf], ini.BLOCK_SIZE invoke file.read, ebx, [buf], ini.BLOCK_SIZE
mov ecx, eax mov ecx, eax
mov eax, [_delta] mov eax, [_delta]
sub eax, ecx sub eax, ecx
invoke file.seek, ebx, eax, SEEK_CUR invoke file.seek, ebx, eax, SEEK_CUR
invoke file.write, ebx, [buf], ecx invoke file.write, ebx, [buf], ecx
jmp @b jmp @b
@@: @@:
.skip.2: .skip.2:
add esp, 4 add esp, 4
stdcall libini._.reload_block, [_f] stdcall libini._.reload_block, [_f]
invoke mem.free, [buf] invoke mem.free, [buf]
pop ecx ebx pop ecx ebx
ret ret
endp endp
;;================================================================================================;; ;;================================================================================================;;
@@ -345,25 +349,25 @@ proc libini._.get_value_length _f ;/////////////////////////////////////////////
;;------------------------------------------------------------------------------------------------;; ;;------------------------------------------------------------------------------------------------;;
;< --- TBD --- ;; ;< --- TBD --- ;;
;;================================================================================================;; ;;================================================================================================;;
push ebx ecx edx eax push ebx ecx edx eax
mov ebx, [_f] mov ebx, [_f]
invoke file.tell, [ebx + IniFile.fh] invoke file.tell, [ebx + IniFile.fh]
push esi [ebx + IniFile.cnt] [ebx + IniFile.pos] push esi [ebx + IniFile.cnt] [ebx + IniFile.pos]
sub eax, [ebx + IniFile.cnt] sub eax, [ebx + IniFile.cnt]
mov edx, eax mov edx, eax
stdcall libini._.skip_line, [_f] stdcall libini._.skip_line, [_f]
invoke file.tell, [ebx + IniFile.fh] invoke file.tell, [ebx + IniFile.fh]
sub eax, [ebx + IniFile.cnt] sub eax, [ebx + IniFile.cnt]
sub eax, edx sub eax, edx
mov [esp + 4 * 3], eax mov [esp + 4 * 3], eax
pop eax pop eax
invoke file.seek, [ebx + IniFile.fh], eax, SEEK_SET invoke file.seek, [ebx + IniFile.fh], eax, SEEK_SET
stdcall libini._.preload_block, [_f] stdcall libini._.preload_block, [_f]
pop [ebx + IniFile.cnt] esi pop [ebx + IniFile.cnt] esi
pop eax edx ecx ebx pop eax edx ecx ebx
ret ret
endp endp
;;================================================================================================;; ;;================================================================================================;;
@@ -376,10 +380,10 @@ proc libini._.string_copy ;/////////////////////////////////////////////////////
;< --- TBD --- ;; ;< --- TBD --- ;;
;;================================================================================================;; ;;================================================================================================;;
@@: lodsb @@: lodsb
or al, al or al, al
jz @f jz @f
stosb stosb
jmp @b jmp @b
@@: ret @@: ret
endp endp
@@ -392,26 +396,26 @@ proc libini._.find_next_section _f ;////////////////////////////////////////////
;;------------------------------------------------------------------------------------------------;; ;;------------------------------------------------------------------------------------------------;;
;< --- TBD --- ;; ;< --- TBD --- ;;
;;================================================================================================;; ;;================================================================================================;;
push ebx edi push ebx edi
@@: stdcall libini._.skip_nonblanks, [_f] @@: stdcall libini._.skip_nonblanks, [_f]
cmp al, '[' cmp al, '['
je @f je @f
or al, al or al, al
jz .exit_error jz .exit_error
stdcall libini._.skip_line, [_f] stdcall libini._.skip_line, [_f]
or al, al or al, al
jz .exit_error jz .exit_error
jmp @b jmp @b
@@: @@:
pop edi ebx pop edi ebx
xor eax, eax xor eax, eax
ret ret
.exit_error: .exit_error:
pop edi ebx pop edi ebx
or eax, -1 or eax, -1
ret ret
endp endp
;;================================================================================================;; ;;================================================================================================;;
@@ -425,50 +429,50 @@ proc libini._.find_section _f, _sec_name ;//////////////////////////////////////
;< eax = -1 (fail) / 0 (ok) ;; ;< eax = -1 (fail) / 0 (ok) ;;
;< [_f.pos] = new cursor position (right after ']' char if eax = 0, at the end of file otherwise) ;; ;< [_f.pos] = new cursor position (right after ']' char if eax = 0, at the end of file otherwise) ;;
;;================================================================================================;; ;;================================================================================================;;
push ebx edi push ebx edi
mov ecx, [_f] mov ecx, [_f]
invoke file.seek, [ecx + IniFile.fh], 0, SEEK_SET invoke file.seek, [ecx + IniFile.fh], 0, SEEK_SET
stdcall libini._.preload_block, [_f] stdcall libini._.preload_block, [_f]
.next_section: .next_section:
stdcall libini._.find_next_section, [_f] stdcall libini._.find_next_section, [_f]
or eax, eax or eax, eax
jnz .exit_error jnz .exit_error
stdcall libini._.get_char, [_f] stdcall libini._.get_char, [_f]
stdcall libini._.skip_spaces, [_f] stdcall libini._.skip_spaces, [_f]
mov edi, [_sec_name] mov edi, [_sec_name]
@@: stdcall libini._.get_char, [_f] @@: stdcall libini._.get_char, [_f]
cmp al, ']' cmp al, ']'
je @f je @f
or al, al or al, al
jz .exit_error jz .exit_error
cmp al, 13 cmp al, 13
je .next_section je .next_section
cmp al, 10 cmp al, 10
je .next_section je .next_section
scasb scasb
je @b je @b
cmp byte[edi - 1], 0 cmp byte[edi - 1], 0
jne .next_section jne .next_section
dec edi dec edi
stdcall libini._.unget_char, [_f] stdcall libini._.unget_char, [_f]
stdcall libini._.skip_spaces, [_f] stdcall libini._.skip_spaces, [_f]
stdcall libini._.get_char, [_f] stdcall libini._.get_char, [_f]
cmp al, ']' cmp al, ']'
jne .next_section jne .next_section
@@: @@:
cmp byte[edi], 0 cmp byte[edi], 0
jne .next_section jne .next_section
pop edi ebx pop edi ebx
xor eax, eax xor eax, eax
ret ret
.exit_error: .exit_error:
pop edi ebx pop edi ebx
or eax, -1 or eax, -1
ret ret
endp endp
;;================================================================================================;; ;;================================================================================================;;
@@ -483,44 +487,44 @@ proc libini._.find_key _f, _key_name ;//////////////////////////////////////////
;< [_f.pos] = new cursor position (right after '=' char if eax = 0, at the end of file or right ;; ;< [_f.pos] = new cursor position (right after '=' char if eax = 0, at the end of file or right ;;
;< before '[' char otherwise) ;; ;< before '[' char otherwise) ;;
;;================================================================================================;; ;;================================================================================================;;
push ebx edi push ebx edi
.next_value: .next_value:
mov edi, [_key_name] mov edi, [_key_name]
stdcall libini._.skip_line, [_f] stdcall libini._.skip_line, [_f]
stdcall libini._.skip_nonblanks, [_f] stdcall libini._.skip_nonblanks, [_f]
or al, al or al, al
jz .exit_error jz .exit_error
cmp al, '[' cmp al, '['
je .exit_error je .exit_error
@@: stdcall libini._.get_char, [_f] @@: stdcall libini._.get_char, [_f]
or al, al or al, al
jz .exit_error jz .exit_error
cmp al, '=' cmp al, '='
je @f je @f
scasb scasb
je @b je @b
cmp byte[edi - 1], 0 cmp byte[edi - 1], 0
jne .next_value jne .next_value
dec edi dec edi
stdcall libini._.unget_char, [_f] stdcall libini._.unget_char, [_f]
stdcall libini._.skip_spaces, [_f] stdcall libini._.skip_spaces, [_f]
stdcall libini._.get_char, [_f] stdcall libini._.get_char, [_f]
cmp al, '=' cmp al, '='
je @f je @f
jmp .next_value jmp .next_value
@@: @@:
cmp byte[edi], 0 cmp byte[edi], 0
jne .next_value jne .next_value
pop edi ebx pop edi ebx
xor eax, eax xor eax, eax
ret ret
.exit_error: .exit_error:
pop edi ebx pop edi ebx
or eax, -1 or eax, -1
ret ret
endp endp
;;================================================================================================;; ;;================================================================================================;;
@@ -532,31 +536,31 @@ proc libini._.low.read_value _f_addr, _buffer, _buf_len ;///////////////////////
;;------------------------------------------------------------------------------------------------;; ;;------------------------------------------------------------------------------------------------;;
;< --- TBD --- ;; ;< --- TBD --- ;;
;;================================================================================================;; ;;================================================================================================;;
push edi eax push edi eax
mov edi, [_buffer] mov edi, [_buffer]
stdcall libini._.skip_spaces, [_f_addr] stdcall libini._.skip_spaces, [_f_addr]
@@: dec [_buf_len] @@: dec [_buf_len]
jz @f jz @f
stdcall libini._.get_char, [_f_addr] stdcall libini._.get_char, [_f_addr]
cmp al, 13 cmp al, 13
je @f je @f
cmp al, 10 cmp al, 10
je @f je @f
stosb stosb
or al, al or al, al
jnz @b jnz @b
@@: stdcall libini._.unget_char, [_f_addr] @@: stdcall libini._.unget_char, [_f_addr]
mov byte[edi], 0 mov byte[edi], 0
dec edi dec edi
@@: cmp edi, [_buffer] @@: cmp edi, [_buffer]
jb @f jb @f
cmp byte[edi], 32 cmp byte[edi], 32
ja @f ja @f
mov byte[edi], 0 mov byte[edi], 0
dec edi dec edi
jmp @b jmp @b
@@: pop eax edi @@: pop eax edi
ret ret
endp endp
;;================================================================================================;; ;;================================================================================================;;
@@ -568,25 +572,25 @@ proc libini._.str_to_int ;//////////////////////////////////////////////////////
;;------------------------------------------------------------------------------------------------;; ;;------------------------------------------------------------------------------------------------;;
;< eax = binary number representation (no overflow checks made) ;; ;< eax = binary number representation (no overflow checks made) ;;
;;================================================================================================;; ;;================================================================================================;;
push edx push edx
xor eax, eax xor eax, eax
xor edx, edx xor edx, edx
@@: lodsb @@: lodsb
cmp al, '0' cmp al, '0'
jb @f jb @f
cmp al, '9' cmp al, '9'
ja @f ja @f
add eax, -'0' add eax, -'0'
imul edx, 10 imul edx, 10
add edx, eax add edx, eax
jmp @b jmp @b
@@: dec esi @@: dec esi
mov eax, edx mov eax, edx
pop edx pop edx
ret ret
endp endp
;;================================================================================================;; ;;================================================================================================;;
@@ -600,29 +604,29 @@ proc libini._.int_to_str ;//////////////////////////////////////////////////////
;;------------------------------------------------------------------------------------------------;; ;;------------------------------------------------------------------------------------------------;;
;< --- TBD --- ;; ;< --- TBD --- ;;
;;================================================================================================;; ;;================================================================================================;;
push ecx edx push ecx edx
or eax, eax or eax, eax
jns @f jns @f
mov byte[edi], '-' mov byte[edi], '-'
inc edi inc edi
@@: call .recurse @@: call .recurse
pop edx ecx pop edx ecx
ret ret
.recurse: .recurse:
cmp eax,ecx cmp eax,ecx
jb @f jb @f
xor edx,edx xor edx,edx
div ecx div ecx
push edx push edx
call .recurse call .recurse
pop eax pop eax
@@: cmp al,10 @@: cmp al,10
sbb al,0x69 sbb al,0x69
das das
stosb stosb
retn retn
endp endp
;;================================================================================================;; ;;================================================================================================;;
@@ -635,50 +639,50 @@ proc libini._.ascii_to_scan ;_ascii_code ;//////////////////////////////////////
;< eax = 0 (error) / scancode (success) ;; ;< eax = 0 (error) / scancode (success) ;;
;;================================================================================================;; ;;================================================================================================;;
; /sys/keymap.key ; /sys/keymap.key
sub esp, 256 sub esp, 256
mov eax, esp mov eax, esp
push ebx push ebx
push 'key' push 'key'
push 'map.' push 'map.'
push '/key' push '/key'
push '/sys' push '/sys'
push eax ; buffer in the stack push eax ; buffer in the stack
push 0x100 ; read 0x100 bytes push 0x100 ; read 0x100 bytes
push 0 push 0
push 0 ; from position zero push 0 ; from position zero
push 0 ; subfunction: read push 0 ; subfunction: read
mov ebx, esp mov ebx, esp
push 70 push 70
pop eax pop eax
mcall mcall
add esp, 36 add esp, 36
pop ebx pop ebx
test eax, eax test eax, eax
jnz .die jnz .die
mov al, [esp+256+4] ; get ASCII code mov al, [esp+256+4] ; get ASCII code
push edi push edi
; first keytable - no modifiers pressed ; first keytable - no modifiers pressed
; check scancodes from 1 to 36h (inclusive) ; check scancodes from 1 to 36h (inclusive)
lea edi, [esp+4+1] lea edi, [esp+4+1]
mov edx, edi mov edx, edi
mov ecx, 36h mov ecx, 36h
repnz scasb repnz scasb
jz .found jz .found
; second keytable - Shift pressed ; second keytable - Shift pressed
lea edi, [esp+4+128+1] lea edi, [esp+4+128+1]
mov edx, edi mov edx, edi
mov ecx, 36h mov ecx, 36h
repnz scasb repnz scasb
jz .found jz .found
pop edi pop edi
.die: .die:
xor eax, eax xor eax, eax
jmp .ret jmp .ret
.found: .found:
mov eax, edi mov eax, edi
sub eax, edx sub eax, edx
pop edi pop edi
.ret: .ret:
add esp, 256 add esp, 256
ret 4 ret 4
endp endp

View File

@@ -33,38 +33,39 @@ use_ColorDialog
;-------------------------------------------------- ;--------------------------------------------------
align 16 align 16
lib_init: lib_init:
ret xor eax, eax
ret
;-------------------------------------------------- ;--------------------------------------------------
align 16 align 16
EXPORTS: EXPORTS:
dd sz_init, lib_init dd sz_init, lib_init
dd sz_version, 0x00000001 dd sz_version, 0x00000001
dd sz_OpenDialog_init, OpenDialog.init dd sz_OpenDialog_init, OpenDialog.init
dd sz_OpenDialog_start, OpenDialog.start dd sz_OpenDialog_start, OpenDialog.start
dd sz_OpenDialog_set_file_name, OpenDialog.set_file_name dd sz_OpenDialog_set_file_name, OpenDialog.set_file_name
dd sz_OpenDialog_set_file_ext, OpenDialog.set_file_ext dd sz_OpenDialog_set_file_ext, OpenDialog.set_file_ext
dd szVersion_OpenDialog, 0x00010001 dd szVersion_OpenDialog, 0x00010001
dd sz_ColorDialog_init, ColorDialog.init dd sz_ColorDialog_init, ColorDialog.init
dd sz_ColorDialog_start, ColorDialog.start dd sz_ColorDialog_start, ColorDialog.start
dd szVersion_ColorDialog, 0x00010001 dd szVersion_ColorDialog, 0x00010001
dd 0,0 dd 0,0
;----------------------------------------------------------------------------- ;-----------------------------------------------------------------------------
sz_init db 'lib_init',0 sz_init db 'lib_init',0
sz_version db 'version',0 sz_version db 'version',0
sz_OpenDialog_init db 'OpenDialog_init',0 sz_OpenDialog_init db 'OpenDialog_init',0
sz_OpenDialog_start db 'OpenDialog_start',0 sz_OpenDialog_start db 'OpenDialog_start',0
sz_OpenDialog_set_file_name db 'OpenDialog_set_file_name',0 sz_OpenDialog_set_file_name db 'OpenDialog_set_file_name',0
sz_OpenDialog_set_file_ext db 'OpenDialog_set_file_ext',0 sz_OpenDialog_set_file_ext db 'OpenDialog_set_file_ext',0
szVersion_OpenDialog db 'Version_OpenDialog',0 szVersion_OpenDialog db 'Version_OpenDialog',0
sz_ColorDialog_init db 'ColorDialog_init',0 sz_ColorDialog_init db 'ColorDialog_init',0
sz_ColorDialog_start db 'ColorDialog_start',0 sz_ColorDialog_start db 'ColorDialog_start',0
szVersion_ColorDialog db 'Version_ColorDialog',0 szVersion_ColorDialog db 'Version_ColorDialog',0
;----------------------------------------------------------------------------- ;-----------------------------------------------------------------------------

View File

@@ -23,6 +23,9 @@ library_fun_memory_free equ mem_free
library_fun_memory_realloc equ mem_realloc library_fun_memory_realloc equ mem_realloc
library_fun_dll_load equ dll_load library_fun_dll_load equ dll_load
align 4
strz_lib_init db 'lib_init',0
align 4 align 4
arrea_xx dd 0 arrea_xx dd 0
file_name db '/sys/@notify',0 file_name db '/sys/@notify',0
@@ -214,7 +217,7 @@ end if
jmp i_error jmp i_error
align 4 align 4
i_begin: i_begin:
import_boxlib myimport import_some_library myimport
test eax,eax test eax,eax
jz i_exit jz i_exit
i_error: i_error:
@@ -234,13 +237,13 @@ macro load_library library_name__, library_path__, system_path__, myimport, poin
local i_begin local i_begin
local i_error local i_error
local i_exit local i_exit
push ebx
if point_dir_name__ eq if point_dir_name__ eq
copy_path library_name__, [32], library_path__,0 copy_path library_name__, [32], library_path__,0
else else
;the macros making way /current path a program/ + name system library ;the macros making way /current path a program/ + name system library
copy_path library_name__, [32], library_path__,point_dir_name__ copy_path library_name__, [32], library_path__,point_dir_name__
end if end if
push ebx
mcall SF_SYS_MISC,SSF_LOAD_DLL,library_path__ ; load of alternative mcall SF_SYS_MISC,SSF_LOAD_DLL,library_path__ ; load of alternative
test eax,eax test eax,eax
jnz i_begin jnz i_begin
@@ -251,7 +254,7 @@ end if
jmp i_error jmp i_error
align 4 align 4
i_begin: i_begin:
import_boxlib myimport import_some_library myimport
test eax,eax test eax,eax
jz i_exit jz i_exit
i_error: i_error:
@@ -309,7 +312,7 @@ align 4
align 4 align 4
end_steep: end_steep:
mov adr_load_lib,eax ;save adr lib in memory mov adr_load_lib,eax ;save adr lib in memory
import_boxlib my_import import_some_library my_import
test eax,eax test eax,eax
jz cycle0n jz cycle0n
or status_lib,2 ; status of code - enable error - import error or status_lib,2 ; status of code - enable error - import error
@@ -387,7 +390,7 @@ align 4
align 4 align 4
end_steep: end_steep:
mov adr_load_lib,eax ;save adr lib in memory mov adr_load_lib,eax ;save adr lib in memory
import_boxlib my_import import_some_library my_import
test eax,eax test eax,eax
jz cycle0n jz cycle0n
or status_lib,2 ; status of code - enable error - import error or status_lib,2 ; status of code - enable error - import error
@@ -451,7 +454,7 @@ pop ebx eax
;output: ;output:
; eax - <20>᫨ 㤠筮 <20><> 0 <20><><EFBFBD><><E3AAA0><EFBFBD> <20><> <20><><EFBFBD> <20>㭪樨 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><><E3A4A0><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E3A7A8> ; eax - <20>᫨ 㤠筮 <20><> 0 <20><><EFBFBD><><E3AAA0><EFBFBD> <20><> <20><><EFBFBD> <20>㭪樨 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><><E3A4A0><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E3A7A8>
; ebx - ࠧ<><E0A0A7><EFBFBD><E8A0A5><EFBFBD> ; ebx - ࠧ<><E0A0A7><EFBFBD><E8A0A5><EFBFBD>
macro import_boxlib myimport macro import_some_library myimport
{ {
local import_loop local import_loop
local import_find local import_find

View File

@@ -1,3 +1,7 @@
; SPDX-License-Identifier: GPL-2.0-only
; ImgTransform - utility for creating textures from images
; Copyright (C) 2020-2025 KolibriOS team
use32 use32
org 0 org 0
db 'MENUET01' db 'MENUET01'
@@ -9,23 +13,23 @@ include '../../proc32.inc'
include '../../KOSfuncs.inc' include '../../KOSfuncs.inc'
include '../../load_img.inc' include '../../load_img.inc'
include '../../load_lib.mac' include '../../load_lib.mac'
include '../../develop/libraries/TinyGL/asm_fork/kosgl.inc'
include '../../develop/libraries/TinyGL/asm_fork/opengl_const.inc' include '../../develop/libraries/TinyGL/asm_fork/opengl_const.inc'
include '../../develop/libraries/TinyGL/asm_fork/zbuffer.inc' include '../../develop/libraries/TinyGL/asm_fork/zbuffer.inc'
include '../../develop/libraries/libs-dev/libimg/libimg.inc' include '../../develop/libraries/libs-dev/libimg/libimg.inc'
include '../../develop/info3ds/info_fun_float.inc' include '../../develop/info3ds/info_fun_float.inc'
@use_library mem.Alloc,mem.Free,mem.ReAlloc,dll.Load @use_library mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
caption db 'Image transform 08.12.20',0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> caption db 'Image transform 21.05.25',0
BUF_STRUCT_SIZE equ 21 BUF_STRUCT_SIZE equ 21
buf2d_data equ dword[edi] ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> buf2d_data equ dword[edi] ;image buffer data
buf2d_w equ dword[edi+8] ;<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> buf2d_w equ dword[edi+8] ;buffer width
buf2d_h equ dword[edi+12] ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> buf2d_h equ dword[edi+12] ;buffer height
buf2d_l equ word[edi+4] buf2d_l equ word[edi+4] ;left space
buf2d_t equ word[edi+6] ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1A2A5><EFBFBD> buf2d_t equ word[edi+6] ;top space
buf2d_size_lt equ dword[edi+4] ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1ABA5> <20> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> buf2d_color equ dword[edi+16] ;buffer background color
buf2d_color equ dword[edi+16] ;<EFBFBD><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> buf2d_bits equ byte[edi+20] ;number of bits in 1 image pixel
buf2d_bits equ byte[edi+20] ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD> <20> 1-<2D> <20><><20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>
NAV_WND_L equ 145 NAV_WND_L equ 145
NAV_WND_T equ 1 NAV_WND_T equ 1
@@ -88,13 +92,13 @@ still:
cmp eax,0 cmp eax,0
je timer_funct je timer_funct
cmp al,1 cmp al,EV_REDRAW
jz red_win jz red_win
cmp al,2 cmp al,EV_KEY
jz key jz key
cmp al,3 cmp al,EV_BUTTON
jz button jz button
cmp al,6 cmp al,EV_MOUSE
jne @f jne @f
mcall SF_THREAD_INFO,procinfo,-1 mcall SF_THREAD_INFO,procinfo,-1
cmp ax,word[procinfo.window_stack_position] cmp ax,word[procinfo.window_stack_position]
@@ -1428,56 +1432,9 @@ l_libs_start:
lib_0 l_libs lib_name_0, file_name, system_dir_0, import_proclib lib_0 l_libs lib_name_0, file_name, system_dir_0, import_proclib
lib_1 l_libs lib_name_1, file_name, system_dir_1, import_libimg lib_1 l_libs lib_name_1, file_name, system_dir_1, import_libimg
lib_2 l_libs lib_name_2, library_path, system_dir_2, import_buf2d lib_2 l_libs lib_name_2, library_path, system_dir_2, import_buf2d
lib_3 l_libs lib_name_3, library_path, system_dir_3, import_lib_tinygl lib_3 l_libs lib_name_3, library_path, system_dir_3, import_tinygl
l_libs_end: l_libs_end:
align 4
import_libimg:
dd alib_init1
img_is_img dd aimg_is_img
img_info dd aimg_info
img_from_file dd aimg_from_file
img_to_file dd aimg_to_file
img_from_rgb dd aimg_from_rgb
img_to_rgb dd aimg_to_rgb
img_to_rgb2 dd aimg_to_rgb2
img_decode dd aimg_decode
img_encode dd aimg_encode
img_create dd aimg_create
img_destroy dd aimg_destroy
img_destroy_layer dd aimg_destroy_layer
img_count dd aimg_count
img_lock_bits dd aimg_lock_bits
img_unlock_bits dd aimg_unlock_bits
img_flip dd aimg_flip
img_flip_layer dd aimg_flip_layer
img_rotate dd aimg_rotate
img_rotate_layer dd aimg_rotate_layer
img_draw dd aimg_draw
dd 0,0
alib_init1 db 'lib_init',0
aimg_is_img db 'img_is_img',0 ;<3B><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1A4A5><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>
aimg_info db 'img_info',0
aimg_from_file db 'img_from_file',0
aimg_to_file db 'img_to_file',0
aimg_from_rgb db 'img_from_rgb',0
aimg_to_rgb db 'img_to_rgb',0 ;<3B><EFBFBD><EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> RGB
aimg_to_rgb2 db 'img_to_rgb2',0
aimg_decode db 'img_decode',0 ;<3B><><EFBFBD><E2AEAC><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
aimg_encode db 'img_encode',0
aimg_create db 'img_create',0
aimg_destroy db 'img_destroy',0
aimg_destroy_layer db 'img_destroy_layer',0
aimg_count db 'img_count',0
aimg_lock_bits db 'img_lock_bits',0
aimg_unlock_bits db 'img_unlock_bits',0
aimg_flip db 'img_flip',0
aimg_flip_layer db 'img_flip_layer',0
aimg_rotate db 'img_rotate',0
aimg_rotate_layer db 'img_rotate_layer',0
aimg_draw db 'img_draw',0
align 4 align 4
import_proclib: import_proclib:
OpenDialog_Init dd aOpenDialog_Init OpenDialog_Init dd aOpenDialog_Init
@@ -1490,76 +1447,9 @@ dd 0,0
aOpenDialog_Set_file_name db 'OpenDialog_set_file_name',0 aOpenDialog_Set_file_name db 'OpenDialog_set_file_name',0
aOpenDialog_Set_file_ext db 'OpenDialog_set_file_ext',0 aOpenDialog_Set_file_ext db 'OpenDialog_set_file_ext',0
align 4 include '../../develop/libraries/libs-dev/libimg/import.inc'
import_buf2d: include '../../develop/libraries/buf2d/import.inc'
init dd sz_init include '../../develop/libraries/TinyGL/asm_fork/import.inc'
buf2d_create dd sz_buf2d_create
buf2d_create_f_img dd sz_buf2d_create_f_img
buf2d_clear dd sz_buf2d_clear
buf2d_draw dd sz_buf2d_draw
buf2d_delete dd sz_buf2d_delete
buf2d_resize dd sz_buf2d_resize
buf2d_line dd sz_buf2d_line
buf2d_rect_by_size dd sz_buf2d_rect_by_size
buf2d_filled_rect_by_size dd sz_buf2d_filled_rect_by_size
buf2d_circle dd sz_buf2d_circle
buf2d_img_hdiv2 dd sz_buf2d_img_hdiv2
buf2d_img_wdiv2 dd sz_buf2d_img_wdiv2
buf2d_conv_24_to_8 dd sz_buf2d_conv_24_to_8
buf2d_conv_24_to_32 dd sz_buf2d_conv_24_to_32
buf2d_bit_blt dd sz_buf2d_bit_blt
buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp
buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha
buf2d_curve_bezier dd sz_buf2d_curve_bezier
buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix
buf2d_draw_text dd sz_buf2d_draw_text
buf2d_crop_color dd sz_buf2d_crop_color
buf2d_offset_h dd sz_buf2d_offset_h
buf2d_flood_fill dd sz_buf2d_flood_fill
buf2d_set_pixel dd sz_buf2d_set_pixel
buf2d_get_pixel dd sz_buf2d_get_pixel
dd 0,0
sz_init db 'lib_init',0
sz_buf2d_create db 'buf2d_create',0
sz_buf2d_create_f_img db 'buf2d_create_f_img',0
sz_buf2d_clear db 'buf2d_clear',0
sz_buf2d_draw db 'buf2d_draw',0
sz_buf2d_delete db 'buf2d_delete',0
sz_buf2d_resize db 'buf2d_resize',0
sz_buf2d_line db 'buf2d_line',0
sz_buf2d_rect_by_size db 'buf2d_rect_by_size',0
sz_buf2d_filled_rect_by_size db 'buf2d_filled_rect_by_size',0
sz_buf2d_circle db 'buf2d_circle',0
sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0
sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0
sz_buf2d_conv_24_to_8 db 'buf2d_conv_24_to_8',0
sz_buf2d_conv_24_to_32 db 'buf2d_conv_24_to_32',0
sz_buf2d_bit_blt db 'buf2d_bit_blt',0
sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0
sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0
sz_buf2d_curve_bezier db 'buf2d_curve_bezier',0
sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0
sz_buf2d_draw_text db 'buf2d_draw_text',0
sz_buf2d_crop_color db 'buf2d_crop_color',0
sz_buf2d_offset_h db 'buf2d_offset_h',0
sz_buf2d_flood_fill db 'buf2d_flood_fill',0
sz_buf2d_set_pixel db 'buf2d_set_pixel',0
sz_buf2d_get_pixel db 'buf2d_get_pixel',0
align 4
import_lib_tinygl:
macro E_LIB n
{
n dd sz_#n
}
include '../../../programs/develop/libraries/TinyGL/asm_fork/export.inc'
dd 0,0
macro E_LIB n
{
sz_#n db `n,0
}
include '../../../programs/develop/libraries/TinyGL/asm_fork/export.inc'
align 4 align 4
buf_0: dd 0 buf_0: dd 0

View File

@@ -259,99 +259,10 @@ aOpenDialog_Init db 'OpenDialog_init',0
aOpenDialog_Start db 'OpenDialog_start',0 aOpenDialog_Start db 'OpenDialog_start',0
;aOpenDialog_Version db 'Version_OpenDialog',0 ;aOpenDialog_Version db 'Version_OpenDialog',0
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
align 4
Box_lib_import:
;init_lib dd a_init
;version_lib dd a_version
edit_box_draw dd aEdit_box_draw Box_lib_import equ import_box_lib
edit_box_key dd aEdit_box_key include '../../develop/libraries/box_lib/import.inc'
edit_box_mouse dd aEdit_box_mouse include '../../develop/libraries/libs-dev/libimg/import.inc'
edit_box_set_text dd aEdit_box_set_text
;version_ed dd aVersion_ed
init_checkbox dd aInit_checkbox
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
PathShow_prepare dd sz_PathShow_prepare
PathShow_draw dd sz_PathShow_draw
;Version_path_show dd szVersion_path_show
dd 0,0
;a_init db 'lib_init',0
;a_version db 'version',0
aEdit_box_draw db 'edit_box_draw',0
aEdit_box_key db 'edit_box_key',0
aEdit_box_mouse db 'edit_box_mouse',0
aEdit_box_set_text db 'edit_box_set_text',0
;aVersion_ed db 'version_ed',0
aInit_checkbox db 'init_checkbox2',0
aCheck_box_draw db 'check_box_draw2',0
aCheck_box_mouse db 'check_box_mouse2',0
;aVersion_ch db 'version_ch2',0
aOption_box_draw db 'option_box_draw',0
aOption_box_mouse db 'option_box_mouse',0
;aVersion_op db 'version_op',0
sz_PathShow_prepare db 'PathShow_prepare',0
sz_PathShow_draw db 'PathShow_draw',0
;szVersion_path_show db 'version_PathShow',0
;---------------------------------------------------------------------
align 4
import_libimg:
dd alib_init1
img_is_img dd aimg_is_img
img_info dd aimg_info
img_from_file dd aimg_from_file
img_to_file dd aimg_to_file
img_from_rgb dd aimg_from_rgb
img_to_rgb dd aimg_to_rgb
img_to_rgb2 dd aimg_to_rgb2
img_decode dd aimg_decode
img_encode dd aimg_encode
img_create dd aimg_create
img_destroy dd aimg_destroy
img_destroy_layer dd aimg_destroy_layer
img_count dd aimg_count
img_lock_bits dd aimg_lock_bits
img_unlock_bits dd aimg_unlock_bits
img_flip dd aimg_flip
img_flip_layer dd aimg_flip_layer
img_rotate dd aimg_rotate
img_rotate_layer dd aimg_rotate_layer
img_draw dd aimg_draw
dd 0,0
alib_init1 db 'lib_init',0
aimg_is_img db 'img_is_img',0
aimg_info db 'img_info',0
aimg_from_file db 'img_from_file',0
aimg_to_file db 'img_to_file',0
aimg_from_rgb db 'img_from_rgb',0
aimg_to_rgb db 'img_to_rgb',0
aimg_to_rgb2 db 'img_to_rgb2',0
aimg_decode db 'img_decode',0
aimg_encode db 'img_encode',0
aimg_create db 'img_create',0
aimg_destroy db 'img_destroy',0
aimg_destroy_layer db 'img_destroy_layer',0
aimg_count db 'img_count',0
aimg_lock_bits db 'img_lock_bits',0
aimg_unlock_bits db 'img_unlock_bits',0
aimg_flip db 'img_flip',0
aimg_flip_layer db 'img_flip_layer',0
aimg_rotate db 'img_rotate',0
aimg_rotate_layer db 'img_rotate_layer',0
aimg_draw db 'img_draw',0
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
;width,left,top,color,shift_color,focus_border_color,\ ;width,left,top,color,shift_color,focus_border_color,\
; blur_border_color,text_color,max,text,mouse_variable,flags,size,pos ; blur_border_color,text_color,max,text,mouse_variable,flags,size,pos

View File

@@ -140,13 +140,13 @@ still:
jmp still jmp still
@@: @@:
cmp al,1 cmp al,EV_REDRAW
jz red_win jz red_win
cmp al,2 cmp al,EV_KEY
jz key jz key
cmp al,3 cmp al,EV_BUTTON
jz button jz button
cmp al,6 cmp al,EV_MOUSE
jne @f jne @f
mcall SF_THREAD_INFO,procinfo,-1 mcall SF_THREAD_INFO,procinfo,-1
cmp ax,word[procinfo.window_stack_position] cmp ax,word[procinfo.window_stack_position]
@@ -757,52 +757,6 @@ l_libs_start:
lib_4 l_libs lib_name_4, file_name, system_dir_4, import_libkmenu lib_4 l_libs lib_name_4, file_name, system_dir_4, import_libkmenu
l_libs_end: l_libs_end:
align 4
import_libimg:
dd alib_init1
img_is_img dd aimg_is_img
img_info dd aimg_info
img_from_file dd aimg_from_file
img_to_file dd aimg_to_file
img_from_rgb dd aimg_from_rgb
img_to_rgb dd aimg_to_rgb
img_to_rgb2 dd aimg_to_rgb2
img_decode dd aimg_decode
img_encode dd aimg_encode
img_create dd aimg_create
img_destroy dd aimg_destroy
img_destroy_layer dd aimg_destroy_layer
img_count dd aimg_count
img_lock_bits dd aimg_lock_bits
img_unlock_bits dd aimg_unlock_bits
img_flip dd aimg_flip
img_flip_layer dd aimg_flip_layer
img_rotate dd aimg_rotate
img_rotate_layer dd aimg_rotate_layer
img_draw dd aimg_draw
dd 0,0
alib_init1 db 'lib_init',0
aimg_is_img db 'img_is_img',0 ;<3B><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1A4A5><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>
aimg_info db 'img_info',0
aimg_from_file db 'img_from_file',0
aimg_to_file db 'img_to_file',0
aimg_from_rgb db 'img_from_rgb',0
aimg_to_rgb db 'img_to_rgb',0 ;<3B><EFBFBD><EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> RGB
aimg_to_rgb2 db 'img_to_rgb2',0
aimg_decode db 'img_decode',0 ;<3B><><EFBFBD><E2AEAC><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
aimg_encode db 'img_encode',0
aimg_create db 'img_create',0
aimg_destroy db 'img_destroy',0
aimg_destroy_layer db 'img_destroy_layer',0
aimg_count db 'img_count',0
aimg_lock_bits db 'img_lock_bits',0
aimg_unlock_bits db 'img_unlock_bits',0
aimg_flip db 'img_flip',0
aimg_flip_layer db 'img_flip_layer',0
aimg_rotate db 'img_rotate',0
aimg_rotate_layer db 'img_rotate_layer',0
aimg_draw db 'img_draw',0
align 4 align 4
import_proclib: import_proclib:
@@ -816,110 +770,9 @@ dd 0,0
aOpenDialog_Set_file_name db 'OpenDialog_set_file_name',0 aOpenDialog_Set_file_name db 'OpenDialog_set_file_name',0
;aOpenDialog_Set_file_ext db 'OpenDialog_set_file_ext',0 ;aOpenDialog_Set_file_ext db 'OpenDialog_set_file_ext',0
align 4 include '../../develop/libraries/libs-dev/libimg/import.inc'
import_buf2d: include '../../develop/libraries/buf2d/import.inc'
init dd sz_init include '../../develop/libraries/box_lib/import.inc'
buf2d_create dd sz_buf2d_create
buf2d_create_f_img dd sz_buf2d_create_f_img
buf2d_clear dd sz_buf2d_clear
buf2d_draw dd sz_buf2d_draw
buf2d_delete dd sz_buf2d_delete
buf2d_resize dd sz_buf2d_resize
buf2d_line dd sz_buf2d_line
buf2d_line_sm dd sz_buf2d_line_sm
buf2d_rect_by_size dd sz_buf2d_rect_by_size
buf2d_filled_rect_by_size dd sz_buf2d_filled_rect_by_size
buf2d_circle dd sz_buf2d_circle
buf2d_img_hdiv2 dd sz_buf2d_img_hdiv2
buf2d_img_wdiv2 dd sz_buf2d_img_wdiv2
buf2d_conv_24_to_8 dd sz_buf2d_conv_24_to_8
buf2d_conv_24_to_32 dd sz_buf2d_conv_24_to_32
buf2d_bit_blt dd sz_buf2d_bit_blt
buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp
buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha
buf2d_curve_bezier dd sz_buf2d_curve_bezier
buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix
buf2d_draw_text dd sz_buf2d_draw_text
buf2d_crop_color dd sz_buf2d_crop_color
buf2d_flip_h dd sz_buf2d_flip_h
buf2d_flip_v dd sz_buf2d_flip_v
buf2d_offset_h dd sz_buf2d_offset_h
buf2d_flood_fill dd sz_buf2d_flood_fill
buf2d_set_pixel dd sz_buf2d_set_pixel
dd 0,0
sz_init db 'lib_init',0
sz_buf2d_create db 'buf2d_create',0
sz_buf2d_create_f_img db 'buf2d_create_f_img',0
sz_buf2d_clear db 'buf2d_clear',0
sz_buf2d_draw db 'buf2d_draw',0
sz_buf2d_delete db 'buf2d_delete',0
sz_buf2d_resize db 'buf2d_resize',0
sz_buf2d_line db 'buf2d_line',0
sz_buf2d_line_sm db 'buf2d_line_sm',0
sz_buf2d_rect_by_size db 'buf2d_rect_by_size',0
sz_buf2d_filled_rect_by_size db 'buf2d_filled_rect_by_size',0
sz_buf2d_circle db 'buf2d_circle',0
sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0
sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0
sz_buf2d_conv_24_to_8 db 'buf2d_conv_24_to_8',0
sz_buf2d_conv_24_to_32 db 'buf2d_conv_24_to_32',0
sz_buf2d_bit_blt db 'buf2d_bit_blt',0
sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0
sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0
sz_buf2d_curve_bezier db 'buf2d_curve_bezier',0
sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0
sz_buf2d_draw_text db 'buf2d_draw_text',0
sz_buf2d_crop_color db 'buf2d_crop_color',0
sz_buf2d_flip_h db 'buf2d_flip_h',0
sz_buf2d_flip_v db 'buf2d_flip_v',0
sz_buf2d_offset_h db 'buf2d_offset_h',0
sz_buf2d_flood_fill db 'buf2d_flood_fill',0
sz_buf2d_set_pixel db 'buf2d_set_pixel',0
align 4
import_box_lib:
dd sz_init1
init_checkbox dd sz_Init_checkbox
check_box_draw dd sz_Check_box_draw
check_box_mouse dd sz_Check_box_mouse
;version_ch dd sz_Version_ch
option_box_draw dd sz_Option_box_draw
option_box_mouse dd sz_Option_box_mouse
;version_op dd sz_Version_op
edit_box_draw dd sz_edit_box_draw
edit_box_key dd sz_edit_box_key
edit_box_mouse dd sz_edit_box_mouse
edit_box_set_text dd sz_edit_box_set_text
scrollbar_ver_draw dd sz_scrollbar_ver_draw
scrollbar_hor_draw dd sz_scrollbar_hor_draw
progressbar_draw dd sz_progressbar_draw
progressbar_progress dd sz_progressbar_progress
dd 0,0
sz_init1 db 'lib_init',0
sz_Init_checkbox db 'init_checkbox2',0
sz_Check_box_draw db 'check_box_draw2',0
sz_Check_box_mouse db 'check_box_mouse2',0
;sz_Version_ch db 'version_ch2',0
sz_Option_box_draw db 'option_box_draw',0
sz_Option_box_mouse db 'option_box_mouse',0
;sz_Version_op db 'version_op',0
sz_edit_box_draw db 'edit_box_draw',0
sz_edit_box_key db 'edit_box_key',0
sz_edit_box_mouse db 'edit_box_mouse',0
sz_edit_box_set_text db 'edit_box_set_text',0
sz_scrollbar_ver_draw db 'scrollbar_v_draw',0
sz_scrollbar_hor_draw db 'scrollbar_h_draw',0
sz_progressbar_draw db 'progressbar_draw', 0
sz_progressbar_progress db 'progressbar_progress', 0
align 4 align 4
import_libkmenu: import_libkmenu:

View File

@@ -15,16 +15,16 @@ include 'cnc_editor.inc'
include '../../develop/info3ds/info_fun_float.inc' include '../../develop/info3ds/info_fun_float.inc'
@use_library mem.Alloc,mem.Free,mem.ReAlloc,dll.Load @use_library mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
caption db 'CNC editor 23.05.19',0 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> caption db 'CNC editor 07.05.25',0 ;window signature
run_file_70 FileInfoBlock run_file_70 FileInfoBlock
offs_last_timer dd 0 ;<3B><><EFBFBD><E1ABA5><EFBFBD><EFBFBD><><E1A4A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20>㭪樨 ⠩<><E2A0A9><EFBFBD><EFBFBD> offs_last_timer dd 0 ;<3B><><EFBFBD><E1ABA5><EFBFBD><EFBFBD><><E1A4A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20>㭪樨 ⠩<><E2A0A9><EFBFBD><EFBFBD>
IMAGE_TOOLBAR_ICON_SIZE equ 16*16*3 IMAGE_TOOLBAR_ICON_SIZE equ 16*16*3
image_data_toolbar dd 0 ;<EFBFBD><EFBFBD><EFBFBD> <20><> <20><EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD> <20><EFBFBD> <20><EFBFBD><EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> image_data_toolbar dd 0 ;pointer to temporary memory, needed for image conversion
icon_tl_sys dd 0 ;<EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><EFBFBD><E0A0AD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E2A5AC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> icon_tl_sys dd 0 ;pointer to memory for storing system icons
icon_toolbar dd 0 ;<EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><EFBFBD><E0A0AD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ꥪ⮢ icon_toolbar dd 0 ;pointer to memory for storing object icons
include 'wnd_point_coords.inc' include 'wnd_point_coords.inc'
include 'wnd_scale.inc' include 'wnd_scale.inc'
@@ -111,13 +111,13 @@ still:
jmp still jmp still
@@: @@:
cmp al,1 cmp al,EV_REDRAW
jz red_win jz red_win
cmp al,2 cmp al,EV_KEY
jz key jz key
cmp al,3 cmp al,EV_BUTTON
jz button jz button
cmp al,6 cmp al,EV_MOUSE
jne @f jne @f
mcall SF_THREAD_INFO,procinfo,-1 mcall SF_THREAD_INFO,procinfo,-1
cmp ax,word[procinfo.window_stack_position] cmp ax,word[procinfo.window_stack_position]
@@ -360,8 +360,7 @@ pushad
cmp eax,dword[buf_0.h] ;ᬮ<>ਬ ࠧ<><E0A0A7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> cmp eax,dword[buf_0.h] ;ᬮ<>ਬ ࠧ<><E0A0A7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
jne @f jne @f
cmp ebx,dword[buf_0.w] cmp ebx,dword[buf_0.w]
jne @f je .end0
jmp .end0
@@: @@:
stdcall [buf2d_resize],buf_0,ebx,eax,1 stdcall [buf2d_resize],buf_0,ebx,eax,1
mov eax,ObjData mov eax,ObjData
@@ -2105,53 +2104,6 @@ l_libs_start:
lib_3 l_libs lib_name_3, file_name, system_dir_3, import_box_lib lib_3 l_libs lib_name_3, file_name, system_dir_3, import_box_lib
l_libs_end: l_libs_end:
align 4
import_libimg:
dd alib_init1
img_is_img dd aimg_is_img
img_info dd aimg_info
img_from_file dd aimg_from_file
img_to_file dd aimg_to_file
img_from_rgb dd aimg_from_rgb
img_to_rgb dd aimg_to_rgb
img_to_rgb2 dd aimg_to_rgb2
img_decode dd aimg_decode
img_encode dd aimg_encode
img_create dd aimg_create
img_destroy dd aimg_destroy
img_destroy_layer dd aimg_destroy_layer
img_count dd aimg_count
img_lock_bits dd aimg_lock_bits
img_unlock_bits dd aimg_unlock_bits
img_flip dd aimg_flip
img_flip_layer dd aimg_flip_layer
img_rotate dd aimg_rotate
img_rotate_layer dd aimg_rotate_layer
img_draw dd aimg_draw
dd 0,0
alib_init1 db 'lib_init',0
aimg_is_img db 'img_is_img',0 ;<3B><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1A4A5><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>
aimg_info db 'img_info',0
aimg_from_file db 'img_from_file',0
aimg_to_file db 'img_to_file',0
aimg_from_rgb db 'img_from_rgb',0
aimg_to_rgb db 'img_to_rgb',0 ;<3B><EFBFBD><EFBFBD><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> RGB
aimg_to_rgb2 db 'img_to_rgb2',0
aimg_decode db 'img_decode',0 ;<3B><><EFBFBD><E2AEAC><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
aimg_encode db 'img_encode',0
aimg_create db 'img_create',0
aimg_destroy db 'img_destroy',0
aimg_destroy_layer db 'img_destroy_layer',0
aimg_count db 'img_count',0
aimg_lock_bits db 'img_lock_bits',0
aimg_unlock_bits db 'img_unlock_bits',0
aimg_flip db 'img_flip',0
aimg_flip_layer db 'img_flip_layer',0
aimg_rotate db 'img_rotate',0
aimg_rotate_layer db 'img_rotate_layer',0
aimg_draw db 'img_draw',0
align 4 align 4
import_proclib: import_proclib:
OpenDialog_Init dd aOpenDialog_Init OpenDialog_Init dd aOpenDialog_Init
@@ -2164,162 +2116,10 @@ dd 0,0
aOpenDialog_Set_file_name db 'OpenDialog_set_file_name',0 aOpenDialog_Set_file_name db 'OpenDialog_set_file_name',0
aOpenDialog_Set_file_ext db 'OpenDialog_set_file_ext',0 aOpenDialog_Set_file_ext db 'OpenDialog_set_file_ext',0
align 4 include '../../develop/libraries/libs-dev/libimg/import.inc'
import_buf2d: include '../../develop/libraries/buf2d/import.inc'
init dd sz_init include '../../develop/libraries/box_lib/import.inc'
buf2d_create dd sz_buf2d_create
buf2d_create_f_img dd sz_buf2d_create_f_img
buf2d_clear dd sz_buf2d_clear
buf2d_draw dd sz_buf2d_draw
buf2d_delete dd sz_buf2d_delete
buf2d_resize dd sz_buf2d_resize
buf2d_line dd sz_buf2d_line
buf2d_line_sm dd sz_buf2d_line_sm
buf2d_rect_by_size dd sz_buf2d_rect_by_size
buf2d_filled_rect_by_size dd sz_buf2d_filled_rect_by_size
buf2d_circle dd sz_buf2d_circle
buf2d_img_hdiv2 dd sz_buf2d_img_hdiv2
buf2d_img_wdiv2 dd sz_buf2d_img_wdiv2
buf2d_conv_24_to_8 dd sz_buf2d_conv_24_to_8
buf2d_conv_24_to_32 dd sz_buf2d_conv_24_to_32
buf2d_bit_blt dd sz_buf2d_bit_blt
buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp
buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha
buf2d_curve_bezier dd sz_buf2d_curve_bezier
buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix
buf2d_draw_text dd sz_buf2d_draw_text
buf2d_crop_color dd sz_buf2d_crop_color
buf2d_flip_h dd sz_buf2d_flip_h
buf2d_flip_v dd sz_buf2d_flip_v
buf2d_offset_h dd sz_buf2d_offset_h
buf2d_flood_fill dd sz_buf2d_flood_fill
buf2d_set_pixel dd sz_buf2d_set_pixel
dd 0,0
sz_init db 'lib_init',0
sz_buf2d_create db 'buf2d_create',0
sz_buf2d_create_f_img db 'buf2d_create_f_img',0
sz_buf2d_clear db 'buf2d_clear',0
sz_buf2d_draw db 'buf2d_draw',0
sz_buf2d_delete db 'buf2d_delete',0
sz_buf2d_resize db 'buf2d_resize',0
sz_buf2d_line db 'buf2d_line',0
sz_buf2d_line_sm db 'buf2d_line_sm',0
sz_buf2d_rect_by_size db 'buf2d_rect_by_size',0
sz_buf2d_filled_rect_by_size db 'buf2d_filled_rect_by_size',0
sz_buf2d_circle db 'buf2d_circle',0
sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0
sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0
sz_buf2d_conv_24_to_8 db 'buf2d_conv_24_to_8',0
sz_buf2d_conv_24_to_32 db 'buf2d_conv_24_to_32',0
sz_buf2d_bit_blt db 'buf2d_bit_blt',0
sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0
sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0
sz_buf2d_curve_bezier db 'buf2d_curve_bezier',0
sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0
sz_buf2d_draw_text db 'buf2d_draw_text',0
sz_buf2d_crop_color db 'buf2d_crop_color',0
sz_buf2d_flip_h db 'buf2d_flip_h',0
sz_buf2d_flip_v db 'buf2d_flip_v',0
sz_buf2d_offset_h db 'buf2d_offset_h',0
sz_buf2d_flood_fill db 'buf2d_flood_fill',0
sz_buf2d_set_pixel db 'buf2d_set_pixel',0
align 4
import_box_lib:
dd sz_init1
init_checkbox dd sz_Init_checkbox
check_box_draw dd sz_Check_box_draw
check_box_mouse dd sz_Check_box_mouse
;version_ch dd sz_Version_ch
option_box_draw dd sz_Option_box_draw
option_box_mouse dd sz_Option_box_mouse
;version_op dd sz_Version_op
edit_box_draw dd sz_edit_box_draw
edit_box_key dd sz_edit_box_key
edit_box_mouse dd sz_edit_box_mouse
edit_box_set_text dd sz_edit_box_set_text
scrollbar_ver_draw dd sz_scrollbar_ver_draw
scrollbar_hor_draw dd sz_scrollbar_hor_draw
tl_data_init dd sz_tl_data_init
tl_data_clear dd sz_tl_data_clear
tl_info_clear dd sz_tl_info_clear
tl_key dd sz_tl_key
tl_mouse dd sz_tl_mouse
tl_draw dd sz_tl_draw
tl_info_undo dd sz_tl_info_undo
tl_info_redo dd sz_tl_info_redo
tl_node_add dd sz_tl_node_add
tl_node_set_data dd sz_tl_node_set_data
tl_node_get_data dd sz_tl_node_get_data
tl_node_delete dd sz_tl_node_delete
tl_node_move_up dd sz_tl_node_move_up
tl_node_move_down dd sz_tl_node_move_down
tl_cur_beg dd sz_tl_cur_beg
tl_cur_next dd sz_tl_cur_next
tl_cur_perv dd sz_tl_cur_perv
tl_node_close_open dd sz_tl_node_close_open
tl_node_lev_inc dd sz_tl_node_lev_inc
tl_node_lev_dec dd sz_tl_node_lev_dec
tl_node_poi_get_info dd sz_tl_node_poi_get_info
tl_node_poi_get_next_info dd sz_tl_node_poi_get_next_info
tl_node_poi_get_data dd sz_tl_node_poi_get_data
dd 0,0
sz_init1 db 'lib_init',0
sz_Init_checkbox db 'init_checkbox2',0
sz_Check_box_draw db 'check_box_draw2',0
sz_Check_box_mouse db 'check_box_mouse2',0
;sz_Version_ch db 'version_ch2',0
sz_Option_box_draw db 'option_box_draw',0
sz_Option_box_mouse db 'option_box_mouse',0
;sz_Version_op db 'version_op',0
sz_edit_box_draw db 'edit_box_draw',0
sz_edit_box_key db 'edit_box_key',0
sz_edit_box_mouse db 'edit_box_mouse',0
sz_edit_box_set_text db 'edit_box_set_text',0
sz_scrollbar_ver_draw db 'scrollbar_v_draw',0
sz_scrollbar_hor_draw db 'scrollbar_h_draw',0
sz_tl_data_init db 'tl_data_init',0
sz_tl_data_clear db 'tl_data_clear',0
sz_tl_info_clear db 'tl_info_clear',0
sz_tl_key db 'tl_key',0
sz_tl_mouse db 'tl_mouse',0
sz_tl_draw db 'tl_draw',0
sz_tl_info_undo db 'tl_info_undo',0
sz_tl_info_redo db 'tl_info_redo',0
sz_tl_node_add db 'tl_node_add',0
sz_tl_node_set_data db 'tl_node_set_data',0
sz_tl_node_get_data db 'tl_node_get_data',0
sz_tl_node_delete db 'tl_node_delete',0
sz_tl_node_move_up db 'tl_node_move_up',0
sz_tl_node_move_down db 'tl_node_move_down',0
sz_tl_cur_beg db 'tl_cur_beg',0
sz_tl_cur_next db 'tl_cur_next',0
sz_tl_cur_perv db 'tl_cur_perv',0
sz_tl_node_close_open db 'tl_node_close_open',0
sz_tl_node_lev_inc db 'tl_node_lev_inc',0
sz_tl_node_lev_dec db 'tl_node_lev_dec',0
sz_tl_node_poi_get_info db 'tl_node_poi_get_info',0
sz_tl_node_poi_get_next_info db 'tl_node_poi_get_next_info',0
sz_tl_node_poi_get_data db 'tl_node_poi_get_data',0
align 4
mouse_dd dd 0
last_time dd 0
align 16
sc system_colors
align 16
procinfo process_information
align 4 align 4
buf_0: dd 0 ;㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD> buf_0: dd 0 ;㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0A0A6><EFBFBD><EFBFBD>
@@ -2348,7 +2148,7 @@ buf_png:
align 4 align 4
el_focus dd tree1 el_focus dd tree1
tree1 tree_list size_one_list,1000+2, tl_key_no_edit+tl_draw_par_line,\ tree1 tree_list size_one_list,1000+2, tl_key_no_edit+tl_draw_par_line,\
16,16, 0xffffff,0xb0d0ff,0x400040, 5,35,195-16,340, 16,Figure.Caption,0,\ 16,16, 0xffffff,0xb0d0ff,0x10400040, 5,35,195-16,340, 16,Figure.Caption,0,\
el_focus,w_scr_t1,0 el_focus,w_scr_t1,0
align 4 align 4
@@ -2400,6 +2200,14 @@ endp
align 16 align 16
i_end: i_end:
mouse_dd dd 0
last_time dd 0
align 16
sc system_colors
align 16
procinfo process_information
rb 2048 rb 2048
thread_coords: thread_coords:
rb 2048 rb 2048

View File

@@ -81,148 +81,7 @@ lib_name_5 db 'kmenu.obj',0
;--------------------------------------------------------------------- ;---------------------------------------------------------------------
align 4 include '../../develop/libraries/box_lib/import.inc'
import_box_lib:
dd alib_init0 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><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 dd aEdit_box_draw
edit_box_key dd aEdit_box_key
edit_box_mouse dd aEdit_box_mouse
;edit_box_set_text dd aEdit_box_set_text
;version_ed dd aVersion_ed
init_checkbox dd ainit_checkbox
check_box_draw dd acheck_box_draw
check_box_mouse dd acheck_box_mouse
option_box_draw dd aOption_box_draw
option_box_mouse dd aOption_box_mouse
;version_op dd aVersion_op
scrollbar_ver_draw dd aScrollbar_ver_draw
scrollbar_ver_mouse dd aScrollbar_ver_mouse
scrollbar_hor_draw dd aScrollbar_hor_draw
scrollbar_hor_mouse dd aScrollbar_hor_mouse
;version_scrollbar dd aVersion_scrollbar
tl_data_init dd sz_tl_data_init
tl_data_clear dd sz_tl_data_clear
tl_info_clear dd sz_tl_info_clear
tl_key dd sz_tl_key
tl_mouse dd sz_tl_mouse
tl_draw dd sz_tl_draw
tl_info_undo dd sz_tl_info_undo
tl_info_redo dd sz_tl_info_redo
tl_node_add dd sz_tl_node_add
tl_node_set_data dd sz_tl_node_set_data
tl_node_get_data dd sz_tl_node_get_data
tl_node_delete dd sz_tl_node_delete
tl_cur_beg dd sz_tl_cur_beg
tl_cur_next dd sz_tl_cur_next
tl_cur_perv dd sz_tl_cur_perv
;tl_node_close_open dd sz_tl_node_close_open
tl_node_lev_inc dd sz_tl_node_lev_inc
tl_node_lev_dec dd sz_tl_node_lev_dec
ted_but_sumb_upper dd sz_ted_but_sumb_upper
ted_but_sumb_lover dd sz_ted_but_sumb_lover
ted_but_convert_by_table dd sz_ted_but_convert_by_table
ted_can_save dd sz_ted_can_save
ted_clear dd sz_ted_clear
ted_delete dd sz_ted_delete
ted_draw dd sz_ted_draw
ted_init dd sz_ted_init
ted_init_scroll_bars dd sz_ted_init_scroll_bars
ted_init_syntax_file dd sz_ted_init_syntax_file
ted_is_select dd sz_ted_is_select
ted_key dd sz_ted_key
ted_mouse dd sz_ted_mouse
ted_open_file dd sz_ted_open_file
ted_save_file dd sz_ted_save_file
ted_text_add dd sz_ted_text_add
ted_but_select_word dd sz_ted_but_select_word
ted_but_cut dd sz_ted_but_cut
ted_but_copy dd sz_ted_but_copy
ted_but_paste dd sz_ted_but_paste
ted_but_undo dd sz_ted_but_undo
ted_but_redo dd sz_ted_but_redo
ted_but_reverse dd sz_ted_but_reverse
ted_but_find dd sz_ted_but_find
ted_but_replace dd sz_ted_but_replace
ted_text_colored dd sz_ted_text_colored
ted_go_to_position dd sz_ted_go_to_position
version_text_edit dd sz_ted_version
dd 0,0
alib_init0 db 'lib_init',0
aEdit_box_draw db 'edit_box_draw',0
aEdit_box_key db 'edit_box_key',0
aEdit_box_mouse db 'edit_box_mouse',0
;aEdit_box_set_text db 'edit_box_set_text',0
;aVersion_ed db 'version_ed',0
ainit_checkbox db 'init_checkbox2',0
acheck_box_draw db 'check_box_draw2',0
acheck_box_mouse db 'check_box_mouse2',0
aOption_box_draw db 'option_box_draw',0
aOption_box_mouse db 'option_box_mouse',0
;aVersion_op db 'version_op',0
aScrollbar_ver_draw db 'scrollbar_v_draw',0
aScrollbar_ver_mouse db 'scrollbar_v_mouse',0
aScrollbar_hor_draw db 'scrollbar_h_draw',0
aScrollbar_hor_mouse db 'scrollbar_h_mouse',0
;aVersion_scrollbar db 'version_scrollbar',0
sz_tl_data_init db 'tl_data_init',0
sz_tl_data_clear db 'tl_data_clear',0
sz_tl_info_clear db 'tl_info_clear',0
sz_tl_key db 'tl_key',0
sz_tl_mouse db 'tl_mouse',0
sz_tl_draw db 'tl_draw',0
sz_tl_info_undo db 'tl_info_undo',0
sz_tl_info_redo db 'tl_info_redo',0
sz_tl_node_add db 'tl_node_add',0
sz_tl_node_set_data db 'tl_node_set_data',0
sz_tl_node_get_data db 'tl_node_get_data',0
sz_tl_node_delete db 'tl_node_delete',0
sz_tl_cur_beg db 'tl_cur_beg',0
sz_tl_cur_next db 'tl_cur_next',0
sz_tl_cur_perv db 'tl_cur_perv',0
;sz_tl_node_close_open db 'tl_node_close_open',0
sz_tl_node_lev_inc db 'tl_node_lev_inc',0
sz_tl_node_lev_dec db 'tl_node_lev_dec',0
sz_ted_but_sumb_upper db 'ted_but_sumb_upper',0
sz_ted_but_sumb_lover db 'ted_but_sumb_lover',0
sz_ted_but_convert_by_table db 'ted_but_convert_by_table',0
sz_ted_can_save db 'ted_can_save',0
sz_ted_clear db 'ted_clear',0
sz_ted_delete db 'ted_delete',0
sz_ted_draw db 'ted_draw',0
sz_ted_init db 'ted_init',0
sz_ted_init_scroll_bars db 'ted_init_scroll_bars',0
sz_ted_init_syntax_file db 'ted_init_syntax_file',0
sz_ted_is_select db 'ted_is_select',0
sz_ted_key db 'ted_key',0
sz_ted_mouse db 'ted_mouse',0
sz_ted_open_file db 'ted_open_file',0
sz_ted_save_file db 'ted_save_file',0
sz_ted_text_add db 'ted_text_add',0
sz_ted_but_select_word db 'ted_but_select_word',0
sz_ted_but_cut db 'ted_but_cut',0
sz_ted_but_copy db 'ted_but_copy',0
sz_ted_but_paste db 'ted_but_paste',0
sz_ted_but_undo db 'ted_but_undo',0
sz_ted_but_redo db 'ted_but_redo',0
sz_ted_but_reverse db 'ted_but_reverse',0
sz_ted_but_find db 'ted_but_find',0
sz_ted_but_replace db 'ted_but_replace',0
sz_ted_text_colored db 'ted_text_colored',0
sz_ted_go_to_position db 'ted_go_to_position',0
sz_ted_version db 'version_text_edit',0
align 4 align 4
import_proclib: import_proclib:
@@ -241,18 +100,8 @@ dd 0,0
amb_create db 'mb_create',0 amb_create db 'mb_create',0
amb_reinit db 'mb_reinit',0 amb_reinit db 'mb_reinit',0
amb_setfunctions db 'mb_setfunctions',0 amb_setfunctions db 'mb_setfunctions',0
align 4 include '../../develop/libraries/libs-dev/libimg/import.inc'
import_libimg:
dd alib_init1
img_to_rgb2 dd aimg_to_rgb2
img_decode dd aimg_decode
img_destroy dd aimg_destroy
dd 0,0
alib_init1 db 'lib_init',0
aimg_to_rgb2 db 'img_to_rgb2',0
aimg_decode db 'img_decode',0 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
aimg_destroy db 'img_destroy',0
align 4 align 4
import_libini: import_libini:

View File

@@ -394,11 +394,11 @@ p_syntax:
mov ecx,ted_wnd_t mov ecx,ted_wnd_t
shl ecx,16 shl ecx,16
mov cx,20 mov cx,20
mcall SF_DRAW_RECT,TED_PANEL_WIDTH,,[sc.work] ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mcall SF_DRAW_RECT,TED_PANEL_WIDTH,,[sc.work] ;drawing the top background rectangle
stdcall [tl_draw], tree1 stdcall [tl_draw], tree1
mov [ws_dir_lbox.all_redraw],1 ;<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><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 [ws_dir_lbox.all_redraw],1 ;for a complete redraw of the child scroll
stdcall [scrollbar_ver_draw], ws_dir_lbox stdcall [scrollbar_v_draw], ws_dir_lbox
ror ecx,16 ror ecx,16
add ecx,[tree1.box_height] add ecx,[tree1.box_height]
@@ -411,7 +411,7 @@ p_syntax:
sub cx,20 sub cx,20
sub ecx,[tree1.box_height] sub ecx,[tree1.box_height]
inc cx inc cx
int 0x40 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> int 0x40 ;drawing the bottom background rectangle
mov ecx,ted_wnd_t mov ecx,ted_wnd_t
add ecx,25 add ecx,25
@@ -436,7 +436,7 @@ p_syntax:
popad popad
ret ret
MIN_M_WND_H equ 100 ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> MIN_M_WND_H equ 100 ;minimum height of main window
;input: ;input:
; edi = pointer to tedit struct ; edi = pointer to tedit struct
align 4 align 4

View File

@@ -80,7 +80,7 @@ pushad
@@: @@:
mov dword[w_scr_t3.all_redraw],1 mov dword[w_scr_t3.all_redraw],1
stdcall [scrollbar_ver_draw], w_scr_t3 stdcall [scrollbar_v_draw], w_scr_t3
stdcall [tl_draw], tree3 stdcall [tl_draw], tree3
stdcall [edit_box_draw], edit3 stdcall [edit_box_draw], edit3
mcall SF_REDRAW,SSF_END_DRAW mcall SF_REDRAW,SSF_END_DRAW