Subversion Repositories Kolibri OS

Compare Revisions

No changes between revisions

Regard whitespace Rev 9449 → Rev 9450

/programs/demos/crownscr/trunk/crownscr.asm
38,8 → 38,8
start:
cmp dword[params], '@ss'
setz [screensaver]
mov ebx, EVM_REDRAW + EVM_KEY
cmovz ebx, EVM_REDRAW + EVM_KEY + EVM_MOUSE
mov ebx, EVM_REDRAW + EVM_KEY + EVM_BUTTON
cmovz ebx, EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE
mcall 40
 
cmp [flscr],0
/programs/demos/spiral/spiral.asm
353,8 → 353,8
start:
cmp dword[params], '@ss'
setz [screensaver]
mov ebx, EVM_REDRAW + EVM_KEY
cmovz ebx, EVM_REDRAW + EVM_KEY + EVM_MOUSE
mov ebx, EVM_REDRAW + EVM_KEY + EVM_BUTTON
cmovz ebx, EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE
mcall 40
 
mov edi, transparent_cursor
/programs/demos/zeroline/trunk/Tupfile.lua
0,0 → 1,2
if tup.getconfig("NO_FASM") ~= "" then return end
tup.rule("zeroline.asm", "fasm %f %o " .. tup.getconfig("KPACK_CMD"), "zeroline")
/programs/demos/zeroline/trunk/build.bat
0,0 → 1,3
@fasm -m 16384 zeroline.asm zeroline
@kpack @ss
@pause
/programs/demos/zeroline/trunk/build.sh
0,0 → 1,11
#!/bin/bash
# This script does for linux the same as build.bat for DOS,
# it compiles the KoOS kernel, hopefully ;-)
 
fasm -m 16384 zeroline.asm zeroline
kpack zeroline
exit 0
 
 
 
 
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/programs/demos/zeroline/trunk/zeroline.asm
0,0 → 1,373
;------------------------------------------------------------------------------
; @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
;--------------------------------------
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: