;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/18 22:02:52 ;----------------------------------------------------------------------------------------*/ ; ;#include ;#include "..\WWCMain.h" ;#include "BmpView.h" ; ;/*---------------------------------------------------------------------------------------- ; グローバル変数 ;----------------------------------------------------------------------------------------*/ ; ;UCHAR ImageBuf0[WWC_FORM_WIDTH*WWC_FORM_HEIGHT*32]; ;UCHAR ImageBuf1[10*10*32]; ;UCHAR ImageBuf2[10*10*32]; ;UCHAR ImageBuf3[10*10*32]; ;UCHAR FileList[18][MAXFNAME]; ;int FileListPos; ; ;/*---------------------------------------------------------------------------------------- ; WWCInitはWWCToolが管理しています。 ;----------------------------------------------------------------------------------------*/ ;/*WWCTool*/ ; ;/*--------------------------------------------------------------------------------------*/ ; ;void WWCInit(void) _WWCInit:: ;{ ; ; Form->OnCreate = &EFormCreate; MOV BX,[_Form].W MOV [2+BX].W,_EFormCreate ; Form->StartClose = true; MOV BX,[_Form].W MOV AL,[28+BX].B AND AL,~2 OR AL,2 MOV [28+BX].B,AL ; Image0->Image = ImageBuf0; MOV BX,[_Image].W MOV [6+BX].W,_ImageBuf0 MOV 2[6+BX].W,DS ; Image0->Enabled = true; MOV BX,[_Image].W MOV AL,[14+BX].B AND AL,~1 OR AL,1 MOV [14+BX].B,AL ; Image0->OnKeyUp = &EImage0KeyUp; MOV BX,[_Image].W MOV [BX].W,_EImage0KeyUp ; Image1->Left = 5; MOV BX,[_Image+2].W MOV [2+BX].B,5 ; Image1->Top = 5; MOV BX,[_Image+2].W MOV [3+BX].B,5 ; Image1->Width = 10; MOV BX,[_Image+2].W MOV [4+BX].B,10 ; Image1->Height = 10; MOV BX,[_Image+2].W MOV [5+BX].B,10 ; Image1->Image = ImageBuf1; MOV BX,[_Image+2].W MOV [6+BX].W,_ImageBuf1 MOV 2[6+BX].W,DS ; Image1->ImageWidth = 10; MOV BX,[_Image+2].W MOV [12+BX].B,10 ; Image1->ImageHeight = 10; MOV BX,[_Image+2].W MOV [13+BX].B,10 ; Image1->OnKeyUp = &EImage1KeyUp; MOV BX,[_Image+2].W MOV [BX].W,_EImage1KeyUp ; Image2->Width = 10; MOV BX,[_Image+4].W MOV [4+BX].B,10 ; Image2->Top = 5; MOV BX,[_Image+4].W MOV [3+BX].B,5 ; Image2->Left = 5; MOV BX,[_Image+4].W MOV [2+BX].B,5 ; Image2->Height = 10; MOV BX,[_Image+4].W MOV [5+BX].B,10 ; Image2->Image = ImageBuf2; MOV BX,[_Image+4].W MOV [6+BX].W,_ImageBuf2 MOV 2[6+BX].W,DS ; Image2->ImageWidth = 10; MOV BX,[_Image+4].W MOV [12+BX].B,10 ; Image2->ImageHeight = 10; MOV BX,[_Image+4].W MOV [13+BX].B,10 ; Image3->Left = 5; MOV BX,[_Image+6].W MOV [2+BX].B,5 ; Image3->Top = 5; MOV BX,[_Image+6].W MOV [3+BX].B,5 ; Image3->Width = 10; MOV BX,[_Image+6].W MOV [4+BX].B,10 ; Image3->Height = 10; MOV BX,[_Image+6].W MOV [5+BX].B,10 ; Image3->Image = ImageBuf3; MOV BX,[_Image+6].W MOV [6+BX].W,_ImageBuf3 MOV 2[6+BX].W,DS ; Image3->ImageWidth = 10; MOV BX,[_Image+6].W MOV [12+BX].B,10 ; Image3->ImageHeight = 10; MOV BX,[_Image+6].W MOV [13+BX].B,10 ;} RET ; ;/*--------------------------------------------------------------------------------------*/ ; ;void EFormCreate(void) _EFormCreate:: ;{ ; chdir("/rom0/"); MOV AX,Z1 PUSH DS PUSH AX CALL _chdir ADD SP,4 ; EImage0KeyUp(Key->ExUp); MOV BX,[_Key].W PUSH [12+BX].W CALL _EImage0KeyUp ADD SP,2 ;} RET DATA DSEG EVEN Z1: DB 47 DB 114 DB 111 DB 109 DB 48 DB 47 DB 0 TEXT CSEG ; ;/*--------------------------------------------------------------------------------------*/ ; ;void EImage0KeyUp(UINT Keys) _EImage0KeyUp:: PUSH BP MOV BP,SP SUB SP,4 ;{ ; int Size, n; ; ; if(Keys & Key->ExUp){ MOV AX,[BP+4].W MOV BX,[_Key].W TEST AX,[12+BX].W JE _6 ; ImageFill(Image0, (WHITE<<4)|WHITE); MOV BX,[_Image].W MOV AL,[12+BX].B XOR AH,AH MOV BX,[_Image].W MOV BL,[13+BX].B XOR BH,BH MUL BX PUSH AX MOV AL,255 PUSH AX MOV BX,[_Image].W PUSH 2[6+BX].W PUSH [6+BX].W CALL _MemSet32 ADD SP,8 ; Size = FileGetName(FileList, "", 18); MOV AX,18 PUSH AX MOV AX,Z7 PUSH DS PUSH AX MOV AX,_FileList PUSH DS PUSH AX CALL _FileGetName ADD SP,10 MOV [BP-2].W,AX ; for(n=0;n < Size;n++){ MOV [BP-4].W,0 JMP _7 _8: ; FileList[n][MAXFNAME-1] = 0; MOV BX,[BP-4].W SHL BX,4 ADD BX,_FileList MOV [15+BX].B,0 ; ImagePuts(Image0, 0, n, FileList[n], BLACK, WHITE); MOV AL,15 PUSH AX XOR AL,AL PUSH AX MOV AX,[BP-4].W SHL AX,4 ADD AX,_FileList PUSH DS PUSH AX PUSH [BP-4].W XOR AX,AX PUSH AX PUSH [_Image].W CALL _ImagePuts ADD SP,14 ; } INC [BP-4].W _7: MOV AX,[BP-4].W CMP AX,[BP-2].W JL _8 ; } _6: ; ; ImagePuts(Image0, 0, FileListPos, FileList[FileListPos], BLACK, WHITE); MOV AL,15 PUSH AX XOR AL,AL PUSH AX MOV AX,[_FileListPos].W SHL AX,4 ADD AX,_FileList PUSH DS PUSH AX PUSH [_FileListPos].W XOR AX,AX PUSH AX PUSH [_Image].W CALL _ImagePuts ADD SP,14 ; if(Keys & Key->Up){ MOV AX,[BP+4].W MOV BX,[_Key].W TEST AX,[BX].W JE _13 ; if(FileListPos > 0){ CMP [_FileListPos].W,0 JNG _15 ; FileListPos--; DEC [_FileListPos].W ; } _15: ; } _13: ; if(Keys & Key->Down){ MOV AX,[BP+4].W MOV BX,[_Key].W TEST AX,[2+BX].W JE _17 ; if(FileListPos < 18-1){ CMP [_FileListPos].W,17 JNL _19 ; FileListPos++; INC [_FileListPos].W ; } _19: ; } _17: ; ImagePuts(Image0, 0, FileListPos, FileList[FileListPos], WHITE, BLACK); XOR AL,AL PUSH AX MOV AL,15 PUSH AX MOV AX,[_FileListPos].W SHL AX,4 ADD AX,_FileList PUSH DS PUSH AX PUSH [_FileListPos].W XOR AX,AX PUSH AX PUSH [_Image].W CALL _ImagePuts ADD SP,14 ; if(Keys & Key->Enter){ MOV AX,[BP+4].W MOV BX,[_Key].W TEST AX,[8+BX].W JE _21 ; Image12Fill(0x00, 0x00, 0x00); MOV BX,[_Image+2].W MOV AL,[12+BX].B XOR AH,AH MOV BX,[_Image+2].W MOV BL,[13+BX].B XOR BH,BH MUL BX PUSH AX XOR AL,AL PUSH AX MOV BX,[_Image+2].W PUSH 2[6+BX].W PUSH [6+BX].W CALL _MemSet32 ADD SP,8 MOV BX,[_Image+4].W MOV AL,[12+BX].B XOR AH,AH MOV BX,[_Image+4].W MOV BL,[13+BX].B XOR BH,BH MUL BX PUSH AX XOR AL,AL PUSH AX MOV BX,[_Image+4].W PUSH 2[6+BX].W PUSH [6+BX].W CALL _MemSet32 ADD SP,8 MOV BX,[_Image+6].W MOV AL,[12+BX].B XOR AH,AH MOV BX,[_Image+6].W MOV BL,[13+BX].B XOR BH,BH MUL BX PUSH AX XOR AL,AL PUSH AX MOV BX,[_Image+6].W PUSH 2[6+BX].W PUSH [6+BX].W CALL _MemSet32 ADD SP,8 ; if(Image12LoadFromFile(FileList[FileListPos]) == true){ MOV AX,[_FileListPos].W SHL AX,4 ADD AX,_FileList PUSH DS PUSH AX CALL _Image12LoadFromFile ADD SP,4 CMP AX,1 JNE _23 ; Form->Color12bit=true; MOV BX,[_Form].W MOV AL,[28+BX].B AND AL,~8 OR AL,8 MOV [28+BX].B,AL ; Form->Focused = 1; MOV BX,[_Form].W MOV [30+BX].B,1 ; } _23: ; } _21: ;} MOV SP,BP POP BP RET DATA DSEG EVEN Z7: DB 0 TEXT CSEG ; ;/*--------------------------------------------------------------------------------------*/ ; ;void EImage1KeyUp(UINT Keys) _EImage1KeyUp:: PUSH BP MOV BP,SP ;{ ; if(Keys & Key->ExUp){ MOV AX,[BP+4].W MOV BX,[_Key].W TEST AX,[12+BX].W JE _27 ; Form->Color12bit=false; MOV BX,[_Form].W MOV AL,[28+BX].B AND AL,~8 OR AL,0 MOV [28+BX].B,AL ; Form->Focused = 0; MOV BX,[_Form].W MOV [30+BX].B,0 ; } _27: ; if(Keys & Key->Right){ MOV AX,[BP+4].W MOV BX,[_Key].W TEST AX,[6+BX].W JE _29 ; Image1->Left++; MOV BX,[_Image+2].W INC [2+BX].B ; } _29: ; if(Keys & Key->Left){ MOV AX,[BP+4].W MOV BX,[_Key].W TEST AX,[4+BX].W JE _31 ; Image1->Left--; MOV BX,[_Image+2].W DEC [2+BX].B ; } _31: ; if(Keys & Key->Up){ MOV AX,[BP+4].W MOV BX,[_Key].W TEST AX,[BX].W JE _33 ; Image1->Top--; MOV BX,[_Image+2].W DEC [3+BX].B ; } _33: ; if(Keys & Key->Down){ MOV AX,[BP+4].W MOV BX,[_Key].W TEST AX,[2+BX].W JE _35 ; Image1->Top++; MOV BX,[_Image+2].W INC [3+BX].B ; } _35: ; if(Keys & Key->Esc){ MOV AX,[BP+4].W MOV BX,[_Key].W TEST AX,[10+BX].W JE _37 ; FormViewChange(!Form->TateView); MOV BX,[_Form].W TEST [28+BX].B,4 JNE _39 MOV AX,1 JMP _40 _39: XOR AX,AX _40: PUSH AX CALL _FormViewChange ADD SP,2 ; Form->Color12bit=false; MOV BX,[_Form].W MOV AL,[28+BX].B AND AL,~8 OR AL,0 MOV [28+BX].B,AL ; Form->Focused = 0; MOV BX,[_Form].W MOV [30+BX].B,0 ; EImage0KeyUp(Key->ExUp); MOV BX,[_Key].W PUSH [12+BX].W CALL _EImage0KeyUp ADD SP,2 ; } _37: ;} POP BP RET BSS DSEG EVEN _FileList:: RS 288 EVEN _FileListPos:: RS 2 EVEN _ImageBuf0:: RS 16128 EVEN _ImageBuf1:: RS 3200 EVEN _ImageBuf2:: RS 3200 EVEN _ImageBuf3:: RS 3200 EXTRN _Form EXTRN _Image EXTRN _Key EXTRN _FileGetName EXTRN _FormViewChange EXTRN _Image12LoadFromFile EXTRN _ImagePuts EXTRN _MemSet32 EXTRN _chdir ;core used: 12874/34304 END