Files
86Box/src/include/86box/vid_hercules.h

78 lines
1.8 KiB
C
Raw Normal View History

2022-01-30 02:11:21 -05:00
/*
2023-01-06 15:36:05 -05:00
* 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.
2022-01-30 02:11:21 -05:00
*
2023-01-06 15:36:05 -05:00
* This file is part of the 86Box distribution.
2022-01-30 02:11:21 -05:00
*
2023-01-06 15:36:05 -05:00
* Emulation of the Hercules graphics cards.
2022-01-30 02:11:21 -05:00
*
*
*
2023-01-06 15:36:29 -05:00
* Authors: Sarah Walker, <https://pcem-emulator.co.uk/>
2023-01-06 15:36:05 -05:00
* Miran Grca, <mgrca8@gmail.com>
* Jasmine Iwanek, <jriwanek@gmail.com>
*
* Copyright 2008-2019 Sarah Walker.
* Copyright 2016-2019 Miran Grca.
* Copyright 2021 Jasmine Iwanek.
2022-01-30 02:11:21 -05:00
*/
2022-02-18 19:42:21 -05:00
2022-01-30 02:11:21 -05:00
#ifndef VIDEO_HERCULES_H
#define VIDEO_HERCULES_H
2022-01-30 02:11:21 -05:00
typedef struct {
mem_mapping_t mapping;
2022-01-30 02:11:21 -05:00
uint8_t crtc[32], charbuffer[4096];
int crtcreg;
2022-01-30 02:11:21 -05:00
uint8_t ctrl,
ctrl2,
stat;
2022-01-30 02:11:21 -05:00
uint64_t dispontime,
dispofftime;
pc_timer_t timer;
2022-01-30 02:11:21 -05:00
int firstline,
lastline;
2022-01-30 02:11:21 -05:00
int linepos,
displine;
int vc,
sc;
uint16_t ma,
maback;
int con, coff,
cursoron;
int dispon,
blink;
int vsynctime;
int vadj;
2022-01-30 02:11:21 -05:00
int lp_ff;
int fullchange;
2022-01-30 02:11:21 -05:00
int cols[256][2][2];
2022-01-30 02:11:21 -05:00
uint8_t *vram;
int monitor_index;
int prev_monitor_index;
2022-01-30 02:11:21 -05:00
} hercules_t;
#define VIDEO_MONITOR_PROLOGUE() \
{ \
dev->prev_monitor_index = monitor_index_global; \
monitor_index_global = dev->monitor_index; \
}
#define VIDEO_MONITOR_EPILOGUE() \
{ \
monitor_index_global = dev->prev_monitor_index; \
}
2022-07-04 01:50:42 +06:00
2022-01-30 02:11:21 -05:00
static void *hercules_init(const device_t *info);
#endif /*VIDEO_HERCULES_H*/