SPAN class=postbody
사용자
br /이건 오래부터 여기저기 공개했던 불타는 화면을 연출한겁니다. br /br /만약 이것보다 작은 프로그램을 만들수 있다면 해보세요. br /어셈블리의 장점은 이런것이겠죠. 작고 빠르고~ br /br /br /br //SPAN TABLE cellSpacing=1 cellPadding=3 width=90% align=center border=0 TBODY TR TDSPAN class=genmedB코드:/B/SPAN/TD/TR TR TD class=codebr /COMMENT # br /br /Name : Percieve kernel br /br /File : FIRE.ASM br /br /Code : Cho JaeHyuk br /br /Copy : Copyright (c) 1998 by MINZ br /br /# br /br /br /br /.286 br /br /br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;assume cs:_CODE16, ds:_CODE16, es:_CODE16 br /br /_CODE16nbsp; nbsp; segment br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;org 100h br /br /_SAVER_fire: br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;mov ax, 0013h br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;int 10h br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;xor al, al br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;mov dx, 03c8h br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;out dx, al br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;inc dx br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;xor cl, cl br /br /@@: br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;mov al, cl br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;out dx, al br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;xor al, al br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;out dx, al br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;out dx, al br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;inc cl br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;cmp cl, 64 br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;jne short @B br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;xor cl, cl br /br /@@: br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;mov al, 63 br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;out dx, al br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;mov al, cl br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;out dx, al br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;xor al, al br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;out dx, al br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;inc cl br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;cmp cl, 64 br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;jne short @B br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;xor cl, cl br /br /@@: br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;mov al, 63 br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;out dx, al br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;out dx, al br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;mov al, cl br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;out dx, al br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;inc cl br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;cmp cl, 64 br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;jne short @B br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;xor cl, cl br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;mov al, 63 br /br /@@: br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;out dx, al br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;inc cl br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;cmp cl, 64 br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;jne short @B br /br /br /br /l_SAVER_fire_0000: br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;push 0a000h br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;pop ds br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;mov cx, 32 br /br /@@:nbsp; nbsp; nbsp; nbsp; br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;push 320 br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;call near ptr _random br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;add ax, (200 * 320) br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;push ax br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;push 240 br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;call near ptr _random br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;pop bx br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;mov byte ptr [bx], al br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;loop short @B br /br /br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;mov bx, 48000 br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;xor cx, cx br /br /l_SAVER_fire_0001: br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;xor ax, axnbsp; nbsp; nbsp; nbsp; nbsp; br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;mov al, byte ptr [bx] br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;mov cl, byte ptr [bx + 319] br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;add ax, cx br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;mov cl, byte ptr [bx + 320] br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;add ax, cx br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;mov cl, byte ptr [bx + 321] br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;add ax, cx br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;shr ax, 2nbsp; nbsp; nbsp; nbsp; nbsp; br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;dec ax br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;dec ax br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;or ah, ah br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;jnz short @F br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;mov byte ptr [bx], al br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;push bx br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;mov cx, 64000 - 1 br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;sub cx, bx br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;mov bx, cx br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;xor cx, cx br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;mov byte ptr [bx], al br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;pop bx br /br /@@: br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;inc bx br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;cmp bx, 0fa00h br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;jne short l_SAVER_fire_0001 br /br /br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;in al, 60h br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;dec al br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;jnz short l_SAVER_fire_0000 br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;mov ax, 0003h br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;int 10h br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;int 20h br /br /_randomnbsp; nbsp; proc near br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;push bp br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;mov bp, sp br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;in al, 40h br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;add ax, word ptr cs:l_rand_0000 br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;mov word ptr cs:l_rand_0000, ax br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;xor dx, dx br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;div word ptr [bp + 4] br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;mov ax, dx br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;pop bp br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;retn 2 br /br /l_rand_0000 dw 0a5a5h br /br /_randomnbsp; nbsp; endp br /br /_CODE16nbsp; nbsp; ends br /br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;end _SAVER_fire br /br /br /br /; End of source br //TD/TR/TBODY/TABLESPAN class=postbodybr /br /br /Linux용 (16bpp framebuffer) br //SPAN TABLE cellSpacing=1 cellPadding=3 width=90% align=center border=0 TBODY TR TDSPAN class=genmedB코드:/B/SPAN/TD/TR TR TD class=code/* br /nbsp; Copyright (C) Information Equipment co.,LTD br /nbsp; All rights reserved. br /nbsp; Code by JaeHyuk Cho lt;mailto:minzkn@infoeq.comgt; br /nbsp; CVSTAG=$Header: /cvsroot/inbt/mzapi/memo/fbfire/fire.c,v 1.1.1.2 2006/01/24 04:23:02 minzkn Exp $ br /*/ br /br /#include lt;sys/types.hgt; br /#include lt;sys/select.hgt; br /#include lt;sys/ioctl.hgt; br /#include lt;sys/mman.hgt; br /#include lt;stdio.hgt; br /#include lt;stdlib.hgt; br /#include lt;unistd.hgt; br /#include lt;fcntl.hgt; br /#include lt;string.hgt; br /#include lt;signal.hgt; br /br /#include lt;linux/fb.hgt; br /br /#define DEF_FBIOGET_VSCREENINFOnbsp; nbsp; nbsp; nbsp; nbsp;0x4600 br /#define DEF_FBIOGET_FSCREENINFOnbsp; nbsp; nbsp; nbsp; nbsp;0x4602 br /br /typedef struct ts_DFB br /{ br /intnbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; Handle; br /intnbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; ResX, ResY, ResB, RealX, RealY; br /unsigned longnbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; MapSize; br /voidnbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; *DirectMap; br /intnbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;*Table; br /}t_DFB; br /br /volatile int g_break_fire = 0; br /br /static void fire_signal(int s_signal) br /{ br /g_break_fire = 1; br /(void)signal(s_signal, fire_signal); br /} br /br /static void (fire_load_balance)(void) br /{ br /struct timeval s_timeval = {0l, 1000000l / 100l /* hz */}; br /(void)select(0, (fd_set *)0, (fd_set *)0, (fd_set *)0, (struct timeval *)(amp;s_timeval)); br /} br /br /static t_DFB *MZ_DFB_Close(t_DFB *s_Handle) br /{ br /if(s_Handle) br /{ br /nbsp; if(s_Handle-gt;Table)free(s_Handle-gt;Table); br /nbsp; if(s_Handle-gt;DirectMap amp;amp; s_Handle-gt;MapSize gt; 0lu)munmap(s_Handle-gt;DirectMap, s_Handle-gt;MapSize); br /nbsp; if(s_Handle-gt;Handle gt;= 0)close(s_Handle-gt;Handle); br /nbsp; free(s_Handle); br /} br //* else Error!!! */ br /return(s_Handle); br /} br /br /static int MZ_DFB_Detect(t_DFB *s_Handle) br /{ br /int s_Return = (-1); br /struct fb_fix_screeninfo s_fix; br /struct fb_var_screeninfo s_var; br /unsigned long s_AvailMapSize;nbsp; nbsp; br /if(s_Handle) br /{ br /nbsp; if(s_Handle-gt;Handle gt;= 0) br /nbsp; { br /nbsp; nbsp;if((ioctl((int)s_Handle-gt;Handle, FBIOGET_FSCREENINFO, (amp;s_fix)) == 0) amp;amp; br /nbsp; nbsp; nbsp; (ioctl((int)s_Handle-gt;Handle, FBIOGET_VSCREENINFO, (amp;s_var)) == 0)) br /nbsp; nbsp;{ br /nbsp; nbsp; s_Handle-gt;RealX = (int)s_var.xres; br /nbsp; nbsp; s_Handle-gt;ResX = (int)(s_fix.line_length / (s_var.bits_per_pixel gt;gt; 3)); br /nbsp; nbsp; s_Handle-gt;RealY = s_Handle-gt;ResY = (int)s_var.yres; br /nbsp; nbsp; s_Handle-gt;ResB = (int)s_var.bits_per_pixel gt;gt; 3; br /nbsp; nbsp; s_Handle-gt;MapSize = (unsigned long)s_Handle-gt;ResX * (unsigned long)s_Handle-gt;ResY * (unsigned long)s_Handle-gt;ResB; br /nbsp; nbsp; s_AvailMapSizenbsp; nbsp; = (unsigned long)s_Handle-gt;ResX * (unsigned long)s_Handle-gt;ResY * (unsigned long)(s_var.bits_per_pixel amp; 0x07lu); br /nbsp; nbsp; s_Handle-gt;MapSize+= (s_AvailMapSize gt;gt; 3) + ((s_AvailMapSize amp; 0x07) ? 1 : 0); br /nbsp; nbsp; s_Handle-gt;DirectMap = mmap((void *)0, s_Handle-gt;MapSize, PROT_READ | PROT_WRITE, MAP_SHARED, s_Handle-gt;Handle, 0); br /nbsp; nbsp; if(s_Handle-gt;DirectMap != (void *)(-1)) br /nbsp; nbsp; { br /nbsp; nbsp; nbsp;s_Handle-gt;DirectMap = s_Handle-gt;DirectMap; br /nbsp; nbsp; nbsp;if(s_Handle-gt;Table)free(s_Handle-gt;Table); br /nbsp; nbsp; nbsp;s_Handle-gt;Table = (int *)malloc(s_Handle-gt;ResY * sizeof(int)); br /nbsp; nbsp; nbsp;if(s_Handle-gt;Table) br /nbsp; nbsp; nbsp;{ br /nbsp; nbsp; nbsp; for(s_Return = 0;s_Return lt; s_Handle-gt;ResY;s_Return++)*(s_Handle-gt;Table + s_Return) = s_Return * s_Handle-gt;ResX * s_Handle-gt;ResB; br /nbsp; nbsp; nbsp; s_Return = 1; br /nbsp; nbsp; nbsp;} br /nbsp; nbsp; nbsp;/* else Error!!! */ br /nbsp; nbsp; } br /nbsp; nbsp; /* else Error!!! */ br /nbsp; nbsp;} br /nbsp; nbsp;/* else Error!!! */ br /nbsp; } br /nbsp; /* else Error!!! */ br /} br //* else Error!!! */ br /return(s_Return); br /} br /br /static t_DFB *MZ_DFB_Open(const char *s_dev) br /{ br /t_DFB *s_Return = (t_DFB *)malloc(sizeof(t_DFB)); br /if(s_Return) br /{ br /nbsp; t_DFB *s_Handle = s_Return;nbsp; nbsp; br /nbsp; /* memset((void *)s_Return, 0, sizeof(t_DFB)); */ br /nbsp; s_Handle-gt;Handle = open(s_dev, O_RDWR); br /nbsp; if(s_Handle-gt;Handle gt;= 0) br /nbsp; {nbsp; nbsp; br /nbsp; nbsp;if(MZ_DFB_Detect(s_Handle) gt;= 0)s_Return = s_Handle; br /nbsp; nbsp;/* else Error!!! */ br /nbsp; } br /nbsp; /* else Error!!! */ br /} br //* else Error!!! */ br /return(s_Return); br /} br /br /int main(int s_argc, char **s_argv) br /{ br /t_DFB *s_DFB = MZ_DFB_Open(s_argc gt;= 2 ? s_argv[1] : /dev/fb0); br /(void)signal(SIGINT, fire_signal); br /if(s_DFB) br /{ br /nbsp; unsigned char *s_ColorMAP = (unsigned char *)malloc(s_DFB-gt;ResX * s_DFB-gt;ResY); br /nbsp; if(s_DFB-gt;ResB != 2) br /nbsp; { br /nbsp; nbsp;fprintf(stdout, Not support %d bit color !!!\n, s_DFB-gt;ResB lt;lt; 3); br /nbsp; nbsp;if(s_ColorMAP)free(s_ColorMAP); br /nbsp; nbsp;MZ_DFB_Close(s_DFB); br /nbsp; nbsp;exit(0); br /nbsp; } br /nbsp; if(s_ColorMAP) br /nbsp; { br /nbsp; nbsp;int s_Entry, s_Limit, s_FrameCount = 0, s_ColorType = 0, s_ColorTable[256], s_Count; br /nbsp; nbsp;/* memset(s_ColorMAP, 0, s_DFB-gt;ResX * s_DFB-gt;ResY); */ br /nbsp; nbsp;s_Limit = s_DFB-gt;ResX * (s_DFB-gt;ResY - 128); br /nbsp; nbsp;for(s_Count = 0;s_Count lt; 64;s_Count++)s_ColorTable[s_Count + 192] = ((63 gt;gt; 1) lt;lt; 11) | (63 lt;lt; 5) | (63 gt;gt; 1); br /nbsp; nbsp;do br /nbsp; nbsp;{ br /nbsp; nbsp; if(s_FrameCount == 0) br /nbsp; nbsp; { br /nbsp; nbsp; nbsp;if(s_ColorType == 0) br /nbsp; nbsp; nbsp;{nbsp; nbsp;nbsp; nbsp; nbsp; br /nbsp; nbsp; nbsp; for(s_Count = 0;s_Count lt; 64;s_Count++)s_ColorTable[s_Count +nbsp; nbsp;0] = (s_Count gt;gt; 1) lt;lt; 11; br /nbsp; nbsp; nbsp; for(s_Count = 0;s_Count lt; 64;s_Count++)s_ColorTable[s_Count +nbsp; 64] = ((63 gt;gt; 1) lt;lt; 11) | (s_Count lt;lt; 5); br /nbsp; nbsp; nbsp; for(s_Count = 0;s_Count lt; 64;s_Count++)s_ColorTable[s_Count + 128] = ((63 gt;gt; 1) lt;lt; 11) | (63 lt;lt; 5) | (s_Count gt;gt; 1); br /nbsp; nbsp; nbsp;} br /nbsp; nbsp; nbsp;else if(s_ColorType == 1) br /nbsp; nbsp; nbsp;{ br /nbsp; nbsp; nbsp; for(s_Count = 0;s_Count lt; 64;s_Count++)s_ColorTable[s_Count +nbsp; nbsp;0] = s_Count lt;lt; 5; br /nbsp; nbsp; nbsp; for(s_Count = 0;s_Count lt; 64;s_Count++)s_ColorTable[s_Count +nbsp; 64] = (63 lt;lt; 5) | (s_Count gt;gt; 1); br /nbsp; nbsp; nbsp; for(s_Count = 0;s_Count lt; 64;s_Count++)s_ColorTable[s_Count + 128] = ((s_Count gt;gt; 1) lt;lt; 11) | (63 lt;lt; 5) | (63 gt;gt; 1); br /nbsp; nbsp; nbsp;} br /nbsp; nbsp; nbsp;else br /nbsp; nbsp; nbsp;{ br /nbsp; nbsp; nbsp; for(s_Count = 0;s_Count lt; 64;s_Count++)s_ColorTable[s_Count +nbsp; nbsp;0] = (s_Count gt;gt; 1); br /nbsp; nbsp; nbsp; for(s_Count = 0;s_Count lt; 64;s_Count++)s_ColorTable[s_Count +nbsp; 64] = (s_Count lt;lt; 5) | (63 gt;gt; 1); br /nbsp; nbsp; nbsp; for(s_Count = 0;s_Count lt; 64;s_Count++)s_ColorTable[s_Count + 128] = ((s_Count gt;gt; 1) lt;lt; 11) | (63 lt;lt; 5) | (63 gt;gt; 1); br /nbsp; nbsp; nbsp;} br /nbsp; nbsp; } br /nbsp; nbsp; s_Entry = (s_DFB-gt;ResX * (s_DFB-gt;ResY - 1));nbsp; nbsp; br /nbsp; nbsp; for(s_Count = 0;s_Count lt; (s_DFB-gt;RealX gt;gt; 3);s_Count++)s_ColorMAP[s_Entry + (rand() % s_DFB-gt;RealX)] = s_ColorTable[(rand() amp; 0xbf) + 10]; br /nbsp; nbsp; s_Count = (s_DFB-gt;ResX * (s_DFB-gt;ResY - 2)) + s_DFB-gt;ResX - 1; br /nbsp; nbsp; s_Entry = s_Count + s_DFB-gt;ResX - 1;nbsp; nbsp; br /nbsp; nbsp; do br /nbsp; nbsp; { br /nbsp; nbsp; nbsp; s_ColorMAP[s_Count] = ((s_ColorMAP[s_Countnbsp; nbsp; ] + br /nbsp; nbsp;nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;s_ColorMAP[s_Entrynbsp; nbsp; ] + br /nbsp; nbsp;nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;s_ColorMAP[s_Entry + 1] + br /nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp; nbsp;s_ColorMAP[s_Entry + 2]) gt;gt; 2); br /nbsp; nbsp; nbsp;if(s_ColorMAP[s_Count] gt; 0)s_ColorMAP[s_Count]--; br /nbsp; nbsp; nbsp;*(((unsigned short *)s_DFB-gt;DirectMap) + s_Count) = (unsigned short)s_ColorTable[s_ColorMAP[s_Count]]; br /nbsp; nbsp; nbsp;if(s_Count lt; s_Limit)break; br /nbsp; nbsp; nbsp;s_Entry--;nbsp; nbsp;nbsp; nbsp; br /nbsp; nbsp; }while(--s_Count gt; 0); br /nbsp; nbsp; s_FrameCount++;nbsp; nbsp;nbsp; br /nbsp; nbsp; if(s_FrameCount gt; 128) br /nbsp; nbsp; { br /nbsp; nbsp; nbsp;s_FrameCount = 0, s_ColorType++; br /nbsp; nbsp; nbsp;if(s_ColorType gt;= 3)s_ColorType = 0; br /nbsp; nbsp; } br /nbsp; nbsp; fire_load_balance(); br /nbsp; nbsp;}while(g_break_fire == 0); br /nbsp; nbsp;free(s_ColorMAP); br /nbsp; } br /nbsp; s_DFB = MZ_DFB_Close(s_DFB);nbsp; br /} br /(void)fprintf(stdout, End of fire.\n); br /return(0); br /} br /br //* vim: set expandtab: */ br //* End of source */ /TD/TR/TBODY/TABLE
크리에이티브 커먼즈 라이센스
Creative Commons License
2007/05/05 02:01 2007/05/05 02:01
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://blog.minzkn.com/rss/response/39

댓글+트랙백 ATOM :: http://blog.minzkn.com/atom/response/39

트랙백 주소 :: http://blog.minzkn.com/trackback/39

트랙백 RSS :: http://blog.minzkn.com/rss/trackback/39

트랙백 ATOM :: http://blog.minzkn.com/atom/trackback/39

댓글을 달아 주세요

댓글 RSS 주소 : http://blog.minzkn.com/rss/comment/39
댓글 ATOM 주소 : http://blog.minzkn.com/atom/comment/39