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 12 /* Character height */
|
---|
16 |
|
---|
17 | /* object descriptor flags */
|
---|
18 |
|
---|
19 | #define V_CBS 0x0800 /* 0 = Bit Map, 1 = Character */
|
---|
20 | #define V_RES0 0x0000 /* Resolution 0: char 16, bit - */
|
---|
21 | #define V_RES1 0x0200 /* Resolution 1: char 6, bit - */
|
---|
22 | #define V_RES2 0x0400 /* Resolution 2: char 8, bit 2 */
|
---|
23 | #define V_RES3 0x0600 /* Resolution 3: char 12, bit 4 */
|
---|
24 | #define V_CRS 0x0100 /* Conceal/Reveal Select */
|
---|
25 |
|
---|
26 | #define V_PSE 0x0080 /* Proportional space enable */
|
---|
27 | #define V_FAD 0x0040 /* Full attributes select */
|
---|
28 | #define V_OBL 0x0020 /* Object blink */
|
---|
29 | #define V_BLA 0x0010 /* Object blank */
|
---|
30 |
|
---|
31 | #define V_HCR 0x0008 /* High color resolution */
|
---|
32 | #define V_TDE 0x0004 /* Transparency detect enable */
|
---|
33 | #define V_DCS0 0x0000 /* Default color select 0 */
|
---|
34 | #define V_DCS1 0x0001 /* Default color select 1 */
|
---|
35 | #define V_DCS2 0x0002 /* Default color select 2 */
|
---|
36 | #define V_DCS3 0x0003 /* Default color select 3 */
|
---|
37 |
|
---|
38 | /* Preset flags for bitmap and character objects */
|
---|
39 |
|
---|
40 | #define V_BTYPE 0
|
---|
41 | #define V_CTYPE (V_CBS | V_RES2 | ((V_CHITE - 1) << 12))
|
---|
42 |
|
---|
43 | /* character attribute flags */
|
---|
44 |
|
---|
45 | #define C_ALTCS 0x8000
|
---|
46 | #define C_TFGND 0x4000
|
---|
47 | #define C_TBGND 0x2000
|
---|
48 | #define C_WIDE 0x1000
|
---|
49 |
|
---|
50 | #define C_MASK 0x0800
|
---|
51 | #define C_INVRT 0x0400
|
---|
52 | #define C_BLINK 0x0200
|
---|
53 | #define C_ULINE 0x0100
|
---|
54 |
|
---|
55 | /* |
---|
56 |
|
---|
57 | */
|
---|
58 |
|
---|
59 | struct octent { /* Object control table entry */
|
---|
60 |
|
---|
61 | uint16_t ysize, /* Height of object in pixels */
|
---|
62 | xsize; /* Width of object in pixels */
|
---|
63 |
|
---|
64 | int16_t objx, /* Object x location */
|
---|
65 | objy; /* Object y location */
|
---|
66 |
|
---|
67 | uint16_t *obase; /* Base of object data */
|
---|
68 |
|
---|
69 | int8_t opri, /* Current object priority */
|
---|
70 | obank; /* Object bank 0..3 */
|
---|
71 |
|
---|
72 | uint16_t odtw0, /* Object descriptor table word 0 */
|
---|
73 | odtw1; /* Object descriptor table word 1 */
|
---|
74 | };
|
---|