.NLIST ; .TITLE RNPRE ; .IDENT /M3.0X/ ; RUNOFF PREFIX FILE ; ; MODIFIED BY ; ; C. H. Spalding, Unimation, Dec. '82 ; ; MODIFICATIONS ; ; chs01 Start header at line #1, add blank line after header ; chs02 Justify page number to permanent right margin ; chs03 Reduce blank lines from CHAPTER, APPENDIX, & INDEX ; chs04 Add ALTERNATING HEADER ; chs06 Accept space character after quoted space ; chs07 Double space after ; chs08 Single space after semicolon ; chs09 Add ability to specify preferred hyphenation ; chs10 Change default header type to "MIXED" ; chs11 Add header type "BLANK" ; chs12 Add EVEN and ODD ; chs14 Add ALTERNATING TITLE ; chs15 No "BLANK 3" from "HL" if after "CH" or "AX" ; chs18 Hyphenate at existing hyphens ; chs19 Add AUTOSUBTITLE ; chs20 Add optional-text commands (added TXTF flag) ; chs23 Add RIGHT JUSTIFY ; chs24 Fix skip at bottom of page ; chs25 Allow hyphenation in fill-only mode ; chs26 Allow hyphenation flag to preceed non-alpha character ; chs28b Add "TEST PAGE" before each index letter group ; chs29 Make missing numeric arg. not default to 0 ; chs30 Allow negative argument for SKIP & BLANK ; chs32 Allow PARAGRAPH in footnotes; reset line spacing ; chs33 Misc. fixes to footnote processing ; chs34 Changes to PARAGRAPH processing ; chs35 Misc. changes to tab processing ; chs36 Expand scope of STANDARD ; chs37 Fix FIGURE to work as claimed; added queue ; chs38 Don't output blank page at end of output ; chs39 Add LAYOUT and related switches ; chs40 Expand HEADER ; chs41 Add control of blank lines between index letter groups ; chs42 Distinguish between "ILLEGAL COMMAND" and "BAD PARAMETER" ; chs43 Add QUOTE CHARACTER ; chs44 Add "!" comment command and flag ; chs45 Add optional-text command-line switches ; chs46 Change ALTERNATING HEADER to ALTERNATE ; chs47 Allow consecutive subpages ; chs48 Add fixes for chapter numbers > 127 (commented out) ; chs49 Allow multiple input files & appending to output ; chs50 Have task extend itself when index/footnote buffer full ; chs51 Add ENTRY & subindexing ; chs52b Don't exceed right margin with page numbers in index ; chs53 Add orphan control to TEST PAGE ; chs54 Rework footnote processing ; chs55 Fix duplicate output of blank lines in autoparagraph mode ; chs56 Add PAGE NAME ; chs57 Changes to NOTE ; chs58 Add tests for unreasonable command parameters ; chs59 Add limit on chapters output ; chs60 Make syntax for command arguments common ; chs61 Changes to LITERAL processing ; chs63 Control blank lines after END LIST & END NOTE ; chs65 Ignore spec. chars. while ordering index ; chs66 Check validity of /UL value ; chs67 Expand error checks of margin parameters ; chs69 Consider line spacing in TEST PAGE ; chs70 Add TEST LINES ; chs71 Add orphan control to PARAGRAPH ; chs72 Make sure empty output file not left around ; chs73 Provide for unnumbered lists ; chs74 Allow relative/default header level argument ; chs75 Automatically do DO INDEX at end of file ; chs76 Have JUSTIFY always turn on FILL ; chs77 Fix/eliminate FIRST TITLE ; chs78 Add text queue & BLOCK ; revamp footnote processing ; chs80 Add text argument to FIGURE ; ASSEMBLY SWITCHES: H$$PHN =1 ;INCLUDE HYPHENATION? (0 = NO) ;chs RSTS =0 ;RUNNING ON RSTS/E? (0 = NO) ;chs RSX11M =1 ;RUNNING UNDER RSX-11M? (0 = NO) ;chs .IIF NZ RSTS, .IIF NZ RSX11M, .ERROR ; RSX11M AND RSTS ARE EXCLUSIVE! BMPHDR =1 ;BUMP HEADER LINES UP ONE LINE? (0 = NO) ;chs01 HPRMRG =1 ;ALIGN PAGE NO. W/ PERM. RT. MARGIN? (0 = NO) ;chs02 BLSW =1 ;INCLUDE /BL SWITCH? (0 = NO) ;chs03 ALTHDR =1 ;INCLUDE ALT. HEADER (SEE CHS46)? (0 = NO) ;chs04 QTSPSP =1 ;TREAT "# " SAME AS " #"? (0 = NO) ;chs06 PDPAR =1 ;DOUBLE SPACE AFTER ? (0 = NO) ;chs07 SEMISS =1 ;SINGLE SPACE AFTER SEMICOLON? (0 = NO) ;chs08 PRFHYP =1 ;INCLUDE PREFERRED-HYPHEN FEATURE? (0 = NO) ;chs09 MXDHDR =1 ;DEFAULT HEADER TYPE TO "MIXED"? (0 => "UPPER") ;chs10 BLNKHD =1 ;ALLOW HEADER TYPE "BLANK"? (0 = NO) ;chs11 EVNODD =1 ;INCLUDE "EVEN" & "ODD" COMMANDS? (0 = NO) ;chs12 ALTTIT =1&ALTHDR ;INCLUDE ALTERNATING-TITLE COMMAND? (0 = NO) ;chs14 HLSKP =1 ;"HL" => NO BLANKS AFTER "CH"? (0 = NO) ;chs15 EXSTHY =1 ;HYPHENATE AT EXISTING HYPHENS? (0 = NO) ;chs18 ATOSUB =1 ;INCLUDE AUTOSUBTITLE COMMAND? (0 = NO) ;chs19 OPTTXT =32. ;MAXIMUM NUMBER OF TEXT OPTIONS (0 = NONE) ;chs20 OPTXSW =1 ;INCLUDE /IN & /EX SWITCHES? (0 = NO) ;chs45 RTJUST =1 ;INCLUDE RIGHT-JUSTIFY COMMAND? (0 = NO) ;chs23 SKPFIX =1 ;HAVE SKIP SET $PGPSW IF PAGE DUE? (0 = NO) ;chs24 FILLHY =1 ;HYPHENATE WHEN FILL-ONLY MODE ON? (0 = NO) ;chs25 GLBLFH =1 ;ALLOW "=" FLAG TO PRECEED NON-ALPHA? (0 = NO) ;chs26 IDXTP =2 ;DO A "TP " BEFORE INDEX GRP? (0 = NO) ;chs28b NOPARM =1 ;MISSING # ARG. NOT DEFAULT TO 0? (0 = NO) ;chs29 SKPNEG =1 ;ALLOW NEG. ARG. FOR SKIP & BLANK? (0 = NO) ;chs30 PARFN =1 ;ALLOW "PARAGRAPH" IN FOOTNOTES? (0 = NO) ;chs32 FNFIX =1 ;MISC. FIXES TO FOOTNOTE PROCESSING? (0 = NO) ;chs33 DEFPTP =1 ;USE DEFAULT PARAGRAPH TEST-PAGE? (0 = NO) ;chs34a PARORD =1 ;SKIP LINES BEFORE TEST PAGE IN PARA.? (0 = NO) ;chs34b RELTAB =1 ;ALLOW RELATIVE TAB STOPS? (0 = NO) ;chs35c BIGSTD =1 ;EXPAND SCOPE OF "STANDARD"? (0 = NO) ;chs36 FIGFIX =16. ;MAX. NUMBER OF PENDING FIGURES (0 = OLD CODE) ;chs37 LSTPG =0 ;PUT BLANK PAGE AT END OF OUTPUT? (0 = NO) ;chs38 LAYOUT =1 ;INCLUDE "LAYOUT" COMMAND? (0 = NO) ;chs39 LAYSW =1&LAYOUT ;INCLUDE SWITCHES FOR "LAYOUT" PARMS? (0 = NO) ;chs39a EXTHDR =1 ;EXPAND "HEADER" COMMAND? (0 = NO) ;chs40 XHDRSW =1&EXTHDR ;INCLUDE SWITCHES FOR "HEADER" PARMS? (0 = NO) ;chs40a XSPNG =1 ;ADD CONTROL OF BLANK LINES IN INDEX? (0 = NO) ;chs41 BADPRM =1 ;ADD "BAD PARAMETER" ERROR MESSAGE? (0 = NO) ;chs42 QTCHAR =1 ;ADD "QUOTE CHARACTER" COMMAND? (0 = NO) ;chs43 EXCMNT =1 ;ADD "!" COMMENT COMMAND AND FLAG? (0 = NO) ;chs44 ALTSHF =1&ALTHDR&LAYOUT;INCLUDE ALTERNATE-PAGE SHIFT? (0 = NO) ;chs46 SBPFIX =1 ;ALLOW CONSECUTIVE SUBPAGES? (0 = NO) ;chs47 NUMFIX =1 ;HAVE "NUMBER" TAKE ACTUAL PAGE #? (0 = N0) ;chs48a NUMREL =1 ;ALLOW RELATIVE ARGUMENT TO "NUMBER"? (0 = NO) ;chs48b MULTIN =1 ;ALLOW MULTIPLE INPUT FILES? (0 = NO) ;chs49 APNDSW =1 ;ALLOW /AP ON OUTPUT FILE SPEC? (0 = NO) ;chs49a SAVPS =1&MULTIN ;SAVE /PS VALUES UNLESS SW USED? (0 = NO) ;chs49b EXTEND =1&RSX11M ;EXPAND TASK IF INDEX/FOOTNOTE OVRFLO? (0 = NO) ;chs50 EXTND2 =1&EXTEND ;EXPAND INITIALLY TO EVEN BOUNDARY? (0 = NO) ;chs50a XENTRY =1 ;INCLUDE "ENTRY" COMMAND? (0 = NO) ;chs51a SUBIDX =1&XENTRY ;INCLUDE SUBINDEXING? (0 = NO) ;chs51b IDXRM =1 ;CHECK RIGHT MARGIN IN INDEX? (0 = NO) ;chs52b EXPTP =1 ;ADD ORPHAN CONTROL TO "TEST PAGE"? (0 = NO) ;chs53 NEWFTN =1 ;USE REWORKED FOOTNOTE PROCESSING? (0 = NO) ;chs54a AUTOFN =1&NEWFTN ;INCLUDE AUTOMATIC FOOTNOTE LINE? (0 = NO) ;chs54b AUTFIX =1 ;STOP DUPLICATE OUTPUT OF BLANK LINES? (0 = NO) ;chs55 PAGNAM =1 ;INCLUDE "PAGE NAME" COMMAND? (0 = NO) ;chs56 NOTEMR =1 ;ADD ARG. TO "NOTE" FOR INDENTS? (0 = NO) ;chs57a NOTETP =1 ;IN "NOTE," SKIP & THEN TEST? (0 = NO) ;chs57b PRMCHK =1 ;ADD TESTS FOR RIDICULOUS PARAMETERS? (0 = NO) ;chs58 CHSW =1 ;ADD /CH SW TO LIMIT CHAPTERS OUTPUT? (0 = NO) ;chs59 GENSEP =1 ;COMMON SYNTAX FOR COMMAND ARGUMENTS? (0 = NO) ;chs60 LITSPC =1 ;SET SPACING TO 1 DURING "LITERAL"? (0 = NO) ;chs61a LITEND =0&LITSPC ;END LIT. => BLANK LINES? (0 = NO) ;chs61a LITMRG =1 ;SET RT. MARGIN WIDE DURING "LITERAL"? (0 = NO) ;chs61b LITMSG =1&LITMRG ;WARNING FOR LONG LINES IN LITERALS? (0 = NO) ;chs61c ENDSKP =1 ;ADD ARG TO "EN" & "ELS" FOR SKIP? (0 = NO) ;chs63 IDXPUN =0 ;IGNORE SPEC. CHARS. IN INDEX ORDER? (0 = NO) ;chs65 IDXSPC =1 ;INCLUDE SPACES IN INDEX ORDERING? (0 = NO) ;chs65 CKULSW =1 ;CHECK VALIDITY OF /UL VALUE? (0 = NO) ;chs66 MARCHK =1 ;USE EXPANDED MARGIN PARM. CHECKS? (0 = NO) ;chs67 XTSTPG =1 ;CONSIDER SPACING IN "TEST PAGE"? (0 = NO) ;chs69 TSTLIN =1 ;INCLUDE "TEST LINES" COMMAND? (0 = NO) ;chs70 XPARTP =1&EXPTP ;ADD ORPHAN CONTROL TO "PARAGRAPH"? (0 = NO) ;chs71 DELOF =1&RSX11M ;DEL. OUTPUT IF 1ST INPUT SPEC BAD? (0 = NO) ;chs72 LISTCH =1 ;INCLUDE FEATURE OF UNNUMBERED LISTS? (0 = NO) ;chs73 RELHDL =1 ;ALLOW RELATIVE HEADER LEVEL? (0 = NO) ;chs74 AUTODX =1 ;INCLUDE AUTOMATIC "DO INDEX"? (0 = NO) ;chs75 JUSFIL =1 ;"JUSTIFY" ALWAYS TURN ON "FILL"? (0 = NO) ;chs76 FIRTIT =0 ;INCLUDE "FIRST TITLE"? (0 = NO) ;chs77 TXTQUE =1 ;INCLUDE TEXT QUEUE? (0 = NO) ;chs78 BLKCMD =1&TXTQUE ;INCLUDE "BLOCK" COMMAND? (0 = NO) ;chs78a .IIF NZ BLKCMD, FIGFIX =0 ;PROCESS FIGURES WITH QUEUE ;chs78b FIGCAP =1 ;INCLUDE TEXT ARGUMENT ON "FIGURE"? (0 = NO) ;chs80 ; MACRO DEFINITIONS ; ; BIT TEST EQUAL AND BRANCH ; .MACRO BITEQ ARG1,ARG2,BDST BIT ARG1,ARG2 BEQ BDST .ENDM ; ; BIT TEST NOT EQUAL AND BRANCH ; .MACRO BITNE ARG1,ARG2,BDST BIT ARG1,ARG2 BNE BDST .ENDM ; ; BIT TEST EQUAL BYTE AND BRANCH ; .MACRO BITEQB ARG1,ARG2,BDST BITB ARG1,ARG2 BEQ BDST .ENDM ; ; BIT TEST NOT EQUAL BYTE AND BRANCH ; .MACRO BITNEB ARG1,ARG2,BDST BITB ARG1,ARG2 BNE BDST .ENDM ; ; COMPARE EQUAL AND BRANCH ; .MACRO CMPEQ ARG1,ARG2,BDST CMP ARG1,ARG2 BEQ BDST .ENDM ; ; COMPARE NOT EQUAL AND BRANCH ; .MACRO CMPNE ARG1,ARG2,BDST CMP ARG1,ARG2 BNE BDST .ENDM ; ; COMPARE EQUAL BYTE AND BRANCH ; .MACRO CMPEQB ARG1,ARG2,BDST CMPB ARG1,ARG2 BEQ BDST .ENDM ; ; COMPARE NOT EQUAL BYTE AND BRANCH ; .MACRO CMPNEB ARG1,ARG2,BDST CMPB ARG1,ARG2 BNE BDST .ENDM ; ; TEST EQUAL AND BRANCH ; .MACRO TSTEQ ARG1,BDST TST ARG1 BEQ BDST .ENDM ; ; TEST NOT EQUAL AND BRANCH ; .MACRO TSTNE ARG1,BDST TST ARG1 BNE BDST .ENDM ; ; TEST EQUAL BYTE AND BRANCH ; .MACRO TSTEQB ARG1,BDST TSTB ARG1 BEQ BDST .ENDM ; ; TEST NOT EQUAL BYTE AND BRANCH ; .MACRO TSTNEB ARG1,BDST TSTB ARG1 BNE BDST .ENDM .LIST