📄 scroll.h
字号:
/******************************************************************************//* *//* SCROLL MACROS *//* *//******************************************************************************/#define SCROLL_REGS \ int x,y,x16,y16,zzzz,zzz,zz; \#define MAKE_SCROLL_512x512_4_16_R(scr_x,scr_y) \ zzz=~(scr_x); \ zzzz=(zzz&0x1F0)>>2; \ x16=15-(zzz&15); \ zzz=~(scr_y); \ zzzz|=(zzz&0x1F0)<<3; \ y16=15-(zzz&15); \#define MAKE_SCROLL_1024x512_4_16_R(scr_x,scr_y) \ zzz=~(scr_x); \ zzzz=(zzz&0x3F0)>>2; \ x16=15-(zzz&15); \ zzz=~(scr_y); \ zzzz|=(zzz&0x1F0)<<4; \ y16=15-(zzz&15); \// =============================================================================#define START_SCROLL_8(start_x,start_y,view_x,view_y) \ zz=zzzz; \ for(y=(start_y-y16);(UINT32)y<(view_y+start_y);y+=8){ \ for(x=(start_x-x16);(UINT32)x<(view_x+start_x);x+=8){ \#define START_SCROLL_8_YX(start_x,start_y,view_x,view_y) \ zz=zzzz; \ for(x=(start_x-x16);(UINT32)x<(view_x+start_x);x+=8){ \ for(y=(start_y-y16);(UINT32)y<(view_y+start_y);y+=8){ \#define START_SCROLL_8_R180(start_x,start_y,view_x,view_y) \ zz=zzzz; \ for(y=(view_y+start_y+y16-8);(UINT32)y>(start_y-8);y-=8){ \ for(x=(view_x+start_x+x16-8);(UINT32)x>(start_x-8);x-=8){ \#define START_SCROLL_8_R270(start_x,start_y,view_x,view_y) \ zz=zzzz; \ for(x=(start_x-y16);(UINT32)x<(view_x+start_x);x+=8){ \ for(y=(view_y+start_y+x16-8);(UINT32)y>(start_y-8);y-=8){ \#define START_SCROLL_8_FLIPY(start_x,start_y,view_x,view_y) \ zz=zzzz; \ for(y=(start_y-y16);(UINT32)y<(view_y+start_y);y+=8){ \ for(x=(view_x+start_x+x16-8);(UINT32)x>(start_x-8);x-=8){ \// -----------------------------------------------------------------------------#define START_SCROLL_16(start_x,start_y,view_x,view_y) \ zz=zzzz; \ for(y=(start_y-y16);(UINT32)y<(view_y+start_y);y+=16){ \ for(x=(start_x-x16);(UINT32)x<(view_x+start_x);x+=16){ \#define START_SCROLL_16_YX(start_x,start_y,view_x,view_y) \ zz=zzzz; \ for(x=(start_x-x16);(UINT32)x<(view_x+start_x);x+=16){ \ for(y=(start_y-y16);(UINT32)y<(view_y+start_y);y+=16){ \#define START_SCROLL_16_R180(start_x,start_y,view_x,view_y) \ zz=zzzz; \ for(y=(view_y+start_y+y16-16);(UINT32)y>(start_y-16);y-=16){ \ for(x=(view_x+start_x+x16-16);(UINT32)x>(start_x-16);x-=16){ \#define START_SCROLL_16_R270(start_x,start_y,view_x,view_y) \ zz=zzzz; \ for(x=(start_x-y16);(UINT32)x<(view_x+start_x);x+=16){ \ for(y=(view_y+start_y+x16-16);(UINT32)y>(start_y-16);y-=16){ \// -----------------------------------------------------------------------------// Some games draw by column, now row (swap x,y loops)#define START_SCROLL_16_YX(start_x,start_y,view_x,view_y) \ zz=zzzz; \ for(x=(start_x-x16);(UINT32)x<(view_x+start_x);x+=16){ \ for(y=(start_y-y16);(UINT32)y<(view_y+start_y);y+=16){ \#define START_SCROLL_16_YX_R180(start_x,start_y,view_x,view_y) \ zz=zzzz; \ for(x=(view_x+start_x+x16-16);(UINT32)x>(start_x-16);x-=16){ \ for(y=(view_y+start_y+y16-16);(UINT32)y>(start_y-16);y-=16){ \#define START_SCROLL_16_YX_R270(start_x,start_y,view_x,view_y) \ zz=zzzz; \ for(y=(view_y+start_y+x16-16);(UINT32)y>(start_y-16);y-=16){ \ for(x=(start_x-y16);(UINT32)x<(view_x+start_x);x+=16){ \// =============================================================================#define MAKE_SCROLL_256x256_2_8(scr_x,scr_y) \ zzz=(scr_x); \ zzzz=(zzz&0x0F8)>>2; \ x16=zzz&7; \ zzz=(scr_y); \ zzzz|=(zzz&0x0F8)<<3; \ y16=zzz&7; \#define START_SCROLL_256x256_2_8 START_SCROLL_8#define START_SCROLL_256x256_2_8_R180 START_SCROLL_8_R180#define START_SCROLL_256x256_2_8_R270 START_SCROLL_8_R270#define START_SCROLL_256x256_2_8_FLIPY START_SCROLL_8_FLIPY#define END_SCROLL_256x256_2_8() \ zz=(zz&0x07C0)|((zz+2)&0x3F); \ } \ zz = zzzz = (zzzz+0x40)&0x07FF; \ } \// -----------------------------------------------------------------------------#define MAKE_SCROLL_512x256_2_8(scr_x,scr_y) \ zzz=(scr_x); \ zzzz=(zzz&0x1F8)>>2; \ x16=zzz&7; \ zzz=(scr_y); \ zzzz|=(zzz&0x0F8)<<4; \ y16=zzz&7; \#define START_SCROLL_512x256_2_8 START_SCROLL_8#define START_SCROLL_512x256_2_8_R180 START_SCROLL_8_R180#define START_SCROLL_512x256_2_8_R270 START_SCROLL_8_R270#define START_SCROLL_512x256_2_8_FLIPY START_SCROLL_8_FLIPY#define END_SCROLL_512x256_2_8() \ zz=(zz&0x0F80)|((zz+2)&0x7F); \ } \ zz = zzzz = (zzzz+0x80)&0x0FFF; \ } \// -----------------------------------------------------------------------------#define MAKE_SCROLL_512x512_1_8(scr_x,scr_y) \ zzz=(scr_x); \ zzzz=(zzz&0x1F8)>>3; \ x16=zzz&7; \ zzz=(scr_y); \ zzzz|=(zzz&0x1F8)<<3; \ y16=zzz&7; \#define START_SCROLL_512x512_1_8 START_SCROLL_8#define START_SCROLL_512x512_1_8_R180 START_SCROLL_8_R180#define START_SCROLL_512x512_1_8_R270 START_SCROLL_8_R270#define START_SCROLL_512x512_1_8_FLIPY START_SCROLL_8_FLIPY#define END_SCROLL_512x512_1_8() \ zz=(zz&0x07C0)|((zz+1)&0x3F); \ } \ zz = zzzz = (zzzz+0x40)&0x07FF; \ } \// -----------------------------------------------------------------------------#define MAKE_SCROLL_512x512_2_8(scr_x,scr_y) \ zzz=(scr_x); \ zzzz=(zzz&0x1F8)>>2; \ x16=zzz&7; \ zzz=(scr_y); \ zzzz|=(zzz&0x1F8)<<4; \ y16=zzz&7; \#define START_SCROLL_512x512_2_8 START_SCROLL_8#define START_SCROLL_512x512_2_8_R180 START_SCROLL_8_R180#define START_SCROLL_512x512_2_8_R270 START_SCROLL_8_R270#define START_SCROLL_512x512_2_8_FLIPY START_SCROLL_8_FLIPY#define END_SCROLL_512x512_2_8() \ zz=(zz&0x1F80)|((zz+2)&0x7F); \ } \ zz = zzzz = (zzzz+0x80)&0x1FFF; \ } \// -----------------------------------------------------------------------------#define MAKE_SCROLL_512x1024_2_8(scr_x,scr_y) \ zzz=(scr_x); \ zzzz=(zzz&0x1F8)>>2; \ x16=zzz&7; \ zzz=(scr_y); \ zzzz|=(zzz&0x3F8)<<4; \ y16=zzz&7; \#define START_SCROLL_512x1024_2_8 START_SCROLL_8#define START_SCROLL_512x1024_2_8_R180 START_SCROLL_8_R180#define START_SCROLL_512x1024_2_8_R270 START_SCROLL_8_R270#define START_SCROLL_512x1024_2_8_FLIPY START_SCROLL_8_FLIPY#define END_SCROLL_512x1024_2_8() \ zz=(zz&0x3F80)|((zz+2)&0x7F); \ } \ zz = zzzz = (zzzz+0x80)&0x3FFF; \ } \// -----------------------------------------------------------------------------#define MAKE_SCROLL_512x512_4_8(scr_x,scr_y) \ zzz=(scr_x); \ zzzz=(zzz&0x1F8)>>1; \ x16=zzz&7; \ zzz=(scr_y); \ zzzz|=(zzz&0x1F8)<<5; \ y16=zzz&7; \#define START_SCROLL_512x512_4_8 START_SCROLL_8#define START_SCROLL_512x512_4_8_R180 START_SCROLL_8_R180#define START_SCROLL_512x512_4_8_R270 START_SCROLL_8_R270#define START_SCROLL_512x512_4_8_FLIPY START_SCROLL_8_FLIPY#define END_SCROLL_512x512_4_8() \ zz=(zz&0x3F00)|((zz+4)&0xFF); \ } \ zz = zzzz = (zzzz+0x100)&0x3FFF; \ } \// -----------------------------------------------------------------------------#define MAKE_SCROLL_1024x1024_2_16(scr_x,scr_y) \ zzz=(scr_x); \ zzzz=(zzz&0x3F0)>>3; \ x16=zzz&15; \ zzz=(scr_y); \ zzzz|=(zzz&0x3F0)<<3; \ y16=zzz&15; \#define START_SCROLL_1024x1024_2_16 START_SCROLL_16#define START_SCROLL_1024x1024_2_16_R180 START_SCROLL_16_R180#define START_SCROLL_1024x1024_2_16_R270 START_SCROLL_16_R270#define END_SCROLL_1024x1024_2_16() \ zz=(zz&0x1F80)|((zz+2)&0x7F); \ } \ zz = zzzz = (zzzz+0x80)&0x1FFF; \ } \
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -