/* | |
* constants for type 340 words | |
* (use for writing test programs) | |
*/ | |
/* | |
* Copyright (c) 2018, Philip L. Budne | |
* | |
* Permission is hereby granted, free of charge, to any person obtaining a | |
* copy of this software and associated documentation files (the "Software"), | |
* to deal in the Software without restriction, including without limitation | |
* the rights to use, copy, modify, merge, publish, distribute, sublicense, | |
* and/or sell copies of the Software, and to permit persons to whom the | |
* Software is furnished to do so, subject to the following conditions: | |
* | |
* The above copyright notice and this permission notice shall be included in | |
* all copies or substantial portions of the Software. | |
* | |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | |
* THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | |
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | |
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |
* | |
* Except as contained in this notice, the name of the author shall | |
* not be used in advertising or otherwise to promote the sale, use or | |
* other dealings in this Software without prior written authorization | |
* from the authors. | |
*/ | |
#define CHAR(C1,C2,C3) \ | |
(((C1)<<12)|((C2)<<6)|(C3)) | |
#define INCRPT(P1,P2,P3,P4) (((P1)<<12)|((P2)<<8)|((P3)<<4)|(P4)) | |
/* | |
* adapted from | |
* 7-13_340_Display_Programming_Manual.pdf | |
* Appendix 1: Mnemonics | |
* | |
* tst340.c dump() routine uses/prints these | |
*/ | |
/* modes: */ | |
#define MPAR 0000000 /* parameter */ | |
#define MPT 0020000 /* point */ | |
#define MSLV 0040000 /* slave */ | |
#define MCHR 0060000 /* character */ | |
#define MVCT 0100000 /* Vector */ | |
#define MVCTC 0120000 /* Vector continue */ | |
#define MINCR 0140000 /* Increment */ | |
#define MSUBR 0160000 /* Subroutine */ | |
#define MODEMASK 0160000 | |
/**************** | |
* Parameter Mode Words | |
*/ | |
#define LPON 014000 | |
#define LPOFF 010000 | |
#define STP 0003000 /* stop & interrupt */ | |
#define STOP 0001000 /* just stop: not in display manual */ | |
/* scale settings */ | |
#define S0 0000100 | |
#define S1 0000120 | |
#define S2 0000140 | |
#define S3 0000160 | |
/* intensity settings */ | |
#define IN0 0000010 | |
#define IN1 0000011 | |
#define IN2 0000012 | |
#define IN3 0000013 | |
#define IN4 0000014 | |
#define IN5 0000015 | |
#define IN6 0000016 | |
#define IN7 0000017 | |
/**************** | |
* Point Mode Words | |
*/ | |
#define V 0200000 /* Vertical word */ | |
#define H 0000000 /* Horizontal word */ | |
#define IP 0002000 /* Intensify point */ | |
/**************** | |
* Slave Mode Words | |
*/ | |
#define S1ON 05000 | |
#define S1OFF 04000 | |
#define LP1ON 02000 | |
#define S2ON 0500 | |
#define S2OFF 0400 | |
#define LP2ON 0200 | |
#define S3ON 050 | |
#define S3OFF 040 | |
#define LP3ON 020 | |
#define S4ON 05 | |
#define S4OFF 04 | |
#define LP4ON 02 | |
// for use in XXX macro: | |
#define SXON 05 | |
#define SXOFF 04 | |
#define LPXON 02 | |
/**************** | |
* Character mode | |
*/ | |
/* defines from ITS: 340def 4 */ | |
#define CHRESC 037 /* escape from character mode */ | |
#define CHRUC 035 /* shift to upper-case */ | |
#define CHRLC 036 /* " " lower-case */ | |
#define CHRLF 033 /* line-feed */ | |
#define CHRCR 034 /* carriage-return */ | |
#define CHRSP 040 /* space (identity!) */ | |
/**************** | |
* Vector and Vector Continue Words | |
*/ | |
#define ESCP 0400000 /* Escape */ | |
#define INSFY 0200000 /* Intensify */ | |
/** y position */ | |
#define DN 0100000 /* Down */ | |
#define UP 0000000 /* Up */ | |
/* number of points moved */ | |
#define YP64 0040000 | |
#define YP32 0020000 | |
#define YP16 0010000 | |
#define YP8 0004000 | |
#define YP4 0002000 | |
#define YP2 0001000 | |
#define YP1 0000400 | |
/** x position */ | |
#define LT 0000200 /* Left */ | |
#define RT 0000000 /* Right */ | |
#define XP64 0000100 | |
#define XP32 0000040 | |
#define XP16 0000020 | |
#define XP8 0000010 | |
#define XP4 0000004 | |
#define XP2 0000002 | |
#define XP1 0000001 | |
/**************** | |
* increment | |
*/ | |
#define PR 010 | |
#define PL 014 | |
#define PU 002 | |
#define PD 003 | |
#define PUL (PU|PL) | |
#define PUR (PU|PR) | |
#define PDL (PD|PL) | |
#define PDR (PD|PR) | |
/* INSFY and ESCP from vector modes */ |