[f40a309] | 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 |
|
---|
[f7428b1] | 9 | #pragma once
|
---|
[5fa506d] | 10 |
|
---|
[f7428b1] | 11 | #include "stdint.h"
|
---|
| 12 |
|
---|
| 13 | #define VSDD ((uint16_t *)0x200000)
|
---|
[f40a309] | 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 */
|
---|
[7258c6a] | 60 |
|
---|
[f40a309] | 61 | uint16_t ysize, /* Height of object in pixels */
|
---|
| 62 | xsize; /* Width of object in pixels */
|
---|
[7258c6a] | 63 |
|
---|
[f40a309] | 64 | int16_t objx, /* Object x location */
|
---|
| 65 | objy; /* Object y location */
|
---|
[7258c6a] | 66 |
|
---|
[f40a309] | 67 | uint16_t *obase; /* Base of object data */
|
---|
[7258c6a] | 68 |
|
---|
[f40a309] | 69 | int8_t opri, /* Current object priority */
|
---|
| 70 | obank; /* Object bank 0..3 */
|
---|
[7258c6a] | 71 |
|
---|
[f40a309] | 72 | uint16_t odtw0, /* Object descriptor table word 0 */
|
---|
| 73 | odtw1; /* Object descriptor table word 1 */
|
---|
| 74 | };
|
---|