1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
/* $NetBSD: video.h,v 1.10 2023/03/25 21:51:12 andvar Exp $ */
/*
* Copyright (c) 1995 Leo Weppelman.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef _MACHINE_VIDEO_H
#define _MACHINE_VIDEO_H
/*
* Access to circuitry for video
*/
#define VIDEO ((struct video *)AD_VIDEO)
struct video {
volatile char vdb[14]; /* sparsely filled */
volatile u_short vd_line_wide; /* Falcon line word distance */
volatile u_short vd_vert_wrap; /* Falcon line length */
volatile char vd_fill0[45]; /* filler */
volatile u_short vd_st_rgb[16]; /* RGB for simultaneous colors (ST)*/
volatile u_char vd_st_res; /* ST resolution */
volatile char vd_fill1; /* filler */
volatile u_short vd_tt_res; /* TT-resolution mode */
volatile u_char vd_ste_hscroll; /* MEGA STe hor bitwise scroll */
volatile u_short vd_fal_res; /* Falcon resolution */
volatile char vd_fill2[23];
volatile u_short vd_h_hold_cnt; /* Falcon horizontal hold counter */
volatile u_short vd_h_hold_tim; /* Falcon horizontal hold timer */
volatile u_short vd_h_bord_beg; /* Falcon horizontal border begin */
volatile u_short vd_h_bord_end; /* Falcon horizontal border end */
volatile u_short vd_h_dis_beg; /* Falcon horizontal display begin */
volatile u_short vd_h_dis_end; /* Falcon horizontal display end */
volatile u_short vd_h_ss; /* Falcon horizontal SS */
volatile u_short vd_h_fs; /* Falcon horizontal FS */
volatile u_short vd_h_hh; /* Falcon horizontal HH */
volatile char vd_fill3[13];
volatile u_short vd_v_freq_cnt; /* Falcon vertical frequency count */
volatile u_short vd_v_freq_tim; /* Falcon vertical frequency timer */
volatile u_short vd_v_bord_beg; /* Falcon vertical border begin */
volatile u_short vd_v_bord_end; /* Falcon vertical border end */
volatile u_short vd_v_dis_beg; /* Falcon vertical display begin */
volatile u_short vd_v_dis_end; /* Falcon vertical display end */
volatile u_short vd_v_ss; /* Falcon vertical SS */
volatile char vd_fill4[17];
volatile u_short vd_fal_ctrl; /* Falcon video control */
volatile u_short vd_fal_mode; /* Falcon video mode */
volatile char vd_fill5[315];
volatile u_short vd_tt_rgb[256]; /* RGB for simultaneous TT colors */
volatile char vd_fill6[4608];
volatile u_long vd_fal_rgb[256];/* RGB for Falcon colors */
};
#define vd_ramh vdb[ 1] /* base address Video RAM, high byte */
#define vd_ramm vdb[ 3] /* base address Video RAM, mid byte */
#define vd_raml vdb[13] /* base address Video RAM, low byte */
#define vd_ptrh vdb[ 5] /* scan address Video RAM, high byte */
#define vd_ptrm vdb[ 7] /* scan address Video RAM, mid byte */
#define vd_ptrl vdb[ 9] /* scan address Video RAM, low byte */
#define vd_sync vdb[10] /* synchronization mode */
/* bits in vd_sync: */
#define SYNC_EXT 0x01 /* extern sync */
#define SYNC_50 0x02 /* 50 Hertz (used for color) */
/* bits in vd_st_rgb[]: */
#define RGB_B 0x0007
#define RGB_G 0x0070
#define RGB_R 0x0700
/* some values for vd_st_rgb[]: */
#define RGB_BLACK 0x0000
#define RGB_RED 0x0700
#define RGB_GREEN 0x0070
#define RGB_BLUE 0x0007
#define RGB_WHITE 0x0777
#define RGB_MAGENTA 0x0707
#define RGB_CYAN 0x0077
#define RGB_YELLOW 0x0770
#define RGB_LGREY 0x0555
#define RGB_DGREY 0x0222
/* values for vd_st_res: */
#define RES_LOW 0x00 /* 320x200, 16 colors */
#define RES_MID 0x01 /* 640x200, 4 colors */
#define RES_HIGH 0x02 /* 640x400, monochrome */
/* masks for vd_tt_res: */
#define RES_STLOW 0x0000 /* 320x200, 16 colors */
#define RES_STMID 0x0100 /* 640x200, 4 colors */
#define RES_STHIGH 0x0200 /* 640x400, monochrome */
#define RES_TTMID 0x0400 /* 640x480, 16 colors */
#define RES_TTHIGH 0x0600 /* 1280x960, monochrome */
#define RES_TTLOW 0x0700 /* 320x480, 256 colors */
#define TT_PALLET 0x000f /* Palette number */
#define TT_HYMONO 0x8000 /* Hyper mono mode */
#define TT_SHOLD 0x1000 /* Sample/hold mode */
/* The falcon video modes */
#define RES_FALAUTO 0 /* Falcon resolution detected at boot */
#define RES_VGA2 1 /* 640x480, 2 colors */
#define RES_VGA4 2 /* 640x480, 4 colors */
#define RES_VGA16 3 /* 640x480, 16 colors */
#define RES_VGA256 4 /* 640x480, 256 colors */
#define RES_DIRECT 5 /* 320x200, 65536 colors */
#define RES_FAL_STLOW 6 /* 320x200, 16 colors */
#define RES_FAL_STMID 7 /* 640x200, 4 colors */
#define RES_FAL_STHIGH 8 /* 640x400, 2 colors */
#define RES_FAL_TTLOW 9 /* 320x480, 256 colors */
/* Falcon monitor types */
#define FAL_SM 0x0000
#define FAL_SC 0x0100
#define FAL_VGA 0x0200
#define FAL_TV 0x0300
#endif /* _MACHINE_VIDEO_H */
|