Trailing-Edge
-
PDP-10 Archives
-
TOPS-20_V6.1_DECnetSrc_7-23-85
-
mcb/utilities/edtmg.lst
There is 1 other file named edtmg.lst in the archive. Click here to see a list.
12-Apr-1985 07:09:20 TOPS-20 Bliss-36 4A(225) Page 1
30-Dec-1982 17:30:31 DNET61:<DECNET.UTILITIES>EDTMG.BLI.1 (1)
; 0001 0
; 0002 0 MODULE EDTMG ( !Edit data into ASCII string.
; 0003 0 IDENT = '001020',
; 0004 0 LANGUAGE (BLISS16, BLISS36) %BLISS36 (, ENTRY ($EDMSG))
; 0005 0 ) =
; 0006 1 BEGIN
; 0007 1 !
; 0008 1 !
; 0009 1 !
; 0010 1 ! COPYRIGHT (c) 1980, 1981, 1982
; 0011 1 ! DIGITAL EQUIPMENT CORPORATION
; 0012 1 ! Maynard, Massachusetts
; 0013 1 !
; 0014 1 ! This software is furnished under a license and may be used
; 0015 1 ! and copied only in accordance with the terms of such license
; 0016 1 ! and with the inclusion of the above copyright notice. This
; 0017 1 ! software or any other copies thereof may not be provided or
; 0018 1 ! otherwise made available to any other person. No title to
; 0019 1 ! and ownership of the software is hereby transferred.
; 0020 1 !
; 0021 1 ! The information in this software is subject to change
; 0022 1 ! without notice and should not be construed as a commitment
; 0023 1 ! by DIGITAL EQUIPMENT CORPORATION.
; 0024 1 !
; 0025 1 ! DIGITAL assumes no responsibility for the use or reliability
; 0026 1 ! of its software on equipment which is not supplied by
; 0027 1 ! DIGITAL.
; 0028 1 !
; 0029 1
; 0030 1 !++
; 0031 1 ! FACILITY: SYSTEM LIBRARY
; 0032 1 !
; 0033 1 ! ABSTRACT:
; 0034 1 !
; 0035 1 !
; 0036 1 ! THIS MODULE CONTAINS A GENERAL PURPOSE ROUTINE TO EDIT BINARY DATA
; 0037 1 ! INTO AN ASCII TEXT STRING SUITABLE FOR DISPLAY
; 0038 1 !
; 0039 1 !
; 0040 1 ! ENVIRONMENT: ANY
; 0041 1 !
; 0042 1 ! AUTHOR: ALAN D. PECKHAM, CREATION DATE: 25-AUG-78
; 0043 1 !
; 0044 1 ! MODIFIED BY:
; 0045 1 !
; 0046 1 ! , : VERSION
; 0047 1 ! 01 -
; 0048 1 !--
; 0049 1
; 0050 1 !
; 0051 1 ! TABLE OF CONTENTS:
; 0052 1 !
EDTMG 12-Apr-1985 07:09:20 TOPS-20 Bliss-36 4A(225) Page 2
001020 30-Dec-1982 17:30:31 DNET61:<DECNET.UTILITIES>EDTMG.BLI.1 (1)
; 0053 1
; 0054 1 FORWARD ROUTINE
; 0055 1 $EDMSG, !Edit binary data into text
; 0056 1 NEXT_PRM, !Return the next parameter.
; 0057 1 REPEAT : NOVALUE; !Call routine repeatedly.
; 0058 1
; 0059 1 !
; 0060 1 ! INCLUDE FILES
; 0061 1 !
; 0062 1 ! NONE
; 0063 1 !
; 0064 1 ! MACROS:
; 0065 1 !
; 0066 1 ! NONE
; 0067 1 !
; 0068 1 ! EQUATED SYMBOLS:
; 0069 1 !
; 0070 1
; 0071 1 LITERAL
; 0072 1 SPACE = %C' ',
; 0073 1 TAB = %C' ';
; 0074 1
; 0075 1 !
; 0076 1 ! OWN STORAGE:
; 0077 1 !
; 0078 1
; 0079 1 OWN
; 0080 1 BUF_PTR, !Current position in output buffer.
; 0081 1 PRM_LIST : REF VECTOR, !Address of next parameter to fetch.
; 0082 1 REPT; !Repetition count.
; 0083 1
; 0084 1 GLOBAL
; 0085 1 $LNCNT : INITIAL (0); !Count of new lines.
; 0086 1
; 0087 1 !
; 0088 1 ! EXTERNAL REFERENCES:
; 0089 1 !
; 0090 1
; 0091 1 EXTERNAL ROUTINE
; 0092 1 $C5TA, !Convert RAD50 to ASCII
; 0093 1 $CBDMG, !Convert binary to unsigned decimal
; 0094 1 $CBDSG, !Convert binary to signed decimal
; 0095 1 $CBOMG, !Convert binary to unsigned octal
; 0096 1 $CBOSG, !Convert binary to signed octal
; 0097 1 $CBTMG, !Convert binary byte to unsigned octal
; 0098 1 $CDTB, !Convert decimal ASCII to binary
; 0099 1 $DAT, !Insert specified date in output buffer
; 0100 1 $TIM; !Insert specified time in output buffer
; 0101 1
EDTMG 12-Apr-1985 07:09:20 TOPS-20 Bliss-36 4A(225) Page 3
001020 30-Dec-1982 17:30:31 DNET61:<DECNET.UTILITIES>EDTMG.BLI.1 (2)
; 0102 1 GLOBAL ROUTINE $EDMSG (BUF_PTR_ADR, PATTERN_PTR, PARAMETER_LIST) =
; 0103 1
; 0104 1 !++
; 0105 1 ! FUNCTIONAL DESCRIPTION:
; 0106 1 !
; 0107 1 !
; 0108 1 ! DIRECTIVES:
; 0109 1 !
; 0110 1 ! %A %nA %#A ASCII STRING
; 0111 1 !
; 0112 1 ! %B %nB %#B BINARY BYTE TO OCTAL
; 0113 1 !
; 0114 1 ! %D %nD %#D BINARY SIGNED DECIMAL (NO SUPPRESSION)
; 0115 1 !
; 0116 1 ! %E %nE %#E EXTENDED ASCII
; 0117 1 !
; 0118 1 ! %M %nM %#M BINARY TO DECIMAL MAGNITUDE (ZERO SUPPRESSION)
; 0119 1 !
; 0120 1 ! %O %nO %#O BINARY TO SIGNED OCTAL
; 0121 1 !
; 0122 1 ! %P %nP %#P BINARY TO OCTAL MAGNITUDE
; 0123 1 !
; 0124 1 ! %R %nR %#R RAD50
; 0125 1 !
; 0126 1 ! %nS %#S SPACE
; 0127 1 !
; 0128 1 ! %T %nT %#T TAB TO COLUMN (1 TO N)
; 0129 1 !
; 0130 1 ! %U %nU %#U BINARY TO DECIMAL MAGNITUDE (NO SUPPRESSION)
; 0131 1 !
; 0132 1 ! %X %nX %#X FILE NAME
; 0133 1 !
; 0134 1 ! %Y DATE CONVERSION
; 0135 1 !
; 0136 1 ! %0Z %1Z CONVERT UP HOURS 'HH'
; 0137 1 !
; 0138 1 ! %2Z CONVERT UP TO MINUTES 'HH:MM'
; 0139 1 !
; 0140 1 ! %3Z CONVERT UP TO SECONDS 'HH:MM:SS'
; 0141 1 !
; 0142 1 ! %4Z %5Z CONVERT UP UP TO TICKS 'HH:MM:SS.S'
; 0143 1 !
; 0144 1 ! %^ %n^ %#^ FORM FEED
; 0145 1 !
; 0146 1 ! %/ %n/ %#/ NEW LINE (CR/LF)
; 0147 1 !
; 0148 1 ! %+ %n+ BYPASS PARAMETERS
; 0149 1 !
; 0150 1 ! %- %n- BACK UP PARAMETERS
; 0151 1 !
; 0152 1 ! %@ CALL USER ROUTINE
; 0153 1 !
EDTMG 12-Apr-1985 07:09:20 TOPS-20 Bliss-36 4A(225) Page 4
001020 30-Dec-1982 17:30:31 DNET61:<DECNET.UTILITIES>EDTMG.BLI.1 (2)
; 0154 1 ! %% INSERT SINGLE CHARACTER '%'
; 0155 1 !
; 0156 1 ! %n< DEFINE BYTE FIELD
; 0157 1 !
; 0158 1 ! %n> LOCATE FIELD MARK
; 0159 1 !
; 0160 1 !
; 0161 1 ! FORMAL PARAMETERS:
; 0162 1 !
; 0163 1 ! .BUF_PTR_ADR !Address of character sequence
; 0164 1 ! !pointer to buffer to receive
; 0165 1 ! !text.
; 0166 1 ! .PATTERN_PTR !Character sequence pointer to
; 0167 1 ! !ASCIZ pattern string.
; 0168 1 ! .PARAMETER_LIST !Address of list of parameters
; 0169 1 ! !for inclusion in output.
; 0170 1 !
; 0171 1 ! IMPLICIT INPUTS:
; 0172 1 !
; 0173 1 ! NONE
; 0174 1 !
; 0175 1 ! IMPLICIT OUTPUTS:
; 0176 1 !
; 0177 1 ! The buffer pointer ..BUF_PTR_ADR is updated to point past
; 0178 1 ! the information inserted.
; 0179 1 !
; 0180 1 ! ROUTINE VALUE:
; 0181 1 !
; 0182 1 ! A count of the number of characters inserted is returned.
; 0183 1 !
; 0184 1 ! SIDE EFFECTS
; 0185 1 !
; 0186 1 ! The global variable $LNCNT is updated to count and CR/LFs inserted
; 0187 1 ! into the text.
; 0188 1 !
; 0189 1 !--
; 0190 1
; 0191 2 BEGIN
; 0192 2
; 0193 2 MAP
; 0194 2 PARAMETER_LIST : REF VECTOR;
; 0195 2
; 0196 2 LOCAL
; 0197 2 BUF_PTR_INI, !INITIAL POINTER INTO BUFFER
; 0198 2 CHAR, !CURRENT PATTERN CHARACTER
; 0199 2 PAT_PTR; !POINTER INTO PATTERN
; 0200 2
; 0201 2 BUF_PTR_INI = (BUF_PTR = ..BUF_PTR_ADR); !Save the initial buffer position
; 0202 2 PAT_PTR = .PATTERN_PTR; !Copy the pointer to the pattern
; 0203 2 PRM_LIST = .PARAMETER_LIST; !and to the parameters.
; 0204 2
; 0205 2 !+
EDTMG 12-Apr-1985 07:09:20 TOPS-20 Bliss-36 4A(225) Page 5
001020 30-Dec-1982 17:30:31 DNET61:<DECNET.UTILITIES>EDTMG.BLI.1 (2)
; 0206 2 ! Pick up consecutive characters from the pattern until
; 0207 2 ! we hit the null byte.
; 0208 2 !-
; 0209 2
; 0210 2 WHILE (CHAR = CH$RCHAR_A (PAT_PTR)) NEQ 0 DO
; 0211 2
; 0212 2 IF .CHAR NEQ %C'%' !Check if it is a directive.
; 0213 2 THEN !If not, then
; 0214 2 CH$WCHAR_A (.CHAR, BUF_PTR) !just transfer the character.
; 0215 2 ELSE !Look for a repeat count.
; 0216 3 BEGIN
; 0217 3 CHAR = CH$RCHAR (.PAT_PTR); !Peek at the next character
; 0218 4 REPT = (SELECTONE .CHAR OF
; 0219 4 SET
; 0220 4 [%C'0' TO %C'9'] :
; 0221 4
; 0222 4 !+
; 0223 4 ! A number is provided in the pattern
; 0224 4 !-
; 0225 4
; 0226 4 $CDTB (PAT_PTR); !Call the decimal-to-binary converter
; 0227 4 [%C'#'] :
; 0228 4
; 0229 4 !+
; 0230 4 ! A number is provided in the parameter list
; 0231 4 !-
; 0232 4
; 0233 5 BEGIN
; 0234 5 PAT_PTR = CH$PLUS (.PAT_PTR, 1); !Bypass the pattern character
; 0235 5 NEXT_PRM () !and return the next parameter.
; 0236 4 END;
; 0237 4 [OTHERWISE] :
; 0238 4
; 0239 4 !+
; 0240 4 ! The default count is one.
; 0241 4 !-
; 0242 4
; 0243 4 1;
; 0244 3 TES);
; 0245 3
; 0246 3 !+
; 0247 3 ! Now check to see which directive is being invoked
; 0248 3 ! and perform the appropriate action.
; 0249 3 !-
; 0250 3
; 0251 4 CASE (CHAR = CH$RCHAR_A (PAT_PTR)) !Get the next character.
; 0252 3 FROM %C'%' TO %C'^' OF !Range it on our list
; 0253 3 SET
; 0254 3
; 0255 3 [%C'%'] :
; 0256 3
; 0257 3 !+
EDTMG 12-Apr-1985 07:09:20 TOPS-20 Bliss-36 4A(225) Page 6
001020 30-Dec-1982 17:30:31 DNET61:<DECNET.UTILITIES>EDTMG.BLI.1 (2)
; 0258 3 ! Insert a '%' into the output stream
; 0259 3 !-
; 0260 3
; 0261 3 CH$WCHAR_A (%C'%', BUF_PTR);
; 0262 3
; 0263 3 [%C'+'] :
; 0264 3
; 0265 3 !+
; 0266 3 ! Bypass some parameters
; 0267 3 !-
; 0268 3
; 0269 3 PRM_LIST = PRM_LIST [.REPT];
; 0270 3
; 0271 3 [%C'-'] :
; 0272 3
; 0273 3 !+
; 0274 3 ! Back up over some parameters
; 0275 3 !-
; 0276 3
; 0277 3 PRM_LIST = PRM_LIST [-.REPT];
; 0278 3
; 0279 3 [%C'/'] :
; 0280 3
; 0281 3 !+
; 0282 3 ! Insert one or more cr/lf pairs
; 0283 3 !-
; 0284 3
; 0285 3 DO
; 0286 4 BEGIN
; 0287 4 $LNCNT = .$LNCNT + 1;
; 0288 4 CH$WCHAR_A (13, BUF_PTR);
; 0289 4 CH$WCHAR_A (10, BUF_PTR)
; 0290 4 END
; 0291 3 UNTIL (REPT = .REPT - 1) LEQ 0;
; 0292 3
; 0293 3 [%C'<'] :
; 0294 3
; 0295 3 !+
; 0296 3 ! Initialize field mark
; 0297 3 !-
; 0298 3
; 0299 4 BEGIN
; 0300 4
; 0301 4 LOCAL
; 0302 4 PTR;
; 0303 4
; 0304 4 PTR = .BUF_PTR;
; 0305 4
; 0306 4 WHILE (REPT = .REPT - 1) GEQ 0 DO
; 0307 4 CH$WCHAR_A (SPACE, PTR);
; 0308 4
; 0309 4 CH$WCHAR (0, .PTR);
EDTMG 12-Apr-1985 07:09:20 TOPS-20 Bliss-36 4A(225) Page 7
001020 30-Dec-1982 17:30:31 DNET61:<DECNET.UTILITIES>EDTMG.BLI.1 (2)
; 0310 3 END;
; 0311 3
; 0312 3 [%C'>'] :
; 0313 3
; 0314 3 !+
; 0315 3 ! Position to end of field
; 0316 3 !-
; 0317 3
; 0318 4 BEGIN
; 0319 4
; 0320 4 LOCAL
; 0321 4 PTR;
; 0322 4
; 0323 4 PTR = CH$FIND_CH (.REPT, .BUF_PTR, 0);
; 0324 4 BUF_PTR = (IF CH$FAIL (.PTR) THEN CH$PLUS (.BUF_PTR, .REPT) ELSE .PTR);
; 0325 3 END;
; 0326 3
; 0327 3 [%C'A'] :
; 0328 3
; 0329 3 !+
; 0330 3 ! Transfer character string to output stream.
; 0331 3 !-
; 0332 3
; 0333 4 BEGIN
; 0334 4
; 0335 4 LOCAL
; 0336 4 PTR; !Pointer into paramter string
; 0337 4
; 0338 4 PTR = NEXT_PRM (); !Get the pointer
; 0339 4
; 0340 4 WHILE (REPT = .REPT - 1) GEQ 0 DO
; 0341 4 CH$WCHAR_A (CH$RCHAR_A (PTR), BUF_PTR);
; 0342 4
; 0343 3 END;
; 0344 3
; 0345 3 [%C'B'] :
; 0346 3
; 0347 3 !+
; 0348 3 ! Display character item as unsigned octal number.
; 0349 3 ! Parameter item is a pointer to characters.
; 0350 3 !-
; 0351 3
; 0352 3 IF .REPT GTR 0
; 0353 3 THEN
; 0354 4 BEGIN
; 0355 4
; 0356 4 LOCAL
; 0357 4 PTR;
; 0358 4
; 0359 4 PTR = NEXT_PRM ();
; 0360 4 $CBTMG (BUF_PTR, CH$RCHAR_A (PTR), 1);
; 0361 4
EDTMG 12-Apr-1985 07:09:20 TOPS-20 Bliss-36 4A(225) Page 8
001020 30-Dec-1982 17:30:31 DNET61:<DECNET.UTILITIES>EDTMG.BLI.1 (2)
; 0362 4 WHILE (REPT = .REPT - 1) GTR 0 DO
; 0363 5 BEGIN
; 0364 5 CH$WCHAR_A (SPACE, BUF_PTR);
; 0365 5 $CBTMG (BUF_PTR, CH$RCHAR_A (PTR), 1);
; 0366 4 END;
; 0367 4
; 0368 3 END;
; 0369 3
; 0370 3 [%C'D'] :
; 0371 3
; 0372 3 !+
; 0373 3 ! Display parameter as signed decimal.
; 0374 3 !-
; 0375 3
; 0376 3 REPEAT ($CBDSG, 0, TAB);
; 0377 3
; 0378 3 [%C'E'] :
; 0379 3
; 0380 3 !+
; 0381 3 ! Insert character string while editing undisplayable
; 0382 3 ! characters to the character '.'.
; 0383 3 !-
; 0384 3
; 0385 4 BEGIN
; 0386 4
; 0387 4 LOCAL
; 0388 4 CHAR, !Current character being processed
; 0389 4 PTR; !Pointer into paramter string
; 0390 4
; 0391 4 PTR = NEXT_PRM (); !Get the pointer
; 0392 4
; 0393 4 WHILE (REPT = .REPT - 1) GEQ 0 DO
; 0394 5 BEGIN
; 0395 5 CHAR = CH$RCHAR_A (PTR) AND 127;
; 0396 5
; 0397 5 IF .CHAR LSS 32 OR .CHAR EQL 127 THEN CHAR = SPACE;
; 0398 5
; 0399 5 CH$WCHAR_A (.CHAR, BUF_PTR)
; 0400 4 END;
; 0401 4
; 0402 3 END;
; 0403 3
; 0404 3 [%C'M'] :
; 0405 3
; 0406 3 !+
; 0407 3 ! Display parameter as unsigned decimal.
; 0408 3 !-
; 0409 3
; 0410 3 REPEAT ($CBDMG, 0, TAB);
; 0411 3
; 0412 3 [%C'O'] :
; 0413 3
EDTMG 12-Apr-1985 07:09:20 TOPS-20 Bliss-36 4A(225) Page 9
001020 30-Dec-1982 17:30:31 DNET61:<DECNET.UTILITIES>EDTMG.BLI.1 (2)
; 0414 3 !+
; 0415 3 ! Display parameter as signed octal.
; 0416 3 !-
; 0417 3
; 0418 3 REPEAT ($CBOSG, 0, TAB);
; 0419 3
; 0420 3 [%C'P'] :
; 0421 3
; 0422 3 !+
; 0423 3 ! Display parameter as unsigned octal.
; 0424 3 !-
; 0425 3
; 0426 3 REPEAT ($CBOMG, 1, TAB);
; 0427 3
; 0428 3 [%C'R'] :
; 0429 3
; 0430 3 !+
; 0431 3 ! Translate parameter from RAD50 format to ASCII.
; 0432 3 !-
; 0433 3
; 0434 3 DO
; 0435 3 $C5TA (BUF_PTR, NEXT_PRM ())
; 0436 3 UNTIL (REPT = .REPT - 1) LEQ 0;
; 0437 3
; 0438 3 [%C'S'] :
; 0439 3
; 0440 3 !+
; 0441 3 ! Insert one or more spaces.
; 0442 3 !-
; 0443 3
; 0444 3 WHILE (REPT = .REPT - 1) GEQ 0 DO
; 0445 3 CH$WCHAR_A (%C' ', BUF_PTR);
; 0446 3
; 0447 3 [%C'T'] :
; 0448 3
; 0449 3 !+
; 0450 3 ! Tab to specified column.
; 0451 3 !-
; 0452 3
; 0453 4 BEGIN
; 0454 4
; 0455 4 LOCAL
; 0456 4 NEW_BUF_PTR;
; 0457 4
; 0458 4 NEW_BUF_PTR = CH$PLUS (.BUF_PTR_INI, .REPT - 1);
; 0459 4
; 0460 4 WHILE CH$DIFF (.NEW_BUF_PTR, .BUF_PTR) GTR 0 DO
; 0461 4 CH$WCHAR_A (%C' ', BUF_PTR);
; 0462 4
; 0463 4 BUF_PTR = .NEW_BUF_PTR
; 0464 3 END;
; 0465 3
EDTMG 12-Apr-1985 07:09:20 TOPS-20 Bliss-36 4A(225) Page 10
001020 30-Dec-1982 17:30:31 DNET61:<DECNET.UTILITIES>EDTMG.BLI.1 (2)
; 0466 3 [%C'U'] :
; 0467 3
; 0468 3 !+
; 0469 3 ! Display next parameter as unsigned decimal.
; 0470 3 ! no zero suppression is done.
; 0471 3 !-
; 0472 3
; 0473 3 REPEAT ($CBDMG, 1, TAB);
; 0474 3
; 0475 3 [%C'X'] :
; 0476 3
; 0477 3 !+
; 0478 3 ! Display next four parameters as a file name and extension.
; 0479 3 !-
; 0480 3
; 0481 3 0; !Not ready yet.
; 0482 3
; 0483 3 [%C'Y'] :
; 0484 3
; 0485 3 !+
; 0486 3 ! Date converion.
; 0487 3 !-
; 0488 3
; 0489 3 $DAT (BUF_PTR, NEXT_PRM ());
; 0490 3
; 0491 3 [%C'Z'] :
; 0492 3
; 0493 3 !+
; 0494 3 ! Time conversion.
; 0495 3 !-
; 0496 3
; 0497 3 $TIM (BUF_PTR, NEXT_PRM (), .REPT);
; 0498 3
; 0499 3 [%C'@'] :
; 0500 3
; 0501 3 !+
; 0502 3 ! Call user supplied routine.
; 0503 3 !-
; 0504 3
; 0505 4 BEGIN
; 0506 4
; 0507 4 BIND ROUTINE
; 0508 4 USER_ROUTINE = NEXT_PRM ();
; 0509 4
; 0510 4 USER_ROUTINE (BUF_PTR, PAT_PTR, PRM_LIST);
; 0511 3 END;
; 0512 3
; 0513 3 [%C'^'] :
; 0514 3
; 0515 3 !+
; 0516 3 ! Insert one or more form-feeds.
; 0517 3 !-
EDTMG 12-Apr-1985 07:09:20 TOPS-20 Bliss-36 4A(225) Page 11
001020 30-Dec-1982 17:30:31 DNET61:<DECNET.UTILITIES>EDTMG.BLI.1 (2)
; 0518 3
; 0519 3 WHILE (REPT = .REPT - 1) GEQ 0 DO
; 0520 3 CH$WCHAR_A (12, BUF_PTR);
; 0521 3
; 0522 3 [INRANGE, OUTRANGE] :
; 0523 3
; 0524 3 !+
; 0525 3 ! Invalid character - insert the directive sequence
; 0526 3 ! into the output stream.
; 0527 3 !-
; 0528 3
; 0529 3 0; !Not ready yet.
; 0530 3 TES;
; 0531 3
; 0532 2 END;
; 0533 2
; 0534 2 CH$WCHAR (0, .BUF_PTR); !Make result ASCIZ.
; 0535 2 .BUF_PTR_ADR = .BUF_PTR; !Return updated buffer pointer
; 0536 2 CH$DIFF (.BUF_PTR, .BUF_PTR_INI) !Return the number of characters inserted.
; 0537 1 END; !OF EDMSG
TITLE EDTMG
TWOSEG
ENTRY $EDMSG
.REQUEST SYS:B362LB.REL
RELOC 0 ; 000000'
BUF_PTR:BLOCK 1 ; 000000'
PRM_LIST:
BLOCK 1 ; 000001'
REPT: BLOCK 1 ; 000002'
$LNCNT::EXP 0 ; 000003' 000000 000000
EXTERN $C5TA, $CBDMG, $CBDSG, $CBOMG, $CBOSG, $CBTMG, $CDTB, $DAT, $TIM
AC0= 0
AC1= 1
AC2= 2
AC3= 3
AC4= 4
AC5= 5
AC6= 6
AC7= 7
AC10= 10
EDTMG 12-Apr-1985 07:09:20 TOPS-20 Bliss-36 4A(225) Page 12
001020 30-Dec-1982 17:30:31 DNET61:<DECNET.UTILITIES>EDTMG.BLI.1 (2)
AC11= 11
AC12= 12
AC13= 13
AC14= 14
FP= 15
AC16= 16
SP= 17
RELOC 400000 ; 400000'
$EDMSG::PUSH SP,AC13 ; SP,AC13 400000' 261 17 0 00 000013 0102
PUSH SP,AC14 ; SP,AC14 400001' 261 17 0 00 000014
PUSH SP,AC16 ; SP,AC16 400002' 261 17 0 00 000016
ADJSP SP,1 ; SP,1 400003' 105 17 0 00 000001
MOVE AC1,-7(SP) ; AC1,BUF_PTR_ADR 400004' 200 01 0 17 777771 0201
MOVE AC2,0(AC1) ; AC2,0(AC1) 400005' 200 02 0 01 000000
MOVEM AC2,BUF_PTR ; AC2,BUF_PTR 400006' 202 02 0 00 000000'
MOVE AC13,0(AC1) ; BUF_PTR_INI,0(AC1) 400007' 200 13 0 01 000000
MOVE AC1,-6(SP) ; AC1,PATTERN_PTR 400010' 200 01 0 17 777772 0202
MOVEM AC1,0(SP) ; AC1,PAT_PTR 400011' 202 01 0 17 000000
MOVE AC1,-5(SP) ; AC1,PARAMETER_LIST 400012' 200 01 0 17 777773 0203
MOVEM AC1,PRM_LIST ; AC1,PRM_LIST 400013' 202 01 0 00 000001'
L.1: ILDB AC14,0(SP) ; CHAR,PAT_PTR 400014' 134 14 0 17 000000 0210
JUMPE AC14,L.40 ; CHAR,L.40 400015' 322 14 0 00 400354'
CAIN AC14,45 ; CHAR,45 400016' 306 14 0 00 000045 0212
JRST L.2 ; L.2 400017' 254 00 0 00 400022'
IDPB AC14,BUF_PTR ; CHAR,BUF_PTR 400020' 136 14 0 00 000000' 0214
JRST L.1 ; L.1 400021' 254 00 0 00 400014' 0212
L.2: MOVE AC1,0(SP) ; AC1,PAT_PTR 400022' 200 01 0 17 000000 0217
ILDB AC14,AC1 ; CHAR,AC1 400023' 134 14 0 00 000001
CAIL AC14,60 ; CHAR,60 400024' 301 14 0 00 000060 0220
CAILE AC14,71 ; CHAR,71 400025' 303 14 0 00 000071
JRST L.3 ; L.3 400026' 254 00 0 00 400034'
MOVEI AC1,0(SP) ; AC1,PAT_PTR 400027' 201 01 0 17 000000 0226
PUSH SP,AC1 ; SP,AC1 400030' 261 17 0 00 000001
PUSHJ SP,$CDTB ; SP,$CDTB 400031' 260 17 0 00 000000*
ADJSP SP,-1 ; SP,-1 400032' 105 17 0 00 777777
JRST L.5 ; L.5 400033' 254 00 0 00 400044' 0218
L.3: CAIE AC14,43 ; CHAR,43 400034' 302 14 0 00 000043 0227
JRST L.4 ; L.4 400035' 254 00 0 00 400043'
MOVE AC1,0(SP) ; AC1,PAT_PTR 400036' 200 01 0 17 000000 0234
IBP AC1 ; AC1 400037' 133 00 0 00 000001
MOVEM AC1,0(SP) ; AC1,PAT_PTR 400040' 202 01 0 17 000000
PUSHJ SP,NEXT_PRM ; SP,NEXT_PRM 400041' 260 17 0 00 000000V 0235
JRST L.5 ; L.5 400042' 254 00 0 00 400044' 0218
L.4: MOVEI AC1,1 ; AC1,1 400043' 201 01 0 00 000001
L.5: MOVEM AC1,REPT ; AC1,REPT 400044' 202 01 0 00 000002'
ILDB AC14,0(SP) ; CHAR,PAT_PTR 400045' 134 14 0 17 000000 0251
MOVE AC1,AC14 ; AC1,CHAR 400046' 200 01 0 00 000014
SUBI AC1,45 ; AC1,45 400047' 275 01 0 00 000045
JUMPL AC1,L.1 ; AC1,L.1 400050' 321 01 0 00 400014'
CAIGE AC1,72 ; AC1,72 400051' 305 01 0 00 000072
EDTMG 12-Apr-1985 07:09:20 TOPS-20 Bliss-36 4A(225) Page 13
001020 30-Dec-1982 17:30:31 DNET61:<DECNET.UTILITIES>EDTMG.BLI.1 (2)
JRST L.6(AC1) ; L.6(AC1) 400052' 254 00 0 01 400054'
JRST L.1 ; L.1 400053' 254 00 0 00 400014'
L.6: JRST L.7 ; L.7 400054' 254 00 0 00 400146'
JRST L.1 ; L.1 400055' 254 00 0 00 400014'
JRST L.1 ; L.1 400056' 254 00 0 00 400014'
JRST L.1 ; L.1 400057' 254 00 0 00 400014'
JRST L.1 ; L.1 400060' 254 00 0 00 400014'
JRST L.1 ; L.1 400061' 254 00 0 00 400014'
JRST L.8 ; L.8 400062' 254 00 0 00 400151'
JRST L.1 ; L.1 400063' 254 00 0 00 400014'
JRST L.9 ; L.9 400064' 254 00 0 00 400152'
JRST L.1 ; L.1 400065' 254 00 0 00 400014'
JRST L.10 ; L.10 400066' 254 00 0 00 400155'
JRST L.1 ; L.1 400067' 254 00 0 00 400014'
JRST L.1 ; L.1 400070' 254 00 0 00 400014'
JRST L.1 ; L.1 400071' 254 00 0 00 400014'
JRST L.1 ; L.1 400072' 254 00 0 00 400014'
JRST L.1 ; L.1 400073' 254 00 0 00 400014'
JRST L.1 ; L.1 400074' 254 00 0 00 400014'
JRST L.1 ; L.1 400075' 254 00 0 00 400014'
JRST L.1 ; L.1 400076' 254 00 0 00 400014'
JRST L.1 ; L.1 400077' 254 00 0 00 400014'
JRST L.1 ; L.1 400100' 254 00 0 00 400014'
JRST L.1 ; L.1 400101' 254 00 0 00 400014'
JRST L.1 ; L.1 400102' 254 00 0 00 400014'
JRST L.11 ; L.11 400103' 254 00 0 00 400165'
JRST L.1 ; L.1 400104' 254 00 0 00 400014'
JRST L.14 ; L.14 400105' 254 00 0 00 400176'
JRST L.1 ; L.1 400106' 254 00 0 00 400014'
JRST L.37 ; L.37 400107' 254 00 0 00 400337'
JRST L.16 ; L.16 400110' 254 00 0 00 400207'
JRST L.18 ; L.18 400111' 254 00 0 00 400215'
JRST L.1 ; L.1 400112' 254 00 0 00 400014'
JRST L.20 ; L.20 400113' 254 00 0 00 400241'
JRST L.21 ; L.21 400114' 254 00 0 00 400243'
JRST L.1 ; L.1 400115' 254 00 0 00 400014'
JRST L.1 ; L.1 400116' 254 00 0 00 400014'
JRST L.1 ; L.1 400117' 254 00 0 00 400014'
JRST L.1 ; L.1 400120' 254 00 0 00 400014'
JRST L.1 ; L.1 400121' 254 00 0 00 400014'
JRST L.1 ; L.1 400122' 254 00 0 00 400014'
JRST L.1 ; L.1 400123' 254 00 0 00 400014'
JRST L.23 ; L.23 400124' 254 00 0 00 400255'
JRST L.1 ; L.1 400125' 254 00 0 00 400014'
JRST L.24 ; L.24 400126' 254 00 0 00 400257'
JRST L.26 ; L.26 400127' 254 00 0 00 400262'
JRST L.1 ; L.1 400130' 254 00 0 00 400014'
JRST L.27 ; L.27 400131' 254 00 0 00 400264'
JRST L.28 ; L.28 400132' 254 00 0 00 400274'
JRST L.29 ; L.29 400133' 254 00 0 00 400301'
JRST L.32 ; L.32 400134' 254 00 0 00 400316'
JRST L.1 ; L.1 400135' 254 00 0 00 400014'
EDTMG 12-Apr-1985 07:09:20 TOPS-20 Bliss-36 4A(225) Page 14
001020 30-Dec-1982 17:30:31 DNET61:<DECNET.UTILITIES>EDTMG.BLI.1 (2)
JRST L.1 ; L.1 400136' 254 00 0 00 400014'
JRST L.1 ; L.1 400137' 254 00 0 00 400014'
JRST L.35 ; L.35 400140' 254 00 0 00 400323'
JRST L.36 ; L.36 400141' 254 00 0 00 400331'
JRST L.1 ; L.1 400142' 254 00 0 00 400014'
JRST L.1 ; L.1 400143' 254 00 0 00 400014'
JRST L.1 ; L.1 400144' 254 00 0 00 400014'
JRST L.39 ; L.39 400145' 254 00 0 00 400347'
L.7: MOVEI AC1,45 ; AC1,45 400146' 201 01 0 00 000045 0261
IDPB AC1,BUF_PTR ; AC1,BUF_PTR 400147' 136 01 0 00 000000'
JRST L.1 ; L.1 400150' 254 00 0 00 400014' 0251
L.8: SKIPA AC1,REPT ; AC1,REPT 400151' 334 01 0 00 000002' 0269
L.9: MOVN AC1,REPT ; AC1,REPT 400152' 210 01 0 00 000002' 0277
ADDM AC1,PRM_LIST ; AC1,PRM_LIST 400153' 272 01 0 00 000001'
JRST L.1 ; L.1 400154' 254 00 0 00 400014' 0251
L.10: AOS $LNCNT ; $LNCNT 400155' 350 00 0 00 000003' 0287
MOVEI AC1,15 ; AC1,15 400156' 201 01 0 00 000015 0288
IDPB AC1,BUF_PTR ; AC1,BUF_PTR 400157' 136 01 0 00 000000'
MOVEI AC1,12 ; AC1,12 400160' 201 01 0 00 000012 0289
IDPB AC1,BUF_PTR ; AC1,BUF_PTR 400161' 136 01 0 00 000000'
SOSLE REPT ; REPT 400162' 373 00 0 00 000002' 0291
JRST L.10 ; L.10 400163' 254 00 0 00 400155' 0285
JRST L.1 ; L.1 400164' 254 00 0 00 400014' 0251
L.11: MOVE AC1,BUF_PTR ; PTR,BUF_PTR 400165' 200 01 0 00 000000' 0304
L.12: SOSGE REPT ; REPT 400166' 375 00 0 00 000002' 0306
JRST L.13 ; L.13 400167' 254 00 0 00 400173'
MOVEI AC2,40 ; AC2,40 400170' 201 02 0 00 000040 0307
IDPB AC2,AC1 ; AC2,PTR 400171' 136 02 0 00 000001
JRST L.12 ; L.12 400172' 254 00 0 00 400166' 0306
L.13: SETZ AC2, ; AC2, 400173' 400 02 0 00 000000 0309
IDPB AC2,AC1 ; AC2,AC1 400174' 136 02 0 00 000001
JRST L.1 ; L.1 400175' 254 00 0 00 400014' 0251
L.14: PUSH SP,REPT ; SP,REPT 400176' 261 17 0 00 000002' 0323
PUSH SP,BUF_PTR ; SP,BUF_PTR 400177' 261 17 0 00 000000'
PUSH SP,C.2 ; SP,[0] 400200' 261 17 0 00 400373'
PUSHJ SP,CHFCH% ; SP,CHFCH% 400201' 260 17 0 00 000000*
JUMPN AC1,L.15 ; PTR,L.15 400202' 326 01 0 00 400205' 0324
MOVE AC1,REPT ; AC1,REPT 400203' 200 01 0 00 000002'
ADJBP AC1,BUF_PTR ; AC1,BUF_PTR 400204' 133 01 0 00 000000'
L.15: MOVEM AC1,BUF_PTR ; AC1,BUF_PTR 400205' 202 01 0 00 000000'
JRST L.38 ; L.38 400206' 254 00 0 00 400345'
L.16: PUSHJ SP,NEXT_PRM ; SP,NEXT_PRM 400207' 260 17 0 00 000000V 0338
L.17: SOSGE REPT ; REPT 400210' 375 00 0 00 000002' 0340
JRST L.1 ; L.1 400211' 254 00 0 00 400014'
ILDB AC2,AC1 ; AC2,PTR 400212' 134 02 0 00 000001 0341
IDPB AC2,BUF_PTR ; AC2,BUF_PTR 400213' 136 02 0 00 000000'
JRST L.17 ; L.17 400214' 254 00 0 00 400210' 0340
L.18: SKIPG REPT ; REPT 400215' 337 00 0 00 000002' 0352
JRST L.1 ; L.1 400216' 254 00 0 00 400014'
PUSHJ SP,NEXT_PRM ; SP,NEXT_PRM 400217' 260 17 0 00 000000V 0359
MOVE AC16,AC1 ; PTR,AC1 400220' 200 16 0 00 000001
PUSH SP,C.3 ; SP,[0,,BUF_PTR] 400221' 261 17 0 00 400374' 0360
EDTMG 12-Apr-1985 07:09:20 TOPS-20 Bliss-36 4A(225) Page 15
001020 30-Dec-1982 17:30:31 DNET61:<DECNET.UTILITIES>EDTMG.BLI.1 (2)
ILDB AC1,AC16 ; AC1,PTR 400222' 134 01 0 00 000016
PUSH SP,AC1 ; SP,AC1 400223' 261 17 0 00 000001
PUSH SP,C.4 ; SP,[1] 400224' 261 17 0 00 400375'
PUSHJ SP,$CBTMG ; SP,$CBTMG 400225' 260 17 0 00 000000*
L.19: SOSG REPT ; REPT 400226' 377 00 0 00 000002' 0362
JRST L.38 ; L.38 400227' 254 00 0 00 400345'
MOVEI AC1,40 ; AC1,40 400230' 201 01 0 00 000040 0364
IDPB AC1,BUF_PTR ; AC1,BUF_PTR 400231' 136 01 0 00 000000'
PUSH SP,C.3 ; SP,[0,,BUF_PTR] 400232' 261 17 0 00 400374' 0365
ILDB AC1,AC16 ; AC1,PTR 400233' 134 01 0 00 000016
PUSH SP,AC1 ; SP,AC1 400234' 261 17 0 00 000001
PUSH SP,C.4 ; SP,[1] 400235' 261 17 0 00 400375'
PUSHJ SP,$CBTMG ; SP,$CBTMG 400236' 260 17 0 00 000000*
ADJSP SP,-3 ; SP,-3 400237' 105 17 0 00 777775 0363
JRST L.19 ; L.19 400240' 254 00 0 00 400226' 0362
L.20: PUSH SP,C.5 ; SP,[0,,$CBDSG] 400241' 261 17 0 00 400376' 0376
JRST L.25 ; L.25 400242' 254 00 0 00 400260'
L.21: PUSHJ SP,NEXT_PRM ; SP,NEXT_PRM 400243' 260 17 0 00 000000V 0391
L.22: SOSGE REPT ; REPT 400244' 375 00 0 00 000002' 0393
JRST L.1 ; L.1 400245' 254 00 0 00 400014'
ILDB AC3,AC1 ; AC3,PTR 400246' 134 03 0 00 000001 0395
LDB AC2,C.1 ; CHAR,[POINT 7,AC3,35] <0,7> 400247' 135 02 0 00 400372'
CAIL AC2,40 ; CHAR,40 400250' 301 02 0 00 000040 0397
CAIN AC2,177 ; CHAR,177 400251' 306 02 0 00 000177
MOVEI AC2,40 ; CHAR,40 400252' 201 02 0 00 000040
IDPB AC2,BUF_PTR ; CHAR,BUF_PTR 400253' 136 02 0 00 000000' 0399
JRST L.22 ; L.22 400254' 254 00 0 00 400244' 0393
L.23: PUSH SP,C.6 ; SP,[0,,$CBDMG] 400255' 261 17 0 00 400377' 0410
JRST L.25 ; L.25 400256' 254 00 0 00 400260'
L.24: PUSH SP,C.7 ; SP,[0,,$CBOSG] 400257' 261 17 0 00 400400' 0418
L.25: PUSH SP,C.2 ; SP,[0] 400260' 261 17 0 00 400373'
JRST L.34 ; L.34 400261' 254 00 0 00 400320'
L.26: PUSH SP,C.8 ; SP,[0,,$CBOMG] 400262' 261 17 0 00 400401' 0426
JRST L.33 ; L.33 400263' 254 00 0 00 400317'
L.27: PUSH SP,C.3 ; SP,[0,,BUF_PTR] 400264' 261 17 0 00 400374' 0435
PUSHJ SP,NEXT_PRM ; SP,NEXT_PRM 400265' 260 17 0 00 000000V
PUSH SP,AC1 ; SP,AC1 400266' 261 17 0 00 000001
PUSHJ SP,$C5TA ; SP,$C5TA 400267' 260 17 0 00 000000*
ADJSP SP,-2 ; SP,-2 400270' 105 17 0 00 777776
SOSLE REPT ; REPT 400271' 373 00 0 00 000002' 0436
JRST L.27 ; L.27 400272' 254 00 0 00 400264' 0434
JRST L.1 ; L.1 400273' 254 00 0 00 400014' 0251
L.28: SOSGE REPT ; REPT 400274' 375 00 0 00 000002' 0444
JRST L.1 ; L.1 400275' 254 00 0 00 400014'
MOVEI AC1,40 ; AC1,40 400276' 201 01 0 00 000040 0445
IDPB AC1,BUF_PTR ; AC1,BUF_PTR 400277' 136 01 0 00 000000'
JRST L.28 ; L.28 400300' 254 00 0 00 400274' 0444
L.29: MOVE AC16,REPT ; AC16,REPT 400301' 200 16 0 00 000002' 0458
SUBI AC16,1 ; AC16,1 400302' 275 16 0 00 000001
ADJBP AC16,AC13 ; AC16,BUF_PTR_INI 400303' 133 16 0 00 000013
L.30: PUSH SP,AC16 ; SP,NEW_BUF_PTR 400304' 261 17 0 00 000016 0460
PUSH SP,BUF_PTR ; SP,BUF_PTR 400305' 261 17 0 00 000000'
EDTMG 12-Apr-1985 07:09:20 TOPS-20 Bliss-36 4A(225) Page 16
001020 30-Dec-1982 17:30:31 DNET61:<DECNET.UTILITIES>EDTMG.BLI.1 (2)
PUSHJ SP,CHDIF% ; SP,CHDIF% 400306' 260 17 0 00 000000*
ADJSP SP,-2 ; SP,-2 400307' 105 17 0 00 777776
JUMPLE AC1,L.31 ; AC1,L.31 400310' 323 01 0 00 400314'
MOVEI AC1,40 ; AC1,40 400311' 201 01 0 00 000040 0461
IDPB AC1,BUF_PTR ; AC1,BUF_PTR 400312' 136 01 0 00 000000'
JRST L.30 ; L.30 400313' 254 00 0 00 400304' 0460
L.31: MOVEM AC16,BUF_PTR ; NEW_BUF_PTR,BUF_PTR 400314' 202 16 0 00 000000' 0463
JRST L.1 ; L.1 400315' 254 00 0 00 400014' 0251
L.32: PUSH SP,C.6 ; SP,[0,,$CBDMG] 400316' 261 17 0 00 400377' 0473
L.33: PUSH SP,C.4 ; SP,[1] 400317' 261 17 0 00 400375'
L.34: PUSH SP,C.9 ; SP,[11] 400320' 261 17 0 00 400402'
PUSHJ SP,REPEAT ; SP,REPEAT 400321' 260 17 0 00 000000V
JRST L.38 ; L.38 400322' 254 00 0 00 400345' 0376
L.35: PUSH SP,C.3 ; SP,[0,,BUF_PTR] 400323' 261 17 0 00 400374' 0489
PUSHJ SP,NEXT_PRM ; SP,NEXT_PRM 400324' 260 17 0 00 000000V
PUSH SP,AC1 ; SP,AC1 400325' 261 17 0 00 000001
PUSHJ SP,$DAT ; SP,$DAT 400326' 260 17 0 00 000000*
ADJSP SP,-2 ; SP,-2 400327' 105 17 0 00 777776
JRST L.1 ; L.1 400330' 254 00 0 00 400014' 0251
L.36: PUSH SP,C.3 ; SP,[0,,BUF_PTR] 400331' 261 17 0 00 400374' 0497
PUSHJ SP,NEXT_PRM ; SP,NEXT_PRM 400332' 260 17 0 00 000000V
PUSH SP,AC1 ; SP,AC1 400333' 261 17 0 00 000001
PUSH SP,REPT ; SP,REPT 400334' 261 17 0 00 000002'
PUSHJ SP,$TIM ; SP,$TIM 400335' 260 17 0 00 000000*
JRST L.38 ; L.38 400336' 254 00 0 00 400345'
L.37: PUSHJ SP,NEXT_PRM ; SP,NEXT_PRM 400337' 260 17 0 00 000000V 0508
PUSH SP,C.3 ; SP,[0,,BUF_PTR] 400340' 261 17 0 00 400374' 0510
MOVEI AC2,-1(SP) ; AC2,PAT_PTR 400341' 201 02 0 17 777777
PUSH SP,AC2 ; SP,AC2 400342' 261 17 0 00 000002
PUSH SP,C.10 ; SP,[0,,PRM_LIST] 400343' 261 17 0 00 400403'
PUSHJ SP,0(AC1) ; SP,0(AC1) 400344' 260 17 0 01 000000
L.38: ADJSP SP,-3 ; SP,-3 400345' 105 17 0 00 777775 0508
JRST L.1 ; L.1 400346' 254 00 0 00 400014' 0251
L.39: SOSGE REPT ; REPT 400347' 375 00 0 00 000002' 0519
JRST L.1 ; L.1 400350' 254 00 0 00 400014'
MOVEI AC1,14 ; AC1,14 400351' 201 01 0 00 000014 0520
IDPB AC1,BUF_PTR ; AC1,BUF_PTR 400352' 136 01 0 00 000000'
JRST L.39 ; L.39 400353' 254 00 0 00 400347' 0519
L.40: SETZ AC2, ; AC2, 400354' 400 02 0 00 000000 0534
MOVE AC1,BUF_PTR ; AC1,BUF_PTR 400355' 200 01 0 00 000000'
IDPB AC2,AC1 ; AC2,AC1 400356' 136 02 0 00 000001
MOVE AC1,-7(SP) ; AC1,BUF_PTR_ADR 400357' 200 01 0 17 777771 0535
MOVE AC2,BUF_PTR ; AC2,BUF_PTR 400360' 200 02 0 00 000000'
MOVEM AC2,0(AC1) ; AC2,0(AC1) 400361' 202 02 0 01 000000
PUSH SP,BUF_PTR ; SP,BUF_PTR 400362' 261 17 0 00 000000' 0536
PUSH SP,AC13 ; SP,BUF_PTR_INI 400363' 261 17 0 00 000013
PUSHJ SP,CHDIF% ; SP,CHDIF% 400364' 260 17 0 00 000000*
ADJSP SP,-3 ; SP,-3 400365' 105 17 0 00 777775
POP SP,AC16 ; SP,AC16 400366' 262 17 0 00 000016 0102
POP SP,AC14 ; SP,AC14 400367' 262 17 0 00 000014
POP SP,AC13 ; SP,AC13 400370' 262 17 0 00 000013
POPJ SP, ; SP, 400371' 263 17 0 00 000000
EDTMG 12-Apr-1985 07:09:20 TOPS-20 Bliss-36 4A(225) Page 17
001020 30-Dec-1982 17:30:31 DNET61:<DECNET.UTILITIES>EDTMG.BLI.1 (2)
C.1: POINT 7,AC3,35 ; 7,AC3,35 400372' 00 07 0 00 000003
C.2: EXP 0 ; 0 400373' 000000 000000
C.3: XWD 0,BUF_PTR ; 0,BUF_PTR 400374' 000000 000000'
C.4: EXP 1 ; 1 400375' 000000 000001
C.5: XWD 0,$CBDSG ; 0,$CBDSG 400376' 000000 000000*
C.6: XWD 0,$CBDMG ; 0,$CBDMG 400377' 000000 000000*
C.7: XWD 0,$CBOSG ; 0,$CBOSG 400400' 000000 000000*
C.8: XWD 0,$CBOMG ; 0,$CBOMG 400401' 000000 000000*
C.9: EXP 11 ; 11 400402' 000000 000011
C.10: XWD 0,PRM_LIST ; 0,PRM_LIST 400403' 000000 000001'
; Routine Size: 260 words
; 0538 1
EDTMG 12-Apr-1985 07:09:20 TOPS-20 Bliss-36 4A(225) Page 18
001020 30-Dec-1982 17:30:31 DNET61:<DECNET.UTILITIES>EDTMG.BLI.1 (3)
; 0539 1 ROUTINE NEXT_PRM =
; 0540 1
; 0541 1 !++
; 0542 1 ! FUNCTIONAL DESCRIPTION:
; 0543 1 !
; 0544 1 !
; 0545 1 ! FORMAL PARAMETERS:
; 0546 1 !
; 0547 1 ! NONE
; 0548 1 !
; 0549 1 ! IMPLICIT INPUTS:
; 0550 1 !
; 0551 1 ! NONE
; 0552 1 !
; 0553 1 ! IMPLICIT OUTPUTS:
; 0554 1 !
; 0555 1 ! The variable .PRM_LIST is left to address the next parameter
; 0556 1 ! to fetch.
; 0557 1 !
; 0558 1 ! ROUTINE VALUE:
; 0559 1 !
; 0560 1 ! The value of the parameter addressed by .PRM_LIST[0] .
; 0561 1 !
; 0562 1 ! SIDE EFFECTS:
; 0563 1 !
; 0564 1 ! NONE
; 0565 1 !
; 0566 1 !--
; 0567 1
; 0568 2 BEGIN
; 0569 2
; 0570 2 LOCAL
; 0571 2 PARAMETER;
; 0572 2
; 0573 2 PARAMETER = .PRM_LIST [0];
; 0574 2 PRM_LIST = PRM_LIST [1];
; 0575 2 .PARAMETER
; 0576 1 END; !End of NEXT_PRM
NEXT_PRM:
MOVE AC1,PRM_LIST ; AC1,PRM_LIST 400404' 200 01 0 00 000001' 0573
MOVE AC1,0(AC1) ; PARAMETER,0(AC1) 400405' 200 01 0 01 000000
AOS PRM_LIST ; PRM_LIST 400406' 350 00 0 00 000001' 0574
POPJ SP, ; SP, 400407' 263 17 0 00 000000 0539
; Routine Size: 4 words
EDTMG 12-Apr-1985 07:09:20 TOPS-20 Bliss-36 4A(225) Page 19
001020 30-Dec-1982 17:30:31 DNET61:<DECNET.UTILITIES>EDTMG.BLI.1 (4)
; 0577 1 ROUTINE REPEAT (ROUTINE_ADR, FLAGS, SEPARATOR) : NOVALUE =
; 0578 1
; 0579 1 !++
; 0580 1 ! FUNCTIONAL DESCRIPTION:
; 0581 1 !
; 0582 1 !
; 0583 1 ! FORMAL PARAMETERS:
; 0584 1 !
; 0585 1 ! .ROUTINE_ADR !Conversion routine to call.
; 0586 1 ! .FLAGS !Flag word to feed the
; 0587 1 ! !conversion routine.
; 0588 1 ! .SEPARATOR !Separating character to insert
; 0589 1 ! !between converted texts.
; 0590 1 !
; 0591 1 ! IMPLICIT INPUTS:
; 0592 1 !
; 0593 1 ! .REPT !Number of times to repeat.
; 0594 1 ! .BUF_PTR !Contains pointer to buffer
; 0595 1 ! !to receive text.
; 0596 1 !
; 0597 1 ! IMPLICIT OUTPUTS:
; 0598 1 !
; 0599 1 ! The buffer pointer .BUF_PTR is updated to point past the information
; 0600 1 ! inserted.
; 0601 1 !
; 0602 1 ! ROUTINE VALUE:
; 0603 1 !
; 0604 1 ! NONE
; 0605 1 !
; 0606 1 ! SIDE EFFECTS:
; 0607 1 !
; 0608 1 ! ".REPT" parameters are obatined from the parameter list.
; 0609 1 ! The contents of REPT is undefined on return.
; 0610 1 !
; 0611 1 !--
; 0612 1
; 0613 2 BEGIN
; 0614 2
; 0615 2 BIND ROUTINE
; 0616 2 CVTNUM = .ROUTINE_ADR;
; 0617 2
; 0618 2 IF .REPT GTR 0
; 0619 2 THEN
; 0620 3 BEGIN
; 0621 3 CVTNUM (BUF_PTR, NEXT_PRM (), .FLAGS);
; 0622 3
; 0623 3 WHILE (REPT = .REPT - 1) NEQ 0 DO
; 0624 4 BEGIN
; 0625 4 CH$WCHAR_A (.SEPARATOR, BUF_PTR);
; 0626 4 CVTNUM (BUF_PTR, NEXT_PRM (), .FLAGS)
; 0627 4 END
; 0628 4
EDTMG 12-Apr-1985 07:09:20 TOPS-20 Bliss-36 4A(225) Page 20
001020 30-Dec-1982 17:30:31 DNET61:<DECNET.UTILITIES>EDTMG.BLI.1 (4)
; 0629 3 END
; 0630 3
; 0631 1 END; !Of routine REPEAT
REPEAT: PUSH SP,AC16 ; SP,AC16 400410' 261 17 0 00 000016 0577
MOVE AC16,-4(SP) ; AC16,ROUTINE_ADR 400411' 200 16 0 17 777774 0616
SKIPG REPT ; REPT 400412' 337 00 0 00 000002' 0618
JRST L.43 ; L.43 400413' 254 00 0 00 400435'
PUSH SP,C.3 ; SP,[0,,BUF_PTR] 400414' 261 17 0 00 400374' 0621
PUSHJ SP,NEXT_PRM ; SP,NEXT_PRM 400415' 260 17 0 00 400404'
PUSH SP,AC1 ; SP,AC1 400416' 261 17 0 00 000001
PUSH SP,-5(SP) ; SP,FLAGS 400417' 261 17 0 17 777773
PUSHJ SP,0(AC16) ; SP,0(AC16) 400420' 260 17 0 16 000000
L.41: SOSN REPT ; REPT 400421' 376 00 0 00 000002' 0623
JRST L.42 ; L.42 400422' 254 00 0 00 400434'
MOVE AC1,-5(SP) ; AC1,SEPARATOR 400423' 200 01 0 17 777773 0625
IDPB AC1,BUF_PTR ; AC1,BUF_PTR 400424' 136 01 0 00 000000'
PUSH SP,C.3 ; SP,[0,,BUF_PTR] 400425' 261 17 0 00 400374' 0626
PUSHJ SP,NEXT_PRM ; SP,NEXT_PRM 400426' 260 17 0 00 400404'
PUSH SP,AC1 ; SP,AC1 400427' 261 17 0 00 000001
PUSH SP,-10(SP) ; SP,FLAGS 400430' 261 17 0 17 777770
PUSHJ SP,0(AC16) ; SP,0(AC16) 400431' 260 17 0 16 000000
ADJSP SP,-3 ; SP,-3 400432' 105 17 0 00 777775 0624
JRST L.41 ; L.41 400433' 254 00 0 00 400421' 0623
L.42: ADJSP SP,-3 ; SP,-3 400434' 105 17 0 00 777775 0620
L.43: POP SP,AC16 ; SP,AC16 400435' 262 17 0 00 000016 0577
POPJ SP, ; SP, 400436' 263 17 0 00 000000
; Routine Size: 23 words
; 0632 1 END
; 0633 1
; 0634 0 ELUDOM
; Low segment length: 4 words
; High segment length: 287 words
; Size: 287 code + 4 data words
; Run Time: 00:04.6
; Elapsed Time: 00:05.8
; Lines/CPU Min: 8289
; Lexemes/CPU-Min: 18539
; Memory Used: 32 pages
EDTMG 12-Apr-1985 07:09:20 TOPS-20 Bliss-36 4A(225) Page 21
001020
; Compilation Complete