mirror of
https://github.com/simh/simh.git
synced 2026-01-25 19:56:25 +00:00
DISPLAY: Update display code to support DEC Type 340, and 36 switches
Only interface code to Type 340 is for Richard Cornwell's KA10 (but could be used on PDP-1/4/7/9 as well)
This commit is contained in:
177
display/type340cmd.h
Normal file
177
display/type340cmd.h
Normal file
@@ -0,0 +1,177 @@
|
||||
/*
|
||||
* 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 */
|
||||
Reference in New Issue
Block a user