Merge pull request #5237 from akmed772/master

Add IBM PS/55 machines and its peripherals
This commit is contained in:
Miran Grča
2025-02-19 11:15:45 +01:00
committed by GitHub
28 changed files with 4751 additions and 53 deletions

View File

@@ -138,6 +138,7 @@ extern int sound_is_float; /* (C) sound uses FP values */
extern int voodoo_enabled; /* (C) video option */
extern int ibm8514_standalone_enabled; /* (C) video option */
extern int xga_standalone_enabled; /* (C) video option */
extern int da2_standalone_enabled; /* (C) video option */
extern uint32_t mem_size; /* (C) memory size (Installed on system board) */
extern uint32_t isa_mem_size; /* (C) memory size (ISA Memory Cards) */
extern int cpu; /* (C) cpu type */

View File

@@ -103,7 +103,6 @@ typedef struct fdc_t {
uint8_t densel_force;
uint8_t fifo;
uint8_t tfifo;
uint8_t fifobufpos;
uint8_t drv2en;
uint8_t gap;
@@ -148,6 +147,7 @@ typedef struct fdc_t {
int drvrate[4];
void *fifo_p;
int fifointest;
sector_id_t read_track_sector;
sector_id_t format_sector_id;

View File

@@ -48,6 +48,7 @@ extern const device_t st506_xt_toshiba_t1200_device; /* st506_xt_toshiba_t1
extern const device_t esdi_at_wd1007vse1_device; /* esdi_at */
extern const device_t esdi_ps2_device; /* esdi_mca */
extern const device_t esdi_integrated_device; /* esdi_mca */
extern const device_t ide_isa_device; /* isa_ide */
extern const device_t ide_isa_sec_device; /* isa_ide sec*/

View File

@@ -903,6 +903,8 @@ extern int machine_ps2_model_70_type3_init(const machine_t *);
extern int machine_ps2_model_80_init(const machine_t *);
extern int machine_ps2_model_80_axx_init(const machine_t *);
extern int machine_ps2_model_70_type4_init(const machine_t *);
extern int machine_ps55_model_50t_init(const machine_t*);;
extern int machine_ps55_model_50v_init(const machine_t*);
/* m_tandy.c */
extern int tandy1k_eeprom_read(void);

View File

@@ -3,6 +3,7 @@
extern void mca_init(int nr_cards);
extern void mca_add(uint8_t (*read)(int addr, void *priv), void (*write)(int addr, uint8_t val, void *priv), uint8_t (*feedb)(void *priv), void (*reset)(void *priv), void *priv);
extern void mca_add_to_slot(uint8_t(*read)(int addr, void* priv), void (*write)(int addr, uint8_t val, void* priv), uint8_t(*feedb)(void* priv), void (*reset)(void* priv), void* priv, int c);
extern void mca_set_index(int index);
extern uint8_t mca_read(uint16_t port);
extern uint8_t mca_read_index(uint16_t port, int index);

View File

@@ -0,0 +1,24 @@
/*
* 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.
*
* IBM PS/55 Display Adapter II emulation.
*
*
*
* Authors: Akamaki.
*
* Copyright 2024 Akamaki.
*/
#ifndef VIDEO_DA2_DEVICE_H
#define VIDEO_DA2_DEVICE_H
#ifdef EMU_DEVICE_H
extern const device_t ps55da2_device;
#endif
#endif /*VIDEO_DA2_DEVICE_H*/

View File

@@ -229,6 +229,11 @@ typedef struct svga_t {
int override;
void *priv;
int vga_enabled;
/* The PS/55 POST BIOS has a special monitor detection for its internal VGA
when the monitor is connected to the Display Adapter. */
int cable_connected;
uint8_t crtc[256];
uint8_t gdcreg[256];
uint8_t attrregs[32];

View File

@@ -31,4 +31,8 @@ typedef struct vga_t {
extern void vga_out(uint16_t addr, uint8_t val, void *priv);
extern uint8_t vga_in(uint16_t addr, void *priv);
void vga_disable(void* p);
void vga_enable(void* p);
int vga_isenabled(void* p);
#endif /*VIDEO_VGA_H*/

View File

@@ -313,6 +313,9 @@ extern const device_t mach32_mca_device;
extern const device_t mach32_pci_device;
extern const device_t mach32_onboard_pci_device;
/* IBM Display Adapter (PS/55) */
extern void da2_device_add(void);
/* ATi Mach64 */
extern const device_t mach64gx_isa_device;
extern const device_t mach64gx_vlb_device;