OPENFILE 001 SUBROUTINE (DICT,NAME,FV) 002 *OPEN A FILE;FIND LOCKS 003 *2/3/86 JF3 004 IF DICT="L" THEN 005 DICT="DICT";GOSUB 4;IF FLAG THEN DICT=-1;GO 2 006 CALL READITEM(0,"DICT ":NAME,FV,0,"F/LOCK",ITEM,FLAG) 007 IF FLAG AND ITEM<1>="A" THEN LOCK.ATTR=ITEM<2> ELSE LOCK.ATTR=0 008 DICT="" 009 END ELSE LOCK.ATTR=0 010 GOSUB 4;IF FLAG THEN DICT=-1 ELSE DICT=LOCK.ATTR 011 2 RETURN;*TO CALLER 012 4 FLAG=0;OPEN DICT,NAME TO FV ELSE 013 OPEN "","ERRFILE" TO FV ELSE PRINT "NO ERRFILE!";INPUT NAME;STOP 014 IF DICT#"" THEN DICT=DICT:" " 015 CALL PERR(0,0,FV,19,DICT:NAME);FLAG=1 016 END;RETURN;END 017 * * * * * Interface Info * * * * * 018 * 019 * DICT NAME FV 020 * ____ ____ __ 021 *Entry: nul 022 * L filename 023 * DICT 024 * 025 *Exit: 026 * IF L lock-attr#:=open w/locking 027 * -1:= no open, error 028 * else 029 * 030 * nul| -1 031 * 0 BXTD 001 SUBROUTINE (N) 002 *CONVERT HEX STRING TO DECIMAL 003 *5/22/84 JF3 004 d=0;i=1;LOOP c=N[i,1] UNTIL c="" DO 005 d=d*16;IF c>"@" THEN c=SEQ(c)-55 006 d=d+c 007 i=i+1;REPEAT;N=d;RETURN 008 * * * * * Interface Info * * * * * 009 *Entry: N := Hex number as a char string 010 * 011 *Exit: N := equivalent number (decimal) 012 END PERR 001 SUBROUTINE (C,R,F,ID,RESP) 002 *GENERAL ERROR MESSAGE SUBROUTINE 003 *10/11/85 JF3 004 EQU VM TO CHAR(253),PARAM TO RESP,CRTFUNC TO "U51A5" 005 PRINTER.WAS.ON=SYSTEM(1);PRINTER OFF;*SAVE PRINTER ON/OFF STATUS 006 CALL GTRMCHR(ITEM);EOL=ITEM<1,3> 007 IF R OR C THEN OMSG=@(C,R):EOL ELSE OMSG="" 008 READV MSG FROM F,ID,2 ELSE MSG="NO '":ID:"' IN ERRFILE!" 009 IF NUM(ID[1,1]) THEN OMSG=OMSG:CHAR(7) 010 I=1;J=1;LOOP SEG=FIELD(MSG,VM,I) UNTIL COL2()=0 DO 011 IF SEG="" THEN SEG=PARAM<1,J>;J=J+1 012 IF SEG[1,1]='@' THEN 013 SEG=OCONV(SEG<1,1,1>,CRTFUNC):SEG<1,1,2> 014 END;OMSG=OMSG:SEG 015 I=I+1;REPEAT;PRINT OMSG: 016 OMSG=ID[1,1];IF NUM(OMSG) OR OMSG="P" THEN 017 INPUT RESP:;IF R OR C THEN PRINT @(C,R):EOL: 018 END;IF PRINTER.WAS.ON THEN PRINTER ON 019 RETURN;END GTRMCHR 001 SUBROUTINE (chrstr) 002 *SHARE TERMINAL CHARACTERISTICS STRING 003 *6/19/87 JF3 004 *]OPENFILE]PERR 005 EQU ERRFILE TO chrstr,VM TO CHAR(253) 006 chrstr=@(-1):VM:@(-3):VM:@(-4) 007 chrstr<4>=SYSTEM(2):",":SYSTEM(3) 008 IF chrstr="" THEN 009 CALL OPENFILE("","ERRFILE",ERRFILE) 010 CALL PERR(0,0,ERRFILE,"A1",0) 011 END;RETURN 012 * * * * * Interface info * * * * * 013 *Entry: none 014 * 015 *Exit: chrstr := dynamic array of CRT control codes 016 * <1,1> = clear screen and home 017 * <1,2> = erase to end of page 018 * <1,3> = erase to end of line 019 * <4> = arg string for TERM verb at TCL 020 END