1 /*
2   Hatari - vdi.h
3 
4   This file is distributed under the GNU General Public License, version 2
5   or at your option any later version. Read the file gpl.txt for details.
6 */
7 
8 #ifndef HATARI_VDI_H
9 #define HATARI_VDI_H
10 
11 #define MAX_VDI_PLANES  4
12 /* TOS needs screen width to be aligned to 128/planes and height to VDI text
13  * height (16, larger of these, is used in calculating the limits in Hatari).
14  * Max. screen size supported by EmuTOS (and TOS v3.x?) is 300kB.
15  *
16  * Below MAX_VDI_* values are reasonable limits for monochrome resolutions.
17  * 300kB limits screen size to max. resolution of 2048x1200 or 1920x1280,
18  * which allows FHD (1920×1080), WUXGA (1920x1200) and QWXGA (2048x1152)
19  * standard resolutions.
20  *
21  * On 4-color mode, 300kB limits screen size to 1280x960 or 1200x1024
22  * which allows HD (1280x720), WXGA (1280x768) and XGA+ (1152x864)
23  * standard resolutions.
24  *
25  * On 16-color mode, 300kB limits screen size to 1024x576 or 800x768,
26  * which fills nicely qHD (960x540), DVGA (960x640) and WSVGA (1024x600)
27  * standard resolution displays.
28  */
29 #define MAX_VDI_BYTES 300*1024
30 #define MAX_VDI_WIDTH  2048
31 #define MAX_VDI_HEIGHT 1280
32 /* smaller doesn't make sense even for testing */
33 #define MIN_VDI_WIDTH   320
34 #define MIN_VDI_HEIGHT  208
35 
36 
37 enum
38 {
39   GEMCOLOR_2,
40   GEMCOLOR_4,
41   GEMCOLOR_16
42 };
43 
44 extern Uint32 VDI_OldPC;
45 extern bool bUseVDIRes, bVdiAesIntercept;
46 extern int VDIWidth,VDIHeight;
47 extern int VDIRes,VDIPlanes;
48 
49 extern void VDI_SetResolution(int GEMColor, int WidthRequest, int HeightRequest);
50 extern void AES_Info(FILE *fp, Uint32 bShowOpcodes);
51 extern void VDI_Info(FILE *fp, Uint32 bShowOpcodes);
52 extern bool VDI_AES_Entry(void);
53 extern void VDI_LineA(Uint32 LineABase, Uint32 FontBase);
54 extern void VDI_Complete(void);
55 extern void VDI_Reset(void);
56 
57 #endif  /* HATARI_VDI_H */
58