programs/demos: Post-SVN tidy (part 3) (#416)
- 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#416 Reviewed-by: Ivan B <dunkaist@noreply.localhost> Reviewed-by: Burer <burer@noreply.localhost> Co-authored-by: Andrew <dent.ace@gmail.com> Co-committed-by: Andrew <dent.ace@gmail.com>
This commit is contained in:
1 parent
7bcb400040
commit
d6a1b56b7f
39 files changed
+1479
-1453
No files matched your search
+6
-6
@@ -464,12 +464,12 @@ tup.append_table(img_files, {
|
||||
{"DEMOS/MOVBACK", VAR_PROGS .. "/demos/movback/movback"},
|
||||
{"DEMOS/PLASMA", VAR_PROGS .. "/demos/plasma/plasma"},
|
||||
{"DEMOS/SPIRAL", VAR_PROGS .. "/demos/spiral/spiral"},
|
||||
{"DEMOS/TINYFRAC", VAR_PROGS .. "/demos/tinyfrac/trunk/tinyfrac"},
|
||||
{"DEMOS/TRANTEST", VAR_PROGS .. "/demos/trantest/trunk/trantest"},
|
||||
{"DEMOS/TINYFRAC", VAR_PROGS .. "/demos/tinyfrac/tinyfrac"},
|
||||
{"DEMOS/TRANTEST", VAR_PROGS .. "/demos/trantest/trantest"},
|
||||
{"DEMOS/TUBE", VAR_PROGS .. "/demos/tube/tube"},
|
||||
{"DEMOS/UNVWATER", VAR_PROGS .. "/demos/unvwater/unvwater"},
|
||||
{"DEMOS/WEB", VAR_PROGS .. "/demos/web/trunk/web"},
|
||||
{"DEMOS/ZEROLINE", VAR_PROGS .. "/demos/zeroline/trunk/zeroline"},
|
||||
{"DEMOS/WEB", VAR_PROGS .. "/demos/web/web"},
|
||||
{"DEMOS/ZEROLINE", VAR_PROGS .. "/demos/zeroline/zeroline"},
|
||||
{"DEVELOP/BOARD", VAR_PROGS .. "/system/board/board"},
|
||||
{"DEVELOP/DBGBOARD", VAR_PROGS .. "/system/dbgboard/dbgboard"},
|
||||
{"DEVELOP/CHARSETS", VAR_PROGS .. "/develop/charsets/charsets"},
|
||||
@@ -610,7 +610,7 @@ tup.append_table(extra_files, {
|
||||
{"kolibrios/3D/voxel_utilites/VOX_TGL" , VAR_PROGS .. "/media/voxel_editor/utilites/vox_tgl"},
|
||||
{"kolibrios/demos/flag", VAR_PROGS .. "/demos/flag/flag"},
|
||||
{"kolibrios/demos/life3", VAR_PROGS .. "/games/life3/life3"},
|
||||
{"kolibrios/demos/qjulia", VAR_PROGS .. "/demos/qjulia/trunk/qjulia"},
|
||||
{"kolibrios/demos/qjulia", VAR_PROGS .. "/demos/qjulia/qjulia"},
|
||||
{"kolibrios/develop/koldbg", VAR_PROGS .. "/develop/koldbg/koldbg"},
|
||||
{"kolibrios/games/Almaz", VAR_PROGS .. "/games/almaz/almaz"},
|
||||
{"kolibrios/games/arcanii", VAR_PROGS .. "/games/arcanii/arcanii"},
|
||||
@@ -730,7 +730,7 @@ tup.append_table(img_files, {
|
||||
})
|
||||
tup.append_table(extra_files, {
|
||||
{"kolibrios/utils/thashview", VAR_PROGS .. "/other/TinyHashView/thashview"},
|
||||
{"kolibrios/demos/kmatrix", VAR_PROGS .. "/demos/kmatrix/trunk/kmatrix"},
|
||||
{"kolibrios/demos/kmatrix", VAR_PROGS .. "/demos/kmatrix/kmatrix"},
|
||||
{"kolibrios/utils/graph", VAR_PROGS .. "/other/graph/branches/tcc_current/graph"},
|
||||
{"kolibrios/develop/TinyBasic/TinyBasic", VAR_PROGS .. "/develop/tinybasic-1.0.4/tinybasic"},
|
||||
{"kolibrios/develop/TinyBasic/bas/", SRC_PROGS .. "/develop/tinybasic-1.0.4/bas/*"},
|
||||
|
||||
+15
-15
@@ -183,9 +183,9 @@ echo *
|
||||
fasm games\15\trunk\15.asm %BIN%\games\15
|
||||
fasm games\arcanii\trunk\arcanii.asm %BIN%\games\arcanii
|
||||
fasm games\arcanoid\trunk\arcanoid.asm %BIN%\games\arcanoid
|
||||
cd games\c4\trunk\
|
||||
pushd games\c4\trunk\
|
||||
nasmw -f bin -o ..\..\..\%BIN%\games\c4 c4.asm
|
||||
cd ..\..\..
|
||||
popd
|
||||
fasm games\freecell\freecell.asm %BIN%\games\freecell
|
||||
fasm games\mblocks\trunk\mblocks.asm %BIN%\games\mblocks
|
||||
fasm games\phenix\trunk\phenix.asm %BIN%\games\phenix
|
||||
@@ -204,28 +204,28 @@ echo *
|
||||
fasm demos\3dcube2\3dcube2.asm %BIN%\3d\3dcube2
|
||||
rem fasm demos\3detx60b\3detx60b.asm %BIN%\3d\3detx60b
|
||||
fasm demos\3dtcub10\3dtcub10.asm %BIN%\3d\3dtcub10
|
||||
cd demos\aclock\trunk\
|
||||
pushd demos\aclock\
|
||||
nasmw -t -f bin -o ..\..\..\%BIN%\demos\aclock aclock.asm
|
||||
cd ..\..\..
|
||||
popd
|
||||
fasm demos\bcdclk\bcdclk.asm %BIN%\demos\bcdclk
|
||||
fasm demos\bgitest\trunk\bgitest.asm %BIN%\fonts\bgitest
|
||||
rem fasm demos\bgitest\trunk\bgitest.asm %BIN%\fonts\bgitest
|
||||
fasm demos\colorref\colorref.asm %BIN%\demos\colorref
|
||||
fasm demos\crownscr\crownscr.asm %BIN%\3d\crownscr
|
||||
fasm demos\cslide\cslide.asm %BIN%\demos\cslide
|
||||
fasm demos\eyes\eyes.asm %BIN%\demos\eyes
|
||||
fasm demos\fire\fire.asm %BIN%\demos\fire
|
||||
fasm demos\fire2\fire2.asm %BIN%\demos\fire2
|
||||
fasm demos\firework\trunk\firework.asm %BIN%\demos\firework
|
||||
fasm demos\firework\firework.asm %BIN%\demos\firework
|
||||
fasm demos\free3d04\free3d04.asm %BIN%\3d\free3d04
|
||||
fasm demos\magnify\trunk\magnify.asm %BIN%\magnify
|
||||
fasm demos\movback\trunk\movback.asm %BIN%\demos\movback
|
||||
fasm demos\plasma\trunk\plasma.asm %BIN%\demos\plasma
|
||||
fasm demos\timer\trunk\timer.asm %BIN%\demos\timer
|
||||
fasm demos\tinyfrac\trunk\tinyfrac.asm %BIN%\demos\tinyfrac
|
||||
fasm demos\transp\trunk\transp.asm %BIN%\demos\transp
|
||||
fasm demos\trantest\trunk\trantest.asm %BIN%\demos\trantest
|
||||
fasm demos\tube\trunk\tube.asm %BIN%\demos\tube
|
||||
fasm demos\unvwater\trunk\unvwater.asm %BIN%\demos\unvwater
|
||||
rem fasm demos\magnify\trunk\magnify.asm %BIN%\magnify
|
||||
fasm demos\movback\movback.asm %BIN%\demos\movback
|
||||
fasm demos\plasma\plasma.asm %BIN%\demos\plasma
|
||||
fasm demos\timer\timer.asm %BIN%\demos\timer
|
||||
fasm demos\tinyfrac\tinyfrac.asm %BIN%\demos\tinyfrac
|
||||
fasm demos\transp\transp.asm %BIN%\demos\transp
|
||||
fasm demos\trantest\trantest.asm %BIN%\demos\trantest
|
||||
fasm demos\tube\tube.asm %BIN%\demos\tube
|
||||
fasm demos\unvwater\unvwater.asm %BIN%\demos\unvwater
|
||||
|
||||
echo *
|
||||
echo Building depend application for fdd's nightbuild
|
||||
|
||||
File renamed without changes.
@@ -1,6 +1,6 @@
|
||||
if tup.getconfig("NO_TCC") ~= "" 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_tcc.lua")
|
||||
|
||||
link_tcc("main.c", "kmatrix");
|
||||
File renamed without changes.
File renamed without changes.
@@ -1,4 +1,4 @@
|
||||
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.rule("life.asm", FASM .. " %f %o " .. tup.getconfig("KPACK_CMD"), "life")
|
||||
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.
File renamed without changes.
@@ -1,5 +1,5 @@
|
||||
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")
|
||||
add_include(tup.getvariantdir())
|
||||
|
||||
File renamed without changes.
File renamed without changes.
@@ -1,3 +1,9 @@
|
||||
; SPDX-License-Identifier: NOASSERTION
|
||||
;
|
||||
|
||||
; Text encoded with Code Page 866 - Cyrillic
|
||||
|
||||
|
||||
;
|
||||
; TIMER (show how much system works)
|
||||
;
|
||||
@@ -17,7 +23,7 @@ use32
|
||||
dd 0x0 , 0x0 ; I_Param , I_Icon
|
||||
|
||||
include 'lang.inc' ; Language support for locales: ru_RU (CP866), en_US.
|
||||
include '..\..\..\macros.inc'
|
||||
include '..\..\macros.inc'
|
||||
|
||||
START: ; start of execution
|
||||
mov eax, 40
|
||||
@@ -1,5 +1,5 @@
|
||||
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")
|
||||
add_include(tup.getvariantdir())
|
||||
|
||||
File renamed without changes.
File renamed without changes.
@@ -1,3 +1,6 @@
|
||||
; SPDX-License-Identifier: NOASSERTION
|
||||
;
|
||||
|
||||
; tinyfrac.asm
|
||||
;
|
||||
; teeny program displays the Mandelbrot set.
|
||||
@@ -82,7 +85,7 @@ use32
|
||||
dd 0,0
|
||||
|
||||
include 'lang.inc'
|
||||
include '..\..\..\macros.inc'
|
||||
include '..\..\macros.inc'
|
||||
|
||||
START:
|
||||
call draw_fractal
|
||||
@@ -173,39 +176,39 @@ still:
|
||||
call draw_fractal
|
||||
jmp still
|
||||
no_right:
|
||||
|
||||
|
||||
cmp al,19 ;'r'
|
||||
jne no_red
|
||||
mov ah,3
|
||||
call colorize
|
||||
jmp still
|
||||
no_red:
|
||||
|
||||
|
||||
cmp al,34 ;'g'
|
||||
jne no_green
|
||||
mov ah,4
|
||||
call colorize
|
||||
jmp still
|
||||
no_green:
|
||||
|
||||
|
||||
cmp al,48 ;'b'
|
||||
jne no_blue
|
||||
mov ah,5
|
||||
call colorize
|
||||
jmp still
|
||||
no_blue:
|
||||
|
||||
|
||||
cmp al,17 ;'w'
|
||||
jne no_set_as_wallpaper
|
||||
mcall 15, 1, PIXWIDTH, PIXHEIGHT
|
||||
mcall 15, 4, 1 ;mode 1-tiled, 0-stretch
|
||||
mcall 15, 5, IMGBUF, 0, PIXWIDTH*3*PIXHEIGHT
|
||||
mcall 15, 3
|
||||
mcall 15, 3
|
||||
no_set_as_wallpaper:
|
||||
|
||||
jmp still
|
||||
|
||||
colorize:
|
||||
colorize:
|
||||
shr eax,8
|
||||
sub eax,3
|
||||
imul eax,8
|
||||
@@ -392,13 +395,13 @@ scale db STARTSCALE
|
||||
draw_window:
|
||||
pusha
|
||||
mcall 12, 1
|
||||
|
||||
|
||||
mcall 48, 4 ;get skin height
|
||||
lea ecx, [50*65536+PIXHEIGHT+4+eax]
|
||||
mcall 0,<50,PIXWIDTH+9>,,0x74000000,,header_txt ;draw window
|
||||
|
||||
|
||||
call put_image
|
||||
|
||||
|
||||
mcall 12, 2
|
||||
popa
|
||||
ret
|
||||
@@ -425,4 +428,4 @@ STARTY dd 120
|
||||
scaleaddy dd 120
|
||||
scaleaddx dd 200
|
||||
|
||||
I_END:
|
||||
I_END:
|
||||
@@ -1,5 +1,5 @@
|
||||
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")
|
||||
add_include(tup.getvariantdir())
|
||||
|
||||
File renamed without changes.
File renamed without changes.
@@ -1,3 +1,6 @@
|
||||
; SPDX-License-Identifier: NOASSERTION
|
||||
;
|
||||
|
||||
;
|
||||
; TRANSPARENT EXAMPLE
|
||||
;
|
||||
@@ -17,7 +20,7 @@ use32
|
||||
dd 0x0 , 0x0 ; I_Param , I_Icon
|
||||
|
||||
include 'lang.inc'
|
||||
include '..\..\..\macros.inc'
|
||||
include '..\..\macros.inc'
|
||||
|
||||
START: ; start of execution
|
||||
mov [procinfo.box.left], 100
|
||||
@@ -25,7 +28,7 @@ START: ; start of execution
|
||||
mov [procinfo.box.top], 80
|
||||
mov [procinfo.box.height], 300
|
||||
call draw_window
|
||||
red:
|
||||
red:
|
||||
call get_transparent
|
||||
call draw_window ; at first, draw the window
|
||||
|
||||
@@ -83,7 +86,7 @@ draw_window:
|
||||
mcall
|
||||
|
||||
call draw_transparent
|
||||
|
||||
|
||||
mov eax,12 ; function 12:tell os about windowdraw
|
||||
mov ebx,2 ; 2, end of draw
|
||||
mcall
|
||||
@@ -192,4 +195,3 @@ title db 'Transparent',0
|
||||
|
||||
I_END:
|
||||
procinfo process_information
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
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")
|
||||
add_include(tup.getvariantdir())
|
||||
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -1,3 +1,6 @@
|
||||
; SPDX-License-Identifier: NOASSERTION
|
||||
;
|
||||
|
||||
;
|
||||
; TRIANGLE SPEED TEST 3
|
||||
; 32 triangle draw use! 12300 triangle in sec on 800Mhz processor
|
||||
@@ -19,7 +22,7 @@ use32
|
||||
SCREEN_X equ 320 ;800
|
||||
SCREEN_Y equ 200 ;600
|
||||
|
||||
include '..\..\..\macros.inc'
|
||||
include '..\..\macros.inc'
|
||||
include 'lang.inc'
|
||||
include 'ascl.inc'
|
||||
include 'ascgl.inc'
|
||||
@@ -80,7 +83,7 @@ exit:
|
||||
|
||||
;Draw window
|
||||
draw_window:
|
||||
|
||||
|
||||
mov eax,12 ;Start
|
||||
mov ebx,1
|
||||
mcall
|
||||
@@ -227,7 +230,7 @@ filled_triangle:
|
||||
mov ecx,[@@ty2]
|
||||
cmp ecx,[@@ty3]
|
||||
jge @@end_loop23
|
||||
|
||||
|
||||
mov ebx,[@@tx2]
|
||||
shl ebx,12 ;7
|
||||
@@loop23:
|
||||
File renamed without changes.
File renamed without changes.
@@ -1,3 +1,6 @@
|
||||
; SPDX-License-Identifier: NOASSERTION
|
||||
;
|
||||
|
||||
;"Web" demo for KolibriOS, version 0.3
|
||||
;Copyright Alexander Meshcheryakov (Self-Perfection), 2009
|
||||
;Contact me: alexander.s.m@gmail.com
|
||||
@@ -13,7 +16,7 @@ use32
|
||||
db 'MENUET01'
|
||||
dd 0x01,__start,__end,__memory,__stack,param,0
|
||||
|
||||
include '../../../macros.inc'
|
||||
include '../../macros.inc'
|
||||
|
||||
background_cl = 0x000000
|
||||
foreground_cl = 0xFFFFFF
|
||||
@@ -31,7 +34,7 @@ CODE
|
||||
mov ebx, EVM_REDRAW + EVM_KEY + EVM_BUTTON
|
||||
cmovz ebx, EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE
|
||||
mcall 40
|
||||
|
||||
|
||||
;Make cursor transparent
|
||||
mov edi, transparent_cursor
|
||||
xor eax, eax
|
||||
@@ -40,7 +43,7 @@ CODE
|
||||
mcall 37, 4, transparent_cursor, 2
|
||||
mov ecx, eax
|
||||
mcall 37, 5
|
||||
|
||||
|
||||
;Preinit. Randomize start counter
|
||||
mcall 3
|
||||
mov [initial_counter], eax ;init with system time
|
||||
@@ -51,7 +54,7 @@ CODE
|
||||
mov dword [y_max], eax ;store x_max and y_max
|
||||
shr eax, 1
|
||||
mov dword [radius], eax ;store radius and x_center
|
||||
|
||||
|
||||
;Calc line_number
|
||||
mov ax, [y_max]
|
||||
mov dx, 0
|
||||
@@ -90,7 +93,7 @@ CODE
|
||||
fninit
|
||||
fldpi
|
||||
fidiv word [half_line_number] ;Now st0 contains angle step of line start points
|
||||
|
||||
|
||||
mov eax, [line_coords_array_pointer] ;cleanup: comment
|
||||
movzx ecx, word [half_line_number]
|
||||
shl ecx, 1
|
||||
@@ -189,7 +192,7 @@ calculate_next_line_end_point:
|
||||
add eax, dword [image_pointer]
|
||||
inc eax
|
||||
mov [eax], byte red_cl_index
|
||||
|
||||
|
||||
movzx ebx, word [esi+end_y_offset]
|
||||
movzx eax, word [x_max]
|
||||
imul eax, ebx
|
||||
@@ -210,9 +213,9 @@ calculate_next_line_end_point:
|
||||
mov bx, word [esi+start_y_offset]
|
||||
cmp bx, word [esi+end_y_offset]
|
||||
jnz general_draw_line ;Jump to next test if dy!=0
|
||||
|
||||
|
||||
pusha
|
||||
|
||||
|
||||
movzx ecx, word [esi+end_x_offset]
|
||||
sub cx, word [esi+start_x_offset]
|
||||
|
||||
@@ -279,7 +282,7 @@ general_draw_line:
|
||||
neg cx
|
||||
neg edi
|
||||
@@:
|
||||
|
||||
|
||||
;compare abs(y1 - y0) and abs(x1 - x0)
|
||||
cmp bx, cx
|
||||
jnc @f
|
||||
@@ -348,7 +351,7 @@ line_drawing_end:
|
||||
movzx ebx, [x_max]
|
||||
movzx ecx, [y_max]
|
||||
mov edx, 0x01000000 ;Window style ;Draw nothing
|
||||
; mov edx, 0x00000000 ;Window style
|
||||
; mov edx, 0x00000000 ;Window style
|
||||
; mov esi, 0x00000000 ;Header color (prevent odd color line on top of window in random cases)
|
||||
mcall ;Define window
|
||||
|
||||
@@ -453,4 +456,4 @@ f70: ; run
|
||||
screensaver db ?
|
||||
transparent_cursor rd 32*32
|
||||
|
||||
MEOS_APP_END
|
||||
MEOS_APP_END
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
+379
-373
@@ -1,373 +1,379 @@
|
||||
;------------------------------------------------------------------------------
|
||||
; @SS - screensaver
|
||||
;------------------------------------------------------------------------------
|
||||
; last update: 30/03/2012
|
||||
; changed by: Marat Zakiyanov aka Mario79, aka Mario
|
||||
; changes: The program uses only 4 Kb memory is now.
|
||||
; Code refactoring. Using transparent cursor.
|
||||
; Fix bug - using lots of buttons from f.8.
|
||||
;---------------------------------------------------------------------
|
||||
; SCREENSAVER APPLICATION by lisovin@26.ru
|
||||
;
|
||||
; Compile with FASM for Menuet
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
use32
|
||||
org 0x0
|
||||
|
||||
db 'MENUET01' ; 8 byte id
|
||||
dd 0x01 ; header version
|
||||
dd START ; start of code
|
||||
dd IM_END ; size of image
|
||||
dd I_END ; memory for app
|
||||
dd stack_top ; esp
|
||||
dd I_Param ; boot parameters
|
||||
dd 0x0 ; path
|
||||
;------------------------------------------------------------------------------
|
||||
include '..\..\..\macros.inc'
|
||||
;include 'debug.inc'
|
||||
;------------------------------------------------------------------------------
|
||||
align 4
|
||||
START:
|
||||
mcall 68,11
|
||||
mcall 40, EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE
|
||||
; boot parameters
|
||||
cmp [I_Param], dword '@ss'
|
||||
setz [screensaver]
|
||||
cmp [I_Param],dword 'ZERO'
|
||||
jne @f
|
||||
mov [type],dword 0
|
||||
;--------------------------------------
|
||||
align 4
|
||||
@@:
|
||||
cmp [I_Param],dword 'ASSM'
|
||||
jne bgr_changed
|
||||
mov [type],dword 24
|
||||
;------------------------------------------------------------------------------
|
||||
align 4
|
||||
bgr_changed:
|
||||
|
||||
mcall 14
|
||||
mov [y_max],ax
|
||||
shr eax,16
|
||||
mov [x_max],ax
|
||||
shl eax,16
|
||||
mov [top_right_corner],eax
|
||||
|
||||
call create_ss
|
||||
;------------------------------------------------------------------------------
|
||||
align 4
|
||||
still:
|
||||
cmp al,2 ; key in buffer?
|
||||
jz key
|
||||
|
||||
cmp al,5 ; background redraw?
|
||||
jz bgr_changed
|
||||
; mouse event
|
||||
mcall 37,2 ; проверим кнопки
|
||||
and al,3
|
||||
cmp al,3 ; нажаты обе кнопки мыши?
|
||||
jnz still
|
||||
|
||||
mcall 37,0 ; проверим координаты
|
||||
cmp [top_right_corner],eax
|
||||
jnz still
|
||||
;------------------------------------------------------------------------------
|
||||
align 4
|
||||
key:
|
||||
mcall ; eax = 2
|
||||
jmp still
|
||||
;------------------------------------------------------------------------------
|
||||
align 4
|
||||
create_ss:
|
||||
mcall 40,100010b
|
||||
;set_new_cursor_skin - transparent cursor
|
||||
mcall 68,12,32*32*4 ; get memory for own cursor area
|
||||
|
||||
push eax
|
||||
mov ecx,eax
|
||||
mcall 37,4,,2 ; load own cursor
|
||||
|
||||
mov ecx,eax
|
||||
mcall 37,5 ; set own cursor
|
||||
|
||||
pop ecx
|
||||
mcall 68,13 ; free own cursor area
|
||||
|
||||
cmp [type],dword 0
|
||||
je drawsswin
|
||||
|
||||
cmp [type],dword 24
|
||||
je asminit
|
||||
|
||||
mov dword [delay],1
|
||||
mov [lx1],10 ; for "draw line"
|
||||
mov [lx2],40
|
||||
mov [ly1],50
|
||||
mov [ly2],100
|
||||
mov [addx1],1
|
||||
mov [addx2],1
|
||||
mov [addy1],1
|
||||
mov [addy2],1
|
||||
jmp drawsswin
|
||||
;--------------------------------------
|
||||
align 4
|
||||
asminit: ; for "assembler" - assembler sources demo
|
||||
; get size of file
|
||||
mov [fileinfo],dword 5
|
||||
mov [fileinfo.point],dword fileinfo_buffer
|
||||
mcall 70,fileinfo
|
||||
test eax,eax
|
||||
jnz .no_file
|
||||
; get memory for file
|
||||
mov ecx,[fileinfo_buffer+32]
|
||||
mov [fileinfo.size],ecx
|
||||
mcall 68,12
|
||||
mov [fileinfo.point],eax
|
||||
; load file
|
||||
mov [fileinfo],dword 0
|
||||
mcall 70,fileinfo
|
||||
test eax,eax
|
||||
jz @f
|
||||
mcall 68,13,[fileinfo.point]
|
||||
;--------------------------------------
|
||||
align 4
|
||||
.no_file:
|
||||
mov [type],dword 0
|
||||
jmp drawsswin
|
||||
;--------------------------------------
|
||||
align 4
|
||||
@@:
|
||||
mov dword [delay],1 ;25 - old value
|
||||
;--------------------------------------
|
||||
align 4
|
||||
asminit1:
|
||||
mov eax,[fileinfo.point]
|
||||
mov [stringstart],eax
|
||||
mov dword [stringlen],1
|
||||
;--------------------------------------
|
||||
align 4
|
||||
newpage:
|
||||
mov [stringpos],16
|
||||
;--------------------------------------
|
||||
align 4
|
||||
drawsswin:
|
||||
xor eax,eax
|
||||
movzx ebx,[x_max]
|
||||
movzx ecx,[y_max]
|
||||
inc ebx
|
||||
inc ecx
|
||||
mcall ,,,0x01000000
|
||||
|
||||
xor edx,edx
|
||||
;mcall 13 ;Leency - use transparent background
|
||||
;--------------------------------------
|
||||
align 4
|
||||
tstill:
|
||||
mcall 23,[delay]
|
||||
test eax,eax
|
||||
jnz thr_end
|
||||
|
||||
cmp [type],dword 0
|
||||
je tstill
|
||||
|
||||
cmp [type],dword 24
|
||||
je drawssasm
|
||||
|
||||
call draw_line
|
||||
jmp tstill
|
||||
;--------------------------------------
|
||||
align 4
|
||||
thr_end:
|
||||
cmp [screensaver], 0
|
||||
jz @f
|
||||
mcall 70, f70
|
||||
@@:
|
||||
cmp [type],dword 24
|
||||
jne @f
|
||||
mcall 68,13,[fileinfo.point]
|
||||
@@:
|
||||
and [params], not 1
|
||||
or eax,-1
|
||||
mcall
|
||||
;------------------------------------------------------------------------------
|
||||
align 4
|
||||
drawssasm:
|
||||
mov edi,[stringstart]
|
||||
add edi,[stringlen]
|
||||
dec edi
|
||||
|
||||
mov eax,edi
|
||||
sub eax,[fileinfo.point]
|
||||
|
||||
cmp eax,[fileinfo.size]
|
||||
ja asminit1
|
||||
|
||||
cmp word [edi],0x0a0d
|
||||
je addstring
|
||||
|
||||
cmp byte [edi],0x0a
|
||||
jne noaddstring
|
||||
|
||||
dec edi
|
||||
;--------------------------------------
|
||||
align 4
|
||||
addstring:
|
||||
add [stringpos],16
|
||||
add edi,2
|
||||
mov [stringstart],edi
|
||||
mov dword [stringlen],1
|
||||
mov ax,[stringpos]
|
||||
cmp ax,[y_max]
|
||||
jb tstill
|
||||
jmp newpage
|
||||
;--------------------------------------
|
||||
align 4
|
||||
noaddstring:
|
||||
mov ebx,[stringlen]
|
||||
shl ebx,19
|
||||
mov bx,[stringpos]
|
||||
mov edx,[stringstart]
|
||||
add edx,[stringlen]
|
||||
dec edx
|
||||
mcall 4,,0x104ba010,,1
|
||||
inc dword [stringlen]
|
||||
cmp [edi],byte ' '
|
||||
je drawssasm
|
||||
jmp tstill
|
||||
;------------------------------------------------------------------------------
|
||||
align 4
|
||||
draw_line:
|
||||
movzx esi,[x_max]
|
||||
movzx edi,[y_max]
|
||||
|
||||
mov eax,[addx1]
|
||||
add [lx1],eax
|
||||
mov eax,[addy1]
|
||||
add [ly1],eax
|
||||
|
||||
mov eax,[addx2]
|
||||
add [lx2],eax
|
||||
mov eax,[addy2]
|
||||
add [ly2],eax
|
||||
|
||||
cmp [lx1],1
|
||||
jge dl1
|
||||
mov [addx1],1
|
||||
;--------------------------------------
|
||||
align 4
|
||||
dl1:
|
||||
cmp [lx2],1
|
||||
jge dl2
|
||||
|
||||
mov [addx2],1
|
||||
;--------------------------------------
|
||||
align 4
|
||||
dl2:
|
||||
cmp [lx1],esi
|
||||
jbe dl3
|
||||
|
||||
mov [addx1],0xffffffff
|
||||
;--------------------------------------
|
||||
align 4
|
||||
dl3:
|
||||
cmp [lx2],esi
|
||||
jbe dl4
|
||||
|
||||
mov [addx2],0xffffffff
|
||||
;--------------------------------------
|
||||
align 4
|
||||
dl4:
|
||||
cmp [ly1],1
|
||||
jge dl5
|
||||
mov [addy1],1
|
||||
;--------------------------------------
|
||||
align 4
|
||||
dl5:
|
||||
cmp [ly2],2
|
||||
jge dl6
|
||||
|
||||
mov [addy2],1
|
||||
;--------------------------------------
|
||||
align 4
|
||||
dl6:
|
||||
cmp [ly1],edi
|
||||
jbe dl7
|
||||
|
||||
mov [addy1],-1
|
||||
;--------------------------------------
|
||||
align 4
|
||||
dl7:
|
||||
cmp [ly2],edi
|
||||
jbe dl8
|
||||
|
||||
mov [addy2],-1
|
||||
;--------------------------------------
|
||||
align 4
|
||||
dl8:
|
||||
mov eax,[lx2]
|
||||
cmp [lx1],eax
|
||||
jz dnol
|
||||
|
||||
mov bx,word [lx1]
|
||||
shl ebx,16
|
||||
mov bx,word [lx2]
|
||||
|
||||
mov cx,word [ly1]
|
||||
shl ecx,16
|
||||
mov cx,word [ly2]
|
||||
|
||||
mov edx,[lcolor]
|
||||
and edx,0xffffff
|
||||
mcall 38
|
||||
;--------------------------------------
|
||||
align 4
|
||||
dnol:
|
||||
add [lcolor],0x010201
|
||||
ret
|
||||
;------------------------------------------------------------------------------
|
||||
align 4 ; DATA AREA
|
||||
type dd 12
|
||||
delay dd 100
|
||||
lx1 dd 10
|
||||
lx2 dd 40
|
||||
ly1 dd 50
|
||||
ly2 dd 100
|
||||
addx1 dd 1
|
||||
addx2 dd 1
|
||||
addy1 dd 1
|
||||
addy2 dd 1
|
||||
stringlen dd 1
|
||||
stringstart dd 0
|
||||
|
||||
stringpos dw 16
|
||||
params db 0 ;if bit 0 set-ssaver works if bit 1 set-setup works
|
||||
|
||||
fileinfo:
|
||||
dd 0
|
||||
dd 0
|
||||
dd 0
|
||||
.size: dd 0
|
||||
.point: dd 0
|
||||
db '/sys/macros.inc',0
|
||||
|
||||
f70: ; run
|
||||
dd 7, 0, 0, 0, 0
|
||||
db '/sys/@SS',0
|
||||
|
||||
screensaver db ?
|
||||
|
||||
;-------------------------------
|
||||
IM_END: ; UNINITIALIZED DATA
|
||||
top_right_corner rd 1
|
||||
align 4
|
||||
lcolor dd ?
|
||||
x_max dw ? ; размеры экрана
|
||||
y_max dw ?
|
||||
I_Param:
|
||||
fileinfo_buffer:
|
||||
rb 40
|
||||
;-------------------------------
|
||||
rb 512
|
||||
stack_top:
|
||||
I_END:
|
||||
; SPDX-License-Identifier: NOASSERTION
|
||||
;
|
||||
|
||||
; Text encoded with Code Page 866 - Cyrillic
|
||||
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; @SS - screensaver
|
||||
;------------------------------------------------------------------------------
|
||||
; last update: 30/03/2012
|
||||
; changed by: Marat Zakiyanov aka Mario79, aka Mario
|
||||
; changes: The program uses only 4 Kb memory is now.
|
||||
; Code refactoring. Using transparent cursor.
|
||||
; Fix bug - using lots of buttons from f.8.
|
||||
;---------------------------------------------------------------------
|
||||
; SCREENSAVER APPLICATION by lisovin@26.ru
|
||||
;
|
||||
; Compile with FASM for Menuet
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
use32
|
||||
org 0x0
|
||||
|
||||
db 'MENUET01' ; 8 byte id
|
||||
dd 0x01 ; header version
|
||||
dd START ; start of code
|
||||
dd IM_END ; size of image
|
||||
dd I_END ; memory for app
|
||||
dd stack_top ; esp
|
||||
dd I_Param ; boot parameters
|
||||
dd 0x0 ; path
|
||||
;------------------------------------------------------------------------------
|
||||
include '..\..\macros.inc'
|
||||
;include 'debug.inc'
|
||||
;------------------------------------------------------------------------------
|
||||
align 4
|
||||
START:
|
||||
mcall 68,11
|
||||
mcall 40, EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE
|
||||
; boot parameters
|
||||
cmp [I_Param], dword '@ss'
|
||||
setz [screensaver]
|
||||
cmp [I_Param],dword 'ZERO'
|
||||
jne @f
|
||||
mov [type],dword 0
|
||||
;--------------------------------------
|
||||
align 4
|
||||
@@:
|
||||
cmp [I_Param],dword 'ASSM'
|
||||
jne bgr_changed
|
||||
mov [type],dword 24
|
||||
;------------------------------------------------------------------------------
|
||||
align 4
|
||||
bgr_changed:
|
||||
|
||||
mcall 14
|
||||
mov [y_max],ax
|
||||
shr eax,16
|
||||
mov [x_max],ax
|
||||
shl eax,16
|
||||
mov [top_right_corner],eax
|
||||
|
||||
call create_ss
|
||||
;------------------------------------------------------------------------------
|
||||
align 4
|
||||
still:
|
||||
cmp al,2 ; key in buffer?
|
||||
jz key
|
||||
|
||||
cmp al,5 ; background redraw?
|
||||
jz bgr_changed
|
||||
; mouse event
|
||||
mcall 37,2 ; проверим кнопки
|
||||
and al,3
|
||||
cmp al,3 ; нажаты обе кнопки мыши?
|
||||
jnz still
|
||||
|
||||
mcall 37,0 ; проверим координаты
|
||||
cmp [top_right_corner],eax
|
||||
jnz still
|
||||
;------------------------------------------------------------------------------
|
||||
align 4
|
||||
key:
|
||||
mcall ; eax = 2
|
||||
jmp still
|
||||
;------------------------------------------------------------------------------
|
||||
align 4
|
||||
create_ss:
|
||||
mcall 40,100010b
|
||||
;set_new_cursor_skin - transparent cursor
|
||||
mcall 68,12,32*32*4 ; get memory for own cursor area
|
||||
|
||||
push eax
|
||||
mov ecx,eax
|
||||
mcall 37,4,,2 ; load own cursor
|
||||
|
||||
mov ecx,eax
|
||||
mcall 37,5 ; set own cursor
|
||||
|
||||
pop ecx
|
||||
mcall 68,13 ; free own cursor area
|
||||
|
||||
cmp [type],dword 0
|
||||
je drawsswin
|
||||
|
||||
cmp [type],dword 24
|
||||
je asminit
|
||||
|
||||
mov dword [delay],1
|
||||
mov [lx1],10 ; for "draw line"
|
||||
mov [lx2],40
|
||||
mov [ly1],50
|
||||
mov [ly2],100
|
||||
mov [addx1],1
|
||||
mov [addx2],1
|
||||
mov [addy1],1
|
||||
mov [addy2],1
|
||||
jmp drawsswin
|
||||
;--------------------------------------
|
||||
align 4
|
||||
asminit: ; for "assembler" - assembler sources demo
|
||||
; get size of file
|
||||
mov [fileinfo],dword 5
|
||||
mov [fileinfo.point],dword fileinfo_buffer
|
||||
mcall 70,fileinfo
|
||||
test eax,eax
|
||||
jnz .no_file
|
||||
; get memory for file
|
||||
mov ecx,[fileinfo_buffer+32]
|
||||
mov [fileinfo.size],ecx
|
||||
mcall 68,12
|
||||
mov [fileinfo.point],eax
|
||||
; load file
|
||||
mov [fileinfo],dword 0
|
||||
mcall 70,fileinfo
|
||||
test eax,eax
|
||||
jz @f
|
||||
mcall 68,13,[fileinfo.point]
|
||||
;--------------------------------------
|
||||
align 4
|
||||
.no_file:
|
||||
mov [type],dword 0
|
||||
jmp drawsswin
|
||||
;--------------------------------------
|
||||
align 4
|
||||
@@:
|
||||
mov dword [delay],1 ;25 - old value
|
||||
;--------------------------------------
|
||||
align 4
|
||||
asminit1:
|
||||
mov eax,[fileinfo.point]
|
||||
mov [stringstart],eax
|
||||
mov dword [stringlen],1
|
||||
;--------------------------------------
|
||||
align 4
|
||||
newpage:
|
||||
mov [stringpos],16
|
||||
;--------------------------------------
|
||||
align 4
|
||||
drawsswin:
|
||||
xor eax,eax
|
||||
movzx ebx,[x_max]
|
||||
movzx ecx,[y_max]
|
||||
inc ebx
|
||||
inc ecx
|
||||
mcall ,,,0x01000000
|
||||
|
||||
xor edx,edx
|
||||
;mcall 13 ;Leency - use transparent background
|
||||
;--------------------------------------
|
||||
align 4
|
||||
tstill:
|
||||
mcall 23,[delay]
|
||||
test eax,eax
|
||||
jnz thr_end
|
||||
|
||||
cmp [type],dword 0
|
||||
je tstill
|
||||
|
||||
cmp [type],dword 24
|
||||
je drawssasm
|
||||
|
||||
call draw_line
|
||||
jmp tstill
|
||||
;--------------------------------------
|
||||
align 4
|
||||
thr_end:
|
||||
cmp [screensaver], 0
|
||||
jz @f
|
||||
mcall 70, f70
|
||||
@@:
|
||||
cmp [type],dword 24
|
||||
jne @f
|
||||
mcall 68,13,[fileinfo.point]
|
||||
@@:
|
||||
and [params], not 1
|
||||
or eax,-1
|
||||
mcall
|
||||
;------------------------------------------------------------------------------
|
||||
align 4
|
||||
drawssasm:
|
||||
mov edi,[stringstart]
|
||||
add edi,[stringlen]
|
||||
dec edi
|
||||
|
||||
mov eax,edi
|
||||
sub eax,[fileinfo.point]
|
||||
|
||||
cmp eax,[fileinfo.size]
|
||||
ja asminit1
|
||||
|
||||
cmp word [edi],0x0a0d
|
||||
je addstring
|
||||
|
||||
cmp byte [edi],0x0a
|
||||
jne noaddstring
|
||||
|
||||
dec edi
|
||||
;--------------------------------------
|
||||
align 4
|
||||
addstring:
|
||||
add [stringpos],16
|
||||
add edi,2
|
||||
mov [stringstart],edi
|
||||
mov dword [stringlen],1
|
||||
mov ax,[stringpos]
|
||||
cmp ax,[y_max]
|
||||
jb tstill
|
||||
jmp newpage
|
||||
;--------------------------------------
|
||||
align 4
|
||||
noaddstring:
|
||||
mov ebx,[stringlen]
|
||||
shl ebx,19
|
||||
mov bx,[stringpos]
|
||||
mov edx,[stringstart]
|
||||
add edx,[stringlen]
|
||||
dec edx
|
||||
mcall 4,,0x104ba010,,1
|
||||
inc dword [stringlen]
|
||||
cmp [edi],byte ' '
|
||||
je drawssasm
|
||||
jmp tstill
|
||||
;------------------------------------------------------------------------------
|
||||
align 4
|
||||
draw_line:
|
||||
movzx esi,[x_max]
|
||||
movzx edi,[y_max]
|
||||
|
||||
mov eax,[addx1]
|
||||
add [lx1],eax
|
||||
mov eax,[addy1]
|
||||
add [ly1],eax
|
||||
|
||||
mov eax,[addx2]
|
||||
add [lx2],eax
|
||||
mov eax,[addy2]
|
||||
add [ly2],eax
|
||||
|
||||
cmp [lx1],1
|
||||
jge dl1
|
||||
mov [addx1],1
|
||||
;--------------------------------------
|
||||
align 4
|
||||
dl1:
|
||||
cmp [lx2],1
|
||||
jge dl2
|
||||
|
||||
mov [addx2],1
|
||||
;--------------------------------------
|
||||
align 4
|
||||
dl2:
|
||||
cmp [lx1],esi
|
||||
jbe dl3
|
||||
|
||||
mov [addx1],0xffffffff
|
||||
;--------------------------------------
|
||||
align 4
|
||||
dl3:
|
||||
cmp [lx2],esi
|
||||
jbe dl4
|
||||
|
||||
mov [addx2],0xffffffff
|
||||
;--------------------------------------
|
||||
align 4
|
||||
dl4:
|
||||
cmp [ly1],1
|
||||
jge dl5
|
||||
mov [addy1],1
|
||||
;--------------------------------------
|
||||
align 4
|
||||
dl5:
|
||||
cmp [ly2],2
|
||||
jge dl6
|
||||
|
||||
mov [addy2],1
|
||||
;--------------------------------------
|
||||
align 4
|
||||
dl6:
|
||||
cmp [ly1],edi
|
||||
jbe dl7
|
||||
|
||||
mov [addy1],-1
|
||||
;--------------------------------------
|
||||
align 4
|
||||
dl7:
|
||||
cmp [ly2],edi
|
||||
jbe dl8
|
||||
|
||||
mov [addy2],-1
|
||||
;--------------------------------------
|
||||
align 4
|
||||
dl8:
|
||||
mov eax,[lx2]
|
||||
cmp [lx1],eax
|
||||
jz dnol
|
||||
|
||||
mov bx,word [lx1]
|
||||
shl ebx,16
|
||||
mov bx,word [lx2]
|
||||
|
||||
mov cx,word [ly1]
|
||||
shl ecx,16
|
||||
mov cx,word [ly2]
|
||||
|
||||
mov edx,[lcolor]
|
||||
and edx,0xffffff
|
||||
mcall 38
|
||||
;--------------------------------------
|
||||
align 4
|
||||
dnol:
|
||||
add [lcolor],0x010201
|
||||
ret
|
||||
;------------------------------------------------------------------------------
|
||||
align 4 ; DATA AREA
|
||||
type dd 12
|
||||
delay dd 100
|
||||
lx1 dd 10
|
||||
lx2 dd 40
|
||||
ly1 dd 50
|
||||
ly2 dd 100
|
||||
addx1 dd 1
|
||||
addx2 dd 1
|
||||
addy1 dd 1
|
||||
addy2 dd 1
|
||||
stringlen dd 1
|
||||
stringstart dd 0
|
||||
|
||||
stringpos dw 16
|
||||
params db 0 ;if bit 0 set-ssaver works if bit 1 set-setup works
|
||||
|
||||
fileinfo:
|
||||
dd 0
|
||||
dd 0
|
||||
dd 0
|
||||
.size: dd 0
|
||||
.point: dd 0
|
||||
db '/sys/macros.inc',0
|
||||
|
||||
f70: ; run
|
||||
dd 7, 0, 0, 0, 0
|
||||
db '/sys/@SS',0
|
||||
|
||||
screensaver db ?
|
||||
|
||||
;-------------------------------
|
||||
IM_END: ; UNINITIALIZED DATA
|
||||
top_right_corner rd 1
|
||||
align 4
|
||||
lcolor dd ?
|
||||
x_max dw ? ; размеры экрана
|
||||
y_max dw ?
|
||||
I_Param:
|
||||
fileinfo_buffer:
|
||||
rb 40
|
||||
;-------------------------------
|
||||
rb 512
|
||||
stack_top:
|
||||
I_END:
|
||||
Reference in new issue
Block a user