~ubuntu-branches/ubuntu/maverick/vice/maverick

« back to all changes in this revision

Viewing changes to src/cbm2/cbm2mem.c

  • Committer: Bazaar Package Importer
  • Author(s): Zed Pobre
  • Date: 2005-02-01 11:30:26 UTC
  • mfrom: (1.1.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20050201113026-3eyakzsmmheclvjg
Tags: 1.16-1
* New upstream version
* Fixes crash on 64-bit architectures (closes: #287640)
* x128 working again (closes: #286767)
* Works fine with /dev/dsp in use (not in the main changelog, but tested
  on my local machine as working).  Presumably, this also takes care of
  the issue with dsp being held.  I'm not sure if this is because I'm
  testing it on a 2.6 kernel now -- if you are still having problems
  with /dev/dsp, please reopen the bugs. (closes: #152952, #207942)
* Don't kill Makefile.in on clean

Show diffs side-by-side

added added

removed removed

Lines of Context:
47
47
#include "ram.h"
48
48
#include "resources.h"
49
49
#include "sid.h"
 
50
#include "sid-resources.h"
50
51
#include "types.h"
51
52
#include "vsync.h"
52
53
#include "vicii-mem.h"
206
207
 
207
208
/* ------------------------------------------------------------------------- */
208
209
 
209
 
const char *mem_romset_resources_list[] = {
210
 
    "KernalName", "ChargenName", "BasicName",
211
 
    "Cart1Name", "Cart2Name", "Cart4Name", "Cart6Name",
212
 
    "DosName2031", "DosName1001",
213
 
    "DosName1541", "DosName1571", "DosName1581", "DosName1541ii",
214
 
    NULL
215
 
};
216
 
 
217
 
/* ------------------------------------------------------------------------- */
218
 
 
219
210
/* Enable/disable the Emulator ID.  */
220
211
void mem_toggle_emu_id(int flag)
221
212
{
539
530
 
540
531
BYTE REGPARM1 read_watch(WORD addr)
541
532
{
542
 
    mon_watch_push_load_addr(addr, e_comp_space);
 
533
    monitor_watch_push_load_addr(addr, e_comp_space);
543
534
    return _mem_read_tab[cbm2mem_bank_exec][addr >> 8](addr);
544
535
}
545
536
 
546
537
void REGPARM2 store_watch(WORD addr, BYTE value)
547
538
{
548
 
    mon_watch_push_store_addr(addr, e_comp_space);
 
539
    monitor_watch_push_store_addr(addr, e_comp_space);
549
540
    _mem_write_tab[cbm2mem_bank_exec][addr >> 8](addr, value);
550
541
}
551
542
 
552
543
BYTE REGPARM1 read_ind_watch(WORD addr)
553
544
{
554
 
    mon_watch_push_load_addr(addr, e_comp_space);
 
545
    monitor_watch_push_load_addr(addr, e_comp_space);
555
546
    return _mem_read_tab[cbm2mem_bank_ind][addr >> 8](addr);
556
547
}
557
548
 
558
549
void REGPARM2 store_ind_watch(WORD addr, BYTE value)
559
550
{
560
 
    mon_watch_push_store_addr(addr, e_comp_space);
 
551
    monitor_watch_push_store_addr(addr, e_comp_space);
561
552
    _mem_write_tab[cbm2mem_bank_ind][addr >> 8](addr, value);
562
553
}
563
554
 
598
589
          case 0xd900:
599
590
            return;                     /* disk units */
600
591
          case 0xda00:
601
 
            sid_store((WORD)(addr & 0xff), value);
 
592
            if (sid_stereo && addr >= sid_stereo_address_start && addr < sid_stereo_address_end)
 
593
              sid2_store(addr, value);
 
594
            else
 
595
              sid_store((WORD)(addr & 0xff), value);
602
596
            return;
603
597
          case 0xdb00:
604
598
            return;                     /* coprocessor */
640
634
          case 0xd900:
641
635
            return read_unused(addr);
642
636
          case 0xda00:
 
637
            if (sid_stereo && addr >= sid_stereo_address_start && addr < sid_stereo_address_end)
 
638
            {
 
639
              if (cbm2_isC500)
 
640
              {
 
641
                return sid2_read(addr);
 
642
              }
 
643
              else
 
644
              {
 
645
                return 0xff;            /* 2 MHz too fast for SID */
 
646
              }
 
647
            }
643
648
            if (cbm2_isC500) {
644
649
                return sid_read(addr);
645
650
            } else {