/** * @fileoverview Global definitions used by PCjs. * @author Jeff Parsons * @copyright © Jeff Parsons 2012-2017 * * This file is part of PCjs, a computer emulation software project at . * * PCjs is free software: you can redistribute it and/or modify it under the terms of the * GNU General Public License as published by the Free Software Foundation, either version 3 * of the License, or (at your option) any later version. * * PCjs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along with PCjs. If not, * see . * * You are required to include the above copyright notice in every modified copy of this work * and to display that copyright notice when the software starts running; see COPYRIGHT in * . * * Some PCjs files also attempt to load external resource files, such as character-image files, * ROM files, and disk image files. Those external resource files are not considered part of PCjs * for purposes of the GNU General Public License, and the author does not claim any copyright * as to their contents. */ export const GLOBALS = { APPVERSION: "1.x.x", // overridden by the Closure Compiler with the version in package.json XMLVERSION: null, // set in non-COMPILED builds by embedMachine() if a version number was found in the machine XML COPYRIGHT: "Copyright © 2012-2017 Jeff Parsons ", LICENSE: "License: GPL version 3 or later ", CSSCLASS: "pcjs", SITEHOST: "localhost:8088", // overridden by the Closure Compiler with "www.pcjs.org" COMPILED: false, // overridden by the Closure Compiler (to true) DEBUG: true, // overridden by the Closure Compiler (to false) to remove DEBUG-only code MAXDEBUG: false, // overridden by the Closure Compiler (to false) to remove MAXDEBUG-only code PRIVATE: false // overridden by the Closure Compiler (to false) to enable PRIVATE code }; /* * RS-232 DB-25 Pin Definitions, mapped to bits 1-25 in a 32-bit status value. * * SerialPorts in PCjs machines are considered DTE (Data Terminal Equipment), which means they should be "virtually" * connected to each other via a null-modem cable, which assumes the following cross-wiring: * * G 1 <-> 1 G (Ground) * TD 2 <-> 3 RD (Received Data) * RD 3 <-> 2 TD (Transmitted Data) * RTS 4 <-> 5 CTS (Clear To Send) * CTS 5 <-> 4 RTS (Request To Send) * DSR 6+8 <-> 20 DTR (Data Terminal Ready) * SG 7 <-> 7 SG (Signal Ground) * DTR 20 <-> 6+8 DSR (Data Set Ready + Carrier Detect) * RI 22 <-> 22 RI (Ring Indicator) * * TODO: Move these definitions to a more appropriate shared file at some point. */ export const RS232 = { RTS: { PIN: 4, MASK: 0x00000010 }, CTS: { PIN: 5, MASK: 0x00000020 }, DSR: { PIN: 6, MASK: 0x00000040 }, CD: { PIN: 8, MASK: 0x00000100 }, DTR: { PIN: 20, MASK: 0x00100000 }, RI: { PIN: 22, MASK: 0x00400000 } };