1 .* ***********************************************************
  2 .* *                                                         *
  3 .* *                                                         *
  4 .* * Copyright, (C) Honeywell Information Systems Inc., 1981 *
  5 .* *                                                         *
  6 .* *                                                         *
  7 .* ***********************************************************
  8 .*        ARG/CTLARG/DCL/ENTRY/MESSAGE/REQUEST EMITTER
  9 .*
 10 .*        ..argument        "argument" ...
 11 .*        ..arg             "argument" ...
 12 .*        ..controlargument "long control arg" "short control arg" ...
 13 .*        ..ctlarg          "long control arg" "short control arg" ...
 14 .*        ..entry           "entry point"
 15 .*        ..message         "message" "alternate message"
 16 .*        ..msg             "message" "alternate message"
 17 .*        ..request         "request_name"
 18 .*        ..rqst            "request_name"
 19 .*        ..subroutine_entry "declaration" "call"
 20 .*        ..subr_entry "declaration" "call"
 21 .*
 22 .ts %ArgCount% > 0
 23 .go ARG_OK
 24 .err No arguments given.
 25 .rt
 26 
 27 .la ARG_OK
 28 .ts "%InputFileName%" ^= "request" & "%InputFileName%" ^= "rqst"
 29 .ur .spt %LABELSPACE%
 30 .ur .go %InputFileName%
 31 .rt                                     ;.* return if no label
 32 
 33 .la message
 34 .la msg
 35 .srv IARG 1
 36 .tbb h
 37 .la MSG_LOOP
 38 .ur .unl %PAR_INDENT%
 39 .ur .ur |%.fnt ascii 9%%%Arg%IARG%%%%.fnt%|
 40 .srv IARG %IARG% + 1
 41 .ts %IARG% <= %ArgCount%
 42 .go MSG_LOOP
 43 .tbe
 44 .rt
 45 
 46 .la argument
 47 .la arg
 48 .la controlargument
 49 .la ctlarg
 50 .la subroutine_entry
 51 .la subr_entry
 52 .srv IARG 1                             ;.* set input arg counter
 53 .tbb h                                  ;.* start text header
 54 .*                                      ;.* process input args
 55 .la ARG_LOOP
 56 .ur .unl %PAR_INDENT%                   ;.* hang 1 level
 57 .ur .ur .srv BOLD_START %%%%[index "%%Arg%IARG%%%" "~"]%%%% ;.* bold part?
 58 .ts %BOLD_START% > 0
 59 .go ARG_BOLD                            ;.* yes
 60 .*
 61 .ur .ur %.fnt HR%%%Arg%IARG%%%%.fnt%    ;.* no bold - whole arg in HR
 62 .brf
 63 .go ARG_COUNT                           ;.* done with arg
 64 .*
 65 .la ARG_BOLD                            ;.* arg has bold part(s)
 66 .srv ARGNDX 1                           ;.* init arg scan index
 67 .fnt HR                                 ;.* use Helvetica
 68 .srv ARG_LINE "%PAD%"                   ;.* clear output line
 69 .ur .ur .srv ARG_LEN %%%%[length "%%Arg%IARG%%%"]%%%% ;.* length of input arg
 70 .*                                      ;.* pick out bold part(s)
 71 .la BOLD_LOOP
 72 .ts %BOLD_START% > 1                    ;.* any prior HR part?
 73 .ur .ur .ur .srv ARG_LINE "%ARG_LINE%
 74 .+%%%%{"%%Arg%IARG%%%"(%ARGNDX%,%%{%BOLD_START%-1}%%)}%%%%"
 75 .ur .srv ARGNDX %%{%ARGNDX% + %BOLD_START%}%%
 76 .*                                      ;.* take bold part, replace ~ with FCS
 77 .ur .ur .ur .srv BOLD_END
 78 .+ %%%%%%[index "%%%%{"%%Arg%IARG%%%"(%ARGNDX%)}%%%%" "~"]%%%%%%
 79 .ts %BOLD_END% > 0                      ;.* is there one?
 80 .go TAKE_BOLD                           ;.* yes
 81 .*
 82 .err Missing bold part delimiter (~)
 83 .go ARG_FINI
 84 
 85 .la TAKE_BOLD
 86 .ur .ur .srv ARG_LINE "%ARG_LINE%%.fnt HBI%
 87 .+%%%%{"%%Arg%IARG%%%"(%ARGNDX%,%%{%BOLD_END%-1}%%)}%%%%%.fnt%"
 88 .ur .srv ARGNDX %%{%ARGNDX% + %BOLD_END%}%% ;.* step over delim
 89 .ts %ARGNDX% > %ARG_LEN%                ;.* any more?
 90 .go ARG_FINI                            ;.* no
 91 .*
 92 .ur .ur .ur .srv BOLD_START
 93 .+ %%%%%%[index "%%%%{"%%Arg%IARG%%%"(%ARGNDX%)}%%%%" "~"]%%%%%%
 94 .ts %BOLD_START% > 0                    ;.* another bold part?
 95 .go BOLD_LOOP                           ;.* yes
 96 .*                                          last HR part
 97 .ur .ur .srv ARG_LINE "%ARG_LINE%%%%%{"%%Arg%IARG%%%"(%ARGNDX%)}%%%%"
 98 .*
 99 .la ARG_FINI
100 .ur %ARG_LINE%
101 .brf
102 .fnt                                    ;.* restore font
103 .*
104 .la ARG_COUNT
105 .srv IARG %IARG% + 1
106 .ts %IARG% <= %ArgCount%
107 .go ARG_LOOP
108 .ur .inl +%PAR_INDENT%
109 .tbe
110 .rt
111 
112 .la request
113 .la rqst
114 .srv MODULE
115 .*                                      special form for TED
116 .*.ts %ArgCount% = 2
117 .*.go RQST_ARGS_OK
118 .*.err Two arguments needed.
119 .*.rt
120 .*
121 .*.la RQST_ARGS_OK
122 .*.brb
123 .*.brn 6
124 .*.ur .ur .inl %%{2 * %PAR_INDENT%}%%
125 .*.ur .hla 2 0 |%.fnt HBR 12%%Arg1%%.fnt%||%.fnt HBR 12%%%RIGHT_SLUG%%%.fnt%|
126 .*.srv RIGHT_SLUG "%Arg1%"
127 .*
128 .*.spt 2
129 .*.ur .ur .tlh %LABELSPACE% -%%{2 * %PAR_INDENT%}%% |%.fnt HBR%%Arg1% %Arg2%%.fnt%|
130 .*.rt
131 .*
132 .spt 2
133 .indctl on
134 .if %MODULE%
135 .then     .ur .hlo 2 |||%.fnt HBR 14%%Arg1%%.fnt%*N*N*N|
136           .ur .hle 2 |*N*N*N%.fnt HBR 14%%Arg1%%.fnt%|
137 .else     .ur .hlo |||%.fnt HBR 14%%Arg1%%.fnt%|
138           .ur .hle |%.fnt HBR 14%%Arg1%%.fnt%|
139 .endif
140 .ur .ur .tlh %LABELSPACE% -%%{2 * %PAR_INDENT%}%% |%.fnt HBR%Request: %Arg1%%.fnt%|
141 .indctl
142 .rt
143 
144 .la entry
145 .ifi conditional_bar_3
146 .tbb h                                  ;.* build the header
147 .fif
148 .inl 0
149 .fnt bold
150 .ur Entry: %Parameter%
151 .fnt
152 .ur .spf %LABELSPACE%
153 .tbe
154 .rt