/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 |