SPL,L,O,M ! NAME: IF.. ! SOURCE: 92070-18020 ! RELOC: 92070-16020 ! PGMR: A.M.G. ! ! *************************************************************** ! * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979. ALL RIGHTS * ! * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * ! * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT* ! * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * ! *************************************************************** ! NAME IF..(8) " 92070-1X020 REV.1941 790803" ! ! EXTERNAL SUBROUTINES LET IER. BE SUBROUTINE,EXTERNAL,DIRECT LET POSNT BE SUBROUTINE,EXTERNAL LET READF BE SUBROUTINE,EXTERNAL ! EXTERNAL INTEGERS LET .E.R BE INTEGER,EXTERNAL LET C.BUF BE REAL,EXTERNAL LET CAD. BE INTEGER,EXTERNAL LET CAM.I BE INTEGER,EXTERNAL LET INT. BE INTEGER,EXTERNAL LET NO.RD BE INTEGER,EXTERNAL ! INTERNAL VARIBLES LET ETAB BE CONSTANT (43K) LET LTAB BE CONSTANT (31K) LET GTAB BE CONSTANT (26K) LET FTR BE INTEGER (2) LET DIF,NCOM,P1,P2,MASK,RTABP,REL BE INTEGER LET RTAB BE INTEGER (7) INITIALIZE FTR TO "TR",0 INITIALIZE RTAB TO "LEGEGTLTNEEQ",0 ! ! IF..: SUBROUTINE(N,PLIST,ERR) GLOBAL LET N,PLIST,ERR BE INTEGER IF INT. THEN [ERR _ 10; RETURN] !IF TTY, REJECT REQ. NCOM _ [P2 _ [REL _ [P1 _ \SET UP POINTERS. @PLIST - 1] + 6] + 2] + 6 FOR I _ 1 TO 4 DO [ \COMPARE P1 AND P2. IF [DIF _ $[P1 _ P1 + 1] \ - $[P2 _ P2 + 1]] THEN \ GOTO COMP] COMP: DIF _ [IF DIF < 0 THEN \GET APPROPRIATE LTAB, ELSE [IF DIF THEN GTAB, \MASK WORD. ELSE ETAB]] RTABP _ @REL; MASK _ 1 CLOOP: IFNOT $[RTABP _ RTABP + 1] \MATCH RELATION THEN [ERR _ 56; RETURN] !USED IN COMMAND. IFNOT $RTABP = $REL THEN [ \ MASK _ MASK <- 1; GOTO CLOOP] IFNOT (MASK AND DIF) THEN RETURN IF $(NCOM-1) = 3 THEN[ERR_ 56; RETURN] !IF ASCII, ERROR IFNOT $NCOM THEN $NCOM _ 1 !DEFAULT SKIP CALL POSNT(CAM.I,.E.R,$NCOM) !SKIP INDICATED IF .E.R= -12 THEN [ \EOF OR SOF ERROR IF $NCOM<0 THEN RETURN; \ N,$(@PLIST+1)_0; \ CAD.,NO.RD _ 1 ; \FORCE XFER STACK BACK RETURN ] IER. RETURN END END END$