.TITLE DATA .IDENT /M3.0X/ ; RUNOFF GLOBAL SYMBOLS AND DATA BUFFERS (FORMERLY CONTAINED IN RUNOFF.MAC) ; ; AUTHOR: C. H. Spalding ; ; MODIFIED BY ; ; C. H. Spalding, Unimation, Dec. '82 ; ; MODIFICATIONS ; ; chs03 Reduce blank lines from CHAPTER, APPENDIX, & INDEX ; chs04 Add ALTERNATING HEADER ; chs05 Make page size settings available to task build ; chs07 Double space after ; chs14 Add ALTERNATING TITLE ; chs16 Use local symbols for constants ; chs19 Add AUTOSUBTITLE ; chs20 Add optional-text commands ; chs24 Fix skip at bottom of page ; chs27 Misc. changes to LIST commands ; chs35 Misc. changes to tab processing ; 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 ; chs43 Add QUOTE CHARACTER ; chs44 Add "!" comment command and flag ; chs45 Add optional-text command-line switches ; chs46 Change ALTERNATING HEADER to ALTERNATE ; chs49 Allow multiple input files & appending to output ; chs50 Have task extend itself when index/footnote buffer full ; chs51 Add ENTRY & subindexing ; chs52 Correct spacing of underlined index entries ; chs54a Footnote processing reworked ; chs54b Add FOOTNOTE LINE ; 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 ; chs61 Changes to LITERAL processing ; chs63 Control blank lines after END LIST & END NOTE ; chs64 Define underbar character as symbol ; chs68 Store appendix letter in byte ; chs70 Add TEST LINES ; chs72 Make sure empty output file not left around ; chs73 Provide for unnumbered lists ; chs74 Allow relative/default header level argument ; chs77 Fix FIRST TITLE ; chs78 Added BLOCK ; footnote processing revamped ; MACRO LIBRARY CALLS .IIF NZ MULTIN, .MCALL CSI$ ;chs49 ; SIMULATED ACCUMULATOR DEFINITIONS F.1:: .WORD 0 ;FLAG WORD S1:: .WORD 0 ;PSEUDO REGISTER ; FLAG BITS IN F.1 ; ; NOTE: The low-order byte corresponds to a legal command mask ; that is tested against the trailing byte of the ; appropriate command name. NOTF==1 ;NOTE PROCESSING ACTIVE FOTF==2 ;FOOTNOTE PROCESSING ACTIVE RELF==4 ;RELATIVE NUMBER CONVERSION (1=YES) TXTF==10 ;COMMAND TAKES TEXT ARGUMENT (USED BY "OPTION") ;chs20 FPGF==20 ;FLUSH PENDING PAGE (1=YES) ENDF==40 ;CORRESPONDS TO END FLAG IN TRAILING BYTE BRKF==100 ;CORRESPONDS TO BREAK FLAG IN TRAILING BYTE JUSTF==400 ;JUSTIFY TEXT PJUSTF==1000 FILLF==2000 ;FILL TEXT LITFG==4000 ;LITERAL PROCESSING FLAG SPECF==20000 ;SPECIAL COMMAND PROCESSING .IIF NZ BLKCMD, BLKF==40000 ;BLOCK BEING PROCESSED ;chs78a ; SWITCH WORD FLAG BIT DEFINITIONS FFDSW==1 ;SIMULATE FORM FEEDS (0=YES) HYPSW==2 ;HYPHENATE OUTPUT TEXT (1=YES) PAUSW==4 ;PAUSE BETWEEN PAGES (1=YES) SPLSW==10 ;SPOOL TEXT FILE (1=YES) UPCSW==20 ;FORCE ALL TEXT TO UPPER CASE (1=YES) .IIF NZ ALTHDR, ALHSW==40 ;ALTERNATING PAGE HEADERS (1=YES) ;chs04 .IIF NZ APNDSW, APNSW==100 ;APPEND TO OUTPUT FILE (1 = YES) ;chs49a .IF NZ LAYSW ;chs39a+ DWNSW==200 ;TOP MARGIN SWITCH (1 = PRESENT) LNGSW==400 ;PAGE LENGTH SWITCH (1 = PRESENT) LFTSW==1000 ;BASE LEFT MARGIN SWITCH (1 = PRESENT) WIDSW==2000 ;PERM. RIGHT MARGIN SW. (1 = PRESENT) .ENDC ; NZ LAYSW ;chs39a- .IIF NZ XHDRSW, HLNSW==4000 ;HEADER LENGTH SWITCH (1 = PRESENT) ;chs40a .IIF NZ OPTXSW, OPTSW==10000 ;OPTIONAL-TEXT SWITCHES (1=PRESENT) ;chs45 .IIF NZ SAVPS, PSZSW==20000 ;PAGE-SIZE SWITCH (1 = PRESENT) ;chs49b ; SWITCH FLAGS (BYTE) .IIF NZ FIRTIT, $HDSSW::.BYTE 0 ;DISABLE PAGE HEADER (0=NO) ;chs77 $GCISW::.BLKB 1 ;INPUT FROM REREAD BUFFER (0=NO) $SDISW::.BLKB 1 ;INPUT FROM SECONDARY INPUT BUFFER (0=NO) $ULMSW::.BLKB 1 ;UNDERLINE MODE (0=NO BACKSPACE) $ULNSW::.BLKB 1 ;UNDERLINE SUPPRESS (0=NO) $ULSSW::.BLKB 1 ;UNDERLINE SIMULATE (0=NO) .IIF NZ SUBIDX, QTFLG:: .BLKB 1 ;QUOTED CHARACTER ;chs51b .IIF NZ DELOF, DELFLG:: .BYTE 0 ;FLAG FOR FILE DELETION ;chs72 .EVEN ; SWITCH FLAGS (WORD) $AUTSW::.BLKW 1 ;AUTOPARAGRAPH ACTIVE (0=NO) $CFLSW::.BLKW 1 ;FLAG CAPITALIZE ENABLE (0=NO) $HDRSW::.BLKW 1 ;PRINT PAGE HEADERS (0=NO) $HFLSW::.BLKW 1 ;FLAG HYPHENATE ENABLE (0=NO) $HPHSW::.BLKW 1 ;HYPHENATION ACTIVE (0=NO) $NUMSW::.BLKW 1 ;NUMBER PAGES (0=NO) $PGPSW::.BLKW 1 ;PAGE PENDING (0=NO) $PERSW::.BLKW 1 ;PUNCTUATION DOUBLE SPACING (0=NO) $SBPSW::.BLKW 1 ;SUBPAGE MODE ACTIVE (0=NO) $ULLSW::.BLKW 1 ;UNDERLINE LOCK ON (0=NO) .IIF NZ ALTHDR, $ALHSW::.BLKW 1 ;ALTERNATING HEADER ENABLE (0=NO) ;chs04 .IIF NZ ALTTIT, $ALTSW::.BLKW 1 ;ALTERNATING TITLE ENABLE (0=NO) ;chs14 .IIF NZ SKPFIX, $IDXAC::.BLKW 1 ;INDEX BEING OUTPUT (0=NO) ;chs24 .IIF Z LSTPG, $EOJSW::.BLKW 1 ;FLAG FOR END OF JOB ;chs38 .IIF NZ SUBIDX, $SFLSW::.BLKW 1 ;SUBINDEX FLAG ENABLE (0=NO) ;chs51b ; IMPURE STORAGE .IIF NZ PRMCHK+LITMRG, MAXMRG==132. ;MAX. RT. MARGIN ACCEPTABLE ;chs58 RMARG:: .WORD 0 ;TEXT RIGHT MARGIN (REL. TO "BASMRG") LMARG:: .WORD 0 ;TEXT LEFT MARGIN (REL. TO "BASMRG") ; (ABOVE 2 LINES MUST BE IN GIVEN ORDER!) PRMRG:: .BLKW 1 ;PERMANENT RIGHT MARGIN .IF NZ LAYOUT ;chs39+ BASMRG::.BLKW 1 ;BASE LEFT MARGIN .IIF NZ ALTSHF, PBMRG::.BLKW 1 ;PERMANENT BASE LEFT MARGIN ;chs46 TOPMRG::.BLKW 1 ;BLANK LINES AT TOP OF PAGE .ENDC ; NZ LAYOUT ;chs39- .IF NZ EXTHDR ;chs40+ HDRLEN::.BLKW 1 ;# LINES IN PAGE HEADER HLMARG::.BLKW 1 ;HEADER LEFT MARGIN (REL. TO "BASMRG") HRMARG::.BLKW 1 ;HEADER RIGHT MARGIN (REL. TO "BASMRG") .ENDC ; NZ EXTHDR ;chs40- .IIF NZ ALTSHF, ASHIFT::.BLKW 1 ;OFFSET FOR ALTERNATE PAGES ;chs46 CAS:: .WORD 0 WCAS:: .BLKW 1 ;WORD CAPITALIZE CONVERSION VALUE CMADR:: .BLKW 1 ;SPECIAL PROCESSING COMMAND ADDRESS .IIF NZ TSTLIN, ACTCMD:: .BLKW 1 ;ADDRESS OF CURRENT COMMAND CODE ;chs70 PAGENO::.WORD 0 ;PAGE NUMBER .IIF NZ AUTFIX, AUTFLG::.BLKW 1 ;BLANK-LINE FLAG FOR AUTOPARAGRAPH ;chs55a PARPT:: .BLKW 1 ;PARAGRAPH PAGE TEST COUNT PARSP:: .BLKW 1 ;PARAGRAPH SPACING COUNT PARIND::.WORD 0 ;PARAGRAPH INDENTATION NSPNG:: .WORD 0 ;LINE SPACING LINEC:: .WORD 0 ;LINE COUNT AS PAGE COMPOSED SUBPGE::.WORD 0 ;SUBPAGE NUMBER LITCM:: .BLKW 1 ;SAVED EXPECTED COMMAND ADDRESS (LITERAL) LITSV:: .BLKW 1 ;SAVED FLAGS MASK ON LITERAL PROCESSING .IIF NZ LITSPC, LITSP:: .BLKW 1 ;SAVED LINE SPACING ON LIT. PROC. ;chs61a .IIF NZ LITMRG, LITRM:: .BLKW 1 ;SAVED RIGHT MARGIN ON LIT. PROC. ;chs61b LSTPT:: .BLKW 1 ;LIST ELEMENT PAGE TEST COUNT LSTVS:: .BLKW 1 ;LIST ELEMENT VERTICAL SPACING LSTKP:: .BLKW 1 ;CURRENT LIST STACK POINTER MAXLST==5 ;MAX. NUMBER OF NESTED LISTS ;chs16 .IF NZ LISTCH ;chs73+ LSTKN ==5 ;NO. WORDS IN STACK PER NESTED LIST LSTCH:: .BLKW 1 ;SPECIAL CHARACTER FOR UNNUMBERED LIST .IFF LSTKN ==4 ;NO. WORDS IN STACK PER NESTED LIST ;chs27a .ENDC ; -NZ LISTCH ;chs73- LSTK:: .BLKW MAXLST*LSTKN ;LIST STACK ;chs27a LSTCT:: .BLKW 1 ;CURRENT LIST ELEMENT COUNT NOTCM:: .BLKW 1 ;SAVED EXPECTED COMMAND ADDRESS (NOTE) NOTLM:: .BLKW 1 ;NOTE SAVED LEFT MARGIN NOTRM:: .BLKW 1 ;NOTE SAVED RIGHT MARGIN NOTSV:: .BLKW 1 ;SAVED FLAG WORD ON NOTE PROCESSING .IF NZ ATOSUB ;chs19+ DEFAST==1 ;DEF. MAX HDR LVL FOR AUTOSUBTITLE INIAST==0 ;INITIAL AUTOSUBTITLE SETTING (A.S.) ASTLVL::.WORD CHPTN+INIAST ;POINTER TO MAX HDR LEVEL FOR A.S. .ENDC ; NZ ATOSUB ;chs19- ;*** START OF CRITICAL ORDER ;chs68 APNDN:: .BLKB 1 ;CURRENT APPENDIX LETTER ;chs68 CHPTN:: .BLKB 1 ;CURRENT CHAPTER NUMBER MAXHL==5 ;MAX # HEADER LEVELS ;chs16 .BLKB MAXHL ;CURRENT HEADING LEVEL NUMBERS ;chs16 .IIF NZ RELHDL, LASTHL:: .BYTE 1 ;LAST HEADER LEVEL ARGUMENT ;chs74 ;*** END OF CRITICAL ORDER ;chs68 .IF NZ OPTTXT ;chs20+ OPTBL:: ;TABLE OF OPTION SWITCHES OPTACT::.BLKB 1 ;BUFFER FOR CURRENT ACTIVE OPTION .BLKB OPTTXT ;TABLE OF OPTION FLAGS .ENDC ; NZ OPTTXT ;chs20- .IIF NZ FIGFIX, FIGTAB::.BLKB FIGFIX ;BUFFER FOR REQUEST QUEUE ;chs37 .IIF NZ QTCHAR, QTCHR:: .BLKB 1 ;ACTIVE QUOTE CHARACTER ;chs43 TABTL==32. ;MAX. NUMBER OF TAB STOPS .BYTE -1 ;DUMMY TAB STOP FOR ERROR CHECK ;chs35b TABTAB::.BLKB TABTL ;TABLE OF TAB STOP POSITIONS NTABS:: .BLKB 1 ;NUMBER OF TABS SET ;chs35 .EVEN ;chs16 NLPG:: .WORD 0 ;NUMBER OF LINES PER PAGE (TEMP) PNLPG:: .WORD 0 ;NUMBER OF LINES PER PAGE .IIF Z NEWFTN, FOOTC:: .WORD 0 ;TEMP. COUNT OF FOOTNOTE LINES ;chs54a FOOTP1::.WORD 0 ;POINTER TO START OF FOOTNOTE TEXT FOOTP2::.WORD 0 ;POINTER TO END OF FOOTNOTE TEXT XBOT:: .BLKW 1 ;BEGINNING OF ALLOCATED INDEX AREA FOOTP3::.WORD 0 ;PERM. PTR TO START OF FOOTNOTE BUFFER XTOP:: .BLKW 1 ;HIGHEST VIRTUAL ADDRESS IN PROGRAM FOOTWB::.BLKB 162. .IF NZ TXTQUE ;chs78+ .EVEN QSTART==FOOTP3 ;POINTER TO START OF QUEUE BUFFER QEND:: .BLKW 1 ;POINTER TO NEXT AVAILABLE RECORD QTEMP:: .BLKW 1 ;TEMP POINTER DURING QUEUE PROCESSING .IF NZ BLKCMD ;chs78a+ BLKWHT::.BLKW 1 ;NUMBER OF LINES TO SKIP AROUND BLOCK BLKDFT==2 ;DEFAULT NO. LINES TO SET OFF BLOCK FIGDFT==0 ;DEFAULT NO. LINES TO SET OFF FIGURE ;chs78b BLKCNT::.BLKB 1 ;NUMBER OF QUEUED BLOCKS BLKACT::.BLKB 1 ;FLAG TO SIGNAL BLOCK PROCESSING BLKNEW::.BLKB 1 ;FLAG TO SIGNAL PROCESSING NEW BLOCK BLKALL::.BLKB 1 ;FLAG TO SIGNAL DUMPING BLOCKS .IFTF ;chs78a- FTNCNT::.BLKB 1 ;NUMBER OF QUEUED FOOTNOTES .IFT ;chs78a+ BLKBTS==.-BLKCNT ;NUMBER OF BYTES NEED TO CLEAR AT INIT .ENDC ; NZ BLKCMD ;chs78a- .ENDC ; NZ TXTQUE ;chs78- .IF NZ AUTOFN ;chs54b+ IFNLEN==15. ;DEFAULT LINE LENGTH IFNCHR=='_ ;DEFAULT CHARACTER FOR LINE FTNLEN::.BLKB 1 ;LENGTH OF FOOTNOTE LINE FTNCHR::.BLKB 1 ;CHARACTER FOR FOOTNOTE LINE .ENDC ; NZ AUTOFN ;chs54b- .EVEN FOOTS1::.WORD FOOTWB-1 FOOTS2::.WORD FOOTWB-1 .WORD FOOTWB+162. XFIRST::.WORD 0 .IF NZ MULTIN ;chs49+ LOOP:: .BLKB 1 ;FLAG FOR MULTIPLE INPUT FILES INPUTN::.BLKB 1 ;INPUT FILE COUNTER CSI$ ;DEFINE CSI CONTROL BLOCK OFFSETS .EVEN CSIBLK::.BLKB C.SIZE ;DATA BLOCK FOR COMMAND PARSER LIMIT:: .LIMIT .ENDC ; NZ MULTIN ;chs49- ; USER-SET TEMPS INDCT:: .WORD 0 TTLIN==80. ;MAX. LENGTH OF TTY OUTPUT LINE ;chs TTBUF:: .BLKB TTLIN TTILIN==82. TTIBUF::.BLKB TTILIN .EVEN HFIN:: .WORD 160.,0,0 INBUF:: .BLKB 162. .EVEN HFOUT:: .WORD 256.,0,0 OUBUF:: .BLKB 256. .EVEN ; GENERAL T1:: .WORD 0 T2:: .WORD 0 LCH:: .WORD 0 ;LAST (PREVIOUS) CHARACTER .IIF NZ PDPAR, NLCH:: .WORD 0 ;NEXT TO LAST CHARACTER ;chs07 NCNT:: .WORD 0 LOWPAG::.WORD 0 ;LOWEST PAGE TO PRINT HGHPAG::.WORD 0 ;HIGHEST PAGE TO PRINT .IF NZ CHSW ;chs59+ LOCHAP::.WORD 0 ;LOWEST CHAPTER TO OUTPUT HICHAP::.WORD 0 ;HIGHEST CHAPTER TO OUTPUT .ENDC ; NZ CHSW ;chs59- ;*** FOLLOWING MUST BE WORD ALIGNED PAGHD:: .BLKB 6 ;PAGE NUMBER TEXT PROTOTYPE .EVEN LPPG:: .BLKW 1 ;HARDWARE LINES PER PAGE HWLPP:: .WORD HWPLN ;INITIAL VALUE FOR LPPG INI$SW::.WORD HYPSW!SPLSW ;INITIAL VALUE FOR $SWTCH IUL:: .WORD 'N ;INITIAL UNDERLINE SWITCH .IIF NZ BLSW, CHPSKP::.WORD CHBL1 ;INITIAL VALUE FOR EXTRA ;chs03 ; BLANK LINES FOR CHAPTER HEADERS ;chs03 INLPG:: .WORD INLPG$ ;INITIAL VALUE FOR PAGE ;chs05 IRMRG:: .WORD IRMRG$ ;INITIAL VALUE FOR RIGHT MARGIN ;chs05 .IF NZ LAYOUT ;chs39+ ITMRG:: .WORD ITMRG$ ;INITIAL BLANK LINES AT TOP OF PAGE IBMRG:: .WORD IBMRG$ ;INITIAL BASE LEFT MARGIN .ENDC ; NZ LAYOUT ;chs39- .IF NZ EXTHDR ;chs40 IHLEN:: .WORD HDLEN ;INITIAL LINES IN PAGE HEADERS ;chs40 .ENDC ; NZ EXTHDR ;chs40 ; LINE TEMPS LINBK:: .WORD 0 SPCNT:: .WORD 0 LSTSP:: .WORD 0 LINNSC::.WORD 0 LNIN1:: .WORD LINBF-1 LNIN2:: .WORD LINBF-1 .WORD LINBF+160. LOUT1:: .WORD 0 LOUT2:: .WORD 0 LINBF:: .WORD 0 .BLKB 162. .EVEN GCINP:: .WORD 0 GCIN2:: .WORD 0 GCSCH:: .BLKB 1 ;SAVED CHARACTER FOR REPROCESSING ULMCH:: .BLKB 1 ;SAVED CHARACTER FOR UNDERLINING .EVEN SDINP:: .WORD SDBUF-1 ;SECONDARY INPUT LINE DESCRIPTOR .WORD SDBUF-1 ; .WORD SDBUF+132. ;SECONDARY INPUT BUFFER GUARD WORD SDBUF:: .BLKB 134. ;SECONDARY INPUT BUFFER .EVEN CMSTP:: .WORD CMBF-1 CMST2:: .WORD CMBF-1 .WORD CMBF+132. CMBF:: .BLKB 134. ECMBF==.-1 .EVEN TTLLEN =80. ;MAXIMUM TITLE LENGTH ;chs56 TTLP1:: .WORD TTLBUF-1 ;POINTER TO START OF TITLE TTLP2:: .WORD TTLBUF-1 ;POINTER TO END OF TITLE .WORD TTLBUF+TTLLEN ;chs56 TTLBUF::.BLKB TTLLEN+2 ;BUFFER FOR TITLE ;chs56 .EVEN STTLLN =80. ;MAXIMUM SUBTITLE LENGTH ;chs56 STTLP1::.WORD STTLBF-1 ;POINTER TO START OF SUBTITLE STTLP2::.WORD STTLBF-1 ;POINTER TO END OF SUBTITLE .WORD STTLBF+STTLLN ;chs56 STTLBF::.BLKB STTLLN+2 ;BUFFER FOR SUBTITLE ;chs56 .EVEN .IF NZ PAGNAM ;chs56+ PGNMLN =40. PGNMP1::.WORD PGNMBF-1 ;POINTER TO START OF PAGE NAME PGNMP2::.WORD PGNMBF-1 ;POINTER TO END OF PAGE NAME .WORD PGNMBF+PGNMLN ;GUARD WORD FOR PAGE NAME BUFFER PGNMBF::.BLKB PGNMLN+2 ;BUFFER FOR PAGE NAME .EVEN .ENDC ; NZ PAGNAM ;chs56- EXSP1:: .WORD 0 EXSP2:: .WORD 0 EXSP3:: .WORD 0 NSPCH:: .WORD 0 ;COUNT OF NON-SPACING CHARS. ON LINE XNSPCH::.BLKW 1 ;COUNT OF 'S IN INDEX ENTRY ;chs52 LSTNSP::.WORD 0 ULPOS:: .WORD 0 CPOS:: .WORD 0 ;COUNT OF CHARS. CURRENTLY ON LINE ULPBF:: .BLKB 132. .EVEN ; PARAMETERS SHUP=='^ ;UPPER CASE INDICATOR SHDN=='\ ;LOWER CASE INDICATOR CWARN=='_ ;QUOTE NEXT CHARACTER ULCHI=='& ;UNDERLINE COMMAND IN INPUT DATA ULCHS==32 ;UNDERLINE CHARACTER IN INTERNAL STORAGE ; MUST BE .LT. QTS QTSP=='# ;QUOTED (NONEXPANDABLE) SPACE IN INPUT FILE .IIF NZ EXTEND, INCR ==16. ;# 32.-WORD BLOCKS TO EXTEND TASK ;chs50 HWPLN==66. ;HARDWARE LINES PER PAGE ILSTTP==1 ;INITIAL LIST ELEMENT PAGE-TEST COUNT ;chs27d ILSTVS==1 ;INITIAL LIST ELEMENT VERTICAL SPACING IPARIN==5 ;INITIAL PARAGRAPH INDENT IPARTP==2 ;INITIAL PARAGRAPH PAGE TEST IPARVS==1 ;INITIAL PARAGRAPH VERTICAL SPACING IRMRG$==60. ;INITIAL RIGHT MARGIN ;chs05 INLPG$==56. ;INITIAL LENGTH OF PAGE ;chs05 .IF NZ LAYOUT ;chs39+ ITMRG$==0 ;INITIAL BLANK LINES AT TOP OF PAGE IBMRG$==0 ;INITIAL BASE LEFT MARGIN .ENDC ; NZ LAYOUT ;chs39- ILMRG==0 ;INITIAL LEFT MARGIN LOLMAR==9. ;INITIAL LEFT MARGIN INDENT ON LISTS LSLMAR==4 ;LEFT MARGIN INDENT ON EMBEDDED LISTS LFSPAC==1 ;DEF FINAL VERT SPACING AFTER LIST ;chs63 NASPAC==1 ;VERTICAL SPACING AFTER "NOTE" HEADING NFSPAC==2 ;DEF FINAL VERT SPACING AFTER NOTES ;chs63 NHSPAC==2 ;INITIAL VERTICAL SPACING BEFORE NOTES .IF NZ NOTETP ;chs57b+ NTESTP==6. ;PAGE TEST COUNT FOR "NOTE" .IFF ;chs57b- NTESTP==8. ;PAGE TEST COUNT FOR "NOTE" ;chs16 .ENDC ; -NZ NOTETP ;chs57b .IF NZ NOTEMR ;chs57a+ NPMARG==5. ;MARGIN CHANGE ON NOTES .IFF ;chs57a- NPMARG==15. ;PRIMARY MARGIN CHANGE ON NOTES NSMARG==5 ;SECONDARY MARGIN CHANGE ON NOTES .ENDC ; -NZ NOTEMR ;chs57a SPCNG==1 ;STANDARD LINE SPACING CHBL1==7 ;DEFAULT # BLANK LINES BEFORE CHAP HDR ;chs16+ CHBL2==1 ;# BLANK LINES AFTER "CHAPTER N" CHBL3==3 ;# BLANK LINES AFTER CHAPTER TITLE HDLEN==5 ;# LINES IN PAGE HEADER HLBL1==3 ;# BLANK LINES PRECEEDING HEADER LEVEL HLBL2==1 ;# BLANK LINES AFTER HEADER LEVEL MXSPC==5 ;MAXIMUM "SPACING" VALUE ALLOWED INDXBL==2 ;# BLANK LINES AFTER "INDEX" ;chs16- .IIF NZ SUBIDX, XINDNT==2 ;DEFAULT INDENT FOR SUBINDEXING ;chs51b ; CHARACTERS FOR CREF CR==15 ;CARRIAGE RETURN LF==12 ;LINE FEED SPC==40 ;SPACE FF==14 ;FORMFEED TAB==11 ;HORIZONTAL TAB CMA==', ;COMMA ALT==33 ;ESCAPE BS==10 ;BACKSPACE CHARACTER NXS==177 ;NON-EXPANDABLE SPACE (INTERNAL) QTS==37 ;QUOTED SPACE. MUST BE SPC-1 FOR COMPARES PD=='. ;PERIOD. FOR SPECIAL SPACING AFTER PERIOD EOF=='Z-100 ;END OF FILE LPUS=='_ ;LINE-PRINTER UNDERSCORE IN OUTPUT FILE SEMI=='; ;SEMICOLON WCAP=='< ;WORD CAPITALIZE CHARACTER EXCL=='! ;EXCLAMATION POINT ;chs .IIF NZ SUBIDX, SBIDX=='> ;FLAG FOR SUBINDEXING ;chs51b UBAR=='_ ;UNDERBAR IN INPUT ;chs64 .END