/[VRac]/M6502/M6502.xs
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /M6502/M6502.xs

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 200 by dpavlin, Sun Apr 13 12:17:07 2008 UTC revision 203 by dpavlin, Sun Apr 13 22:04:44 2008 UTC
# Line 11  M6502 *R = NULL; Line 11  M6502 *R = NULL;
11  int debug = 0;  int debug = 0;
12    
13  // same as memory size  // same as memory size
14  #define CACHE_SIZE 0xffff  #define CACHE_SIZE 0x10000
15  byte opCache[CACHE_SIZE];  byte opCache[CACHE_SIZE];
16    
17  #define CALLBACK_READ_SKIP      0x00  #define CALLBACK_READ_SKIP      0x00
# Line 205  reset (void) { Line 205  reset (void) {
205                          exit(1);                          exit(1);
206                  }                  }
207                  memset( opCache, 0, CACHE_SIZE );                  memset( opCache, 0, CACHE_SIZE );
                 memset( perlCallBack, CALLBACK_READ_ALWAYS | CALLBACK_WRITE_ALWAYS, CACHE_SIZE );  
208          }          }
209            memset( perlCallBack, ( CALLBACK_READ_ALWAYS | CALLBACK_WRITE_ALWAYS ), CACHE_SIZE );
210          Reset6502(R);          Reset6502(R);
211          debugf(("Reset6502 over"));          debugf(("Reset6502 over"));
212          update_perl_R();          update_perl_R();
# Line 238  int get_debug(void) { Line 238  int get_debug(void) {
238    
239  /* FIXME somehow check if Addr will fit in int on current platform */  /* FIXME somehow check if Addr will fit in int on current platform */
240  void set_read_callback(int Addr) {  void set_read_callback(int Addr) {
241          perlCallBack[Addr] == perlCallBack[Addr] & CALLBACK_WRITE_MASK | CALLBACK_READ_ALWAYS;          perlCallBack[Addr] = perlCallBack[Addr] & CALLBACK_WRITE_MASK | CALLBACK_READ_ALWAYS;
242          debugf(("MEM: %04x read callback\n", Addr));          debugf(("MEM: %04x read callback to %02x\n", Addr, perlCallBack[Addr]));
243  }  }
244    
245  void set_write_callback(int Addr) {  void set_write_callback(int Addr) {
246          perlCallBack[Addr] == perlCallBack[Addr] & CALLBACK_READ_MASK | CALLBACK_WRITE_ALWAYS;          perlCallBack[Addr] = perlCallBack[Addr] & CALLBACK_READ_MASK | CALLBACK_WRITE_ALWAYS;
247          debugf(("MEM: %04x write callback\n", Addr));          debugf(("MEM: %04x write callback to %02x\n", Addr, perlCallBack[Addr]));
248  }  }
249    
250  /* we fake here, since we will need to call perl at least once to get initial value... */  /* we fake here, since we will need to call perl at least once to get initial value... */
# Line 258  int get_callback(int Addr) { Line 258  int get_callback(int Addr) {
258          return perlCallBack[Addr];          return perlCallBack[Addr];
259  }  }
260    
261    void mem_poke(int Addr, int byte) {
262            opCache[Addr] = byte;
263    }
264    
265    int mem_peek(int Addr) {
266            return opCache[Addr];
267    }
268    
269  MODULE = M6502          PACKAGE = M6502  MODULE = M6502          PACKAGE = M6502
270    
271  PROTOTYPES: DISABLE  PROTOTYPES: DISABLE
272    
273  int  int set_debug(int state)
 set_debug(int state)  
274    
275  int  int get_debug()
 get_debug()  
276    
277  int  int reset()
 reset()  
278    
279  void  void update_C_R()
 update_C_R()  
280    
281  void  void update_perl_R()
 update_perl_R()  
282    
283  int  int exec(int cycles)
 exec(int cycles)  
284    
285  void  void set_read_callback(int Addr)
 set_read_callback(int Addr)  
286    
287  void  void set_write_callback(int Addr)
 set_write_callback(int Addr)  
288    
289  int  int set_all_callbacks(int mode)
 set_all_callbacks(int mode)  
290    
291  int get_callback(int Addr)  int get_callback(int Addr)
292    
293    void mem_poke(int Addr, int byte)
294    
295    int mem_peek(int Addr)

Legend:
Removed from v.200  
changed lines
  Added in v.203

  ViewVC Help
Powered by ViewVC 1.1.26