Trailing-Edge
-
PDP-10 Archives
-
BB-R598A-RM_1983
-
swskit-v3/listings/vnp36/rtxt.list
There are no other files named rtxt.list in the archive.
!CLASSI
25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 1
1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (1)
; 0001 !<DECNET20-V3P0.TKB-VNP.VNPV3>RTXT.BLI.61 13-Feb-81 14:05:05, Edit by SROBINSON
; 0002 !<DECNET20-V3P0.TKB-VNP.VNPV3>RTXT.BLI.45, 1-Jul-80 08:14:07, Edit by SROBINSON
; 0003 !<DECNET20-V3P0.TKB-VNP.VNPV3>RTXT.BLI.11, 15-Apr-80 07:05:34, Edit by SROBINSON
; 0004 !<DECNET20-V3P0.TKB-VNP.VNPV3>RTXT.BLI.2, 14-Apr-80 07:52:48, Edit by SROBINSON
; 0005 MODULE RTXT ( !READ TEXT FILES
; 0006 IDENT = 'X3.1'
; 0007 ) =
; 0008 BEGIN !ident 3.1 12oct81
; 0009 !
; 0010 !
; 0011 !
; 0012 ! COPYRIGHT (c) 1980, 1981, 1982
; 0013 ! DIGITAL EQUIPMENT CORPORATION
; 0014 ! Maynard, Massachusetts
; 0015 !
; 0016 ! This software is furnished under a license and may be used
; 0017 ! and copied only in accordance with the terms of such license
; 0018 ! and with the inclusion of the above copyright notice. This
; 0019 ! software or any other copies thereof may not be provided or
; 0020 ! otherwise made available to any other person. No title to
; 0021 ! and ownership of the software is hereby transferred.
; 0022 !
; 0023 ! The information in this software is subject to change
; 0024 ! without notice and should not be construed as a commitment
; 0025 ! by DIGITAL EQUIPMENT CORPORATION.
; 0026 !
; 0027 ! DIGITAL assumes no responsibility for the use or reliability
; 0028 ! of its software on equipment which is not supplied by
; 0029 ! DIGITAL.
; 0030 !
; 0031
; 0032 !++
; 0033 ! FACILITY: MCB System Configuration Facility, VNP-20
; 0034 !
; 0035 ! ABSTRACT:
; 0036 !
; 0037 !
; 0038 ! THIS MODULE READS THE TEXT FILES, CETAB.MAC AND THE .DAT FILES,
; 0039 ! STORING THE INFORMATION FOR THE REST OF VNP20 TO PROCESS.
; 0040 !
; 0041 !
; 0042 ! ENVIRONMENT: TOPS-20 USER MODE
; 0043 !
; 0044 ! AUTHOR: J. SAUTER, CREATION DATE: 05-JUN-78
; 0045 ! Scott G. Robinson, 14-APR-80
; 0046 !
; 0047 ! MODIFIED BY:
; 0048 !
; 0049 ! , : VERSION
; 0050 ! 01 -
; 0051 !--
; 0052
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 2
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (1)
; 0053 !
; 0054 ! TABLE OF CONTENTS:
; 0055 !
; 0056
; 0057 FORWARD ROUTINE
; 0058 RCET : NOVALUE, !READ CETAB.MAC
; 0059 CLASS, !CLASSIFY A CHARACTER
; 0060 SCAN : NOVALUE, !SCAN NEXT ATOM
; 0061 R_SYS : NOVALUE, !READ SYS$DF LINE
; 0062 R_MEM : NOVALUE, !READ MEM$DF LINE
; 0063 R_PRC : NOVALUE, !READ PRC$DF LINE
; 0064 R_SLT : NOVALUE, !READ SLT$DF LINE
; 0065 R_LLC : NOVALUE, !READ LLC$DF LINE
; 0066 R_DEV : NOVALUE, !READ DEV$DF LINE
; 0067 R_CTL : NOVALUE, !READ CTL$DF LINE
; 0068 R_UNT : NOVALUE, !READ UNT$DF LINE
; 0069 R_TRB : NOVALUE, !Read TRB$DF Line
; 0070 R_TSK : NOVALUE, !READ TSK$DF LINE
; 0071 R_DRV : NOVALUE, !Read DRV$DF Line
; 0072 R_END : NOVALUE; !READ END$DF LINE
; 0073
; 0074 !
; 0075 ! INCLUDE FILES:
; 0076 !
; 0077
; 0078 LIBRARY 'VNPLIB';
; 0079
; 0080 !
; 0081 ! MACROS:
; 0082 !
; 0083 ! NONE
; 0084 !
; 0085 ! EQUATED SYMBOLS:
; 0086 !
; 0087
; 0088 LITERAL
; 0089 DEBUG = 0;
; 0090
; 0091 !
; 0092 ! OFFSETS INTO 'RESULT', THE ARRAY RETURNED BY SCAN.
; 0093 !
; 0094
; 0095 LITERAL
; 0096 RESULT_TYPE = 0, !TYPE FIELD
; 0097 RESULT_VALUE = 1; !VALUE FIELD
; 0098
; 0099 !
; 0100 ! VALUES OF THE TYPE FIELD
; 0101 !
; 0102
; 0103 LITERAL
; 0104 RT_NAME = 1, !VALUE IS TEXT OF NAME
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 3
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (1)
; 0105 RT_NUMBER = 2, !VALUE IS NUMBER (UNSIGNED)
; 0106 RT_SPECIAL = 3; !VALUE IS SPECIAL CHAR (-1 IS EOL)
; 0107
; 0108 !
; 0109 !
; 0110 ! OWN STORAGE:
; 0111 !
; 0112 ! NONE
; 0113 !
; 0114 ! EXTERNAL REFERENCES:
; 0115 !
; 0116
; 0117 EXTERNAL ROUTINE
; 0118 OPEN, !OPEN A FILE
; 0119 CLOSE : NOVALUE, !CLOSE A FILE
; 0120 INPUT, !READ FROM A FILE
; 0121 OUTPUT : NOVALUE, !OUTPUT TO A FILE
; 0122 BLD_CHAIN, !ADD AN ITEM TO A CHAIN
; 0123 GETBLK, !GET A BLOCK OF STORAGE
; 0124 ERROR : NOVALUE, !SIGNAL PROGRAMMING ERROR
; 0125 ERRMSG : NOVALUE, !ERROR MESSAGE
; 0126 PCRLF : NOVALUE, !PRINT CRLF
; 0127 OUTNUM : NOVALUE, !PRINT NUMBER
; 0128 OUTSTR : NOVALUE; !PRINT A STRING
; 0129
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 4
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (2)
; 0130 GLOBAL ROUTINE RCET (FILE_CHAN, FILE_PTR, VALUES) : NOVALUE = !READ CETAB.MAC
; 0131
; 0132 !++
; 0133 ! FUNCTIONAL DESCRIPTION:
; 0134 !
; 0135 ! READ CETAB.MAC FOR VNP20, AND STORE ITS VALUES.
; 0136 !
; 0137 ! FORMAL PARAMETERS:
; 0138 !
; 0139 ! FILE_CHAN - CHANNEL NUMBER ON WHICH TO READ CETAB.MAC
; 0140 ! FILE_PTR - FILE BLOCK WITH CETAB.MAC FILLED IN.
; 0141 ! VALUES - BLOCK IN WHICH TO STORE RESULTS
; 0142 !
; 0143 ! IMPLICIT INPUTS:
; 0144 !
; 0145 ! NONE
; 0146 !
; 0147 ! IMPLICIT OUTPUTS:
; 0148 !
; 0149 ! FILLS THE 'VALUES' BLOCK WITH STUFF READ FROM CETAB.MAC
; 0150 !
; 0151 ! ROUTINE VALUE:
; 0152 !
; 0153 ! NONE
; 0154 !
; 0155 ! SIDE EFFECTS
; 0156 !
; 0157 ! READS CETAB.MAC
; 0158 !
; 0159 !--
; 0160
; 0161 BEGIN
; 0162
; 0163 BIND
; 0164 ROUTINE_NAME = UPLIT (%ASCIZ'RCET');
; 0165
; 0166 MAP
; 0167 FILE_PTR : REF FILE_BLOCK,
; 0168 VALUES : REF VNPVAL_BLOCK;
; 0169
; 0170 LOCAL
; 0171 LOOK_DONE,
; 0172 NAME,
; 0173 RESULT : VECTOR [20],
; 0174 SAVE_CHAR,
; 0175 SUBR,
; 0176 VAL_POINTER;
; 0177
; 0178 IF (OPEN (.FILE_CHAN, FILE_PTR [FILE_NAME], 1, 0, UPLIT (%ASCIZ'TXT')) NEQ 0)
; 0179 THEN
; 0180 BEGIN !SUCCESSFUL INPUT OPEN
; 0181
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 5
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (2)
; 0182 IF (DEBUG GEQ 1)
; 0183 THEN
; 0184 BEGIN !DEBUG
; 0185 PCRLF (1);
; 0186 OUTSTR (1, UPLIT (%ASCIZ'----- OPEN CETAB.MAC'));
; 0187 END; !DEBUG
; 0188
; 0189 !
; 0190 ! INITIALIZE THE CHAIN TO THE LLCS
; 0191 !
; 0192 VALUES [LLC_CHAIN] = 0;
; 0193 !
; 0194 ! LOOK FOR SYS$DF MACRO
; 0195 !
; 0196 SAVE_CHAR = -1;
; 0197 LOOK_DONE = 0;
; 0198
; 0199 WHILE (.LOOK_DONE EQL 0) DO
; 0200 BEGIN
; 0201 SCAN (.FILE_CHAN, .FILE_PTR, SAVE_CHAR, RESULT);
; 0202
; 0203 IF ((.RESULT [RESULT_TYPE] EQL RT_SPECIAL) AND (.RESULT [RESULT_VALUE] EQL %C';'))
; 0204 THEN
; 0205 !SKIP A COMMENT
; 0206
; 0207 DO
; 0208 SCAN (.FILE_CHAN, .FILE_PTR, SAVE_CHAR, RESULT)
; 0209 UNTIL ((.RESULT [RESULT_TYPE] EQL RT_SPECIAL) AND (.RESULT [RESULT_VALUE] LSS 0));
; 0210
; 0211 IF ((.RESULT [RESULT_TYPE] EQL RT_NAME) AND !
; 0212 (CH$EQL (7, CH$PTR (RESULT [RESULT_VALUE]), 7, CH$PTR (UPLIT (%ASCIZ'SYS$DF')))))
; 0213 THEN
; 0214 LOOK_DONE = 1
; 0215 ELSE !NOT SYS$DF, SKIP TO NEXT LINE
; 0216
; 0217 DO
; 0218 SCAN (.FILE_CHAN, .FILE_PTR, SAVE_CHAR, RESULT)
; 0219 UNTIL ((.RESULT [RESULT_TYPE] EQL RT_SPECIAL) AND (.RESULT [RESULT_VALUE] LSS 0));
; 0220
; 0221 IF ((.RESULT [RESULT_TYPE] EQL RT_SPECIAL) AND (.RESULT [RESULT_VALUE] EQL -2))
; 0222 THEN
; 0223 LOOK_DONE = -1;
; 0224
; 0225 END;
; 0226
; 0227 IF (.LOOK_DONE LEQ 0)
; 0228 THEN
; 0229 ERRMSG (0, 24, ROUTINE_NAME, FILE_PTR [FILE_NAME], 0, 0, 0)
; 0230 ELSE
; 0231 BEGIN
; 0232 R_SYS (.FILE_CHAN, .FILE_PTR, SAVE_CHAR, .VALUES);
; 0233 !
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 6
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (2)
; 0234 ! EACH LINE OF CETAB.MAC, UP TO THE END$DF LINE, IS TO BE
; 0235 ! PROCESSED.
; 0236 !
; 0237 LOOK_DONE = 0;
; 0238
; 0239 WHILE (.LOOK_DONE EQL 0) DO
; 0240 BEGIN
; 0241 SCAN (.FILE_CHAN, .FILE_PTR, SAVE_CHAR, RESULT);
; 0242
; 0243 IF ((.RESULT [RESULT_TYPE] EQL RT_SPECIAL) AND (.RESULT [RESULT_VALUE] EQL %C';'))
; 0244 THEN
; 0245 !SKIP A COMMENT LINE
; 0246
; 0247 DO
; 0248 SCAN (.FILE_CHAN, .FILE_PTR, SAVE_CHAR, RESULT)
; 0249 UNTIL ((.RESULT [RESULT_TYPE] EQL RT_SPECIAL) AND (.RESULT [RESULT_VALUE] LSS 0))
; 0250
; 0251 ELSE
; 0252 BEGIN
; 0253 !
; 0254 ! THE RESULT VECTOR CONTAINS THE MACRO NAME
; 0255 !
; 0256
; 0257 IF (.RESULT [RESULT_TYPE] NEQ RT_NAME)
; 0258 THEN
; 0259 BEGIN
; 0260 ERRMSG (0, 24, ROUTINE_NAME, FILE_PTR [FILE_NAME], 0, 0, 0);
; 0261 LOOK_DONE = -1;
; 0262 END
; 0263 ELSE
; 0264 BEGIN
; 0265 !
; 0266 ! COMPUTE A NUMBER BASED ON THE NAME, SO WE CAN DISPATCH ON IT.
; 0267 !
; 0268 NAME = CH$RCHAR (CH$PTR (RESULT [RESULT_VALUE], 0)) + !
; 0269 (256*CH$RCHAR (CH$PTR (RESULT [RESULT_VALUE], 1))) + !
; 0270 (65536*CH$RCHAR (CH$PTR (RESULT [RESULT_VALUE], 2)));
; 0271
; 0272 IF (CH$NEQ (4, CH$PTR (RESULT [RESULT_VALUE], 3), !
; 0273 4, CH$PTR (UPLIT (%ASCIZ'$DF'))))
; 0274 THEN
; 0275 BEGIN
; 0276 ERRMSG (0, 24, ROUTINE_NAME, FILE_PTR [FILE_NAME], 0, 0, 0);
; 0277 LOOK_DONE = -1;
; 0278 END
; 0279 ELSE
; 0280 BEGIN
; 0281 !
; 0282 ! DISPATCH ON THE NAME
; 0283 !
; 0284 SUBR = (SELECTONE .NAME OF
; 0285 SET
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 7
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (2)
; 0286 [%C'M' + (256*%C'E') + (65536*%C'M')] : R_MEM;
; 0287 [%C'C' + (256*%C'T') + (65536*%C'L')] : R_CTL;
; 0288 [%C'U' + (256*%C'N') + (65536*%C'T')] : R_UNT;
; 0289 [%C'P' + (256*%C'R') + (65536*%C'C')] : R_PRC;
; 0290 [%C'S' + (256*%C'L') + (65536*%C'T')] : R_SLT;
; 0291 [%C'L' + (256*%C'L') + (65536*%C'C')] : R_LLC;
; 0292 [%C'D' + (256*%C'E') + (65536*%C'V')] : R_DEV;
; 0293 [%C'T' + (256*%C'R') + (65536*%C'B')] : R_TRB;
; 0294 [%C'T' + (256*%C'S') + (65536*%C'K')] : R_TSK;
; 0295 [%C'D' + (256*%C'R') + (65536*%C'V')] : R_DRV;
; 0296 [%C'E' + (256*%C'N') + (65536*%C'D')] : R_END;
; 0297 [OTHERWISE] : 0;
; 0298 TES);
; 0299
; 0300 IF (.SUBR EQL 0)
; 0301 THEN
; 0302 BEGIN
; 0303 ERRMSG (0, 24, ROUTINE_NAME, FILE_PTR [FILE_NAME], 0, 0, 0);
; 0304 LOOK_DONE = -1;
; 0305 END
; 0306 ELSE
; 0307 BEGIN
; 0308 (.SUBR) (.FILE_CHAN, .FILE_PTR, SAVE_CHAR, .VALUES);
; 0309
; 0310 IF (.SUBR EQL R_END) THEN LOOK_DONE = 1;
; 0311
; 0312 END;
; 0313
; 0314 END;
; 0315
; 0316 END;
; 0317
; 0318 END;
; 0319
; 0320 END;
; 0321
; 0322 END;
; 0323
; 0324 CLOSE (.FILE_CHAN);
; 0325
; 0326 IF (DEBUG GEQ 1)
; 0327 THEN
; 0328 BEGIN !DEBUG
; 0329 PCRLF (1);
; 0330 OUTSTR (1, UPLIT (%ASCIZ'----- CLOSE CETAB.MAC'));
; 0331 END; !DEBUG
; 0332
; 0333 END;
; 0334
; 0335 END; !OF RCET
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 8
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (2)
TITLE RTXT
TWOSEG
.REQUEST SYS:B362LB.REL
RELOC 400000 ; 400000'
P.AAA: BYTE (7)"R","C","E","T",000 ; RCET 400000' 122 103 105 124 000
P.AAB: BYTE (7)"T","X","T",000,000 ; TXT 400001' 124 130 124 000 000
P.AAC: BYTE (7)"-","-","-","-","-" ; ----- 400002' 055 055 055 055 055
BYTE (7)" ","O","P","E","N" ; OPEN 400003' 040 117 120 105 116
BYTE (7)" ","C","E","T","A" ; CETA 400004' 040 103 105 124 101
BYTE (7)"B",".","M","A","C" ; B.MAC 400005' 102 056 115 101 103
BYTE (7)000,000,000,000,000 ; 400006' 000 000 000 000 000
P.AAD: BYTE (7)"S","Y","S","$","D" ; SYS$D 400007' 123 131 123 044 104
BYTE (7)"F",000,000,000,000 ; F 400010' 106 000 000 000 000
P.AAE: BYTE (7)"$","D","F",000,000 ; $DF 400011' 044 104 106 000 000
P.AAF: BYTE (7)"-","-","-","-","-" ; ----- 400012' 055 055 055 055 055
BYTE (7)" ","C","L","O","S" ; CLOS 400013' 040 103 114 117 123
BYTE (7)"E"," ","C","E","T" ; E CET 400014' 105 040 103 105 124
BYTE (7)"A","B",".","M","A" ; AB.MA 400015' 101 102 056 115 101
BYTE (7)"C",000,000,000,000 ; C 400016' 103 000 000 000 000
EXTERN OPEN, CLOSE, INPUT, OUTPUT, BLD_CHAIN, GETBLK, ERROR, ERRMSG, PCRLF, OUTNUM, OUTSTR
ROUTINE_NAME= P.AAA ; 000000 400000'
AC0= 0
AC1= 1
AC2= 2
AC3= 3
AC4= 4
AC5= 5
AC6= 6
AC7= 7
AC10= 10
AC11= 11
AC12= 12
AC13= 13
AC14= 14
FP= 15
AC16= 16
SP= 17
RCET:: PUSH SP,AC0 ; SP,AC0 400017' 261 17 0 00 000000 0130
PUSH SP,AC10 ; SP,AC10 400020' 261 17 0 00 000010
PUSH SP,AC11 ; SP,AC11 400021' 261 17 0 00 000011
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 9
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (2)
PUSH SP,AC12 ; SP,AC12 400022' 261 17 0 00 000012
PUSH SP,AC13 ; SP,AC13 400023' 261 17 0 00 000013
PUSH SP,AC14 ; SP,AC14 400024' 261 17 0 00 000014
PUSH SP,AC16 ; SP,AC16 400025' 261 17 0 00 000016
ADJSP SP,25 ; SP,25 400026' 105 17 0 00 000025
MOVE AC16,-37(SP) ; AC16,FILE_CHAN 400027' 200 16 0 17 777741 0178
PUSH SP,AC16 ; SP,AC16 400030' 261 17 0 00 000016
MOVE AC13,-37(SP) ; AC13,FILE_PTR 400031' 200 13 0 17 777741
MOVE AC14,AC13 ; AC14,AC13 400032' 200 14 0 00 000013
ADDI AC14,2 ; AC14,2 400033' 271 14 0 00 000002
PUSH SP,AC14 ; SP,AC14 400034' 261 17 0 00 000014
PUSH SP,C.3 ; SP,[1] 400035' 261 17 0 00 400370'
PUSH SP,C.4 ; SP,[0] 400036' 261 17 0 00 400371'
PUSH SP,C.5 ; SP,[0,,P.AAB] 400037' 261 17 0 00 400372'
PUSHJ SP,OPEN ; SP,OPEN 400040' 260 17 0 00 000000*
ADJSP SP,-5 ; SP,-5 400041' 105 17 0 00 777773
JUMPE AC1,L.30 ; AC1,L.30 400042' 322 01 0 00 400355'
MOVE AC12,-35(SP) ; AC12,VALUES 400043' 200 12 0 17 777743 0192
HRRZS 1(AC12) ; 1(AC12) 400044' 553 00 0 12 000001
SETOM 0(SP) ; SAVE_CHAR 400045' 476 00 0 17 000000 0196
SETZ AC11, ; LOOK_DONE, 400046' 400 11 0 00 000000 0197
L.1: JUMPN AC11,L.7 ; LOOK_DONE,L.7 400047' 326 11 0 00 400141' 0199
PUSH SP,AC16 ; SP,AC16 400050' 261 17 0 00 000016 0201
PUSH SP,AC13 ; SP,AC13 400051' 261 17 0 00 000013
MOVEI AC0,-2(SP) ; AC0,SAVE_CHAR 400052' 201 00 0 17 777776
PUSH SP,AC0 ; SP,AC0 400053' 261 17 0 00 000000
MOVEI AC0,-27(SP) ; AC0,RESULT 400054' 201 00 0 17 777751
PUSH SP,AC0 ; SP,AC0 400055' 261 17 0 00 000000
PUSHJ SP,SCAN ; SP,SCAN 400056' 260 17 0 00 000000V
MOVEI AC0,3 ; AC0,3 400057' 201 00 0 00 000003 0203
CAME AC0,-30(SP) ; AC0,RESULT 400060' 312 00 0 17 777750
JRST L.3 ; L.3 400061' 254 00 0 00 400101'
MOVEI AC0,73 ; AC0,73 400062' 201 00 0 00 000073
CAME AC0,-27(SP) ; AC0,RESULT+1 400063' 312 00 0 17 777751
JRST L.3 ; L.3 400064' 254 00 0 00 400101'
L.2: MOVEM AC16,-1(SP) ; AC16,-1(SP) 400065' 202 16 0 17 777777 0208
MOVEM AC13,0(SP) ; AC13,0(SP) 400066' 202 13 0 17 000000
MOVEI AC0,-4(SP) ; AC0,SAVE_CHAR 400067' 201 00 0 17 777774
PUSH SP,AC0 ; SP,AC0 400070' 261 17 0 00 000000
MOVEI AC0,-31(SP) ; AC0,RESULT 400071' 201 00 0 17 777747
PUSH SP,AC0 ; SP,AC0 400072' 261 17 0 00 000000
PUSHJ SP,SCAN ; SP,SCAN 400073' 260 17 0 00 000000V
ADJSP SP,-2 ; SP,-2 400074' 105 17 0 00 777776
MOVEI AC0,3 ; AC0,3 400075' 201 00 0 00 000003 0209
CAMN AC0,-30(SP) ; AC0,RESULT 400076' 316 00 0 17 777750
SKIPL -27(SP) ; RESULT+1 400077' 331 00 0 17 777751
JRST L.2 ; L.2 400100' 254 00 0 00 400065' 0207
L.3: MOVEI AC0,1 ; AC0,1 400101' 201 00 0 00 000001 0211
CAME AC0,-30(SP) ; AC0,RESULT 400102' 312 00 0 17 777750
JRST L.4 ; L.4 400103' 254 00 0 00 400115'
MOVEI AC2,-30(SP) ; AC2,RESULT 400104' 201 02 0 17 777750 0212
HRLI AC2,10700 ; AC2,10700 400105' 505 02 0 00 010700
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 10
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (2)
MOVEI AC1,7 ; AC1,7 400106' 201 01 0 00 000007
MOVEI AC4,7 ; AC4,7 400107' 201 04 0 00 000007
MOVE AC5,C.6 ; AC5,[POINT 7,P.AAD-1,34] <1,7> 400110' 200 05 0 00 400373'
EXTEND AC1,C.1 ; AC1,[CMPSE ] 400111' 123 01 0 00 400366'
JRST L.4 ; L.4 400112' 254 00 0 00 400115'
MOVEI AC11,1 ; LOOK_DONE,1 400113' 201 11 0 00 000001 0214
JRST L.5 ; L.5 400114' 254 00 0 00 400131' 0211
L.4: MOVEM AC16,-1(SP) ; AC16,-1(SP) 400115' 202 16 0 17 777777 0218
MOVEM AC13,0(SP) ; AC13,0(SP) 400116' 202 13 0 17 000000
MOVEI AC0,-4(SP) ; AC0,SAVE_CHAR 400117' 201 00 0 17 777774
PUSH SP,AC0 ; SP,AC0 400120' 261 17 0 00 000000
MOVEI AC0,-31(SP) ; AC0,RESULT 400121' 201 00 0 17 777747
PUSH SP,AC0 ; SP,AC0 400122' 261 17 0 00 000000
PUSHJ SP,SCAN ; SP,SCAN 400123' 260 17 0 00 000000V
ADJSP SP,-2 ; SP,-2 400124' 105 17 0 00 777776
MOVEI AC0,3 ; AC0,3 400125' 201 00 0 00 000003 0219
CAMN AC0,-30(SP) ; AC0,RESULT 400126' 316 00 0 17 777750
SKIPL -27(SP) ; RESULT+1 400127' 331 00 0 17 777751
JRST L.4 ; L.4 400130' 254 00 0 00 400115' 0217
L.5: MOVEI AC0,3 ; AC0,3 400131' 201 00 0 00 000003 0221
CAME AC0,-30(SP) ; AC0,RESULT 400132' 312 00 0 17 777750
JRST L.6 ; L.6 400133' 254 00 0 00 400137'
HRROI AC0,-2 ; AC0,-2 400134' 561 00 0 00 777776
CAMN AC0,-27(SP) ; AC0,RESULT+1 400135' 316 00 0 17 777751
SETO AC11, ; LOOK_DONE, 400136' 474 11 0 00 000000 0223
L.6: ADJSP SP,-4 ; SP,-4 400137' 105 17 0 00 777774 0200
JRST L.1 ; L.1 400140' 254 00 0 00 400047' 0199
L.7: JUMPG AC11,L.8 ; LOOK_DONE,L.8 400141' 327 11 0 00 400154' 0227
PUSH SP,C.4 ; SP,[0] 400142' 261 17 0 00 400371' 0229
PUSH SP,C.7 ; SP,[30] 400143' 261 17 0 00 400374'
PUSH SP,C.8 ; SP,[0,,ROUTINE_NAME] 400144' 261 17 0 00 400375'
PUSH SP,AC14 ; SP,AC14 400145' 261 17 0 00 000014
PUSH SP,C.4 ; SP,[0] 400146' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 400147' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 400150' 261 17 0 00 400371'
PUSHJ SP,ERRMSG ; SP,ERRMSG 400151' 260 17 0 00 000000*
ADJSP SP,-3 ; SP,-3 400152' 105 17 0 00 777775
JRST L.29 ; L.29 400153' 254 00 0 00 400352' 0227
L.8: PUSH SP,AC16 ; SP,AC16 400154' 261 17 0 00 000016 0232
PUSH SP,AC13 ; SP,AC13 400155' 261 17 0 00 000013
MOVEI AC0,-2(SP) ; AC0,SAVE_CHAR 400156' 201 00 0 17 777776
PUSH SP,AC0 ; SP,AC0 400157' 261 17 0 00 000000
PUSH SP,AC12 ; SP,AC12 400160' 261 17 0 00 000012
PUSHJ SP,R_SYS ; SP,R_SYS 400161' 260 17 0 00 000000V
SETZ AC11, ; LOOK_DONE, 400162' 400 11 0 00 000000 0237
L.9: JUMPN AC11,L.29 ; LOOK_DONE,L.29 400163' 326 11 0 00 400352' 0239
MOVEM AC16,-1(SP) ; AC16,-1(SP) 400164' 202 16 0 17 777777 0241
MOVEM AC13,0(SP) ; AC13,0(SP) 400165' 202 13 0 17 000000
MOVEI AC1,-4(SP) ; AC1,SAVE_CHAR 400166' 201 01 0 17 777774
PUSH SP,AC1 ; SP,AC1 400167' 261 17 0 00 000001
MOVEI AC1,-31(SP) ; AC1,RESULT 400170' 201 01 0 17 777747
PUSH SP,AC1 ; SP,AC1 400171' 261 17 0 00 000001
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 11
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (2)
PUSHJ SP,SCAN ; SP,SCAN 400172' 260 17 0 00 000000V
MOVE AC1,-32(SP) ; AC1,RESULT 400173' 200 01 0 17 777746 0243
CAIE AC1,3 ; AC1,3 400174' 302 01 0 00 000003
JRST L.11 ; L.11 400175' 254 00 0 00 400216'
MOVEI AC2,73 ; AC2,73 400176' 201 02 0 00 000073
CAME AC2,-31(SP) ; AC2,RESULT+1 400177' 312 02 0 17 777747
JRST L.11 ; L.11 400200' 254 00 0 00 400216'
L.10: MOVEM AC16,-1(SP) ; AC16,-1(SP) 400201' 202 16 0 17 777777 0248
MOVEM AC13,0(SP) ; AC13,0(SP) 400202' 202 13 0 17 000000
MOVEI AC1,-6(SP) ; AC1,SAVE_CHAR 400203' 201 01 0 17 777772
PUSH SP,AC1 ; SP,AC1 400204' 261 17 0 00 000001
MOVEI AC1,-33(SP) ; AC1,RESULT 400205' 201 01 0 17 777745
PUSH SP,AC1 ; SP,AC1 400206' 261 17 0 00 000001
PUSHJ SP,SCAN ; SP,SCAN 400207' 260 17 0 00 000000V
ADJSP SP,-2 ; SP,-2 400210' 105 17 0 00 777776
MOVEI AC1,3 ; AC1,3 400211' 201 01 0 00 000003 0249
CAMN AC1,-32(SP) ; AC1,RESULT 400212' 316 01 0 17 777746
SKIPL -31(SP) ; RESULT+1 400213' 331 00 0 17 777747
JRST L.10 ; L.10 400214' 254 00 0 00 400201' 0247
JRST L.28 ; L.28 400215' 254 00 0 00 400350' 0243
L.11: CAIE AC1,1 ; AC1,1 400216' 302 01 0 00 000001 0257
JRST L.25 ; L.25 400217' 254 00 0 00 400324'
MOVEI AC1,-32(SP) ; AC1,RESULT 400220' 201 01 0 17 777746 0268
HRLI AC1,10700 ; AC1,10700 400221' 505 01 0 00 010700
ILDB AC2,AC1 ; AC2,AC1 400222' 134 02 0 00 000001
MOVEI AC1,-31(SP) ; AC1,RESULT+1 400223' 201 01 0 17 777747 0269
HRLI AC1,350700 ; AC1,350700 400224' 505 01 0 00 350700
ILDB AC1,AC1 ; AC1,AC1 400225' 134 01 0 00 000001
IMULI AC1,400 ; AC1,400 400226' 221 01 0 00 000400
ADD AC2,AC1 ; AC2,AC1 400227' 270 02 0 00 000001 0268
MOVEI AC1,-31(SP) ; AC1,RESULT+1 400230' 201 01 0 17 777747 0270
HRLI AC1,260700 ; AC1,260700 400231' 505 01 0 00 260700
ILDB AC1,AC1 ; AC1,AC1 400232' 134 01 0 00 000001
IMULI AC1,200000 ; AC1,200000 400233' 221 01 0 00 200000
MOVE AC0,AC2 ; NAME,AC2 400234' 200 00 0 00 000002 0269
ADD AC0,AC1 ; NAME,AC1 400235' 270 00 0 00 000001
MOVEI AC2,-31(SP) ; AC2,RESULT+1 400236' 201 02 0 17 777747 0272
HRLI AC2,170700 ; AC2,170700 400237' 505 02 0 00 170700
MOVEI AC1,4 ; AC1,4 400240' 201 01 0 00 000004
MOVEI AC4,4 ; AC4,4 400241' 201 04 0 00 000004
MOVE AC5,C.9 ; AC5,[POINT 7,P.AAE-1,34] <1,7> 400242' 200 05 0 00 400376'
EXTEND AC1,C.2 ; AC1,[CMPSN ] 400243' 123 01 0 00 400367'
JRST L.12 ; L.12 400244' 254 00 0 00 400246'
JRST L.25 ; L.25 400245' 254 00 0 00 400324'
L.12: CAME AC0,C.10 ; NAME,[23242515] 400246' 312 00 0 00 400377' 0284
JRST L.13 ; L.13 400247' 254 00 0 00 400252'
MOVEI AC10,R_MEM ; SUBR,R_MEM 400250' 201 10 0 00 000000V
JRST L.24 ; L.24 400251' 254 00 0 00 400323'
L.13: CAME AC0,C.11 ; NAME,[23052103] 400252' 312 00 0 00 400400'
JRST L.14 ; L.14 400253' 254 00 0 00 400256'
MOVEI AC10,R_CTL ; SUBR,R_CTL 400254' 201 10 0 00 000000V
JRST L.24 ; L.24 400255' 254 00 0 00 400323'
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 12
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (2)
L.14: CAME AC0,C.12 ; NAME,[25047125] 400256' 312 00 0 00 400401'
JRST L.15 ; L.15 400257' 254 00 0 00 400262'
MOVEI AC10,R_UNT ; SUBR,R_UNT 400260' 201 10 0 00 000000V
JRST L.24 ; L.24 400261' 254 00 0 00 400323'
L.15: CAME AC0,C.13 ; NAME,[20651120] 400262' 312 00 0 00 400402'
JRST L.16 ; L.16 400263' 254 00 0 00 400266'
MOVEI AC10,R_PRC ; SUBR,R_PRC 400264' 201 10 0 00 000000V
JRST L.24 ; L.24 400265' 254 00 0 00 400323'
L.16: CAME AC0,C.14 ; NAME,[25046123] 400266' 312 00 0 00 400403'
JRST L.17 ; L.17 400267' 254 00 0 00 400272'
MOVEI AC10,R_SLT ; SUBR,R_SLT 400270' 201 10 0 00 000000V
JRST L.24 ; L.24 400271' 254 00 0 00 400323'
L.17: CAME AC0,C.15 ; NAME,[20646114] 400272' 312 00 0 00 400404'
JRST L.18 ; L.18 400273' 254 00 0 00 400276'
MOVEI AC10,R_LLC ; SUBR,R_LLC 400274' 201 10 0 00 000000V
JRST L.24 ; L.24 400275' 254 00 0 00 400323'
L.18: CAME AC0,C.16 ; NAME,[25442504] 400276' 312 00 0 00 400405'
JRST L.19 ; L.19 400277' 254 00 0 00 400302'
MOVEI AC10,R_DEV ; SUBR,R_DEV 400300' 201 10 0 00 000000V
JRST L.24 ; L.24 400301' 254 00 0 00 400323'
L.19: CAME AC0,C.17 ; NAME,[20451124] 400302' 312 00 0 00 400406'
JRST L.20 ; L.20 400303' 254 00 0 00 400306'
MOVEI AC10,R_TRB ; SUBR,R_TRB 400304' 201 10 0 00 000000V
JRST L.24 ; L.24 400305' 254 00 0 00 400323'
L.20: CAME AC0,C.18 ; NAME,[22651524] 400306' 312 00 0 00 400407'
JRST L.21 ; L.21 400307' 254 00 0 00 400312'
MOVEI AC10,R_TSK ; SUBR,R_TSK 400310' 201 10 0 00 000000V
JRST L.24 ; L.24 400311' 254 00 0 00 400323'
L.21: CAME AC0,C.19 ; NAME,[25451104] 400312' 312 00 0 00 400410'
JRST L.22 ; L.22 400313' 254 00 0 00 400316'
MOVEI AC10,R_DRV ; SUBR,R_DRV 400314' 201 10 0 00 000000V
JRST L.24 ; L.24 400315' 254 00 0 00 400323'
L.22: CAME AC0,C.20 ; NAME,[21047105] 400316' 312 00 0 00 400411'
JRST L.23 ; L.23 400317' 254 00 0 00 400322'
MOVEI AC10,R_END ; SUBR,R_END 400320' 201 10 0 00 000000V
JRST L.24 ; L.24 400321' 254 00 0 00 400323'
L.23: SETZ AC10, ; SUBR, 400322' 400 10 0 00 000000
L.24: JUMPN AC10,L.26 ; SUBR,L.26 400323' 326 10 0 00 400337' 0300
L.25: SETZM 0(SP) ; 0(SP) 400324' 402 00 0 17 000000 0303
PUSH SP,C.7 ; SP,[30] 400325' 261 17 0 00 400374'
PUSH SP,C.8 ; SP,[0,,ROUTINE_NAME] 400326' 261 17 0 00 400375'
PUSH SP,AC14 ; SP,AC14 400327' 261 17 0 00 000014
PUSH SP,C.4 ; SP,[0] 400330' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 400331' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 400332' 261 17 0 00 400371'
PUSHJ SP,ERRMSG ; SP,ERRMSG 400333' 260 17 0 00 000000*
SETO AC11, ; LOOK_DONE, 400334' 474 11 0 00 000000 0304
ADJSP SP,-4 ; SP,-4 400335' 105 17 0 00 777774 0302
JRST L.27 ; L.27 400336' 254 00 0 00 400347' 0300
L.26: MOVEM AC16,-1(SP) ; AC16,-1(SP) 400337' 202 16 0 17 777777 0308
MOVEM AC13,0(SP) ; AC13,0(SP) 400340' 202 13 0 17 000000
MOVEI AC1,-6(SP) ; AC1,SAVE_CHAR 400341' 201 01 0 17 777772
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 13
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (2)
PUSH SP,AC1 ; SP,AC1 400342' 261 17 0 00 000001
PUSH SP,AC12 ; SP,AC12 400343' 261 17 0 00 000012
PUSHJ SP,0(AC10) ; SP,0(SUBR) 400344' 260 17 0 10 000000
CAIN AC10,R_END ; SUBR,R_END 400345' 306 10 0 00 000000V 0310
MOVEI AC11,1 ; LOOK_DONE,1 400346' 201 11 0 00 000001
L.27: ADJSP SP,-2 ; SP,-2 400347' 105 17 0 00 777776 0252
L.28: ADJSP SP,-2 ; SP,-2 400350' 105 17 0 00 777776 0240
JRST L.9 ; L.9 400351' 254 00 0 00 400163' 0239
L.29: MOVEM AC16,0(SP) ; AC16,0(SP) 400352' 202 16 0 17 000000 0324
PUSHJ SP,CLOSE ; SP,CLOSE 400353' 260 17 0 00 000000*
ADJSP SP,-4 ; SP,-4 400354' 105 17 0 00 777774 0180
L.30: ADJSP SP,-25 ; SP,-25 400355' 105 17 0 00 777753 0130
POP SP,AC16 ; SP,AC16 400356' 262 17 0 00 000016
POP SP,AC14 ; SP,AC14 400357' 262 17 0 00 000014
POP SP,AC13 ; SP,AC13 400360' 262 17 0 00 000013
POP SP,AC12 ; SP,AC12 400361' 262 17 0 00 000012
POP SP,AC11 ; SP,AC11 400362' 262 17 0 00 000011
POP SP,AC10 ; SP,AC10 400363' 262 17 0 00 000010
POP SP,AC0 ; SP,AC0 400364' 262 17 0 00 000000
POPJ SP, ; SP, 400365' 263 17 0 00 000000
C.1: CMPSE ; 400366' 002 00 0 00 000000
C.2: CMPSN ; 400367' 006 00 0 00 000000
C.3: EXP 1 ; 1 400370' 000000 000001
C.4: EXP 0 ; 0 400371' 000000 000000
C.5: XWD 0,P.AAB ; 0,P.AAB 400372' 000000 400001'
C.6: POINT 7,P.AAD-1,34 ; 7,P.AAD-1,34 400373' 01 07 0 00 400006'
C.7: EXP 30 ; 30 400374' 000000 000030
C.8: XWD 0,ROUTINE_NAME ; 0,ROUTINE_NAME 400375' 000000 400000'
C.9: POINT 7,P.AAE-1,34 ; 7,P.AAE-1,34 400376' 01 07 0 00 400010'
C.10: EXP 23242515 ; 23242515 400377' 000023 242515
C.11: EXP 23052103 ; 23052103 400400' 000023 052103
C.12: EXP 25047125 ; 25047125 400401' 000025 047125
C.13: EXP 20651120 ; 20651120 400402' 000020 651120
C.14: EXP 25046123 ; 25046123 400403' 000025 046123
C.15: EXP 20646114 ; 20646114 400404' 000020 646114
C.16: EXP 25442504 ; 25442504 400405' 000025 442504
C.17: EXP 20451124 ; 20451124 400406' 000020 451124
C.18: EXP 22651524 ; 22651524 400407' 000022 651524
C.19: EXP 25451104 ; 25451104 400410' 000025 451104
C.20: EXP 21047105 ; 21047105 400411' 000021 047105
; Routine Size: 251 words
; 0336
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 14
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (3)
; 0337 ROUTINE CLASS (CHAR) = !CLASSIFY A CHARACTER
; 0338
; 0339 !++
; 0340 ! FUNCTIONAL DESCRIPTION:
; 0341 !
; 0342 ! CLASSIFY A CHARACTER AS TO ALPHABETIC, NUMERIC, SPECIAL OR CONTROL/DEL.
; 0343 !
; 0344 ! FORMAL PARAMETERS:
; 0345 !
; 0346 ! CHAR - THE CHARACTER TO CLASSIFY
; 0347 !
; 0348 ! IMPLICIT INPUTS:
; 0349 !
; 0350 ! NONE
; 0351 !
; 0352 ! IMPLICIT OUTPUTS:
; 0353 !
; 0354 ! NONE
; 0355 !
; 0356 ! ROUTINE VALUE:
; 0357 !
; 0358 ! 1 = ALPHABETIC, 2 = NUMERIC, 3 = SPECIAL, 4 = CONTROL OR DEL
; 0359 !
; 0360 ! SIDE EFFECTS
; 0361 !
; 0362 ! NONE
; 0363 !
; 0364 !--
; 0365
; 0366 BEGIN
; 0367
; 0368 BIND
; 0369 ROUTINE_NAME = UPLIT (%ASCIZ'CLASS');
; 0370
; 0371 SELECTONE .CHAR OF
; 0372 SET
; 0373
; 0374 [%C'A' TO %C'Z', %C'a' TO %C'z', %C'$', %C'.'] :
; 0375 1; !ALPHABETIC (INCLUDING $ AND .)
; 0376
; 0377 [%C'0' TO %C'9'] :
; 0378 2; !NUMERIC
; 0379
; 0380 [%C'!', !
; 0381 %C'"', !
; 0382 %C'#', !
; 0383 %C'%', !
; 0384 %C'&', !
; 0385 %O'47', !SINGLE QUOTE
; 0386 %C'(', !
; 0387 %C')', !
; 0388 %C'*', !
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 15
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (3)
; 0389 %C'+', !
; 0390 %C',', !
; 0391 %C'-', !
; 0392 %C'/', !
; 0393 %C':', !
; 0394 %C';', !
; 0395 %C'<', !
; 0396 %C'=', !
; 0397 %C'>', !
; 0398 %C'?', !
; 0399 %C'@', !
; 0400 %C'[', !
; 0401 %C'\', !
; 0402 %C']', !
; 0403 %C'^', !
; 0404 %C'_', !
; 0405 %C'`', !
; 0406 %C'{', !
; 0407 %C'|', !
; 0408 %C'}', !
; 0409 %C'~'] :
; 0410 3; !SPECIAL (BUT NEITHER $ NOR .)
; 0411
; 0412 [OTHERWISE] :
; 0413 4; !CONTROL AND DEL
; 0414 TES
; 0415
; 0416 END;
P.AAG: BYTE (7)"C","L","A","S","S" ; CLASS 400412' 103 114 101 123 123
BYTE (7)000,000,000,000,000 ; 400413' 000 000 000 000 000
ROUTINE_NAME= P.AAG ; 000000 400412'
CLASS: MOVE AC1,-1(SP) ; AC1,CHAR 400414' 200 01 0 17 777777 0371
CAIE AC1,44 ; AC1,44 400415' 302 01 0 00 000044
CAIN AC1,56 ; AC1,56 400416' 306 01 0 00 000056
JRST L.32 ; L.32 400417' 254 00 0 00 400427'
CAIGE AC1,101 ; AC1,101 400420' 305 01 0 00 000101
JRST L.31 ; L.31 400421' 254 00 0 00 400424'
CAIG AC1,132 ; AC1,132 400422' 307 01 0 00 000132
JRST L.32 ; L.32 400423' 254 00 0 00 400427'
L.31: CAIL AC1,141 ; AC1,141 400424' 301 01 0 00 000141
CAILE AC1,172 ; AC1,172 400425' 303 01 0 00 000172
JRST L.33 ; L.33 400426' 254 00 0 00 400431'
L.32: MOVEI AC1,1 ; AC1,1 400427' 201 01 0 00 000001
POPJ SP, ; SP, 400430' 263 17 0 00 000000
L.33: CAIL AC1,60 ; AC1,60 400431' 301 01 0 00 000060
CAILE AC1,71 ; AC1,71 400432' 303 01 0 00 000071
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 16
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (3)
JRST L.34 ; L.34 400433' 254 00 0 00 400436'
MOVEI AC1,2 ; AC1,2 400434' 201 01 0 00 000002
POPJ SP, ; SP, 400435' 263 17 0 00 000000
L.34: CAIGE AC1,41 ; AC1,41 400436' 305 01 0 00 000041
JRST L.35 ; L.35 400437' 254 00 0 00 400442'
CAIG AC1,43 ; AC1,43 400440' 307 01 0 00 000043
JRST L.39 ; L.39 400441' 254 00 0 00 400463'
L.35: CAIGE AC1,45 ; AC1,45 400442' 305 01 0 00 000045
JRST L.36 ; L.36 400443' 254 00 0 00 400446'
CAIG AC1,55 ; AC1,55 400444' 307 01 0 00 000055
JRST L.39 ; L.39 400445' 254 00 0 00 400463'
L.36: CAIN AC1,57 ; AC1,57 400446' 306 01 0 00 000057
JRST L.39 ; L.39 400447' 254 00 0 00 400463'
CAIGE AC1,72 ; AC1,72 400450' 305 01 0 00 000072
JRST L.37 ; L.37 400451' 254 00 0 00 400454'
CAIG AC1,100 ; AC1,100 400452' 307 01 0 00 000100
JRST L.39 ; L.39 400453' 254 00 0 00 400463'
L.37: CAIGE AC1,133 ; AC1,133 400454' 305 01 0 00 000133
JRST L.38 ; L.38 400455' 254 00 0 00 400460'
CAIG AC1,140 ; AC1,140 400456' 307 01 0 00 000140
JRST L.39 ; L.39 400457' 254 00 0 00 400463'
L.38: CAIL AC1,173 ; AC1,173 400460' 301 01 0 00 000173
CAILE AC1,176 ; AC1,176 400461' 303 01 0 00 000176
JRST L.40 ; L.40 400462' 254 00 0 00 400465'
L.39: MOVEI AC1,3 ; AC1,3 400463' 201 01 0 00 000003
POPJ SP, ; SP, 400464' 263 17 0 00 000000
L.40: MOVEI AC1,4 ; AC1,4 400465' 201 01 0 00 000004
POPJ SP, ; SP, 400466' 263 17 0 00 000000 0337
; Routine Size: 43 words
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 17
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (4)
; 0417 ROUTINE SCAN (FILE_CHAN, FILE_PTR, SAVE_CHAR, RESULT) : NOVALUE = !SCAN NEXT ATOM
; 0418
; 0419 !++
; 0420 ! FUNCTIONAL DESCRIPTION:
; 0421 !
; 0422 ! SCAN NEXT ATOM (NAME, NUMBER, SPECIAL CHAR) FROM THE FILE
; 0423 !
; 0424 ! FORMAL PARAMETERS:
; 0425 !
; 0426 ! FILE_CHAN - CHANNEL NUMBER ON WHICH TO READ
; 0427 ! FILE_PTR - FILE BLOCK WITH FILE NAME FILLED IN
; 0428 ! SAVE_CHAR - ADDRESS OF CHARACTER SAVED FROM LAST CALL.
; 0429 ! SET TO -1 ON FIRST CALL.
; 0430 ! RESULT - VECTOR INTO WHICH TO STORE RESULTS
; 0431 !
; 0432 ! IMPLICIT INPUTS:
; 0433 !
; 0434 ! NONE
; 0435 !
; 0436 ! IMPLICIT OUTPUTS:
; 0437 !
; 0438 ! FILLS THE 'RESULT' ARRAY WITH THE NEXT ATOM SCANNED
; 0439 !
; 0440 ! ROUTINE VALUE:
; 0441 !
; 0442 ! NONE
; 0443 !
; 0444 ! SIDE EFFECTS
; 0445 !
; 0446 ! READS THE SPECIFIED FILE
; 0447 !
; 0448 !--
; 0449
; 0450 BEGIN
; 0451
; 0452 BIND
; 0453 ROUTINE_NAME = UPLIT (%ASCIZ'SCAN-TEXT-FILE');
; 0454
; 0455 MAP
; 0456 FILE_PTR : REF FILE_BLOCK,
; 0457 RESULT : REF VECTOR;
; 0458
; 0459 LOCAL
; 0460 CHAR,
; 0461 SCAN_DONE,
; 0462 DECIMAL_NUM,
; 0463 OCTAL_NUM,
; 0464 SCAN_POINTER;
; 0465
; 0466 !
; 0467 ! CLASSIFY ATOM BASED ON FIRST CHARACTER. LEADING BLANKS,
; 0468 ! TABS, CARRIAGE RETURNS AND FORM FEEDS ARE SKIPPED.
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 18
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (4)
; 0469 !
; 0470 CHAR = ..SAVE_CHAR;
; 0471
; 0472 IF (.CHAR EQL -2)
; 0473 THEN
; 0474 ERROR (UPLIT (%ASCIZ'EOF IGNORED IN SCAN'))
; 0475 ELSE
; 0476 BEGIN
; 0477
; 0478 IF (.CHAR LSS 0) THEN CHAR = INPUT (.FILE_CHAN);
; 0479
; 0480 WHILE ((.CHAR EQL %O'40') OR (.CHAR EQL %O'11') OR (.CHAR EQL %O'15') OR (.CHAR EQL %O'14')) DO
; 0481 CHAR = INPUT (.FILE_CHAN);
; 0482
; 0483 IF (.CHAR LSS 0)
; 0484 THEN
; 0485 BEGIN !END OF FILE
; 0486 RESULT [RESULT_TYPE] = 3;
; 0487 RESULT [RESULT_VALUE] = -2;
; 0488 .SAVE_CHAR = -2;
; 0489 END
; 0490 ELSE
; 0491 BEGIN !NOT END OF FILE
; 0492
; 0493 CASE CLASS (.CHAR) FROM 1 TO 4 OF
; 0494 SET
; 0495
; 0496 [1] : !ALPHABETIC (INCLUDES $ AND .)
; 0497 BEGIN
; 0498 RESULT [RESULT_TYPE] = 1;
; 0499 SCAN_POINTER = CH$PTR (RESULT [RESULT_VALUE], -1);
; 0500
; 0501 DO
; 0502 BEGIN
; 0503 CH$A_WCHAR (.CHAR, SCAN_POINTER);
; 0504 CHAR = INPUT (.FILE_CHAN);
; 0505 END
; 0506 UNTIL (CLASS (.CHAR) GTR 2);
; 0507
; 0508 CH$A_WCHAR (0, SCAN_POINTER); !TERMINATE WITH NULL
; 0509 .SAVE_CHAR = .CHAR;
; 0510 END;
; 0511
; 0512 [2] : !NUMERIC
; 0513 BEGIN
; 0514 RESULT [RESULT_TYPE] = 2;
; 0515 OCTAL_NUM = 0;
; 0516 DECIMAL_NUM = 0;
; 0517
; 0518 DO
; 0519 BEGIN
; 0520 OCTAL_NUM = (.OCTAL_NUM*8) + (.CHAR - %C'0');
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 19
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (4)
; 0521 DECIMAL_NUM = (.DECIMAL_NUM*10) + (.CHAR - %C'0');
; 0522 CHAR = INPUT (.FILE_CHAN);
; 0523 END
; 0524 UNTIL (CLASS (.CHAR) NEQ 2);
; 0525
; 0526 IF (.CHAR EQL %C'.')
; 0527 THEN
; 0528 BEGIN !NUMBER SPECIFIED AS DECIMAL
; 0529 RESULT [RESULT_VALUE] = .DECIMAL_NUM;
; 0530 .SAVE_CHAR = -1;
; 0531 END
; 0532 ELSE
; 0533 BEGIN
; 0534 RESULT [RESULT_VALUE] = .OCTAL_NUM;
; 0535 .SAVE_CHAR = .CHAR;
; 0536 END;
; 0537
; 0538 END;
; 0539
; 0540 [3] : !SPECIAL CHARACTER
; 0541 BEGIN
; 0542 RESULT [RESULT_TYPE] = 3;
; 0543 RESULT [RESULT_VALUE] = .CHAR;
; 0544 .SAVE_CHAR = -1;
; 0545 END;
; 0546
; 0547 [4] : !CONTROL CHARACTER
; 0548 BEGIN
; 0549 RESULT [RESULT_TYPE] = 3;
; 0550 RESULT [RESULT_VALUE] = -1;
; 0551 .SAVE_CHAR = -1;
; 0552 END;
; 0553 TES;
; 0554
; 0555 END;
; 0556
; 0557 IF (DEBUG GEQ 1)
; 0558 THEN
; 0559 BEGIN !DEBUG
; 0560 PCRLF (1);
; 0561 OUTSTR (1, UPLIT (%ASCIZ' SCAN: TYPE ='));
; 0562 OUTNUM (1, .RESULT [RESULT_TYPE], 8, 0);
; 0563 OUTSTR (1, UPLIT (%ASCIZ', VALUE ='));
; 0564
; 0565 CASE .RESULT [RESULT_TYPE] FROM 1 TO 3 OF
; 0566 SET
; 0567
; 0568 [1] : !NAME
; 0569 OUTSTR (1, RESULT [RESULT_VALUE]);
; 0570
; 0571 [2] : !NUMBER, PRINT IN DECIMAL
; 0572 OUTNUM (1, .RESULT [RESULT_VALUE], 10, 0);
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 20
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (4)
; 0573
; 0574 [3] : !SPECIAL CHARACTER
; 0575 BEGIN
; 0576
; 0577 IF (.RESULT [RESULT_VALUE] LSS 0)
; 0578 THEN
; 0579 OUTNUM (1, .RESULT [RESULT_VALUE], 10, 0)
; 0580 ELSE
; 0581 OUTPUT (1, .RESULT [RESULT_VALUE]);
; 0582
; 0583 END;
; 0584 TES;
; 0585
; 0586 END; !DEBUG
; 0587
; 0588 END;
; 0589
; 0590 END; !OF SCAN
P.AAH: BYTE (7)"S","C","A","N","-" ; SCAN- 400467' 123 103 101 116 055
BYTE (7)"T","E","X","T","-" ; TEXT- 400470' 124 105 130 124 055
BYTE (7)"F","I","L","E",000 ; FILE 400471' 106 111 114 105 000
P.AAI: BYTE (7)"E","O","F"," ","I" ; EOF I 400472' 105 117 106 040 111
BYTE (7)"G","N","O","R","E" ; GNORE 400473' 107 116 117 122 105
BYTE (7)"D"," ","I","N"," " ; D IN 400474' 104 040 111 116 040
BYTE (7)"S","C","A","N",000 ; SCAN 400475' 123 103 101 116 000
P.AAJ: BYTE (7)" ","S","C","A","N" ; SCAN 400476' 040 123 103 101 116
BYTE (7)":"," ","T","Y","P" ; : TYP 400477' 072 040 124 131 120
BYTE (7)"E"," ","=",000,000 ; E = 400500' 105 040 075 000 000
P.AAK: BYTE (7)","," ","V","A","L" ; , VAL 400501' 054 040 126 101 114
BYTE (7)"U","E"," ","=",000 ; UE = 400502' 125 105 040 075 000
ROUTINE_NAME= P.AAH ; 000000 400467'
SCAN: PUSH SP,AC0 ; SP,AC0 400503' 261 17 0 00 000000 0417
PUSH SP,AC10 ; SP,AC10 400504' 261 17 0 00 000010
PUSH SP,AC11 ; SP,AC11 400505' 261 17 0 00 000011
PUSH SP,AC12 ; SP,AC12 400506' 261 17 0 00 000012
PUSH SP,AC13 ; SP,AC13 400507' 261 17 0 00 000013
MOVE AC12,-7(SP) ; AC12,SAVE_CHAR 400510' 200 12 0 17 777771 0470
MOVE AC10,0(AC12) ; CHAR,0(AC12) 400511' 200 10 0 12 000000
CAME AC10,C.21 ; CHAR,[-2] 400512' 312 10 0 00 400667' 0472
JRST L.41 ; L.41 400513' 254 00 0 00 400517'
PUSH SP,C.22 ; SP,[0,,P.AAI] 400514' 261 17 0 00 400670' 0474
PUSHJ SP,ERROR ; SP,ERROR 400515' 260 17 0 00 000000*
JRST L.55 ; L.55 400516' 254 00 0 00 400660'
L.41: JUMPL AC10,L.43 ; CHAR,L.43 400517' 321 10 0 00 400527' 0478
L.42: CAIE AC10,40 ; CHAR,40 400520' 302 10 0 00 000040 0480
CAIN AC10,11 ; CHAR,11 400521' 306 10 0 00 000011
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 21
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (4)
JRST L.43 ; L.43 400522' 254 00 0 00 400527'
CAIN AC10,15 ; CHAR,15 400523' 306 10 0 00 000015
JRST L.43 ; L.43 400524' 254 00 0 00 400527'
CAIE AC10,14 ; CHAR,14 400525' 302 10 0 00 000014
JRST L.44 ; L.44 400526' 254 00 0 00 400534'
L.43: PUSH SP,-11(SP) ; SP,FILE_CHAN 400527' 261 17 0 17 777767 0481
PUSHJ SP,INPUT ; SP,INPUT 400530' 260 17 0 00 000000*
MOVE AC10,AC1 ; CHAR,AC1 400531' 200 10 0 00 000001
ADJSP SP,-1 ; SP,-1 400532' 105 17 0 00 777777
JRST L.42 ; L.42 400533' 254 00 0 00 400520' 0480
L.44: MOVE AC0,-6(SP) ; AC0,RESULT 400534' 200 00 0 17 777772 0486
MOVE AC11,AC0 ; AC11,AC0 400535' 200 11 0 00 000000 0487
ADDI AC11,1 ; AC11,1 400536' 271 11 0 00 000001
JUMPGE AC10,L.45 ; CHAR,L.45 400537' 325 10 0 00 400550' 0483
MOVEI AC1,3 ; AC1,3 400540' 201 01 0 00 000003 0486
MOVE AC2,AC0 ; AC2,AC0 400541' 200 02 0 00 000000
MOVEM AC1,0(AC2) ; AC1,0(AC2) 400542' 202 01 0 02 000000
HRROI AC1,-2 ; AC1,-2 400543' 561 01 0 00 777776 0487
MOVEM AC1,0(AC11) ; AC1,0(AC11) 400544' 202 01 0 11 000000
HRROI AC0,-2 ; AC0,-2 400545' 561 00 0 00 777776 0488
MOVEM AC0,0(AC12) ; AC0,0(AC12) 400546' 202 00 0 12 000000
JRST L.56 ; L.56 400547' 254 00 0 00 400661' 0483
L.45: PUSH SP,AC10 ; SP,CHAR 400550' 261 17 0 00 000010 0493
PUSHJ SP,CLASS ; SP,CLASS 400551' 260 17 0 00 400414'
SUBI AC1,1 ; AC1,1 400552' 275 01 0 00 000001
JRST L.46(AC1) ; L.46(AC1) 400553' 254 00 0 01 400554'
L.46: JRST L.47 ; L.47 400554' 254 00 0 00 400560'
JRST L.49 ; L.49 400555' 254 00 0 00 400611'
JRST L.52 ; L.52 400556' 254 00 0 00 400646'
JRST L.53 ; L.53 400557' 254 00 0 00 400653'
L.47: MOVEI AC1,1 ; AC1,1 400560' 201 01 0 00 000001 0498
MOVE AC2,AC0 ; AC2,AC0 400561' 200 02 0 00 000000
MOVEM AC1,0(AC2) ; AC1,0(AC2) 400562' 202 01 0 02 000000
MOVE AC1,AC11 ; AC1,AC11 400563' 200 01 0 00 000011 0499
MOVEI AC1,-1(AC1) ; AC1,-1(AC1) 400564' 201 01 0 01 777777
HRLI AC1,100700 ; AC1,100700 400565' 505 01 0 00 100700
MOVE AC0,AC1 ; SCAN_POINTER,AC1 400566' 200 00 0 00 000001
L.48: IBP AC0 ; SCAN_POINTER 400567' 133 00 0 00 000000 0503
MOVE AC1,AC0 ; AC1,SCAN_POINTER 400570' 200 01 0 00 000000
IDPB AC10,AC1 ; CHAR,AC1 400571' 136 10 0 00 000001
PUSH SP,-12(SP) ; SP,FILE_CHAN 400572' 261 17 0 17 777766 0504
PUSHJ SP,INPUT ; SP,INPUT 400573' 260 17 0 00 000000*
MOVE AC10,AC1 ; CHAR,AC1 400574' 200 10 0 00 000001
ADJSP SP,-1 ; SP,-1 400575' 105 17 0 00 777777 0502
MOVEM AC10,0(SP) ; CHAR,0(SP) 400576' 202 10 0 17 000000 0506
PUSHJ SP,CLASS ; SP,CLASS 400577' 260 17 0 00 400414'
CAIG AC1,2 ; AC1,2 400600' 307 01 0 00 000002
JRST L.48 ; L.48 400601' 254 00 0 00 400567' 0501
SETZ AC1, ; AC1, 400602' 400 01 0 00 000000 0508
IBP AC0 ; SCAN_POINTER 400603' 133 00 0 00 000000
MOVE AC2,AC0 ; AC2,SCAN_POINTER 400604' 200 02 0 00 000000
IDPB AC1,AC2 ; AC1,AC2 400605' 136 01 0 00 000002
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 22
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (4)
MOVE AC1,-10(SP) ; AC1,SAVE_CHAR 400606' 200 01 0 17 777770 0509
MOVEM AC10,0(AC1) ; CHAR,0(AC1) 400607' 202 10 0 01 000000
JRST L.55 ; L.55 400610' 254 00 0 00 400660' 0493
L.49: MOVEI AC1,2 ; AC1,2 400611' 201 01 0 00 000002 0514
MOVE AC2,AC0 ; AC2,AC0 400612' 200 02 0 00 000000
MOVEM AC1,0(AC2) ; AC1,0(AC2) 400613' 202 01 0 02 000000
SETZB AC0,AC13 ; OCTAL_NUM,DECIMAL_NUM 400614' 403 00 0 00 000013 0515
L.50: MOVE AC1,AC0 ; AC1,OCTAL_NUM 400615' 200 01 0 00 000000 0520
IMULI AC1,10 ; AC1,10 400616' 221 01 0 00 000010
ADD AC1,AC10 ; AC1,CHAR 400617' 270 01 0 00 000010
MOVE AC0,AC1 ; OCTAL_NUM,AC1 400620' 200 00 0 00 000001
SUBI AC0,60 ; OCTAL_NUM,60 400621' 275 00 0 00 000060
MOVE AC1,AC13 ; AC1,DECIMAL_NUM 400622' 200 01 0 00 000013 0521
IMULI AC1,12 ; AC1,12 400623' 221 01 0 00 000012
ADD AC1,AC10 ; AC1,CHAR 400624' 270 01 0 00 000010
MOVE AC13,AC1 ; DECIMAL_NUM,AC1 400625' 200 13 0 00 000001
SUBI AC13,60 ; DECIMAL_NUM,60 400626' 275 13 0 00 000060
PUSH SP,-12(SP) ; SP,FILE_CHAN 400627' 261 17 0 17 777766 0522
PUSHJ SP,INPUT ; SP,INPUT 400630' 260 17 0 00 000000*
MOVE AC10,AC1 ; CHAR,AC1 400631' 200 10 0 00 000001
ADJSP SP,-1 ; SP,-1 400632' 105 17 0 00 777777 0519
MOVEM AC10,0(SP) ; CHAR,0(SP) 400633' 202 10 0 17 000000 0524
PUSHJ SP,CLASS ; SP,CLASS 400634' 260 17 0 00 400414'
CAIN AC1,2 ; AC1,2 400635' 306 01 0 00 000002
JRST L.50 ; L.50 400636' 254 00 0 00 400615' 0518
CAIE AC10,56 ; CHAR,56 400637' 302 10 0 00 000056 0526
JRST L.51 ; L.51 400640' 254 00 0 00 400643'
MOVEM AC13,0(AC11) ; DECIMAL_NUM,0(AC11) 400641' 202 13 0 11 000000 0529
JRST L.54 ; L.54 400642' 254 00 0 00 400657'
L.51: MOVEM AC0,0(AC11) ; OCTAL_NUM,0(AC11) 400643' 202 00 0 11 000000 0534
MOVEM AC10,0(AC12) ; CHAR,0(AC12) 400644' 202 10 0 12 000000 0535
JRST L.55 ; L.55 400645' 254 00 0 00 400660' 0493
L.52: MOVEI AC1,3 ; AC1,3 400646' 201 01 0 00 000003 0542
MOVE AC2,AC0 ; AC2,AC0 400647' 200 02 0 00 000000
MOVEM AC1,0(AC2) ; AC1,0(AC2) 400650' 202 01 0 02 000000
MOVEM AC10,0(AC11) ; CHAR,0(AC11) 400651' 202 10 0 11 000000 0543
JRST L.54 ; L.54 400652' 254 00 0 00 400657'
L.53: MOVEI AC1,3 ; AC1,3 400653' 201 01 0 00 000003 0549
MOVE AC2,AC0 ; AC2,AC0 400654' 200 02 0 00 000000
MOVEM AC1,0(AC2) ; AC1,0(AC2) 400655' 202 01 0 02 000000
SETOM 0(AC11) ; 0(AC11) 400656' 476 00 0 11 000000 0550
L.54: SETOM 0(AC12) ; 0(AC12) 400657' 476 00 0 12 000000 0551
L.55: ADJSP SP,-1 ; SP,-1 400660' 105 17 0 00 777777 0491
L.56: POP SP,AC13 ; SP,AC13 400661' 262 17 0 00 000013 0417
POP SP,AC12 ; SP,AC12 400662' 262 17 0 00 000012
POP SP,AC11 ; SP,AC11 400663' 262 17 0 00 000011
POP SP,AC10 ; SP,AC10 400664' 262 17 0 00 000010
POP SP,AC0 ; SP,AC0 400665' 262 17 0 00 000000
POPJ SP, ; SP, 400666' 263 17 0 00 000000
C.21: EXP -2 ; -2 400667' 777777 777776
C.22: XWD 0,P.AAI ; 0,P.AAI 400670' 000000 400472'
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 23
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (4)
; Routine Size: 118 words
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 24
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (5)
; 0591 ROUTINE R_SYS (FILE_CHAN, FILE_PTR, SAVE_CHAR, VALUES) : NOVALUE = !READ SYS$DF LINE
; 0592
; 0593 !++
; 0594 ! FUNCTIONAL DESCRIPTION:
; 0595 !
; 0596 ! READ AND PROCESS THE SYS$DF LINE OF CETAB.MAC
; 0597 !
; 0598 ! FORMAL PARAMETERS:
; 0599 !
; 0600 ! FILE_CHAN - CHANNEL NUMBER ON WHICH TO READ
; 0601 ! FILE_PTR - FILE BLOCK WITH FILE NAME FILLED IN
; 0602 ! SAVE_CHAR - ADDRESS OF CHARACTER SAVED FROM LAST CALL TO SCAN
; 0603 ! VALUES - BLOCK INTO WHICH TO STORE RESULTS
; 0604 !
; 0605 ! IMPLICIT INPUTS:
; 0606 !
; 0607 ! NONE
; 0608 !
; 0609 ! IMPLICIT OUTPUTS:
; 0610 !
; 0611 ! NONE
; 0612 !
; 0613 ! ROUTINE VALUE:
; 0614 !
; 0615 ! NONE
; 0616 !
; 0617 ! SIDE EFFECTS
; 0618 !
; 0619 ! READS THE REMAINDER OF THE LINE FROM CETAB.MAC
; 0620 !
; 0621 !--
; 0622
; 0623 BEGIN
; 0624
; 0625 BIND
; 0626 ROUTINE_NAME = UPLIT (%ASCIZ'READ-SYS$DF');
; 0627
; 0628 MAP
; 0629 FILE_PTR : REF FILE_BLOCK,
; 0630 VALUES : REF VNPVAL_BLOCK;
; 0631
; 0632 LOCAL
; 0633 RESULT : VECTOR [20],
; 0634 VAL_POINTER;
; 0635
; 0636 !
; 0637 ! SCAN EACH ARGUMENT OF SYS$DF, PUTTING IT INTO THE 'VALUES' BLOCK.
; 0638 !
; 0639 VAL_POINTER = 1;
; 0640
; 0641 WHILE (.VAL_POINTER LEQ 2) DO
; 0642 BEGIN
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 25
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (5)
; 0643 SCAN (.FILE_CHAN, .FILE_PTR, .SAVE_CHAR, RESULT);
; 0644
; 0645 CASE .VAL_POINTER FROM 1 TO 2 OF
; 0646 SET
; 0647
; 0648 [1] : !Node Name
; 0649 BEGIN
; 0650
; 0651 IF (.RESULT [RESULT_TYPE] NEQ RT_NAME)
; 0652 THEN
; 0653 ERRMSG (0, 24, ROUTINE_NAME,
; 0654 FILE_PTR [FILE_NAME], 0, 0, 0)
; 0655 ELSE
; 0656 CH$MOVE (LEN_NODE_NAME, CH$PTR (RESULT [RESULT_VALUE]), CH$PTR (VALUES [NODNAM]));
; 0657
; 0658 END;
; 0659
; 0660 [2] : !Node Address
; 0661 BEGIN
; 0662
; 0663 IF (.RESULT [RESULT_TYPE] NEQ RT_NUMBER)
; 0664 THEN
; 0665 ERRMSG (0, 24, ROUTINE_NAME,
; 0666 FILE_PTR [FILE_NAME], 0, 0, 0)
; 0667 ELSE
; 0668 VALUES [NODNM] = .RESULT [RESULT_VALUE];
; 0669
; 0670 END;
; 0671 TES;
; 0672
; 0673 VAL_POINTER = .VAL_POINTER + 1;
; 0674
; 0675 IF (.VAL_POINTER LEQ 2)
; 0676 THEN
; 0677 BEGIN
; 0678 SCAN (.FILE_CHAN, .FILE_PTR, .SAVE_CHAR, RESULT);
; 0679
; 0680 IF ((.RESULT [RESULT_TYPE] NEQ RT_SPECIAL) OR (.RESULT [RESULT_VALUE] NEQ %C','))
; 0681 THEN
; 0682 ERRMSG (0,
; 0683 24, ROUTINE_NAME, FILE_PTR [FILE_NAME], 0, 0, 0);
; 0684
; 0685 END;
; 0686
; 0687 END;
; 0688
; 0689 !
; 0690 ! FINISHED WITH SYS$DF, SKIP TO END OF LINE
; 0691 !
; 0692
; 0693 DO
; 0694 SCAN (.FILE_CHAN, .FILE_PTR, .SAVE_CHAR, RESULT)
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 26
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (5)
; 0695 UNTIL ((.RESULT [RESULT_TYPE] EQL RT_SPECIAL) AND (.RESULT [RESULT_VALUE] LSS 0));
; 0696
; 0697 END; !OF R_SYS
P.AAL: BYTE (7)"R","E","A","D","-" ; READ- 400671' 122 105 101 104 055
BYTE (7)"S","Y","S","$","D" ; SYS$D 400672' 123 131 123 044 104
BYTE (7)"F",000,000,000,000 ; F 400673' 106 000 000 000 000
ROUTINE_NAME= P.AAL ; 000000 400671'
R_SYS: PUSH SP,AC0 ; SP,AC0 400674' 261 17 0 00 000000 0591
PUSH SP,AC10 ; SP,AC10 400675' 261 17 0 00 000010
ADJSP SP,24 ; SP,24 400676' 105 17 0 00 000024
MOVEI AC0,1 ; VAL_POINTER,1 400677' 201 00 0 00 000001 0639
MOVE AC10,-31(SP) ; AC10,FILE_PTR 400700' 200 10 0 17 777747 0643
L.57: CAILE AC0,2 ; VAL_POINTER,2 400701' 303 00 0 00 000002 0641
JRST L.67 ; L.67 400702' 254 00 0 00 401011'
PUSH SP,-32(SP) ; SP,FILE_CHAN 400703' 261 17 0 17 777746 0643
PUSH SP,AC10 ; SP,AC10 400704' 261 17 0 00 000010
PUSH SP,-32(SP) ; SP,SAVE_CHAR 400705' 261 17 0 17 777746
MOVEI AC1,-26(SP) ; AC1,RESULT 400706' 201 01 0 17 777752
PUSH SP,AC1 ; SP,AC1 400707' 261 17 0 00 000001
PUSHJ SP,SCAN ; SP,SCAN 400710' 260 17 0 00 400503'
MOVE AC1,-27(SP) ; AC1,RESULT 400711' 200 01 0 17 777751 0651
MOVE AC2,AC0 ; AC2,VAL_POINTER 400712' 200 02 0 00 000000 0645
SUBI AC2,1 ; AC2,1 400713' 275 02 0 00 000001
JRST L.58(AC2) ; L.58(AC2) 400714' 254 00 0 02 400715'
L.58: JRST L.59 ; L.59 400715' 254 00 0 00 400717'
JRST L.60 ; L.60 400716' 254 00 0 00 400733'
L.59: CAIE AC1,1 ; AC1,1 400717' 302 01 0 00 000001 0651
JRST L.61 ; L.61 400720' 254 00 0 00 400735'
MOVEI AC2,-27(SP) ; AC2,RESULT 400721' 201 02 0 17 777751 0656
HRLI AC2,10700 ; AC2,10700 400722' 505 02 0 00 010700
MOVE AC1,-33(SP) ; AC1,VALUES 400723' 200 01 0 17 777745
MOVEI AC5,112(AC1) ; AC5,112(AC1) 400724' 201 05 0 01 000112
HRLI AC5,10700 ; AC5,10700 400725' 505 05 0 00 010700
MOVEI AC1,6 ; AC1,6 400726' 201 01 0 00 000006
MOVEI AC4,6 ; AC4,6 400727' 201 04 0 00 000006
EXTEND AC1,C.23 ; AC1,[MOVSLJ ] 400730' 123 01 0 00 401030'
JFCL ; 400731' 255 00 0 00 000000
JRST L.63 ; L.63 400732' 254 00 0 00 400754' 0645
L.60: CAIN AC1,2 ; AC1,2 400733' 306 01 0 00 000002 0663
JRST L.62 ; L.62 400734' 254 00 0 00 400751'
L.61: SETZM 0(SP) ; 0(SP) 400735' 402 00 0 17 000000 0665
PUSH SP,C.7 ; SP,[30] 400736' 261 17 0 00 400374'
PUSH SP,C.24 ; SP,[0,,ROUTINE_NAME] 400737' 261 17 0 00 401031'
MOVE AC1,AC10 ; AC1,AC10 400740' 200 01 0 00 000010 0666
ADDI AC1,2 ; AC1,2 400741' 271 01 0 00 000002
PUSH SP,AC1 ; SP,AC1 400742' 261 17 0 00 000001
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 27
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (5)
PUSH SP,C.4 ; SP,[0] 400743' 261 17 0 00 400371' 0665
PUSH SP,C.4 ; SP,[0] 400744' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 400745' 261 17 0 00 400371'
PUSHJ SP,ERRMSG ; SP,ERRMSG 400746' 260 17 0 00 000000*
ADJSP SP,-6 ; SP,-6 400747' 105 17 0 00 777772
JRST L.63 ; L.63 400750' 254 00 0 00 400754' 0663
L.62: MOVE AC1,-33(SP) ; AC1,VALUES 400751' 200 01 0 17 777745 0668
MOVE AC2,-26(SP) ; AC2,RESULT+1 400752' 200 02 0 17 777752
HRRM AC2,115(AC1) ; AC2,115(AC1) 400753' 542 02 0 01 000115
L.63: ADDI AC0,1 ; VAL_POINTER,1 400754' 271 00 0 00 000001 0673
CAILE AC0,2 ; VAL_POINTER,2 400755' 303 00 0 00 000002 0675
JRST L.66 ; L.66 400756' 254 00 0 00 401007'
PUSH SP,-36(SP) ; SP,FILE_CHAN 400757' 261 17 0 17 777742 0678
PUSH SP,AC10 ; SP,AC10 400760' 261 17 0 00 000010
PUSH SP,-36(SP) ; SP,SAVE_CHAR 400761' 261 17 0 17 777742
MOVEI AC1,-32(SP) ; AC1,RESULT 400762' 201 01 0 17 777746
PUSH SP,AC1 ; SP,AC1 400763' 261 17 0 00 000001
PUSHJ SP,SCAN ; SP,SCAN 400764' 260 17 0 00 400503'
MOVEI AC1,3 ; AC1,3 400765' 201 01 0 00 000003 0680
CAME AC1,-33(SP) ; AC1,RESULT 400766' 312 01 0 17 777745
JRST L.64 ; L.64 400767' 254 00 0 00 400773'
MOVEI AC1,54 ; AC1,54 400770' 201 01 0 00 000054
CAMN AC1,-32(SP) ; AC1,RESULT+1 400771' 316 01 0 17 777746
JRST L.65 ; L.65 400772' 254 00 0 00 401006'
L.64: SETZM 0(SP) ; 0(SP) 400773' 402 00 0 17 000000 0682
PUSH SP,C.7 ; SP,[30] 400774' 261 17 0 00 400374'
PUSH SP,C.24 ; SP,[0,,ROUTINE_NAME] 400775' 261 17 0 00 401031'
MOVE AC1,AC10 ; AC1,AC10 400776' 200 01 0 00 000010 0683
ADDI AC1,2 ; AC1,2 400777' 271 01 0 00 000002
PUSH SP,AC1 ; SP,AC1 401000' 261 17 0 00 000001
PUSH SP,C.4 ; SP,[0] 401001' 261 17 0 00 400371' 0682
PUSH SP,C.4 ; SP,[0] 401002' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 401003' 261 17 0 00 400371'
PUSHJ SP,ERRMSG ; SP,ERRMSG 401004' 260 17 0 00 000000*
ADJSP SP,-6 ; SP,-6 401005' 105 17 0 00 777772
L.65: ADJSP SP,-4 ; SP,-4 401006' 105 17 0 00 777774 0677
L.66: ADJSP SP,-4 ; SP,-4 401007' 105 17 0 00 777774 0642
JRST L.57 ; L.57 401010' 254 00 0 00 400701' 0641
L.67: PUSH SP,-32(SP) ; SP,FILE_CHAN 401011' 261 17 0 17 777746 0694
PUSH SP,AC10 ; SP,AC10 401012' 261 17 0 00 000010
PUSH SP,-32(SP) ; SP,SAVE_CHAR 401013' 261 17 0 17 777746
MOVEI AC0,-26(SP) ; AC0,RESULT 401014' 201 00 0 17 777752
PUSH SP,AC0 ; SP,AC0 401015' 261 17 0 00 000000
PUSHJ SP,SCAN ; SP,SCAN 401016' 260 17 0 00 400503'
ADJSP SP,-4 ; SP,-4 401017' 105 17 0 00 777774
MOVEI AC0,3 ; AC0,3 401020' 201 00 0 00 000003 0695
CAMN AC0,-23(SP) ; AC0,RESULT 401021' 316 00 0 17 777755
SKIPL -22(SP) ; RESULT+1 401022' 331 00 0 17 777756
JRST L.67 ; L.67 401023' 254 00 0 00 401011' 0693
ADJSP SP,-24 ; SP,-24 401024' 105 17 0 00 777754 0591
POP SP,AC10 ; SP,AC10 401025' 262 17 0 00 000010
POP SP,AC0 ; SP,AC0 401026' 262 17 0 00 000000
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 28
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (5)
POPJ SP, ; SP, 401027' 263 17 0 00 000000
C.23: MOVSLJ ; 401030' 016 00 0 00 000000
C.24: XWD 0,ROUTINE_NAME ; 0,ROUTINE_NAME 401031' 000000 400671'
; Routine Size: 94 words
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 29
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (6)
; 0698 ROUTINE R_MEM (FILE_CHAN, FILE_PTR, SAVE_CHAR, VALUES) : NOVALUE = !READ BUF$DF LINE
; 0699
; 0700 !++
; 0701 ! FUNCTIONAL DESCRIPTION:
; 0702 !
; 0703 ! READ AND PROCESS THE MEM$DF LINE OF CETAB.MAC
; 0704 !
; 0705 ! FORMAL PARAMETERS:
; 0706 !
; 0707 ! FILE_CHAN - CHANNEL NUMBER ON WHICH TO READ
; 0708 ! FILE_PTR - FILE BLOCK WITH FILE NAME FILLED IN
; 0709 ! SAVE_CHAR - ADDRESS OF CHARACTER SAVED FROM LAST CALL TO SCAN
; 0710 ! VALUES - BLOCK INTO WHICH TO STORE RESULTS
; 0711 !
; 0712 ! IMPLICIT INPUTS:
; 0713 !
; 0714 ! NONE
; 0715 !
; 0716 ! IMPLICIT OUTPUTS:
; 0717 !
; 0718 ! NONE
; 0719 !
; 0720 ! ROUTINE VALUE:
; 0721 !
; 0722 ! NONE
; 0723 !
; 0724 ! SIDE EFFECTS
; 0725 !
; 0726 ! READS THE REMAINDER OF THE LINE FROM CETAB.MAC
; 0727 !
; 0728 !--
; 0729
; 0730 BEGIN
; 0731
; 0732 BIND
; 0733 ROUTINE_NAME = UPLIT (%ASCIZ'READ-MEM$DF');
; 0734
; 0735 MAP
; 0736 FILE_PTR : REF FILE_BLOCK,
; 0737 VALUES : REF VNPVAL_BLOCK;
; 0738
; 0739 LOCAL
; 0740 RESULT : VECTOR [20],
; 0741 VAL_POINTER;
; 0742
; 0743 !
; 0744 ! SCAN EACH ARGUMENT OF MEM$DF, PUTTING IT INTO THE 'VALUES' BLOCK.
; 0745 !
; 0746 VAL_POINTER = 1;
; 0747
; 0748 WHILE (.VAL_POINTER LEQ 2) DO
; 0749 BEGIN
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 30
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (6)
; 0750 SCAN (.FILE_CHAN, .FILE_PTR, .SAVE_CHAR, RESULT);
; 0751
; 0752 IF (.RESULT [RESULT_TYPE] NEQ RT_NUMBER)
; 0753 THEN
; 0754 ERRMSG (0, 24, ROUTINE_NAME, FILE_PTR [FILE_NAME], 0,
; 0755 0, 0)
; 0756 ELSE
; 0757 BEGIN
; 0758
; 0759 CASE .VAL_POINTER FROM 1 TO 2 OF
; 0760 SET
; 0761
; 0762 [1] :
; 0763 VALUES [DSR] = .RESULT [RESULT_VALUE];
; 0764
; 0765 [2] :
; 0766 VALUES [COR] = .RESULT [RESULT_VALUE];
; 0767
; 0768 TES;
; 0769
; 0770 VAL_POINTER = .VAL_POINTER + 1;
; 0771
; 0772 IF (.VAL_POINTER LEQ 2)
; 0773 THEN
; 0774 BEGIN
; 0775 SCAN (.FILE_CHAN, .FILE_PTR, .SAVE_CHAR, RESULT);
; 0776
; 0777 IF ((.RESULT [RESULT_TYPE] NEQ RT_SPECIAL) OR (.RESULT [RESULT_VALUE] NEQ %C','))
; 0778 THEN
; 0779 ERRMSG (0, 24, ROUTINE_NAME, FILE_PTR [FILE_NAME], 0, 0, 0);
; 0780
; 0781 END;
; 0782
; 0783 END;
; 0784
; 0785 END;
; 0786
; 0787 !
; 0788 ! FINISHED WITH MEM$DF, SKIP TO END OF LINE
; 0789 !
; 0790
; 0791 DO
; 0792 SCAN (.FILE_CHAN, .FILE_PTR, .SAVE_CHAR, RESULT)
; 0793 UNTIL ((.RESULT [RESULT_TYPE] EQL RT_SPECIAL) AND (.RESULT [RESULT_VALUE] LSS 0));
; 0794
; 0795 END; !OF R_MEM
P.AAM: BYTE (7)"R","E","A","D","-" ; READ- 401032' 122 105 101 104 055
BYTE (7)"M","E","M","$","D" ; MEM$D 401033' 115 105 115 044 104
BYTE (7)"F",000,000,000,000 ; F 401034' 106 000 000 000 000
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 31
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (6)
ROUTINE_NAME= P.AAM ; 000000 401032'
R_MEM: PUSH SP,AC0 ; SP,AC0 401035' 261 17 0 00 000000 0698
PUSH SP,AC10 ; SP,AC10 401036' 261 17 0 00 000010
ADJSP SP,24 ; SP,24 401037' 105 17 0 00 000024
MOVEI AC0,1 ; VAL_POINTER,1 401040' 201 00 0 00 000001 0746
MOVE AC10,-31(SP) ; AC10,FILE_PTR 401041' 200 10 0 17 777747 0750
L.68: CAILE AC0,2 ; VAL_POINTER,2 401042' 303 00 0 00 000002 0748
JRST L.77 ; L.77 401043' 254 00 0 00 401141'
PUSH SP,-32(SP) ; SP,FILE_CHAN 401044' 261 17 0 17 777746 0750
PUSH SP,AC10 ; SP,AC10 401045' 261 17 0 00 000010
PUSH SP,-32(SP) ; SP,SAVE_CHAR 401046' 261 17 0 17 777746
MOVEI AC1,-26(SP) ; AC1,RESULT 401047' 201 01 0 17 777752
PUSH SP,AC1 ; SP,AC1 401050' 261 17 0 00 000001
PUSHJ SP,SCAN ; SP,SCAN 401051' 260 17 0 00 400503'
MOVEI AC1,2 ; AC1,2 401052' 201 01 0 00 000002 0752
CAMN AC1,-27(SP) ; AC1,RESULT 401053' 316 01 0 17 777751
JRST L.69 ; L.69 401054' 254 00 0 00 401071'
SETZM 0(SP) ; 0(SP) 401055' 402 00 0 17 000000 0754
PUSH SP,C.7 ; SP,[30] 401056' 261 17 0 00 400374'
PUSH SP,C.25 ; SP,[0,,ROUTINE_NAME] 401057' 261 17 0 00 401160'
MOVE AC1,AC10 ; AC1,AC10 401060' 200 01 0 00 000010
ADDI AC1,2 ; AC1,2 401061' 271 01 0 00 000002
PUSH SP,AC1 ; SP,AC1 401062' 261 17 0 00 000001
PUSH SP,C.4 ; SP,[0] 401063' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 401064' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 401065' 261 17 0 00 400371'
PUSHJ SP,ERRMSG ; SP,ERRMSG 401066' 260 17 0 00 000000*
ADJSP SP,-6 ; SP,-6 401067' 105 17 0 00 777772
JRST L.76 ; L.76 401070' 254 00 0 00 401137' 0752
L.69: MOVE AC1,-33(SP) ; AC1,VALUES 401071' 200 01 0 17 777745 0763
MOVE AC2,AC0 ; AC2,VAL_POINTER 401072' 200 02 0 00 000000 0759
SUBI AC2,1 ; AC2,1 401073' 275 02 0 00 000001
JRST L.70(AC2) ; L.70(AC2) 401074' 254 00 0 02 401075'
L.70: JRST L.71 ; L.71 401075' 254 00 0 00 401077'
JRST L.72 ; L.72 401076' 254 00 0 00 401102'
L.71: MOVE AC2,-26(SP) ; AC2,RESULT+1 401077' 200 02 0 17 777752 0763
HRLM AC2,115(AC1) ; AC2,115(AC1) 401100' 506 02 0 01 000115
JRST L.73 ; L.73 401101' 254 00 0 00 401104' 0759
L.72: MOVE AC2,-26(SP) ; AC2,RESULT+1 401102' 200 02 0 17 777752 0766
HRRM AC2,116(AC1) ; AC2,116(AC1) 401103' 542 02 0 01 000116
L.73: ADDI AC0,1 ; VAL_POINTER,1 401104' 271 00 0 00 000001 0770
CAILE AC0,2 ; VAL_POINTER,2 401105' 303 00 0 00 000002 0772
JRST L.76 ; L.76 401106' 254 00 0 00 401137'
PUSH SP,-36(SP) ; SP,FILE_CHAN 401107' 261 17 0 17 777742 0775
PUSH SP,AC10 ; SP,AC10 401110' 261 17 0 00 000010
PUSH SP,-36(SP) ; SP,SAVE_CHAR 401111' 261 17 0 17 777742
MOVEI AC1,-32(SP) ; AC1,RESULT 401112' 201 01 0 17 777746
PUSH SP,AC1 ; SP,AC1 401113' 261 17 0 00 000001
PUSHJ SP,SCAN ; SP,SCAN 401114' 260 17 0 00 400503'
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 32
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (6)
MOVEI AC1,3 ; AC1,3 401115' 201 01 0 00 000003 0777
CAME AC1,-33(SP) ; AC1,RESULT 401116' 312 01 0 17 777745
JRST L.74 ; L.74 401117' 254 00 0 00 401123'
MOVEI AC1,54 ; AC1,54 401120' 201 01 0 00 000054
CAMN AC1,-32(SP) ; AC1,RESULT+1 401121' 316 01 0 17 777746
JRST L.75 ; L.75 401122' 254 00 0 00 401136'
L.74: SETZM 0(SP) ; 0(SP) 401123' 402 00 0 17 000000 0779
PUSH SP,C.7 ; SP,[30] 401124' 261 17 0 00 400374'
PUSH SP,C.25 ; SP,[0,,ROUTINE_NAME] 401125' 261 17 0 00 401160'
MOVE AC1,AC10 ; AC1,AC10 401126' 200 01 0 00 000010
ADDI AC1,2 ; AC1,2 401127' 271 01 0 00 000002
PUSH SP,AC1 ; SP,AC1 401130' 261 17 0 00 000001
PUSH SP,C.4 ; SP,[0] 401131' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 401132' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 401133' 261 17 0 00 400371'
PUSHJ SP,ERRMSG ; SP,ERRMSG 401134' 260 17 0 00 000000*
ADJSP SP,-6 ; SP,-6 401135' 105 17 0 00 777772
L.75: ADJSP SP,-4 ; SP,-4 401136' 105 17 0 00 777774 0774
L.76: ADJSP SP,-4 ; SP,-4 401137' 105 17 0 00 777774 0749
JRST L.68 ; L.68 401140' 254 00 0 00 401042' 0748
L.77: PUSH SP,-32(SP) ; SP,FILE_CHAN 401141' 261 17 0 17 777746 0792
PUSH SP,AC10 ; SP,AC10 401142' 261 17 0 00 000010
PUSH SP,-32(SP) ; SP,SAVE_CHAR 401143' 261 17 0 17 777746
MOVEI AC0,-26(SP) ; AC0,RESULT 401144' 201 00 0 17 777752
PUSH SP,AC0 ; SP,AC0 401145' 261 17 0 00 000000
PUSHJ SP,SCAN ; SP,SCAN 401146' 260 17 0 00 400503'
ADJSP SP,-4 ; SP,-4 401147' 105 17 0 00 777774
MOVEI AC0,3 ; AC0,3 401150' 201 00 0 00 000003 0793
CAMN AC0,-23(SP) ; AC0,RESULT 401151' 316 00 0 17 777755
SKIPL -22(SP) ; RESULT+1 401152' 331 00 0 17 777756
JRST L.77 ; L.77 401153' 254 00 0 00 401141' 0791
ADJSP SP,-24 ; SP,-24 401154' 105 17 0 00 777754 0698
POP SP,AC10 ; SP,AC10 401155' 262 17 0 00 000010
POP SP,AC0 ; SP,AC0 401156' 262 17 0 00 000000
POPJ SP, ; SP, 401157' 263 17 0 00 000000
C.25: XWD 0,ROUTINE_NAME ; 0,ROUTINE_NAME 401160' 000000 401032'
; Routine Size: 84 words
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 33
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (7)
; 0796 ROUTINE R_PRC (FILE_CHAN, FILE_PTR, SAVE_CHAR, VALUES) : NOVALUE = !Read PRC$DF Line
; 0797
; 0798 !++
; 0799 ! FUNCTIONAL DESCRIPTION:
; 0800 !
; 0801 ! Read and process the PRC$DF line of CETAB.MAC
; 0802 !
; 0803 ! FORMAL PARAMETERS:
; 0804 !
; 0805 ! FILE_CHAN - Channel Number On Which To Read
; 0806 ! FILE_PTR - File Block With File Name Filled In
; 0807 ! SAVE_CHAR - Address Of Character Saved From Last Call To Scan
; 0808 ! VALUES - Block Into Which To Store Results
; 0809 !
; 0810 ! IMPLICIT INPUTS:
; 0811 !
; 0812 ! NONE
; 0813 !
; 0814 ! IMPLICIT OUTPUTS:
; 0815 !
; 0816 ! Chain of MCB Process blocks added to VALUES[MCB_CHAIN]
; 0817 !
; 0818 ! ROUTINE VALUE:
; 0819 !
; 0820 ! NONE
; 0821 !
; 0822 ! SIDE EFFECTS
; 0823 !
; 0824 ! Reads the remainder of the line from CETAB.MAC
; 0825 !
; 0826 !--
; 0827
; 0828 BEGIN
; 0829
; 0830 BIND
; 0831 ROUTINE_NAME = UPLIT (%ASCIZ'READ-PRC$DF');
; 0832
; 0833 MAP
; 0834 FILE_PTR : REF FILE_BLOCK,
; 0835 VALUES : REF VNPVAL_BLOCK;
; 0836
; 0837 LOCAL
; 0838 RESULT : VECTOR [20],
; 0839 VAL_POINTER,
; 0840 CHAR,
; 0841 SCAN_DONE,
; 0842 STR_PTR,
; 0843 MCB_PTR : REF VNPMCB_BLOCK;
; 0844
; 0845 !
; 0846 ! Get a block to put the process information
; 0847 !
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 34
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (7)
; 0848
; 0849 IF ((MCB_PTR = GETBLK (VNPMCB_TYP, VNPMCB_LEN)) EQL 0)
; 0850 THEN
; 0851 ERRMSG (0, 1, ROUTINE_NAME, 0, 0, 0, 0)
; 0852 ELSE
; 0853
; 0854 IF ((VALUES [MCB_CHAIN] = BLD_CHAIN (.VALUES, .VALUES [MCB_CHAIN], .MCB_PTR)) EQL 0)
; 0855 THEN
; 0856 ERRMSG (0,
; 0857 1, ROUTINE_NAME, 0, 0, 0, 0)
; 0858 ELSE
; 0859 BEGIN
; 0860 !
; 0861 ! Scan the PRC$DF line building a chain of MCB process names linked to
; 0862 ! VALUES[MCB_CHAIN].
; 0863 !
; 0864 VAL_POINTER = 1;
; 0865 SCAN_DONE = 0;
; 0866
; 0867 WHILE ((.VAL_POINTER LEQ 2) AND (.SCAN_DONE EQL 0)) DO
; 0868 BEGIN
; 0869 SCAN (.FILE_CHAN, .FILE_PTR, .SAVE_CHAR, RESULT);
; 0870
; 0871 IF (.RESULT [RESULT_TYPE] NEQ RT_NAME)
; 0872 THEN
; 0873 ERRMSG (0, 24, ROUTINE_NAME,
; 0874 FILE_PTR [FILE_NAME], 0, 0, 0)
; 0875 ELSE
; 0876 BEGIN
; 0877
; 0878 CASE .VAL_POINTER FROM 1 TO 2 OF
; 0879 SET
; 0880
; 0881 [1] : !The process name
; 0882 CH$MOVE (LEN_MCB_NAME, CH$PTR (RESULT [RESULT_VALUE]),
; 0883 CH$PTR (MCB_PTR [PROCESS_NAME]));
; 0884
; 0885 [2] : !The device driver name
; 0886 CH$MOVE (LEN_MCB_DRV, CH$PTR (RESULT [RESULT_VALUE]),
; 0887 CH$PTR (MCB_PTR [DEVICE_NAME]));
; 0888 TES;
; 0889
; 0890 END;
; 0891
; 0892 VAL_POINTER = .VAL_POINTER + 1;
; 0893
; 0894 IF (.VAL_POINTER LEQ 2)
; 0895 THEN
; 0896 BEGIN
; 0897 SCAN (.FILE_CHAN, .FILE_PTR, .SAVE_CHAR, RESULT);
; 0898
; 0899 IF ((.RESULT [RESULT_TYPE] EQL RT_SPECIAL) AND (.RESULT [RESULT_VALUE] LSS 0))
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 35
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (7)
; 0900 THEN
; 0901 SCAN_DONE = 1
; 0902 ELSE
; 0903
; 0904 IF ((.RESULT [RESULT_TYPE] NEQ RT_SPECIAL) OR (.RESULT [RESULT_VALUE] NEQ %C','))
; 0905 THEN
; 0906 ERRMSG (0, 24, ROUTINE_NAME, FILE_PTR [FILE_NAME], 0, 0, 0);
; 0907
; 0908 END;
; 0909
; 0910 END;
; 0911
; 0912 END;
; 0913
; 0914 !
; 0915 ! Read to End of PRC$DF Line
; 0916 !
; 0917
; 0918 IF (.SCAN_DONE EQL 0)
; 0919 THEN
; 0920
; 0921 DO
; 0922 SCAN (.FILE_CHAN, .FILE_PTR, .SAVE_CHAR, RESULT)
; 0923 UNTIL ((.RESULT [RESULT_TYPE] EQL RT_SPECIAL) AND (.RESULT [RESULT_VALUE] LSS 0));
; 0924
; 0925 END; !OF R_PRC
P.AAN: BYTE (7)"R","E","A","D","-" ; READ- 401161' 122 105 101 104 055
BYTE (7)"P","R","C","$","D" ; PRC$D 401162' 120 122 103 044 104
BYTE (7)"F",000,000,000,000 ; F 401163' 106 000 000 000 000
ROUTINE_NAME= P.AAN ; 000000 401161'
R_PRC: PUSH SP,AC0 ; SP,AC0 401164' 261 17 0 00 000000 0796
PUSH SP,AC10 ; SP,AC10 401165' 261 17 0 00 000010
PUSH SP,AC11 ; SP,AC11 401166' 261 17 0 00 000011
PUSH SP,AC12 ; SP,AC12 401167' 261 17 0 00 000012
ADJSP SP,24 ; SP,24 401170' 105 17 0 00 000024
PUSH SP,C.26 ; SP,[27] 401171' 261 17 0 00 401371' 0849
PUSH SP,C.27 ; SP,[4] 401172' 261 17 0 00 401372'
PUSHJ SP,GETBLK ; SP,GETBLK 401173' 260 17 0 00 000000*
MOVE AC0,AC1 ; MCB_PTR,AC1 401174' 200 00 0 00 000001
ADJSP SP,-2 ; SP,-2 401175' 105 17 0 00 777776
JUMPE AC0,L.78 ; MCB_PTR,L.78 401176' 322 00 0 00 401210'
MOVE AC10,-31(SP) ; AC10,VALUES 401177' 200 10 0 17 777747 0854
PUSH SP,AC10 ; SP,AC10 401200' 261 17 0 00 000010
HLRZ AC1,3(AC10) ; AC1,3(AC10) 401201' 554 01 0 10 000003
PUSH SP,AC1 ; SP,AC1 401202' 261 17 0 00 000001
PUSH SP,AC0 ; SP,MCB_PTR 401203' 261 17 0 00 000000
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 36
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (7)
PUSHJ SP,BLD_CHAIN ; SP,BLD_CHAIN 401204' 260 17 0 00 000000*
ADJSP SP,-3 ; SP,-3 401205' 105 17 0 00 777775
HRLM AC1,3(AC10) ; AC1,3(AC10) 401206' 506 01 0 10 000003
JUMPN AC1,L.79 ; AC1,L.79 401207' 326 01 0 00 401222'
L.78: PUSH SP,C.4 ; SP,[0] 401210' 261 17 0 00 400371' 0856
PUSH SP,C.3 ; SP,[1] 401211' 261 17 0 00 400370'
PUSH SP,C.28 ; SP,[0,,ROUTINE_NAME] 401212' 261 17 0 00 401373'
PUSH SP,C.4 ; SP,[0] 401213' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 401214' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 401215' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 401216' 261 17 0 00 400371'
PUSHJ SP,ERRMSG ; SP,ERRMSG 401217' 260 17 0 00 000000*
ADJSP SP,-7 ; SP,-7 401220' 105 17 0 00 777771
JRST L.91 ; L.91 401221' 254 00 0 00 401347' 0854
L.79: MOVEI AC10,1 ; VAL_POINTER,1 401222' 201 10 0 00 000001 0864
SETZ AC11, ; SCAN_DONE, 401223' 400 11 0 00 000000 0865
MOVE AC12,-33(SP) ; AC12,FILE_PTR 401224' 200 12 0 17 777745 0869
L.80: CAILE AC10,2 ; VAL_POINTER,2 401225' 303 10 0 00 000002 0867
JRST L.91 ; L.91 401226' 254 00 0 00 401347'
JUMPN AC11,L.91 ; SCAN_DONE,L.91 401227' 326 11 0 00 401347'
PUSH SP,-34(SP) ; SP,FILE_CHAN 401230' 261 17 0 17 777744 0869
PUSH SP,AC12 ; SP,AC12 401231' 261 17 0 00 000012
PUSH SP,-34(SP) ; SP,SAVE_CHAR 401232' 261 17 0 17 777744
MOVEI AC1,-26(SP) ; AC1,RESULT 401233' 201 01 0 17 777752
PUSH SP,AC1 ; SP,AC1 401234' 261 17 0 00 000001
PUSHJ SP,SCAN ; SP,SCAN 401235' 260 17 0 00 400503'
MOVEI AC1,1 ; AC1,1 401236' 201 01 0 00 000001 0871
CAMN AC1,-27(SP) ; AC1,RESULT 401237' 316 01 0 17 777751
JRST L.81 ; L.81 401240' 254 00 0 00 401255'
SETZM 0(SP) ; 0(SP) 401241' 402 00 0 17 000000 0873
PUSH SP,C.7 ; SP,[30] 401242' 261 17 0 00 400374'
PUSH SP,C.28 ; SP,[0,,ROUTINE_NAME] 401243' 261 17 0 00 401373'
MOVE AC1,AC12 ; AC1,AC12 401244' 200 01 0 00 000012 0874
ADDI AC1,2 ; AC1,2 401245' 271 01 0 00 000002
PUSH SP,AC1 ; SP,AC1 401246' 261 17 0 00 000001
PUSH SP,C.4 ; SP,[0] 401247' 261 17 0 00 400371' 0873
PUSH SP,C.4 ; SP,[0] 401250' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 401251' 261 17 0 00 400371'
PUSHJ SP,ERRMSG ; SP,ERRMSG 401252' 260 17 0 00 000000*
ADJSP SP,-6 ; SP,-6 401253' 105 17 0 00 777772
JRST L.86 ; L.86 401254' 254 00 0 00 401305' 0871
L.81: MOVEI AC1,-27(SP) ; AC1,RESULT 401255' 201 01 0 17 777751 0882
ADDI AC1,1 ; AC1,1 401256' 271 01 0 00 000001
MOVE AC2,AC10 ; AC2,VAL_POINTER 401257' 200 02 0 00 000010 0878
SUBI AC2,1 ; AC2,1 401260' 275 02 0 00 000001
JRST L.82(AC2) ; L.82(AC2) 401261' 254 00 0 02 401262'
L.82: JRST L.83 ; L.83 401262' 254 00 0 00 401264'
JRST L.84 ; L.84 401263' 254 00 0 00 401274'
L.83: MOVEI AC2,-1(AC1) ; AC2,-1(AC1) 401264' 201 02 0 01 777777 0882
HRLI AC2,10700 ; AC2,10700 401265' 505 02 0 00 010700
MOVE AC1,AC0 ; AC1,MCB_PTR 401266' 200 01 0 00 000000 0883
MOVEI AC5,0(AC1) ; AC5,0(AC1) 401267' 201 05 0 01 000000
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 37
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (7)
HRLI AC5,10700 ; AC5,10700 401270' 505 05 0 00 010700
MOVEI AC1,3 ; AC1,3 401271' 201 01 0 00 000003 0882
MOVEI AC4,3 ; AC4,3 401272' 201 04 0 00 000003
JRST L.85 ; L.85 401273' 254 00 0 00 401303'
L.84: MOVEI AC2,-1(AC1) ; AC2,-1(AC1) 401274' 201 02 0 01 777777 0886
HRLI AC2,10700 ; AC2,10700 401275' 505 02 0 00 010700
MOVE AC1,AC0 ; AC1,MCB_PTR 401276' 200 01 0 00 000000 0887
MOVEI AC5,1(AC1) ; AC5,1(AC1) 401277' 201 05 0 01 000001
HRLI AC5,10700 ; AC5,10700 401300' 505 05 0 00 010700
MOVEI AC1,2 ; AC1,2 401301' 201 01 0 00 000002 0886
MOVEI AC4,2 ; AC4,2 401302' 201 04 0 00 000002
L.85: EXTEND AC1,C.23 ; AC1,[MOVSLJ ] 401303' 123 01 0 00 401030'
JFCL ; 401304' 255 00 0 00 000000
L.86: ADDI AC10,1 ; VAL_POINTER,1 401305' 271 10 0 00 000001 0892
CAILE AC10,2 ; VAL_POINTER,2 401306' 303 10 0 00 000002 0894
JRST L.90 ; L.90 401307' 254 00 0 00 401345'
PUSH SP,-40(SP) ; SP,FILE_CHAN 401310' 261 17 0 17 777740 0897
PUSH SP,AC12 ; SP,AC12 401311' 261 17 0 00 000012
PUSH SP,-40(SP) ; SP,SAVE_CHAR 401312' 261 17 0 17 777740
MOVEI AC1,-32(SP) ; AC1,RESULT 401313' 201 01 0 17 777746
PUSH SP,AC1 ; SP,AC1 401314' 261 17 0 00 000001
PUSHJ SP,SCAN ; SP,SCAN 401315' 260 17 0 00 400503'
MOVE AC1,-33(SP) ; AC1,RESULT 401316' 200 01 0 17 777745 0899
CAIN AC1,3 ; AC1,3 401317' 306 01 0 00 000003
SKIPL -32(SP) ; RESULT+1 401320' 331 00 0 17 777746
JRST L.87 ; L.87 401321' 254 00 0 00 401324'
MOVEI AC11,1 ; SCAN_DONE,1 401322' 201 11 0 00 000001 0901
JRST L.89 ; L.89 401323' 254 00 0 00 401344' 0899
L.87: CAIE AC1,3 ; AC1,3 401324' 302 01 0 00 000003 0904
JRST L.88 ; L.88 401325' 254 00 0 00 401331'
MOVEI AC1,54 ; AC1,54 401326' 201 01 0 00 000054
CAMN AC1,-32(SP) ; AC1,RESULT+1 401327' 316 01 0 17 777746
JRST L.89 ; L.89 401330' 254 00 0 00 401344'
L.88: SETZM 0(SP) ; 0(SP) 401331' 402 00 0 17 000000 0906
PUSH SP,C.7 ; SP,[30] 401332' 261 17 0 00 400374'
PUSH SP,C.28 ; SP,[0,,ROUTINE_NAME] 401333' 261 17 0 00 401373'
MOVE AC1,AC12 ; AC1,AC12 401334' 200 01 0 00 000012
ADDI AC1,2 ; AC1,2 401335' 271 01 0 00 000002
PUSH SP,AC1 ; SP,AC1 401336' 261 17 0 00 000001
PUSH SP,C.4 ; SP,[0] 401337' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 401340' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 401341' 261 17 0 00 400371'
PUSHJ SP,ERRMSG ; SP,ERRMSG 401342' 260 17 0 00 000000*
ADJSP SP,-6 ; SP,-6 401343' 105 17 0 00 777772
L.89: ADJSP SP,-4 ; SP,-4 401344' 105 17 0 00 777774 0896
L.90: ADJSP SP,-4 ; SP,-4 401345' 105 17 0 00 777774 0868
JRST L.80 ; L.80 401346' 254 00 0 00 401225' 0867
L.91: JUMPN AC11,L.93 ; SCAN_DONE,L.93 401347' 326 11 0 00 401363' 0918
L.92: PUSH SP,-34(SP) ; SP,FILE_CHAN 401350' 261 17 0 17 777744 0922
PUSH SP,-34(SP) ; SP,FILE_PTR 401351' 261 17 0 17 777744
PUSH SP,-34(SP) ; SP,SAVE_CHAR 401352' 261 17 0 17 777744
MOVEI AC0,-26(SP) ; AC0,RESULT 401353' 201 00 0 17 777752
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 38
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (7)
PUSH SP,AC0 ; SP,AC0 401354' 261 17 0 00 000000
PUSHJ SP,SCAN ; SP,SCAN 401355' 260 17 0 00 400503'
ADJSP SP,-4 ; SP,-4 401356' 105 17 0 00 777774
MOVEI AC0,3 ; AC0,3 401357' 201 00 0 00 000003 0923
CAMN AC0,-23(SP) ; AC0,RESULT 401360' 316 00 0 17 777755
SKIPL -22(SP) ; RESULT+1 401361' 331 00 0 17 777756
JRST L.92 ; L.92 401362' 254 00 0 00 401350' 0921
L.93: ADJSP SP,-24 ; SP,-24 401363' 105 17 0 00 777754 0796
POP SP,AC12 ; SP,AC12 401364' 262 17 0 00 000012
POP SP,AC11 ; SP,AC11 401365' 262 17 0 00 000011
POP SP,AC10 ; SP,AC10 401366' 262 17 0 00 000010
POP SP,AC0 ; SP,AC0 401367' 262 17 0 00 000000
POPJ SP, ; SP, 401370' 263 17 0 00 000000
C.26: EXP 27 ; 27 401371' 000000 000027
C.27: EXP 4 ; 4 401372' 000000 000004
C.28: XWD 0,ROUTINE_NAME ; 0,ROUTINE_NAME 401373' 000000 401161'
; Routine Size: 136 words
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 39
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (8)
; 0926 ROUTINE R_SLT (FILE_CHAN, FILE_PTR, SAVE_CHAR, VALUES) : NOVALUE = !READ SLT$DF LINE
; 0927
; 0928 !++
; 0929 ! FUNCTIONAL DESCRIPTION:
; 0930 !
; 0931 ! READ AND PROCESS THE SLT$DF LINE OF CETAB.MAC
; 0932 !
; 0933 ! FORMAL PARAMETERS:
; 0934 !
; 0935 ! FILE_CHAN - CHANNEL NUMBER ON WHICH TO READ
; 0936 ! FILE_PTR - FILE BLOCK WITH FILE NAME FILLED IN
; 0937 ! SAVE_CHAR - ADDRESS OF CHARACTER SAVED FROM LAST CALL TO SCAN
; 0938 ! VALUES - BLOCK INTO WHICH TO STORE RESULTS
; 0939 !
; 0940 ! IMPLICIT INPUTS:
; 0941 !
; 0942 ! NONE
; 0943 !
; 0944 ! IMPLICIT OUTPUTS:
; 0945 !
; 0946 ! NONE
; 0947 !
; 0948 ! ROUTINE VALUE:
; 0949 !
; 0950 ! NONE
; 0951 !
; 0952 ! SIDE EFFECTS
; 0953 !
; 0954 ! READS THE REMAINDER OF THE LINE FROM CETAB.MAC
; 0955 ! AND GETS STORAGE FROM THE FREE LIST
; 0956 !
; 0957 !--
; 0958
; 0959 BEGIN
; 0960
; 0961 BIND
; 0962 ROUTINE_NAME = UPLIT (%ASCIZ'READ-SLT$DF');
; 0963
; 0964 MAP
; 0965 FILE_PTR : REF FILE_BLOCK,
; 0966 VALUES : REF VNPVAL_BLOCK;
; 0967
; 0968 LOCAL
; 0969 SLT_PTR : REF SLT_BLOCK,
; 0970 RESULT : VECTOR [20],
; 0971 VAL_POINTER,
; 0972 SCAN_DONE,
; 0973 SEARCH_DONE;
; 0974
; 0975 !
; 0976 ! ALLOCATE AN SLT BLOCK AND LINK IT IN WITH THE OTHERS, IF ANY.
; 0977 !
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 40
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (8)
; 0978
; 0979 IF ((SLT_PTR = GETBLK (SLT_TYP, SLT_LEN)) EQL 0)
; 0980 THEN
; 0981 ERRMSG (0, 1, ROUTINE_NAME, 0, 0, 0, 0)
; 0982 ELSE
; 0983
; 0984 IF ((VALUES [SLT_CHAIN] = BLD_CHAIN (.VALUES, .VALUES [SLT_CHAIN], .SLT_PTR)) EQL 0)
; 0985 THEN
; 0986 ERRMSG (0,
; 0987 1, ROUTINE_NAME, 0, 0, 0, 0)
; 0988 ELSE
; 0989 BEGIN
; 0990 VALUES [SLTNUM] = .VALUES [SLTNUM] + 1;
; 0991 VAL_POINTER = 1;
; 0992 SCAN_DONE = 0;
; 0993
; 0994 WHILE (.SCAN_DONE EQL 0) DO
; 0995 BEGIN
; 0996 SCAN (.FILE_CHAN, .FILE_PTR, .SAVE_CHAR, RESULT);
; 0997
; 0998 IF ((.RESULT [RESULT_TYPE] EQL RT_SPECIAL) AND (.RESULT [RESULT_VALUE] LSS 0))
; 0999 THEN
; 1000 SCAN_DONE = -1
; 1001 ELSE
; 1002 BEGIN
; 1003
; 1004 IF ((.RESULT [RESULT_TYPE] NEQ RT_SPECIAL) OR (.RESULT [RESULT_VALUE] NEQ %C','))
; 1005 THEN
; 1006 BEGIN
; 1007
; 1008 CASE .VAL_POINTER FROM 1 TO 8 OF
; 1009 SET
; 1010
; 1011 [1] : !LLC NAME
; 1012 BEGIN
; 1013
; 1014 IF (.RESULT [RESULT_TYPE] NEQ RT_NAME)
; 1015 THEN
; 1016 ERRMSG (0, 24, ROUTINE_NAME,
; 1017 FILE_PTR [FILE_NAME], 0, 0, 0)
; 1018 ELSE
; 1019 CH$MOVE (4, CH$PTR (RESULT [RESULT_VALUE]), CH$PTR (SLT_PTR [SLT_LLC]));
; 1020
; 1021 END;
; 1022
; 1023 [2] : !DLC NAME
; 1024 BEGIN
; 1025
; 1026 IF (.RESULT [RESULT_TYPE] NEQ RT_NAME)
; 1027 THEN
; 1028 ERRMSG (0, 24, ROUTINE_NAME,
; 1029 FILE_PTR [FILE_NAME], 0, 0, 0)
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 41
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (8)
; 1030 ELSE
; 1031 CH$MOVE (4, CH$PTR (RESULT [RESULT_VALUE]), CH$PTR (SLT_PTR [SLT_DLC]));
; 1032
; 1033 END;
; 1034
; 1035 [3] : !DEV NAME
; 1036 BEGIN
; 1037
; 1038 IF (.RESULT [RESULT_TYPE] NEQ RT_NAME)
; 1039 THEN
; 1040 ERRMSG (0, 24, ROUTINE_NAME,
; 1041 FILE_PTR [FILE_NAME], 0, 0, 0)
; 1042 ELSE
; 1043 CH$MOVE (4, CH$PTR (RESULT [RESULT_VALUE]), CH$PTR (SLT_PTR [SLT_DEV]));
; 1044
; 1045 END;
; 1046
; 1047 [4] : !CONTROLLER NUMBER
; 1048 BEGIN
; 1049
; 1050 IF (.RESULT [RESULT_TYPE] NEQ RT_NUMBER)
; 1051 THEN
; 1052 ERRMSG (0, 24, ROUTINE_NAME,
; 1053 FILE_PTR [FILE_NAME], 0, 0, 0)
; 1054 ELSE
; 1055 SLT_PTR [SLT_CTL] = .RESULT [RESULT_VALUE];
; 1056
; 1057 END;
; 1058
; 1059 [5] : !UNIT NUMBER
; 1060 BEGIN
; 1061
; 1062 IF (.RESULT [RESULT_TYPE] NEQ RT_NUMBER)
; 1063 THEN
; 1064 ERRMSG (0, 24, ROUTINE_NAME,
; 1065 FILE_PTR [FILE_NAME], 0, 0, 0)
; 1066 ELSE
; 1067 SLT_PTR [SLT_UNT] = .RESULT [RESULT_VALUE];
; 1068
; 1069 END;
; 1070
; 1071 [6] : !TRIBUTARY NUMBER
; 1072 BEGIN
; 1073
; 1074 IF (.RESULT [RESULT_TYPE] NEQ RT_NUMBER)
; 1075 THEN
; 1076
; 1077 IF (.RESULT [RESULT_TYPE] NEQ RT_SPECIAL)
; 1078 THEN
; 1079 ERRMSG (0, 24,
; 1080 ROUTINE_NAME, FILE_PTR [FILE_NAME], 0, 0, 0)
; 1081 ELSE
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 42
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (8)
; 1082 SLT_PTR [SLT_TRB] = -1
; 1083
; 1084 ELSE
; 1085 SLT_PTR [SLT_TRB] = .RESULT [RESULT_VALUE];
; 1086
; 1087 END;
; 1088
; 1089 [7] :
; 1090 ; !FLAGS, IGNORE.
; 1091
; 1092 [8] :
; 1093 ; !"ENABLE", IGNORE.
; 1094
; 1095 [OUTRANGE] :
; 1096 BEGIN
; 1097 ERRMSG (0, 24, ROUTINE_NAME, FILE_PTR [FILE_NAME], 0, 0, 0);
; 1098 SCAN_DONE = 1;
; 1099 END;
; 1100 TES;
; 1101
; 1102 !
; 1103 ! SCAN FOR THE NEXT COMMA
; 1104 !
; 1105 SEARCH_DONE = 0;
; 1106
; 1107 WHILE (.SEARCH_DONE EQL 0) DO
; 1108 BEGIN
; 1109 SCAN (.FILE_CHAN, .FILE_PTR, .SAVE_CHAR, RESULT);
; 1110
; 1111 IF (.RESULT [RESULT_TYPE] EQL RT_SPECIAL)
; 1112 THEN
; 1113
; 1114 IF (.RESULT [RESULT_VALUE] LSS 0)
; 1115 THEN
; 1116 SEARCH_DONE = -1
; 1117 ELSE
; 1118
; 1119 IF (.RESULT [RESULT_VALUE] EQL %C',') THEN SEARCH_DONE = 1;
; 1120
; 1121 END;
; 1122
; 1123 IF (.SEARCH_DONE LSS 0) THEN SCAN_DONE = .SEARCH_DONE;
; 1124
; 1125 END;
; 1126
; 1127 END;
; 1128
; 1129 VAL_POINTER = .VAL_POINTER + 1;
; 1130 END;
; 1131
; 1132 END;
; 1133
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 43
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (8)
; 1134 !
; 1135 ! SAVE POINTER TO THE SLT BLOCK FOR THE STA$DF SCANNER
; 1136 !
; 1137 VALUES [CURRENT_SLT] = .SLT_PTR;
; 1138 !
; 1139 ! FINISHED WITH SLT$DF, SKIP TO END OF LINE
; 1140 !
; 1141
; 1142 IF (.SCAN_DONE GTR 0)
; 1143 THEN
; 1144
; 1145 DO
; 1146 SCAN (.FILE_CHAN, .FILE_PTR, .SAVE_CHAR, RESULT)
; 1147 UNTIL ((.RESULT [RESULT_TYPE] EQL RT_SPECIAL) AND (.RESULT [RESULT_VALUE] LSS 0));
; 1148
; 1149 END; !OF R_SLT
P.AAO: BYTE (7)"R","E","A","D","-" ; READ- 401374' 122 105 101 104 055
BYTE (7)"S","L","T","$","D" ; SLT$D 401375' 123 114 124 044 104
BYTE (7)"F",000,000,000,000 ; F 401376' 106 000 000 000 000
ROUTINE_NAME= P.AAO ; 000000 401374'
R_SLT: PUSH SP,AC0 ; SP,AC0 401377' 261 17 0 00 000000 0926
PUSH SP,AC10 ; SP,AC10 401400' 261 17 0 00 000010
PUSH SP,AC11 ; SP,AC11 401401' 261 17 0 00 000011
PUSH SP,AC12 ; SP,AC12 401402' 261 17 0 00 000012
PUSH SP,AC13 ; SP,AC13 401403' 261 17 0 00 000013
ADJSP SP,24 ; SP,24 401404' 105 17 0 00 000024
PUSH SP,C.29 ; SP,[23] 401405' 261 17 0 00 401670' 0979
PUSH SP,C.30 ; SP,[7] 401406' 261 17 0 00 401671'
PUSHJ SP,GETBLK ; SP,GETBLK 401407' 260 17 0 00 000000*
MOVE AC10,AC1 ; SLT_PTR,AC1 401410' 200 10 0 00 000001
ADJSP SP,-2 ; SP,-2 401411' 105 17 0 00 777776
JUMPE AC10,L.94 ; SLT_PTR,L.94 401412' 322 10 0 00 401426'
MOVE AC0,-32(SP) ; AC0,VALUES 401413' 200 00 0 17 777746 0984
PUSH SP,AC0 ; SP,AC0 401414' 261 17 0 00 000000
MOVE AC2,AC0 ; AC2,AC0 401415' 200 02 0 00 000000
HLRZ AC1,2(AC2) ; AC1,2(AC2) 401416' 554 01 0 02 000002
PUSH SP,AC1 ; SP,AC1 401417' 261 17 0 00 000001
PUSH SP,AC10 ; SP,SLT_PTR 401420' 261 17 0 00 000010
PUSHJ SP,BLD_CHAIN ; SP,BLD_CHAIN 401421' 260 17 0 00 000000*
ADJSP SP,-3 ; SP,-3 401422' 105 17 0 00 777775
MOVE AC2,AC0 ; AC2,AC0 401423' 200 02 0 00 000000
HRLM AC1,2(AC2) ; AC1,2(AC2) 401424' 506 01 0 02 000002
JUMPN AC1,L.95 ; AC1,L.95 401425' 326 01 0 00 401440'
L.94: PUSH SP,C.4 ; SP,[0] 401426' 261 17 0 00 400371' 0986
PUSH SP,C.3 ; SP,[1] 401427' 261 17 0 00 400370'
PUSH SP,C.31 ; SP,[0,,ROUTINE_NAME] 401430' 261 17 0 00 401672'
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 44
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (8)
PUSH SP,C.4 ; SP,[0] 401431' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 401432' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 401433' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 401434' 261 17 0 00 400371'
PUSHJ SP,ERRMSG ; SP,ERRMSG 401435' 260 17 0 00 000000*
ADJSP SP,-7 ; SP,-7 401436' 105 17 0 00 777771
JRST L.119 ; L.119 401437' 254 00 0 00 401643' 0984
L.95: MOVE AC2,AC0 ; AC2,AC0 401440' 200 02 0 00 000000 0990
HRRZ AC1,1(AC2) ; AC1,1(AC2) 401441' 550 01 0 02 000001
ADDI AC1,1 ; AC1,1 401442' 271 01 0 00 000001
MOVE AC3,AC0 ; AC3,AC0 401443' 200 03 0 00 000000
HRRM AC1,1(AC3) ; AC1,1(AC3) 401444' 542 01 0 03 000001
MOVEI AC13,1 ; VAL_POINTER,1 401445' 201 13 0 00 000001 0991
SETZ AC12, ; SCAN_DONE, 401446' 400 12 0 00 000000 0992
MOVE AC0,-34(SP) ; AC0,FILE_PTR 401447' 200 00 0 17 777744 0996
L.96: JUMPN AC12,L.119 ; SCAN_DONE,L.119 401450' 326 12 0 00 401643' 0994
PUSH SP,-35(SP) ; SP,FILE_CHAN 401451' 261 17 0 17 777743 0996
PUSH SP,AC0 ; SP,AC0 401452' 261 17 0 00 000000
PUSH SP,-35(SP) ; SP,SAVE_CHAR 401453' 261 17 0 17 777743
MOVEI AC1,-26(SP) ; AC1,RESULT 401454' 201 01 0 17 777752
PUSH SP,AC1 ; SP,AC1 401455' 261 17 0 00 000001
PUSHJ SP,SCAN ; SP,SCAN 401456' 260 17 0 00 400503'
MOVE AC1,-27(SP) ; AC1,RESULT 401457' 200 01 0 17 777751 0998
CAIN AC1,3 ; AC1,3 401460' 306 01 0 00 000003
SKIPL -26(SP) ; RESULT+1 401461' 331 00 0 17 777752
JRST L.97 ; L.97 401462' 254 00 0 00 401465'
SETO AC12, ; SCAN_DONE, 401463' 474 12 0 00 000000 1000
JRST L.118 ; L.118 401464' 254 00 0 00 401640' 0998
L.97: SETZ AC2, ; AC2, 401465' 400 02 0 00 000000 1004
CAIN AC1,3 ; AC1,3 401466' 306 01 0 00 000003
JRST L.98 ; L.98 401467' 254 00 0 00 401472'
MOVEI AC2,1 ; AC2,1 401470' 201 02 0 00 000001
JRST L.99 ; L.99 401471' 254 00 0 00 401475'
L.98: MOVEI AC3,54 ; AC3,54 401472' 201 03 0 00 000054
CAMN AC3,-26(SP) ; AC3,RESULT+1 401473' 316 03 0 17 777752
JRST L.118 ; L.118 401474' 254 00 0 00 401640'
L.99: MOVE AC3,AC13 ; AC3,VAL_POINTER 401475' 200 03 0 00 000013 1008
SOJL AC3,L.101 ; AC3,L.101 401476' 361 03 0 00 401512'
CAIGE AC3,10 ; AC3,10 401477' 305 03 0 00 000010
JRST L.100(AC3) ; L.100(AC3) 401500' 254 00 0 03 401502'
JRST L.101 ; L.101 401501' 254 00 0 00 401512'
L.100: JRST L.102 ; L.102 401502' 254 00 0 00 401526'
JRST L.103 ; L.103 401503' 254 00 0 00 401534'
JRST L.104 ; L.104 401504' 254 00 0 00 401542'
JRST L.106 ; L.106 401505' 254 00 0 00 401555'
JRST L.107 ; L.107 401506' 254 00 0 00 401562'
JRST L.108 ; L.108 401507' 254 00 0 00 401567'
JRST L.113 ; L.113 401510' 254 00 0 00 401613'
JRST L.113 ; L.113 401511' 254 00 0 00 401613'
L.101: SETZM 0(SP) ; 0(SP) 401512' 402 00 0 17 000000 1097
PUSH SP,C.7 ; SP,[30] 401513' 261 17 0 00 400374'
PUSH SP,C.31 ; SP,[0,,ROUTINE_NAME] 401514' 261 17 0 00 401672'
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 45
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (8)
MOVE AC1,AC0 ; AC1,AC0 401515' 200 01 0 00 000000
ADDI AC1,2 ; AC1,2 401516' 271 01 0 00 000002
PUSH SP,AC1 ; SP,AC1 401517' 261 17 0 00 000001
PUSH SP,C.4 ; SP,[0] 401520' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 401521' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 401522' 261 17 0 00 400371'
PUSHJ SP,ERRMSG ; SP,ERRMSG 401523' 260 17 0 00 000000*
MOVEI AC12,1 ; SCAN_DONE,1 401524' 201 12 0 00 000001 1098
JRST L.110 ; L.110 401525' 254 00 0 00 401605'
L.102: CAIE AC1,1 ; AC1,1 401526' 302 01 0 00 000001 1014
JRST L.109 ; L.109 401527' 254 00 0 00 401573'
MOVEI AC2,-27(SP) ; AC2,RESULT 401530' 201 02 0 17 777751 1019
HRLI AC2,10700 ; AC2,10700 401531' 505 02 0 00 010700
MOVEI AC5,2(AC10) ; AC5,2(SLT_PTR) 401532' 201 05 0 10 000002
JRST L.105 ; L.105 401533' 254 00 0 00 401547'
L.103: CAIE AC1,1 ; AC1,1 401534' 302 01 0 00 000001 1026
JRST L.109 ; L.109 401535' 254 00 0 00 401573'
MOVEI AC2,-27(SP) ; AC2,RESULT 401536' 201 02 0 17 777751 1031
HRLI AC2,10700 ; AC2,10700 401537' 505 02 0 00 010700
MOVEI AC5,1(AC10) ; AC5,1(SLT_PTR) 401540' 201 05 0 10 000001
JRST L.105 ; L.105 401541' 254 00 0 00 401547'
L.104: CAIE AC1,1 ; AC1,1 401542' 302 01 0 00 000001 1038
JRST L.109 ; L.109 401543' 254 00 0 00 401573'
MOVEI AC2,-27(SP) ; AC2,RESULT 401544' 201 02 0 17 777751 1043
HRLI AC2,10700 ; AC2,10700 401545' 505 02 0 00 010700
MOVEI AC5,0(AC10) ; AC5,0(SLT_PTR) 401546' 201 05 0 10 000000
L.105: HRLI AC5,10700 ; AC5,10700 401547' 505 05 0 00 010700
MOVEI AC1,4 ; AC1,4 401550' 201 01 0 00 000004
MOVEI AC4,4 ; AC4,4 401551' 201 04 0 00 000004
EXTEND AC1,C.23 ; AC1,[MOVSLJ ] 401552' 123 01 0 00 401030'
JFCL ; 401553' 255 00 0 00 000000
JRST L.113 ; L.113 401554' 254 00 0 00 401613' 1008
L.106: CAIE AC1,2 ; AC1,2 401555' 302 01 0 00 000002 1050
JRST L.109 ; L.109 401556' 254 00 0 00 401573'
MOVE AC1,-26(SP) ; AC1,RESULT+1 401557' 200 01 0 17 777752 1055
MOVEM AC1,4(AC10) ; AC1,4(SLT_PTR) 401560' 202 01 0 10 000004
JRST L.113 ; L.113 401561' 254 00 0 00 401613' 1008
L.107: CAIE AC1,2 ; AC1,2 401562' 302 01 0 00 000002 1062
JRST L.109 ; L.109 401563' 254 00 0 00 401573'
MOVE AC1,-26(SP) ; AC1,RESULT+1 401564' 200 01 0 17 777752 1067
MOVEM AC1,5(AC10) ; AC1,5(SLT_PTR) 401565' 202 01 0 10 000005
JRST L.113 ; L.113 401566' 254 00 0 00 401613' 1008
L.108: CAIN AC1,2 ; AC1,2 401567' 306 01 0 00 000002 1074
JRST L.112 ; L.112 401570' 254 00 0 00 401611'
TRNN AC2,1 ; AC2,1 401571' 606 02 0 00 000001 1077
JRST L.111 ; L.111 401572' 254 00 0 00 401607'
L.109: SETZM 0(SP) ; 0(SP) 401573' 402 00 0 17 000000 1079
PUSH SP,C.7 ; SP,[30] 401574' 261 17 0 00 400374'
PUSH SP,C.31 ; SP,[0,,ROUTINE_NAME] 401575' 261 17 0 00 401672'
MOVE AC1,AC0 ; AC1,AC0 401576' 200 01 0 00 000000 1080
ADDI AC1,2 ; AC1,2 401577' 271 01 0 00 000002
PUSH SP,AC1 ; SP,AC1 401600' 261 17 0 00 000001
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 46
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (8)
PUSH SP,C.4 ; SP,[0] 401601' 261 17 0 00 400371' 1079
PUSH SP,C.4 ; SP,[0] 401602' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 401603' 261 17 0 00 400371'
PUSHJ SP,ERRMSG ; SP,ERRMSG 401604' 260 17 0 00 000000*
L.110: ADJSP SP,-6 ; SP,-6 401605' 105 17 0 00 777772
JRST L.113 ; L.113 401606' 254 00 0 00 401613' 1077
L.111: SETOM 6(AC10) ; 6(SLT_PTR) 401607' 476 00 0 10 000006 1082
JRST L.113 ; L.113 401610' 254 00 0 00 401613' 1074
L.112: MOVE AC1,-26(SP) ; AC1,RESULT+1 401611' 200 01 0 17 777752 1085
MOVEM AC1,6(AC10) ; AC1,6(SLT_PTR) 401612' 202 01 0 10 000006
L.113: SETZ AC11, ; SEARCH_DONE, 401613' 400 11 0 00 000000 1105
L.114: JUMPN AC11,L.117 ; SEARCH_DONE,L.117 401614' 326 11 0 00 401636' 1107
PUSH SP,-41(SP) ; SP,FILE_CHAN 401615' 261 17 0 17 777737 1109
PUSH SP,AC0 ; SP,AC0 401616' 261 17 0 00 000000
PUSH SP,-41(SP) ; SP,SAVE_CHAR 401617' 261 17 0 17 777737
MOVEI AC1,-32(SP) ; AC1,RESULT 401620' 201 01 0 17 777746
PUSH SP,AC1 ; SP,AC1 401621' 261 17 0 00 000001
PUSHJ SP,SCAN ; SP,SCAN 401622' 260 17 0 00 400503'
MOVEI AC1,3 ; AC1,3 401623' 201 01 0 00 000003 1111
CAME AC1,-33(SP) ; AC1,RESULT 401624' 312 01 0 17 777745
JRST L.116 ; L.116 401625' 254 00 0 00 401634'
MOVE AC1,-32(SP) ; AC1,RESULT+1 401626' 200 01 0 17 777746 1114
JUMPGE AC1,L.115 ; AC1,L.115 401627' 325 01 0 00 401632'
SETO AC11, ; SEARCH_DONE, 401630' 474 11 0 00 000000 1116
JRST L.116 ; L.116 401631' 254 00 0 00 401634' 1114
L.115: CAIN AC1,54 ; AC1,54 401632' 306 01 0 00 000054 1119
MOVEI AC11,1 ; SEARCH_DONE,1 401633' 201 11 0 00 000001
L.116: ADJSP SP,-4 ; SP,-4 401634' 105 17 0 00 777774 1108
JRST L.114 ; L.114 401635' 254 00 0 00 401614' 1107
L.117: JUMPGE AC11,L.118 ; SEARCH_DONE,L.118 401636' 325 11 0 00 401640' 1123
MOVE AC12,AC11 ; SCAN_DONE,SEARCH_DONE 401637' 200 12 0 00 000011
L.118: ADDI AC13,1 ; VAL_POINTER,1 401640' 271 13 0 00 000001 1129
ADJSP SP,-4 ; SP,-4 401641' 105 17 0 00 777774 0995
JRST L.96 ; L.96 401642' 254 00 0 00 401450' 0994
L.119: MOVE AC1,-32(SP) ; AC1,VALUES 401643' 200 01 0 17 777746 1137
HRRM AC10,111(AC1) ; SLT_PTR,111(AC1) 401644' 542 10 0 01 000111
JUMPLE AC12,L.121 ; SCAN_DONE,L.121 401645' 323 12 0 00 401661' 1142
L.120: PUSH SP,-35(SP) ; SP,FILE_CHAN 401646' 261 17 0 17 777743 1146
PUSH SP,-35(SP) ; SP,FILE_PTR 401647' 261 17 0 17 777743
PUSH SP,-35(SP) ; SP,SAVE_CHAR 401650' 261 17 0 17 777743
MOVEI AC0,-26(SP) ; AC0,RESULT 401651' 201 00 0 17 777752
PUSH SP,AC0 ; SP,AC0 401652' 261 17 0 00 000000
PUSHJ SP,SCAN ; SP,SCAN 401653' 260 17 0 00 400503'
ADJSP SP,-4 ; SP,-4 401654' 105 17 0 00 777774
MOVEI AC0,3 ; AC0,3 401655' 201 00 0 00 000003 1147
CAMN AC0,-23(SP) ; AC0,RESULT 401656' 316 00 0 17 777755
SKIPL -22(SP) ; RESULT+1 401657' 331 00 0 17 777756
JRST L.120 ; L.120 401660' 254 00 0 00 401646' 1145
L.121: ADJSP SP,-24 ; SP,-24 401661' 105 17 0 00 777754 0926
POP SP,AC13 ; SP,AC13 401662' 262 17 0 00 000013
POP SP,AC12 ; SP,AC12 401663' 262 17 0 00 000012
POP SP,AC11 ; SP,AC11 401664' 262 17 0 00 000011
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 47
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (8)
POP SP,AC10 ; SP,AC10 401665' 262 17 0 00 000010
POP SP,AC0 ; SP,AC0 401666' 262 17 0 00 000000
POPJ SP, ; SP, 401667' 263 17 0 00 000000
C.29: EXP 23 ; 23 401670' 000000 000023
C.30: EXP 7 ; 7 401671' 000000 000007
C.31: XWD 0,ROUTINE_NAME ; 0,ROUTINE_NAME 401672' 000000 401374'
; Routine Size: 188 words
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 48
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (9)
; 1150 ROUTINE R_LLC (FILE_CHAN, FILE_PTR, SAVE_CHAR, VALUES) : NOVALUE = !READ LLC$DF LINE
; 1151
; 1152 !++
; 1153 ! FUNCTIONAL DESCRIPTION:
; 1154 !
; 1155 ! READ AND PROCESS THE LLC$DF LINE OF CETAB.MAC
; 1156 !
; 1157 ! FORMAL PARAMETERS:
; 1158 !
; 1159 ! FILE_CHAN - CHANNEL NUMBER ON WHICH TO READ
; 1160 ! FILE_PTR - FILE BLOCK WITH FILE NAME FILLED IN
; 1161 ! SAVE_CHAR - ADDRESS OF CHARACTER SAVED FROM LAST CALL TO SCAN
; 1162 ! VALUES - BLOCK INTO WHICH TO STORE RESULTS
; 1163 !
; 1164 ! IMPLICIT INPUTS:
; 1165 !
; 1166 ! NONE
; 1167 !
; 1168 ! IMPLICIT OUTPUTS:
; 1169 !
; 1170 ! NONE
; 1171 !
; 1172 ! ROUTINE VALUE:
; 1173 !
; 1174 ! NONE
; 1175 !
; 1176 ! SIDE EFFECTS
; 1177 !
; 1178 ! READS THE REMAINDER OF THE LINE FROM CETAB.MAC
; 1179 ! AND GETS STORAGE FROM THE FREE LIST
; 1180 !
; 1181 !--
; 1182
; 1183 BEGIN
; 1184
; 1185 BIND
; 1186 ROUTINE_NAME = UPLIT (%ASCIZ'READ-LLC$DF');
; 1187
; 1188 MAP
; 1189 FILE_PTR : REF FILE_BLOCK,
; 1190 VALUES : REF VNPVAL_BLOCK;
; 1191
; 1192 LOCAL
; 1193 LLC_PTR : REF LLC_BLOCK,
; 1194 RESULT : VECTOR [20],
; 1195 VAL_POINTER,
; 1196 SCAN_DONE,
; 1197 SEARCH_DONE;
; 1198
; 1199 !
; 1200 ! ALLOCATE AN LLC BLOCK AND LINK IT IN WITH THE OTHERS, IF ANY.
; 1201 !
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 49
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (9)
; 1202
; 1203 IF ((LLC_PTR = GETBLK (LLC_TYP, LLC_LEN)) EQL 0)
; 1204 THEN
; 1205 ERRMSG (0, 1, ROUTINE_NAME, 0, 0, 0, 0)
; 1206 ELSE
; 1207
; 1208 IF ((VALUES [LLC_CHAIN] = BLD_CHAIN (.VALUES, .VALUES [LLC_CHAIN], .LLC_PTR)) EQL 0)
; 1209 THEN
; 1210 ERRMSG (0,
; 1211 1, ROUTINE_NAME, 0, 0, 0, 0)
; 1212 ELSE
; 1213 BEGIN
; 1214 SCAN (.FILE_CHAN, .FILE_PTR, .SAVE_CHAR, RESULT);
; 1215
; 1216 IF (.RESULT [RESULT_TYPE] NEQ RT_NAME)
; 1217 THEN
; 1218 ERRMSG (0, 24, ROUTINE_NAME, FILE_PTR [FILE_NAME], 0,
; 1219 0, 0)
; 1220 ELSE
; 1221 CH$MOVE (4, CH$PTR (RESULT [RESULT_VALUE]), CH$PTR (LLC_PTR [LLC_NAME]));
; 1222
; 1223 END;
; 1224
; 1225 !
; 1226 ! FINISHED WITH LLC$DF, SKIP TO END OF LINE
; 1227 !
; 1228
; 1229 DO
; 1230 SCAN (.FILE_CHAN, .FILE_PTR, .SAVE_CHAR, RESULT)
; 1231 UNTIL ((.RESULT [RESULT_TYPE] EQL RT_SPECIAL) AND (.RESULT [RESULT_VALUE] LSS 0));
; 1232
; 1233 END; !OF R_LLC
P.AAP: BYTE (7)"R","E","A","D","-" ; READ- 401673' 122 105 101 104 055
BYTE (7)"L","L","C","$","D" ; LLC$D 401674' 114 114 103 044 104
BYTE (7)"F",000,000,000,000 ; F 401675' 106 000 000 000 000
ROUTINE_NAME= P.AAP ; 000000 401673'
R_LLC: PUSH SP,AC0 ; SP,AC0 401676' 261 17 0 00 000000 1150
PUSH SP,AC10 ; SP,AC10 401677' 261 17 0 00 000010
ADJSP SP,24 ; SP,24 401700' 105 17 0 00 000024
PUSH SP,C.32 ; SP,[16] 401701' 261 17 0 00 402010' 1203
PUSH SP,C.33 ; SP,[2] 401702' 261 17 0 00 402011'
PUSHJ SP,GETBLK ; SP,GETBLK 401703' 260 17 0 00 000000*
MOVE AC0,AC1 ; LLC_PTR,AC1 401704' 200 00 0 00 000001
ADJSP SP,-2 ; SP,-2 401705' 105 17 0 00 777776
JUMPE AC0,L.122 ; LLC_PTR,L.122 401706' 322 00 0 00 401720'
MOVE AC10,-27(SP) ; AC10,VALUES 401707' 200 10 0 17 777751 1208
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 50
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (9)
PUSH SP,AC10 ; SP,AC10 401710' 261 17 0 00 000010
HLRZ AC1,1(AC10) ; AC1,1(AC10) 401711' 554 01 0 10 000001
PUSH SP,AC1 ; SP,AC1 401712' 261 17 0 00 000001
PUSH SP,AC0 ; SP,LLC_PTR 401713' 261 17 0 00 000000
PUSHJ SP,BLD_CHAIN ; SP,BLD_CHAIN 401714' 260 17 0 00 000000*
ADJSP SP,-3 ; SP,-3 401715' 105 17 0 00 777775
HRLM AC1,1(AC10) ; AC1,1(AC10) 401716' 506 01 0 10 000001
JUMPN AC1,L.123 ; AC1,L.123 401717' 326 01 0 00 401732'
L.122: PUSH SP,C.4 ; SP,[0] 401720' 261 17 0 00 400371' 1210
PUSH SP,C.3 ; SP,[1] 401721' 261 17 0 00 400370'
PUSH SP,C.34 ; SP,[0,,ROUTINE_NAME] 401722' 261 17 0 00 402012'
PUSH SP,C.4 ; SP,[0] 401723' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 401724' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 401725' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 401726' 261 17 0 00 400371'
PUSHJ SP,ERRMSG ; SP,ERRMSG 401727' 260 17 0 00 000000*
ADJSP SP,-3 ; SP,-3 401730' 105 17 0 00 777775
JRST L.125 ; L.125 401731' 254 00 0 00 401770' 1208
L.123: PUSH SP,-32(SP) ; SP,FILE_CHAN 401732' 261 17 0 17 777746 1214
PUSH SP,-32(SP) ; SP,FILE_PTR 401733' 261 17 0 17 777746
PUSH SP,-32(SP) ; SP,SAVE_CHAR 401734' 261 17 0 17 777746
MOVEI AC1,-26(SP) ; AC1,RESULT 401735' 201 01 0 17 777752
PUSH SP,AC1 ; SP,AC1 401736' 261 17 0 00 000001
PUSHJ SP,SCAN ; SP,SCAN 401737' 260 17 0 00 400503'
MOVEI AC1,1 ; AC1,1 401740' 201 01 0 00 000001 1216
CAMN AC1,-27(SP) ; AC1,RESULT 401741' 316 01 0 17 777751
JRST L.124 ; L.124 401742' 254 00 0 00 401757'
SETZM 0(SP) ; 0(SP) 401743' 402 00 0 17 000000 1218
PUSH SP,C.7 ; SP,[30] 401744' 261 17 0 00 400374'
PUSH SP,C.34 ; SP,[0,,ROUTINE_NAME] 401745' 261 17 0 00 402012'
MOVE AC1,-37(SP) ; AC1,FILE_PTR 401746' 200 01 0 17 777741
ADDI AC1,2 ; AC1,2 401747' 271 01 0 00 000002
PUSH SP,AC1 ; SP,AC1 401750' 261 17 0 00 000001
PUSH SP,C.4 ; SP,[0] 401751' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 401752' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 401753' 261 17 0 00 400371'
PUSHJ SP,ERRMSG ; SP,ERRMSG 401754' 260 17 0 00 000000*
ADJSP SP,-6 ; SP,-6 401755' 105 17 0 00 777772
JRST L.125 ; L.125 401756' 254 00 0 00 401770' 1216
L.124: MOVEI AC2,-27(SP) ; AC2,RESULT 401757' 201 02 0 17 777751 1221
HRLI AC2,10700 ; AC2,10700 401760' 505 02 0 00 010700
MOVE AC1,AC0 ; AC1,LLC_PTR 401761' 200 01 0 00 000000
MOVEI AC5,0(AC1) ; AC5,0(AC1) 401762' 201 05 0 01 000000
HRLI AC5,10700 ; AC5,10700 401763' 505 05 0 00 010700
MOVEI AC1,4 ; AC1,4 401764' 201 01 0 00 000004
MOVEI AC4,4 ; AC4,4 401765' 201 04 0 00 000004
EXTEND AC1,C.23 ; AC1,[MOVSLJ ] 401766' 123 01 0 00 401030'
JFCL ; 401767' 255 00 0 00 000000
L.125: PUSH SP,-36(SP) ; SP,FILE_CHAN 401770' 261 17 0 17 777742 1230
PUSH SP,-36(SP) ; SP,FILE_PTR 401771' 261 17 0 17 777742
PUSH SP,-36(SP) ; SP,SAVE_CHAR 401772' 261 17 0 17 777742
MOVEI AC0,-32(SP) ; AC0,RESULT 401773' 201 00 0 17 777746
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 51
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (9)
PUSH SP,AC0 ; SP,AC0 401774' 261 17 0 00 000000
PUSHJ SP,SCAN ; SP,SCAN 401775' 260 17 0 00 400503'
ADJSP SP,-4 ; SP,-4 401776' 105 17 0 00 777774
MOVEI AC0,3 ; AC0,3 401777' 201 00 0 00 000003 1231
CAMN AC0,-27(SP) ; AC0,RESULT 402000' 316 00 0 17 777751
SKIPL -26(SP) ; RESULT+1 402001' 331 00 0 17 777752
JRST L.125 ; L.125 402002' 254 00 0 00 401770' 1229
ADJSP SP,-4 ; SP,-4 402003' 105 17 0 00 777774 1183
ADJSP SP,-24 ; SP,-24 402004' 105 17 0 00 777754 1150
POP SP,AC10 ; SP,AC10 402005' 262 17 0 00 000010
POP SP,AC0 ; SP,AC0 402006' 262 17 0 00 000000
POPJ SP, ; SP, 402007' 263 17 0 00 000000
C.32: EXP 16 ; 16 402010' 000000 000016
C.33: EXP 2 ; 2 402011' 000000 000002
C.34: XWD 0,ROUTINE_NAME ; 0,ROUTINE_NAME 402012' 000000 401673'
; Routine Size: 77 words
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 52
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (10)
; 1234 ROUTINE R_DEV (FILE_CHAN, FILE_PTR, SAVE_CHAR, VALUES) : NOVALUE = !READ DEV$DF LINE
; 1235
; 1236 !++
; 1237 ! FUNCTIONAL DESCRIPTION:
; 1238 !
; 1239 ! READ AND PROCESS THE DEV$DF LINE OF CETAB.MAC
; 1240 !
; 1241 ! FORMAL PARAMETERS:
; 1242 !
; 1243 ! FILE_CHAN - CHANNEL NUMBER ON WHICH TO READ
; 1244 ! FILE_PTR - FILE BLOCK WITH FILE NAME FILLED IN
; 1245 ! SAVE_CHAR - ADDRESS OF CHARACTER SAVED FROM LAST CALL TO SCAN
; 1246 ! VALUES - BLOCK INTO WHICH TO STORE RESULTS
; 1247 !
; 1248 ! IMPLICIT INPUTS:
; 1249 !
; 1250 ! NONE
; 1251 !
; 1252 ! IMPLICIT OUTPUTS:
; 1253 !
; 1254 ! NONE
; 1255 !
; 1256 ! ROUTINE VALUE:
; 1257 !
; 1258 ! NONE
; 1259 !
; 1260 ! SIDE EFFECTS
; 1261 !
; 1262 ! READS THE REMAINDER OF THE LINE FROM CETAB.MAC
; 1263 ! AND GETS STORAGE FROM THE FREE LIST
; 1264 !
; 1265 !--
; 1266
; 1267 BEGIN
; 1268
; 1269 BIND
; 1270 ROUTINE_NAME = UPLIT (%ASCIZ'READ-DEV$DF');
; 1271
; 1272 MAP
; 1273 FILE_PTR : REF FILE_BLOCK,
; 1274 VALUES : REF VNPVAL_BLOCK;
; 1275
; 1276 LOCAL
; 1277 DEV_PTR : REF DEV_BLOCK,
; 1278 RESULT : VECTOR [20],
; 1279 VAL_POINTER,
; 1280 SCAN_DONE,
; 1281 SEARCH_DONE;
; 1282
; 1283 !
; 1284 ! ALLOCATE A DEV BLOCK AND LINK IT IN WITH THE OTHERS, IF ANY.
; 1285 !
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 53
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (10)
; 1286
; 1287 IF ((DEV_PTR = GETBLK (DEV_TYP, DEV_LEN)) EQL 0)
; 1288 THEN
; 1289 ERRMSG (0, 1, ROUTINE_NAME, 0, 0, 0, 0)
; 1290 ELSE
; 1291
; 1292 IF ((VALUES [DEV_CHAIN] = BLD_CHAIN (.VALUES, .VALUES [DEV_CHAIN], .DEV_PTR)) EQL 0)
; 1293 THEN
; 1294 ERRMSG (0,
; 1295 1, ROUTINE_NAME, 0, 0, 0, 0)
; 1296 ELSE
; 1297 BEGIN
; 1298 SCAN (.FILE_CHAN, .FILE_PTR, .SAVE_CHAR, RESULT);
; 1299
; 1300 IF (.RESULT [RESULT_TYPE] NEQ RT_NAME)
; 1301 THEN
; 1302 ERRMSG (0, 24, ROUTINE_NAME, FILE_PTR [FILE_NAME], 0,
; 1303 0, 0)
; 1304 ELSE
; 1305 CH$MOVE (4, CH$PTR (RESULT [RESULT_VALUE]), CH$PTR (DEV_PTR [DEV_NAME]));
; 1306
; 1307 END;
; 1308
; 1309 !
; 1310 ! SAVE POINTER TO DEV FOR UNT$DF AND CNT$DF SCANNERS
; 1311 !
; 1312 VALUES [CURRENT_DEV] = .DEV_PTR;
; 1313 !
; 1314 ! FINISHED WITH DEV$DF, SKIP TO END OF LINE
; 1315 !
; 1316
; 1317 DO
; 1318 SCAN (.FILE_CHAN, .FILE_PTR, .SAVE_CHAR, RESULT)
; 1319 UNTIL ((.RESULT [RESULT_TYPE] EQL RT_SPECIAL) AND (.RESULT [RESULT_VALUE] LSS 0));
; 1320
; 1321 END; !OF R_DEV
P.AAQ: BYTE (7)"R","E","A","D","-" ; READ- 402013' 122 105 101 104 055
BYTE (7)"D","E","V","$","D" ; DEV$D 402014' 104 105 126 044 104
BYTE (7)"F",000,000,000,000 ; F 402015' 106 000 000 000 000
ROUTINE_NAME= P.AAQ ; 000000 402013'
R_DEV: PUSH SP,AC0 ; SP,AC0 402016' 261 17 0 00 000000 1234
PUSH SP,AC10 ; SP,AC10 402017' 261 17 0 00 000010
ADJSP SP,24 ; SP,24 402020' 105 17 0 00 000024
PUSH SP,C.35 ; SP,[20] 402021' 261 17 0 00 402132' 1287
PUSH SP,C.27 ; SP,[4] 402022' 261 17 0 00 401372'
PUSHJ SP,GETBLK ; SP,GETBLK 402023' 260 17 0 00 000000*
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 54
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (10)
MOVE AC0,AC1 ; DEV_PTR,AC1 402024' 200 00 0 00 000001
ADJSP SP,-2 ; SP,-2 402025' 105 17 0 00 777776
JUMPE AC0,L.126 ; DEV_PTR,L.126 402026' 322 00 0 00 402040'
MOVE AC10,-27(SP) ; AC10,VALUES 402027' 200 10 0 17 777751 1292
PUSH SP,AC10 ; SP,AC10 402030' 261 17 0 00 000010
HRRZ AC1,2(AC10) ; AC1,2(AC10) 402031' 550 01 0 10 000002
PUSH SP,AC1 ; SP,AC1 402032' 261 17 0 00 000001
PUSH SP,AC0 ; SP,DEV_PTR 402033' 261 17 0 00 000000
PUSHJ SP,BLD_CHAIN ; SP,BLD_CHAIN 402034' 260 17 0 00 000000*
ADJSP SP,-3 ; SP,-3 402035' 105 17 0 00 777775
HRRM AC1,2(AC10) ; AC1,2(AC10) 402036' 542 01 0 10 000002
JUMPN AC1,L.127 ; AC1,L.127 402037' 326 01 0 00 402052'
L.126: PUSH SP,C.4 ; SP,[0] 402040' 261 17 0 00 400371' 1294
PUSH SP,C.3 ; SP,[1] 402041' 261 17 0 00 400370'
PUSH SP,C.36 ; SP,[0,,ROUTINE_NAME] 402042' 261 17 0 00 402133'
PUSH SP,C.4 ; SP,[0] 402043' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 402044' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 402045' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 402046' 261 17 0 00 400371'
PUSHJ SP,ERRMSG ; SP,ERRMSG 402047' 260 17 0 00 000000*
ADJSP SP,-3 ; SP,-3 402050' 105 17 0 00 777775
JRST L.129 ; L.129 402051' 254 00 0 00 402110' 1292
L.127: PUSH SP,-32(SP) ; SP,FILE_CHAN 402052' 261 17 0 17 777746 1298
PUSH SP,-32(SP) ; SP,FILE_PTR 402053' 261 17 0 17 777746
PUSH SP,-32(SP) ; SP,SAVE_CHAR 402054' 261 17 0 17 777746
MOVEI AC1,-26(SP) ; AC1,RESULT 402055' 201 01 0 17 777752
PUSH SP,AC1 ; SP,AC1 402056' 261 17 0 00 000001
PUSHJ SP,SCAN ; SP,SCAN 402057' 260 17 0 00 400503'
MOVEI AC1,1 ; AC1,1 402060' 201 01 0 00 000001 1300
CAMN AC1,-27(SP) ; AC1,RESULT 402061' 316 01 0 17 777751
JRST L.128 ; L.128 402062' 254 00 0 00 402077'
SETZM 0(SP) ; 0(SP) 402063' 402 00 0 17 000000 1302
PUSH SP,C.7 ; SP,[30] 402064' 261 17 0 00 400374'
PUSH SP,C.36 ; SP,[0,,ROUTINE_NAME] 402065' 261 17 0 00 402133'
MOVE AC1,-37(SP) ; AC1,FILE_PTR 402066' 200 01 0 17 777741
ADDI AC1,2 ; AC1,2 402067' 271 01 0 00 000002
PUSH SP,AC1 ; SP,AC1 402070' 261 17 0 00 000001
PUSH SP,C.4 ; SP,[0] 402071' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 402072' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 402073' 261 17 0 00 400371'
PUSHJ SP,ERRMSG ; SP,ERRMSG 402074' 260 17 0 00 000000*
ADJSP SP,-6 ; SP,-6 402075' 105 17 0 00 777772
JRST L.129 ; L.129 402076' 254 00 0 00 402110' 1300
L.128: MOVEI AC2,-27(SP) ; AC2,RESULT 402077' 201 02 0 17 777751 1305
HRLI AC2,10700 ; AC2,10700 402100' 505 02 0 00 010700
MOVE AC1,AC0 ; AC1,DEV_PTR 402101' 200 01 0 00 000000
MOVEI AC5,0(AC1) ; AC5,0(AC1) 402102' 201 05 0 01 000000
HRLI AC5,10700 ; AC5,10700 402103' 505 05 0 00 010700
MOVEI AC1,4 ; AC1,4 402104' 201 01 0 00 000004
MOVEI AC4,4 ; AC4,4 402105' 201 04 0 00 000004
EXTEND AC1,C.23 ; AC1,[MOVSLJ ] 402106' 123 01 0 00 401030'
JFCL ; 402107' 255 00 0 00 000000
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 55
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (10)
L.129: MOVE AC1,-33(SP) ; AC1,VALUES 402110' 200 01 0 17 777745 1312
HRLM AC0,111(AC1) ; DEV_PTR,111(AC1) 402111' 506 00 0 01 000111
L.130: PUSH SP,-36(SP) ; SP,FILE_CHAN 402112' 261 17 0 17 777742 1318
PUSH SP,-36(SP) ; SP,FILE_PTR 402113' 261 17 0 17 777742
PUSH SP,-36(SP) ; SP,SAVE_CHAR 402114' 261 17 0 17 777742
MOVEI AC0,-32(SP) ; AC0,RESULT 402115' 201 00 0 17 777746
PUSH SP,AC0 ; SP,AC0 402116' 261 17 0 00 000000
PUSHJ SP,SCAN ; SP,SCAN 402117' 260 17 0 00 400503'
ADJSP SP,-4 ; SP,-4 402120' 105 17 0 00 777774
MOVEI AC0,3 ; AC0,3 402121' 201 00 0 00 000003 1319
CAMN AC0,-27(SP) ; AC0,RESULT 402122' 316 00 0 17 777751
SKIPL -26(SP) ; RESULT+1 402123' 331 00 0 17 777752
JRST L.130 ; L.130 402124' 254 00 0 00 402112' 1317
ADJSP SP,-4 ; SP,-4 402125' 105 17 0 00 777774 1267
ADJSP SP,-24 ; SP,-24 402126' 105 17 0 00 777754 1234
POP SP,AC10 ; SP,AC10 402127' 262 17 0 00 000010
POP SP,AC0 ; SP,AC0 402130' 262 17 0 00 000000
POPJ SP, ; SP, 402131' 263 17 0 00 000000
C.35: EXP 20 ; 20 402132' 000000 000020
C.36: XWD 0,ROUTINE_NAME ; 0,ROUTINE_NAME 402133' 000000 402013'
; Routine Size: 78 words
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 56
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (11)
; 1322 ROUTINE R_CTL (FILE_CHAN, FILE_PTR, SAVE_CHAR, VALUES) : NOVALUE = !READ CTL$DF LINE
; 1323
; 1324 !++
; 1325 ! FUNCTIONAL DESCRIPTION:
; 1326 !
; 1327 ! READ AND PROCESS THE CTL$DF LINE OF CETAB.MAC
; 1328 !
; 1329 ! FORMAL PARAMETERS:
; 1330 !
; 1331 ! FILE_CHAN - CHANNEL NUMBER ON WHICH TO READ
; 1332 ! FILE_PTR - FILE BLOCK WITH FILE NAME FILLED IN
; 1333 ! SAVE_CHAR - ADDRESS OF CHARACTER SAVED FROM LAST CALL TO SCAN
; 1334 ! VALUES - BLOCK INTO WHICH TO STORE RESULTS
; 1335 !
; 1336 ! IMPLICIT INPUTS:
; 1337 !
; 1338 ! NONE
; 1339 !
; 1340 ! IMPLICIT OUTPUTS:
; 1341 !
; 1342 ! NONE
; 1343 !
; 1344 ! ROUTINE VALUE:
; 1345 !
; 1346 ! NONE
; 1347 !
; 1348 ! SIDE EFFECTS
; 1349 !
; 1350 ! READS THE REMAINDER OF THE LINE FROM CETAB.MAC
; 1351 ! AND GETS STORAGE FROM THE FREE LIST
; 1352 !
; 1353 !--
; 1354
; 1355 BEGIN
; 1356
; 1357 BIND
; 1358 ROUTINE_NAME = UPLIT (%ASCIZ'READ-CTL$DF');
; 1359
; 1360 MAP
; 1361 FILE_PTR : REF FILE_BLOCK,
; 1362 VALUES : REF VNPVAL_BLOCK;
; 1363
; 1364 LOCAL
; 1365 CTL_PTR : REF CTL_BLOCK,
; 1366 DEV_PTR : REF DEV_BLOCK,
; 1367 RESULT : VECTOR [20],
; 1368 VAL_POINTER,
; 1369 SCAN_DONE,
; 1370 SEARCH_DONE;
; 1371
; 1372 !
; 1373 ! FETCH A POINTER TO THE LAST DEV BLOCK
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 57
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (11)
; 1374 !
; 1375 DEV_PTR = .VALUES [CURRENT_DEV];
; 1376 DEV_PTR [DEV_NUM_OF_CTLS] = .DEV_PTR [DEV_NUM_OF_CTLS] + 1;
; 1377 !
; 1378 ! ALLOCATE A CTL BLOCK AND LINK IT IN WITH THE OTHERS, IF ANY.
; 1379 !
; 1380
; 1381 IF ((CTL_PTR = GETBLK (CTL_TYP, CTL_LEN)) EQL 0)
; 1382 THEN
; 1383 ERRMSG (0, 1, ROUTINE_NAME, 0, 0, 0, 0)
; 1384 ELSE
; 1385
; 1386 IF ((DEV_PTR [DEV_CTL] = BLD_CHAIN (.DEV_PTR, .DEV_PTR [DEV_CTL], .CTL_PTR)) EQL 0)
; 1387 THEN
; 1388 ERRMSG (0,
; 1389 1, ROUTINE_NAME, 0, 0, 0, 0)
; 1390 ELSE
; 1391 BEGIN
; 1392 VAL_POINTER = 1;
; 1393 SCAN_DONE = 0;
; 1394
; 1395 WHILE (.SCAN_DONE EQL 0) DO
; 1396 BEGIN
; 1397 SCAN (.FILE_CHAN, .FILE_PTR, .SAVE_CHAR, RESULT);
; 1398
; 1399 IF ((.RESULT [RESULT_TYPE] EQL RT_SPECIAL) AND (.RESULT [RESULT_VALUE] LSS 0))
; 1400 THEN
; 1401 SCAN_DONE = -1
; 1402 ELSE
; 1403 BEGIN
; 1404
; 1405 IF ((.RESULT [RESULT_TYPE] NEQ RT_SPECIAL) OR (.RESULT [RESULT_VALUE] NEQ %C','))
; 1406 THEN
; 1407 BEGIN
; 1408
; 1409 IF (.RESULT [RESULT_TYPE] EQL RT_NUMBER)
; 1410 THEN
; 1411 BEGIN
; 1412
; 1413 CASE .VAL_POINTER FROM 1 TO 9 OF
; 1414 SET
; 1415
; 1416 [1] : !CONTROLLER NUMBER
; 1417 CTL_PTR [CTL_CONT] = .RESULT [RESULT_VALUE];
; 1418
; 1419 [2] : !Parameter word 0
; 1420 CTL_PTR [CTL_PAR_0] = .RESULT [RESULT_VALUE];
; 1421
; 1422 [3] : !Parameter word 1
; 1423 CTL_PTR [CTL_PAR_1] = .RESULT [RESULT_VALUE];
; 1424
; 1425 [4] : !Parameter word 2
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 58
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (11)
; 1426 CTL_PTR [CTL_PAR_2] = .RESULT [RESULT_VALUE];
; 1427
; 1428 [5] : !Parameter word 3
; 1429 CTL_PTR [CTL_PAR_3] = .RESULT [RESULT_VALUE];
; 1430
; 1431 [6] : !Parameter word 4
; 1432 CTL_PTR [CTL_PAR_4] = .RESULT [RESULT_VALUE];
; 1433
; 1434 [7] : !Parameter word 5
; 1435 CTL_PTR [CTL_PAR_5] = .RESULT [RESULT_VALUE];
; 1436
; 1437 [8] : !Parameter word 6
; 1438 CTL_PTR [CTL_PAR_6] = .RESULT [RESULT_VALUE];
; 1439
; 1440 [9] : !Parameter word 7
; 1441 CTL_PTR [CTL_PAR_7] = .RESULT [RESULT_VALUE];
; 1442
; 1443 [OUTRANGE] :
; 1444 BEGIN
; 1445 ERRMSG (0, 24, ROUTINE_NAME, FILE_PTR [FILE_NAME], 0, 0, 0);
; 1446 SCAN_DONE = 1;
; 1447 END;
; 1448 TES;
; 1449
; 1450 END
; 1451 ELSE
; 1452 ERRMSG (0, 24, ROUTINE_NAME, FILE_PTR [FILE_NAME], 0, 0, 0);
; 1453
; 1454 !
; 1455 ! SCAN FOR THE NEXT COMMA
; 1456 !
; 1457 SEARCH_DONE = 0;
; 1458
; 1459 WHILE (.SEARCH_DONE EQL 0) DO
; 1460 BEGIN
; 1461 SCAN (.FILE_CHAN, .FILE_PTR, .SAVE_CHAR, RESULT);
; 1462
; 1463 IF (.RESULT [RESULT_TYPE] EQL RT_SPECIAL)
; 1464 THEN
; 1465
; 1466 IF (.RESULT [RESULT_VALUE] LSS 0)
; 1467 THEN
; 1468 SEARCH_DONE = -1
; 1469 ELSE
; 1470
; 1471 IF (.RESULT [RESULT_VALUE] EQL %C',') THEN SEARCH_DONE = 1;
; 1472
; 1473 END;
; 1474
; 1475 IF (.SEARCH_DONE LSS 0) THEN SCAN_DONE = .SEARCH_DONE;
; 1476
; 1477 END;
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 59
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (11)
; 1478
; 1479 END;
; 1480
; 1481 VAL_POINTER = .VAL_POINTER + 1;
; 1482 END;
; 1483
; 1484 END;
; 1485
; 1486 !
; 1487 ! STORE POINTER TO DEV BLOCK, FOR REDUNDENCY
; 1488 !
; 1489 CTL_PTR [CTL_DEV] = .DEV_PTR;
; 1490 !
; 1491 ! SAVE POINTER TO CTL FOR UNT$DF SCANNER
; 1492 !
; 1493 VALUES [CURRENT_CTL] = .CTL_PTR;
; 1494 !
; 1495 ! FINISHED WITH CTL$DF, SKIP TO END OF LINE
; 1496 !
; 1497
; 1498 IF (.SCAN_DONE GTR 0)
; 1499 THEN
; 1500
; 1501 DO
; 1502 SCAN (.FILE_CHAN, .FILE_PTR, .SAVE_CHAR, RESULT)
; 1503 UNTIL ((.RESULT [RESULT_TYPE] EQL RT_SPECIAL) AND (.RESULT [RESULT_VALUE] LSS 0));
; 1504
; 1505 END; !OF R_CTL
P.AAR: BYTE (7)"R","E","A","D","-" ; READ- 402134' 122 105 101 104 055
BYTE (7)"C","T","L","$","D" ; CTL$D 402135' 103 124 114 044 104
BYTE (7)"F",000,000,000,000 ; F 402136' 106 000 000 000 000
ROUTINE_NAME= P.AAR ; 000000 402134'
R_CTL: PUSH SP,AC0 ; SP,AC0 402137' 261 17 0 00 000000 1322
PUSH SP,AC10 ; SP,AC10 402140' 261 17 0 00 000010
PUSH SP,AC11 ; SP,AC11 402141' 261 17 0 00 000011
PUSH SP,AC12 ; SP,AC12 402142' 261 17 0 00 000012
PUSH SP,AC13 ; SP,AC13 402143' 261 17 0 00 000013
PUSH SP,AC14 ; SP,AC14 402144' 261 17 0 00 000014
PUSH SP,AC16 ; SP,AC16 402145' 261 17 0 00 000016
ADJSP SP,24 ; SP,24 402146' 105 17 0 00 000024
MOVE AC10,-34(SP) ; AC10,VALUES 402147' 200 10 0 17 777744 1375
HLRZ AC0,111(AC10) ; DEV_PTR,111(AC10) 402150' 554 00 0 10 000111
MOVE AC1,AC0 ; AC1,DEV_PTR 402151' 200 01 0 00 000000 1376
AOS 3(AC1) ; 3(AC1) 402152' 350 00 0 01 000003
PUSH SP,C.37 ; SP,[21] 402153' 261 17 0 00 402413' 1381
PUSH SP,C.38 ; SP,[14] 402154' 261 17 0 00 402414'
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 60
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (11)
PUSHJ SP,GETBLK ; SP,GETBLK 402155' 260 17 0 00 000000*
MOVE AC11,AC1 ; CTL_PTR,AC1 402156' 200 11 0 00 000001
ADJSP SP,-2 ; SP,-2 402157' 105 17 0 00 777776
JUMPE AC11,L.131 ; CTL_PTR,L.131 402160' 322 11 0 00 402173'
PUSH SP,AC0 ; SP,DEV_PTR 402161' 261 17 0 00 000000 1386
MOVE AC2,AC0 ; AC2,DEV_PTR 402162' 200 02 0 00 000000
HRRZ AC1,2(AC2) ; AC1,2(AC2) 402163' 550 01 0 02 000002
PUSH SP,AC1 ; SP,AC1 402164' 261 17 0 00 000001
PUSH SP,AC11 ; SP,CTL_PTR 402165' 261 17 0 00 000011
PUSHJ SP,BLD_CHAIN ; SP,BLD_CHAIN 402166' 260 17 0 00 000000*
ADJSP SP,-3 ; SP,-3 402167' 105 17 0 00 777775
MOVE AC2,AC0 ; AC2,DEV_PTR 402170' 200 02 0 00 000000
HRRM AC1,2(AC2) ; AC1,2(AC2) 402171' 542 01 0 02 000002
JUMPN AC1,L.132 ; AC1,L.132 402172' 326 01 0 00 402205'
L.131: PUSH SP,C.4 ; SP,[0] 402173' 261 17 0 00 400371' 1388
PUSH SP,C.3 ; SP,[1] 402174' 261 17 0 00 400370'
PUSH SP,C.39 ; SP,[0,,ROUTINE_NAME] 402175' 261 17 0 00 402415'
PUSH SP,C.4 ; SP,[0] 402176' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 402177' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 402200' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 402201' 261 17 0 00 400371'
PUSHJ SP,ERRMSG ; SP,ERRMSG 402202' 260 17 0 00 000000*
ADJSP SP,-7 ; SP,-7 402203' 105 17 0 00 777771
JRST L.155 ; L.155 402204' 254 00 0 00 402364' 1386
L.132: MOVEI AC16,1 ; VAL_POINTER,1 402205' 201 16 0 00 000001 1392
SETZ AC13, ; SCAN_DONE, 402206' 400 13 0 00 000000 1393
MOVE AC14,-36(SP) ; AC14,FILE_PTR 402207' 200 14 0 17 777742 1397
L.133: JUMPN AC13,L.155 ; SCAN_DONE,L.155 402210' 326 13 0 00 402364' 1395
PUSH SP,-37(SP) ; SP,FILE_CHAN 402211' 261 17 0 17 777741 1397
PUSH SP,AC14 ; SP,AC14 402212' 261 17 0 00 000014
PUSH SP,-37(SP) ; SP,SAVE_CHAR 402213' 261 17 0 17 777741
MOVEI AC1,-26(SP) ; AC1,RESULT 402214' 201 01 0 17 777752
PUSH SP,AC1 ; SP,AC1 402215' 261 17 0 00 000001
PUSHJ SP,SCAN ; SP,SCAN 402216' 260 17 0 00 400503'
MOVE AC1,-27(SP) ; AC1,RESULT 402217' 200 01 0 17 777751 1399
CAIN AC1,3 ; AC1,3 402220' 306 01 0 00 000003
SKIPL -26(SP) ; RESULT+1 402221' 331 00 0 17 777752
JRST L.134 ; L.134 402222' 254 00 0 00 402225'
SETO AC13, ; SCAN_DONE, 402223' 474 13 0 00 000000 1401
JRST L.154 ; L.154 402224' 254 00 0 00 402361' 1399
L.134: CAIE AC1,3 ; AC1,3 402225' 302 01 0 00 000003 1405
JRST L.135 ; L.135 402226' 254 00 0 00 402232'
MOVEI AC2,54 ; AC2,54 402227' 201 02 0 00 000054
CAMN AC2,-26(SP) ; AC2,RESULT+1 402230' 316 02 0 17 777752
JRST L.154 ; L.154 402231' 254 00 0 00 402361'
L.135: CAIE AC1,2 ; AC1,2 402232' 302 01 0 00 000002 1409
JRST L.147 ; L.147 402233' 254 00 0 00 402321'
MOVE AC1,AC16 ; AC1,VAL_POINTER 402234' 200 01 0 00 000016 1413
SOJL AC1,L.137 ; AC1,L.137 402235' 361 01 0 00 402252'
CAIGE AC1,11 ; AC1,11 402236' 305 01 0 00 000011
JRST L.136(AC1) ; L.136(AC1) 402237' 254 00 0 01 402241'
JRST L.137 ; L.137 402240' 254 00 0 00 402252'
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 61
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (11)
L.136: JRST L.138 ; L.138 402241' 254 00 0 00 402266'
JRST L.139 ; L.139 402242' 254 00 0 00 402271'
JRST L.140 ; L.140 402243' 254 00 0 00 402274'
JRST L.141 ; L.141 402244' 254 00 0 00 402277'
JRST L.142 ; L.142 402245' 254 00 0 00 402302'
JRST L.143 ; L.143 402246' 254 00 0 00 402305'
JRST L.144 ; L.144 402247' 254 00 0 00 402310'
JRST L.145 ; L.145 402250' 254 00 0 00 402313'
JRST L.146 ; L.146 402251' 254 00 0 00 402316'
L.137: SETZM 0(SP) ; 0(SP) 402252' 402 00 0 17 000000 1445
PUSH SP,C.7 ; SP,[30] 402253' 261 17 0 00 400374'
PUSH SP,C.39 ; SP,[0,,ROUTINE_NAME] 402254' 261 17 0 00 402415'
MOVE AC1,AC14 ; AC1,AC14 402255' 200 01 0 00 000014
ADDI AC1,2 ; AC1,2 402256' 271 01 0 00 000002
PUSH SP,AC1 ; SP,AC1 402257' 261 17 0 00 000001
PUSH SP,C.4 ; SP,[0] 402260' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 402261' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 402262' 261 17 0 00 400371'
PUSHJ SP,ERRMSG ; SP,ERRMSG 402263' 260 17 0 00 000000*
MOVEI AC13,1 ; SCAN_DONE,1 402264' 201 13 0 00 000001 1446
JRST L.148 ; L.148 402265' 254 00 0 00 402333'
L.138: MOVE AC1,-26(SP) ; AC1,RESULT+1 402266' 200 01 0 17 777752 1417
MOVEM AC1,1(AC11) ; AC1,1(CTL_PTR) 402267' 202 01 0 11 000001
JRST L.149 ; L.149 402270' 254 00 0 00 402334' 1413
L.139: MOVE AC1,-26(SP) ; AC1,RESULT+1 402271' 200 01 0 17 777752 1420
MOVEM AC1,4(AC11) ; AC1,4(CTL_PTR) 402272' 202 01 0 11 000004
JRST L.149 ; L.149 402273' 254 00 0 00 402334' 1413
L.140: MOVE AC1,-26(SP) ; AC1,RESULT+1 402274' 200 01 0 17 777752 1423
MOVEM AC1,5(AC11) ; AC1,5(CTL_PTR) 402275' 202 01 0 11 000005
JRST L.149 ; L.149 402276' 254 00 0 00 402334' 1413
L.141: MOVE AC1,-26(SP) ; AC1,RESULT+1 402277' 200 01 0 17 777752 1426
MOVEM AC1,6(AC11) ; AC1,6(CTL_PTR) 402300' 202 01 0 11 000006
JRST L.149 ; L.149 402301' 254 00 0 00 402334' 1413
L.142: MOVE AC1,-26(SP) ; AC1,RESULT+1 402302' 200 01 0 17 777752 1429
MOVEM AC1,7(AC11) ; AC1,7(CTL_PTR) 402303' 202 01 0 11 000007
JRST L.149 ; L.149 402304' 254 00 0 00 402334' 1413
L.143: MOVE AC1,-26(SP) ; AC1,RESULT+1 402305' 200 01 0 17 777752 1432
MOVEM AC1,10(AC11) ; AC1,10(CTL_PTR) 402306' 202 01 0 11 000010
JRST L.149 ; L.149 402307' 254 00 0 00 402334' 1413
L.144: MOVE AC1,-26(SP) ; AC1,RESULT+1 402310' 200 01 0 17 777752 1435
MOVEM AC1,11(AC11) ; AC1,11(CTL_PTR) 402311' 202 01 0 11 000011
JRST L.149 ; L.149 402312' 254 00 0 00 402334' 1413
L.145: MOVE AC1,-26(SP) ; AC1,RESULT+1 402313' 200 01 0 17 777752 1438
MOVEM AC1,12(AC11) ; AC1,12(CTL_PTR) 402314' 202 01 0 11 000012
JRST L.149 ; L.149 402315' 254 00 0 00 402334' 1413
L.146: MOVE AC1,-26(SP) ; AC1,RESULT+1 402316' 200 01 0 17 777752 1441
MOVEM AC1,13(AC11) ; AC1,13(CTL_PTR) 402317' 202 01 0 11 000013
JRST L.149 ; L.149 402320' 254 00 0 00 402334' 1409
L.147: SETZM 0(SP) ; 0(SP) 402321' 402 00 0 17 000000 1452
PUSH SP,C.7 ; SP,[30] 402322' 261 17 0 00 400374'
PUSH SP,C.39 ; SP,[0,,ROUTINE_NAME] 402323' 261 17 0 00 402415'
MOVE AC1,AC14 ; AC1,AC14 402324' 200 01 0 00 000014
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 62
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (11)
ADDI AC1,2 ; AC1,2 402325' 271 01 0 00 000002
PUSH SP,AC1 ; SP,AC1 402326' 261 17 0 00 000001
PUSH SP,C.4 ; SP,[0] 402327' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 402330' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 402331' 261 17 0 00 400371'
PUSHJ SP,ERRMSG ; SP,ERRMSG 402332' 260 17 0 00 000000*
L.148: ADJSP SP,-6 ; SP,-6 402333' 105 17 0 00 777772
L.149: SETZ AC12, ; SEARCH_DONE, 402334' 400 12 0 00 000000 1457
L.150: JUMPN AC12,L.153 ; SEARCH_DONE,L.153 402335' 326 12 0 00 402357' 1459
PUSH SP,-43(SP) ; SP,FILE_CHAN 402336' 261 17 0 17 777735 1461
PUSH SP,AC14 ; SP,AC14 402337' 261 17 0 00 000014
PUSH SP,-43(SP) ; SP,SAVE_CHAR 402340' 261 17 0 17 777735
MOVEI AC1,-32(SP) ; AC1,RESULT 402341' 201 01 0 17 777746
PUSH SP,AC1 ; SP,AC1 402342' 261 17 0 00 000001
PUSHJ SP,SCAN ; SP,SCAN 402343' 260 17 0 00 400503'
MOVEI AC1,3 ; AC1,3 402344' 201 01 0 00 000003 1463
CAME AC1,-33(SP) ; AC1,RESULT 402345' 312 01 0 17 777745
JRST L.152 ; L.152 402346' 254 00 0 00 402355'
MOVE AC1,-32(SP) ; AC1,RESULT+1 402347' 200 01 0 17 777746 1466
JUMPGE AC1,L.151 ; AC1,L.151 402350' 325 01 0 00 402353'
SETO AC12, ; SEARCH_DONE, 402351' 474 12 0 00 000000 1468
JRST L.152 ; L.152 402352' 254 00 0 00 402355' 1466
L.151: CAIN AC1,54 ; AC1,54 402353' 306 01 0 00 000054 1471
MOVEI AC12,1 ; SEARCH_DONE,1 402354' 201 12 0 00 000001
L.152: ADJSP SP,-4 ; SP,-4 402355' 105 17 0 00 777774 1460
JRST L.150 ; L.150 402356' 254 00 0 00 402335' 1459
L.153: JUMPGE AC12,L.154 ; SEARCH_DONE,L.154 402357' 325 12 0 00 402361' 1475
MOVE AC13,AC12 ; SCAN_DONE,SEARCH_DONE 402360' 200 13 0 00 000012
L.154: ADDI AC16,1 ; VAL_POINTER,1 402361' 271 16 0 00 000001 1481
ADJSP SP,-4 ; SP,-4 402362' 105 17 0 00 777774 1396
JRST L.133 ; L.133 402363' 254 00 0 00 402210' 1395
L.155: HRLM AC0,2(AC11) ; DEV_PTR,2(CTL_PTR) 402364' 506 00 0 11 000002 1489
HRRM AC11,112(AC10) ; CTL_PTR,112(AC10) 402365' 542 11 0 10 000112 1493
JUMPLE AC13,L.157 ; SCAN_DONE,L.157 402366' 323 13 0 00 402402' 1498
L.156: PUSH SP,-37(SP) ; SP,FILE_CHAN 402367' 261 17 0 17 777741 1502
PUSH SP,-37(SP) ; SP,FILE_PTR 402370' 261 17 0 17 777741
PUSH SP,-37(SP) ; SP,SAVE_CHAR 402371' 261 17 0 17 777741
MOVEI AC0,-26(SP) ; AC0,RESULT 402372' 201 00 0 17 777752
PUSH SP,AC0 ; SP,AC0 402373' 261 17 0 00 000000
PUSHJ SP,SCAN ; SP,SCAN 402374' 260 17 0 00 400503'
ADJSP SP,-4 ; SP,-4 402375' 105 17 0 00 777774
MOVEI AC0,3 ; AC0,3 402376' 201 00 0 00 000003 1503
CAMN AC0,-23(SP) ; AC0,RESULT 402377' 316 00 0 17 777755
SKIPL -22(SP) ; RESULT+1 402400' 331 00 0 17 777756
JRST L.156 ; L.156 402401' 254 00 0 00 402367' 1501
L.157: ADJSP SP,-24 ; SP,-24 402402' 105 17 0 00 777754 1322
POP SP,AC16 ; SP,AC16 402403' 262 17 0 00 000016
POP SP,AC14 ; SP,AC14 402404' 262 17 0 00 000014
POP SP,AC13 ; SP,AC13 402405' 262 17 0 00 000013
POP SP,AC12 ; SP,AC12 402406' 262 17 0 00 000012
POP SP,AC11 ; SP,AC11 402407' 262 17 0 00 000011
POP SP,AC10 ; SP,AC10 402410' 262 17 0 00 000010
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 63
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (11)
POP SP,AC0 ; SP,AC0 402411' 262 17 0 00 000000
POPJ SP, ; SP, 402412' 263 17 0 00 000000
C.37: EXP 21 ; 21 402413' 000000 000021
C.38: EXP 14 ; 14 402414' 000000 000014
C.39: XWD 0,ROUTINE_NAME ; 0,ROUTINE_NAME 402415' 000000 402134'
; Routine Size: 175 words
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 64
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (12)
; 1506 ROUTINE R_UNT (FILE_CHAN, FILE_PTR, SAVE_CHAR, VALUES) : NOVALUE = !READ UNT$DF LINE
; 1507
; 1508 !++
; 1509 ! FUNCTIONAL DESCRIPTION:
; 1510 !
; 1511 ! READ AND PROCESS THE UNT$DF LINE OF CETAB.MAC
; 1512 !
; 1513 ! FORMAL PARAMETERS:
; 1514 !
; 1515 ! FILE_CHAN - CHANNEL NUMBER ON WHICH TO READ
; 1516 ! FILE_PTR - FILE BLOCK WITH FILE NAME FILLED IN
; 1517 ! SAVE_CHAR - ADDRESS OF CHARACTER SAVED FROM LAST CALL TO SCAN
; 1518 ! VALUES - BLOCK INTO WHICH TO STORE RESULTS
; 1519 !
; 1520 ! IMPLICIT INPUTS:
; 1521 !
; 1522 ! NONE
; 1523 !
; 1524 ! IMPLICIT OUTPUTS:
; 1525 !
; 1526 ! NONE
; 1527 !
; 1528 ! ROUTINE VALUE:
; 1529 !
; 1530 ! NONE
; 1531 !
; 1532 ! SIDE EFFECTS
; 1533 !
; 1534 ! READS THE REMAINDER OF THE LINE FROM CETAB.MAC
; 1535 ! AND GETS STORAGE FROM THE FREE LIST
; 1536 !
; 1537 !--
; 1538
; 1539 BEGIN
; 1540
; 1541 BIND
; 1542 ROUTINE_NAME = UPLIT (%ASCIZ'READ-UNT$DF');
; 1543
; 1544 MAP
; 1545 FILE_PTR : REF FILE_BLOCK,
; 1546 VALUES : REF VNPVAL_BLOCK;
; 1547
; 1548 LOCAL
; 1549 UNT_PTR : REF UNT_BLOCK,
; 1550 CTL_PTR : REF CTL_BLOCK,
; 1551 DEV_PTR : REF DEV_BLOCK,
; 1552 RESULT : VECTOR [20],
; 1553 VAL_POINTER,
; 1554 SCAN_DONE,
; 1555 SEARCH_DONE;
; 1556
; 1557 !
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 65
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (12)
; 1558 ! FETCH POINTERS TO THE LAST DEV AND CTL BLOCKS
; 1559 !
; 1560 DEV_PTR = .VALUES [CURRENT_DEV];
; 1561 CTL_PTR = .VALUES [CURRENT_CTL];
; 1562 !
; 1563 ! ALLOCATE A UNT BLOCK AND LINK IT IN WITH THE OTHERS, IF ANY.
; 1564 !
; 1565
; 1566 IF ((UNT_PTR = GETBLK (UNT_TYP, UNT_LEN)) EQL 0)
; 1567 THEN
; 1568 ERRMSG (0, 1, ROUTINE_NAME, 0, 0, 0, 0)
; 1569 ELSE
; 1570
; 1571 IF ((CTL_PTR [CTL_UNT] = BLD_CHAIN (.CTL_PTR, .CTL_PTR [CTL_UNT], .UNT_PTR)) EQL 0)
; 1572 THEN
; 1573 ERRMSG (0,
; 1574 1, ROUTINE_NAME, 0, 0, 0, 0)
; 1575 ELSE
; 1576 BEGIN
; 1577 CTL_PTR [CTL_NUM_OF_UNTS] = .CTL_PTR [CTL_NUM_OF_UNTS] + 1;
; 1578 VAL_POINTER = 1;
; 1579 SCAN_DONE = 0;
; 1580
; 1581 WHILE (.SCAN_DONE EQL 0) DO
; 1582 BEGIN
; 1583 SCAN (.FILE_CHAN, .FILE_PTR, .SAVE_CHAR, RESULT);
; 1584
; 1585 IF ((.RESULT [RESULT_TYPE] EQL RT_SPECIAL) AND (.RESULT [RESULT_VALUE] LSS 0))
; 1586 THEN
; 1587 SCAN_DONE = -1
; 1588 ELSE
; 1589 BEGIN
; 1590
; 1591 IF ((.RESULT [RESULT_TYPE] NEQ RT_SPECIAL) OR (.RESULT [RESULT_VALUE] NEQ %C','))
; 1592 THEN
; 1593 BEGIN
; 1594
; 1595 IF (.RESULT [RESULT_TYPE] EQL RT_NUMBER)
; 1596 THEN
; 1597 BEGIN
; 1598
; 1599 CASE .VAL_POINTER FROM 1 TO 9 OF
; 1600 SET
; 1601
; 1602 [1] : !UNIT NUMBER
; 1603 UNT_PTR [UNT_UNIT] = .RESULT [RESULT_VALUE];
; 1604
; 1605 [2] : !Parameter word 0
; 1606 UNT_PTR [UNT_PAR_0] = .RESULT [RESULT_VALUE];
; 1607
; 1608 [3] : !Parameter word 1
; 1609 UNT_PTR [UNT_PAR_1] = .RESULT [RESULT_VALUE];
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 66
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (12)
; 1610
; 1611 [4] : !Parameter word 2
; 1612 UNT_PTR [UNT_PAR_2] = .RESULT [RESULT_VALUE];
; 1613
; 1614 [5] : !Parameter word 3
; 1615 UNT_PTR [UNT_PAR_3] = .RESULT [RESULT_VALUE];
; 1616
; 1617 [6] : !Parameter word 4
; 1618 UNT_PTR [UNT_PAR_4] = .RESULT [RESULT_VALUE];
; 1619
; 1620 [7] : !Parameter word 5
; 1621 UNT_PTR [UNT_PAR_5] = .RESULT [RESULT_VALUE];
; 1622
; 1623 [8] : !Parameter word 6
; 1624 UNT_PTR [UNT_PAR_6] = .RESULT [RESULT_VALUE];
; 1625
; 1626 [9] : !Parameter word 7
; 1627 UNT_PTR [UNT_PAR_7] = .RESULT [RESULT_VALUE];
; 1628
; 1629 [OUTRANGE] :
; 1630 BEGIN
; 1631 ERRMSG (0, 24, ROUTINE_NAME, FILE_PTR [FILE_NAME], 0, 0, 0);
; 1632 SCAN_DONE = 1;
; 1633 END;
; 1634 TES;
; 1635
; 1636 END
; 1637 ELSE
; 1638 ERRMSG (0, 24, ROUTINE_NAME, FILE_PTR [FILE_NAME], 0, 0, 0);
; 1639
; 1640 !
; 1641 ! SCAN FOR THE NEXT COMMA
; 1642 !
; 1643 SEARCH_DONE = 0;
; 1644
; 1645 WHILE (.SEARCH_DONE EQL 0) DO
; 1646 BEGIN
; 1647 SCAN (.FILE_CHAN, .FILE_PTR, .SAVE_CHAR, RESULT);
; 1648
; 1649 IF (.RESULT [RESULT_TYPE] EQL RT_SPECIAL)
; 1650 THEN
; 1651
; 1652 IF (.RESULT [RESULT_VALUE] LSS 0)
; 1653 THEN
; 1654 SEARCH_DONE = -1
; 1655 ELSE
; 1656
; 1657 IF (.RESULT [RESULT_VALUE] EQL %C',') THEN SEARCH_DONE = 1;
; 1658
; 1659 END;
; 1660
; 1661 IF (.SEARCH_DONE LSS 0) THEN SCAN_DONE = .SEARCH_DONE;
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 67
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (12)
; 1662
; 1663 END;
; 1664
; 1665 END;
; 1666
; 1667 VAL_POINTER = .VAL_POINTER + 1;
; 1668 END;
; 1669
; 1670 END;
; 1671
; 1672 !
; 1673 ! STORE POINTERS TO DEV AND CTL BLOCKS, FOR REDUNDENCY
; 1674 !
; 1675 UNT_PTR [UNT_DEV] = .DEV_PTR;
; 1676 UNT_PTR [UNT_CTL] = .CTL_PTR;
; 1677 !
; 1678 ! Store current unit block address for TRB$DF processing
; 1679 !
; 1680 VALUES [CURRENT_UNT] = .UNT_PTR;
; 1681 !
; 1682 ! FINISHED WITH UNT$DF, SKIP TO END OF LINE
; 1683 !
; 1684
; 1685 IF (.SCAN_DONE GTR 0)
; 1686 THEN
; 1687
; 1688 DO
; 1689 SCAN (.FILE_CHAN, .FILE_PTR, .SAVE_CHAR, RESULT)
; 1690 UNTIL ((.RESULT [RESULT_TYPE] EQL RT_SPECIAL) AND (.RESULT [RESULT_VALUE] LSS 0));
; 1691
; 1692 END; !OF R_UNT
P.AAS: BYTE (7)"R","E","A","D","-" ; READ- 402416' 122 105 101 104 055
BYTE (7)"U","N","T","$","D" ; UNT$D 402417' 125 116 124 044 104
BYTE (7)"F",000,000,000,000 ; F 402420' 106 000 000 000 000
ROUTINE_NAME= P.AAS ; 000000 402416'
R_UNT: PUSH SP,AC0 ; SP,AC0 402421' 261 17 0 00 000000 1506
PUSH SP,AC10 ; SP,AC10 402422' 261 17 0 00 000010
PUSH SP,AC11 ; SP,AC11 402423' 261 17 0 00 000011
PUSH SP,AC12 ; SP,AC12 402424' 261 17 0 00 000012
PUSH SP,AC13 ; SP,AC13 402425' 261 17 0 00 000013
PUSH SP,AC14 ; SP,AC14 402426' 261 17 0 00 000014
PUSH SP,AC16 ; SP,AC16 402427' 261 17 0 00 000016
ADJSP SP,25 ; SP,25 402430' 105 17 0 00 000025
MOVE AC16,-35(SP) ; AC16,VALUES 402431' 200 16 0 17 777743 1560
HLRZ AC0,111(AC16) ; AC0,111(AC16) 402432' 554 00 0 16 000111
MOVEM AC0,0(SP) ; AC0,DEV_PTR 402433' 202 00 0 17 000000
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 68
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (12)
HRRZ AC10,112(AC16) ; CTL_PTR,112(AC16) 402434' 550 10 0 16 000112 1561
PUSH SP,C.40 ; SP,[22] 402435' 261 17 0 00 402711' 1566
PUSH SP,C.41 ; SP,[15] 402436' 261 17 0 00 402712'
PUSHJ SP,GETBLK ; SP,GETBLK 402437' 260 17 0 00 000000*
MOVE AC0,AC1 ; UNT_PTR,AC1 402440' 200 00 0 00 000001
ADJSP SP,-2 ; SP,-2 402441' 105 17 0 00 777776
JUMPE AC0,L.158 ; UNT_PTR,L.158 402442' 322 00 0 00 402453'
PUSH SP,AC10 ; SP,CTL_PTR 402443' 261 17 0 00 000010 1571
HRRZ AC1,2(AC10) ; AC1,2(CTL_PTR) 402444' 550 01 0 10 000002
PUSH SP,AC1 ; SP,AC1 402445' 261 17 0 00 000001
PUSH SP,AC0 ; SP,UNT_PTR 402446' 261 17 0 00 000000
PUSHJ SP,BLD_CHAIN ; SP,BLD_CHAIN 402447' 260 17 0 00 000000*
ADJSP SP,-3 ; SP,-3 402450' 105 17 0 00 777775
HRRM AC1,2(AC10) ; AC1,2(CTL_PTR) 402451' 542 01 0 10 000002
JUMPN AC1,L.159 ; AC1,L.159 402452' 326 01 0 00 402465'
L.158: PUSH SP,C.4 ; SP,[0] 402453' 261 17 0 00 400371' 1573
PUSH SP,C.3 ; SP,[1] 402454' 261 17 0 00 400370'
PUSH SP,C.42 ; SP,[0,,ROUTINE_NAME] 402455' 261 17 0 00 402713'
PUSH SP,C.4 ; SP,[0] 402456' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 402457' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 402460' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 402461' 261 17 0 00 400371'
PUSHJ SP,ERRMSG ; SP,ERRMSG 402462' 260 17 0 00 000000*
ADJSP SP,-7 ; SP,-7 402463' 105 17 0 00 777771
JRST L.182 ; L.182 402464' 254 00 0 00 402656' 1571
L.159: AOS 3(AC10) ; 3(CTL_PTR) 402465' 350 00 0 10 000003 1577
MOVEI AC14,1 ; VAL_POINTER,1 402466' 201 14 0 00 000001 1578
SETZ AC12, ; SCAN_DONE, 402467' 400 12 0 00 000000 1579
MOVE AC13,-37(SP) ; AC13,FILE_PTR 402470' 200 13 0 17 777741 1583
L.160: JUMPN AC12,L.182 ; SCAN_DONE,L.182 402471' 326 12 0 00 402656' 1581
PUSH SP,-40(SP) ; SP,FILE_CHAN 402472' 261 17 0 17 777740 1583
PUSH SP,AC13 ; SP,AC13 402473' 261 17 0 00 000013
PUSH SP,-40(SP) ; SP,SAVE_CHAR 402474' 261 17 0 17 777740
MOVEI AC1,-27(SP) ; AC1,RESULT 402475' 201 01 0 17 777751
PUSH SP,AC1 ; SP,AC1 402476' 261 17 0 00 000001
PUSHJ SP,SCAN ; SP,SCAN 402477' 260 17 0 00 400503'
MOVE AC1,-30(SP) ; AC1,RESULT 402500' 200 01 0 17 777750 1585
CAIN AC1,3 ; AC1,3 402501' 306 01 0 00 000003
SKIPL -27(SP) ; RESULT+1 402502' 331 00 0 17 777751
JRST L.161 ; L.161 402503' 254 00 0 00 402506'
SETO AC12, ; SCAN_DONE, 402504' 474 12 0 00 000000 1587
JRST L.181 ; L.181 402505' 254 00 0 00 402653' 1585
L.161: CAIE AC1,3 ; AC1,3 402506' 302 01 0 00 000003 1591
JRST L.162 ; L.162 402507' 254 00 0 00 402513'
MOVEI AC2,54 ; AC2,54 402510' 201 02 0 00 000054
CAMN AC2,-27(SP) ; AC2,RESULT+1 402511' 316 02 0 17 777751
JRST L.181 ; L.181 402512' 254 00 0 00 402653'
L.162: CAIE AC1,2 ; AC1,2 402513' 302 01 0 00 000002 1595
JRST L.174 ; L.174 402514' 254 00 0 00 402613'
MOVE AC1,AC14 ; AC1,VAL_POINTER 402515' 200 01 0 00 000014 1599
SOJL AC1,L.164 ; AC1,L.164 402516' 361 01 0 00 402533'
CAIGE AC1,11 ; AC1,11 402517' 305 01 0 00 000011
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 69
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (12)
JRST L.163(AC1) ; L.163(AC1) 402520' 254 00 0 01 402522'
JRST L.164 ; L.164 402521' 254 00 0 00 402533'
L.163: JRST L.165 ; L.165 402522' 254 00 0 00 402547'
JRST L.166 ; L.166 402523' 254 00 0 00 402553'
JRST L.167 ; L.167 402524' 254 00 0 00 402557'
JRST L.168 ; L.168 402525' 254 00 0 00 402563'
JRST L.169 ; L.169 402526' 254 00 0 00 402567'
JRST L.170 ; L.170 402527' 254 00 0 00 402573'
JRST L.171 ; L.171 402530' 254 00 0 00 402577'
JRST L.172 ; L.172 402531' 254 00 0 00 402603'
JRST L.173 ; L.173 402532' 254 00 0 00 402607'
L.164: SETZM 0(SP) ; 0(SP) 402533' 402 00 0 17 000000 1631
PUSH SP,C.7 ; SP,[30] 402534' 261 17 0 00 400374'
PUSH SP,C.42 ; SP,[0,,ROUTINE_NAME] 402535' 261 17 0 00 402713'
MOVE AC1,AC13 ; AC1,AC13 402536' 200 01 0 00 000013
ADDI AC1,2 ; AC1,2 402537' 271 01 0 00 000002
PUSH SP,AC1 ; SP,AC1 402540' 261 17 0 00 000001
PUSH SP,C.4 ; SP,[0] 402541' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 402542' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 402543' 261 17 0 00 400371'
PUSHJ SP,ERRMSG ; SP,ERRMSG 402544' 260 17 0 00 000000*
MOVEI AC12,1 ; SCAN_DONE,1 402545' 201 12 0 00 000001 1632
JRST L.175 ; L.175 402546' 254 00 0 00 402625'
L.165: MOVE AC1,-27(SP) ; AC1,RESULT+1 402547' 200 01 0 17 777751 1603
MOVE AC2,AC0 ; AC2,UNT_PTR 402550' 200 02 0 00 000000
MOVEM AC1,1(AC2) ; AC1,1(AC2) 402551' 202 01 0 02 000001
JRST L.176 ; L.176 402552' 254 00 0 00 402626' 1599
L.166: MOVE AC1,-27(SP) ; AC1,RESULT+1 402553' 200 01 0 17 777751 1606
MOVE AC2,AC0 ; AC2,UNT_PTR 402554' 200 02 0 00 000000
MOVEM AC1,5(AC2) ; AC1,5(AC2) 402555' 202 01 0 02 000005
JRST L.176 ; L.176 402556' 254 00 0 00 402626' 1599
L.167: MOVE AC1,-27(SP) ; AC1,RESULT+1 402557' 200 01 0 17 777751 1609
MOVE AC2,AC0 ; AC2,UNT_PTR 402560' 200 02 0 00 000000
MOVEM AC1,6(AC2) ; AC1,6(AC2) 402561' 202 01 0 02 000006
JRST L.176 ; L.176 402562' 254 00 0 00 402626' 1599
L.168: MOVE AC1,-27(SP) ; AC1,RESULT+1 402563' 200 01 0 17 777751 1612
MOVE AC2,AC0 ; AC2,UNT_PTR 402564' 200 02 0 00 000000
MOVEM AC1,7(AC2) ; AC1,7(AC2) 402565' 202 01 0 02 000007
JRST L.176 ; L.176 402566' 254 00 0 00 402626' 1599
L.169: MOVE AC1,-27(SP) ; AC1,RESULT+1 402567' 200 01 0 17 777751 1615
MOVE AC2,AC0 ; AC2,UNT_PTR 402570' 200 02 0 00 000000
MOVEM AC1,10(AC2) ; AC1,10(AC2) 402571' 202 01 0 02 000010
JRST L.176 ; L.176 402572' 254 00 0 00 402626' 1599
L.170: MOVE AC1,-27(SP) ; AC1,RESULT+1 402573' 200 01 0 17 777751 1618
MOVE AC2,AC0 ; AC2,UNT_PTR 402574' 200 02 0 00 000000
MOVEM AC1,11(AC2) ; AC1,11(AC2) 402575' 202 01 0 02 000011
JRST L.176 ; L.176 402576' 254 00 0 00 402626' 1599
L.171: MOVE AC1,-27(SP) ; AC1,RESULT+1 402577' 200 01 0 17 777751 1621
MOVE AC2,AC0 ; AC2,UNT_PTR 402600' 200 02 0 00 000000
MOVEM AC1,12(AC2) ; AC1,12(AC2) 402601' 202 01 0 02 000012
JRST L.176 ; L.176 402602' 254 00 0 00 402626' 1599
L.172: MOVE AC1,-27(SP) ; AC1,RESULT+1 402603' 200 01 0 17 777751 1624
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 70
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (12)
MOVE AC2,AC0 ; AC2,UNT_PTR 402604' 200 02 0 00 000000
MOVEM AC1,13(AC2) ; AC1,13(AC2) 402605' 202 01 0 02 000013
JRST L.176 ; L.176 402606' 254 00 0 00 402626' 1599
L.173: MOVE AC1,-27(SP) ; AC1,RESULT+1 402607' 200 01 0 17 777751 1627
MOVE AC2,AC0 ; AC2,UNT_PTR 402610' 200 02 0 00 000000
MOVEM AC1,14(AC2) ; AC1,14(AC2) 402611' 202 01 0 02 000014
JRST L.176 ; L.176 402612' 254 00 0 00 402626' 1595
L.174: SETZM 0(SP) ; 0(SP) 402613' 402 00 0 17 000000 1638
PUSH SP,C.7 ; SP,[30] 402614' 261 17 0 00 400374'
PUSH SP,C.42 ; SP,[0,,ROUTINE_NAME] 402615' 261 17 0 00 402713'
MOVE AC1,AC13 ; AC1,AC13 402616' 200 01 0 00 000013
ADDI AC1,2 ; AC1,2 402617' 271 01 0 00 000002
PUSH SP,AC1 ; SP,AC1 402620' 261 17 0 00 000001
PUSH SP,C.4 ; SP,[0] 402621' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 402622' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 402623' 261 17 0 00 400371'
PUSHJ SP,ERRMSG ; SP,ERRMSG 402624' 260 17 0 00 000000*
L.175: ADJSP SP,-6 ; SP,-6 402625' 105 17 0 00 777772
L.176: SETZ AC11, ; SEARCH_DONE, 402626' 400 11 0 00 000000 1643
L.177: JUMPN AC11,L.180 ; SEARCH_DONE,L.180 402627' 326 11 0 00 402651' 1645
PUSH SP,-44(SP) ; SP,FILE_CHAN 402630' 261 17 0 17 777734 1647
PUSH SP,AC13 ; SP,AC13 402631' 261 17 0 00 000013
PUSH SP,-44(SP) ; SP,SAVE_CHAR 402632' 261 17 0 17 777734
MOVEI AC1,-33(SP) ; AC1,RESULT 402633' 201 01 0 17 777745
PUSH SP,AC1 ; SP,AC1 402634' 261 17 0 00 000001
PUSHJ SP,SCAN ; SP,SCAN 402635' 260 17 0 00 400503'
MOVEI AC1,3 ; AC1,3 402636' 201 01 0 00 000003 1649
CAME AC1,-34(SP) ; AC1,RESULT 402637' 312 01 0 17 777744
JRST L.179 ; L.179 402640' 254 00 0 00 402647'
MOVE AC1,-33(SP) ; AC1,RESULT+1 402641' 200 01 0 17 777745 1652
JUMPGE AC1,L.178 ; AC1,L.178 402642' 325 01 0 00 402645'
SETO AC11, ; SEARCH_DONE, 402643' 474 11 0 00 000000 1654
JRST L.179 ; L.179 402644' 254 00 0 00 402647' 1652
L.178: CAIN AC1,54 ; AC1,54 402645' 306 01 0 00 000054 1657
MOVEI AC11,1 ; SEARCH_DONE,1 402646' 201 11 0 00 000001
L.179: ADJSP SP,-4 ; SP,-4 402647' 105 17 0 00 777774 1646
JRST L.177 ; L.177 402650' 254 00 0 00 402627' 1645
L.180: JUMPGE AC11,L.181 ; SEARCH_DONE,L.181 402651' 325 11 0 00 402653' 1661
MOVE AC12,AC11 ; SCAN_DONE,SEARCH_DONE 402652' 200 12 0 00 000011
L.181: ADDI AC14,1 ; VAL_POINTER,1 402653' 271 14 0 00 000001 1667
ADJSP SP,-4 ; SP,-4 402654' 105 17 0 00 777774 1582
JRST L.160 ; L.160 402655' 254 00 0 00 402471' 1581
L.182: MOVE AC1,0(SP) ; AC1,DEV_PTR 402656' 200 01 0 17 000000 1675
MOVE AC2,AC0 ; AC2,UNT_PTR 402657' 200 02 0 00 000000
HRLM AC1,2(AC2) ; AC1,2(AC2) 402660' 506 01 0 02 000002
MOVE AC1,AC0 ; AC1,UNT_PTR 402661' 200 01 0 00 000000 1676
HRRM AC10,2(AC1) ; CTL_PTR,2(AC1) 402662' 542 10 0 01 000002
HRLM AC0,112(AC16) ; UNT_PTR,112(AC16) 402663' 506 00 0 16 000112 1680
JUMPLE AC12,L.184 ; SCAN_DONE,L.184 402664' 323 12 0 00 402700' 1685
L.183: PUSH SP,-40(SP) ; SP,FILE_CHAN 402665' 261 17 0 17 777740 1689
PUSH SP,-40(SP) ; SP,FILE_PTR 402666' 261 17 0 17 777740
PUSH SP,-40(SP) ; SP,SAVE_CHAR 402667' 261 17 0 17 777740
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 71
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (12)
MOVEI AC0,-27(SP) ; AC0,RESULT 402670' 201 00 0 17 777751
PUSH SP,AC0 ; SP,AC0 402671' 261 17 0 00 000000
PUSHJ SP,SCAN ; SP,SCAN 402672' 260 17 0 00 400503'
ADJSP SP,-4 ; SP,-4 402673' 105 17 0 00 777774
MOVEI AC0,3 ; AC0,3 402674' 201 00 0 00 000003 1690
CAMN AC0,-24(SP) ; AC0,RESULT 402675' 316 00 0 17 777754
SKIPL -23(SP) ; RESULT+1 402676' 331 00 0 17 777755
JRST L.183 ; L.183 402677' 254 00 0 00 402665' 1688
L.184: ADJSP SP,-25 ; SP,-25 402700' 105 17 0 00 777753 1506
POP SP,AC16 ; SP,AC16 402701' 262 17 0 00 000016
POP SP,AC14 ; SP,AC14 402702' 262 17 0 00 000014
POP SP,AC13 ; SP,AC13 402703' 262 17 0 00 000013
POP SP,AC12 ; SP,AC12 402704' 262 17 0 00 000012
POP SP,AC11 ; SP,AC11 402705' 262 17 0 00 000011
POP SP,AC10 ; SP,AC10 402706' 262 17 0 00 000010
POP SP,AC0 ; SP,AC0 402707' 262 17 0 00 000000
POPJ SP, ; SP, 402710' 263 17 0 00 000000
C.40: EXP 22 ; 22 402711' 000000 000022
C.41: EXP 15 ; 15 402712' 000000 000015
C.42: XWD 0,ROUTINE_NAME ; 0,ROUTINE_NAME 402713' 000000 402416'
; Routine Size: 187 words
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 72
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (13)
; 1693 ROUTINE R_TRB (FILE_CHAN, FILE_PTR, SAVE_CHAR, VALUES) : NOVALUE = !Read TRB$DF Line
; 1694
; 1695 !++
; 1696 ! FUNCTIONAL DESCRIPTION:
; 1697 !
; 1698 ! Read and process the TRB$DF line
; 1699 !
; 1700 ! FORMAL PARAMETERS:
; 1701 !
; 1702 ! FILE_CHAN - Channel Number On Which To Read
; 1703 ! FILE_PTR - File Block With File Name Filled In
; 1704 ! SAVE_CHAR - Address Of Character Saved From Last Call To Scan
; 1705 ! VALUES - Block Into Which To Store Results
; 1706 !
; 1707 ! IMPLICIT INPUTS:
; 1708 !
; 1709 ! NONE
; 1710 !
; 1711 ! IMPLICIT OUTPUTS:
; 1712 !
; 1713 ! NONE
; 1714 !
; 1715 ! ROUTINE VALUE:
; 1716 !
; 1717 ! NONE
; 1718 !
; 1719 ! SIDE EFFECTS
; 1720 !
; 1721 ! Reads the remainder of the line from CETAB.MAC
; 1722 ! and gets storage from the free list
; 1723 !
; 1724 !--
; 1725
; 1726 BEGIN
; 1727
; 1728 BIND
; 1729 ROUTINE_NAME = UPLIT (%ASCIZ'READ-TRB$DF');
; 1730
; 1731 MAP
; 1732 FILE_PTR : REF FILE_BLOCK,
; 1733 VALUES : REF VNPVAL_BLOCK;
; 1734
; 1735 LOCAL
; 1736 TRB_PTR : REF TRB_BLOCK,
; 1737 UNT_PTR : REF UNT_BLOCK,
; 1738 RESULT : VECTOR [20],
; 1739 VAL_POINTER,
; 1740 SCAN_DONE,
; 1741 SEARCH_DONE;
; 1742
; 1743 !
; 1744 ! Get the Pointer to the current UNT Block, which represents where
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 73
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (13)
; 1745 ! this tributary applies.
; 1746 !
; 1747 UNT_PTR = .VALUES [CURRENT_UNT];
; 1748 !
; 1749 ! Allocate a TRB Block and link it to others on this UNT
; 1750 !
; 1751
; 1752 IF ((TRB_PTR = GETBLK (TRB_TYP, TRB_LEN)) EQL 0)
; 1753 THEN
; 1754 ERRMSG (0, 1, ROUTINE_NAME, 0, 0, 0, 0)
; 1755 ELSE
; 1756
; 1757 IF ((UNT_PTR [UNT_TRB] = BLD_CHAIN (.UNT_PTR, .UNT_PTR [UNT_TRB], .TRB_PTR)) EQL 0)
; 1758 THEN
; 1759 ERRMSG (0,
; 1760 1, ROUTINE_NAME, 0, 0, 0, 0)
; 1761 ELSE
; 1762 BEGIN
; 1763 VAL_POINTER = 1;
; 1764 SCAN_DONE = 0;
; 1765 UNT_PTR [UNT_NUM_OF_TRBS] = .UNT_PTR [UNT_NUM_OF_TRBS] + 1;
; 1766
; 1767 WHILE (.SCAN_DONE EQL 0) DO
; 1768 BEGIN
; 1769 SCAN (.FILE_CHAN, .FILE_PTR, .SAVE_CHAR, RESULT);
; 1770
; 1771 IF ((.RESULT [RESULT_TYPE] EQL RT_SPECIAL) AND (.RESULT [RESULT_VALUE] LSS 0))
; 1772 THEN
; 1773 SCAN_DONE = -1
; 1774 ELSE
; 1775 BEGIN
; 1776
; 1777 IF ((.RESULT [RESULT_TYPE] NEQ RT_SPECIAL) OR (.RESULT [RESULT_VALUE] NEQ %C','))
; 1778 THEN
; 1779 BEGIN
; 1780
; 1781 IF (.RESULT [RESULT_TYPE] EQL RT_NUMBER)
; 1782 THEN
; 1783 BEGIN
; 1784
; 1785 CASE .VAL_POINTER FROM 1 TO 9 OF
; 1786 SET
; 1787
; 1788 [1] : !Logical Station Number
; 1789 TRB_PTR [TRB_LADDR] = .RESULT [RESULT_VALUE];
; 1790
; 1791 [2] : !Tributary Parameter 0
; 1792 TRB_PTR [TRB_PAR_0] = .RESULT [RESULT_VALUE];
; 1793
; 1794 [3] : !Tributary Parameter 1
; 1795 TRB_PTR [TRB_PAR_1] = .RESULT [RESULT_VALUE];
; 1796
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 74
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (13)
; 1797 [4] : !Tributary Parameter 2
; 1798 TRB_PTR [TRB_PAR_2] = .RESULT [RESULT_VALUE];
; 1799
; 1800 [5] : !Tributary Parameter 3
; 1801 TRB_PTR [TRB_PAR_3] = .RESULT [RESULT_VALUE];
; 1802
; 1803 [6] : !Tributary Parameter 4
; 1804 TRB_PTR [TRB_PAR_4] = .RESULT [RESULT_VALUE];
; 1805
; 1806 [7] : !Tributary Parameter 5
; 1807 TRB_PTR [TRB_PAR_5] = .RESULT [RESULT_VALUE];
; 1808
; 1809 [8] : !Tributary Parameter 6
; 1810 TRB_PTR [TRB_PAR_6] = .RESULT [RESULT_VALUE];
; 1811
; 1812 [9] : !Tributary Parameter 7
; 1813 TRB_PTR [TRB_PAR_7] = .RESULT [RESULT_VALUE];
; 1814
; 1815 [OUTRANGE] :
; 1816 BEGIN
; 1817 ERRMSG (0, 24, ROUTINE_NAME, FILE_PTR [FILE_NAME], 0, 0, 0);
; 1818 SCAN_DONE = 1;
; 1819 END;
; 1820 TES;
; 1821
; 1822 END
; 1823 ELSE
; 1824 ERRMSG (0, 24, ROUTINE_NAME, FILE_PTR [FILE_NAME], 0, 0, 0);
; 1825
; 1826 !
; 1827 ! SCAN FOR THE NEXT COMMA
; 1828 !
; 1829 SEARCH_DONE = 0;
; 1830
; 1831 WHILE (.SEARCH_DONE EQL 0) DO
; 1832 BEGIN
; 1833 SCAN (.FILE_CHAN, .FILE_PTR, .SAVE_CHAR, RESULT);
; 1834
; 1835 IF (.RESULT [RESULT_TYPE] EQL RT_SPECIAL)
; 1836 THEN
; 1837
; 1838 IF (.RESULT [RESULT_VALUE] LSS 0)
; 1839 THEN
; 1840 SEARCH_DONE = -1
; 1841 ELSE
; 1842
; 1843 IF (.RESULT [RESULT_VALUE] EQL %C',') THEN SEARCH_DONE = 1;
; 1844
; 1845 END;
; 1846
; 1847 IF (.SEARCH_DONE LSS 0) THEN SCAN_DONE = .SEARCH_DONE;
; 1848
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 75
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (13)
; 1849 END;
; 1850
; 1851 END;
; 1852
; 1853 VAL_POINTER = .VAL_POINTER + 1;
; 1854 END;
; 1855
; 1856 END;
; 1857
; 1858 !
; 1859 ! Finished with TRB$DF, Skip to end of line
; 1860 !
; 1861
; 1862 IF (.SCAN_DONE GTR 0)
; 1863 THEN
; 1864
; 1865 DO
; 1866 SCAN (.FILE_CHAN, .FILE_PTR, .SAVE_CHAR, RESULT)
; 1867 UNTIL ((.RESULT [RESULT_TYPE] EQL RT_SPECIAL) AND (.RESULT [RESULT_VALUE] LSS 0));
; 1868
; 1869 END; !OF R_TRB
P.AAT: BYTE (7)"R","E","A","D","-" ; READ- 402714' 122 105 101 104 055
BYTE (7)"T","R","B","$","D" ; TRB$D 402715' 124 122 102 044 104
BYTE (7)"F",000,000,000,000 ; F 402716' 106 000 000 000 000
ROUTINE_NAME= P.AAT ; 000000 402714'
R_TRB: PUSH SP,AC0 ; SP,AC0 402717' 261 17 0 00 000000 1693
PUSH SP,AC10 ; SP,AC10 402720' 261 17 0 00 000010
PUSH SP,AC11 ; SP,AC11 402721' 261 17 0 00 000011
PUSH SP,AC12 ; SP,AC12 402722' 261 17 0 00 000012
PUSH SP,AC13 ; SP,AC13 402723' 261 17 0 00 000013
ADJSP SP,24 ; SP,24 402724' 105 17 0 00 000024
MOVE AC1,-32(SP) ; AC1,VALUES 402725' 200 01 0 17 777746 1747
HLRZ AC0,112(AC1) ; UNT_PTR,112(AC1) 402726' 554 00 0 01 000112
PUSH SP,C.43 ; SP,[24] 402727' 261 17 0 00 403165' 1752
PUSH SP,C.44 ; SP,[12] 402730' 261 17 0 00 403166'
PUSHJ SP,GETBLK ; SP,GETBLK 402731' 260 17 0 00 000000*
MOVE AC10,AC1 ; TRB_PTR,AC1 402732' 200 10 0 00 000001
ADJSP SP,-2 ; SP,-2 402733' 105 17 0 00 777776
JUMPE AC10,L.185 ; TRB_PTR,L.185 402734' 322 10 0 00 402747'
PUSH SP,AC0 ; SP,UNT_PTR 402735' 261 17 0 00 000000 1757
MOVE AC2,AC0 ; AC2,UNT_PTR 402736' 200 02 0 00 000000
HRRZ AC1,4(AC2) ; AC1,4(AC2) 402737' 550 01 0 02 000004
PUSH SP,AC1 ; SP,AC1 402740' 261 17 0 00 000001
PUSH SP,AC10 ; SP,TRB_PTR 402741' 261 17 0 00 000010
PUSHJ SP,BLD_CHAIN ; SP,BLD_CHAIN 402742' 260 17 0 00 000000*
ADJSP SP,-3 ; SP,-3 402743' 105 17 0 00 777775
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 76
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (13)
MOVE AC2,AC0 ; AC2,UNT_PTR 402744' 200 02 0 00 000000
HRRM AC1,4(AC2) ; AC1,4(AC2) 402745' 542 01 0 02 000004
JUMPN AC1,L.186 ; AC1,L.186 402746' 326 01 0 00 402761'
L.185: PUSH SP,C.4 ; SP,[0] 402747' 261 17 0 00 400371' 1759
PUSH SP,C.3 ; SP,[1] 402750' 261 17 0 00 400370'
PUSH SP,C.45 ; SP,[0,,ROUTINE_NAME] 402751' 261 17 0 00 403167'
PUSH SP,C.4 ; SP,[0] 402752' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 402753' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 402754' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 402755' 261 17 0 00 400371'
PUSHJ SP,ERRMSG ; SP,ERRMSG 402756' 260 17 0 00 000000*
ADJSP SP,-7 ; SP,-7 402757' 105 17 0 00 777771
JRST L.209 ; L.209 402760' 254 00 0 00 403142' 1757
L.186: MOVEI AC13,1 ; VAL_POINTER,1 402761' 201 13 0 00 000001 1763
SETZ AC11, ; SCAN_DONE, 402762' 400 11 0 00 000000 1764
MOVE AC1,AC0 ; AC1,UNT_PTR 402763' 200 01 0 00 000000 1765
AOS 3(AC1) ; 3(AC1) 402764' 350 00 0 01 000003
MOVE AC12,-34(SP) ; AC12,FILE_PTR 402765' 200 12 0 17 777744 1769
L.187: JUMPN AC11,L.209 ; SCAN_DONE,L.209 402766' 326 11 0 00 403142' 1767
PUSH SP,-35(SP) ; SP,FILE_CHAN 402767' 261 17 0 17 777743 1769
PUSH SP,AC12 ; SP,AC12 402770' 261 17 0 00 000012
PUSH SP,-35(SP) ; SP,SAVE_CHAR 402771' 261 17 0 17 777743
MOVEI AC1,-26(SP) ; AC1,RESULT 402772' 201 01 0 17 777752
PUSH SP,AC1 ; SP,AC1 402773' 261 17 0 00 000001
PUSHJ SP,SCAN ; SP,SCAN 402774' 260 17 0 00 400503'
MOVE AC1,-27(SP) ; AC1,RESULT 402775' 200 01 0 17 777751 1771
CAIN AC1,3 ; AC1,3 402776' 306 01 0 00 000003
SKIPL -26(SP) ; RESULT+1 402777' 331 00 0 17 777752
JRST L.188 ; L.188 403000' 254 00 0 00 403003'
SETO AC11, ; SCAN_DONE, 403001' 474 11 0 00 000000 1773
JRST L.208 ; L.208 403002' 254 00 0 00 403137' 1771
L.188: CAIE AC1,3 ; AC1,3 403003' 302 01 0 00 000003 1777
JRST L.189 ; L.189 403004' 254 00 0 00 403010'
MOVEI AC2,54 ; AC2,54 403005' 201 02 0 00 000054
CAMN AC2,-26(SP) ; AC2,RESULT+1 403006' 316 02 0 17 777752
JRST L.208 ; L.208 403007' 254 00 0 00 403137'
L.189: CAIE AC1,2 ; AC1,2 403010' 302 01 0 00 000002 1781
JRST L.201 ; L.201 403011' 254 00 0 00 403077'
MOVE AC1,AC13 ; AC1,VAL_POINTER 403012' 200 01 0 00 000013 1785
SOJL AC1,L.191 ; AC1,L.191 403013' 361 01 0 00 403030'
CAIGE AC1,11 ; AC1,11 403014' 305 01 0 00 000011
JRST L.190(AC1) ; L.190(AC1) 403015' 254 00 0 01 403017'
JRST L.191 ; L.191 403016' 254 00 0 00 403030'
L.190: JRST L.192 ; L.192 403017' 254 00 0 00 403044'
JRST L.193 ; L.193 403020' 254 00 0 00 403047'
JRST L.194 ; L.194 403021' 254 00 0 00 403052'
JRST L.195 ; L.195 403022' 254 00 0 00 403055'
JRST L.196 ; L.196 403023' 254 00 0 00 403060'
JRST L.197 ; L.197 403024' 254 00 0 00 403063'
JRST L.198 ; L.198 403025' 254 00 0 00 403066'
JRST L.199 ; L.199 403026' 254 00 0 00 403071'
JRST L.200 ; L.200 403027' 254 00 0 00 403074'
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 77
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (13)
L.191: SETZM 0(SP) ; 0(SP) 403030' 402 00 0 17 000000 1817
PUSH SP,C.7 ; SP,[30] 403031' 261 17 0 00 400374'
PUSH SP,C.45 ; SP,[0,,ROUTINE_NAME] 403032' 261 17 0 00 403167'
MOVE AC1,AC12 ; AC1,AC12 403033' 200 01 0 00 000012
ADDI AC1,2 ; AC1,2 403034' 271 01 0 00 000002
PUSH SP,AC1 ; SP,AC1 403035' 261 17 0 00 000001
PUSH SP,C.4 ; SP,[0] 403036' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 403037' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 403040' 261 17 0 00 400371'
PUSHJ SP,ERRMSG ; SP,ERRMSG 403041' 260 17 0 00 000000*
MOVEI AC11,1 ; SCAN_DONE,1 403042' 201 11 0 00 000001 1818
JRST L.202 ; L.202 403043' 254 00 0 00 403111'
L.192: MOVE AC1,-26(SP) ; AC1,RESULT+1 403044' 200 01 0 17 777752 1789
MOVEM AC1,1(AC10) ; AC1,1(TRB_PTR) 403045' 202 01 0 10 000001
JRST L.203 ; L.203 403046' 254 00 0 00 403112' 1785
L.193: MOVE AC1,-26(SP) ; AC1,RESULT+1 403047' 200 01 0 17 777752 1792
MOVEM AC1,2(AC10) ; AC1,2(TRB_PTR) 403050' 202 01 0 10 000002
JRST L.203 ; L.203 403051' 254 00 0 00 403112' 1785
L.194: MOVE AC1,-26(SP) ; AC1,RESULT+1 403052' 200 01 0 17 777752 1795
MOVEM AC1,3(AC10) ; AC1,3(TRB_PTR) 403053' 202 01 0 10 000003
JRST L.203 ; L.203 403054' 254 00 0 00 403112' 1785
L.195: MOVE AC1,-26(SP) ; AC1,RESULT+1 403055' 200 01 0 17 777752 1798
MOVEM AC1,4(AC10) ; AC1,4(TRB_PTR) 403056' 202 01 0 10 000004
JRST L.203 ; L.203 403057' 254 00 0 00 403112' 1785
L.196: MOVE AC1,-26(SP) ; AC1,RESULT+1 403060' 200 01 0 17 777752 1801
MOVEM AC1,5(AC10) ; AC1,5(TRB_PTR) 403061' 202 01 0 10 000005
JRST L.203 ; L.203 403062' 254 00 0 00 403112' 1785
L.197: MOVE AC1,-26(SP) ; AC1,RESULT+1 403063' 200 01 0 17 777752 1804
MOVEM AC1,6(AC10) ; AC1,6(TRB_PTR) 403064' 202 01 0 10 000006
JRST L.203 ; L.203 403065' 254 00 0 00 403112' 1785
L.198: MOVE AC1,-26(SP) ; AC1,RESULT+1 403066' 200 01 0 17 777752 1807
MOVEM AC1,7(AC10) ; AC1,7(TRB_PTR) 403067' 202 01 0 10 000007
JRST L.203 ; L.203 403070' 254 00 0 00 403112' 1785
L.199: MOVE AC1,-26(SP) ; AC1,RESULT+1 403071' 200 01 0 17 777752 1810
MOVEM AC1,10(AC10) ; AC1,10(TRB_PTR) 403072' 202 01 0 10 000010
JRST L.203 ; L.203 403073' 254 00 0 00 403112' 1785
L.200: MOVE AC1,-26(SP) ; AC1,RESULT+1 403074' 200 01 0 17 777752 1813
MOVEM AC1,11(AC10) ; AC1,11(TRB_PTR) 403075' 202 01 0 10 000011
JRST L.203 ; L.203 403076' 254 00 0 00 403112' 1781
L.201: SETZM 0(SP) ; 0(SP) 403077' 402 00 0 17 000000 1824
PUSH SP,C.7 ; SP,[30] 403100' 261 17 0 00 400374'
PUSH SP,C.45 ; SP,[0,,ROUTINE_NAME] 403101' 261 17 0 00 403167'
MOVE AC1,AC12 ; AC1,AC12 403102' 200 01 0 00 000012
ADDI AC1,2 ; AC1,2 403103' 271 01 0 00 000002
PUSH SP,AC1 ; SP,AC1 403104' 261 17 0 00 000001
PUSH SP,C.4 ; SP,[0] 403105' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 403106' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 403107' 261 17 0 00 400371'
PUSHJ SP,ERRMSG ; SP,ERRMSG 403110' 260 17 0 00 000000*
L.202: ADJSP SP,-6 ; SP,-6 403111' 105 17 0 00 777772
L.203: SETZ AC0, ; SEARCH_DONE, 403112' 400 00 0 00 000000 1829
L.204: JUMPN AC0,L.207 ; SEARCH_DONE,L.207 403113' 326 00 0 00 403135' 1831
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 78
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (13)
PUSH SP,-41(SP) ; SP,FILE_CHAN 403114' 261 17 0 17 777737 1833
PUSH SP,AC12 ; SP,AC12 403115' 261 17 0 00 000012
PUSH SP,-41(SP) ; SP,SAVE_CHAR 403116' 261 17 0 17 777737
MOVEI AC1,-32(SP) ; AC1,RESULT 403117' 201 01 0 17 777746
PUSH SP,AC1 ; SP,AC1 403120' 261 17 0 00 000001
PUSHJ SP,SCAN ; SP,SCAN 403121' 260 17 0 00 400503'
MOVEI AC1,3 ; AC1,3 403122' 201 01 0 00 000003 1835
CAME AC1,-33(SP) ; AC1,RESULT 403123' 312 01 0 17 777745
JRST L.206 ; L.206 403124' 254 00 0 00 403133'
MOVE AC1,-32(SP) ; AC1,RESULT+1 403125' 200 01 0 17 777746 1838
JUMPGE AC1,L.205 ; AC1,L.205 403126' 325 01 0 00 403131'
SETO AC0, ; SEARCH_DONE, 403127' 474 00 0 00 000000 1840
JRST L.206 ; L.206 403130' 254 00 0 00 403133' 1838
L.205: CAIN AC1,54 ; AC1,54 403131' 306 01 0 00 000054 1843
MOVEI AC0,1 ; SEARCH_DONE,1 403132' 201 00 0 00 000001
L.206: ADJSP SP,-4 ; SP,-4 403133' 105 17 0 00 777774 1832
JRST L.204 ; L.204 403134' 254 00 0 00 403113' 1831
L.207: JUMPGE AC0,L.208 ; SEARCH_DONE,L.208 403135' 325 00 0 00 403137' 1847
MOVE AC11,AC0 ; SCAN_DONE,SEARCH_DONE 403136' 200 11 0 00 000000
L.208: ADDI AC13,1 ; VAL_POINTER,1 403137' 271 13 0 00 000001 1853
ADJSP SP,-4 ; SP,-4 403140' 105 17 0 00 777774 1768
JRST L.187 ; L.187 403141' 254 00 0 00 402766' 1767
L.209: JUMPLE AC11,L.211 ; SCAN_DONE,L.211 403142' 323 11 0 00 403156' 1862
L.210: PUSH SP,-35(SP) ; SP,FILE_CHAN 403143' 261 17 0 17 777743 1866
PUSH SP,-35(SP) ; SP,FILE_PTR 403144' 261 17 0 17 777743
PUSH SP,-35(SP) ; SP,SAVE_CHAR 403145' 261 17 0 17 777743
MOVEI AC0,-26(SP) ; AC0,RESULT 403146' 201 00 0 17 777752
PUSH SP,AC0 ; SP,AC0 403147' 261 17 0 00 000000
PUSHJ SP,SCAN ; SP,SCAN 403150' 260 17 0 00 400503'
ADJSP SP,-4 ; SP,-4 403151' 105 17 0 00 777774
MOVEI AC0,3 ; AC0,3 403152' 201 00 0 00 000003 1867
CAMN AC0,-23(SP) ; AC0,RESULT 403153' 316 00 0 17 777755
SKIPL -22(SP) ; RESULT+1 403154' 331 00 0 17 777756
JRST L.210 ; L.210 403155' 254 00 0 00 403143' 1865
L.211: ADJSP SP,-24 ; SP,-24 403156' 105 17 0 00 777754 1693
POP SP,AC13 ; SP,AC13 403157' 262 17 0 00 000013
POP SP,AC12 ; SP,AC12 403160' 262 17 0 00 000012
POP SP,AC11 ; SP,AC11 403161' 262 17 0 00 000011
POP SP,AC10 ; SP,AC10 403162' 262 17 0 00 000010
POP SP,AC0 ; SP,AC0 403163' 262 17 0 00 000000
POPJ SP, ; SP, 403164' 263 17 0 00 000000
C.43: EXP 24 ; 24 403165' 000000 000024
C.44: EXP 12 ; 12 403166' 000000 000012
C.45: XWD 0,ROUTINE_NAME ; 0,ROUTINE_NAME 403167' 000000 402714'
; Routine Size: 169 words
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 79
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (14)
; 1870 ROUTINE R_TSK (FILE_CHAN, FILE_PTR, SAVE_CHAR, VALUES) : NOVALUE = !Read TSK$DF Line
; 1871
; 1872 !++
; 1873 ! FUNCTIONAL DESCRIPTION:
; 1874 !
; 1875 ! Read and process the TSK$DF line of CETAB.MAC
; 1876 !
; 1877 ! FORMAL PARAMETERS:
; 1878 !
; 1879 ! FILE_CHAN - Channel Number on which to read
; 1880 ! FILE_PTR - File Block with File Name filled in
; 1881 ! SAVE_CHAR - Address of Character Saved from Last Call To SCAN
; 1882 ! VALUES - Block into which to store results
; 1883 !
; 1884 ! IMPLICIT INPUTS:
; 1885 !
; 1886 ! NONE
; 1887 !
; 1888 ! IMPLICIT OUTPUTS:
; 1889 !
; 1890 ! NONE
; 1891 !
; 1892 ! ROUTINE VALUE:
; 1893 !
; 1894 ! NONE
; 1895 !
; 1896 ! SIDE EFFECTS
; 1897 !
; 1898 ! Reads the remainder of the line from CETAB.MAC
; 1899 !
; 1900 !--
; 1901
; 1902 BEGIN
; 1903
; 1904 BIND
; 1905 ROUTINE_NAME = UPLIT (%ASCIZ'READ-TSK$DF');
; 1906
; 1907 MAP
; 1908 FILE_PTR : REF FILE_BLOCK,
; 1909 VALUES : REF VNPVAL_BLOCK;
; 1910
; 1911 LOCAL
; 1912 SCAN_DONE,
; 1913 SEARCH_DONE,
; 1914 RESULT : VECTOR [20],
; 1915 VAL_POINTER,
; 1916 CHAR,
; 1917 STR_PTR,
; 1918 TSKB_PTR : REF VNPTSK_BLOCK;
; 1919
; 1920 !
; 1921 ! Allocate a VNPTSK Block and link it in with others
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 80
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (14)
; 1922 !
; 1923
; 1924 IF ((TSKB_PTR = GETBLK (VNPTSK_TYP, VNPTSK_LEN)) EQL 0)
; 1925 THEN
; 1926 ERRMSG (0, 1, ROUTINE_NAME, 0, 0, 0, 0)
; 1927 ELSE
; 1928
; 1929 IF ((VALUES [TSK_CHAIN] = BLD_CHAIN (.VALUES, .VALUES [TSK_CHAIN], .TSKB_PTR)) EQL 0)
; 1930 THEN
; 1931 ERRMSG (0,
; 1932 1, ROUTINE_NAME, 0, 0, 0, 0)
; 1933 ELSE
; 1934 BEGIN
; 1935 !
; 1936 ! Store type of VNPTSK block this is:
; 1937 !
; 1938 TSKB_PTR [TSK_TYPE] = TSK_TASK_TYPE;
; 1939 !
; 1940 ! Scan each argument of TSK$DF and store in VNPTSK Block
; 1941 !
; 1942 VAL_POINTER = 1;
; 1943 SCAN_DONE = 0;
; 1944
; 1945 WHILE (.SCAN_DONE EQL 0) DO
; 1946 BEGIN
; 1947 SCAN (.FILE_CHAN, .FILE_PTR, .SAVE_CHAR, RESULT);
; 1948
; 1949 IF ((.RESULT [RESULT_TYPE] NEQ RT_SPECIAL) OR (.RESULT [RESULT_VALUE] NEQ %C','))
; 1950 THEN
; 1951 BEGIN
; 1952
; 1953 CASE .VAL_POINTER FROM 1 TO 2 OF
; 1954 SET
; 1955
; 1956 [1] : !Main Task Name
; 1957 BEGIN
; 1958
; 1959 IF (.RESULT [RESULT_TYPE] NEQ RT_NAME)
; 1960 THEN
; 1961 ERRMSG (0, 24, ROUTINE_NAME,
; 1962 FILE_PTR [FILE_NAME], 0, 0, 0)
; 1963 ELSE
; 1964 CH$MOVE (LEN_TSK_NAME, CH$PTR (RESULT [RESULT_VALUE]),
; 1965 CH$PTR (TSKB_PTR [TSK_NAME]));
; 1966
; 1967 END;
; 1968
; 1969 [2] : !Time to run task
; 1970 BEGIN
; 1971
; 1972 IF (.RESULT [RESULT_TYPE] NEQ RT_NUMBER)
; 1973 THEN
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 81
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (14)
; 1974 ERRMSG (0, 24, ROUTINE_NAME,
; 1975 FILE_PTR [FILE_NAME], 0, 0, 0)
; 1976 ELSE
; 1977 TSKB_PTR [TSK_TIME] = .RESULT [RESULT_VALUE];
; 1978
; 1979 END;
; 1980 TES;
; 1981
; 1982 !
; 1983 ! Scan for the next comma
; 1984 !
; 1985 SEARCH_DONE = 0;
; 1986
; 1987 WHILE (.SEARCH_DONE EQL 0) DO
; 1988 BEGIN
; 1989 SCAN (.FILE_CHAN, .FILE_PTR, .SAVE_CHAR, RESULT);
; 1990
; 1991 IF (.RESULT [RESULT_TYPE] EQL RT_SPECIAL)
; 1992 THEN
; 1993
; 1994 IF (.RESULT [RESULT_VALUE] LSS 0)
; 1995 THEN
; 1996 SEARCH_DONE = -1
; 1997 ELSE
; 1998
; 1999 IF (.RESULT [RESULT_VALUE] EQL %C',') THEN SEARCH_DONE = 1;
; 2000
; 2001 END;
; 2002
; 2003 IF (.SEARCH_DONE LSS 0) THEN SCAN_DONE = .SEARCH_DONE;
; 2004
; 2005 VAL_POINTER = .VAL_POINTER + 1;
; 2006 END;
; 2007
; 2008 END;
; 2009
; 2010 END;
; 2011
; 2012 !
; 2013 ! Finished with TSK$DF, Skip to end of line
; 2014 !
; 2015
; 2016 IF (.SCAN_DONE GTR 0)
; 2017 THEN
; 2018
; 2019 DO
; 2020 SCAN (.FILE_CHAN, .FILE_PTR, .SAVE_CHAR, RESULT)
; 2021 UNTIL ((.RESULT [RESULT_TYPE] EQL RT_SPECIAL) AND (.RESULT [RESULT_VALUE] LSS 0));
; 2022
; 2023 END; !OF R_TSK
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 82
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (14)
P.AAU: BYTE (7)"R","E","A","D","-" ; READ- 403170' 122 105 101 104 055
BYTE (7)"T","S","K","$","D" ; TSK$D 403171' 124 123 113 044 104
BYTE (7)"F",000,000,000,000 ; F 403172' 106 000 000 000 000
ROUTINE_NAME= P.AAU ; 000000 403170'
R_TSK: PUSH SP,AC0 ; SP,AC0 403173' 261 17 0 00 000000 1870
PUSH SP,AC10 ; SP,AC10 403174' 261 17 0 00 000010
PUSH SP,AC11 ; SP,AC11 403175' 261 17 0 00 000011
PUSH SP,AC12 ; SP,AC12 403176' 261 17 0 00 000012
PUSH SP,AC13 ; SP,AC13 403177' 261 17 0 00 000013
ADJSP SP,24 ; SP,24 403200' 105 17 0 00 000024
PUSH SP,C.46 ; SP,[26] 403201' 261 17 0 00 403372' 1924
PUSH SP,C.47 ; SP,[5] 403202' 261 17 0 00 403373'
PUSHJ SP,GETBLK ; SP,GETBLK 403203' 260 17 0 00 000000*
MOVE AC0,AC1 ; TSKB_PTR,AC1 403204' 200 00 0 00 000001
ADJSP SP,-2 ; SP,-2 403205' 105 17 0 00 777776
JUMPE AC0,L.212 ; TSKB_PTR,L.212 403206' 322 00 0 00 403220'
MOVE AC10,-32(SP) ; AC10,VALUES 403207' 200 10 0 17 777746 1929
PUSH SP,AC10 ; SP,AC10 403210' 261 17 0 00 000010
HRRZ AC1,3(AC10) ; AC1,3(AC10) 403211' 550 01 0 10 000003
PUSH SP,AC1 ; SP,AC1 403212' 261 17 0 00 000001
PUSH SP,AC0 ; SP,TSKB_PTR 403213' 261 17 0 00 000000
PUSHJ SP,BLD_CHAIN ; SP,BLD_CHAIN 403214' 260 17 0 00 000000*
ADJSP SP,-3 ; SP,-3 403215' 105 17 0 00 777775
HRRM AC1,3(AC10) ; AC1,3(AC10) 403216' 542 01 0 10 000003
JUMPN AC1,L.213 ; AC1,L.213 403217' 326 01 0 00 403232'
L.212: PUSH SP,C.4 ; SP,[0] 403220' 261 17 0 00 400371' 1931
PUSH SP,C.3 ; SP,[1] 403221' 261 17 0 00 400370'
PUSH SP,C.48 ; SP,[0,,ROUTINE_NAME] 403222' 261 17 0 00 403374'
PUSH SP,C.4 ; SP,[0] 403223' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 403224' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 403225' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 403226' 261 17 0 00 400371'
PUSHJ SP,ERRMSG ; SP,ERRMSG 403227' 260 17 0 00 000000*
ADJSP SP,-7 ; SP,-7 403230' 105 17 0 00 777771
JRST L.228 ; L.228 403231' 254 00 0 00 403347' 1929
L.213: MOVEI AC1,1 ; AC1,1 403232' 201 01 0 00 000001 1938
MOVE AC2,AC0 ; AC2,TSKB_PTR 403233' 200 02 0 00 000000
MOVEM AC1,1(AC2) ; AC1,1(AC2) 403234' 202 01 0 02 000001
MOVEI AC13,1 ; VAL_POINTER,1 403235' 201 13 0 00 000001 1942
SETZ AC11, ; SCAN_DONE, 403236' 400 11 0 00 000000 1943
MOVE AC12,-34(SP) ; AC12,FILE_PTR 403237' 200 12 0 17 777744 1947
L.214: JUMPN AC11,L.228 ; SCAN_DONE,L.228 403240' 326 11 0 00 403347' 1945
PUSH SP,-35(SP) ; SP,FILE_CHAN 403241' 261 17 0 17 777743 1947
PUSH SP,AC12 ; SP,AC12 403242' 261 17 0 00 000012
PUSH SP,-35(SP) ; SP,SAVE_CHAR 403243' 261 17 0 17 777743
MOVEI AC1,-26(SP) ; AC1,RESULT 403244' 201 01 0 17 777752
PUSH SP,AC1 ; SP,AC1 403245' 261 17 0 00 000001
PUSHJ SP,SCAN ; SP,SCAN 403246' 260 17 0 00 400503'
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 83
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (14)
MOVE AC1,-27(SP) ; AC1,RESULT 403247' 200 01 0 17 777751 1949
CAIE AC1,3 ; AC1,3 403250' 302 01 0 00 000003
JRST L.215 ; L.215 403251' 254 00 0 00 403255'
MOVEI AC2,54 ; AC2,54 403252' 201 02 0 00 000054
CAMN AC2,-26(SP) ; AC2,RESULT+1 403253' 316 02 0 17 777752
JRST L.227 ; L.227 403254' 254 00 0 00 403345'
L.215: MOVE AC2,AC13 ; AC2,VAL_POINTER 403255' 200 02 0 00 000013 1953
SUBI AC2,1 ; AC2,1 403256' 275 02 0 00 000001
JRST L.216(AC2) ; L.216(AC2) 403257' 254 00 0 02 403260'
L.216: JRST L.217 ; L.217 403260' 254 00 0 00 403262'
JRST L.218 ; L.218 403261' 254 00 0 00 403276'
L.217: CAIE AC1,1 ; AC1,1 403262' 302 01 0 00 000001 1959
JRST L.219 ; L.219 403263' 254 00 0 00 403300'
MOVEI AC2,-27(SP) ; AC2,RESULT 403264' 201 02 0 17 777751 1964
HRLI AC2,10700 ; AC2,10700 403265' 505 02 0 00 010700
MOVE AC1,AC0 ; AC1,TSKB_PTR 403266' 200 01 0 00 000000 1965
MOVEI AC5,1(AC1) ; AC5,1(AC1) 403267' 201 05 0 01 000001
HRLI AC5,10700 ; AC5,10700 403270' 505 05 0 00 010700
MOVEI AC1,6 ; AC1,6 403271' 201 01 0 00 000006 1964
MOVEI AC4,6 ; AC4,6 403272' 201 04 0 00 000006
EXTEND AC1,C.23 ; AC1,[MOVSLJ ] 403273' 123 01 0 00 401030'
JFCL ; 403274' 255 00 0 00 000000
JRST L.221 ; L.221 403275' 254 00 0 00 403317' 1953
L.218: CAIN AC1,2 ; AC1,2 403276' 306 01 0 00 000002 1972
JRST L.220 ; L.220 403277' 254 00 0 00 403314'
L.219: SETZM 0(SP) ; 0(SP) 403300' 402 00 0 17 000000 1974
PUSH SP,C.7 ; SP,[30] 403301' 261 17 0 00 400374'
PUSH SP,C.48 ; SP,[0,,ROUTINE_NAME] 403302' 261 17 0 00 403374'
MOVE AC1,AC12 ; AC1,AC12 403303' 200 01 0 00 000012 1975
ADDI AC1,2 ; AC1,2 403304' 271 01 0 00 000002
PUSH SP,AC1 ; SP,AC1 403305' 261 17 0 00 000001
PUSH SP,C.4 ; SP,[0] 403306' 261 17 0 00 400371' 1974
PUSH SP,C.4 ; SP,[0] 403307' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 403310' 261 17 0 00 400371'
PUSHJ SP,ERRMSG ; SP,ERRMSG 403311' 260 17 0 00 000000*
ADJSP SP,-6 ; SP,-6 403312' 105 17 0 00 777772
JRST L.221 ; L.221 403313' 254 00 0 00 403317' 1972
L.220: MOVE AC1,-26(SP) ; AC1,RESULT+1 403314' 200 01 0 17 777752 1977
MOVE AC2,AC0 ; AC2,TSKB_PTR 403315' 200 02 0 00 000000
MOVEM AC1,4(AC2) ; AC1,4(AC2) 403316' 202 01 0 02 000004
L.221: SETZ AC10, ; SEARCH_DONE, 403317' 400 10 0 00 000000 1985
L.222: JUMPN AC10,L.225 ; SEARCH_DONE,L.225 403320' 326 10 0 00 403342' 1987
PUSH SP,-41(SP) ; SP,FILE_CHAN 403321' 261 17 0 17 777737 1989
PUSH SP,AC12 ; SP,AC12 403322' 261 17 0 00 000012
PUSH SP,-41(SP) ; SP,SAVE_CHAR 403323' 261 17 0 17 777737
MOVEI AC1,-32(SP) ; AC1,RESULT 403324' 201 01 0 17 777746
PUSH SP,AC1 ; SP,AC1 403325' 261 17 0 00 000001
PUSHJ SP,SCAN ; SP,SCAN 403326' 260 17 0 00 400503'
MOVEI AC1,3 ; AC1,3 403327' 201 01 0 00 000003 1991
CAME AC1,-33(SP) ; AC1,RESULT 403330' 312 01 0 17 777745
JRST L.224 ; L.224 403331' 254 00 0 00 403340'
MOVE AC1,-32(SP) ; AC1,RESULT+1 403332' 200 01 0 17 777746 1994
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 84
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (14)
JUMPGE AC1,L.223 ; AC1,L.223 403333' 325 01 0 00 403336'
SETO AC10, ; SEARCH_DONE, 403334' 474 10 0 00 000000 1996
JRST L.224 ; L.224 403335' 254 00 0 00 403340' 1994
L.223: CAIN AC1,54 ; AC1,54 403336' 306 01 0 00 000054 1999
MOVEI AC10,1 ; SEARCH_DONE,1 403337' 201 10 0 00 000001
L.224: ADJSP SP,-4 ; SP,-4 403340' 105 17 0 00 777774 1988
JRST L.222 ; L.222 403341' 254 00 0 00 403320' 1987
L.225: JUMPGE AC10,L.226 ; SEARCH_DONE,L.226 403342' 325 10 0 00 403344' 2003
MOVE AC11,AC10 ; SCAN_DONE,SEARCH_DONE 403343' 200 11 0 00 000010
L.226: ADDI AC13,1 ; VAL_POINTER,1 403344' 271 13 0 00 000001 2005
L.227: ADJSP SP,-4 ; SP,-4 403345' 105 17 0 00 777774 1946
JRST L.214 ; L.214 403346' 254 00 0 00 403240' 1945
L.228: JUMPLE AC11,L.230 ; SCAN_DONE,L.230 403347' 323 11 0 00 403363' 2016
L.229: PUSH SP,-35(SP) ; SP,FILE_CHAN 403350' 261 17 0 17 777743 2020
PUSH SP,-35(SP) ; SP,FILE_PTR 403351' 261 17 0 17 777743
PUSH SP,-35(SP) ; SP,SAVE_CHAR 403352' 261 17 0 17 777743
MOVEI AC0,-26(SP) ; AC0,RESULT 403353' 201 00 0 17 777752
PUSH SP,AC0 ; SP,AC0 403354' 261 17 0 00 000000
PUSHJ SP,SCAN ; SP,SCAN 403355' 260 17 0 00 400503'
ADJSP SP,-4 ; SP,-4 403356' 105 17 0 00 777774
MOVEI AC0,3 ; AC0,3 403357' 201 00 0 00 000003 2021
CAMN AC0,-23(SP) ; AC0,RESULT 403360' 316 00 0 17 777755
SKIPL -22(SP) ; RESULT+1 403361' 331 00 0 17 777756
JRST L.229 ; L.229 403362' 254 00 0 00 403350' 2019
L.230: ADJSP SP,-24 ; SP,-24 403363' 105 17 0 00 777754 1870
POP SP,AC13 ; SP,AC13 403364' 262 17 0 00 000013
POP SP,AC12 ; SP,AC12 403365' 262 17 0 00 000012
POP SP,AC11 ; SP,AC11 403366' 262 17 0 00 000011
POP SP,AC10 ; SP,AC10 403367' 262 17 0 00 000010
POP SP,AC0 ; SP,AC0 403370' 262 17 0 00 000000
POPJ SP, ; SP, 403371' 263 17 0 00 000000
C.46: EXP 26 ; 26 403372' 000000 000026
C.47: EXP 5 ; 5 403373' 000000 000005
C.48: XWD 0,ROUTINE_NAME ; 0,ROUTINE_NAME 403374' 000000 403170'
; Routine Size: 130 words
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 85
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (15)
; 2024 ROUTINE R_DRV (FILE_CHAN, FILE_PTR, SAVE_CHAR, VALUES) : NOVALUE = !Read DRV$DF Line
; 2025
; 2026 !++
; 2027 ! FUNCTIONAL DESCRIPTION:
; 2028 !
; 2029 ! Read DRV$DF line and process definition
; 2030 !
; 2031 ! FORMAL PARAMETERS:
; 2032 !
; 2033 ! FILE_CHAN - Channel Number on Which to Read
; 2034 ! FILE_PTR - File Block With File Name Filled In
; 2035 ! SAVE_CHAR - Address of Character Saved From Last Call to SCAN
; 2036 ! VALUES - Block Into Which to Store Results
; 2037 !
; 2038 ! IMPLICIT INPUTS:
; 2039 !
; 2040 ! NONE
; 2041 !
; 2042 ! IMPLICIT OUTPUTS:
; 2043 !
; 2044 ! NONE
; 2045 !
; 2046 ! ROUTINE VALUE:
; 2047 !
; 2048 ! NONE
; 2049 !
; 2050 ! SIDE EFFECTS
; 2051 !
; 2052 ! Reads the remainder of the line from CETAB.MAC
; 2053 !
; 2054 !--
; 2055
; 2056 BEGIN
; 2057
; 2058 BIND
; 2059 ROUTINE_NAME = UPLIT (%ASCIZ'READ-DRV$DF');
; 2060
; 2061 MAP
; 2062 FILE_PTR : REF FILE_BLOCK,
; 2063 VALUES : REF VNPVAL_BLOCK;
; 2064
; 2065 LOCAL
; 2066 SEARCH_DONE,
; 2067 RESULT : VECTOR [20],
; 2068 VAL_POINTER,
; 2069 CHAR,
; 2070 TSKB_PTR : REF VNPTSK_BLOCK;
; 2071
; 2072 !
; 2073 ! Allocate an VNPTSK Block and link it in with others
; 2074 !
; 2075
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 86
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (15)
; 2076 IF ((TSKB_PTR = GETBLK (VNPTSK_TYP, VNPTSK_LEN)) EQL 0)
; 2077 THEN
; 2078 ERRMSG (0, 1, ROUTINE_NAME, 0, 0, 0, 0)
; 2079 ELSE
; 2080
; 2081 IF ((VALUES [TSK_CHAIN] = BLD_CHAIN (.VALUES, .VALUES [TSK_CHAIN], .TSKB_PTR)) EQL 0)
; 2082 THEN
; 2083 ERRMSG (0,
; 2084 1, ROUTINE_NAME, 0, 0, 0, 0)
; 2085 ELSE
; 2086 BEGIN
; 2087 !
; 2088 ! Store type of VNPTSK block this is:
; 2089 !
; 2090 TSKB_PTR [TSK_TYPE] = TSK_DRIVER_TYPE;
; 2091 !
; 2092 ! DRV$DF has only a single argument, the two character driver name
; 2093 !
; 2094 SCAN (.FILE_CHAN, .FILE_PTR, .SAVE_CHAR, RESULT);
; 2095
; 2096 IF (.RESULT [RESULT_TYPE] NEQ RT_NAME)
; 2097 THEN
; 2098 ERRMSG (0, 24, ROUTINE_NAME, FILE_PTR [FILE_NAME], 0,
; 2099 0, 0)
; 2100 ELSE
; 2101 CH$MOVE (LEN_DRV_NAME, CH$PTR (RESULT [RESULT_VALUE]), CH$PTR (TSKB_PTR [TSK_NAME]));
; 2102
; 2103 END;
; 2104
; 2105 !
; 2106 ! Finished with DRV$DF, Skip to end of line
; 2107 !
; 2108
; 2109 DO
; 2110 SCAN (.FILE_CHAN, .FILE_PTR, .SAVE_CHAR, RESULT)
; 2111 UNTIL ((.RESULT [RESULT_TYPE] EQL RT_SPECIAL) AND (.RESULT [RESULT_VALUE] LSS 0));
; 2112
; 2113 END; !OF R_DRV
P.AAV: BYTE (7)"R","E","A","D","-" ; READ- 403375' 122 105 101 104 055
BYTE (7)"D","R","V","$","D" ; DRV$D 403376' 104 122 126 044 104
BYTE (7)"F",000,000,000,000 ; F 403377' 106 000 000 000 000
ROUTINE_NAME= P.AAV ; 000000 403375'
R_DRV: PUSH SP,AC0 ; SP,AC0 403400' 261 17 0 00 000000 2024
PUSH SP,AC10 ; SP,AC10 403401' 261 17 0 00 000010
ADJSP SP,24 ; SP,24 403402' 105 17 0 00 000024
PUSH SP,C.46 ; SP,[26] 403403' 261 17 0 00 403372' 2076
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 87
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (15)
PUSH SP,C.47 ; SP,[5] 403404' 261 17 0 00 403373'
PUSHJ SP,GETBLK ; SP,GETBLK 403405' 260 17 0 00 000000*
MOVE AC0,AC1 ; TSKB_PTR,AC1 403406' 200 00 0 00 000001
ADJSP SP,-2 ; SP,-2 403407' 105 17 0 00 777776
JUMPE AC0,L.231 ; TSKB_PTR,L.231 403410' 322 00 0 00 403422'
MOVE AC10,-27(SP) ; AC10,VALUES 403411' 200 10 0 17 777751 2081
PUSH SP,AC10 ; SP,AC10 403412' 261 17 0 00 000010
HRRZ AC1,3(AC10) ; AC1,3(AC10) 403413' 550 01 0 10 000003
PUSH SP,AC1 ; SP,AC1 403414' 261 17 0 00 000001
PUSH SP,AC0 ; SP,TSKB_PTR 403415' 261 17 0 00 000000
PUSHJ SP,BLD_CHAIN ; SP,BLD_CHAIN 403416' 260 17 0 00 000000*
ADJSP SP,-3 ; SP,-3 403417' 105 17 0 00 777775
HRRM AC1,3(AC10) ; AC1,3(AC10) 403420' 542 01 0 10 000003
JUMPN AC1,L.232 ; AC1,L.232 403421' 326 01 0 00 403434'
L.231: PUSH SP,C.4 ; SP,[0] 403422' 261 17 0 00 400371' 2083
PUSH SP,C.3 ; SP,[1] 403423' 261 17 0 00 400370'
PUSH SP,C.49 ; SP,[0,,ROUTINE_NAME] 403424' 261 17 0 00 403515'
PUSH SP,C.4 ; SP,[0] 403425' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 403426' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 403427' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 403430' 261 17 0 00 400371'
PUSHJ SP,ERRMSG ; SP,ERRMSG 403431' 260 17 0 00 000000*
ADJSP SP,-3 ; SP,-3 403432' 105 17 0 00 777775
JRST L.234 ; L.234 403433' 254 00 0 00 403475' 2081
L.232: MOVEI AC1,2 ; AC1,2 403434' 201 01 0 00 000002 2090
MOVE AC2,AC0 ; AC2,TSKB_PTR 403435' 200 02 0 00 000000
MOVEM AC1,1(AC2) ; AC1,1(AC2) 403436' 202 01 0 02 000001
PUSH SP,-32(SP) ; SP,FILE_CHAN 403437' 261 17 0 17 777746 2094
PUSH SP,-32(SP) ; SP,FILE_PTR 403440' 261 17 0 17 777746
PUSH SP,-32(SP) ; SP,SAVE_CHAR 403441' 261 17 0 17 777746
MOVEI AC1,-26(SP) ; AC1,RESULT 403442' 201 01 0 17 777752
PUSH SP,AC1 ; SP,AC1 403443' 261 17 0 00 000001
PUSHJ SP,SCAN ; SP,SCAN 403444' 260 17 0 00 400503'
MOVEI AC1,1 ; AC1,1 403445' 201 01 0 00 000001 2096
CAMN AC1,-27(SP) ; AC1,RESULT 403446' 316 01 0 17 777751
JRST L.233 ; L.233 403447' 254 00 0 00 403464'
SETZM 0(SP) ; 0(SP) 403450' 402 00 0 17 000000 2098
PUSH SP,C.7 ; SP,[30] 403451' 261 17 0 00 400374'
PUSH SP,C.49 ; SP,[0,,ROUTINE_NAME] 403452' 261 17 0 00 403515'
MOVE AC1,-37(SP) ; AC1,FILE_PTR 403453' 200 01 0 17 777741
ADDI AC1,2 ; AC1,2 403454' 271 01 0 00 000002
PUSH SP,AC1 ; SP,AC1 403455' 261 17 0 00 000001
PUSH SP,C.4 ; SP,[0] 403456' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 403457' 261 17 0 00 400371'
PUSH SP,C.4 ; SP,[0] 403460' 261 17 0 00 400371'
PUSHJ SP,ERRMSG ; SP,ERRMSG 403461' 260 17 0 00 000000*
ADJSP SP,-6 ; SP,-6 403462' 105 17 0 00 777772
JRST L.234 ; L.234 403463' 254 00 0 00 403475' 2096
L.233: MOVEI AC2,-27(SP) ; AC2,RESULT 403464' 201 02 0 17 777751 2101
HRLI AC2,10700 ; AC2,10700 403465' 505 02 0 00 010700
MOVE AC1,AC0 ; AC1,TSKB_PTR 403466' 200 01 0 00 000000
MOVEI AC5,1(AC1) ; AC5,1(AC1) 403467' 201 05 0 01 000001
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 88
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (15)
HRLI AC5,10700 ; AC5,10700 403470' 505 05 0 00 010700
MOVEI AC1,2 ; AC1,2 403471' 201 01 0 00 000002
MOVEI AC4,2 ; AC4,2 403472' 201 04 0 00 000002
EXTEND AC1,C.23 ; AC1,[MOVSLJ ] 403473' 123 01 0 00 401030'
JFCL ; 403474' 255 00 0 00 000000
L.234: PUSH SP,-36(SP) ; SP,FILE_CHAN 403475' 261 17 0 17 777742 2110
PUSH SP,-36(SP) ; SP,FILE_PTR 403476' 261 17 0 17 777742
PUSH SP,-36(SP) ; SP,SAVE_CHAR 403477' 261 17 0 17 777742
MOVEI AC0,-32(SP) ; AC0,RESULT 403500' 201 00 0 17 777746
PUSH SP,AC0 ; SP,AC0 403501' 261 17 0 00 000000
PUSHJ SP,SCAN ; SP,SCAN 403502' 260 17 0 00 400503'
ADJSP SP,-4 ; SP,-4 403503' 105 17 0 00 777774
MOVEI AC0,3 ; AC0,3 403504' 201 00 0 00 000003 2111
CAMN AC0,-27(SP) ; AC0,RESULT 403505' 316 00 0 17 777751
SKIPL -26(SP) ; RESULT+1 403506' 331 00 0 17 777752
JRST L.234 ; L.234 403507' 254 00 0 00 403475' 2109
ADJSP SP,-4 ; SP,-4 403510' 105 17 0 00 777774 2056
ADJSP SP,-24 ; SP,-24 403511' 105 17 0 00 777754 2024
POP SP,AC10 ; SP,AC10 403512' 262 17 0 00 000010
POP SP,AC0 ; SP,AC0 403513' 262 17 0 00 000000
POPJ SP, ; SP, 403514' 263 17 0 00 000000
C.49: XWD 0,ROUTINE_NAME ; 0,ROUTINE_NAME 403515' 000000 403375'
; Routine Size: 78 words
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 89
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (16)
; 2114 ROUTINE R_END (FILE_CHAN, FILE_PTR, SAVE_CHAR, VALUES) : NOVALUE = !READ END$DF LINE
; 2115
; 2116 !++
; 2117 ! FUNCTIONAL DESCRIPTION:
; 2118 !
; 2119 ! READ AND PROCESS THE END$DF LINE OF CETAB.MAC
; 2120 !
; 2121 ! FORMAL PARAMETERS:
; 2122 !
; 2123 ! FILE_CHAN - CHANNEL NUMBER ON WHICH TO READ
; 2124 ! FILE_PTR - FILE BLOCK WITH FILE NAME FILLED IN
; 2125 ! SAVE_CHAR - ADDRESS OF CHARACTER SAVED FROM LAST CALL TO SCAN
; 2126 ! VALUES - BLOCK INTO WHICH TO STORE RESULTS
; 2127 !
; 2128 ! IMPLICIT INPUTS:
; 2129 !
; 2130 ! NONE
; 2131 !
; 2132 ! IMPLICIT OUTPUTS:
; 2133 !
; 2134 ! NONE
; 2135 !
; 2136 ! ROUTINE VALUE:
; 2137 !
; 2138 ! NONE
; 2139 !
; 2140 ! SIDE EFFECTS
; 2141 !
; 2142 ! READS THE REMAINDER OF THE LINE FROM CETAB.MAC
; 2143 !
; 2144 !--
; 2145
; 2146 BEGIN
; 2147
; 2148 BIND
; 2149 ROUTINE_NAME = UPLIT (%ASCIZ'READ-END$DF');
; 2150
; 2151 MAP
; 2152 FILE_PTR : REF FILE_BLOCK,
; 2153 VALUES : REF VNPVAL_BLOCK;
; 2154
; 2155 LOCAL
; 2156 RESULT : VECTOR [20],
; 2157 VAL_POINTER;
; 2158
; 2159 !
; 2160 ! THERE ARE NO PARAMETERS ON THIS LINE
; 2161 !
; 2162 !
; 2163 ! FINISHED WITH END$DF, SKIP TO END OF LINE
; 2164 !
; 2165
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 90
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (16)
; 2166 DO
; 2167 SCAN (.FILE_CHAN, .FILE_PTR, .SAVE_CHAR, RESULT)
; 2168 UNTIL ((.RESULT [RESULT_TYPE] EQL RT_SPECIAL) AND (.RESULT [RESULT_VALUE] LSS 0));
; 2169
; 2170 END; !OF R_END
P.AAW: BYTE (7)"R","E","A","D","-" ; READ- 403516' 122 105 101 104 055
BYTE (7)"E","N","D","$","D" ; END$D 403517' 105 116 104 044 104
BYTE (7)"F",000,000,000,000 ; F 403520' 106 000 000 000 000
ROUTINE_NAME= P.AAW ; 000000 403516'
R_END: ADJSP SP,24 ; SP,24 403521' 105 17 0 00 000024 2114
L.235: PUSH SP,-30(SP) ; SP,FILE_CHAN 403522' 261 17 0 17 777750 2167
PUSH SP,-30(SP) ; SP,FILE_PTR 403523' 261 17 0 17 777750
PUSH SP,-30(SP) ; SP,SAVE_CHAR 403524' 261 17 0 17 777750
MOVEI AC1,-26(SP) ; AC1,RESULT 403525' 201 01 0 17 777752
PUSH SP,AC1 ; SP,AC1 403526' 261 17 0 00 000001
PUSHJ SP,SCAN ; SP,SCAN 403527' 260 17 0 00 400503'
ADJSP SP,-4 ; SP,-4 403530' 105 17 0 00 777774
MOVEI AC1,3 ; AC1,3 403531' 201 01 0 00 000003 2168
CAMN AC1,-23(SP) ; AC1,RESULT 403532' 316 01 0 17 777755
SKIPL -22(SP) ; RESULT+1 403533' 331 00 0 17 777756
JRST L.235 ; L.235 403534' 254 00 0 00 403522' 2166
ADJSP SP,-24 ; SP,-24 403535' 105 17 0 00 777754 2114
POPJ SP, ; SP, 403536' 263 17 0 00 000000
; Routine Size: 14 words
; 2171 END
; 2172
; 2173 ELUDOM
END
; Low segment length: 0 words
; High segment length: 1887 words
; LIBRARY STATISTICS
;
; -------- Symbols -------- Blocks
; File Total Loaded Percent Read
;
RTXT 25-Jan-1983 10:25:25 TOPS-20 Bliss-36 2A(142) Page 91
X3.1 1-Jan-1983 15:38:34 NETPKG:<VNP36>RTXT.BLI.7 (16)
; NETPKG:<VNP36>VNPLIB.L36.6 498 284 57 0
; 2174 ! Local Modes:
; 2175 ! Comment Column:36
; 2176 ! Comment Start:!
; 2177 ! Mode:Fundamental
; 2178 ! Auto Save Mode:2
; Size: 1822 code + 65 data words
; Run Time: 00:31.7
; Elapsed Time: 01:49.6
; Memory Used: 49 pages
; Compilation Complete