Added IBM PCjr cartridge support.
This commit is contained in:
40
src/include/86box/cartridge.h
Normal file
40
src/include/86box/cartridge.h
Normal file
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
* running old operating systems and software designed for IBM
|
||||
* PC systems and compatibles from 1981 through fairly recent
|
||||
* system designs based on the PCI bus.
|
||||
*
|
||||
* This file is part of the 86Box distribution.
|
||||
*
|
||||
* Definitions for the PCjr cartridge emulation.
|
||||
*
|
||||
*
|
||||
*
|
||||
* Authors: Miran Grca, <mgrca8@gmail.com>
|
||||
*
|
||||
* Copyright 2021 Miran Grca.
|
||||
*/
|
||||
#ifndef EMU_CARTRIDGE_H
|
||||
# define EMU_CARTRIDGE_H
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
extern char cart_fns[2][512];
|
||||
|
||||
|
||||
extern void cart_load(int drive, char *fn);
|
||||
extern void cart_close(int drive);
|
||||
|
||||
extern void cart_reset(void);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#endif /*EMU_CARTRIDGE_H*/
|
||||
@@ -121,8 +121,10 @@
|
||||
#define IDS_2145 2145 // "You are loading an unsupported..."
|
||||
#define IDS_2146 2146 // "CPU type filtering based on..."
|
||||
#define IDS_2147 2147 // "Continue"
|
||||
#define IDS_2148 2148 // "Continue"
|
||||
#define IDS_2149 2149 // "Continue"
|
||||
#define IDS_2148 2148 // "Cassette: %s"
|
||||
#define IDS_2149 2149 // "Cassette images (*.PCM;*.RAW;*..."
|
||||
#define IDS_2150 2150 // "Cartridge %i: %ls"
|
||||
#define IDS_2151 2151 // "Cartridge images (*.JRC)\0*.JRC\0..."
|
||||
|
||||
#define IDS_4096 4096 // "Hard disk (%s)"
|
||||
#define IDS_4097 4097 // "%01i:%01i"
|
||||
@@ -231,7 +233,7 @@
|
||||
|
||||
#define IDS_LANG_ENUS IDS_7168
|
||||
|
||||
#define STR_NUM_2048 102
|
||||
#define STR_NUM_2048 104
|
||||
#define STR_NUM_3072 11
|
||||
#define STR_NUM_4096 40
|
||||
#define STR_NUM_4352 6
|
||||
|
||||
@@ -82,6 +82,7 @@
|
||||
#define MACHINE_IDE_QUAD 0x07800000 /* sys has int quad IDE/ATAPI - mark as dual + both ter and and qua IDE/ATAPI */
|
||||
#define MACHINE_SCSI 0x08000000 /* sys has int single SCSI - mark as pri SCSI */
|
||||
#define MACHINE_SCSI_DUAL 0x18000000 /* sys has int dual SCSI - mark as both pri and sec SCSI */
|
||||
#define MACHINE_CARTRIDGE 0x20000000 /* sys has two cartridge bays */
|
||||
|
||||
#define IS_ARCH(m, a) (machines[m].flags & (a)) ? 1 : 0;
|
||||
#define IS_AT(m) ((machines[m].flags & 0x00000FC8) && !(machines[m].flags & MACHINE_PC98)) ? 1 : 0;
|
||||
|
||||
@@ -133,6 +133,8 @@ extern void plat_power_off(void);
|
||||
/* Platform-specific device support. */
|
||||
extern void cassette_mount(char *fn, uint8_t wp);
|
||||
extern void cassette_eject(void);
|
||||
extern void cartridge_mount(uint8_t id, char *fn, uint8_t wp);
|
||||
extern void cartridge_eject(uint8_t id);
|
||||
extern void floppy_mount(uint8_t id, char *fn, uint8_t wp);
|
||||
extern void floppy_eject(uint8_t id);
|
||||
extern void cdrom_mount(uint8_t id, char *fn);
|
||||
|
||||
@@ -389,29 +389,32 @@
|
||||
#define IDM_CASSETTE_FAST_FORWARD 0x1800
|
||||
#define IDM_CASSETTE_EJECT 0x1900
|
||||
|
||||
#define IDM_FLOPPY_IMAGE_NEW 0x2200
|
||||
#define IDM_FLOPPY_IMAGE_EXISTING 0x2300
|
||||
#define IDM_FLOPPY_IMAGE_EXISTING_WP 0x2400
|
||||
#define IDM_FLOPPY_EXPORT_TO_86F 0x2500
|
||||
#define IDM_FLOPPY_EJECT 0x2600
|
||||
#define IDM_CARTRIDGE_IMAGE 0x2200
|
||||
#define IDM_CARTRIDGE_EJECT 0x2300
|
||||
|
||||
#define IDM_CDROM_MUTE 0x3200
|
||||
#define IDM_CDROM_EMPTY 0x3300
|
||||
#define IDM_CDROM_RELOAD 0x3400
|
||||
#define IDM_CDROM_IMAGE 0x3500
|
||||
#define IDM_CDROM_HOST_DRIVE 0x3600
|
||||
#define IDM_FLOPPY_IMAGE_NEW 0x3200
|
||||
#define IDM_FLOPPY_IMAGE_EXISTING 0x3300
|
||||
#define IDM_FLOPPY_IMAGE_EXISTING_WP 0x3400
|
||||
#define IDM_FLOPPY_EXPORT_TO_86F 0x3500
|
||||
#define IDM_FLOPPY_EJECT 0x3600
|
||||
|
||||
#define IDM_ZIP_IMAGE_NEW 0x4200
|
||||
#define IDM_ZIP_IMAGE_EXISTING 0x4300
|
||||
#define IDM_ZIP_IMAGE_EXISTING_WP 0x4400
|
||||
#define IDM_ZIP_EJECT 0x4500
|
||||
#define IDM_ZIP_RELOAD 0x4600
|
||||
#define IDM_CDROM_MUTE 0x4200
|
||||
#define IDM_CDROM_EMPTY 0x4300
|
||||
#define IDM_CDROM_RELOAD 0x4400
|
||||
#define IDM_CDROM_IMAGE 0x4500
|
||||
#define IDM_CDROM_HOST_DRIVE 0x4600
|
||||
|
||||
#define IDM_MO_IMAGE_NEW 0x5200
|
||||
#define IDM_MO_IMAGE_EXISTING 0x5300
|
||||
#define IDM_MO_IMAGE_EXISTING_WP 0x5400
|
||||
#define IDM_MO_EJECT 0x5500
|
||||
#define IDM_MO_RELOAD 0x5600
|
||||
#define IDM_ZIP_IMAGE_NEW 0x5200
|
||||
#define IDM_ZIP_IMAGE_EXISTING 0x5300
|
||||
#define IDM_ZIP_IMAGE_EXISTING_WP 0x5400
|
||||
#define IDM_ZIP_EJECT 0x5500
|
||||
#define IDM_ZIP_RELOAD 0x5600
|
||||
|
||||
#define IDM_MO_IMAGE_NEW 0x6200
|
||||
#define IDM_MO_IMAGE_EXISTING 0x6300
|
||||
#define IDM_MO_IMAGE_EXISTING_WP 0x6400
|
||||
#define IDM_MO_EJECT 0x6500
|
||||
#define IDM_MO_RELOAD 0x6600
|
||||
|
||||
|
||||
/* Next default values for new objects */
|
||||
|
||||
@@ -51,14 +51,15 @@ extern void ui_check_menu_item(int id, int checked);
|
||||
/* Status Bar functions. */
|
||||
#define SB_ICON_WIDTH 24
|
||||
#define SB_CASSETTE 0x00
|
||||
#define SB_FLOPPY 0x10
|
||||
#define SB_CDROM 0x20
|
||||
#define SB_ZIP 0x30
|
||||
#define SB_MO 0x40
|
||||
#define SB_HDD 0x50
|
||||
#define SB_NETWORK 0x60
|
||||
#define SB_SOUND 0x70
|
||||
#define SB_TEXT 0x80
|
||||
#define SB_CARTRIDGE 0x10
|
||||
#define SB_FLOPPY 0x20
|
||||
#define SB_CDROM 0x30
|
||||
#define SB_ZIP 0x40
|
||||
#define SB_MO 0x50
|
||||
#define SB_HDD 0x60
|
||||
#define SB_NETWORK 0x70
|
||||
#define SB_SOUND 0x80
|
||||
#define SB_TEXT 0x90
|
||||
|
||||
extern wchar_t *ui_window_title(wchar_t *s);
|
||||
extern void ui_status_update(void);
|
||||
|
||||
@@ -59,6 +59,7 @@ DECLARE_HANDLE(DPI_AWARENESS_CONTEXT);
|
||||
#define SDL_SUB_CLASS_NAME L"86BoxSDLSubWnd"
|
||||
|
||||
#define CASSETTE_SUBMENU_NAME L"CassetteSubmenu"
|
||||
#define CARTRIDGE_SUBMENU_NAME L"CartridgeSubmenu"
|
||||
#define FLOPPY_SUBMENU_NAME L"FloppySubmenu"
|
||||
#define CDROM_SUBMENU_NAME L"CdromSubmenu"
|
||||
#define ZIP_SUBMENU_NAME L"ZIPSubmenu"
|
||||
@@ -222,11 +223,13 @@ extern void media_menu_init();
|
||||
extern void media_menu_reset();
|
||||
extern int media_menu_proc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);
|
||||
extern HMENU media_menu_get_cassette(void);
|
||||
extern HMENU media_menu_get_cartridge(int id);
|
||||
extern HMENU media_menu_get_floppy(int id);
|
||||
extern HMENU media_menu_get_cdrom(int id);
|
||||
extern HMENU media_menu_get_zip(int id);
|
||||
extern HMENU media_menu_get_mo(int id);
|
||||
extern void media_menu_update_cassette(void);
|
||||
extern void media_menu_update_cartridge(int id);
|
||||
extern void media_menu_update_floppy(int id);
|
||||
extern void media_menu_update_cdrom(int id);
|
||||
extern void media_menu_update_zip(int id);
|
||||
|
||||
Reference in New Issue
Block a user