/* >>:yamsys.h 10-30-83 * * computer innovations c86 version * * global equates for specific installation and modem ports * Other modem specific stuff is in yam5.c * * This header file supports a hayes smartmodem using * a Godbout Interfacer 3 or 4 i/o board. */ #define ANSWERBACK "\r\n999-999-9999 J. Doe N.Y. New York\r\n" /* files have single letter ext so pip yam?????.? gets all source but no crl */ #define HELPFILE "YAMHELP.T" #define PHONES "PHONES.T" #define MYSYSTEM "#CPMPMMI,CC,HC,PA,PL\015" #define FLAVOR "Smartmodem / IF3 / Heath Z-29 YAM" #define C86 #define USQ #define BRKKEY 0x00 #define LOOPBACKNONO "\020\003\021\023\033" #define BIGYAM #define CPM #define CLKMHZ 8 #define LOOPS 1370 /* timing value in sleep; compiler & cpu dependent */ /* chosen so that sleep(n) will pause n 1/10ths for */ /* a 2Mhz processor */ #define MOMCAL 400*CLKMHZ #define SECPBLK 16 /* 2k blocks on CDR DD controller 5/8" disk */ /* ********* following string must be in UPPER case ********* */ #define DISKS "ABCDEM" /* legal disks for default selection */ #define MAXUSER 15 /* maximum user number */ /* defines for Heath/Zenith Z/H19 (or 29) terminal */ #define STATLINE /* do special status line information */ #define Z19 /* terminal type */ /* 25th line off, wrap at end of line*/ #define TERMRESET "\033y1\033x9\033v" #define TERMINIT "\033z" /* mode for replot -clear screen, no 25th, no wrap. Added Home'n'Clear. */ #define TERMREPLOT "\033E\033y1\033w" /* Modem I/O ports for Serial i/o */ #define INT3 /* Interfacer 3/4 code tied to this define */ #define DPORT MDATA #define SPORT MSTAT #define GBI4 0x10 /* Interfacer 4 base port (also data) */ #define GBI4U GBI4 + 7 /* Interfacer 4 user select port */ #define GBI4M GBI4 + 2 /* Interfacer 4 mode port (also parallel data) */ #define GBI4C GBI4 + 3 /* Interfacer 4 command port */ EXTERN int MDMU; /* modem user variable */ #define MUSER 1 /* initial value assigned to MDMU */ #define USERINIT /* so that user externals get initialized */ #define MIREADY (i4rs(MDMU)&MIMASK) /* value != 0 if char available */ #define MICHAR (i4rd(MDMU)) /* get char assuming miready */ #define MOREADY (i4rs(MDMU)&MOMASK) /* != 0 if modem ready to load next char */ #define MODOUT(x) i4sd(MDMU,x) #define MODATA Dport /* modem data output port */ #define OVRRNMASK 0x20 /* overrun error */ #define FRMMASK 0x10 /* framing error */ #define MIREADYERROR /* #define CDO i4cd() value = 0 if carrier there */ #define MIREADYMASK MIMASK /* rx character available */ #define MIERRORMASK (OVRRNMASK & FRMMASK) /* error condition framing and overrun only */ #define SMODEM /* Switches on Smartmodem 1200 should be set for Not Verbose (S2 down), ** Send Result Codes to Screen (S3 down), No Echo of Commands (S4 down) ** and Don't Auto-Answer (S5 down). All other switches as from the ** factory. Sorry, not for XYAM usage as it stands. If your system allows ** communication even if DSR is low you can also set switch 6 to allow you ** to detect loss of carrier. **/ #define SMCMD "ATX1" /* specify use of extended result code set */ #define SMATTN "+++" /* get to command mode if not already there */ #define SMHUP "ATH\r" /* onhook command - loss of DTR or long break works too */ #define SMDIAL "ATDT " /* prefix to sending the number - touchtone mode */ /* #define FLIP */ #define SMTOORG "ATD\r" /* offhook and wait for carrier in originate mode */ #define SMTOANS "ATA\r" /* offhook and turn on carrier in answer mode */ #define NRING 3 /* Number of rings before offhook in auto-ans mode */ #define POREADY bios(15,0,0) #define LPOUT(x) bdos(5,x) #define CIREADY bdos(6,0xFE) #define CICHAR bdos(6,0xFF) /* using SS1 serial port for console */ #define COREADY (inportb(CSTAT)&COMASK) #define TTYOUT(x) bios(4,x,0) /* if using IF3/4 for console- * #define IF3CON * unsigned CONU; * #define CUSER 7 * #define COREADY (i4rs(CONU)&COMASK) * #define TTYOUT(x) i4sd(CONU, x) */ /* STDIO file included here to simplify cross-compiles of cyams */ #include "stdio.h" #define TWIDTH 80 /* # of columns */ #define TLENGTH 24 /* # of lines */ #define CLEARS "\033E" /* String to clear screen on console */ #define INTOREV "\033p" /* String to switch console into reverse video */ #define OUTAREV "\033q" /* String to switch console OUT of reverse video */ #define CURSOROFF "\033x5" /* String to turn cursor off */ #define CURSORON "\033y5" /* String to turn cursor on */ #define ESC '\033' /* Standard ASCII 'escape' character */ /* * Console serial port characteristics: */ #define CSTAT 0x5d /* status port */ #define CDATA 0x5c /* data port */ #define CIMASK 0x02 /* input data ready mask */ #define COMASK 0x01 /* output data ready mask */ /* * Modem characteristics: */ #define MSTAT 0x11 /* status port */ #define MDATA 0x10 /* data port */ #define MIMASK 0x02 /* input data ready mask */ #define MOMASK 0x01 /* ready to send a character mask */ .