CLEAR STORAGE 1 ,008015,022026,030037,044,049,053053N000000N00001026 1 CLEAR STORAGE 2 L068116,105106,110117B101/I9I#071029C029056B026/B001/0991,001/001117I0? 2 BOOTSTRAP ,008015,022029,036040,047054,061068,072/061039 ,0010011040 3 ZZTAPE INPUT/OUTPUT TAPE PACKAGE 03-27-67 ZTAPB PAGE 1 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 101 01 010 JOB ZZTAPE INPUT/OUTPUT TAPE PACKAGE 03-27-67 102 01 020 CTL 551 1 103 01 030 ORG 336 0336 104 01 040 * ZTAPB 105 01 050 * ZTAPB 106 01 060 * ZTAPB 107 01 070 * THIS TAPE INPUT/OUTPUT PACKAGE OPENS, READS, WRITES, AND ZTAPB 108 01 080 * CLOSES TAPE FILES. IT OPENS AND CLOSES FILES WITH STANDARD ZTAPB 109 01 090 * IBM HEADER AND TRAILER LABELS. COMPLETE HEADER LABEL CHECKING ZTAPB 110 01 100 * IS DONE ON INPUT INCLUDING DATE CREATION WITH THE USE ZTAPB 111 01 110 * OF PERAMETERS FOR LEAST AND MOST NUMBER OF DAYS OLD. OUTPUT ZTAPB 112 01 120 * TAPES ARE CHECKED FOR POSSIBLE RETENTION BEFORE BEING OPENED ZTAPB 113 01 130 * WITH A NEW HEADER LABEL. IN READING AND WRITING TAPE, ALL ZTAPB 114 01 140 * ERROR CHECKING IS DONE INCLUDING NOISE RECORD AND RECORD LENGTH ZTAPB 115 01 150 * CHECKING ON INPUT FILES. MULTI-REEL INPUT AND OUTPUT FILES ZTAPB 116 01 160 * ARE HANDLED AUTOMATICALLY. ZTAPB 117 01 170 * ZTAPB 118 01 180 * EACH FILE TO BE PROCESSED MUST HAVE A FILE TABLE TO BE USED ZTAPB 119 01 190 * BY THIS INPUT/OUTPUT PACKAGE. AN EXAMPLE OF A FILE TABLE FOR ZTAPB 120 01 200 * INPUT FILES FOLLOWS..... ZTAPB 121 02 010 * ZTAPB 122 02 020 * LABEL OP OPERAND REASON/REMARKS ZTAPB 123 02 030 * ZTAPB 124 02 040 * FILE1 DCW 1 DRIVE NUMBER. 1 IN THIS CASE. ZTAPB 125 02 050 * DSA INPUT1 ADDRESS OF INPUT AREA. ZTAPB 126 02 060 * DC @R@ READ D CHARACTER. ZTAPB 127 02 070 * DSA EOF1 EXIT TO YOUR PROGRAM IF A 1EOF ZTAPB 128 02 080 * RECORD IS READ. ZTAPB 129 02 090 * DC #1 KEY USED TO DETERMINE IF FIRST OR ZTAPB 130 02 100 * OTHER REEL OF MULTI-REEL FILE. ZTAPB 131 02 110 * DCW @FILE1@ FILE NUMBER EXPECTED ON INPUT FILE ZTAPB 132 02 120 * DC @-001 @ REEL SEQUENCE. MUST BE 001 FOR ZTAPB 133 02 130 * FIRST REEL. ZZTAPE MODIFIES IT. ZTAPB 134 02 140 * DC @INP MASTER@ EXPECTED INPUT NAME/ID. ZTAPB 135 02 150 * DC #5 AREA TO RECEIVE DATE FROM FILE. ZTAPB 136 02 160 * IT IS USED TO CHECK SECOND AND ZTAPB 137 02 170 * FOLLOWING FILES. ZTAPB 138 02 180 * DSA GM1 ADDRESS OF G.M. FOR RECORD LENGTH ZTAPB 139 02 190 * CHECKING. SEE BELOW. ZTAPB 140 02 200 * DCW 000 MINIMUM AGE THE FILE MUST BE, DAYS ZTAPB 141 03 010 * DCW 025 MAXIMUM AGE THE FILE MAY BE, DAYS. ZTAPB 142 03 020 * ZTAPB 143 03 030 * NOTE- WHEN SETTING UP AN INPUT FILE, THE GROUP MARK MUST NOT ZTAPB 144 03 040 * BE SPECIFIED IN THE DA. AFTER THE DA OR SECOND DA THERE MUST ZTAPB 145 03 050 * BE A DC #1 FOLLOWED BY A DCW OF A GROUP MARK. THE LATTER DCW ZTAPB 146 03 060 * MUST CONTAIN THE LABEL THAT APPEARS IN YOUR FILE TABLE, SEE ZTAPB 147 03 070 * ABOVE. ZTAPB ZZTAPE INPUT/OUTPUT TAPE PACKAGE 03-27-67 ZTAPB PAGE 2 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 148 03 080 * ZTAPB 149 03 090 * THE FOLLOWING IS AN EXAMPLE OF AN OUTPUT FILE TABLE..... ZTAPB 150 03 100 * ZTAPB 151 03 110 * LABEL OP OPERAND REASON/REMARKS ZTAPB 152 03 120 * ZTAPB 153 03 130 * FILE2 DCW 2 DRIVE NUMBER. ZTAPB 154 03 140 * DSA OUT2 ADDRESS OF OUTPUT AREA. ZTAPB 155 03 150 * DC @W@ WRITE D CHARACTER. ZTAPB 156 03 160 * DSA EOR2 EXIT TO YOUR PROGRAM IF END OF ZTAPB 157 03 170 * REEL/TAPE IS ENCOUNTERED. ZTAPB 158 03 180 * DC #1 KEY USED TO DETERMINE IF THIS REEL ZTAPB 159 03 190 * IS THE FIRST OR ANOTHER OF A ZTAPB 160 03 200 * MULTI REEL FILE. ZTAPB 161 04 010 * DCW #5 AREA USED TO ACCUMULATE BLOCK ZTAPB 162 04 020 * COUNT. ZTAPB 163 04 030 * DCW @FILE2@ FILE NUMBER TO BE WRITTEN ON LABEL ZTAPB 164 04 040 * DCW @-001 @ REEL SEQUENCE NUMBER. MUST BE 001 ZTAPB 165 04 050 * DCW @OUT MASTER@ FILE ID TO BE WRITTEN ON LABEL. ZTAPB 166 04 060 * DCW @-015 @ RETENTION CYCLE OF FILE. ZTAPB 167 04 070 * ZTAPB 168 04 080 * THIS INPUT/OUTPUT PACKAGE IS USED AS AN INSERT OBJECT DECK ZTAPB 169 04 090 * TO YOUR PROGRAM. IT LOADS INTO POSITIONS 336 TO 1519, THERE- ZTAPB 170 04 100 * FORE YOUR PROGRAM MUST BE ORIGINED AT POSITION 1520. BECAUSE ZTAPB 171 04 110 * THIS PACKAGE IS NOT COMPILED EACH TIME YOUR PROGRAM IS, A SET ZTAPB 172 04 120 * OF EQUATES MUST BE PART OF YOUR PROGRAM. THE FOLLOWING LISTS ZTAPB 173 04 130 * THE PRIMARY EQUATES AND ALSO CONSTANTS WHICH MAY BE ZTAPB 174 04 140 * USED BY YOUR PROGRAM..... ZTAPB 175 04 150 * ZTAPB 176 04 160 * LABEL EQUATE COMMENT/REASON ZTAPB 177 04 170 * ZTAPB 178 04 180 * XXCHNG EQU 363 ROUTINE TO HANDLE MULTI-REEL ZTAPB 179 04 190 * OUTPUT FILES. ZTAPB 180 04 200 * XXDATE EQU 485 STORAGE AREA FOR JULIAN DATE. ZTAPB 181 05 010 * XXTAPE EQU 492 ROUTINE TO READ OR WRITE TAPE. ZTAPB 182 05 020 * XXOPEN EQU 790 ROUTINE TO OPEN FILES. ZTAPB 183 05 030 * XXCLOZ EQU 1217 ROUTINE TO CLOSE FILES. ZTAPB 184 05 040 * ZTAPB 185 05 050 * XXISBD EQU 977 *MAY BE MODIFIED TO EXIT TO YOUR ZTAPB 186 05 060 * PROGRAM IN CASE OF A BAD INPUT ZTAPB 187 05 070 * LABEL. ZTAPB 188 05 080 * XXOTEX EQU 1090 *MAY BE MODIFIED TO EXIT TO YOUR ZTAPB 189 05 090 * PROGRAM TO WRITE ADDITIONAL ZTAPB 190 05 100 * INFORMATION IN OUTPUT LABELS. ZTAPB 191 05 110 * ZTAPB 192 05 120 * XX1 EQU 353 *CONTAINS CONSTANT @001@. ZTAPB 193 05 130 * XX366 EQU 356 *CONTAINS CONSTANT @366@. ZTAPB 194 05 140 * XXI9I EQU 1489 *CONTAINS ADDRESS CONSTANT @I9I@. ZTAPB 195 05 150 * XXTRAL EQU 400 *HEADER & TRAILER LABEL I/O AREA DA ZTAPB 196 05 160 * THOSE EQUATES HAVING * IN THE REMARKS FIELD ARE NOT REQUIRED. ZTAPB 197 05 170 * ZTAPB ZZTAPE INPUT/OUTPUT TAPE PACKAGE 03-27-67 ZTAPB PAGE 3 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 198 05 180 * ZTAPB 199 05 190 * WITH A FILE TABLE FOR EACH FILE AND A DATE IN XXDATE..... ZTAPB 200 05 200 * TO OPEN A FILE, BRANCH TO XXOPEN. ZTAPB 201 06 010 * TO READ OR WRITE TAPE, BRANCH TO XXTAPE. ZTAPB 202 06 020 * TO CLOSE A FILE, BRANCH TO XXCLOZ. ZTAPB 203 06 030 * TO CHANGE REELS AT EOR FOR AN OUTPUT FILE, BRANCH TO XXCHNG. ZTAPB 204 06 040 * ZTAPB 205 06 050 * EACH OF THE ABOVE BRANCHES MUST BE FOLLOWED BY A NOP WITH ZTAPB 206 06 060 * THE A ADDRESS OPERAND BEING THE ADDRESS/LABEL OF THE FILE ZTAPB 207 06 070 * TABLE OF THE FILE TO BE PROCESSED. ZTAPB 208 06 080 * ZTAPB 209 06 090 * THIS TAPE INPUT/OUTPUT PACKAGE DOES NOT DO DE-BLOCKING ZTAPB 210 06 100 * OF INPUT, BLOCKING OR PADDING OF AN OUTPUT FILE. IT ALSO ZTAPB 211 06 110 * DOES NOT REWIND OR REWIND AND UNLOAD ANY FILE IN XXCLOZ. ZTAPB 212 06 120 * ZTAPB 213 06 130 * BEFORE ANY FILE OR TAPE CAN BE OPENED A DATE MUST BE ZTAPB 214 06 140 * SUPPLIED TO THIS INPUT/OUTPUT PACKAGE. THIS IS DONE BY ZTAPB 215 06 150 * MOVING A FIVE CHARACTER DATE, TWO POSITION YEAR AND THREE ZTAPB 216 06 160 * POSITION JULIAN DAY TO XXDATE. ZTAPB 217 06 170 * ZTAPB 218 06 180 * IT SHOULD BE NOTED THAT THIS INPUT/OUTPUT PACKAGE WILL NOT ZTAPB 219 06 190 * ACCEPT AN INPUT FILE WITH A BAD LABEL OR EXPIRED DATE. FOR ZTAPB 220 06 200 * PURPOSES OF DE-BUGGING PROGRAMS, POSITION 977 MAY BE NO-OPED ZTAPB 221 07 010 * TO ACCEPT ANY HEADER, OR THE I ADDRESS MAY BE ALTERED TO 981 ZTAPB 222 07 020 * TO ACCEPT THAT FILE ONLY. IT SHOULD BE NOTED THAT A NOP AT ZTAPB 223 07 030 * POSITION 977 WILL ACCEPT ALL FILES THAT HAVE HEADERS, GOOD OR ZTAPB 224 07 040 * BAD, WHEREAS A RESTART AT 981 WILL ACCEPT A FILE WITH A BAD ZTAPB 225 07 050 * HEADER, OR A FILE WITHOUT A HEADER. ALSO NOTE THAT AN OUTPUT ZTAPB 226 07 060 * FILE WHOSE RETENTION CYCLE HAS EXPIRED CANNOT BE OPENED. AGAIN, ZTAPB 227 07 070 * FOR PURPOSES OF DE-BUGGING, THE I ADDRESS MAY BE ALTERED TO ZTAPB 228 07 080 * 870 TO OPEN THE FILE. ZTAPB 229 07 090 * ZTAPB ZZTAPE TAPE I/O PACKAGE. CONSTANTS AND EQUATES ZTAPB PAGE 4 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 230 08 010 JOB ZZTAPE TAPE I/O PACKAGE. CONSTANTS AND EQUATES 231 08 020 * ZTAPB 232 08 030 ** EQUATES. ZTAPB 233 08 040 * ZTAPB 234 08 050 XXIND3 EQU 99 EQUATE TO X3. 0099 235 08 060 XXFADD EQU 3&X3 EQUATE TO FILE ADDRESS. 0003 X 236 08 070 * EQUATES TO INPUT FILE TABLE. ZTAPB 237 08 080 XXINRS EQU 17&X3 EQUATE TO INPUT REEL SEQUENCE. 0017 X 238 08 090 XXINPL EQU 28&X3 EQUATE TO INPUT LABEL. 0028 X 239 08 100 XXINLB EQU 33&X3 EQUATE TO COMPLETE INPUT LABEL. 0033 X 240 08 110 XXINGM EQU 36&X3 EQUATE TO ADDRESS OF INPUT G.M. 0036 X 241 08 120 XXPER1 EQU 39&X3 EQUATE TO LEAST DAYS OLD. 0039 X 242 08 130 XXPER2 EQU 42&X3 EQUATE TO MOST NUMBER OF DAYS OLD 0042 X 243 08 140 * EQUATES TO INPUT AND OUTPUT FILE TABLES. ZTAPB 244 08 150 XXDRNO EQU 0&X3 EQUATE TO DRIVE NUMBER. 0000 X 245 08 160 XXIORA EQU 3&X3 EQUATE TO I/O AREA. 0003 X 246 08 170 XXIODC EQU 4&X3 EQUATE TO D CHARACTER. 0004 X 247 08 180 XXEOFX EQU 7&X3 EQUATE TO EOF/EOR EXIT. 0007 X 248 08 190 XXKEY EQU 8&X3 EQUATE TO OPEN KEY. 0008 X 249 08 200 * EQUATES TO OUTPUT FILE TABLES. ZTAPB 250 09 010 XXOTCT EQU 13&X3 EQUATE TO OUTPUT BLOCK COUNT. 0013 X 251 09 020 XXOTRS EQU 22&X3 EQUATE TO OUTPUT REEL SEQUENCE. 0022 X 252 09 030 XXOUTN EQU 33&X3 EQUATE TO OUTPUT NAME. 0033 X 253 09 040 XXOUTR EQU 38&X3 EQUATE TO OUTPUT RETENTION CYCLE. 0038 X 254 09 050 * ZTAPB 255 09 060 ** CONSTANTS ZTAPB 256 09 070 * ZTAPB 257 09 080 XX1HDR DCW @1HDR @ HEADER LABEL IDENTIFICATION. 5 0340 4 258 09 090 XX1EOR DCW @1EOR @ END OF REEL IDENTIFICATION. 5 0345 4 259 09 100 XX1EOF DCW @1EOF @ END OF FILE IDENTIFICATION. 5 0350 4 260 09 110 XX1 DCW 001 ADDRESS CONSTANT 001. 3 0353 4 261 09 120 XX366 DCW 366 DAYS PER YEAR & 1. 3 0356 4 262 09 130 XX635 DCW 635 1000 MINUS DAYS PER YEAR. 3 0359 4 263 09 140 XXR DCW @R@ CONSTANT R . 1 0360 4 264 09 150 XXERRC DCW #2 ERROR COUNTER. 2 0362 5 265 09 160 * ZTAPB 266 09 170 ** EOR ROUTINE FOR MULTI-REEL OUTPUT FILES. ZTAPB 267 09 180 * ZTAPB 268 09 190 XXCHNG SBR XXXXXX&3 STORE LINK IN EXIT. 4 0363 H U28 5 269 09 200 SBR XXIND3 STORE NSI IN X3 4 0367 H 099 5 270 10 010 SBR XXLCA&3,XX1EOR MODIFY XXLCA TO USE XX1EOR. 7 0371 H T32 345 5 271 10 020 B XXPOST GO TO WRITE TRAILER. 4 0378 B S21 5 272 10 030 B XXEORY GO TO OPEN NEXT REEL. 4 0382 B T59 5 273 10 040 * ZTAPB 274 10 050 ** FILE TABLE FOR HEADER & TRAILER ZTAPB 275 10 060 * ZTAPB 276 10 070 XXHEAD DCW @0@ DRIVE NUMBER. 1 0386 5 277 10 080 DC XXTRAL I/O AREA. 3 0389 400 5 278 10 090 XXHDRW DC @W@ WRITE D CHARACTER. 1 0390 5 279 10 100 DCW XXNOHD EOF EXIT. 3 0393 913 6 ZZTAPE TAPE I/O PACKAGE. CONSTANTS AND EQUATES ZTAPB PAGE 5 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 280 10 110 XXW DCW @W@ CONSTANT W . 1 0394 6 281 10 120 DCW #5 ADD BLOCK COUNT DURING TRAILER WT 5 0399 6 282 10 130 * ZTAPB 283 10 140 ** HEADER AND TRAILER I/O AREA ZTAPB 284 10 150 * ZTAPB 285 10 160 XXTRAL DA 1X80,G LABELS RESIDE HERE. 0400 0479 285 DCW @"@ 1 0480 GMARK 7 286 10 170 * ZTAPB 287 10 180 ** WORKING STORAGE ZTAPB 288 10 190 * ZTAPB 289 10 200 XXDATE DCW #5 HOLD AREA FOR JULIAN DATE. 5 0485 7 290 11 010 XXSVDT DCW #5 SAVE AREA FOR JULIAN DATE. 5 0490 7 291 11 020 DCW #1 DUMMY TO ADJUST XXTAPE ADDRESS. 1 0491 7 ZZTAPE TAPE I/O PACKAGE READ/WRITE ROUTINE ZTAPB PAGE 6 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 292 12 010 JOB ZZTAPE TAPE I/O PACKAGE READ/WRITE ROUTINE 293 12 020 XXTAPE SBR XXIND3 STORE NSI IN X3 4 0492 H 099 7 294 12 030 SBR XXTHRU&3 STORE LINK IN XXTHRU 4 0496 H 628 7 295 12 040 MCW XXFADD,XXIND3 MOVE FILE ADDRESS TO X3. 7 0500 M 0?3 099 7 296 12 050 BW XXNOTO,XXDRNO&1 CHECK IF FILE OPENED. 8 0507 V 765 0?1 1 8 297 12 060 MCW XXIODC,XXRDWR&7 MOVE A B AND D I/O INST. 7 0515 M 0?4 533 8 298 12 070 XXREST S XXERRC CLEAR ERROR COUNTER. 4 0522 S 362 8 299 12 080 XXRDWR RT 0,0 READ OR WRITE TAPE. 8 0526 M %U0 000 R 8 300 12 090 SBR XXLENG&3 STORE NEXT POSITION IN XXLENG 4 0534 H 675 8 301 12 100 * TO CLEAR WRONG LENGTH RECORD G.M. ZTAPB 302 12 110 SBR XXCLER&6 STORE NEXT POSITION IN XXCLER 4 0538 H 759 8 303 12 120 * TO CLEAR NOISE LENGTH RECORD G.M. ZTAPB 304 12 130 SBR XXCLR&3 STORE NEXT POSITION IN XXCLR 4 0542 H S55 8 305 12 140 * TO CLEAR G.M. SET BY T.M. RECORD. ZTAPB 306 12 150 BCE XXCKER,XXIODC,W GO CHECK TAPE ERROR IF WRITE. 8 0546 B 593 0?4 W 9 307 12 160 BEF XXRDTL GO READ TRAILER IF EOF. 5 0554 B S32 K 9 308 12 170 XXTMCK SBR *&14,12 SETUP FOR NOISE 7 0559 H 579 012 9 309 12 180 MA XXIORA,*&7 LENGTH RECORD CHECK. 7 0566 # 0?3 579 9 310 12 190 BCE XXCLER,12," CHECK POSITIONS 1 - 13 8 0573 B 753 012 " GMARK 9 311 12 200 CHAIN 12 FOR GROUP MARK. MACRO 312 BCE 1 0581 B GEN 9 313 BCE 1 0582 B GEN 9 314 BCE 1 0583 B GEN 10 315 BCE 1 0584 B GEN 10 316 BCE 1 0585 B GEN 10 317 BCE 1 0586 B GEN 10 318 BCE 1 0587 B GEN 10 319 BCE 1 0588 B GEN 10 320 BCE 1 0589 B GEN 10 321 BCE 1 0590 B GEN 11 322 BCE 1 0591 B GEN 11 323 BCE 1 0592 B GEN 11 324 13 010 XXCKER BER XXERR CHECK FOR TAPE ERROR. 5 0593 B 676 L 11 325 13 020 BCE XXCKLG,XXIODC,R GO CHECK RECORD LENGTH IF READ. 8 0598 B 629 0?4 R 11 326 13 030 A XX1,XXOTCT ADD OUTPUT BLOCK COUNT. 7 0606 A 353 0A3 11 327 13 040 MCW XXEOFX,*&4 SETUP EOR EXIT FROM FILE TABLE. 7 0613 M 0?7 623 11 328 13 050 BEF 0 EXIT IF END OF REEL. 5 0620 B 000 K 12 329 13 060 XXTHRU B 0 EXIT IF ALL CHECKS OK. 4 0625 B 000 12 330 13 070 * ZTAPB 331 13 080 ** ROUTINE TO CHECK INPUT BLOCK LENGTH ZTAPB 332 13 090 * ZTAPB 333 13 100 XXCKLG C XXSAVE-1,XXIND3 CHECK IF READING 7 0629 C 831 099 12 334 13 110 BE XXTHRU TRAILER LABEL. 5 0636 B 625 S 12 335 13 120 C XXLENG&3,XXINGM CHECK IF NEXT POSITION 7 0641 C 675 0C6 12 336 13 130 BE XXTHRU IS INPUT GROUP MARK. 5 0648 B 625 S 12 337 13 140 MA XXI9I,XXLENG&3 DECREMENT ADDRESS AND 7 0653 # U89 675 13 338 13 150 C XXLENG&3,XXINGM CHECK FOR LONG RECORD. 7 0660 C 675 0C6 13 339 13 160 BE XXERR DO NOT CLEAR G.M. IF LONG RECORD. 5 0667 B 676 S 13 340 13 170 XXLENG SAR 0 CLEAR SHORT RECORD G.M. 4 0672 Q 000 13 341 13 180 * ZTAPB ZZTAPE TAPE I/O PACKAGE READ/WRITE ROUTINE ZTAPB PAGE 7 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 342 13 190 ** ERROR COUNT & HALT ROUTINES ZTAPB 343 13 200 * ZTAPB 344 14 010 XXERR MN XXDRNO,*&4 SET DRIVE NUMBER AND 7 0676 D 0?0 686 13 345 14 020 BSP 0 BACKSPACE TAPE JUST USED. 5 0683 U %U0 B 13 346 14 030 A XX1,XXERRC INCREMENT ERROR COUNTER. 7 0688 A 353 362 14 347 14 040 BCE XXHLTR,XXERRC-1,5 CHECK FOR 50 READ ERRORS. 8 0695 B 735 361 5 14 348 14 050 BCE XXRDWR,XXIODC,R CHECK IF READ. 8 0703 B 526 0?4 R 14 349 14 060 MN XXDRNO,*&4 SET DRIVE NUMBER FOR SKIP & ERACE 7 0711 D 0?0 721 14 350 14 070 SKP 0 SET ERACE FLIP - FLOP. 5 0718 U %U0 E 14 351 14 080 BCE XXHLTW,XXERRC,I CHECK FOR 9 WRITE ERRORS. 8 0723 B 744 362 I 15 352 14 090 B XXRDWR GO TRY TO WRITE AGAIN. 4 0731 B 526 15 353 14 100 XXHLTR NOP 1000 SET HALT CODING. 4 0735 N '00 15 354 14 110 H HALT IF READ ERROR. 1 0739 . 15 355 14 120 B XXREST GO TRY AGAIN. 4 0740 B 522 15 356 14 130 XXHLTW NOP 2000 SET HALT CODING. 4 0744 N !00 15 357 14 140 H HALT IF WRITE ERROR. 1 0748 . 15 358 14 150 B XXREST RESET COUNTER & TRY AGAIN. 4 0749 B 522 16 359 14 160 XXCLER MN *,0 CLEAR GROUP MARK SET BY 7 0753 D 759 000 16 360 14 170 MN NOISE LENGTH RECORD. 1 0760 D 16 361 14 180 B XXREST RESET COUNTER & TRY AGAIN. 4 0761 B 522 16 362 14 190 XXNOTO MN XXDRNO,*&4 SET DRIVE NUMBER IN HALT CODING. 7 0765 D 0?0 775 16 363 14 200 NOP 3000 SET HALT CODING. 4 0772 N ?00 16 364 15 010 H HALT. NO RESTART. 1 0776 . 16 365 15 020 B *-8 HALT MEANS FILE NOT OPEN. 4 0777 B 772 17 366 15 030 DCW #9 DUMMY TO ADJUST NOP & RE-STARTS. 9 0789 17 ZZTAPE OPEN ROUTINE ZTAPB PAGE 8 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 367 16 010 JOB ZZTAPE OPEN ROUTINE 368 16 020 XXOPEN SBR XXIND3 STORE NSI IN X3. 4 0790 H 099 17 369 16 030 SBR XXOPNX&3 STORE LINK IN XXOPNX. 4 0794 H '07 17 370 16 040 SW 97 SET WORD MARK IN X3 4 0798 , 097 17 371 16 050 MCW XXFADD,XXIND3 MOVE FILE ADDRESS TO X3. 7 0802 M 0?3 099 17 372 16 060 CW XXDRNO&1 CLEAR WORD MARK UNDER I/O ADDRESS 4 0809 ) 0?1 17 373 16 070 XXROPN MN XXDRNO,*&4 SET DRIVE NUMBER IN REWIND. 7 0813 D 0?0 823 18 374 16 080 RWD 0 REWIND TAPE. 5 0820 U %U0 R 18 375 16 090 MN XXDRNO,XXHEAD SET DRIVE NUMBER IN HEADER TABLE. 7 0825 D 0?0 386 18 376 16 100 XXSAVE SBR XXTMCK-2,XXTMCK SETUP TO IGNORE TAPE MARK. 7 0832 H 557 559 18 377 16 110 B XXHDRD GO READ HEADER LABEL, IF ANY. 4 0839 B /91 18 378 16 120 SBR XXTMCK-2,XXRDTL RESET BRANCH-END-FILE. 7 0843 H 557 S32 18 379 16 130 C XXTRAL&4,XX1HDR CHECK IF HEADER. 7 0850 C 404 340 19 380 16 140 BE XXCHIO IF EQUAL, GO TO CHECK IT. 5 0857 B 881 S 19 381 16 150 BCE XXNOHD,XXIODC,R ELSE IF READ, IT IS BAD. 8 0862 B 913 0?4 R 19 382 16 160 CS 479 CLEAR XXTRAL. 4 0870 / 479 19 383 16 170 LCA XX1HDR,XXTRAL&4 LOAD HEADER ID INTO XXTRAL. 7 0874 L 340 404 19 384 16 180 XXCHIO BCE XXOUT,XXIODC,W CHECK IF WRITE. 8 0881 B '08 0?4 W 19 385 16 190 BW *&5,XXKEY CHECK IF SECOND REEL. 8 0889 V 901 0?8 1 20 386 16 200 B XXIN GO CHECK AGE OF INPUT FILE. 4 0897 B 929 20 387 17 010 C XXTRAL&34,XXINLB CHECK IF SAME FILE AS LAST REEL. 7 0901 C 434 0C3 20 388 17 020 BE XXADD1 IF EQUAL, ADD 1 TO REEL SEQUENCE. 5 0908 B 993 S 20 389 17 030 XXNOHD MN XXDRNO,*&4 SET DRIVE NUMBER IN HALT CODING. 7 0913 D 0?0 923 20 390 17 040 NOP 5000 SET HALT CODING. 4 0920 N '0' 20 391 17 050 H HALT. INPUT CANNOT BE OPENED. 1 0924 . 20 392 17 060 B XXROPN GO TRY AGAIN. 4 0925 B 813 21 393 17 070 * ZTAPB 394 17 080 ** CHECK AGE OF INPUT FILE. ZTAPB 395 17 090 * ZTAPB 396 17 100 XXIN C XXTRAL&29,XXINPL CHECK LABEL AGAINST EXPECTED LABL 7 0929 C 429 0B8 21 397 17 110 BU XXISBD IF BAD GO HALT OR TO USER EXIT. 5 0936 B 977 / 21 398 17 120 SBR XXAGAD&3,XXPER1 SET PERAMETER 1 CHECK. 7 0941 H /23 0C9 21 399 17 130 B XXCKDT GO CHECK MINIMUM AGE. 4 0948 B /09 21 400 17 140 BH XXISBD IF TOO YOUNG, GO HALT. 5 0952 B 977 U 21 401 17 150 SBR XXAGAD&3,XXPER2 SET PERAMETER 2 CHECK. 7 0957 H /23 0D2 21 402 17 160 B XXCKDT GO CHECK MAXIMUM AGE. 4 0964 B /09 22 403 17 170 BL XXISBD IF BAD, GO HALT. 5 0968 B 977 T 22 404 17 180 B *&5 IF GOOD, SKIP BRANCH TO HALT. 4 0973 B 981 22 405 17 190 XXISBD B XXNOHD GO TO HALT OR USER EXIT. 4 0977 B 913 22 406 17 200 SW XXKEY SET KEY. INPUT OPENED. 4 0981 , 0?8 22 407 18 010 MCW XXTRAL&34,XXINLB SETUP CHECK FOR 7 0985 M 434 0C3 22 408 18 020 MCW NEXT REEL OF FILE. 1 0992 M 22 409 18 030 XXADD1 MA XX1,XXINRS ADD 1 TO REEL SEQUENCE. 7 0993 # 353 0A7 23 410 18 040 XXOPEX SW XXKEY SET KEY. OUTPUT OPENED. 4 1000 , 0?8 23 411 18 050 XXOPNX B 0 EXIT. 4 1004 B 000 23 412 18 060 * ZTAPB 413 18 070 ** CHECK RETENTION CYCLE OF OUTPUT FILES. ZTAPB 414 18 080 * ZTAPB 415 18 090 XXOUT SW XXTRAL&36 SETUP FOR CHECKING 4 1008 , 436 23 416 18 100 SBR XXAGAD&3,XXTRAL&38 RETENTION CYCLE. 7 1012 H /23 438 23 ZZTAPE OPEN ROUTINE ZTAPB PAGE 9 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 417 18 110 B XXCKDT GO CHECK RETENTION CYCLE. 4 1019 B /09 23 418 18 120 CW XXTRAL&36 RESET LAST SETUP. 4 1023 ) 436 23 419 18 130 BH *&14 GO HALT IF FILE NOT OLD ENOUGH. 5 1027 B '45 U 24 420 18 140 BL XXWRHD WRITE HEADER IF OLD FILE EXPIRED. 5 1032 B '61 T 24 421 18 150 BCE XXWRHD,XXTRAL&36, GO WRITE HEADER IF NO RET CYC. 8 1037 B '61 436 24 422 18 160 MN XXDRNO,*&4 SET DRIVE NUMBER IN HALT CODING. 7 1045 D 0?0 '55 24 423 18 170 NOP 5010 SET HALT CODING. 4 1052 N '1' 24 424 18 180 H HALT. 1 1056 . 24 425 18 190 B XXROPN GO TRY AGAIN. 4 1057 B 813 24 426 18 200 * ZTAPB 427 19 010 ** WRITE OUTPUT HEADER LABEL. ZTAPB 428 19 020 * ZTAPB 429 19 030 XXWRHD MN XXDRNO,*&4 SET DRIVE NUMBER IN REWIND. 7 1061 D 0?0 '71 25 430 19 040 RWD 0 REWIND TAPE. 5 1068 U %U0 R 25 431 19 050 MCW XXOUTR,XXTRAL&39 MOVE 7 1073 M 0C8 439 25 432 19 060 MCW XXDATE INFORMATION 4 1080 M 485 25 433 19 070 MCW XXOUTN FROM FILE 4 1084 M 0C3 25 434 19 080 MCW TO LABEL. 1 1088 M 25 435 19 090 MCW 1 1089 M 25 436 19 100 XXOTEX B *&1 GO TO NEXT OR USER ROUTINE. 4 1090 B '94 26 437 19 110 B XXHDIO GO WRITE HEADER. 4 1094 B /61 26 438 19 120 MA XX1,XXOTRS INCREMENT OUTPUT REEL SEQUENCE. 7 1098 # 353 0B2 26 439 19 130 B XXOPEX GO TO EXIT. 4 1105 B '00 26 440 19 140 * ZTAPB 441 19 150 ** GENERAL AGE CHECK ROUTINE. ZTAPB 442 19 160 * ZTAPB 443 19 170 XXCKDT SBR XXDTCX&3 STORE LINK IN EXIT. 4 1109 H /60 26 444 19 180 MCW XXTRAL&34,XXSVDT MOVE FILE DATE TO SAVE AREA. 7 1113 M 434 490 26 445 19 190 XXAGAD A 0,XXSVDT ADD PERAMETER TO SAVE AREA. 7 1120 A 000 490 26 446 19 200 C XXSVDT,XX366 CHECK IF JULIAN DATE 7 1127 C 490 356 27 447 20 010 BH *&12 ADJUSTMENT IS NECESSARY. 5 1134 B /50 U 27 448 20 020 A XX635,XXSVDT ADJUST JULIAN DATE. 7 1139 A 359 490 27 449 20 030 B *-22 GO CHECK AGAIN. 4 1146 B /27 27 450 20 040 C XXDATE,XXSVDT CHECK PERAMETER. 7 1150 C 485 490 27 451 20 050 XXDTCX B 0 GO BACK TO MAINLINE. 4 1157 B 000 27 452 20 060 * ZTAPB 453 20 070 ** GENERAL READ/WRITE HEADER/TRAILER ROUTINE. ZTAPB 454 20 080 * ZTAPB 455 20 090 XXHDIO SBR XXHDEX&3 STORE LINK IN EXIT. 4 1161 H /90 27 456 20 100 SBR *&15,0&X3 SAVE X3. 7 1165 H /86 0?0 28 457 20 110 B XXTAPE GO READ OR WRITE TAPE. 4 1172 B 492 28 458 20 120 NOP XXHEAD USE XXTRAL AS I/O AREA. 4 1176 N 386 28 459 20 130 SBR XXIND3,0 RESTORE X3. 7 1180 H 099 000 28 460 20 140 XXHDEX B 0 GO BACK TO MAINLINE. 4 1187 B 000 28 461 20 150 XXHDRD SBR XXHDRX&3 STORE LINK IN EXIT. 4 1191 H S16 28 462 20 160 MCW XXR,XXHDRW SET READ D CHARACTER. 7 1195 M 360 390 28 463 20 170 B XXHDIO GO READ HEADER LABEL. 4 1202 B /61 29 464 20 180 MCW XXW,XXHDRW RESET WRITE D CHARACTER. 7 1206 M 394 390 29 465 20 190 XXHDRX B 0 GO BACK TO MAINLINE. 4 1213 B 000 29 ZZTAPE CLOSE ROUTINE. ZTAPB PAGE 10 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 466 21 010 JOB ZZTAPE CLOSE ROUTINE. 467 21 020 XXCLOZ SBR XXIND3 STORE NSI IN X3. 4 1217 H 099 29 468 21 030 XXPOST SBR XXCLZX&3 STORE LINK IN EXIT. 4 1221 H T58 29 469 21 040 MCW XXFADD,XXIND3 MOVE FILE ADDRESS TO X3. 7 1225 M 0?3 099 29 470 21 050 XXRDTL MN XXDRNO,XXHEAD SET DRIVE NUMBER FOR READ/WRITE. 7 1232 D 0?0 386 29 471 21 060 BCE XXWRTL,XXIODC,W CHECK IF WRITE. 8 1239 B T14 0?4 W 30 472 21 070 BER XXERR GO TO ERROR ROUTINE ON ERROR. 5 1247 B 676 L 30 473 21 080 XXCLR SAR 0 CLEAR G.M. SET BY T.M. RECORD. 4 1252 Q 000 30 474 21 090 MCW XXTHRU&3,XXXXXX&3 SETUP EXIT BACK TO USER. 7 1256 M 628 U28 30 475 21 100 MCW XXEOFX,XXEORX&3 SETUP EXIT FOR 1EOF RECORD. 7 1263 M 0?7 S96 30 476 21 110 B XXHDRD GO READ TRAILER. 4 1270 B /91 30 477 21 120 C XXTRAL&4,XX1EOR CHECK FOR END OF REEL 7 1274 C 404 345 31 478 21 130 BE XXEORY IF YES, GO OPEN NEXT REEL. 5 1281 B T59 S 31 479 21 140 C XXTRAL&4,XX1EOF CHECK FOR END OF FILE. 7 1286 C 404 350 31 480 21 150 XXEORX BE 0 IF YES, EXIT TO USER ROUTINE. 5 1293 B 000 S 31 481 21 160 MN XXDRNO,*&4 ELSE MOVE DRIVE # TO HALT CODING. 7 1298 D 0?0 T08 31 482 21 170 NOP 5020 SET HALT CODING. 4 1305 N '2' 31 483 21 180 H HALT. 1 1309 . 31 484 21 190 B *-8 NO RESTART. 4 1310 B T05 32 485 21 200 XXWRTL B XXWRTM GO WRITE TAPE MARK. 4 1314 B U29 32 486 22 010 CS 479 CLEAR XXTRAL. 4 1318 / 479 32 487 22 020 MCW XXOTCT,XXTRAL&9 MOVE OUTPUT BLOCK COUNT TO TRAILR 7 1322 M 0A3 409 32 488 22 030 XXLCA LCA XX1EOF LOAD XX1EOR OR XX1EOF TO TRAILER. 4 1329 L 350 32 489 22 040 SBR XXLCA&3,XX1EOF RESET LOAD INSTRUCTION. 7 1333 H T32 350 32 490 22 050 MCW XXTRAL&79,XXOTCT BLANK OLD BLOCK COUNT. 7 1340 M 479 0A3 32 491 22 060 B XXHDIO GO WRITE TRAILER. 4 1347 B /61 33 492 22 070 B XXWRTM GO WRITE TAPE MARK. 4 1351 B U29 33 493 22 080 XXCLZX B 0 EXIT TO USERS PROGRAM OR XXCHNG. 4 1355 B 000 33 494 22 090 * ZTAPB 495 22 100 ** END OF REEL ROUTINE FOR MULTI-REEL FILES ZTAPB 496 22 110 * ZTAPB 497 22 120 XXEORY MN XXDRNO,*&4 SET DRIVE NUMBER IN REWIND. 7 1359 D 0?0 T69 33 498 22 130 RWU 0 REWIND AND UNLOAD TAPE. 5 1366 U %U0 U 33 499 22 140 SW XXDRNO&1 SET NOT-OPENED FLAG. 4 1371 , 0?1 33 500 22 150 MN XXDRNO,*&4 MOVE DRIVE NUMBER TO HALT CODING. 7 1375 D 0?0 T85 33 501 22 160 NOP 7880 SET HALT CODING. 4 1382 N H8' 34 502 22 170 H HALT. OPERATOR HANGS NEW TAPE. 1 1386 . 34 503 22 180 SBR *&8,0&X3 SET FILE ADDRESS IN NOP. 7 1387 H U01 0?0 34 504 22 190 B XXOPEN GO OPEN NEXT REEL. 4 1394 B 790 34 505 22 200 NOP 0 DELIVER FILE ADDRESS. 4 1398 N 000 34 506 23 010 BCE XXXXXX,XXIODC,W CHECK IF WRITE. EXIT IF YES. 8 1402 B U25 0?4 W 34 507 23 020 SBR *&8,0&X3 SET FILE ADDRESS IN NOP. 7 1410 H U24 0?0 34 508 23 030 B XXTAPE GO READ FIRST BLOCK. 4 1417 B 492 35 509 23 040 NOP 0 DELIVER FILE ADDRESS. 4 1421 N 000 35 510 23 050 XXXXXX B 0 EXIT TO USERS PROGRAM. 4 1425 B 000 35 511 23 060 * ZTAPB 512 23 070 ** WRITE TAPE MARK WITH ERROR CHECK ROUTINE ZTAPB 513 23 080 * ZTAPB 514 23 090 XXWRTM SBR XXTMEX&3 STORE LINK IN EXIT. 4 1429 H U53 35 515 23 100 MN XXDRNO,*&4 SET DRIVE NUMBER IN WTM. 7 1433 D 0?0 U43 35 ZZTAPE CLOSE ROUTINE. ZTAPB PAGE 11 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 516 23 110 XXWTM WTM 0 WRITE TAPE MARK. 5 1440 U %U0 M 35 517 23 120 BER XXTMER GO SKIP AND TRY AGAIN ON ERROR. 5 1445 B U54 L 35 518 23 130 XXTMEX B 0 EXIT. 4 1450 B 000 36 519 23 140 XXTMER NOP 7999 SET HALT CODING. 4 1454 N I9Z 36 520 23 150 H HALT. 1 1458 . 36 521 23 160 MN XXDRNO,XXERAC&3 SET DRIVE NUMBER IN SKIP AND ERAC 7 1459 D 0?0 U81 36 522 23 170 MN XXDRNO,XXSLIP&3 SET DRIVE NUMBER IN BACKSPACE. 7 1466 D 0?0 U76 36 523 23 180 XXSLIP BSP 0 BACKSPACE TAPE. 5 1473 U %U0 B 36 524 23 190 XXERAC SKP 0 SET SKIP AND ERACE FLIP - FLOP. 5 1478 U %U0 E 36 525 23 200 B XXWTM GO TRY AGAIN. 4 1483 B U40 37 526 24 010 XXI9I DCW @I9I@ ADDRESS CONSTANT OF MINUS 1. 3 1489 37 527 24 020 END XXTAPE / 492 080 ZZTAPE CLOSE ROUTINE. ZTAPB PAGE 12 SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS XX1 353 XX1EOF 350 XX1EOR 345 XX1HDR 340 XX366 356 XX635 359 XXADD1 993 XXAGAD 1120 XXCHIO 881 XXCHNG 363 XXCKDT 1109 XXCKER 593 XXCKLG 629 XXCLER 753 XXCLOZ 1217 XXCLR 1252 XXCLZX 1355 XXDATE 485 XXDRNO 0+X3 XXDTCX 1157 XXEOFX 7+X3 XXEORX 1293 XXEORY 1359 XXERAC 1478 XXERR 676 XXERRC 362 XXFADD 3+X3 XXHDEX 1187 XXHDIO 1161 XXHDRD 1191 XXHDRW 390 XXHDRX 1213 XXHEAD 386 XXHLTR 735 XXHLTW 744 XXI9I 1489 XXIN 929 XXIND3 99 XXINGM 36+X3 XXINLB 33+X3 XXINPL 28+X3 XXINRS 17+X3 XXIODC 4+X3 XXIORA 3+X3 XXISBD 977 XXKEY 8+X3 XXLCA 1329 XXLENG 672 XXNOHD 913 XXNOTO 765 XXOPEN 790 XXOPEX 1000 XXOPNX 1004 XXOTCT 13+X3 XXOTEX 1090 XXOTRS 22+X3 XXOUT 1008 XXOUTN 33+X3 XXOUTR 38+X3 XXPER1 39+X3 XXPER2 42+X3 XXPOST 1221 XXR 360 XXRDTL 1232 XXRDWR 526 XXREST 522 XXROPN 813 XXSAVE 832 XXSLIP 1473 XXSVDT 490 XXTAPE 492 XXTHRU 625 XXTMCK 559 XXTMER 1454 XXTMEX 1450 XXTRAL 400 XXW 394 XXWRHD 1061 XXWRTL 1314 XXWRTM 1429 XXWTM 1440 XXXXXX 1425