123456789101112131415161718192021222324252627282930313233343536373839404142 |
- class ST010 : public Memory {
- public:
- void init();
- void enable();
- void power();
- void reset();
- uint8 read (unsigned addr);
- void write(unsigned addr, uint8 data);
- private:
- uint8 ram[0x1000];
- static const int16 sin_table[256];
- static const int16 mode7_scale[176];
- static const uint8 arctan[32][32];
- //interfaces to sin table
- int16 sin(int16 theta);
- int16 cos(int16 theta);
- //interfaces to ram buffer
- uint8 readb (uint16 addr);
- uint16 readw (uint16 addr);
- uint32 readd (uint16 addr);
- void writeb(uint16 addr, uint8 data);
- void writew(uint16 addr, uint16 data);
- void writed(uint16 addr, uint32 data);
- //opcodes
- void op_01();
- void op_02();
- void op_03();
- void op_04();
- void op_05();
- void op_06();
- void op_07();
- void op_08();
- void op_01(int16 x0, int16 y0, int16 &x1, int16 &y1, int16 &quadrant, int16 &theta);
- };
- extern ST010 st010;
|