11673Smckusick /* Copyright (c) 1979 Regents of the University of California */ 21673Smckusick 3*7495Smckusick static char sccsid[] = "@(#)PCSTART.c 1.7 07/23/82"; 41673Smckusick 55676Smckusic #include <signal.h> 61673Smckusick #include "h00vars.h" 75676Smckusic #include "libpc.h" 81673Smckusick 91673Smckusick /* 101673Smckusick * program variables 111673Smckusick */ 121673Smckusick struct display _disply[MAXLVL]; 131673Smckusick int _argc; 141673Smckusick char **_argv; 151673Smckusick long _stlim = 500000; 161673Smckusick long _stcnt = 0; 172180Smckusic long _seed = 1; 183016Smckusic #ifdef VAX 191673Smckusick char *_minptr = (char *)0x7fffffff; 203016Smckusic #else 213016Smckusic char *_minptr = (char *)0xffff; 223016Smckusic #endif VAX 231673Smckusick char *_maxptr = (char *)0; 241673Smckusick 251673Smckusick /* 261673Smckusick * file record variables 271673Smckusick */ 281673Smckusick long _filefre = PREDEF; 291673Smckusick struct iorechd _fchain = { 301673Smckusick 0, 0, 0, 0, /* only use fchain field */ 311673Smckusick INPUT /* fchain */ 321673Smckusick }; 331673Smckusick struct iorec *_actfile[MAXFILES] = { 341673Smckusick INPUT, 351673Smckusick OUTPUT, 361673Smckusick ERR 371673Smckusick }; 381673Smckusick 391673Smckusick /* 401673Smckusick * standard files 411673Smckusick */ 421673Smckusick char _inwin, _outwin, _errwin; 431673Smckusick struct iorechd input = { 441673Smckusick &_inwin, /* fileptr */ 451673Smckusick 0, /* lcount */ 461673Smckusick 0x7fffffff, /* llimit */ 471673Smckusick &_iob[0], /* fbuf */ 481673Smckusick OUTPUT, /* fchain */ 491673Smckusick STDLVL, /* flev */ 501673Smckusick "standard input", /* pfname */ 51*7495Smckusick FTEXT|FREAD|SYNC|EOLN, /* funit */ 521673Smckusick 0, /* fblk */ 531673Smckusick 1 /* fsize */ 541673Smckusick }; 551673Smckusick struct iorechd output = { 561673Smckusick &_outwin, /* fileptr */ 571673Smckusick 0, /* lcount */ 581673Smckusick 0x7fffffff, /* llimit */ 591673Smckusick &_iob[1], /* fbuf */ 601673Smckusick ERR, /* fchain */ 611673Smckusick STDLVL, /* flev */ 621673Smckusick "standard output", /* pfname */ 631673Smckusick FTEXT | FWRITE | EOFF, /* funit */ 641673Smckusick 1, /* fblk */ 651673Smckusick 1 /* fsize */ 661673Smckusick }; 671673Smckusick struct iorechd _err = { 681673Smckusick &_errwin, /* fileptr */ 691673Smckusick 0, /* lcount */ 701673Smckusick 0x7fffffff, /* llimit */ 711673Smckusick &_iob[2], /* fbuf */ 721673Smckusick FILNIL, /* fchain */ 731673Smckusick STDLVL, /* flev */ 741673Smckusick "Message file", /* pfname */ 751673Smckusick FTEXT | FWRITE | EOFF, /* funit */ 761673Smckusick 2, /* fblk */ 771673Smckusick 1 /* fsize */ 781673Smckusick }; 791673Smckusick 805676Smckusic PCSTART(mode) 815676Smckusic int mode; 821673Smckusick { 831673Smckusick /* 841673Smckusick * necessary only on systems which do not initialize 851673Smckusick * memory to zero 861673Smckusick */ 871673Smckusick 881673Smckusick struct iorec **ip; 891673Smckusick 905676Smckusic /* 915676Smckusic * if running with runtime tests enabled, give more 925676Smckusic * coherent error messages for FPEs 935676Smckusic */ 945676Smckusic if (mode) { 955676Smckusic signal(SIGFPE, EXCEPT); 965676Smckusic } 971673Smckusick for (ip = &_actfile[3]; ip < &_actfile[MAXFILES]; *ip++ = FILNIL); 981673Smckusick } 99