Subversion Repositories pentevo

Rev

Blame | Last modification | View Log | Download | RSS feed | ?url?

  1. #pragma once
  2.  
  3. //=============================================================================
  4. namespace z80gs
  5. {
  6.     const int GSCPUFQ = 24000000;               // hz //12
  7.     extern const unsigned GSCPUINT;
  8.     extern unsigned __int64 gs_t_states;        // inc'ed with GSCPUINT every gs int
  9.  
  10.     void apply_gs();
  11.     void init_gs_frame();
  12.     void flush_gs_frame();
  13.  
  14.     u8 in_gs(unsigned port);
  15.     void out_gs(        unsigned port,
  16.                         u8 val
  17.                 );
  18.     void reset();
  19.     void __cdecl BankNames(     int i,
  20.                                 char *Name
  21.                            );
  22.     __int64 __cdecl     delta();
  23.     void __cdecl        SetLastT();
  24.  
  25.     u8 __fastcall       Xm(     u32 addr                );
  26.     u8 __fastcall       Rm(     u32 addr                );
  27.     void __fastcall     Wm(     u32 addr,       u8 val  );
  28.     u8 __fastcall       DbgXm(  u32 addr                );
  29.     u8 __fastcall       DbgRm(  u32 addr                );
  30.     void __fastcall     DbgWm(  u32 addr,       u8 val  );
  31. }
  32. //=============================================================================
  33.  
  34.  
  35. //=============================================================================
  36. class TGsZ80 : public Z80
  37. {
  38. public:
  39.     TGsZ80(     u32 Idx,
  40.    
  41.                 TBankNames BankNames,
  42.                 TStep Step,
  43.                 TDelta Delta,
  44.                
  45.                 TSetLastT SetLastT,
  46.                   u8 *membits,
  47.                   u8 *io_bits,          // [NS]
  48.                   u8 *bp_disable_bits,  // [NS]
  49.                 const TMemIf *FastMemIf,
  50.                 const TMemIf *DbgMemIf
  51.             )
  52.             :
  53.     Z80(        Idx,
  54.                 BankNames,
  55.                 Step,
  56.                 Delta,
  57.                 SetLastT,
  58.                   membits,
  59.                   io_bits,              // [NS]
  60.                   bp_disable_bits,      // [NS]
  61.                 FastMemIf,
  62.                 DbgMemIf
  63.         )
  64.         { }
  65.  
  66.    virtual u8 *DirectMem(unsigned addr) const override; // get direct memory pointer in debuger
  67. /*
  68.    virtual unsigned char rm(unsigned addr) override;
  69.    virtual unsigned char dbgrm(unsigned addr) override;
  70.    virtual void wm(unsigned addr, unsigned char val) override;
  71.    virtual void dbgwm(unsigned addr, unsigned char val) override;
  72. */
  73.    virtual unsigned char m1_cycle()                     override;
  74.    virtual unsigned char in(unsigned port)              override;
  75.    virtual void out(unsigned port, unsigned char val)   override;
  76.    virtual u8 IntVec()                                  override;
  77.    virtual void CheckNextFrame()                        override;
  78.    virtual void retn()                                  override;
  79. };
  80.  
  81.