Subversion Repositories Kolibri OS

Compare Revisions

No changes between revisions

Regard whitespace Rev 7599 → Rev 7600

/programs/system/scrsaver/Tupfile.lua
0,0 → 1,4
if tup.getconfig("NO_FASM") ~= "" then return end
HELPERDIR = (tup.getconfig("HELPERDIR") == "") and "../.." or tup.getconfig("HELPERDIR")
tup.include(HELPERDIR .. "/use_fasm.lua")
tup.rule("scrsaver.asm", FASM .. " %f %o " .. tup.getconfig("KPACK_CMD"), "scrsaver")
/programs/system/scrsaver/scrsaver.asm
0,0 → 1,86
use32
org 0
db 'MENUET01'
dd 0x01,start,i_end,e_end,e_end,0,0
 
include 'proc32.inc'
include 'macros.inc'
include 'dll.inc'
include 'debug-fdo.inc'
 
__DEBUG__ = 1
__DEBUG_LEVEL__ = 1
 
DEFAULT_TIMEOUT_MINS = 15
 
start:
mcall 68, 11
mcall 40, EVM_KEY + EVM_BACKGROUND + EVM_MOUSE
 
stdcall dll.Load,@IMPORT
test eax, eax
jnz exit
 
invoke ini.get_int, ini_file, ini_section, ini_key_timeout, DEFAULT_TIMEOUT_MINS
imul eax, 60*100 ; cs
mov [timeout], eax
 
; r1647 by Nasarus
mcall 66, 4, 57, 0 ; hot key for {Space}
mcall 66, 4, 28, 0 ; hot key for {Enter}
 
still:
mcall 23, [timeout]
test eax, eax
jz run_saver
cmp eax, 2 ; key
jnz still
mcall
; r1647 by Nasarus
cmp al, 2 ; hot key?
jnz still ; no hotkey, evenets handling go on
movzx edx, ah
mcall 72, 1, 2 ; transfer key code to active window after interception
jmp still
run_saver:
invoke ini.get_str, ini_file, ini_section, ini_key_program, ini_program_buf, ini_program_buf.size, ini_program_default
; run actual screensaver
mcall 70, f70
cmp eax, 0
jg exit
neg eax
DEBUGF 1, 'Screen saver not found: %d: %s\n', eax, ini_program_buf
exit:
mcall -1
 
 
sz ini_file, '/sys/settings/system.ini',0
sz ini_section, 'screensaver',0
sz ini_key_timeout, 'timeout',0
timeout dd ?
sz ini_key_program, 'program',0
sz ini_program_default, '/sys/demos/spiral',0
sz program_params, '@ss',0
 
f70: ; run
dd 7, 0, program_params, 0, 0
db 0
dd ini_program_buf
 
align 4
@IMPORT:
 
library \
libini , 'libini.obj'
 
import libini, \
ini.get_str, 'ini_get_str', \
ini.get_int, 'ini_get_int'
 
include_debug_strings
i_end:
 
align 4
sz ini_program_buf, 1024 dup(?)
rb 0x100
e_end:
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property