1 | /*
|
---|
2 | =============================================================================
|
---|
3 | vsdd.h -- header for Matra-Harris 82716 VSDD video display functions
|
---|
4 | Version 10 -- 1987-05-27 -- D.N. Lynx Crowe
|
---|
5 | (c) Copyright 1987 -- D.N. Lynx Crowe
|
---|
6 | =============================================================================
|
---|
7 | */
|
---|
8 |
|
---|
9 | #pragma once
|
---|
10 |
|
---|
11 | #include "stdint.h"
|
---|
12 |
|
---|
13 | #define VSDD ((uint16_t *)0x200000)
|
---|
14 |
|
---|
15 | #define V_CHITE 12u /* Character height */
|
---|
16 |
|
---|
17 | /* object descriptor flags */
|
---|
18 |
|
---|
19 | #define V_CBS 0x0800u /* 0 = Bit Map, 1 = Character */
|
---|
20 | #define V_RES0 0x0000u /* Resolution 0: char 16, bit - */
|
---|
21 | #define V_RES1 0x0200u /* Resolution 1: char 6, bit - */
|
---|
22 | #define V_RES2 0x0400u /* Resolution 2: char 8, bit 2 */
|
---|
23 | #define V_RES3 0x0600u /* Resolution 3: char 12, bit 4 */
|
---|
24 | #define V_CRS 0x0100u /* Conceal/Reveal Select */
|
---|
25 |
|
---|
26 | #define V_PSE 0x0080u /* Proportional space enable */
|
---|
27 | #define V_FAD 0x0040u /* Full attributes select */
|
---|
28 | #define V_OBL 0x0020u /* Object blink */
|
---|
29 | #define V_BLA 0x0010u /* Object blank */
|
---|
30 |
|
---|
31 | #define V_HCR 0x0008u /* High color resolution */
|
---|
32 | #define V_TDE 0x0004u /* Transparency detect enable */
|
---|
33 | #define V_DCS0 0x0000u /* Default color select 0 */
|
---|
34 | #define V_DCS1 0x0001u /* Default color select 1 */
|
---|
35 | #define V_DCS2 0x0002u /* Default color select 2 */
|
---|
36 | #define V_DCS3 0x0003u /* Default color select 3 */
|
---|
37 |
|
---|
38 | /* Preset flags for bitmap and character objects */
|
---|
39 |
|
---|
40 | #define V_BTYPE 0u
|
---|
41 | #define V_CTYPE (V_CBS | V_RES2 | ((V_CHITE - 1) << 12))
|
---|
42 |
|
---|
43 | /* character attribute flags */
|
---|
44 |
|
---|
45 | #define C_ALTCS 0x8000u
|
---|
46 | #define C_TFGND 0x4000u
|
---|
47 | #define C_TBGND 0x2000u
|
---|
48 | #define C_WIDE 0x1000u
|
---|
49 |
|
---|
50 | #define C_MASK 0x0800u
|
---|
51 | #define C_INVRT 0x0400u
|
---|
52 | #define C_BLINK 0x0200u
|
---|
53 | #define C_ULINE 0x0100u
|
---|
54 |
|
---|
55 | struct octent { /* Object control table entry */
|
---|
56 |
|
---|
57 | int16_t ysize, /* Height of object in pixels */
|
---|
58 | xsize; /* Width of object in pixels */
|
---|
59 |
|
---|
60 | int16_t objx, /* Object x location */
|
---|
61 | objy; /* Object y location */
|
---|
62 |
|
---|
63 | volatile uint16_t *obase; /* Base of object data */
|
---|
64 |
|
---|
65 | int8_t opri, /* Current object priority */
|
---|
66 | obank; /* Object bank 0..3 */
|
---|
67 |
|
---|
68 | uint16_t odtw0, /* Object descriptor table word 0 */
|
---|
69 | odtw1; /* Object descriptor table word 1 */
|
---|
70 | };
|
---|