/* * cbinst - cbios install program for * Morrow Designs micro decision * * Lenny Edmondson * for Morrow Designs * * 1982 * * Micro decision utilities */ # include "bi.h" # define NCONTROL 6 /* number of control chars. */ # define NESCAPE 9 /* number of esc. seqs. */ /* control code translate table */ # define HOME 0x1e # define CLRSCREEN 0x1a # define CURLEFT '\b' # define CURRIGHT 0xc # define CURUP 0xb # define CURDOWN 0xa /* escape sequence translate table */ # define HIOFF 0x29 # define HION 0x28 # define CLEAR '*' # define CLREOS 'Y' # define CLREOL 'T' # define INSLINE 'E' # define INSCHAR 'Q' # define DELLINE 'R' # define DELCHAR 'W' # define NSPECS 6 # define HIBYTE 0xff00 # define COLWIDTH 26 # define EXIT 0 # define GETC 1 # define PUTC 2 # define WIDTH 80 # define NTERM (sizeof terminal / sizeof *terminal) # define NCOL 3 # define BIOSSIZE 2650 # define BIOSREC 20 # define RECSIZE 128 # define BIOSTRACK 1 # define BIOSSTART 13 /* first rec. of BIOS */ # define BIOSEND (BIOSSTART + BIOSREC) # define DCAOFFSET 0x50 # define NORMAL 0 # define FLIPPED ~0 # define BYTE 'b' # define SECTOR 's' # define GETDISK 25 # define SETDISK 14 # define SETDRV 0x1b # define SECTRAN 0x30 # define SETTRK 0x1e # define SETSEC 0x21 # define SETDMA 0x24 # define BIORED 0x27 # define BIOWRT 0x2a # define HIGHBIT 0x8000 # define NOFILE 0xe5 # define END 0xff /* indicates the end of the map */ # define BADUSER 15 # define ATT (1 << 7) /* the attribute byte */ # define RECSIZE 128 # define K 1024 # define K16 (K * 16) # define EPR 4 # define NPOINT 8 /* * values for "code" in the xlt structure * */ # define TRANTAB 0xfe /* This is the char translate tab. */ # define ENDTAB 0xff /* This is the end of the table */ char *one = "You have a Level I terminal. All programs supplied by Morrow\n\ Designs are pre-installed for your terminal. Any programs\n\ not supplied by Morrow Designs must be installed for an\n\ ADM-3A terminal.\n\ ", *two = "You have a Level II terminal. All programs supplied by\n\ Morrow Designs are pre-installed for your terminal. Any\n\ programs not supplied by Morrow Designs must be installed\n\ for a SOROC IQ-120 terminal.\n\ ", *three = "You have a Level III terminal. All programs supplied by\n\ Morrow Designs are pre-installed for your terminal. Any\n\ programs not supplied by Morrow Designs must be installed\n\ for an ADM-31 terminal.\n\ ", *sep1 = " The CP/M SYSTEM diskette will not be installed for your terminal.\n\ You must install some of the application programs (i.e. WordStar and\n\ LogiCalc) yourself.\n\ In addition, the Micro-Menus will not appear as they should on the\n", *sep2 = "screen.\n\ Before confirming this selection, check to see if your terminal can\n\ emulate any of those on the selection Menu. If it can, you will find it\n\ more convenient to use your system.\n\n"; /* * if you want put a NULL in a string, use an FF, it will be converted for you */ struct terminal terminal[] { { "Morrow Designs 20", /* name */ three, 3, /* dca */ { "\33=", /* start */ "" /* mid */ "", /* end */ 0, /* esclevel */ 0, /* offset 1 */ 0, /* offset 2 */ FLIPPED, /* order */ }, /* control */ { HOME, "", CLRSCREEN, "", CURLEFT, "", CURRIGHT, "", CURUP, "", CURDOWN, "", }, /* escape */ { INSLINE, "", INSCHAR, "", DELLINE, "", DELCHAR, "", HION, "", HIOFF, "", CLEAR, "\32", CLREOS, "", CLREOL, "", }, }, { "ADM 3A or 5", /* name */ one, 1, /* dca */ { "\33=", /* start */ "" /* mid */ "", /* end */ 0, /* esclevel */ 0, /* offset 1 */ 0, /* offset 2 */ NORMAL, /* order */ }, /* control */ { HOME, "", CLRSCREEN, "", CURLEFT, "", CURRIGHT, "", CURUP, "", CURDOWN, "", }, /* escape */ { INSLINE, "\377", INSCHAR, "\377", DELLINE, "\377", DELCHAR, "\377", HION, "\377", HIOFF, "\377", CLEAR, "\32", CLREOS, "\377", CLREOL, "\377", }, }, { "ADM 22", /* name */ three, 3, /* dca */ { "\33=", /* start */ "" /* mid */ "", /* end */ 0, /* esclevel */ 0, /* offset 1 */ 0, /* offset 2 */ NORMAL, /* order */ }, /* control */ { HOME, "", CLRSCREEN, "", CURLEFT, "", CURRIGHT, "", CURUP, "", CURDOWN, "", }, /* escape */ { INSLINE, "", INSCHAR, "", DELLINE, "", DELCHAR, "", HION, "", HIOFF, "", CLEAR, "\32", CLREOS, "", CLREOL, "", }, }, { "ADM 31", /* name */ three, 3, /* dca */ { "\33=", /* start */ "" /* mid */ "", /* end */ 0, /* esclevel */ 0, /* offset 1 */ 0, /* offset 2 */ NORMAL, /* order */ }, /* control */ { HOME, "", CLRSCREEN, "", CURLEFT, "", CURRIGHT, "", CURUP, "", CURDOWN, "", }, /* escape */ { INSLINE, "", INSCHAR, "", DELLINE, "", DELCHAR, "", HION, "", HIOFF, "", CLEAR, "\32", CLREOS, "", CLREOL, "", }, }, { "Heath H19", /* name */ one, 1, /* dca */ { "\33Y", /* start */ "" /* mid */ "", /* end */ 0, /* esclevel */ 0, /* offset 1 */ 0, /* offset 2 */ NORMAL, /* order */ }, /* control */ { HOME, "\33H", CLRSCREEN, "\33E", CURLEFT, "", CURRIGHT, "", CURUP, "", CURDOWN, "", }, /* escape */ { INSLINE, "\377", INSCHAR, "\377", DELLINE, "\377", DELCHAR, "\377", HION, "\377", HIOFF, "\377", CLEAR, "\33E", CLREOS, "\377", CLREOL, "\377", }, }, { "Visual 200", /* name */ two, 2, /* dca */ { "\33Y", /* start */ "" /* mid */ "", /* end */ 0, /* esclevel */ 0, /* offset 1 */ 0, /* offset 2 */ NORMAL, /* order */ }, /* control */ { HOME, "\1", CLRSCREEN, "\f", CURLEFT, "\b", CURRIGHT, "\r", CURUP, "\32", CURDOWN, "\n", }, /* escape */ { INSLINE, "\33L", INSCHAR, "\377", DELLINE, "\33M", DELCHAR, "\33O", HION, "\0334", /* ESC 4 */ HIOFF, "\0333", /* ESC 3 */ CLEAR, "\f", CLREOS, "\27", CLREOL, "\26", }, }, { "Soroc 120", /* name */ two, 2, /* dca */ { "\33=", /* start */ "" /* mid */ "", /* end */ 0, /* esclevel */ 0, /* offset 1 */ 0, /* offset 2 */ NORMAL, /* order */ }, /* control */ { HOME, "", CLRSCREB4FRJ@0RC,R(^-B9O)28*'28*[#N6ZS" DAMCXIV7VI*MI< ' 0"^-B9O)R8*K2;*/R(C,B?R@ER7*S7*+#8*KR8*+R9*'R9 DBM*K39*;I.FI\(>*-T *K2G7*S7*[C R FRA*M*=>I,GIL/"(#:*/L* DDM=J28*7N.8I\37>4Q-W2NA+27*K"")[W37>4>F'@R]T9 @ PP U9 A 0>R4>F3@RGUI*(D< 0 0"V4PP@VI*(D< ' 0"^-B9 DFMO)26*K"")'0" D@?RLER7*#7*K2;*'0" D@.=ILEZXERCXIVJVI*(D< 0 0" DGMV8@*(DL?V#X=#+KFA\ER^-BM"C>GA,FRZ4FR6JC9*/BG:C>GJDFREK27*7N. DHM7I\37>4QJLEREK26*7N*KI