kolibrios/programs/games/lights/trunk/macs.inc
2011-01-29 22:35:52 +00:00

73 lines
1.6 KiB
PHP

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 ; 䨮«¥â®¢ë©