Subversion Repositories Kolibri OS

Compare Revisions

No changes between revisions

Regard whitespace Rev 1802 → Rev 1803

/programs/games/lights/trunk/Lights_HINT.PNG
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/programs/games/lights/trunk/data.inc
0,0 → 1,53
;#**************************
;#* LIGHTS (c)* data.inc
;#************************** 15/10/2007
L0 equ 0x0000F8 ; light off
L1 equ 0xFFFF00 ; light on
deltaX equ 35
deltaY equ 35
posX equ 50
posY equ 50
 
macro DATA_SECTION
{
; „€›… Žƒ€ŒŒ›
;-----------------------------------------------------------------------------
text: db 'LIGHTS v0.002 [ESC] - quit' ; winheader string
texts: db 'Congratulations!!!' ; in window
textend:
 
;=================Table===================== 18x18 :: N,Color,X,Y , up,lf,rt,dn
tButIdx: dd 0
tBut:
db 5,0, posX+deltaX*0, posY+deltaY*0 , 0 , 0 , 1 , 1
db 6,0, posX+deltaX*1, posY+deltaY*0 , 0 , 1 , 1 , 1
db 7,0, posX+deltaX*2, posY+deltaY*0 , 0 , 1 , 1 , 1
db 8,0, posX+deltaX*3, posY+deltaY*0 , 0 , 1 , 1 , 1
db 9,0, posX+deltaX*4, posY+deltaY*0 , 0 , 1 , 0 , 1
 
db 10,0, posX+deltaX*0, posY+deltaY*1 , 1 , 0 , 1 , 1
db 11,0, posX+deltaX*1, posY+deltaY*1 , 1 , 1 , 1 , 1
db 12,0, posX+deltaX*2, posY+deltaY*1 , 1 , 1 , 1 , 1
db 13,0, posX+deltaX*3, posY+deltaY*1 , 1 , 1 , 1 , 1
db 14,0, posX+deltaX*4, posY+deltaY*1 , 1 , 1 , 0 , 1
 
db 15,0, posX+deltaX*0, posY+deltaY*2 , 1 , 0 , 1 , 1
db 16,0, posX+deltaX*1, posY+deltaY*2 , 1 , 1 , 1 , 1
db 17,0, posX+deltaX*2, posY+deltaY*2 , 1 , 1 , 1 , 1
db 18,0, posX+deltaX*3, posY+deltaY*2 , 1 , 1 , 1 , 1
db 19,0, posX+deltaX*4, posY+deltaY*2 , 1 , 1 , 0 , 1
 
db 20,0, posX+deltaX*0, posY+deltaY*3 , 1 , 0 , 1 , 1
db 21,0, posX+deltaX*1, posY+deltaY*3 , 1 , 1 , 1 , 1
db 22,0, posX+deltaX*2, posY+deltaY*3 , 1 , 1 , 1 , 1
db 23,0, posX+deltaX*3, posY+deltaY*3 , 1 , 1 , 1 , 1
db 24,0, posX+deltaX*4, posY+deltaY*3 , 1 , 1 , 0 , 1
 
db 25,0, posX+deltaX*0, posY+deltaY*4 , 1 , 0 , 1 , 0
db 26,0, posX+deltaX*1, posY+deltaY*4 , 1 , 1 , 1 , 0
db 27,0, posX+deltaX*2, posY+deltaY*4 , 1 , 1 , 1 , 0
db 28,0, posX+deltaX*3, posY+deltaY*4 , 1 , 1 , 1 , 0
db 29,0, posX+deltaX*4, posY+deltaY*4 , 1 , 1 , 0 , 0
;=======================================:: N,Color,X,Y , up,lf,rt,dn
;----------------------------------------------------------------------------
}
/programs/games/lights/trunk/lights.asm
0,0 → 1,15
;#**************************
;#* LIGHTS * Kolibri OS
;#************************** 15/10/2007
include 'main.inc'
include 'data.inc'
include 'macs.inc'
 
BeginProgram
 
main_loop
 
DATA_SECTION
 
EndProgram
 
/programs/games/lights/trunk/lights.txt
0,0 → 1,11
LIGHTS v0.002
 
Š« áá¨ç¥áª ï ¨£à  ¢ ‹ ¬¯®çª¨ ¨§¢¥áâ­  ¤ ¢­®.
à ¢¨«  ¯à®áâë. –¥«ì ¨£àë ¢ª«îç¨âì ¢á¥ 25 "« ¬¯®ç¥ª".
 ¦ â¨¥ ¬ë誮© ­  ª«¥âªã ¡ã¤¥â ¯¥à¥ª«îç âì « ¬¯®çªã
