crownscr: can be used as a screensaver now

git-svn-id: svn://kolibrios.org@9449 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Kirill Lipatov (Leency) 2021-12-20 22:36:51 +00:00
parent e4ec81f666
commit 0dea1e1980
5 changed files with 64 additions and 59 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -71,6 +71,7 @@
59 Hotkeys |mykey
56 Clipboard viewer |develop/clipview
62 Calendar |calendar
33 Online update * |/kolibrios/utils/osupdate
48 Process manager |cpu
24 Terminal |terminal
05 Save ramdisk |rdsave

View File

@ -74,6 +74,7 @@
24 ’¥à¬¨­ « |terminal
24 Š®­á®«ì SHELL |shell
05 ‘®åà ­¥­¨¥ ®¡à §  |rdsave
33 𦀩<>帛 恣陋◤平言 * |/kolibrios/utils/osupdate
#8 **** ‘¨á⥬  > ”Œ
50 Eolite |File Managers/Eolite
05 KFM2 |File Managers/kfm2

View File

@ -12,6 +12,7 @@
fullscreen = 1
n_points = 0x1800
delay = 2
const480 = 480
speed equ 0.004
@ -25,16 +26,32 @@ use32
dd i_end ; size of image
dd i_end+0x1000 ; memory for app
dd i_end+0x1000 ; esp
dd 0x0 ; I_Param
dd params ; I_Param
dd 0x0 ; I_Icon
copyright db 'Crown_s Soft(c) Screensaver v1.13m www.crown-s-soft.com',0
copyright db 'Crown_s Soft(c) Screensaver - www.crown-s-soft.com',0
copyrightlen:
include "lang.inc"
include "figuresi.inc"
include "..\..\..\macros.inc"
start:
cmp dword[params], '@ss'
setz [screensaver]
mov ebx, EVM_REDRAW + EVM_KEY
cmovz ebx, EVM_REDRAW + EVM_KEY + EVM_MOUSE
mcall 40
cmp [flscr],0
jz @f
mov edi, transparent_cursor
xor eax, eax
mov ecx, 32*32
rep stosd
mcall 37, 4, transparent_cursor, 2
mov ecx, eax
mcall 37, 5
@@:
cld
finit
call filling_alfbet ; fill table alfbet by casual numbers
@ -49,7 +66,7 @@ start:
mcall
mov [maxy],ax
sub ax,480
sub ax,const480
jnc m5
xor ax,ax
m5:
@ -58,47 +75,49 @@ start:
shr eax,16
mov [maxx],ax
sub ax,480
sub ax,const480
jnc m6
xor ax,ax
m6:
shr ax,1
mov [posx],ax
mov [outsize],480+65536*480
mov [outsize],const480+65536*const480
jmp m4
nofullscreen:
mov [posx],75
mov [posy],20
mov [outsize],450+65536*480
mov [outsize],const480+65536*const480
m4:
red:
call draw_window
still:
mov eax,23
mov ebx,delay
mcall ; wait here for event
mcall 23,delay ; wait here for event
cmp eax,1 ; redraw request ?
je red
cmp eax,2 ; key in buffer ?
je key
cmp eax,3 ; button in buffer ?
je button
je close
cmp eax,6 ; mouse moved ?
je close
call calcframe
mov edx,dword [posy] ; edx=image position in window [x]*65536+[y]
mov ecx,[outsize] ; ecx=image position in window [x]*65536+[y]
mov ebx,scr ; ebx pointer to image in memory
mov eax,07 ; putimage
mov ebx,scr ; ebx pointer to image in memory
mov ecx,[outsize] ; ecx=image position in window [w]*65536+[h]
mov edx,dword [posy] ; edx=image position in window [x]*65536+[y]
mcall
jmp still
key:
cmp [screensaver], 0
jnz close
mov eax,2
mcall
@ -108,16 +127,12 @@ key:
jz close
jmp still
button: ; button
mov eax,17 ; get id
mcall
; cmp ah,1 ; button id=1 ?
; jne still
close:
mov eax,-1 ; close this program
mcall
cmp [screensaver], 0
jz @f
mcall 70, f70
@@:
mcall -1
; *********************************************
@ -126,35 +141,17 @@ close:
draw_window:
mov eax,12 ; function 12:tell os about windowdraw
mov ebx,1 ; 1, start of draw
mcall
mcall 12, 1 ;start draw
cmp [flscr],0
jnz m2
mov ebx,1*65536+638 ; [x start] *65536 + [x size]
mov ecx,1*65536+478 ; [y start] *65536 + [y size]
mov edx,0x02000000 ; color of work area RRGGBB,8->color gl
mov esi,0x805080d0 ; color of grab bar RRGGBB,8->color gl
mov edi,0x005080d0 ; color of frames RRGGBB
xor eax,eax ; function 0 : define and draw window
mcall
mcall 48,4
mov esi, eax
; DRAW WINDOW
mov ecx,100*65536+const480+4 ; [y start] *65536 + [y size]
add ecx, esi
mcall 0, 100*65536+const480+9,,0x74000000,,copyright
; WINDOW LABEL
mov ebx,8*65536+8 ; [x start] *65536 + [y start]
mov ecx,0x10ddeeff ; color of text RRGGBB
mov edx,copyright ; pointer to text beginning
mov esi,copyrightlen-copyright; text length
mov eax,4 ; function 4 : write text to window
mcall
; CLOSE BUTTON
mov ebx,(640-19)*65536+12 ; [x start] *65536 + [x size]
mov ecx,5*65536+12 ; [y start] *65536 + [y size]
mov edx,1 ; button id
mov esi,0x6688dd ; button color RRGGBB
mov eax,8 ; function 8 : define and draw button
mcall
jmp m3
m2:
movzx ebx,[maxx] ; [x start] *65536 + [x size]
@ -172,16 +169,14 @@ draw_window:
mcall
m3:
mov eax,12 ; function 12:tell os about windowdraw
mov ebx,2 ; 2, end of draw
mcall
mcall 12, 2 ;end draw
ret
calcframe:
cld
mov edi,scr
mov ecx,480*480*3/4
mov ecx,const480*const480*3/4
xor eax,eax
rep stosd ; CLS
@ -292,7 +287,7 @@ turn:
mov eax,[x1]
add eax,[mid]
mul [const480]
mul [consts]
add eax,[y1]
add eax,[mid]
mul [const3]
@ -361,7 +356,7 @@ align 2
const3 dd 3
const6 dw 6
const480 dd 480
consts dd const480
mFl dd n_points
pp1 dw 0
@ -398,7 +393,15 @@ align 2
y1 dd ?
z1 dd ?
f70: ; run
dd 7, 0, 0, 0, 0
db '/sys/@SS',0
screensaver db ?
params rb 4
transparent_cursor rd 32*32
align 16
alfbet: ; alfbet db n_points*4 dup (?)
scr = alfbet+n_points*4 ; scr db 480*480*3+1 dup (?)
i_end = scr+480*480*3+1 ; i_param db 256 dup (?)
i_end = scr+const480*const480*3+1 ; i_param db 256 dup (?)

View File

@ -360,7 +360,7 @@ start:
mov edi, transparent_cursor
xor eax, eax
mov ecx, 32*32
rep stosd
rep stosd
mcall 37, 4, transparent_cursor, 2
mov ecx, eax
mcall 37, 5
@ -417,7 +417,7 @@ turtle Turtle 0.0, 0.0, 0.0, <180, 255, 255>
f70: ; run
dd 7, 0, 0, 0, 0
db '/sys/@ss',0
db '/sys/@SS',0
i_end:
align 4
@ -427,7 +427,7 @@ frame_start dd ?
color dd ?
proc_info process_information
params rb 0x400
params rb 4
transparent_cursor rd 32*32
screensaver db ?
align 4