OpenCores
URL https://opencores.org/ocsvn/thor/thor/trunk

Subversion Repositories thor

[/] [thor/] [trunk/] [software/] [emuThor/] [source/] [clsThor.h] - Blame information for rev 32

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 30 robfinch
#pragma once
2
#include "clsCPU.h"
3
 
4 32 robfinch
extern class clsSystem system1;
5 30 robfinch
 
6
class clsThor : public clsCPU
7
{
8 32 robfinch
        bool StatusHWI;
9
        bool StatusDBG;
10
        __int16 StatusEXL;
11
        __int64 string_pc;
12
        unsigned __int64 imm;
13
        bool imm_prefix;
14
        unsigned __int64 ea;
15
        unsigned int mode : 2;
16
 
17
        void SetGP(int rg, __int64 val);
18
        int GetMode();
19
        void SetSpr(int Sprn, __int64 val);
20
        __int64 GetSpr(int Sprn);
21
        void dRn(int b1, int b2, int b3, int *Ra, int *Sg, __int64 *disp);
22
        void ndx(int b1, int b2, int b3, int *Ra, int *Rb, int *Rt, int *Sg, int *Sc);
23
        int WriteMask(int ad, int sz);
24
        unsigned __int64 ReadByte(int ad);
25
        unsigned __int64 ReadChar(int ad);
26
        unsigned __int64 ReadHalf(int ad);
27
        unsigned __int64 Read(int ad);
28 30 robfinch
public:
29 32 robfinch
        unsigned __int32 pc;
30 30 robfinch
        __int64 gp[64];         // general purpose registers
31
        __int64 ca[16];         // code address registers
32
        __int8 pr[16];          // predicate registers
33
        __int64 seg_base[8];
34
        __int64 seg_limit[8];
35
        __int64 lc;
36
        __int64 tick;
37
        __int8 bir;
38
        __int64 dbad0,dbad1,dbad2,dbad3;
39
        __int64 dbctrl,dbstat;
40
        bool im;
41
        int imcd;
42
        int pred;
43 32 robfinch
        __int64 GetGP(int rg);
44
        bool IsKM();
45 30 robfinch
        void Reset();
46
        void Step();
47 32 robfinch
private:
48
        inline bool IRQActive() { return !StatusHWI && irq && !im; };
49
        int GetBit(__int64 a, int b);
50
        void SetBit(__int64 *a, int b);
51
        void ClearBit(__int64 *a, int b);
52 30 robfinch
};
53
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.