Merge pull request #6788 from akmed772/master

Add IBM Multistation 5550 (1983) machine
This commit is contained in:
Miran Grča
2026-02-08 20:49:56 +01:00
committed by GitHub
13 changed files with 2339 additions and 7 deletions

View File

@@ -59,6 +59,7 @@
#define FDC_FLAG_TER 0x40000 /* Is Tertiary */
#define FDC_FLAG_QUA 0x80000 /* Is Quaternary */
#define FDC_FLAG_SMC661 0x100000 /* SM(s)C FDC37C661 - different TDR enhanced mode */
#define FDC_FLAG_5550 0x200000 /* IBM Multistation 5550 */
typedef struct fdc_t {
uint8_t dor;
@@ -252,6 +253,7 @@ extern void fdc_reset(void *priv);
extern uint8_t fdc_get_current_drive(void);
extern void fdc_seek_complete_interrupt(fdc_t *fdc, int drive);
extern void fdc_diskchange_interrupt(fdc_t *fdc, int drive);
#ifdef EMU_DEVICE_H
extern const device_t fdc_xt_device;
@@ -262,6 +264,7 @@ extern const device_t fdc_xt_t1x00_device;
extern const device_t fdc_xt_tandy_device;
extern const device_t fdc_xt_amstrad_device;
extern const device_t fdc_xt_umc_um8398_device;
extern const device_t fdc_xt_5550_device;
extern const device_t fdc_pcjr_device;
extern const device_t fdc_at_device;
extern const device_t fdc_at_sec_device;

View File

@@ -170,6 +170,7 @@ extern void kbd_adddata_process(uint16_t val, void (*adddata)(uint16_t val));
extern void kbd_adddata_process_10x(uint16_t val, void (*adddata)(uint16_t val));
extern const scancode scancode_xt[512];
extern const scancode scancode_set8a[512];
extern uint8_t keyboard_set3_flags[512];
extern uint8_t keyboard_set3_all_repeat;

View File

@@ -1511,6 +1511,10 @@ extern int machine_xt_iskra3104_init(const machine_t *);
extern int machine_xt_lxt3_init(const machine_t *);
extern int machine_xt_compaq_deskpro_init(const machine_t *);
/* m_xt_ibm5550.c */
extern int machine_xt_ibm5550_init(const machine_t *);
/* m_xt_t1000.c */
#ifdef EMU_DEVICE_H
extern const device_t t1000_video_device;

View File

@@ -90,6 +90,8 @@ typedef struct pit_intf_t {
void (*write)(uint16_t addr, uint8_t val, void *priv);
/* Gets a counter's count. */
uint16_t (*get_count)(void *data, int counter_id);
/* Gets a counter's out. */
int (*get_outlevel)(void *data, int counter_id);
/* Sets a counter's GATE input. */
void (*set_gate)(void *data, int counter_id, int gate);
/* Sets if a counter's CLOCK input is from the timer or not - used by PCjr. */