Top secrets sources NedoPC pentevo

Rev

Rev 799 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed | ?url?

#pragma once
#include "sndrender/emul_2203.h"
#include "sndrender/sndchip.h"
#include "sndrender/saa1099.h"

#define ROMLED_TIME 16

#pragma pack(8)
struct PALETTE_OPTIONS
{ // custom palettes
   char name[33];
   unsigned ZZ,ZN,NN,NB,BB,ZB;
   unsigned r11,r12,r13,r21,r22,r23,r31,r32,r33;
};
#pragma pack()

enum
{
   VK_LMB = 0x101,
   VK_RMB,
   VK_MMB,
   VK_MWU,
   VK_MWD,
   VK_JLEFT,
   VK_JRIGHT,
   VK_JUP,
   VK_JDOWN,
   VK_JFIRE,
   VK_JB0 = VK_JFIRE,
   VK_JB1,
   VK_JB2,
   VK_JB3,
   VK_JB4,
   VK_JB5,
   VK_JB6,
   VK_JB7,
   VK_JB8,
   VK_JB9,
   VK_JB10,
   VK_JB11,
   VK_JB12,
   VK_JB13,
   VK_JB14,
   VK_JB15,
   VK_JB16,
   VK_JB17,
   VK_JB18,
   VK_JB19,
   VK_JB20,
   VK_JB21,
   VK_JB22,
   VK_JB23,
   VK_JB24,
   VK_JB25,
   VK_JB26,
   VK_JB27,
   VK_JB28,
   VK_JB29,
   VK_JB30,
   VK_JB31,
   DIK_MENU,
   DIK_CONTROL,
   DIK_SHIFT,
   VK_MAX
};

enum
{
   MEMBITS_R = 0x01, MEMBITS_W = 0x02, MEMBITS_X = 0x04,
   MEMBITS_BPR = 0x10, MEMBITS_BPW = 0x20, MEMBITS_BPX = 0x40
};

struct GDIBMP
{
   BITMAPINFO header;
   RGBQUAD waste[0x100];
};

class TMainZ80 : public Z80
{
public:
   TMainZ80(u32 Idx,
       TBankNames BankNames, TStep Step, TDelta Delta,
       TSetLastT SetLastT, u8 *membits, const TMemIf *FastMemIf, const TMemIf *DbgMemIf) :
       Z80(Idx, BankNames, Step, Delta, SetLastT, membits, FastMemIf, DbgMemIf) { }
/*
   virtual unsigned char rm(unsigned addr) override;
   virtual unsigned char dbgrm(unsigned addr) override;
   virtual void wm(unsigned addr, unsigned char val) override;
   virtual void dbgwm(unsigned addr, unsigned char val) override;
*/

   virtual u8 *DirectMem(unsigned addr) const override; // get direct memory pointer in debuger

   virtual unsigned char m1_cycle() override;
   virtual unsigned char in(unsigned port) override;
   virtual void out(unsigned port, unsigned char val) override;
   virtual u8 IntVec() override;
   virtual void CheckNextFrame() override;
   virtual void retn() override;
};

extern PALETTE_OPTIONS pals[32];

extern CONFIG conf;
extern COMPUTER comp;
extern unsigned char memory[];

extern unsigned char cmos[0x100];
extern unsigned char nvram[0x800];

extern char ininame[0x200];
extern char helpname[0x200];

extern unsigned num_ula;
extern char *ulapreset[64];
extern char *setptr;

extern char *aystereo[64];
extern char *ayvols[64];
extern unsigned num_ayvols;
extern unsigned num_aystereo;

extern DWORD WinVerMajor;
extern DWORD WinVerMinor;

extern HWND wnd;
extern HWND dlg;
extern HINSTANCE hIn;
extern unsigned nowait;

extern action ac_main[];
extern action ac_main_xt[];
extern action ac_mon[];
extern action ac_regs[];
extern action ac_trace[];
extern action ac_mem[];
extern RENDER renders[];
extern VOID_FUNC prebuffers[];

extern const TMemModel mem_model[N_MM_MODELS];

extern zxkeymap zxk_maps[];
extern const size_t zxk_maps_count;

extern virtkeyt pckeys[];
extern const size_t pckeys_count;

extern keyports inports[VK_MAX];

extern unsigned trd_toload; // drive to load
extern unsigned DefaultDrive; // Äèñêîâîä ïî óìîë÷àíèþ â êîòîðûé ãðóçÿòñÿ îáðàçû äèñêîâ ïðè ñòàðòå

extern unsigned char *base_sos_rom;
extern unsigned char *base_dos_rom;
extern unsigned char *base_128_rom;
extern unsigned char *base_sys_rom;

extern ISA_MODEM modem;
extern K_INPUT input;

extern unsigned brk_port_in;
extern unsigned brk_port_out;
extern unsigned char brk_port_val;

extern uintptr_t watch_script[4][64];
extern unsigned char watch_enabled[4];
extern unsigned char used_banks[MAX_PAGES];
extern unsigned char trace_rom;
extern unsigned char trace_ram;

extern TMainZ80 cpu;
extern unsigned char dbgbreak;
extern unsigned char snbuf[4*1048576]; // large temporary buffer (for reading snapshots)
extern unsigned char gdibuf[2*1048576];

extern SNDCHIP ay[2];

extern unsigned char *bankr[4];
extern unsigned char *bankw[4];

#ifdef MOD_GSBASS
extern GSHLE gs;
#endif

extern GDIBMP gdibmp;
extern unsigned char needclr; // clear screenbuffer before rendering
extern DWORD mousepos;  // left-clicked point in monitor
extern PALETTEENTRY syspalette[0x100];
extern unsigned char exitflag; // avoid call exit() twice

#define PLAYBUFSIZE 16384
extern unsigned sndplaybuf[PLAYBUFSIZE];
extern unsigned spbsize;
extern unsigned char savesndtype; // 0-none,1-wave,2-vtx
extern FILE *savesnd;

extern HBITMAP hbm;  // bitmap for repaint background
extern DWORD bm_dx;
extern DWORD bm_dy;

extern char droppedFile[512];

extern char statusline[128];
extern unsigned statcnt;

extern bool normal_exit;

extern const char * const ay_schemes[];

#ifdef MOD_GSZ80
extern class TGsZ80 gscpu;

namespace z80gs
{
    extern SNDRENDER sound;
    extern u8 membits[];
}
#endif

extern ATA_PORT hdd;   // not in `comp' - not cleared in reset()
extern char arcbuffer[0x2000]; // extensions and command lines for archivers
extern char skiparc[0x400]; // ignore this files in archive
extern char trd_loaded[4]; // used to get first free drive with no account of autoloaded images
extern unsigned char kbdpc[VK_MAX]; // add cells for mouse & joystick

extern char pressedit; //Alone Coder
extern int fmsoundon0; //Alone Coder
extern int tfmstatuson0; //Alone Coder

// for leds
extern unsigned char trdos_load;
extern unsigned char trdos_save;
extern unsigned char trdos_format;
extern unsigned char trdos_seek;
extern unsigned char membits[0x10000];

extern unsigned char *vtxbuf;
extern unsigned vtxbufsize;
extern unsigned vtxbuffilled;

extern unsigned snapsize;

extern unsigned char kbdpcEX[6]; //Dexus

extern int trdos_in_nmi;