(  â ª¦¥ ᬥ¦­ë¥)   â ª¦¥ á®á¥¤­¨¥ ¢ á®áâ®ï­¨¥ ¢ª«./¢ëª«.
 
Š ¦¥âáï «¥£ª®, ­® íâ® ¤®¢®«ì­® âà㤭®.
 
 
===16/10/2007===http://board.kolibrios.org/
/programs/games/lights/trunk/macs.inc
0,0 → 1,72
macro BeginProgram
{
use32
org 0x0
 
db 'MENUET01'
dd 0x01
dd __start
dd __end
dd 0x10000 ;__memory
dd 0x10000 ;__stack
dd 0x0 ; dd __params
dd 0x0
__start:
}
 
macro EndProgram
{
align 32
rb 2048
__end:
;org 0x10000
__stack:
__memory:
}
 
macro mButton nn,crgb,x,y,dx,dy
{
mov eax,8 ; äã­ªæ¨ï 8: ®¯à¥¤¥«¨âì ¨ ¢ë¢¥á⨠ª­®¯ªã
mov ebx,x*65536+dx ; [x ­ ç «ì­ë©] *65536 + [x à §¬¥à]
mov ecx,y*65536+dy ; [y ­ ç «ì­ë©] *65536 + [y à §¬¥à]
mov edx,nn ; ¨¤¥­â¨ä¨ª â®à ª­®¯ª¨ =1
mov esi,crgb ;0x116611 ; 梥⠪­®¯ª¨ RRGGBB
int 0x40
}
 
macro LoopBegin lab,begi
{
push ecx ; ECX->STACK store
mov ecx,begi
lab:
push ecx ; ECX->STACK counter
}
 
macro LoopEnd lab,endi
{
pop ecx ;ECX<-STACK counter
inc ecx
cmp ecx,endi
jne lab
pop ecx ;ECX<-STACK restore
}
 
 
 
;------------------------------------
; constants
;-----------------------梥â:0xRRGGBB
cBLACK = 0x000000 ; ç¥à­ë©
cRED = 0xFF0000 ; ªà á­ë©
cYELLOW = 0x3FFFF00 ; ¦¥«âë©
cGREEN = 0x00FF00 ; §¥«¥­ë©
cNAVY = 0x0000FF ; ᨭ¨©
cMAGENTA = 0xFF00FF ; ¬ «¨­®¢ë©
cBLUE = 0x00FFFF ; £®«ã¡®©
cWHITE = 0xFFFFFF ; ¡¥«ë©
cBROWN = 0x554433 ;
 
;-------------------------------
cMAGENTAl = 0xB800B8 ; magenta
cVIOLETl = 0xF800F8 ; 䨮«¥â®¢ë©
 
/programs/games/lights/trunk/main.inc
0,0 → 1,217
;#**************************
;#* LIGHTS (c)* main.inc
;#************************** 15/10/2007
L0 equ 0x0000F8 ; light off
L1 equ 0xFFFF00 ; light on
LAG equ 2
deltaX equ 35
deltaY equ 35
posX equ 50
posY equ 50
 
