blob: a9ee9ff5ada4368906f74c59e2d0441ecdfd3da5 [file] [log] [blame] [raw]
/*
* 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 */