Ported NCR PC4i from PCem.

Implemented NCR NGA (640x400 extended CGA) graphic card.
This commit is contained in:
EngiNerd89
2020-12-08 18:33:20 +01:00
parent 9daf161aee
commit 901a75bb5d
11 changed files with 792 additions and 30 deletions

View File

@@ -578,6 +578,7 @@ extern int machine_xt_dtk_init(const machine_t *);
extern int machine_xt_jukopc_init(const machine_t *);
extern int machine_xt_open_xt_init(const machine_t *);
extern int machine_xt_pxxt_init(const machine_t *);
extern int machine_xt_ncrpc4i_init(const machine_t *);
extern int machine_xt_iskra3104_init(const machine_t *);

View File

@@ -0,0 +1,48 @@
/*
* 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.
*
* Emulation of the Olivetti OGC 8-bit ISA (GO708) and
* M21/M24/M28 16-bit bus (GO317/318/380/709) video cards.
*
*
*
* Authors: Sarah Walker, <http://pcem-emulator.co.uk/>
* Miran Grca, <mgrca8@gmail.com>
* Fred N. van Kempen, <decwiz@yahoo.com>
* EngiNerd, <webmaster.crrc@yahoo.it>
*
* Copyright 2008-2019 Sarah Walker.
* Copyright 2016-2019 Miran Grca.
* Copyright 2017-2019 Fred N. van Kempen.
* Copyright 2020 EngiNerd.
*/
typedef struct nga_t {
cga_t cga;
/* unused in OGC, required for M19 video card structure idiom */
uint32_t base;
int lineff;
int page;
uint8_t *vram_64k;
mem_mapping_t mapping_64k;
} nga_t;
void nga_recalctimings(nga_t *ogc);
void nga_out(uint16_t addr, uint8_t val, void *priv);
uint8_t nga_in(uint16_t addr, void *priv);
void nga_write(uint32_t addr, uint8_t val, void *priv);
uint8_t nga_read(uint32_t addr, void *priv);
void nga_poll(void *priv);
void nga_close(void *priv);
void nga_mdaattr_rebuild();
#ifdef EMU_DEVICE_H
extern const device_config_t nga_config[];
extern const device_t nga_device;
#endif

View File

@@ -173,6 +173,7 @@ extern uint8_t video_force_resize_get(void);
extern void video_force_resize_set(uint8_t res);
extern void video_update_timing(void);
extern void loadfont_ex(wchar_t *s, int format, int offset);
extern void loadfont(wchar_t *s, int format);
extern int get_actual_size_x(void);
@@ -245,6 +246,9 @@ extern const device_t compaq_cga_2_device;
extern const device_t ogc_device;
extern const device_t ogc_m24_device;
/* NCR NGA */
extern const device_t nga_device;
/* Tseng ET4000AX */
extern const device_t et4000_isa_device;
extern const device_t et4000k_isa_device;