macro main_loop
{
 
; äã­ªæ¨ï ®âà¨á®¢ª¨ ®ª­ 
draw_window:
mov eax,12 ; äã­ªæ¨ï 12: á®®¡é¨âì á¨á⥬¥ ®
; á®áâ®ï­¨¨ ¯¥à¥à¨á®¢ª¨ ®ª­ 
mov ebx,1 ; ¯®¤äã­ªæ¨ï 1, ­ ç «® ¯¥à¥à¨á®¢ª¨
int 0x40
; ===== ŽŠŽ !!1
mov eax,0 ; äã­ªæ¨ï 0: ®¯à¥¤¥«¨âì ¨ ¢ë¢¥á⨠®ª­®
mov ebx,100*65536+270 ; [x ­ ç «ì­ë©] *65536 + [x à §¬¥à]
mov ecx,100*65536+280 ; [y ­ ç «ì­ë©] *65536 + [y à §¬¥à]
mov edx,0x02ccddff ; 梥â à ¡®ç¥© ®¡« á⨠RRGGBB
; 0x02000000 = ⨯ ®ª­  2
mov esi,0x808899AA ; 梥⠮¡« á⨠§ £®«®¢ª  RRGGBB
; 0x80000000 = 梥⠯¥à¥â¥ª ¥â
mov edi,0xFFAAcc ; 梥â à ¬ª¨ RRGGBB
int 0x40
; €„ˆ‘œ ¢ § £®«®¢ª¥ Lights v0.001
mov eax,4 ; äã­ªæ¨ï 4: ­ ¯¨á âì ⥪áâ ¢ ®ª­¥
mov ebx,8*65536+8 ; [x ­ ç «ì­ë©] *65536 + [y ­ ç «ì­ë©]
mov ecx,0x00224422 ; 梥â ⥪áâ  RRGGBB
; áâ à訩 ¡ ©â (0x00) - à §¬¥à èà¨äâ 
; (¬ «¥­ìª¨©)
mov edx,text ; 㪠§ â¥«ì ­  ­ ç «® ⥪áâ 
mov esi,texts-text ; ¤«¨­  ⥪áâ  ¢ ¡ ©â å
int 0x40
 
xor eax,eax ; €„ˆ‘œ ¢ ®ª­¥!!!
mov ecx,eax
lb: ;loop ecx
mov edi,ecx ;
shl edi,3 ;
add edi,tBut ;
add al,byte[edi+1] ;
;
inc ecx ;
cmp ecx,25 ;
jne lb ;ecx<25
 
cmp eax, 0xE7 ;25
jne goon
;int3
;call Bin2Hex
mov eax,4 ; äã­ªæ¨ï 4: ­ ¯¨á âì ⥪áâ ¢ ®ª­¥
mov ebx,80*65536+250 ; [x ­ ç «ì­ë©] *65536 + [y ­ ç «ì­ë©]
mov ecx,0x10FF22FF ; 梥â ⥪áâ  RRGGBB
; ; áâ à訩 ¡ ©â (0x10) - à §¬¥à èà¨äâ 
; ; (¡®«ì让)
;mov edx,txthex
;mov esi,17
mov edx,texts ; 㪠§ â¥«ì ­  ­ ç «® ⥪áâ 
mov esi,textend-texts ; ¤«¨­  ⥪áâ  ¢ ¡ ©â å
int 0x40
 
goon:
;-------------------------------------------------------------------------------
; ----ŠŽŠˆ----
; button()
;-------------------------------------------------------------------------------
 
mov eax,8 ; äã­ªæ¨ï 8: ®¯à¥¤¥«¨âì ¨ ¢ë¢¥á⨠ª­®¯ªã
mov ebx,(200-19)*65536+12 ; [x ­ ç «ì­ë©] *65536 + [x à §¬¥à]
mov ecx,5*65536+12 ; [y ­ ç «ì­ë©] *65536 + [y à §¬¥à]
mov edx,100 ; ¨¤¥­â¨ä¨ª â®à ª­®¯ª¨ =1
mov esi,0xFF6611 ; 梥⠪­®¯ª¨ RRGGBB
int 0x40 ; ===ŠŽŠ€ ‡€Š›’ˆŸ ŽŠ€===
 
 
LoopBegin labl,0 ;ecx - loop index
;add ecx,5
mov edi,ecx
shl edi,3 ;edi*8 -index of table
add edi,tBut
 
xor ebx,ebx
mov bl,byte[edi+2] ;X
shl ebx,16 ;*65536=256*256
add ebx,deltaX-LAG ;dX
xor ecx,ecx
mov cl,byte[edi+3] ;Y
shl ecx,16 ;*65536=256*256
add ecx,deltaY-LAG ;dY
xor edx,edx
mov dl,byte[edi] ;N
 
xor esi,esi
cmp byte[edi+1], 0 ;Color = 0/1
je lit_off
mov esi,L1 ;on
jmp lend
lit_off:
mov esi,L0 ;off
lend:
mov eax,8 ;8-BUTTON
int 0x40
LoopEnd labl,25
 
;=============================================================
endbut:
mov eax,12 ; äã­ªæ¨ï 12: á®®¡é¨âì á¨á⥬¥ ®
; á®áâ®ï­¨¨ ¯¥à¥à¨á®¢ª¨ ®ª­ 
mov ebx,2 ; ¯®¤äã­ªæ¨ï 2, ¯¥à¥à¨á®¢ª  ®ª®­ç¥­ 
int 0x40
;ret ; ª®­¥æ ä㭪樨 - íâ® ­¥ äã­ªæ¨ï!
 
event_wait:
;mov eax,10 ; äã­ªæ¨ï 10:=0A ®¦¨¤ ­¨¥ ᮡëâ¨ï
mov eax,23
mov ebx,100
int 0x40
 
; ⨯ ᮡëâ¨ï ¢®§¢à éñ­ ¢ eax, ¤ «¥¥ ¯à®¢¥à塞, ª ª®¥ ᮡë⨥ ¯à®¨§®è«®
;-------------------------------------------------------------------------------
cmp eax,1 ; § ¯à®á ­  ¯¥à¥à¨á®¢ªã?
je redraw
cmp eax,2 ; ­ ¦ â  ª« ¢¨è  ª« ¢¨ âãàë?
je key
cmp eax,3 ; ­ ¦ â  ª­®¯ª  ¢ ®ª­¥ ¯à®£à ¬¬ë?
je button
 
jmp event_wait ; ¢®§¢à é ¥¬áï ª ­ ç «ã 横«  ®¦¨¤ ­¨ï ᮡë⨩
 
; ¯®á«¥ ⮣®, ª ª ᮡë⨥ ¨¤¥­â¨ä¨æ¨à®¢ ­®, ¥£® ­ ¤® ®¡à ¡®â âì
;-------------------------------------------------------------------------------
redraw:
call draw_window ; ¢ë§ë¢ ¥¬ äã­ªæ¨î draw_window ¨
jmp event_wait ; ¢®§¢à é ¥¬áï ­ § ¤ ª 横«ã ®¦¨¤ ­¨ï
 
key:
mov eax,2 ; áç¨â뢠¥¬ ª®¤ ­ ¦ â®© ª« ¢¨è¨. ‚®§¢à é¥­ ¢ ah.
int 0x40 ; Š« ¢¨è  ¤®«¦­  ¡ëâì ¯à®ç¨â ­  ¤«ï ®ç¨á⪨
cmp ah,27
je clos0 ; exit on ESC
;
jmp event_wait ; ¢®§¢à â ª event_wait
 
button:
mov eax,17 ; áç¨â뢠¥¬ ¨¤¥­â¨ä¨ª â®à ­ ¦ â®© ª­®¯ª¨
int 0x40 ; ¢®§¢à é¥­ ah.
 
;-------------------------------------------------------------------------------
; ᬮâਬ, ª ª ï ª­®¯ª  ¡ë«  ­ ¦ â  ¨ ᮮ⢥âáâ¢ãî騬 ®¡à §®¬ ॠ£¨à㥬.
;-------------------------------------------------------------------------------
cmp ah,100 ; ª­®¯ª  á id=100("§ ªàëâì")?
jne noclose
clos0:
mov eax,-1 ; äã­ªæ¨ï -1: § ¢¥àè¨âì ¯à®£à ¬¬ã
int 0x40 ; ª­®¯ª  5-29
noclose:
 
xor ecx,ecx ;
mov cl,ah ;
sub ecx,5 ; ecx - index for tBut
 
mov edi,ecx
call x_lit ;+0 - 業âà
mov [tButIdx],edi ;save index
 
mov edi,[tButIdx]
cmp byte[edi+6],0
je next000
mov edi,ecx
inc edi
call x_lit ;+1 á¯à ¢ 
 
next000:
mov edi,[tButIdx]
cmp byte[edi+5],0
je next001
mov edi,ecx
dec edi
call x_lit ;-1 á«¥¢ 
 
next001:
mov edi,[tButIdx]
cmp byte[edi+4],0
je next002
mov edi,ecx
sub edi,5
call x_lit ;-5 ᢥàåã
 
next002:
mov edi,[tButIdx]
cmp byte[edi+7],0
je next003
mov edi,ecx
add edi,5
call x_lit ;+5 á­¨§ã
next003:
call draw_window
jmp event_wait
;================================--
x_lit: ; edi - index
shl edi,3 ; edi*8 -index of table tBut
add edi,tBut ;
not byte[edi+1] ; invert second byte = L0/L1
ret ;
;================================--
call draw_window ;­ è  ª­®¯ª ;)
; §¤¥áì ¯à®¢¥à塞 ®áâ «ì­ë¥ ª­®¯ª¨
jmp event_wait ;¢®§¢à é ¥¬áï ª 横«ã ®¦¨¤ ­¨ï
}
 
 
/programs/games/lights/trunk/.
Property changes:
Added: tsvn:logminsize
+5
\ No newline at end of property