[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 |
|
---|
[09d1345] | 15 | #define V_CHITE 12u /* Character height */
|
---|
[f40a309] | 16 |
|
---|
| 17 | /* object descriptor flags */
|
---|
| 18 |
|
---|
[09d1345] | 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 */
|
---|
[f40a309] | 37 |
|
---|
| 38 | /* Preset flags for bitmap and character objects */
|
---|
| 39 |
|
---|
[09d1345] | 40 | #define V_BTYPE 0u
|
---|
[f40a309] | 41 | #define V_CTYPE (V_CBS | V_RES2 | ((V_CHITE - 1) << 12))
|
---|
| 42 |
|
---|
| 43 | /* character attribute flags */
|
---|
| 44 |
|
---|
[09d1345] | 45 | #define C_ALTCS 0x8000u
|
---|
| 46 | #define C_TFGND 0x4000u
|
---|
| 47 | #define C_TBGND 0x2000u
|
---|
| 48 | #define C_WIDE 0x1000u
|
---|
[f40a309] | 49 |
|
---|
[09d1345] | 50 | #define C_MASK 0x0800u
|
---|
| 51 | #define C_INVRT 0x0400u
|
---|
| 52 | #define C_BLINK 0x0200u
|
---|
| 53 | #define C_ULINE 0x0100u
|
---|
[f40a309] | 54 |
|
---|
| 55 | struct octent { /* Object control table entry */
|
---|
| 56 |
|
---|
[6a37d5b] | 57 | int16_t ysize, /* Height of object in pixels */
|
---|
[f40a309] | 58 | xsize; /* Width of object in pixels */
|
---|
| 59 |
|
---|
[7258c6a] | 60 | int16_t objx, /* Object x location */
|
---|
[f40a309] | 61 | objy; /* Object y location */
|
---|
| 62 |
|
---|
[8c8b4e5] | 63 | volatile uint16_t *obase; /* Base of object data */
|
---|
[f40a309] | 64 |
|
---|
[7258c6a] | 65 | int8_t opri, /* Current object priority */
|
---|
[f40a309] | 66 | obank; /* Object bank 0..3 */
|
---|
| 67 |
|
---|
[7258c6a] | 68 | uint16_t odtw0, /* Object descriptor table word 0 */
|
---|
[f40a309] | 69 | odtw1; /* Object descriptor table word 1 */
|
---|
| 70 | };
|
---|