11673Smckusick /* Copyright (c) 1979 Regents of the University of California */ 21673Smckusick 3*10231Smckusick static char sccsid[] = "@(#)PCSTART.c 1.8 01/10/83"; 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; 18*10231Smckusick #ifdef ADDR32 191673Smckusick char *_minptr = (char *)0x7fffffff; 20*10231Smckusick #endif ADDR32 21*10231Smckusick #ifdef ADDR16 223016Smckusic char *_minptr = (char *)0xffff; 23*10231Smckusick #endif ADDR16 241673Smckusick char *_maxptr = (char *)0; 251673Smckusick 261673Smckusick /* 271673Smckusick * file record variables 281673Smckusick */ 291673Smckusick long _filefre = PREDEF; 301673Smckusick struct iorechd _fchain = { 311673Smckusick 0, 0, 0, 0, /* only use fchain field */ 321673Smckusick INPUT /* fchain */ 331673Smckusick }; 341673Smckusick struct iorec *_actfile[MAXFILES] = { 351673Smckusick INPUT, 361673Smckusick OUTPUT, 371673Smckusick ERR 381673Smckusick }; 391673Smckusick 401673Smckusick /* 411673Smckusick * standard files 421673Smckusick */ 431673Smckusick char _inwin, _outwin, _errwin; 441673Smckusick struct iorechd input = { 451673Smckusick &_inwin, /* fileptr */ 461673Smckusick 0, /* lcount */ 471673Smckusick 0x7fffffff, /* llimit */ 481673Smckusick &_iob[0], /* fbuf */ 491673Smckusick OUTPUT, /* fchain */ 501673Smckusick STDLVL, /* flev */ 511673Smckusick "standard input", /* pfname */ 527495Smckusick FTEXT|FREAD|SYNC|EOLN, /* funit */ 531673Smckusick 0, /* fblk */ 541673Smckusick 1 /* fsize */ 551673Smckusick }; 561673Smckusick struct iorechd output = { 571673Smckusick &_outwin, /* fileptr */ 581673Smckusick 0, /* lcount */ 591673Smckusick 0x7fffffff, /* llimit */ 601673Smckusick &_iob[1], /* fbuf */ 611673Smckusick ERR, /* fchain */ 621673Smckusick STDLVL, /* flev */ 631673Smckusick "standard output", /* pfname */ 641673Smckusick FTEXT | FWRITE | EOFF, /* funit */ 651673Smckusick 1, /* fblk */ 661673Smckusick 1 /* fsize */ 671673Smckusick }; 681673Smckusick struct iorechd _err = { 691673Smckusick &_errwin, /* fileptr */ 701673Smckusick 0, /* lcount */ 711673Smckusick 0x7fffffff, /* llimit */ 721673Smckusick &_iob[2], /* fbuf */ 731673Smckusick FILNIL, /* fchain */ 741673Smckusick STDLVL, /* flev */ 751673Smckusick "Message file", /* pfname */ 761673Smckusick FTEXT | FWRITE | EOFF, /* funit */ 771673Smckusick 2, /* fblk */ 781673Smckusick 1 /* fsize */ 791673Smckusick }; 801673Smckusick 815676Smckusic PCSTART(mode) 825676Smckusic int mode; 831673Smckusick { 841673Smckusick /* 851673Smckusick * necessary only on systems which do not initialize 861673Smckusick * memory to zero 871673Smckusick */ 881673Smckusick 891673Smckusick struct iorec **ip; 901673Smckusick 915676Smckusic /* 925676Smckusic * if running with runtime tests enabled, give more 935676Smckusic * coherent error messages for FPEs 945676Smckusic */ 955676Smckusic if (mode) { 965676Smckusic signal(SIGFPE, EXCEPT); 975676Smckusic } 981673Smckusick for (ip = &_actfile[3]; ip < &_actfile[MAXFILES]; *ip++ = FILNIL); 991673Smckusick } 100