programs/demos: Post-SVN tidy (part 2) (#412)

- Move source code from `trunk` into root directory for each program.
- Update build files and ASM include paths. Add SPDX license header where appropriate.
- Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden.

(Work towards #75, point 3)

Reviewed-on: KolibriOS/kolibrios#412
Reviewed-by: Ivan B <dunkaist@gmail.com>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: Andrew <dent.ace@gmail.com>
Co-committed-by: Andrew <dent.ace@gmail.com>
This commit is contained in:
ace-dent authored and Burer committed 2026-04-10 07:12:30 +00:00
1 parent 9ca506ed15
commit 398dcbb13d
59 files changed
+2026 -1996

No files matched your search

+9 -9
View File
@@ -451,15 +451,15 @@ tup.append_table(img_files, {
{"UNZ", VAR_PROGS .. "/fs/unz/unz"}, {"UNZ", VAR_PROGS .. "/fs/unz/unz"},
{"ZKEY", VAR_PROGS .. "/system/zkey/trunk/ZKEY"}, {"ZKEY", VAR_PROGS .. "/system/zkey/trunk/ZKEY"},
{"3D/3DWAV", VAR_PROGS .. "/demos/3dwav/3dwav"}, {"3D/3DWAV", VAR_PROGS .. "/demos/3dwav/3dwav"},
{"3D/CROWNSCR", VAR_PROGS .. "/demos/crownscr/trunk/crownscr"}, {"3D/CROWNSCR", VAR_PROGS .. "/demos/crownscr/crownscr"},
{"3D/3DCUBE2", VAR_PROGS .. "/demos/3dcube2/3DCUBE2"}, {"3D/3DCUBE2", VAR_PROGS .. "/demos/3dcube2/3DCUBE2"},
{"3D/FREE3D04", VAR_PROGS .. "/demos/free3d04/trunk/free3d04"}, {"3D/FREE3D04", VAR_PROGS .. "/demos/free3d04/free3d04"},
{"3D/GEARS", VAR_PROGS .. "/develop/libraries/TinyGL/asm_fork/examples/gears"}, {"3D/GEARS", VAR_PROGS .. "/develop/libraries/TinyGL/asm_fork/examples/gears"},
{"3D/RAY", VAR_PROGS .. "/demos/ray/ray"}, {"3D/RAY", VAR_PROGS .. "/demos/ray/ray"},
{"3D/VIEW3DS", VAR_PROGS .. "/demos/view3ds/view3ds"}, {"3D/VIEW3DS", VAR_PROGS .. "/demos/view3ds/view3ds"},
{"DEMOS/BCDCLK", VAR_PROGS .. "/demos/bcdclk/trunk/bcdclk"}, {"DEMOS/BCDCLK", VAR_PROGS .. "/demos/bcdclk/bcdclk"},
{"DEMOS/BUDHBROT", VAR_PROGS .. "/demos/buddhabrot/trunk/buddhabrot"}, {"DEMOS/BUDHBROT", VAR_PROGS .. "/demos/buddhabrot/buddhabrot"},
{"DEMOS/EYES", VAR_PROGS .. "/demos/eyes/trunk/eyes"}, {"DEMOS/EYES", VAR_PROGS .. "/demos/eyes/eyes"},
{"DEMOS/FIREWORK", VAR_PROGS .. "/demos/firework/firework"}, {"DEMOS/FIREWORK", VAR_PROGS .. "/demos/firework/firework"},
{"DEMOS/MOVBACK", VAR_PROGS .. "/demos/movback/movback"}, {"DEMOS/MOVBACK", VAR_PROGS .. "/demos/movback/movback"},
{"DEMOS/PLASMA", VAR_PROGS .. "/demos/plasma/plasma"}, {"DEMOS/PLASMA", VAR_PROGS .. "/demos/plasma/plasma"},
@@ -484,9 +484,9 @@ tup.append_table(img_files, {
{"DEVELOP/MSTATE", VAR_PROGS .. "/develop/mstate/mstate"}, {"DEVELOP/MSTATE", VAR_PROGS .. "/develop/mstate/mstate"},
{"DEVELOP/SCANCODE", VAR_PROGS .. "/develop/scancode/trunk/scancode"}, {"DEVELOP/SCANCODE", VAR_PROGS .. "/develop/scancode/trunk/scancode"},
{"DEVELOP/EXAMPLES/CIRCLE", VAR_PROGS .. "/develop/examples/circle/trunk/circle"}, {"DEVELOP/EXAMPLES/CIRCLE", VAR_PROGS .. "/develop/examples/circle/trunk/circle"},
{"DEVELOP/EXAMPLES/COLORREF", VAR_PROGS .. "/demos/colorref/trunk/colorref"}, {"DEVELOP/EXAMPLES/COLORREF", VAR_PROGS .. "/demos/colorref/colorref"},
{"DEVELOP/EXAMPLES/CONGET", VAR_PROGS .. "/develop/libraries/console_coff/examples/test_gets"}, {"DEVELOP/EXAMPLES/CONGET", VAR_PROGS .. "/develop/libraries/console_coff/examples/test_gets"},
{"DEVELOP/EXAMPLES/CSLIDE", VAR_PROGS .. "/demos/cslide/trunk/cslide"}, {"DEVELOP/EXAMPLES/CSLIDE", VAR_PROGS .. "/demos/cslide/cslide"},
{"DEVELOP/EXAMPLES/THREAD", VAR_PROGS .. "/develop/examples/thread/trunk/thread"}, {"DEVELOP/EXAMPLES/THREAD", VAR_PROGS .. "/develop/examples/thread/trunk/thread"},
{"File Managers/KFAR", VAR_PROGS .. "/fs/kfar/trunk/kfar"}, {"File Managers/KFAR", VAR_PROGS .. "/fs/kfar/trunk/kfar"},
{"File Managers/OPENDIAL", VAR_PROGS .. "/fs/opendial/opendial"}, {"File Managers/OPENDIAL", VAR_PROGS .. "/fs/opendial/opendial"},
@@ -599,7 +599,7 @@ tup.append_table(extra_files, {
{"HD_Load/USB_boot_old/", VAR_PROGS .. "/hd_load/usb_boot_old/MeOSload.com"}, {"HD_Load/USB_boot_old/", VAR_PROGS .. "/hd_load/usb_boot_old/MeOSload.com"},
{"HD_Load/USB_boot_old/", VAR_PROGS .. "/hd_load/usb_boot_old/enable.exe"}, {"HD_Load/USB_boot_old/", VAR_PROGS .. "/hd_load/usb_boot_old/enable.exe"},
{"kolibrios/3D/3dsheart", VAR_PROGS .. "/demos/3dsheart/3dsheart"}, {"kolibrios/3D/3dsheart", VAR_PROGS .. "/demos/3dsheart/3dsheart"},
{"kolibrios/3D/flatwav", VAR_PROGS .. "/demos/flatwav/trunk/flatwav"}, {"kolibrios/3D/flatwav", VAR_PROGS .. "/demos/flatwav/flatwav"},
{"kolibrios/3D/mos3de", VAR_PROGS .. "/demos/mos3de/mos3de"}, {"kolibrios/3D/mos3de", VAR_PROGS .. "/demos/mos3de/mos3de"},
{"kolibrios/3D/info3ds/INFO3DS", VAR_PROGS .. "/develop/info3ds/info3ds"}, {"kolibrios/3D/info3ds/INFO3DS", VAR_PROGS .. "/develop/info3ds/info3ds"},
{"kolibrios/3D/textures1", VAR_PROGS .. "/develop/libraries/TinyGL/asm_fork/examples/textures1"}, {"kolibrios/3D/textures1", VAR_PROGS .. "/develop/libraries/TinyGL/asm_fork/examples/textures1"},
@@ -760,7 +760,7 @@ tup.append_table(img_files, {
{"LIB/ICONV.OBJ", VAR_PROGS .. "/develop/libraries/iconv/iconv.obj"}, {"LIB/ICONV.OBJ", VAR_PROGS .. "/develop/libraries/iconv/iconv.obj"},
}) })
tup.append_table(extra_files, { tup.append_table(extra_files, {
-- {"kolibrios/3D/cubeline", VAR_PROGS .. "/demos/cubeline/trunk/cubeline"}, -- {"kolibrios/3D/cubeline", VAR_PROGS .. "/demos/cubeline/cubeline"},
{"kolibrios/3D/gears", VAR_PROGS .. "/demos/gears/gears"}, {"kolibrios/3D/gears", VAR_PROGS .. "/demos/gears/gears"},
{"kolibrios/emul/e80/e80", VAR_PROGS .. "/emulator/e80/e80"}, {"kolibrios/emul/e80/e80", VAR_PROGS .. "/emulator/e80/e80"},
{"kolibrios/emul/uarm/", VAR_CONTRIB .. "/other/uarm/uARM"}, {"kolibrios/emul/uarm/", VAR_CONTRIB .. "/other/uarm/uARM"},
+8 -8
View File
@@ -207,16 +207,16 @@ fasm demos\3dtcub10\3dtcub10.asm %BIN%\3d\3dtcub10
cd demos\aclock\trunk\ cd demos\aclock\trunk\
nasmw -t -f bin -o ..\..\..\%BIN%\demos\aclock aclock.asm nasmw -t -f bin -o ..\..\..\%BIN%\demos\aclock aclock.asm
cd ..\..\.. cd ..\..\..
fasm demos\bcdclk\trunk\bcdclk.asm %BIN%\demos\bcdclk fasm demos\bcdclk\bcdclk.asm %BIN%\demos\bcdclk
fasm demos\bgitest\trunk\bgitest.asm %BIN%\fonts\bgitest fasm demos\bgitest\trunk\bgitest.asm %BIN%\fonts\bgitest
fasm demos\colorref\trunk\colorref.asm %BIN%\demos\colorref fasm demos\colorref\colorref.asm %BIN%\demos\colorref
fasm demos\crownscr\trunk\crownscr.asm %BIN%\3d\crownscr fasm demos\crownscr\crownscr.asm %BIN%\3d\crownscr
fasm demos\cslide\trunk\cslide.asm %BIN%\demos\cslide fasm demos\cslide\cslide.asm %BIN%\demos\cslide
fasm demos\eyes\trunk\eyes.asm %BIN%\demos\eyes fasm demos\eyes\eyes.asm %BIN%\demos\eyes
fasm demos\fire\trunk\fire.asm %BIN%\demos\fire fasm demos\fire\fire.asm %BIN%\demos\fire
fasm demos\fire2\trunk\fire2.asm %BIN%\demos\fire2 fasm demos\fire2\fire2.asm %BIN%\demos\fire2
fasm demos\firework\trunk\firework.asm %BIN%\demos\firework fasm demos\firework\trunk\firework.asm %BIN%\demos\firework
fasm demos\free3d04\trunk\free3d04.asm %BIN%\3d\free3d04 fasm demos\free3d04\free3d04.asm %BIN%\3d\free3d04
fasm demos\magnify\trunk\magnify.asm %BIN%\magnify fasm demos\magnify\trunk\magnify.asm %BIN%\magnify
fasm demos\movback\trunk\movback.asm %BIN%\demos\movback fasm demos\movback\trunk\movback.asm %BIN%\demos\movback
fasm demos\plasma\trunk\plasma.asm %BIN%\demos\plasma fasm demos\plasma\trunk\plasma.asm %BIN%\demos\plasma
@@ -1,5 +1,5 @@
if tup.getconfig("NO_FASM") ~= "" then return end if tup.getconfig("NO_FASM") ~= "" then return end
HELPERDIR = (tup.getconfig("HELPERDIR") == "") and "../../.." or tup.getconfig("HELPERDIR") HELPERDIR = (tup.getconfig("HELPERDIR") == "") and "../.." or tup.getconfig("HELPERDIR")
tup.include(HELPERDIR .. "/use_fasm.lua") tup.include(HELPERDIR .. "/use_fasm.lua")
add_include(tup.getvariantdir()) add_include(tup.getvariantdir())
@@ -1,150 +1,153 @@
; ; SPDX-License-Identifier: NOASSERTION
; BCD CLOCK ;
;
; Compile with FASM for Menuet ;
; ; BCD CLOCK
; ;
; Compile with FASM for Menuet
use32 ;
;
org 0x0
use32
db 'MENUET01'
dd 0x01 org 0x0
dd START
dd I_END db 'MENUET01'
dd 0x1000 dd 0x01
dd 0x1000 dd START
dd 0x0 , 0x0 dd I_END
dd 0x1000
include 'lang.inc' dd 0x1000
include '../../../macros.inc' dd 0x0 , 0x0
include 'lang.inc'
START: include '../../macros.inc'
red:
call drawwindow
START:
still: red:
call drawwindow
mov eax,23 ; wait for timeout still:
mov ebx,50
mcall
mov eax,23 ; wait for timeout
cmp eax,1 ; redraw ? mov ebx,50
je red mcall
cmp eax, 2 ; key cmp eax,1 ; redraw ?
je key je red
cmp eax,3 ; button in buffer ? cmp eax, 2 ; key
je button je key
call drawclock cmp eax,3 ; button in buffer ?
je button
jmp still
call drawclock
key:
mov eax, 2 jmp still
int 0x40
jmp still key:
mov eax, 2
button: int 0x40
mov al,17 ; get id jmp still
mcall
button:
cmp ah,1 ; button id=1 ? mov al,17 ; get id
jne noclose mcall
or eax,-1 ; close this program
mcall cmp ah,1 ; button id=1 ?
noclose: jne noclose
or eax,-1 ; close this program
jmp still mcall
noclose:
drawclock:
jmp still
mov eax,3 ; get time
mcall drawclock:
bswap eax
shr eax,8 mov eax,3 ; get time
mov edi,dg1 mcall
mov ecx,6 bswap eax
dgtomem: shr eax,8
push eax mov edi,dg1
and al,0x0f mov ecx,6
mov [edi],al dgtomem:
inc edi push eax
pop eax and al,0x0f
shr eax,4 mov [edi],al
loop dgtomem inc edi
mov ebx,79*65536+11 pop eax
mov edi,dg1 shr eax,4
digitlp: loop dgtomem
mov ecx,10*65536+11 mov ebx,79*65536+11
xor esi,esi mov edi,dg1
plotlp: digitlp:
xor edx,edx mov ecx,10*65536+11
test byte[edi],8 xor esi,esi
je nobit plotlp:
mov edx,0x00ff0000 xor edx,edx
nobit: test byte[edi],8
mov eax,13 ; plot 8,4,2,1 je nobit
mcall mov edx,0x00ff0000
add ecx,13*65536 nobit:
shl byte[edi],1 mov eax,13 ; plot 8,4,2,1
inc esi mcall
cmp esi,4 add ecx,13*65536
jne plotlp shl byte[edi],1
shr byte[edi],4 inc esi
mov edx,0x00880040 cmp esi,4
mov eax,13 ; draw digit box jne plotlp
mcall shr byte[edi],4
pusha mov edx,0x00880040
mov edx,ebx mov eax,13 ; draw digit box
and edx,0xffff0000 mcall
shr ecx,16 pusha
or edx,ecx mov edx,ebx
add edx,3*65536+2 and edx,0xffff0000
mov ebx,0x00010100 shr ecx,16
mov ecx,[edi] or edx,ecx
mov esi,0x00ffffff add edx,3*65536+2
mov eax,47 ; display decimal mov ebx,0x00010100
mcall mov ecx,[edi]
popa mov esi,0x00ffffff
sub ebx,13*65536 mov eax,47 ; display decimal
inc edi mcall
cmp edi,dg1+6 popa
jne digitlp sub ebx,13*65536
ret inc edi
cmp edi,dg1+6
jne digitlp
drawwindow: ret
mov eax,12 drawwindow:
mov ebx,1 ; start redraw
mcall
mov eax,12
mov eax, 48 mov ebx,1 ; start redraw
mov ebx, 4 mcall
mcall
mov ecx, eax mov eax, 48
xor eax,eax ; window mov ebx, 4
mov ebx,100*65536+113 mcall
add ecx,100*65536+87 mov ecx, eax
mov edx,0x34400088 xor eax,eax ; window
mov edi,title mov ebx,100*65536+113
mcall add ecx,100*65536+87
mov edx,0x34400088
call drawclock mov edi,title
mcall
mov eax,12
mov ebx,2 ; end redraw call drawclock
mcall
mov eax,12
ret mov ebx,2 ; end redraw
mcall
title db 'BCD Clock',0
I_END: ret
dg1: db ?
title db 'BCD Clock',0
I_END:
dg1: db ?
File renamed without changes.
File renamed without changes.
@@ -1,357 +1,360 @@
; App written by randall ported to Kolibri and MenuetOS64 by macgub (www.macgub.hekko.pl). ; SPDX-License-Identifier: NOASSERTION
; Now it use static memory, it is mixed 32bit code and SSE instructions. ;
include '../../../macros.inc' ; App written by randall ported to Kolibri and MenuetOS64 by macgub (www.macgub.hekko.pl).
include '../../../KOSfuncs.inc' ; Now it use static memory, it is mixed 32bit code and SSE instructions.
use32 include '../../macros.inc'
org 0x0 include '../../KOSfuncs.inc'
db 'MENUET01' ; 8 byte id use32
dd 0x01 ; header version org 0x0
dd START ; start of code
dd IMG_END ; size of image db 'MENUET01' ; 8 byte id
dd I_END ;0x100000 ; memory for app dd 0x01 ; header version
dd I_END ;0xbffff ; esp dd START ; start of code
dd 0x0 , 0x0 ; I_Param , I_Icon dd IMG_END ; size of image
dd I_END ;0x100000 ; memory for app
; start of execution dd I_END ;0xbffff ; esp
START: dd 0x0 , 0x0 ; I_Param , I_Icon
call draw_window ; start of execution
call draw_from_buffer START:
call Main
call draw_from_buffer call draw_window
call draw_from_buffer
mcall SF_SET_CAPTION,1,wintitle2 call Main
call draw_from_buffer
still:
mcall SF_SET_CAPTION,1,wintitle2
mcall SF_WAIT_EVENT
still:
cmp eax,EV_REDRAW
je .redraw mcall SF_WAIT_EVENT
cmp eax,EV_KEY
je .key cmp eax,EV_REDRAW
cmp eax,EV_BUTTON je .redraw
je .button cmp eax,EV_KEY
jmp still je .key
cmp eax,EV_BUTTON
.redraw: je .button
call draw_window jmp still
call draw_from_buffer
jmp still .redraw:
call draw_window
.key: call draw_from_buffer
mcall SF_GET_KEY jmp still
shr eax,16 ; get scancode in 'al'
cmp al,1 .key:
je .exit mcall SF_GET_KEY
cmp al,66 shr eax,16 ; get scancode in 'al'
je set_as_wallpaper cmp al,1
jmp still je .exit
cmp al,66
.button: je set_as_wallpaper
mcall SF_GET_BUTTON jmp still
cmp ah,1 ; button id=1 ?
jne still .button:
mcall SF_GET_BUTTON
.exit: cmp ah,1 ; button id=1 ?
mcall SF_TERMINATE_PROCESS jne still
.exit:
set_as_wallpaper: mcall SF_TERMINATE_PROCESS
mcall SF_BACKGROUND_SET,SSF_MODE_BG,2
mcall SF_BACKGROUND_SET,SSF_SIZE_BG,IMG_SIZE,IMG_SIZE
mcall SF_BACKGROUND_SET,SSF_IMAGE_BG,screen,0,3*IMG_SIZE*IMG_SIZE set_as_wallpaper:
mcall SF_BACKGROUND_SET,SSF_REDRAW_BG mcall SF_BACKGROUND_SET,SSF_MODE_BG,2
jmp still mcall SF_BACKGROUND_SET,SSF_SIZE_BG,IMG_SIZE,IMG_SIZE
mcall SF_BACKGROUND_SET,SSF_IMAGE_BG,screen,0,3*IMG_SIZE*IMG_SIZE
draw_from_buffer: mcall SF_BACKGROUND_SET,SSF_REDRAW_BG
pusha jmp still
mcall SF_PUT_IMAGE,screen,IMG_SIZE*65536+IMG_SIZE,0
popa draw_from_buffer:
ret pusha
mcall SF_PUT_IMAGE,screen,IMG_SIZE*65536+IMG_SIZE,0
;------------------------------------------------------------------------------- popa
; NAME: XORWOW ret
; DESC: Pseudo random number generator.
; OUT: eax [0;2^32-1] ;-------------------------------------------------------------------------------
;------------------------------------------------------------------------------- ; NAME: XORWOW
macro XORWOW { ; DESC: Pseudo random number generator.
mov edx,[g_xorwow_x] ; edx = x ; OUT: eax [0;2^32-1]
shr edx,2 ; edx = x >> 2 ;-------------------------------------------------------------------------------
xor edx,[g_xorwow_x] ; t = x ^ (x >> 2) macro XORWOW {
mov eax,[g_xorwow_y] ; eax = y mov edx,[g_xorwow_x] ; edx = x
mov [g_xorwow_x],eax ; x = y shr edx,2 ; edx = x >> 2
mov eax,[g_xorwow_z] ; eax = z xor edx,[g_xorwow_x] ; t = x ^ (x >> 2)
mov [g_xorwow_y],eax ; y = z mov eax,[g_xorwow_y] ; eax = y
mov eax,[g_xorwow_w] ; eax = w mov [g_xorwow_x],eax ; x = y
mov [g_xorwow_z],eax ; z = w mov eax,[g_xorwow_z] ; eax = z
mov eax,[g_xorwow_v] ; eax = v mov [g_xorwow_y],eax ; y = z
mov [g_xorwow_w],eax ; w = v mov eax,[g_xorwow_w] ; eax = w
mov edi,eax ; edi = v mov [g_xorwow_z],eax ; z = w
shl edi,4 ; edi = v << 4 mov eax,[g_xorwow_v] ; eax = v
xor edi,eax ; edi = (v ^ (v << 4)) mov [g_xorwow_w],eax ; w = v
mov eax,edx ; eax = t mov edi,eax ; edi = v
shl eax,1 ; eax = t << 1 shl edi,4 ; edi = v << 4
xor eax,edx ; eax = (t ^ (t << 1)) xor edi,eax ; edi = (v ^ (v << 4))
xor eax,edi ; eax = (v ^ (v << 4)) ^ (t ^ (t << 1)) mov eax,edx ; eax = t
mov [g_xorwow_v],eax ; v = eax shl eax,1 ; eax = t << 1
add [g_xorwow_d],362437 ; d += 362437 xor eax,edx ; eax = (t ^ (t << 1))
mov eax,[g_xorwow_d] ; eax = d xor eax,edi ; eax = (v ^ (v << 4)) ^ (t ^ (t << 1))
add eax,[g_xorwow_v] ; eax = d + v mov [g_xorwow_v],eax ; v = eax
} add [g_xorwow_d],362437 ; d += 362437
;------------------------------------------------------------------------------- mov eax,[g_xorwow_d] ; eax = d
; NAME: RANDOM add eax,[g_xorwow_v] ; eax = d + v
; DESC: Returns pseudo random number in the range [-0.5;0.5). }
; OUT: xmm0.x [-0.5;0.5) ;-------------------------------------------------------------------------------
;------------------------------------------------------------------------------- ; NAME: RANDOM
macro RANDOM { ; DESC: Returns pseudo random number in the range [-0.5;0.5).
XORWOW ; OUT: xmm0.x [-0.5;0.5)
cvtsi2ss xmm0,eax ;-------------------------------------------------------------------------------
mulss xmm0,[g_rand_scale] macro RANDOM {
} XORWOW
;------------------------------------------------------------------------------- cvtsi2ss xmm0,eax
mulss xmm0,[g_rand_scale]
;------------------------------------------------------------------------------- }
; NAME: GenerateSequence ;-------------------------------------------------------------------------------
; IN: xmm0.x re (c0.x)
; IN: xmm1.x im (c0.y) ;-------------------------------------------------------------------------------
; IN: edi array size ; NAME: GenerateSequence
; IN/OUT: esi pointer to the allocated array ; IN: xmm0.x re (c0.x)
; OUT: eax generated sequence size ; IN: xmm1.x im (c0.y)
;------------------------------------------------------------------------------- ; IN: edi array size
align 16 ; IN/OUT: esi pointer to the allocated array
GenerateSequence: ; OUT: eax generated sequence size
xor eax,eax ; eax is index loop ;-------------------------------------------------------------------------------
xorps xmm4,xmm4 ; xmm4 is c.x align 16
xorps xmm5,xmm5 ; xmm5 is c.y GenerateSequence:
.Loop: xor eax,eax ; eax is index loop
; cn.x = c.x * c.x - c.y * c.y + c0.x xorps xmm4,xmm4 ; xmm4 is c.x
movaps xmm2,xmm4 xorps xmm5,xmm5 ; xmm5 is c.y
movaps xmm3,xmm5 .Loop:
mulss xmm2,xmm4 ; cn.x = c.x * c.x - c.y * c.y + c0.x
mulss xmm3,xmm5 movaps xmm2,xmm4
subss xmm2,xmm3 movaps xmm3,xmm5
addss xmm2,xmm0 mulss xmm2,xmm4
movaps xmm6,xmm2 ; xmm6 is cn.x mulss xmm3,xmm5
; cn.y = 2.0 * c.x * c.y + c0.y subss xmm2,xmm3
movaps xmm7,xmm4 addss xmm2,xmm0
mulss xmm7,xmm5 movaps xmm6,xmm2 ; xmm6 is cn.x
addss xmm7,xmm7 ; cn.y = 2.0 * c.x * c.y + c0.y
addss xmm7,xmm1 ; xmm7 is cn.y movaps xmm7,xmm4
; store cn mulss xmm7,xmm5
movd dword [esi+eax*8],xmm6 addss xmm7,xmm7
movd dword [esi+eax*8+4],xmm7 addss xmm7,xmm1 ; xmm7 is cn.y
; if (cn.x * cn.x + cn.y * cn.y > 10.0) return eax; ; store cn
movaps xmm2,xmm6 movd dword [esi+eax*8],xmm6
movaps xmm3,xmm7 movd dword [esi+eax*8+4],xmm7
mulss xmm2,xmm6 ; if (cn.x * cn.x + cn.y * cn.y > 10.0) return eax;
mulss xmm3,xmm7 movaps xmm2,xmm6
addss xmm2,xmm3 movaps xmm3,xmm7
ucomiss xmm2,[g_max_dist] mulss xmm2,xmm6
ja .EndLoop mulss xmm3,xmm7
movaps xmm4,xmm6 ; c.x = cn.x addss xmm2,xmm3
movaps xmm5,xmm7 ; c.y = cn.y ucomiss xmm2,[g_max_dist]
; continue loop ja .EndLoop
inc eax movaps xmm4,xmm6 ; c.x = cn.x
cmp eax,edi movaps xmm5,xmm7 ; c.y = cn.y
jb .Loop ; continue loop
; return 0 inc eax
xor eax,eax cmp eax,edi
.EndLoop: jb .Loop
ret ; return 0
;------------------------------------------------------------------------------- xor eax,eax
; NAME: main .EndLoop:
; DESC: Program main function. ret
;------------------------------------------------------------------------------- ;-------------------------------------------------------------------------------
align 16 ; NAME: main
Main: ; DESC: Program main function.
img_ptr equ ebp-8 ;-------------------------------------------------------------------------------
seq_ptr equ ebp-16 align 16
pixel equ ebp-24 Main:
r13dd equ ebp-64 img_ptr equ ebp-8
r12dd equ ebp-68 seq_ptr equ ebp-16
r15dd equ ebp-72 pixel equ ebp-24
r13dd equ ebp-64
push ebp r12dd equ ebp-68
mov ebp,esp r15dd equ ebp-72
sub esp,128
; mem for the sequence push ebp
lea eax,[sequence] mov ebp,esp
mov [seq_ptr],eax sub esp,128
; mem for the image ; mem for the sequence
lea eax,[screen] lea eax,[sequence]
mov [img_ptr],eax mov [seq_ptr],eax
; begin loops ; mem for the image
mov dword[r13dd],0 ; .LoopIterations counter lea eax,[screen]
.LoopIterations: mov [img_ptr],eax
mov dword[r12dd],0 ; .LoopOneMillion counter ; begin loops
.LoopOneMillion: mov dword[r13dd],0 ; .LoopIterations counter
RANDOM .LoopIterations:
mulss xmm0,[g_range] mov dword[r12dd],0 ; .LoopOneMillion counter
movaps xmm1,xmm0 .LoopOneMillion:
RANDOM RANDOM
mulss xmm0,[g_range] mulss xmm0,[g_range]
mov edi,SEQ_SIZE movaps xmm1,xmm0
mov esi,[seq_ptr] RANDOM
call GenerateSequence ; eax = n sequence size mulss xmm0,[g_range]
test eax,eax mov edi,SEQ_SIZE
jz .LoopSequenceEnd mov esi,[seq_ptr]
xor ecx,ecx ; ecx = i = 0 loop counter call GenerateSequence ; eax = n sequence size
; mov r9dd,[seq_ptr] ; r9 = sequence base address test eax,eax
; mov r8dd,[img_ptr] ; r8 = image base address jz .LoopSequenceEnd
movss xmm2,[g_img_size] xor ecx,ecx ; ecx = i = 0 loop counter
movaps xmm3,xmm2 ; mov r9dd,[seq_ptr] ; r9 = sequence base address
mulss xmm3,[g_0_5] ; xmm3 = (g_img_size)/2 ; mov r8dd,[img_ptr] ; r8 = image base address
movss xmm4,[g_zoom] movss xmm2,[g_img_size]
mulss xmm4,xmm2 ; xmm4 = g_zoom * g_img_size movaps xmm3,xmm2
movss xmm5,[g_offsetx] ; xmm5 = g_offsetx mulss xmm3,[g_0_5] ; xmm3 = (g_img_size)/2
movss xmm6,[g_offsety] ; xmm6 = g_offsety movss xmm4,[g_zoom]
.LoopSequence: mulss xmm4,xmm2 ; xmm4 = g_zoom * g_img_size
cmp ecx,eax ; i < n movss xmm5,[g_offsetx] ; xmm5 = g_offsetx
je .LoopSequenceEnd movss xmm6,[g_offsety] ; xmm6 = g_offsety
movd xmm0,[sequence+ecx*8] ; load re .LoopSequence:
movd xmm1,[sequence+ecx*8+4] ; load im cmp ecx,eax ; i < n
addss xmm0,xmm5 ; xmm0 = re+g_offsetx je .LoopSequenceEnd
addss xmm1,xmm6 ; xmm1 = im+g_offsety movd xmm0,[sequence+ecx*8] ; load re
mulss xmm0,xmm4 ; xmm0 = (re+g_offsetx)*g_img_size*g_zoom movd xmm1,[sequence+ecx*8+4] ; load im
mulss xmm1,xmm4 ; xmm1 = (im+g_offsety)*g_img_size*g_zoom addss xmm0,xmm5 ; xmm0 = re+g_offsetx
addss xmm0,xmm3 ; xmm0 = (re+g_offsetx)*g_img_size*g_zoom+g_img_size/2 addss xmm1,xmm6 ; xmm1 = im+g_offsety
addss xmm1,xmm3 ; xmm1 = (im+g_offsety)*g_img_size*g_zoom+g_img_size/2 mulss xmm0,xmm4 ; xmm0 = (re+g_offsetx)*g_img_size*g_zoom
cvtss2si edi,xmm0 ; edi = x = int(xmm0.x) mulss xmm1,xmm4 ; xmm1 = (im+g_offsety)*g_img_size*g_zoom
cvtss2si esi,xmm1 ; esi = y = int(xmm1.x) addss xmm0,xmm3 ; xmm0 = (re+g_offsetx)*g_img_size*g_zoom+g_img_size/2
cmp edi,0 addss xmm1,xmm3 ; xmm1 = (im+g_offsety)*g_img_size*g_zoom+g_img_size/2
jl @f cvtss2si edi,xmm0 ; edi = x = int(xmm0.x)
cmp edi,IMG_SIZE cvtss2si esi,xmm1 ; esi = y = int(xmm1.x)
jge @f cmp edi,0
cmp esi,0 jl @f
jl @f cmp edi,IMG_SIZE
cmp esi,IMG_SIZE jge @f
jge @f cmp esi,0
imul esi,esi,IMG_SIZE jl @f
add esi,edi cmp esi,IMG_SIZE
add dword [screen+esi*4],1 jge @f
@@: imul esi,esi,IMG_SIZE
inc ecx add esi,edi
jmp .LoopSequence add dword [screen+esi*4],1
.LoopSequenceEnd: @@:
; continue .LoopOneMillion inc ecx
add dword[r12dd],1 jmp .LoopSequence
cmp dword[r12dd],1000000 .LoopSequenceEnd:
jb .LoopOneMillion ; continue .LoopOneMillion
; continue .LoopIterations add dword[r12dd],1
add dword[r13dd],1 cmp dword[r12dd],1000000
cmp dword[r13dd],ITERATIONS jb .LoopOneMillion
jb .LoopIterations ; continue .LoopIterations
; find max value add dword[r13dd],1
mov dword[r12dd],0 cmp dword[r13dd],ITERATIONS
xor eax,eax ; eax = i = loop counter jb .LoopIterations
.LoopMax: ; find max value
push ecx mov dword[r12dd],0
mov ecx,[r12dd] xor eax,eax ; eax = i = loop counter
cmp dword [screen+eax*4],ecx .LoopMax:
cmova ecx,dword [screen+eax*4] push ecx
mov [r12dd],ecx mov ecx,[r12dd]
pop ecx cmp dword [screen+eax*4],ecx
inc eax cmova ecx,dword [screen+eax*4]
cmp eax,IMG_SIZE*IMG_SIZE mov [r12dd],ecx
jb .LoopMax pop ecx
; find min value inc eax
; mov r13d,r12d ; r13d = min_val = max_val cmp eax,IMG_SIZE*IMG_SIZE
push dword[r12dd] jb .LoopMax
pop dword[r13dd] ; find min value
xor eax,eax ; eax = i = loop counter ; mov r13d,r12d ; r13d = min_val = max_val
.LoopMin: push dword[r12dd]
push ecx pop dword[r13dd]
mov ecx,[r13dd] xor eax,eax ; eax = i = loop counter
cmp dword [screen+eax*4],ecx .LoopMin:
push ecx
cmovb ecx,dword [screen+eax*4] mov ecx,[r13dd]
mov [r13dd],ecx cmp dword [screen+eax*4],ecx
pop ecx
inc eax cmovb ecx,dword [screen+eax*4]
cmp eax,IMG_SIZE*IMG_SIZE mov [r13dd],ecx
jb .LoopMin pop ecx
; write image pixels inc eax
mov byte [pixel+3],255 cmp eax,IMG_SIZE*IMG_SIZE
; mov r14,[img_ptr] ; r14 = image base address jb .LoopMin
; xor r15d,r15d ; r15d = i = loop counter ; write image pixels
mov dword[r15dd],0 mov byte [pixel+3],255
cvtsi2ss xmm0,[r12dd] ; load max_value ; mov r14,[img_ptr] ; r14 = image base address
cvtsi2ss xmm1,[r13dd] ; load min_value ; xor r15d,r15d ; r15d = i = loop counter
movaps xmm2,xmm0 mov dword[r15dd],0
subss xmm2,xmm1 ; xmm2 = r = max_value - min_value cvtsi2ss xmm0,[r12dd] ; load max_value
xor ecx,ecx cvtsi2ss xmm1,[r13dd] ; load min_value
.LoopWrite: movaps xmm2,xmm0
mov eax,[screen+ecx*4] ; eax = image_value subss xmm2,xmm1 ; xmm2 = r = max_value - min_value
sub eax,[r13dd] ; eax = image_value - min_value xor ecx,ecx
cvtsi2ss xmm0,eax ; xmm0 = float(image_value - min_value) .LoopWrite:
addss xmm0,xmm0 ; xmm0 = 2.0f * float(image_value - min_value) mov eax,[screen+ecx*4] ; eax = image_value
divss xmm0,xmm2 ; xmm0 = 2.0f * float(image_value - min_value) / r sub eax,[r13dd] ; eax = image_value - min_value
minss xmm0,[g_1_0] ; clamp to 1.0 cvtsi2ss xmm0,eax ; xmm0 = float(image_value - min_value)
maxss xmm0,[g_0_0] ; clamp to 0.0 addss xmm0,xmm0 ; xmm0 = 2.0f * float(image_value - min_value)
mulss xmm0,[g_255_0] ; convert to 0 - 255 divss xmm0,xmm2 ; xmm0 = 2.0f * float(image_value - min_value) / r
cvtss2si eax,xmm0 minss xmm0,[g_1_0] ; clamp to 1.0
; write pixel data maxss xmm0,[g_0_0] ; clamp to 0.0
mov [screen+ecx*3],eax mulss xmm0,[g_255_0] ; convert to 0 - 255
inc ecx cvtss2si eax,xmm0
cmp ecx,IMG_SIZE*IMG_SIZE ; write pixel data
jb .LoopWrite mov [screen+ecx*3],eax
mov esp,ebp inc ecx
pop ebp cmp ecx,IMG_SIZE*IMG_SIZE
ret jb .LoopWrite
; restore img_ptr,seq_ptr,pixel mov esp,ebp
;------------------------------------------------------------------------------- pop ebp
; ********************************************* ret
; ******* WINDOW DEFINITIONS AND DRAW ******** ; restore img_ptr,seq_ptr,pixel
; ********************************************* ;-------------------------------------------------------------------------------
draw_window: ; *********************************************
; ******* WINDOW DEFINITIONS AND DRAW ********
mcall SF_REDRAW, SSF_BEGIN_DRAW ; *********************************************
draw_window:
mcall SF_STYLE_SETTINGS, SSF_GET_SKIN_HEIGHT
lea ecx, [50*65536+IMG_SIZE+4+eax] ; [y start] *65536 + [y size] + [skin_height] mcall SF_REDRAW, SSF_BEGIN_DRAW
mcall SF_CREATE_WINDOW,<50,IMG_SIZE+9>,,0x74000000,,wintitle1
mcall SF_STYLE_SETTINGS, SSF_GET_SKIN_HEIGHT
mcall SF_REDRAW, SSF_END_DRAW lea ecx, [50*65536+IMG_SIZE+4+eax] ; [y start] *65536 + [y size] + [skin_height]
ret mcall SF_CREATE_WINDOW,<50,IMG_SIZE+9>,,0x74000000,,wintitle1
mcall SF_REDRAW, SSF_END_DRAW
;------------------------------------------------------------------------------- ret
align 1
wintitle1 db 'Buddhabrot - Calculating, please wait...',0
wintitle2 db 'Buddhabrot - Press F8 to set image as wallpaper',0 ;-------------------------------------------------------------------------------
align 1
align 4 wintitle1 db 'Buddhabrot - Calculating, please wait...',0
g_xorwow_x dd 123456789 wintitle2 db 'Buddhabrot - Press F8 to set image as wallpaper',0
g_xorwow_y dd 362436069
g_xorwow_z dd 521288629 align 4
g_xorwow_w dd 88675123 g_xorwow_x dd 123456789
g_xorwow_v dd 5783321 g_xorwow_y dd 362436069
g_xorwow_d dd 6615241 g_xorwow_z dd 521288629
g_rand_scale dd 2.3283064e-10 ; 1.0 / 2^32 g_xorwow_w dd 88675123
g_xorwow_v dd 5783321
IMG_SIZE = 600 g_xorwow_d dd 6615241
SEQ_SIZE = 50 g_rand_scale dd 2.3283064e-10 ; 1.0 / 2^32
ITERATIONS = 100
IMG_SIZE = 600
g_img_size dd 600.0 SEQ_SIZE = 50
g_offsetx dd 0.5 ITERATIONS = 100
g_offsety dd 0.0
g_zoom dd 0.4 g_img_size dd 600.0
g_offsetx dd 0.5
g_max_dist dd 10.0 g_offsety dd 0.0
g_range dd 4.2 g_zoom dd 0.4
g_0_5 dd 0.5
g_0_0 dd 0.0 g_max_dist dd 10.0
g_1_0 dd 1.0 g_range dd 4.2
g_255_0 dd 255.0 g_0_5 dd 0.5
g_0_0 dd 0.0
IMG_END: g_1_0 dd 1.0
;-------------------- g_255_0 dd 255.0
sequence: rb SEQ_SIZE*8
screen: rb IMG_SIZE*IMG_SIZE*4 IMG_END:
memStack: rd 1024 ;--------------------
I_END: sequence: rb SEQ_SIZE*8
screen: rb IMG_SIZE*IMG_SIZE*4
memStack: rd 1024
I_END:
@@ -1,5 +1,5 @@
if tup.getconfig("NO_FASM") ~= "" then return end if tup.getconfig("NO_FASM") ~= "" then return end
HELPERDIR = (tup.getconfig("HELPERDIR") == "") and "../../.." or tup.getconfig("HELPERDIR") HELPERDIR = (tup.getconfig("HELPERDIR") == "") and "../.." or tup.getconfig("HELPERDIR")
tup.include(HELPERDIR .. "/use_fasm.lua") tup.include(HELPERDIR .. "/use_fasm.lua")
add_include(tup.getvariantdir()) add_include(tup.getvariantdir())
@@ -1,3 +1,6 @@
; SPDX-License-Identifier: NOASSERTION
;
; COLORREF.ASM - COLOR REFERENCE ; COLORREF.ASM - COLOR REFERENCE
; ;
; Compile with FASM for Menuet ; Compile with FASM for Menuet
@@ -15,7 +18,7 @@ use32
dd 0x0,0x0 ; I_Param , I_Icon dd 0x0,0x0 ; I_Param , I_Icon
include 'lang.inc' include 'lang.inc'
include '..\..\..\macros.inc' include '..\..\macros.inc'
wide: dd 0 ; screen pixels width wide: dd 0 ; screen pixels width
mouse: dd 0 ; 1=right,2=left [mouse click] mouse: dd 0 ; 1=right,2=left [mouse click]
@@ -148,7 +151,7 @@ draw_window:
mov edx,0x14000000 ; work area color (type II) mov edx,0x14000000 ; work area color (type II)
mov edi,title ; frame color mov edi,title ; frame color
mcall mcall
call palette ; display color palette call palette ; display color palette
mcall 12, 2 mcall 12, 2
@@ -267,7 +270,7 @@ help:
add ecx, 236 add ecx, 236
sub ecx, eax sub ecx, eax
mov ebx,5*65536+190 ; x and width mov ebx,5*65536+190 ; x and width
mov edx,0x465e8f ; dark denim color mov edx,0x465e8f ; dark denim color
mov eax,13 ; write text funx mov eax,13 ; write text funx
@@ -294,7 +297,7 @@ h1: push ecx
jne h2 ; nope jne h2 ; nope
mov eax,2 ; yep, burn it mov eax,2 ; yep, burn it
mcall mcall
h2: h2:
call draw_window call draw_window
ret ret
@@ -1,5 +1,5 @@
if tup.getconfig("NO_FASM") ~= "" then return end if tup.getconfig("NO_FASM") ~= "" then return end
HELPERDIR = (tup.getconfig("HELPERDIR") == "") and "../../.." or tup.getconfig("HELPERDIR") HELPERDIR = (tup.getconfig("HELPERDIR") == "") and "../.." or tup.getconfig("HELPERDIR")
tup.include(HELPERDIR .. "/use_fasm.lua") tup.include(HELPERDIR .. "/use_fasm.lua")
add_include(tup.getvariantdir()) add_include(tup.getvariantdir())
@@ -1,3 +1,6 @@
; SPDX-License-Identifier: NOASSERTION
;
; ;
; Crown_s Soft Screensaver v1.13m ; Crown_s Soft Screensaver v1.13m
; WWW: http://www.crown-s-soft.com ; WWW: http://www.crown-s-soft.com
@@ -34,8 +37,8 @@ copyrightlen:
include "lang.inc" include "lang.inc"
include "figuresi.inc" include "figuresi.inc"
include "..\..\..\macros.inc" include "..\..\macros.inc"
include "..\..\..\KOSfuncs.inc" include "..\..\KOSfuncs.inc"
start: start:
cmp dword[params], '@ss' cmp dword[params], '@ss'
setz [screensaver] setz [screensaver]
@@ -96,7 +99,7 @@ red:
still: still:
mcall SF_WAIT_EVENT_TIMEOUT, delay ; wait here for event mcall SF_WAIT_EVENT_TIMEOUT, delay ; wait here for event
cmp eax,1 ; redraw request ? cmp eax,1 ; redraw request ?
je red je red
cmp eax,2 ; key in buffer ? cmp eax,2 ; key in buffer ?
@@ -117,7 +120,7 @@ jmp still
key: key:
cmp [screensaver], 0 cmp [screensaver], 0
jnz close jnz close
mcall SF_GET_KEY mcall SF_GET_KEY
cmp al,1 ; is key in buffer ? cmp al,1 ; is key in buffer ?
@@ -1,5 +1,5 @@
if tup.getconfig("NO_FASM") ~= "" then return end if tup.getconfig("NO_FASM") ~= "" then return end
HELPERDIR = (tup.getconfig("HELPERDIR") == "") and "../../.." or tup.getconfig("HELPERDIR") HELPERDIR = (tup.getconfig("HELPERDIR") == "") and "../.." or tup.getconfig("HELPERDIR")
tup.include(HELPERDIR .. "/use_fasm.lua") tup.include(HELPERDIR .. "/use_fasm.lua")
add_include(tup.getvariantdir()) add_include(tup.getvariantdir())
File renamed without changes.
File renamed without changes.
@@ -1,3 +1,6 @@
; SPDX-License-Identifier: NOASSERTION
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; ; ; ;
; Color Slider Control Demonstration ; ; Color Slider Control Demonstration ;
@@ -20,8 +23,8 @@ use32
dd 0x0 , 0x0 ; I_Param , I_Icon dd 0x0 , 0x0 ; I_Param , I_Icon
include 'lang.inc' include 'lang.inc'
include '..\..\..\macros.inc' include '..\..\macros.inc'
include '..\..\..\KOSfuncs.inc' include '..\..\KOSfuncs.inc'
START: ; start of execution START: ; start of execution
call draw_window ; at first, draw the window call draw_window ; at first, draw the window
@@ -50,7 +53,7 @@ still:
button: ; button button: ; button
mcall SF_GET_BUTTON ; get id mcall SF_GET_BUTTON ; get id
shr eax,8 shr eax,8
cmp eax,1 ; button id=1 ? cmp eax,1 ; button id=1 ?
@@ -72,7 +75,7 @@ draw_window:
mcall SF_REDRAW, SSF_BEGIN_DRAW mcall SF_REDRAW, SSF_BEGIN_DRAW
mcall SF_CREATE_WINDOW, <100,200>, <100,200>, 0x14ffffff, , title mcall SF_CREATE_WINDOW, <100,200>, <100,200>, 0x14ffffff, , title
mcall SF_REDRAW, SSF_END_DRAW mcall SF_REDRAW, SSF_END_DRAW
call draw_slider_info call draw_slider_info
xor ecx,ecx xor ecx,ecx
@@ -151,7 +154,7 @@ ret
draw_slider_info: draw_slider_info:
;Repaint value background ;Repaint value background
mcall SF_DRAW_RECT, 144*65536+36, 72*65536+9, 0x00ffffff mcall SF_DRAW_RECT, 144*65536+36, 72*65536+9, 0x00ffffff
;Draw Color Box ;Draw Color Box
xor edx, edx xor edx, edx
movzx ecx,word [slider_1+12] movzx ecx,word [slider_1+12]
@@ -164,7 +167,7 @@ draw_slider_info:
mov ebx, 0x00860035 mov ebx, 0x00860035
mov ecx, 0x00590040 mov ecx, 0x00590040
mov eax, SF_DRAW_RECT mov eax, SF_DRAW_RECT
mcall mcall
;draw current value of slider ;draw current value of slider
mov ecx, edx mov ecx, edx
mov eax, SF_DRAW_NUMBER mov eax, SF_DRAW_NUMBER
@@ -340,4 +343,4 @@ ret
; DATA AREA ; DATA AREA
title db 'Color Slider',0 title db 'Color Slider',0
I_END: I_END:
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -1,5 +1,5 @@
if tup.getconfig("NO_FASM") ~= "" then return end if tup.getconfig("NO_FASM") ~= "" then return end
HELPERDIR = (tup.getconfig("HELPERDIR") == "") and "../../.." or tup.getconfig("HELPERDIR") HELPERDIR = (tup.getconfig("HELPERDIR") == "") and "../.." or tup.getconfig("HELPERDIR")
tup.include(HELPERDIR .. "/use_fasm.lua") tup.include(HELPERDIR .. "/use_fasm.lua")
add_include(tup.getvariantdir()) add_include(tup.getvariantdir())
File renamed without changes.
File renamed without changes.
@@ -1,3 +1,6 @@
; SPDX-License-Identifier: NOASSERTION
;
; ;
; EYES FOR MENUET ; EYES FOR MENUET
; ;
@@ -22,7 +25,7 @@ use32
dd 0x0 dd 0x0
dd 0x0 dd 0x0
include '..\..\..\macros.inc' include '..\..\macros.inc'
ENTRANCE: ; start of code ENTRANCE: ; start of code
; ==== main ==== ; ==== main ====
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -1,4 +1,10 @@
include '..\..\..\macros.inc' ; SPDX-License-Identifier: NOASSERTION
;
; Text encoded with Code Page 866 - Cyrillic
include '..\..\macros.inc'
use32 use32
org 0x0 org 0x0
@@ -199,7 +205,7 @@ put_big_point:
;DATA ;DATA
align 4 align 4
count1 dd my_img count1 dd my_img
count2 dd 0 count2 dd 0
curtime dd 0 curtime dd 0
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File diff suppressed because it is too large. Load diff
@@ -1,5 +1,5 @@
if tup.getconfig("NO_FASM") ~= "" then return end if tup.getconfig("NO_FASM") ~= "" then return end
HELPERDIR = (tup.getconfig("HELPERDIR") == "") and "../../.." or tup.getconfig("HELPERDIR") HELPERDIR = (tup.getconfig("HELPERDIR") == "") and "../.." or tup.getconfig("HELPERDIR")
tup.include(HELPERDIR .. "/use_fasm.lua") tup.include(HELPERDIR .. "/use_fasm.lua")
add_include(tup.getvariantdir()) add_include(tup.getvariantdir())
@@ -1,3 +1,6 @@
; SPDX-License-Identifier: NOASSERTION
;
; ;
; Fisheye Raycasting Engine Etc. FREE3D for MENUETOS by Dieter Marfurt ; Fisheye Raycasting Engine Etc. FREE3D for MENUETOS by Dieter Marfurt
; Version 0.4 (requires some texture-files to compile (see Data Section)) ; Version 0.4 (requires some texture-files to compile (see Data Section))
@@ -36,7 +39,7 @@ use32
dd APP_MEM;0x100000 ; esp dd APP_MEM;0x100000 ; esp
dd 0x0 , 0x0 ; I_Param , I_Icon dd 0x0 , 0x0 ; I_Param , I_Icon
include 'lang.inc' include 'lang.inc'
include '..\..\..\macros.inc' include '..\..\macros.inc'
COLOR_ORDER equ OTHER COLOR_ORDER equ OTHER
include 'gif_lite.inc' include 'gif_lite.inc'
@@ -296,7 +299,7 @@ m_right: ; turn right
draw_window: draw_window:
mcall 12,1 mcall 12,1
mcall 48, 4 ;get skin width mcall 48, 4 ;get skin width
lea ecx, [50*65536+484+eax] ;[y start] *65536 + [y size] + [skin_height] lea ecx, [50*65536+484+eax] ;[y start] *65536 + [y size] + [skin_height]
mcall 0,<50,649>,,0x74ffffff,,title ;draw window mcall 0,<50,649>,,0x74ffffff,,title ;draw window
File renamed without changes.