1 #ifndef GRAPHICS_MONITOR_H
2 #define GRAPHICS_MONITOR_H
5 Copyright © 1995-2001, The AROS Development Team. All rights reserved.
8 Desc: Monitor definitions
12 #ifndef EXEC_SEMAPHORES_H
13 # include <exec/semaphores.h>
15 #ifndef GRAPHICS_GFX_H
16 # include <graphics/gfx.h>
18 #ifndef GRAPHICS_GFXNODES_H
19 # include <graphics/gfxnodes.h>
22 #define DEFAULT_MONITOR_NAME "default.monitor"
23 #define NTSC_MONITOR_NAME "ntsc.monitor"
24 #define PAL_MONITOR_NAME "pal.monitor"
25 #define VGA_MONITOR_NAME "vga.monitor"
29 struct ExtendedNode ms_Node
;
31 UWORD ms_Flags
; /* see below */
36 UWORD total_colorclocks
;
37 UWORD DeniseMaxDisplayColumn
;
41 struct SpecialMonitor
* ms_Special
;
44 LONG (* ms_transform
)();
45 LONG (* ms_translate
)();
50 struct Rectangle ms_LegalView
;
52 LONG (* ms_maxoscan
)();
53 LONG (* ms_videoscan
)();
54 UWORD DeniseMinDisplayColumn
;
55 ULONG DisplayCompatible
;
57 struct List DisplayInfoDataBase
;
58 struct SignalSemaphore DisplayInfoDataBaseSemaphore
;
61 LONG (* ms_LoadView
)();
62 LONG (* ms_KillView
)();
66 #define MSB_REQUEST_NTSC 0
67 #define MSF_REQUEST_NTSC (1<<0)
68 #define MSB_REQUEST_PAL 1
69 #define MSF_REQUEST_PAL (1<<1)
70 #define MSB_REQUEST_SPECIAL 2
71 #define MSF_REQUEST_SPECIAL (1<<2)
72 #define MSB_REQUEST_A2024 3
73 #define MSF_REQUEST_A2024 (1<<3)
74 #define MSB_DOUBLE_SPRITES 4
75 #define MSF_DOUBLE_SPRITES (1<<4)
77 #define STANDARD_MONITOR_MASK (MSF_REQUEST_NTSC | MSF_REQUEST_PAL)
80 #define FROM_MONITOR 1
82 #define STANDARD_XOFFSET 9
83 #define STANDARD_YOFFSET 0
85 #define STANDARD_NTSC_ROWS 262
86 #define MIN_NTSC_ROW 21
87 #define STANDARD_PAL_ROWS 312
88 #define MIN_PAL_ROW 29
89 #define STANDARD_NTSC_BEAMCON 0x0000
90 #define STANDARD_PAL_BEAMCON 0x0020
91 #define SPECIAL_BEAMCON (VARVBLANK | VARHSYNC | VARVSYNC | VARBEAM | VSYNCTRUE | LOLDIS | CSBLANK)
92 #define STANDARD_DENISE_MIN 93
93 #define STANDARD_DENISE_MAX 455
94 #define STANDARD_COLORCLOCKS 226
95 #define STANDARD_VIEW_X 0x81
96 #define STANDARD_VIEW_Y 0x2C
97 #define STANDARD_HBSTRT 0x06
98 #define STANDARD_HBSTOP 0x2C
99 #define STANDARD_HSSTRT 0x0B
100 #define STANDARD_HSSTOP 0x1C
101 #define STANDARD_VBSTRT 0x0122
102 #define STANDARD_VBSTOP 0x1066
103 #define STANDARD_VSSTRT 0x02A6
104 #define STANDARD_VSSTOP 0x03AA
106 #define VGA_COLORCLOCKS (STANDARD_COLORCLOCKS / 2)
107 #define VGA_TOTAL_ROWS (STANDARD_NTSC_ROWS * 2)
108 #define VGA_DENISE_MIN 59
109 #define MIN_VGA_ROW 29
110 #define VGA_HBSTRT 0x08
111 #define VGA_HBSTOP 0x1E
112 #define VGA_HSSTRT 0x0E
113 #define VGA_HSSTOP 0x1C
114 #define VGA_VBSTRT 0x0000
115 #define VGA_VBSTOP 0x0CCD
116 #define VGA_VSSTRT 0x0153
117 #define VGA_VSSTOP 0x0235
119 #define BROADCAST_BEAMCON (LOLDIS | CSBLANK)
120 #define BROADCAST_HBSTRT 0x01
121 #define BROADCAST_HBSTOP 0x27
122 #define BROADCAST_HSSTRT 0x06
123 #define BROADCAST_HSSTOP 0x17
124 #define BROADCAST_VBSTRT 0x0000
125 #define BROADCAST_VBSTOP 0x1C40
126 #define BROADCAST_VSSTRT 0x02A6
127 #define BROADCAST_VSSTOP 0x054C
129 #define RATIO_FIXEDPART 4
130 #define RATIO_UNITY (1<<4)
132 struct AnalogSignalInterval
138 struct SpecialMonitor
140 struct ExtendedNode spm_Node
;
143 LONG (* do_monitor
)();
144 LONG (* reserved1
)();
145 LONG (* reserved2
)();
146 LONG (* reserved3
)();
148 struct AnalogSignalInterval hblank
;
149 struct AnalogSignalInterval vblank
;
150 struct AnalogSignalInterval hsync
;
151 struct AnalogSignalInterval vsync
;
154 #endif /* GRAPHICS_MONITOR_H */