/* 6128+ base system-> disc, 128k only */ void Config6128Plus() { CPC_SetHardware(CPC_HW_CPCPLUS); Cartridge_Insert(cartridge_cpcplus.start, cartridge_cpcplus.size); Amstrad_DiscInterface_Install(); Amstrad_RamExpansion_Install(); CPC_Reset(); }
/* 464 base system -> cassette only, 64k only */ void ConfigCPC464() { CPC_SetOSRom(roms_cpc464.os.start); CPC_SetBASICRom(roms_cpc464.basic.start); Amstrad_DiscInterface_DeInstall(); Amstrad_RamExpansion_DeInstall(); CPC_SetHardware(CPC_HW_CPC); CPC_Reset(); }
/* kc compact base system -> tape only, 64k */ void ConfigKCCompact() { CPC_SetOSRom(roms_kcc.os.start); CPC_SetBASICRom(roms_kcc.basic.start); Amstrad_DiscInterface_DeInstall(); Amstrad_RamExpansion_DeInstall(); CPC_SetHardware(CPC_HW_KCCOMPACT); CPC_Reset(); }
/* 6128 spanish base system -> disc, 128k only */ void ConfigCPC6128s() { CPC_SetOSRom(roms_cpc6128s.os.start); CPC_SetBASICRom(roms_cpc6128s.basic.start); CPC_SetDOSRom(rom_amsdos.start); Amstrad_DiscInterface_Install(); Amstrad_RamExpansion_Install(); CPC_SetHardware(CPC_HW_CPC); CPC_Reset(); }
/** * Show and process the floppy disk image dialog. */ void DlgFloppy_Main(void) { int but, i; char *newdisk; char dlgname[MAX_FLOPPYDRIVES][64], dlgdiskdir[64]; SDLGui_CenterDlg(floppydlg); /* Set up dialog to actual values: */ const char *name; floppydlg[FLOPPYDLG_AUTORUN].state &= ~SG_SELECTED; name = DISKA_NAME; /* Filename */ if (!name)dlgname[0][0] = '\0'; else File_ShrinkName(dlgname[0], name,floppydlg[FLOPPYDLG_DISKA].w); floppydlg[FLOPPYDLG_DISKA].txt = dlgname[0]; name = DISKB_NAME; /* Filename */ if (!name)dlgname[1][0] = '\0'; else File_ShrinkName(dlgname[1], name,floppydlg[FLOPPYDLG_DISKB].w); floppydlg[FLOPPYDLG_DISKB].txt = dlgname[1]; name = TAPE_NAME; /* Filename */ if (!name)dlgname[2][0] = '\0'; else File_ShrinkName(dlgname[2], name,floppydlg[FLOPPYDLG_DISK2].w); floppydlg[FLOPPYDLG_DISK2].txt = dlgname[2]; name = CART_NAME; /* Filename */ if (!name)dlgname[3][0] = '\0'; else File_ShrinkName(dlgname[3], name,floppydlg[FLOPPYDLG_DISK3].w); floppydlg[FLOPPYDLG_DISK3].txt = dlgname[3]; /* Default image directory: */ File_ShrinkName(dlgdiskdir,szDiskImageDirectory, floppydlg[FLOPPYDLG_IMGDIR].w); floppydlg[FLOPPYDLG_IMGDIR].txt = dlgdiskdir; /* Draw and process the dialog */ do { but = SDLGui_DoDialog(floppydlg, NULL); switch (but) { case FLOPPYDLG_EJECTA: /* Eject disk in drive A: */ Floppy_SetDiskFileNameNone(0); dlgname[0][0] = '\0'; DiskImage_RemoveDisk(0); break; case FLOPPYDLG_BROWSEA: /* Choose a new disk A: */ DlgDisk_BrowseDisk(dlgname[0], 0, FLOPPYDLG_DISKA); if (strlen(szDiskFileName[0]) > 0){ if (GenericInterface_InsertDiskImage(0, szDiskFileName[0])) { printf("Error loading drivea:%s\n", szDiskFileName[0]); } else { if(floppydlg[FLOPPYDLG_AUTORUN].state & SG_SELECTED){ char AutoType_String[256]; char *pBuffer = malloc(512*5); int nAutoRunResult = AMSDOS_GenerateAutorunCommand(pBuffer,AutoType_String); if(nAutoRunResult==0){ printf("auto(%s)\n",AutoType_String); AutoType_SetString(AutoType_String, TRUE, TRUE); } else printf("error auto(%d)\n",nAutoRunResult); free(pBuffer); } sprintf(DISKA_NAME,"%s",szDiskFileName[0]); } } break; case FLOPPYDLG_EJECTB: /* Eject disk in drive B: */ Floppy_SetDiskFileNameNone(1); dlgname[1][0] = '\0'; DiskImage_RemoveDisk(1); break; case FLOPPYDLG_BROWSEB: /* Choose a new disk B: */ DlgDisk_BrowseDisk(dlgname[1], 1, FLOPPYDLG_DISKB); if (strlen(szDiskFileName[1]) > 0){ if (GenericInterface_InsertDiskImage(1, szDiskFileName[1])) { printf("Error loading driveb:%s\n", szDiskFileName[1]); } else sprintf(DISKB_NAME,"%s",szDiskFileName[1]); } case FLOPPYDLG_EJECT2: /* Eject tape */ Floppy_SetDiskFileNameNone(2); dlgname[2][0] = '\0'; Tape_Remove(); sprintf(TAPE_NAME,"\0"); break; case FLOPPYDLG_BROWSE2: /* Choose a new tape */ DlgDisk_BrowseDisk(dlgname[2], 2, FLOPPYDLG_DISK2); if (strlen(szDiskFileName[2]) > 0){ if (GenericInterface_InsertTape(szDiskFileName[2])) { printf("Error loading Tape:%s\n", szDiskFileName[2]); } else { sprintf(TAPE_NAME,"%s",szDiskFileName[2]); AutoType_SetString( "|TAPE\nRUN\"\n\n", TRUE, TRUE); } } break; case FLOPPYDLG_EJECT3: /* Eject cart */ Floppy_SetDiskFileNameNone(3); dlgname[3][0] = '\0'; GenericInterface_RemoveCartridge(); sprintf(CART_NAME,"\0"); break; case FLOPPYDLG_BROWSE3: /* Choose a new cart */ DlgDisk_BrowseDisk(dlgname[3], 3, FLOPPYDLG_DISK3); if (strlen(szDiskFileName[3]) > 0){ if(strcmp (szDiskFileName[3],"/home/tech/Bureau/GIT/arnold/roms/parados.rom") == 0){ GenericInterface_LoadRom(7, szDiskFileName[3]); CPC_Reset(); break; } if (GenericInterface_InsertCartridge(szDiskFileName[3])) { printf("Error loading cart:%s\n",szDiskFileName[3]); } else sprintf(CART_NAME,"%s",szDiskFileName[3]); // strcpy(prefs->DrivePath[3], szDiskFileName[3]); } break; case FLOPPYDLG_BROWSEIMG: DlgDisk_BrowseDir(dlgdiskdir,szDiskImageDirectory,floppydlg[FLOPPYDLG_IMGDIR].w); break; /* case FLOPPYDLG_CREATEIMG: newdisk = DlgNewDisk_Main(); if (newdisk) { DlgFloppy_QueryInsert(dlgname[0], FLOPPYDLG_DISKA, dlgname[1], FLOPPYDLG_DISKB, newdisk); free(newdisk); } break; */ } gui_poll_events(); } while (but != FLOPPYDLG_EXIT && but != SDLGUI_QUIT && but != SDLGUI_ERROR && !bQuitProgram); }