#define VERSION_STRING "2.5b5"
//---------------------------------------------------------------------------
#include <vcl.h>
#include <vcl\registry.hpp>
#include <stdio.h>
#pragma hdrstop
USEFORM("Emu.cpp", EmuWnd);
USEFORM("Debug.cpp", DebugWnd);
USEUNIT("m68kdasm.cpp");
USEFORM("gotodialog.cpp", GoToDlg);
USEFORM("About.cpp", AboutDlg);
USEFORM("EmuMode.cpp", EmuModeDlg);
USEFORM("Value.cpp", NewValueDlg);
USEFORM("Entry.cpp", ProgramEntryDlg);
USEFORM("Data.cpp", DataBreakDlg);
USEFORM("AddData.cpp", AddDataBreakDlg);
USEFORM("Search.cpp", SearchDlg);
USEFORM("AddLog.cpp", AddLogDlg);
USEFORM("Log.cpp", LogDlg);
USEFORM("EditLog.cpp", EditLogDlg);
USEFORM("Start.cpp", StartWnd);
USEUNIT("asmintf.cpp");
USEUNIT("opcodee.cpp");
USEUNIT("opcode1.cpp");
USEUNIT("opcode2.cpp");
USEUNIT("opcode3.cpp");
USEUNIT("opcode4.cpp");
USEUNIT("opcode5.cpp");
USEUNIT("opcode6.cpp");
USEUNIT("opcode7.cpp");
USEUNIT("opcode8.cpp");
USEUNIT("opcode9.cpp");
USEUNIT("opcodeb.cpp");
USEUNIT("opcodec.cpp");
USEUNIT("opcoded.cpp");
USEUNIT("opcode0.cpp");
USEUNIT("cpufunc.cpp");
USEUNIT("Z80.cpp");
USEUNIT("rom.cpp");
USEUNIT("ti89.cpp");
USEUNIT("ti86.cpp");
USEUNIT("ti85.cpp");
USEUNIT("ti82.cpp");
USEUNIT("ti83.cpp");
USEUNIT("ti92.cpp");
USEUNIT("ti92plus.cpp");
USEASM("asmmem.asm");
USERES("Vti.res");
USEUNIT("ti83plus.cpp");
USEUNIT("ti73.cpp");
USEUNIT("jpenquan.cpp");
USEUNIT("jfif.cpp");
USEUNIT("jpdecomp.cpp");
USEUNIT("jpdedu.cpp");
USEUNIT("JPDEHUFF.cpp");
USEUNIT("jpdequan.cpp");
USEUNIT("jpeg.cpp");
USEUNIT("jpegdeco.cpp");
USEUNIT("jpegenco.cpp");
USEUNIT("Jpegfmt.cpp");
USEUNIT("jpencomp.cpp");
USEUNIT("jpendu.cpp");
USEUNIT("jpenhuff.cpp");
USEUNIT("bitimage.cpp");
USEUNIT("EmuThread.cpp");
USEFORM("SetupWizard.cpp", SetupWizardWnd);
USEFORM("ROMWizard.cpp", ROMWizardWnd);
USEFORM("Trap.cpp", TrapDlg);
USEFORM("WizardBmp.cpp", WizardBitmap);
USEFORM("VarWnd.cpp", VariableWnd);
USEFORM("LblWnd.cpp", LabelWnd);
USEUNIT("Sound.cpp");
//---------------------------------------------------------------------------
#include "Start.h"
#include "Debug.h"
#define NOTYPEREDEF
#include "cpudefs.h"
#include "linktype.h"
#include "dumpwnd.h"
#include "dump.h"
#include "calchw.h"
#include "About.h"
#include "emu.h"
#include "rom.h"
#include "SetupWizard.h"
#include "WizardBmp.h"
CalcHW* hw;
//---------------------------------------------------------------------------
extern void LoadState();
extern int calc,plusMod,debug,run,debugStartPC;
extern int romImageCount;
extern int lcdOnly;
int DumpROM();
extern int SendFile(int port);
extern bool restrict;
//extern int keymap[];
//extern char* alphakeystr[];
//---------------------------------------------------------------------------
HINSTANCE hInst;
HWND otherWnd;
HANDLE hVLinkFileMap,hMutex;
char vLinkFileName[32];
static Graphics::TBitmap *vti,*vti_a,*bkg,*dest;
static int bkgStored=0;
static int drawImage=0;
LRESULT CALLBACK VTIStartWndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
PAINTSTRUCT ps;
HDC dc;
switch (msg)
{
case WM_PAINT:
if (!drawImage) return 0;
dc=BeginPaint(hWnd,&ps);
TCanvas *canvas=new TCanvas;
canvas->Handle=dc;
if (!bkgStored)
{
BitBlt(bkg->Canvas->Handle,0,0,vti->Width,vti->Height,
dc,0,0,SRCCOPY);
bkgStored=1;
}
for (int y=0;y<vti->Height;y++)
{
unsigned char *bgPtr=(unsigned char*)bkg->ScanLine[y];
unsigned char *srcPtr=(unsigned char*)vti->ScanLine[y];
unsigned char *srcAPtr=(unsigned char*)vti_a->ScanLine[y];
unsigned char *destPtr=(unsigned char*)dest->ScanLine[y];
for (int x=0;x<vti->Width;x++)
{
int a=*(srcAPtr++);
*(destPtr++)=((*(bgPtr++))*(255-a)+(*(srcPtr++))*a)/256;
*(destPtr++)=((*(bgPtr++))*(255-a)+(*(srcPtr++))*a)/256;
*(destPtr++)=((*(bgPtr++))*(255-a)+(*(srcPtr++))*a)/256;
}
}
canvas->Draw(0,0,dest);
delete canvas;
EndPaint(hWnd,&ps);
return 0;
}
return DefWindowProc(hWnd,msg,wParam,lParam);
}
void FadeIn(HWND hWnd)
{
HDC dc=GetDC(hWnd);
TCanvas *canvas=new TCanvas;
canvas->Handle=dc;
int lastTime=GetTickCount();
for (int alphaMult=0;alphaMult<=256;)
{
if (!bkgStored)
{
BitBlt(bkg->Canvas->Handle,0,0,vti->Width,vti->Height,
dc,0,0,SRCCOPY);
bkgStored=1;
}
for (int y=0;y<vti->Height;y++)
{
unsigned char *bgPtr=(unsigned char*)bkg->ScanLine[y];
unsigned char *srcPtr=(unsigned char*)vti->ScanLine[y];
unsigned char *srcAPtr=(unsigned char*)vti_a->ScanLine[y];
unsigned char *destPtr=(unsigned char*)dest->ScanLine[y];
for (int x=0;x<vti->Width;x++)
{
int a=*(srcAPtr++);
a=(a*alphaMult)>>8;
*(destPtr++)=((*(bgPtr++))*(255-a)+(*(srcPtr++))*a)/256;
*(destPtr++)=((*(bgPtr++))*(255-a)+(*(srcPtr++))*a)/256;
*(destPtr++)=((*(bgPtr++))*(255-a)+(*(srcPtr++))*a)/256;
}
}
canvas->Draw(0,0,dest);
int curTime=GetTickCount();
alphaMult+=(curTime-lastTime)/2;
lastTime=curTime;
}
delete canvas;
ReleaseDC(hWnd,dc);
drawImage=1;
InvalidateRect(hWnd,NULL,false);
UpdateWindow(hWnd);
}
void FadeOut(HWND hWnd)
{
drawImage=0;
HDC dc=GetDC(hWnd);
TCanvas *canvas=new TCanvas;
canvas->Handle=dc;
int lastTime=GetTickCount();
for (int alphaMult=256;alphaMult>=0;)
{
if (!bkgStored)
{
BitBlt(bkg->Canvas->Handle,0,0,vti->Width,vti->Height,
dc,0,0,SRCCOPY);
bkgStored=1;
}
for (int y=0;y<vti->Height;y++)
{
unsigned char *bgPtr=(unsigned char*)bkg->ScanLine[y];
unsigned char *srcPtr=(unsigned char*)vti->ScanLine[y];
unsigned char *srcAPtr=(unsigned char*)vti_a->ScanLine[y];
unsigned char *destPtr=(unsigned char*)dest->ScanLine[y];
for (int x=0;x<vti->Width;x++)
{
int a=*(srcAPtr++);
a=(a*alphaMult)>>8;
*(destPtr++)=((*(bgPtr++))*(255-a)+(*(srcPtr++))*a)/256;
*(destPtr++)=((*(bgPtr++))*(255-a)+(*(srcPtr++))*a)/256;
*(destPtr++)=((*(bgPtr++))*(255-a)+(*(srcPtr++))*a)/256;
}
}
canvas->Draw(0,0,dest);
int curTime=GetTickCount();
alphaMult-=(curTime-lastTime)/2;
lastTime=curTime;
}
delete canvas;
ReleaseDC(hWnd,dc);
}
WINAPI WinMain(HINSTANCE inst, HINSTANCE, LPSTR cmdLine, int)
{
initPath[0]=0;
getcwd(initPath,256);
hInst=inst;
for (int i=0;;i++)
{
sprintf(vLinkFileName,"Virtual Link %d",i);
hVLinkFileMap=CreateFileMapping((HANDLE)-1,NULL,
PAGE_READWRITE,0,sizeof(LinkBuffer),vLinkFileName);
if (GetLastError()!=ERROR_ALREADY_EXISTS)
break;
}
vSendBuf=(LinkBuffer*)MapViewOfFile(hVLinkFileMap,
FILE_MAP_ALL_ACCESS,0,0,sizeof(LinkBuffer));
hMutex=CreateMutex(NULL,true,"Virtual TI");
if (GetLastError()==ERROR_ALREADY_EXISTS)
otherWnd=FindWindow("TEmuWnd",NULL);
try
{
int showAbout=1;
Application->Initialize();
Application->Title = "Virtual TI";
WizardBitmap=new TWizardBitmap(NULL);
if (!strncmp(cmdLine,"-setup",6))
{
S
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
TI-83.rar (16个子文件)
TI-83
ti83p_112.sav 33KB
Vti.cpp 16KB
ti83plus.skn 61KB
ti83plusrom.zip 157KB
ti89.skn 127KB
ti92p_2.rom 2MB
ti86.skn 101KB
ti92.skn 189KB
Vti.exe 409KB
ti82.skn 51KB
ti83.skn 58KB
skin.exe 170KB
ti83p_112.rom 512KB
ti92p_2.sav 384KB
ti85.skn 80KB
TI-83.lnk 840B
共 16 条
- 1
资源评论
georgechengys
- 粉丝: 1
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功