Example #1
0
int
divide_init( void )
{
  int error, i;

  divide_idechn0 = libspectrum_ide_alloc( LIBSPECTRUM_IDE_DATA16 );
  divide_idechn1 = libspectrum_ide_alloc( LIBSPECTRUM_IDE_DATA16 );
  
  ui_menu_activate( UI_MENU_ITEM_MEDIA_IDE_DIVIDE_MASTER_EJECT, 0 );
  ui_menu_activate( UI_MENU_ITEM_MEDIA_IDE_DIVIDE_SLAVE_EJECT, 0 );

  if( settings_current.divide_master_file ) {
    error = libspectrum_ide_insert( divide_idechn0, LIBSPECTRUM_IDE_MASTER,
				    settings_current.divide_master_file );
    if( error ) return error;
    ui_menu_activate( UI_MENU_ITEM_MEDIA_IDE_DIVIDE_MASTER_EJECT, 1 );
  }

  if( settings_current.divide_slave_file ) {
    error = libspectrum_ide_insert( divide_idechn0, LIBSPECTRUM_IDE_SLAVE,
				    settings_current.divide_slave_file );
    if( error ) return error;
    ui_menu_activate( UI_MENU_ITEM_MEDIA_IDE_DIVIDE_SLAVE_EJECT, 1 );
  }

  module_register( &divide_module_info );
  for( i = 0; i < 2; i++ ) divide_memory_map_romcs[i].bank = MEMORY_BANK_ROMCS;

  if( periph_register_paging_events( event_type_string, &page_event,
				     &unpage_event ) )
    return 1;

  return 0;
}
Example #2
0
static int
zxcf_init( void *context )
{
  int error, i;

  last_memctl = 0x00;
                                
  zxcf_idechn = libspectrum_ide_alloc( LIBSPECTRUM_IDE_DATA16 );

  ui_menu_activate( UI_MENU_ITEM_MEDIA_IDE_ZXCF_EJECT, 0 );

  if( settings_current.zxcf_pri_file ) {
    error = libspectrum_ide_insert( zxcf_idechn, LIBSPECTRUM_IDE_MASTER,
				    settings_current.zxcf_pri_file );
    if( error ) return error;
    ui_menu_activate( UI_MENU_ITEM_MEDIA_IDE_ZXCF_EJECT, 1 );
  }

  module_register( &zxcf_module_info );

  zxcf_memory_source = memory_source_register( "ZXCF" );
  for( i = 0; i < MEMORY_PAGES_IN_16K; i++ )
    zxcf_memory_map_romcs[i].source = zxcf_memory_source;

  periph_register( PERIPH_TYPE_ZXCF, &zxcf_periph );
  periph_register_paging_events( event_type_string, &page_event,
                                 &unpage_event );

  return 0;
}
Example #3
0
int
zxcf_init( void )
{
  int error;

  last_memctl = 0x00;
                                
  zxcf_idechn = libspectrum_ide_alloc( LIBSPECTRUM_IDE_DATA16 );

  ui_menu_activate( UI_MENU_ITEM_MEDIA_IDE_ZXCF_EJECT, 0 );

  if( settings_current.zxcf_pri_file ) {
    error = libspectrum_ide_insert( zxcf_idechn, LIBSPECTRUM_IDE_MASTER,
				    settings_current.zxcf_pri_file );
    if( error ) return error;
    ui_menu_activate( UI_MENU_ITEM_MEDIA_IDE_ZXCF_EJECT, 1 );
  }

  module_register( &zxcf_module_info );

  if( periph_register_paging_events( event_type_string, &page_event,
				     &unpage_event ) )
    return 1;

  return 0;
}
static int
spectranet_init( void *context )
{
  module_register( &spectranet_module_info );
  spectranet_source = memory_source_register( "Spectranet" );
  periph_register( PERIPH_TYPE_SPECTRANET, &spectranet_periph );
  periph_register_paging_events( event_type_string, &page_event,
				 &unpage_event );

  w5100 = nic_w5100_alloc();
  flash_rom = flash_am29f010_alloc();

  return 0;
}
static int
didaktik80_init( void *context )
{
  int i;
  fdd_t *d;

  didaktik_fdc = wd_fdc_alloc_fdc( WD2797, 0, WD_FLAG_DRQ | WD_FLAG_RDY );

  for( i = 0; i < DIDAKTIK80_NUM_DRIVES; i++ ) {
    d = &didaktik_drives[ i ];
    fdd_init( d, FDD_SHUGART, NULL, 0 );       /* drive geometry 'autodetect' */
    d->disk.flag = DISK_FLAG_NONE;
  }

  didaktik_fdc->current_drive = &didaktik_drives[ 0 ];
  fdd_select( &didaktik_drives[ 0 ], 1 );
  didaktik_fdc->extra_signal = 1;
  didaktik_fdc->dden = 1;
  didaktik_fdc->set_intrq = didaktik_set_intrq;
  didaktik_fdc->reset_intrq = NULL;
  didaktik_fdc->set_datarq = didaktik_set_datarq;
  didaktik_fdc->reset_datarq = NULL;

  module_register( &didaktik_module_info );

  didaktik_rom_memory_source = memory_source_register( "Didaktik 80 ROM" );
  didaktik_ram_memory_source = memory_source_register( "Didaktik 80 RAM" );
  for( i = 0; i < MEMORY_PAGES_IN_14K; i++ )
    didaktik_memory_map_romcs_rom[i].source = didaktik_rom_memory_source;

  for( i = 0; i < MEMORY_PAGES_IN_2K; i++ )
    didaktik_memory_map_romcs_ram[i].source = didaktik_ram_memory_source;

  periph_register( PERIPH_TYPE_DIDAKTIK80, &didaktik_periph );
  for( i = 0; i < DIDAKTIK80_NUM_DRIVES; i++ ) {
    didaktik_ui_drives[ i ].fdd = &didaktik_drives[ i ];
    ui_media_drive_register( &didaktik_ui_drives[ i ] );
  }

  periph_register_paging_events( event_type_string, &page_event,
                                 &unpage_event );

  return 0;
}
static int
speccyboot_init( void *context )
{
  int i;

  nic = nic_enc28j60_alloc();

  module_register( &speccyboot_module_info );

  speccyboot_memory_source = memory_source_register( "SpeccyBoot" );
  for( i = 0; i < MEMORY_PAGES_IN_8K; i++ )
    speccyboot_memory_map_romcs[i].source = speccyboot_memory_source;

  periph_register( PERIPH_TYPE_SPECCYBOOT, &speccyboot_periph );

  periph_register_paging_events( event_type_string, &page_event,
                                 &unpage_event );

  return 0;
}