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:
1 parent
9ca506ed15
commit
398dcbb13d
59 files changed
+2026
-1996
No files matched your search
+9
-9
@@ -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"},
|
||||||
|
|||||||
@@ -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.
File renamed without changes.
+360
-357
@@ -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:
|
||||||
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
|
||||||
|
;
|
||||||
|
|
||||||
; 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())
|
||||||
|
|
||||||
File renamed without changes.
File renamed without changes.
@@ -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 ?
|
||||||
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
|
||||||
|
;
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
; ;
|
; ;
|
||||||
; 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.
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
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
|
||||||
|
;
|
||||||
|
|
||||||
;
|
;
|
||||||
; 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.
File renamed without changes.
File renamed without changes.
Reference in new issue
Block a user