Listing of file='PROCES.MAC;05' on disk='vmedia/text_formatter-sector.ccvf'
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; PROCES - PROCESS A LINE OF TEXT ; EXTRN ERROR,MACRO,NXTLIN EXTRN CMND,CWS,FILL,LINBUF EXTRN MACADR,MACSUB,MACWRD ENTRY PROCES PUBLIC CMND PROCES: LXI H,LINBUF MOV A,M CPI CMND JZ INTERP ; ; INSERT TEXT INTO PAGE BUFFER ; LDA FILL ORA A CZ NXTLIN RET ; ; INTERPRET COMMANDS/MACROS ; INTERP: INX H MOV A,M CPI '*' JZ CM CALL UPPER CALL LETTER INX H MOV C,M INX H PUSH H PUSH B LDA MACSUB ORA A JZ NATIVE LXI D,MACWRD LXI H,MACADR CALL LOOKUP MOV A,E ORA D JZ NATIVE CALL MACRO NATIVE: POP B LXI D,CMDWRD LXI H,CMDADR CALL LOOKUP MOV A,E ORA D JZ COMERR POP H XCHG PCHL RET COMERR: POP H DCX H DCX H DCX H MVI A,1 CALL ERROR RET @CM: RET ;IGNORE COMMENTS NXTCMD: LDA CWS NXT10: CMP M INX H JNZ NXT10 RET CMDWRD: DB 'AD' ;ADJUST DB 'AP' ;APPEND FILE DB 'BD' ;BOLD DB 'BI' ;BOLD ITALIC DB 'BM' ;BOTTOM MARGIN DB 'BP' ;BEGIN PAGE DB 'BR' ;BREAK DB 'BS' ;BACKSPACE DB 'BT' ;BOTTOM TITLE DB 'CE' ;CENTRE DB 'CM' ;COMMENT DB 'CO' ;CONCATENATE DB 'CP' ;CONDITIONAL PAGE DB 'CR' ;CONTROL WORD REPLACEMENT DB 'CW' ;CONTROL WORD SEPARATOR DB 'DM' ;DEFINE MACRO DB 'EB' ;EVEN BOTTOM TITLE DB 'EM' ;EMPTY PAGE SUPPRESS DB 'EP' ;EVEN PAGE DB 'ER' ;ERROR DB 'ET' ;EVEN TOP TITLE DB 'EX' ;EXECUTE (FCS COMMAND) DB 'FI' ;FILL DB 'FM' ;FOOTING MARGIN DB 'FO' ;FORMAT DB 'FS' ;FOOTING SPACE DB 'FT' ;FOOTER DB 'HE' ;HEADER DB 'HM' ;HEADING MARGIN DB 'HS' ;HEADING SPACE DB 'IL' ;INDENT LINE DB 'IM' ;IMBED DB 'IN' ;INDENT DB 'JU' ;JUSTIFY DB 'LE' ;LEADING BLANKS DB 'LI' ;LITERAL DB 'LL' ;LINE LENGTH DB 'LN' ;LINE NUMBER DB 'LS' ;LINE SPACING DB 'MA' ;MARGINS DB 'MS' ;MACRO SUBSTITUTION DB 'NC' ;NO CONCATENATE DB 'NE' ;NEED DB 'NF' ;NO FILL DB 'NJ' ;NO JUSTIFY DB 'OB' ;ODD BOTTOM TITLE DB 'OP' ;ODD PAGE DB 'OT' ;ODD TOP TITLE DB 'PA' ;PAGE DB 'PI' ;PARAGRAPH INDENT DB 'PL' ;PAGE LENGTH DB 'PN' ;PAGE NUMBERING DB 'PP' ;PARAGRAPH DB 'PR' ;PRINT (ON CRT) DB 'PS' ;PAGE SYMBOL DB 'RD' ;READ FROM TERMINAL DB 'RE' ;RESTORE STATUS DB 'SA' ;SAVE STATUS DB 'SI' ;SIGNAL DB 'SK' ;SKIP DB 'SP' ;SPACE DB 'SY' ;SYSTEM (EXECUTE FCS COMMAND) DB 'TB' ;TABS DB 'TE' ;TERMINAL INPUT DB 'TM' ;TOP MARGIN DB 'TT' ;TOP TITLE DB 'TY' ;TYPE (ON CRT) DB 'UC' ;UPPER CASE DB 'UL' ;UNDERLINE DB 'UP' ;UPPER CASE DB 'US' ;UNDERSCORE DB 'WD' ;WIDOW DB 'WT' ;WAIT ; ; COMMAND ADDRESS TABLE - ALL ROUTINES ARE EXTERNAL ; CMDADR: DW @AD## DW @AP## DW @BD## DW @BI## DW @BM## DW @PA## ;.BP = .PA DW @BR## DW @BS## DW @BT## DW @CE## DW @CM ;COMMENT IS INTERNAL DW @CO## DW @CP## DW @CR## DW @CW## DW @DM## DW @EB## DW @EM## DW @EP## DW @ER## DW @ET## DW @SY## ;.EX = .SY DW @CO## ;.FI = .CO DW @FM## DW @FO## DW @FS## DW @BT## ;.FT = .BT DW @TT## ;.HE = .TT DW @HM## DW @HS## DW @IL## DW @IM## DW @IN## DW @JU## DW @LE## DW @LI## DW @LL## DW @LN## DW @LS## DW @MA## DW @MS## DW @CONO## ;.NC = .CO NO DW @CP## ;.NE = .CP DW @FONO## ;.NF = .FO NO DW @JUNO## ;.NJ = .JU NO DW @OB## DW @OP## DW @OT## DW @PA## DW @PI## DW @PL## DW @PN## DW @PP## DW @TY## ;.PR = .TY DW @PS## DW @RD## DW @RE## DW @SA## DW @SI## DW @SK## DW @SP## DW @SY## DW @TB## DW @TE## DW @TM## DW @TT## DW @TY## DW @UC## DW @US## ;.UL = .US DW @UP## DW @US## DW @WD## DW @WT## END