/* * 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 */