/* * Emu48.h * * This file is part of Emu48 * * Copyright (C) 1995 Sebastien Carlier * */ #include "types.h" // Emu48.c extern HPALETTE hPalette; extern LPSTR szTitle; extern HANDLE hApp; extern HWND hWnd; extern HDC hWindowDC; extern BOOL bPort2IsShared; extern BOOL bAlwaysDisplayLog; extern UINT uTimer1Period; extern VOID SetWindowTitle(LPSTR szString); extern VOID UpdateWindowStatus(); // Display.c extern UINT nBackgroundX; extern UINT nBackgroundY; extern UINT nBackgroundW; extern UINT nBackgroundH; extern UINT nLcdX; extern UINT nLcdY; extern BOOL bLcdDoubled; extern LPBYTE pbyLcd; extern HDC hLcdDC; extern HDC hMainDC; extern VOID UpdateContrast(BYTE byContrast); extern VOID SetLcdColor(UINT nId, UINT nRed, UINT nGreen, UINT nBlue); extern VOID CreateLcdBitmap(); extern VOID DestroyLcdBitmap(); extern BOOL CreateMainBitmap(LPSTR szFilename); extern VOID DestroyMainBitmap(); extern VOID UpdateDisplayPointers(); extern VOID UpdateMainDisplay(); extern VOID UpdateMenuDisplay(); extern VOID WriteToMainDisplay(LPBYTE a, DWORD d, UINT s); extern VOID WriteToMenuDisplay(LPBYTE a, DWORD d, UINT s); extern VOID UpdateAnnunciators(); extern VOID ResizeWindow(); // Engine.c extern BOOL bInterrupt; extern UINT nState; extern UINT nNextState; extern HANDLE hThread; extern CHIPSET Chipset; extern UINT SwitchToState(UINT nNewState); extern UINT WorkerThread(LPVOID pParam); extern DWORD Npack(BYTE *a, UINT s); extern VOID Nunpack(BYTE *a, DWORD b, UINT s); // Files.c extern char szEmu48Directory[260]; extern char szCurrentDirectory[260]; extern char szCurrentKml[260]; extern char szBackupKml[260]; extern char szCurrentFilename[260]; extern char szBackupFilename[260]; extern char szBufferFilename[260]; extern char szPort2Filename[260]; extern LPBYTE pbyRom; extern DWORD dwRomSize; extern char cCurrentRomType; extern LPBYTE pbyPort2; extern BOOL bPort2Writeable; extern BOOL bPort2IsShared; extern DWORD dwPort2Mask; extern UINT nPort2Bank; extern BOOL bBackup; extern BOOL MapRom(LPCSTR szFilename); extern VOID UnmapRom(); extern BOOL MapPort2(LPCSTR szFilename); extern VOID UnmapPort2(); extern BOOL PatchRom(LPCSTR szFilename); extern VOID ResetDocument(); extern BOOL NewDocument(); extern BOOL OpenDocument(LPCSTR szFilename); extern BOOL SaveDocument(); extern BOOL SaveDocumentAs(LPCTSTR szFilename); extern BOOL SaveBackup(); extern BOOL RestoreBackup(); extern BOOL ResetBackup(); extern BOOL GetOpenFilename(); extern BOOL GetSaveAsFilename(); extern BOOL GetLoadObjectFilename(); extern BOOL GetSaveObjectFilename(); extern BOOL LoadObject(LPCSTR szFilename); extern BOOL SaveObject(LPCSTR szFilename); extern HBITMAP LoadBitmapFile(LPCSTR szFilename); // Timer.c extern BOOL bAccurateTimer; extern UINT uT1Period; extern VOID StartTimers(); extern VOID StopTimers(); extern DWORD ReadT2(); extern VOID SetT2(DWORD dwValue); extern BYTE ReadT1(); extern VOID SetT1(BYTE byValue); // MOps.c extern LPBYTE RMap[256]; extern LPBYTE WMap[256]; extern VOID Map(BYTE a, BYTE b); extern VOID Config(); extern VOID Uncnfg(); extern VOID Reset(); extern VOID C_Eq_Id(); extern VOID Npeek(BYTE *a, DWORD d, UINT s); extern VOID Nread(BYTE *a, DWORD d, UINT s); extern VOID Nwrite(BYTE *a, DWORD d, UINT s); extern VOID Nread2(BYTE *a, DWORD d); extern VOID Nwrite2(BYTE *a, DWORD d); extern VOID Nread5(BYTE *a, DWORD d); extern VOID Nwrite5(BYTE *a, DWORD d); extern BYTE Read2(DWORD d); extern DWORD Read5(DWORD d); extern VOID Write5(DWORD d, DWORD n); extern VOID ReadIO(BYTE *a, DWORD b, DWORD s); extern VOID WriteIO(BYTE *a, DWORD b, DWORD s); // Keyboard.c extern WORD Keyboard_GetIR(); extern VOID ScanKeyboard(); extern VOID KeyboardEvent(BOOL bPress, UINT out, UINT in); // RPL.c extern DWORD RPL_SkipOb(DWORD d); extern DWORD RPL_ObjectSize(BYTE *o); extern DWORD RPL_CreateTemp(DWORD l); extern DWORD RPL_Pick(UINT l); extern VOID RPL_Replace(DWORD n); extern VOID RPL_Push(DWORD n); // in External.c extern VOID External(CHIPSET* w); // Message Boxes static __inline int InfoMessage(LPCSTR szMessage) {return MessageBox(hWnd, szMessage, szTitle, MB_APPLMODAL|MB_OK|MB_ICONINFORMATION|MB_SETFOREGROUND);} static __inline int AbortMessage(LPCSTR szMessage) {return MessageBox(hWnd, szMessage, szTitle, MB_APPLMODAL|MB_OK|MB_ICONSTOP|MB_SETFOREGROUND);} static __inline int YesNoMessage(LPCSTR szMessage) {return MessageBox(hWnd, szMessage, szTitle, MB_APPLMODAL|MB_YESNO|MB_ICONEXCLAMATION|MB_SETFOREGROUND);} static __inline int YesNoCancelMessage(LPCSTR szMessage) {return MessageBox(hWnd, szMessage, szTitle, MB_APPLMODAL|MB_YESNOCANCEL|MB_ICONEXCLAMATION|MB_SETFOREGROUND);} // Missing Win32 API calls static __inline LPSTR DuplicateString(LPCSTR szString) { UINT uLength = strlen(szString) + 1; LPSTR szDup = LocalAlloc(0,uLength+1); CopyMemory(szDup,szString,uLength); return szDup; }