;LSI C parser ver 3.5.12 for WonderWitch Copyright (C) 1988-2000 by LSI JAPAN [Apr 14 2000] ;LSI i8086 CG ver 3.5.12 for WonderWitch Copyright (C) 1988-1991, 1995-2000 by LSI JAPAN [Apr 14 2000] CGROUP GROUP TEXT DGROUP GROUP DATA,BSS TEXT CSEG DATA DSEG BSS DSEG TEXT CSEG ;/*---------------------------------------------------------------------------------------- ; Ver1.00 01/01/24 17:20:19 ;----------------------------------------------------------------------------------------*/ ; ;#include "..\WWCMain.h" ;#include "Roll.h" ; ;/*---------------------------------------------------------------------------------------- ; グローバル変数 ;----------------------------------------------------------------------------------------*/ ; ;UCHAR ImageBuf1[32*32*32]; ; ;/*---------------------------------------------------------------------------------------- ; WWCInitはWWCToolが管理しています。 ;----------------------------------------------------------------------------------------*/ ;/*WWCTool*/ ; ;/*--------------------------------------------------------------------------------------*/ ; ;void WWCInit(void) _WWCInit:: ;{ ; ; Form->StartClose = true; MOV BX,[_Form].W MOV AL,[28+BX].B AND AL,~2 OR AL,2 MOV [28+BX].B,AL ; Form->Color = (BLUE<<4)|BLUE; MOV BX,[_Form].W MOV [29+BX].B,204 ; Form->OnCreate = &EFormCreate; MOV BX,[_Form].W MOV [2+BX].W,_EFormCreate ; Image1->Left = 1; MOV BX,[_Image+2].W MOV [2+BX].B,1 ; Image1->Top = 1; MOV BX,[_Image+2].W MOV [3+BX].B,1 ; Image1->Width = 12; MOV BX,[_Image+2].W MOV [4+BX].B,12 ; Image1->Height = 12; MOV BX,[_Image+2].W MOV [5+BX].B,12 ; Image1->Image = ImageBuf1; MOV BX,[_Image+2].W MOV [6+BX].W,_ImageBuf1 MOV 2[6+BX].W,DS ; Image1->ImageWidth = 32; MOV BX,[_Image+2].W MOV [12+BX].B,32 ; Image1->ImageHeight = 32; MOV BX,[_Image+2].W MOV [13+BX].B,32 ; Image1->Enabled = true; MOV BX,[_Image+2].W MOV AL,[14+BX].B AND AL,~1 OR AL,1 MOV [14+BX].B,AL ; Image1->OnKeyUp = &EImage1KeyUp; MOV BX,[_Image+2].W MOV [BX].W,_EImage1KeyUp ; Form->OnVBlank = &EFormVBlank; MOV BX,[_Form].W MOV [6+BX].W,_EFormVBlank ;} RET ; ;/*--------------------------------------------------------------------------------------*/ ; ;void EFormCreate(void) _EFormCreate:: ;{ ; ImagePuts(Image1, 0, 0, "ロールのサンプル", WHITE, BLACK); XOR AL,AL PUSH AX MOV AL,15 PUSH AX MOV AX,Z1 PUSH DS PUSH AX XOR AX,AX PUSH AX XOR AX,AX PUSH AX PUSH [_Image+2].W CALL _ImagePuts ADD SP,14 ; ImagePuts(Image1, 0, 1, "トリプルバッファー使用?", WHITE, BLACK); XOR AL,AL PUSH AX MOV AL,15 PUSH AX MOV AX,Z2 PUSH DS PUSH AX MOV AX,1 PUSH AX XOR AX,AX PUSH AX PUSH [_Image+2].W CALL _ImagePuts ADD SP,14 ; ImagePuts(Image1, 0, 2, "横表示モードの時", WHITE, BLACK); XOR AL,AL PUSH AX MOV AL,15 PUSH AX MOV AX,Z3 PUSH DS PUSH AX MOV AX,2 PUSH AX XOR AX,AX PUSH AX PUSH [_Image+2].W CALL _ImagePuts ADD SP,14 ; ImagePuts(Image1, 0, 3, " Aキーで縦表示に", WHITE, BLACK); XOR AL,AL PUSH AX MOV AL,15 PUSH AX MOV AX,Z4 PUSH DS PUSH AX MOV AX,3 PUSH AX XOR AX,AX PUSH AX PUSH [_Image+2].W CALL _ImagePuts ADD SP,14 ; ImagePuts(Image1, 0, 4, " Bキーで表示領域変更", WHITE, BLACK); XOR AL,AL PUSH AX MOV AL,15 PUSH AX MOV AX,Z5 PUSH DS PUSH AX MOV AX,4 PUSH AX XOR AX,AX PUSH AX PUSH [_Image+2].W CALL _ImagePuts ADD SP,14 ; ImagePuts(Image1, 0, 5, " Xキーでロール", WHITE, BLACK); XOR AL,AL PUSH AX MOV AL,15 PUSH AX MOV AX,Z6 PUSH DS PUSH AX MOV AX,5 PUSH AX XOR AX,AX PUSH AX PUSH [_Image+2].W CALL _ImagePuts ADD SP,14 ; ImagePuts(Image1, 0, 6, "縦表示モードの時", WHITE, BLACK); XOR AL,AL PUSH AX MOV AL,15 PUSH AX MOV AX,Z7 PUSH DS PUSH AX MOV AX,6 PUSH AX XOR AX,AX PUSH AX PUSH [_Image+2].W CALL _ImagePuts ADD SP,14 ; ImagePuts(Image1, 0, 7, " X3キーで横表示に", WHITE, BLACK); XOR AL,AL PUSH AX MOV AL,15 PUSH AX MOV AX,Z8 PUSH DS PUSH AX MOV AX,7 PUSH AX XOR AX,AX PUSH AX PUSH [_Image+2].W CALL _ImagePuts ADD SP,14 ; ImagePuts(Image1, 0, 8, " X4キーで表示領域変更", WHITE, BLACK); XOR AL,AL PUSH AX MOV AL,15 PUSH AX MOV AX,Z9 PUSH DS PUSH AX MOV AX,8 PUSH AX XOR AX,AX PUSH AX PUSH [_Image+2].W CALL _ImagePuts ADD SP,14 ; ImagePuts(Image1, 0, 9, " Yキーでロール", WHITE, BLACK); XOR AL,AL PUSH AX MOV AL,15 PUSH AX MOV AX,Z10 PUSH DS PUSH AX MOV AX,9 PUSH AX XOR AX,AX PUSH AX PUSH [_Image+2].W CALL _ImagePuts ADD SP,14 ; ; chdir("/rom0/"); MOV AX,Z11 PUSH DS PUSH AX CALL _chdir ADD SP,4 ; ImageLoadFromFile(Image1, "map.bmp"); MOV AX,Z12 PUSH DS PUSH AX PUSH [_Image+2].W CALL _ImageLoadFromFile ADD SP,6 ; Form->Focused = 1; MOV BX,[_Form].W MOV [30+BX].B,1 ;} RET DATA DSEG EVEN Z1: DB 131 DB 141 DB 129 DB 91 DB 131 DB 139 DB 130 DB 204 DB 131 DB 84 DB 131 DB 147 DB 131 DB 118 DB 131 DB 139 DB 0 EVEN Z2: DB 131 DB 103 DB 131 DB 138 DB 131 DB 118 DB 131 DB 139 DB 131 DB 111 DB 131 DB 98 DB 131 DB 116 DB 131 DB 64 DB 129 DB 91 DB 142 DB 103 DB 151 DB 112 DB 129 DB 72 DB 0 EVEN Z3: DB 137 DB 161 DB 149 DB 92 DB 142 DB 166 DB 131 DB 130 DB 129 DB 91 DB 131 DB 104 DB 130 DB 204 DB 142 DB 158 DB 0 EVEN Z4: DB 129 DB 64 DB 65 DB 131 DB 76 DB 129 DB 91 DB 130 DB 197 DB 143 DB 99 DB 149 DB 92 DB 142 DB 166 DB 130 DB 201 DB 0 EVEN Z5: DB 129 DB 64 DB 66 DB 131 DB 76 DB 129 DB 91 DB 130 DB 197 DB 149 DB 92 DB 142 DB 166 DB 151 DB 204 DB 136 DB 230 DB 149 DB 207 DB 141 DB 88 DB 0 EVEN Z6: DB 129 DB 64 DB 88 DB 131 DB 76 DB 129 DB 91 DB 130 DB 197 DB 131 DB 141 DB 129 DB 91 DB 131 DB 139 DB 0 EVEN Z7: DB 143 DB 99 DB 149 DB 92 DB 142 DB 166 DB 131 DB 130 DB 129 DB 91 DB 131 DB 104 DB 130 DB 204 DB 142 DB 158 DB 0 EVEN Z8: DB 129 DB 64 DB 88 DB 51 DB 131 DB 76 DB 129 DB 91 DB 130 DB 197 DB 137 DB 161 DB 149 DB 92 DB 142 DB 166 DB 130 DB 201 DB 0 EVEN Z9: DB 129 DB 64 DB 88 DB 52 DB 131 DB 76 DB 129 DB 91 DB 130 DB 197 DB 149 DB 92 DB 142 DB 166 DB 151 DB 204 DB 136 DB 230 DB 149 DB 207 DB 141 DB 88 DB 0 EVEN Z10: DB 129 DB 64 DB 89 DB 131 DB 76 DB 129 DB 91 DB 130 DB 197 DB 131 DB 141 DB 129 DB 91 DB 131 DB 139 DB 0 EVEN Z11: DB 47 DB 114 DB 111 DB 109 DB 48 DB 47 DB 0 EVEN Z12: DB 109 DB 97 DB 112 DB 46 DB 98 DB 109 DB 112 DB 0 TEXT CSEG ; ;/*--------------------------------------------------------------------------------------*/ ; ;void EFormVBlank(void) _EFormVBlank:: ;{ ; if(Form->Key & Key->Right){ MOV BX,[_Form].W MOV AX,[20+BX].W MOV BX,[_Key].W TEST AX,[6+BX].W JE _6 ; Image1->ImageLeft++; MOV BX,[_Image+2].W INC [10+BX].B ; } _6: ; if(Form->Key & Key->Left){ MOV BX,[_Form].W MOV AX,[20+BX].W MOV BX,[_Key].W TEST AX,[4+BX].W JE _8 ; Image1->ImageLeft--; MOV BX,[_Image+2].W DEC [10+BX].B ; } _8: ; if(Form->Key & Key->Up){ MOV BX,[_Form].W MOV AX,[20+BX].W MOV BX,[_Key].W TEST AX,[BX].W JE _10 ; Image1->ImageTop--; MOV BX,[_Image+2].W DEC [11+BX].B ; } _10: ; if(Form->Key & Key->Down){ MOV BX,[_Form].W MOV AX,[20+BX].W MOV BX,[_Key].W TEST AX,[2+BX].W JE _12 ; Image1->ImageTop++; MOV BX,[_Image+2].W INC [11+BX].B ; } _12: ;} RET DATA DSEG EVEN Z22: DW 0 TEXT CSEG ; ;/*--------------------------------------------------------------------------------------*/ ; ;void EImage1KeyUp(UINT Keys) _EImage1KeyUp:: PUSH BP MOV BP,SP ;{ ; static int Mode=0; ; ; if(Keys & Key->Enter){ MOV AX,[BP+4].W MOV BX,[_Key].W TEST AX,[8+BX].W JE _16 ; FormViewChange(!Form->TateView); MOV BX,[_Form].W TEST [28+BX].B,4 JNE _18 MOV AX,1 JMP _19 _18: XOR AX,AX _19: PUSH AX CALL _FormViewChange ADD SP,2 ; ImageTateYoko(Image1); PUSH [_Image+2].W CALL _ImageTateYoko ADD SP,2 ; } _16: ; if(Keys & Key->Esc){ MOV AX,[BP+4].W MOV BX,[_Key].W TEST AX,[10+BX].W JE _21 ; if(Mode == 0){ CMP [Z22].W,0 JNE _23 ; Image1->Width = 20; MOV BX,[_Image+2].W MOV [4+BX].B,20 ; Image1->Height = 16; MOV BX,[_Image+2].W MOV [5+BX].B,16 ; Mode=1; MOV [Z22].W,1 ; }else{ JMP _24 _23: ; Image1->Width = 12; MOV BX,[_Image+2].W MOV [4+BX].B,12 ; Image1->Height = 12; MOV BX,[_Image+2].W MOV [5+BX].B,12 ; Mode=0; MOV [Z22].W,0 ; } _24: ; } _21: ;} POP BP RET BSS DSEG EVEN _ImageBuf1:: RS -32768 EXTRN _Form EXTRN _Image EXTRN _Key EXTRN _FormViewChange EXTRN _ImageLoadFromFile EXTRN _ImagePuts EXTRN _ImageTateYoko EXTRN _chdir ;core used: 8891/34304 END