DataMuseum.dk

Presents historical artifacts from the history of:

RegneCentralen RC3600/RC7000

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about RegneCentralen RC3600/RC7000

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦4f55524c5⟧ TextFile

    Length: 22528 (0x5800)
    Types: TextFile
    Notes: RCSL-43-GL-8228, RCSL-43-GL-8229, RCSL-43-GL-8230
    Names: »INCOD«

Derivation

└─⟦a59f0a452⟧ Bits:30000472 DOMUS disk image
    └─ ⟦this⟧ »/INCOD« 

TextFile


«ff»
MUSIL COMPILER 11
MAIN


0001 ! S1053                                         RCSL:   43-GL8229
0002 
0003                                                 AUTHOR:  PBP
0004 
0005                                                 EDITED:  78.12.05
0006 
0007 
0008 
0009 
0010 
0011 
0012 
0013 
0014 
0015 
0016 
0017 
0018 
0019 
0020 
0021 
0022 
0023 
0024 
0025 
0026 
0027 
0028 
0029 
0030                 PROGRAM RC36-01053.00
0031 
0032                 IBM 3740 DISKETTE PRINT IMAGE
0033 
0034 
0035 
0036 
0037 
0038 
0039 
0040 
0041 
0042 
0043 
0044 
0045 
0046 
0047 
0048 
0049 
0050 KEYWORDS:       MUSIL,CONVERSION,FD0,A3740,SP,LISTING
0051 
0052 ABSTRACT:       THIS PROGRAM HANDLES IBM 3740 FORMATTED DISKETTES.
0053                 EACH SECTOR IS PRINTED AS ONE LINE.
0054                 OUTPUT ON SERIAL PRINTER.
0055                 THE PROGRAM MUST BE OPERATED FROM  TTY.
0056 
0057 RCSL 43-GL8228: ASCII SOURCE TAPE       
0058 RCSL 43-GL8230: REL/BIN !       
0059 «ff»
0060 !                                               RC36-01053 PAGE 01
0061 
0062 
0063 TITLE:          IBM 3740 DISKETTE PRINT IMAGE
0064 
0065 ABSTRACT:       THIS PROGRAM HANDLES IBM 3740 FORMATTED DISKETTES.
0066                 EACH SECTOR IS PRINTED AS ONE LINE.
0067                 OUTPUT ON SERIAL PRINTER.
0068                 THE PROGRAM MUST BE OPERATED FROM TTY.
0069 
0070 SIZE:           04152 BYTES. INCLUDING TWO 128 BYTES INPUT BUFFERS AND     
0071                 THREE 133 BYTES OUTPUT BUFFERS.
0072       
0073 DATE:           78.12.05
0074 
0075 RUNTIME PARAMETERS:
0076 
0077     DATASET NAME :      NAME OF DATASET TO BE PRINTED.
0078                         IF THIS PARAMETER IS EMPTY ALL DATASETS ON
0079                         THE DISKETTE WILL BE LISTED.
0080 
0081     BLOCK NO     : 1    NEXT BLOCK TO BE READ FROM DISKETTE.
0082 
0083     LABELPRINT   : -    INDICATES IF DISKETTE LABELS SHOULD
0084                         BE PRINTED OR NOT.
0085 
0086     FD UNIT      :      UNIT NUMBER (0 - 1).
0087 
0088 
0089 OTHER OUTPUT MESSAGES:
0090 
0091     PROG NO  :   1053   PROGRAM EXECUTION IS STOPPED.
0092 
0093     RUNNING             PROGRAM EXECUTION IS STARTED.
0094 
0095     SUSPENDED           DRIVERS RELEASED, PROGRAM EXECUTION IS STOPPED.
0096 
0097     SP ERROR   NNNNN    CONSULT THE RC3600 OPERATOR MANUAL.
0098 
0099     FD ERROR   NNNNN    CONSULT THE RC3600 OPERATOR MANUAL.
0100 
0101     MOUNT DISKETTE      DISKETTE UNIT IS OFFLINE OR EMPTY.
0102 
0103     MOUNT NEXT DISKETTE THE DATASET IS CONTINUING ON NEXT DISKETTE.
0104 
0105     END JOB             PROGRAM EXECUTION IS TERMINATED.
0106 
0107 INPUT MESSAGES:
0108 
0109     STOP                STOPS EXECUTION WRITING PROG NO  :    1053.
0110 
0111     SUSPEND             STOPS EXECUTION RELEASING DRIVERS (TTY ONLY).
0112 
0113     <ESC>               NEXT PARAMETER IS DISPLAYED
0114 
0115     STATE               ALL PARAMETERS ARE DISPLAYED (TTY ONLY).
0116 
0117     "VALUE"             CURRENTLY DISPLAYED PAPAMETER IS CHANGED
0118                         TO "VALUE".
0119 
0120     "TEXT"="VALUE"      THE PARAMETER IDENTIFIED BY "TEXT" IS
0121                         CHANGED TO "VALUE".
0122 
0123     START               PROGRAM EXECUTION IS STARTED.
0124                         NOTE:  AFTER A DEVICE ERROR STOP HAS NO 
0125                         EFFECT.
0126 
0127 SPECIAL REQUIREMENTS:   NONE.                                   !
0128 «ff»
0129                                                 ! RC36-01053 PAGE 02 !
0130 
0131 CONST
0132 
0133 NOQ=            5,
0134 
0135 OPTXTS=
0136 '<10>PROG NO      : 1053<0>
0137 <10>DATASET NAME : <0>
0138 <10>BLOCK NO     : <0>
0139 <10>LABELPRINT   :  <0>
0140 <10>FDUNIT       : <0>',
0141 
0142 START=          'START',
0143 STOP=           'STOP',
0144 SUSPEND=        'SUSPEND',
0145 STATE=          'STATE',
0146 MINUS=          '-',
0147 PLUS=           '+',
0148 FIVE=           '<5><0>',
0149 FIFTEEN=        '<15><0>',
0150 NL=             '<10><0>',
0151 NEXTPARAM=      '<27>',
0152 ENDLINE=        '<13><0>',
0153 BELL=           '<7><7><7>',
0154 
0155 RUNTXT=         '<8><4><10>RUNNING<13><0>',
0156 SUSTXT=         '<7><10>SUSPENDED<13><10>',
0157 FDTXT=          '<7><10>FD ERROR   ',
0158 LPTXT=          '<7><10>SP ERROR   ',
0159 EOJTXT=         '<14><7><10>END JOB<13><0>',
0160 MOUNTDISK=      '<7><10>MOUNT DISKETTE<13><0>',
0161 FDEOF=          '<7><10>MOUNT NEXT DISKETTE<13><0>',
0162 WRONGUNIT=     '<7><10>FD UNIT CONFLICT<13><0>',
0163 INITINF= '<0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0>',
0164 
0165 
0166 READ=           8'122,
0167 ZERO=           8'60,
0168 
0169 D3740=          'A3740',
0170 FD0=            'FD0<0><0>',
0171 TRUE=           -1,
0172 FALSE=          -2,
0173 
0174 FF=             '<143>',
0175 SP1A=           '<9>',
0176 SP2A=           '<17>',
0177 
0178 ASCIISPS=       '                  ',
0179 «ff»
0180 
0181 ! SPECIAL TABLE POST & TELEGRAFVAESNET !
0182                                                 ! RC36-01053 PAGE 03 !
0183 LPTABLE=#
0184 
0185  32   32   32   32   32   32   32   32
0186  32   32   32   32   32   32   32   32
0187  32   32   32   32   32   32   32   32
0188  32   32   32   32   32   32   32   32
0189  32   32   32   32   32   32   32   32
0190  32   32   32   32   32   32   32   32
0191  32   32   32   32   32   32   32   32
0192  32   32   32   32   32   32   32   32
0193  32   32   32   32   32   32   32   32
0194  32   32   32   46   60   40   43   85
0195  38   32   32   32   32   32   32   32
0196  32   32   33   93   42   41   59   32
0197  45   47   32   32   32   32   32   32
0198  32   32   32   44   37   95   62   63
0199  32   32   32   32   32   32   32   32
0200  32   32   58   91   92   39   61   34
0201  32   65   66   67   68   69   70   71
0202  72   73   32   32   32   32   32   32
0203  32   74   75   76   77   78   79   80
0204  81   82   32   32   32   32   32   32
0205  32   32   83   84   85   86   87   88
0206  89   90   32   32   32   32   32   32
0207  32   32   32   32   32   32   32   32
0208  32   32   32   32   32   32   32   32
0209  32   65   66   67   68   69   70   71
0210  72   73   32   32   32   32   32   32
0211  32   74   75   76   77   78   79   80
0212  81   82   32   32   32   32   32   32
0213  32   32   83   84   85   86   87   88
0214  89   90   32   32   32   32   32   32
0215  48   49   50   51   52   53   54   55
0216  56   57   94   32   32   32   32   32
0217 
0218 #,
0219 «ff»
0220                                                 ! RC36-01053 PAGE 04 !
0221 
0222 
0223 ! ASCII TO EBCDIC CONVERSION TABLE : !
0224 
0225 AETAB= !       0   1   2   3   4   5   6   7!
0226 #
0227 !     0 !     64  64  64  64  64  64  64  64
0228 !    8 !      64  64  64  64  64  64  64  64
0229 !   16 !      64  64  64  64  64  64  64  64
0230 !   24 !      64  64  64  64  64  64  64  64
0231 !   32 !      64  90 127 123  91 108  80 125
0232 !   40 !      77  93  92  78 107  96  75  97
0233 !   48 !     240 241 242 243 244 245 246 247
0234 !   56 !     248 249 122  94  76 126 110 111
0235 !   64 !     124 193 194 195 196 197 198 199
0236 !   72 !     200 201 209 210 211 212 213 214
0237 !   80 !     215 216 217 226 227 228 229 230
0238 !   88 !     231 232 233 173 224 189 250 109
0239 !   96 !     121 129 130 131 132 133 134 135
0240 !  104 !     136 137 145 146 147 148 149 150
0241 !  112 !     151 152 153 162 163 164 165 166
0242 !  120 !     167 168 169 192 106 208 161   7
0243 #;
0244 «ff»
0245                                                 ! RC36-01053 PAGE 05 !
0246 
0247 VAR
0248 
0249 
0250 OPDUMMY:        STRING(2);      ! RUNTIME PARAMETERS !
0251 PROGNO:         INTEGER;
0252 TPAR1:          INTEGER;
0253 INBLOK:         INTEGER;
0254 LABELPRINT:     INTEGER;
0255 FDUNIT:         INTEGER;
0256 
0257 OPTEXT:         STRING(80);     ! COMMUNICATION AREA !
0258 OPSTRING:       STRING(80);
0259 OPDEC:          STRING(10);
0260 
0261 OPCONT:         STRING(2);      ! INTERNAL VARIABLES !
0262 NEXTCONT:       STRING(1);      ! USED BY STANDARD   !
0263 GLCONT:         STRING(1);      ! PROCEDURES.        !
0264 ERRORNO:        INTEGER;
0265 MASK:           INTEGER;
0266 TOM:            INTEGER;
0267 SIGN:           INTEGER;
0268 Q:              INTEGER;
0269 PAR:            INTEGER;
0270 LENGTH:         INTEGER;
0271 P1:             INTEGER;
0272 P2:             INTEGER;
0273 P3:             INTEGER;
0274 S1:             STRING(2);
0275 S2:             STRING(2);
0276 
0277 NEXTLP:         INTEGER;
0278 SAVEZCONV:      INTEGER;
0279 BLOCKNO:        INTEGER;
0280 STOPPED:        INTEGER;
0281 RECLENGTH:      INTEGER;
0282 SEQCHECK:       INTEGER;
0283 INDEX:          INTEGER;
0284 OFFLINE:        INTEGER;
0285 
0286 STR3740:        STRING(18);
0287 
0288 
0289 DATASETNAME:    STRING(9);
0290 «ff»
0291                                                 ! RC36-01053 PAGE 06 !
0292 
0293 IN:     FILE                    ! INPUT FILE DESCRIPTION !
0294         'A3740',                        ! NAME OF INPUT DRIVER !
0295         14,                     ! KIND= BLOCKED, !
0296                                 !       REPEATABLE, !
0297                                 !       POSITIONABLE, !
0298         2,                      ! BUFFERS !
0299         128,                    ! SHARESIZE !
0300         U;                      ! UNDEFINED !
0301         CONV STR3740;
0302         GIVEUP
0303         RDERROR,                ! FD ERROR PROCEDURE !
0304         2'1110001111111110      ! GIVE UP MASK !
0305 
0306         OF STRING(128);         ! RECORD STRUCTURE !
0307 
0308 
0309 OUT:    FILE                    ! OUTPUT FILE DESCRIPTION !
0310         'SP',                   ! NAME OF OUTPUT DRIVER !
0311         2,                      ! KIND= BLOCKED !
0312         3,                      ! BUFFERS !
0313         133,                    ! SHARESIZE !
0314         U;                      ! UNDEFINED !
0315 
0316         CONV LPTABLE;
0317 
0318         GIVEUP
0319         LPERROR,                ! LP ERROR PROCEDURE !
0320         2'1100001011110110      ! GIVE UP MASK !
0321 
0322         OF RECORD               ! RECORD STRUCTURE !
0323            CCW:         STRING(1);
0324            DATA:        STRING(132)
0325         END;
0326 
0327 «ff»
0328                                                 ! RC36-01053 PAGE 07 !
0329 
0330 
0331         PROCEDURE OPSTOP;
0332         BEGIN
0333             OPWAIT(LENGTH);
0334             OPTEXT:=OPSTRING;
0335             OPIN(OPSTRING);
0336             STOPPED:= 0;
0337             IF OPTEXT=STOP THEN STOPPED:= 1;
0338             IF OPTEXT=START THEN STOPPED:= 2;
0339             IF OPTEXT=SUSPEND THEN STOPPED:=3;
0340         END;
0341 
0342 
0343         PROCEDURE OPEN3740;
0344         BEGIN
0345                 ! TRANSFER VOL-ID + DATASETNAME + INFORMATION  !
0346                 ! ABOUT CHECK OF SEQUENCE-NUMBER ON            !
0347                 !  MULTI-VOLUME-DATASETS                       !
0348 
0349 
0350             STR3740:=ASCIISPS;
0351             INSERT(READ,STR3740,0);
0352             INSERT(FDUNIT+48,STR3740,1);
0353             MOVE(ASCIISPS,0,STR3740,3,6);
0354             MOVE(DATASETNAME,0,STR3740,9,8);
0355             CONVERT(STR3740,STR3740,AETAB,18);
0356             CONVERT(STR3740,STR3740,LPTABLE,18);
0357                 
0358             OPEN(IN,1);
0359         END;
0360 
0361 «ff»
0362                                                 ! RC 36-01053 PAGE 08 !
0363 
0364         PROCEDURE DIRECTUPDATE;
0365         BEGIN
0366             P1:=0;      ! INDEX IN INPUT STRING !
0367             P2:=0;      ! INDEX IN CONSTANT STRING !
0368             P3:=1;      ! PARAMETER NUMBER IN CONSTANT STRING !
0369             REPEAT BEGIN
0370                 MOVE(OPTEXT,P1,S1,0,1);
0371                 MOVE(OPTXTS,P2,S2,0,1);
0372                 WHILE BYTE S1 <> BYTE S2 DO
0373                 BEGIN
0374                     IF BYTE S2 = 0 THEN P3:=P3+1;
0375                     P2:=P2+1;
0376                     MOVE(OPTXTS,P2,S2,0,1);
0377                     IF P3>NOQ THEN S2:=S1;
0378                 END;
0379                 IF P3<=NOQ THEN
0380                 BEGIN
0381                     WHILE BYTE S1 = BYTE S2 DO
0382                     BEGIN
0383                         P1:=P1+1;
0384                         P2:=P2+1;
0385                         MOVE(OPTEXT,P1,S1,0,1);
0386                         MOVE(OPTXTS,P2,S2,0,1);
0387                         IF BYTE S1 = 61 THEN
0388                         BEGIN
0389                             MOVE(OPTEXT,P1+1,OPTEXT,0,20);
0390                             LENGTH:=LENGTH-P1-1;
0391                             Q:=P3;
0392                             MOVE(OPDUMMY,Q*2,OPDUMMY,0,2);
0393                             PAR:= WORD OPDUMMY;
0394                             P3:=NOQ;
0395                         END;
0396                     END;
0397                     P2:=P2-P1+1;
0398                     P1:=0;
0399                 END;
0400             END UNTIL P3>=NOQ;
0401         END;
0402 «ff»
0403                                                 ! RC36-001053 PAGE 09 !
0404         PROCEDURE OPCOM;
0405         BEGIN
0406 1000:       Q:=0;
0407 1010:       REPEAT BEGIN
0408                 IF OPTEXT=STATE THEN
0409                 BEGIN Q:=1;
0410                      GOTO 1040;
0411                 END;
0412 1015:           Q:=Q+1;
0413 1020:           OPSTATUS(1 SHIFT(16-Q),OPTXTS); IF Q<>1 THEN BEGIN
0414                 MOVE(OPDUMMY,Q*2,OPDUMMY,0,2);
0415                 PAR:= WORD OPDUMMY;
0416                 IF PAR = -1 THEN OPMESS(PLUS);
0417                 IF PAR = -2 THEN OPMESS(MINUS);
0418                 IF PAR = -3 THEN OPMESS(DATASETNAME);
0419                 IF PAR >= 0 THEN
0420                 BEGIN BINDEC(PAR,OPDEC); OPMESS(OPDEC); END; END;
0421                 IF OPTEXT=STATE THEN GOTO 1060;
0422 1040:           OPMESS(ENDLINE);
0423                 OPWAIT(LENGTH);
0424                 OPTEXT:=OPSTRING;
0425                 OPIN(OPSTRING);
0426                 IF OPTEXT=STATE THEN BEGIN Q:=0; GOTO 1015; END;
0427                 IF OPTEXT=SUSPEND THEN GOTO 12;
0428                 IF LENGTH > 6 THEN DIRECTUPDATE;
0429                 IF OPTEXT = START THEN GOTO 1070;
0430                 IF OPTEXT = STOP  THEN GOTO 1000;
0431                 IF OPTEXT = NEXTPARAM THEN GOTO 1060;
0432                 IF OPTEXT = NL THEN GOTO 1020;
0433                 IF OPTEXT = ENDLINE THEN GOTO 1020;
0434                 IF PAR = -3 THEN
0435                 BEGIN
0436                   IF LENGTH >9 THEN LENGTH:=9;
0437                   DATASETNAME:=INITINF;
0438                   MOVE(OPTEXT,0,DATASETNAME,0,LENGTH-1);
0439                   GOTO 1055;
0440                 END;
0441                 SIGN:=0;
0442                 IF OPTEXT = MINUS THEN SIGN:=-1;
0443                 IF OPTEXT = PLUS THEN SIGN:=+1;
0444                 IF SIGN <> 0 THEN INSERT(48,OPTEXT,0);
0445                 DECBIN(OPTEXT,TOM);
0446                 IF PAR < 0 THEN
0447                 BEGIN IF SIGN=0 THEN GOTO 1020; PAR:=-2;
0448                     IF SIGN=1 THEN PAR:=-1; GOTO 1050;
0449                 END;
0450                 IF SIGN=0 THEN
0451                 BEGIN SIGN:=1; PAR:=0; END;
0452                 PAR:=PAR+TOM*SIGN;
0453                 IF PAR<0 THEN GOTO 1020;
0454 1050:           INSERT(PAR SHIFT(-8),OPDUMMY,0);
0455                 INSERT(PAR, OPDUMMY,1);
0456                 MOVE(OPDUMMY,0,OPDUMMY,Q*2,2);
0457 1055:           IF OPTEST <> 0 THEN GOTO 1040;
0458                 GOTO 1020;
0459 1060:           IF OPTEXT=STATE THEN IF Q<NOQ THEN GOTO 1015;
0460             END UNTIL Q>=NOQ; GOTO 1000;
0461 1070:       OPMESS(RUNTXT);
0462         END;
0463 «ff»
0464 
0465                                                 ! RC36-01053 PAGE 10 !
0466 
0467         PROCEDURE SHOWERROR;
0468         BEGIN
0469             ERRORNO:=20;
0470             WHILE MASK>0 DO
0471             BEGIN
0472                 MASK:=MASK SHIFT 1;
0473                 ERRORNO:=ERRORNO+1
0474             END;
0475             BINDEC(ERRORNO,OPTEXT);
0476             OPMESS(OPTEXT); OPMESS(ENDLINE);
0477         END;
0478 
0479 
0480         PROCEDURE RDERROR;
0481         BEGIN
0482            IF IN.Z0 AND 8'4000 <> 0 THEN OPMESS(PLUS);
0483             IF IN.Z0 SHIFT 1 < 0 THEN
0484             BEGIN
0485                 OFFLINE:=OFFLINE-1;
0486                 IF OFFLINE > 0 THEN REPEATSHARE(IN);
0487                 OPMESS(MOUNTDISK);
0488                 OFFLINE:=5;
0489             END;
0490             IF IN.Z0 AND 8'400 <> 0 THEN GOTO 9;
0491             IF IN.Z0 AND 8'20 <> 0 THEN GOTO 10;
0492 
0493             IF IN.Z0 SHIFT 1 > 0 THEN
0494             BEGIN
0495                 OPMESS(FDTXT);
0496                 MASK:=IN.Z0;
0497                 SHOWERROR;
0498             END;
0499             REPEAT OPSTOP;
0500                    IF OPTEXT = STOP THEN GOTO 1;
0501                    IF OPTEXT = SUSPEND THEN GOTO 12
0502             UNTIL OPTEXT = START;
0503 100:        OPMESS(RUNTXT);
0504             REPEATSHARE(IN);
0505 
0506         END;
0507 «ff»
0508 
0509                                                 ! RC36-01053 PAGE 11 !
0510 
0511         PROCEDURE LPERROR;
0512         BEGIN
0513             NEXTLP:= OUT.Z0 AND 8'000020;
0514             OUT.Z0:= OUT.Z0 - NEXTLP;
0515             IF OUT.Z0 SHIFT 1 < 0 THEN OUT.Z0:= OUT.Z0 AND 8'041342;
0516             IF OUT.Z0 = 8'040000 THEN IF NEXTLP <> 0 THEN
0517             OUT.Z0:= NEXTLP;
0518             IF OUT.Z0 AND 8'001342 <> 0 THEN
0519             OUT.Z0:= OUT.Z0 AND 8'001342;
0520             IF OUT.Z0 <> 0 THEN
0521             BEGIN
0522                 OPMESS(LPTXT);
0523                 MASK:=OUT.Z0;
0524                 SHOWERROR;
0525                 NEXTLP:=0;
0526                 REPEAT OPSTOP UNTIL STOPPED > 1;
0527                 IF STOPPED = 3 THEN GOTO 12;
0528                 OPMESS(RUNTXT);
0529                 IF OUT.Z0 AND 8'141362 <> 0 THEN
0530                 REPEATSHARE(OUT);
0531             END;
0532         END;
0533 
0534         PROCEDURE INITPOSITION;
0535         BEGIN
0536             IF OUT.ZMODE = 0 THEN
0537             BEGIN
0538                 OPEN(OUT,7);
0539                 PUTREC(OUT,1);
0540                 OUT^.CCW:=FF;
0541             END;
0542              IF FDUNIT >=0 THEN IF FDUNIT <=1 THEN GOTO 200;
0543              OPMESS(WRONGUNIT);
0544              REPEAT OPSTOP UNTIL STOPPED <>0;
0545              IF STOPPED = 1 THEN GOTO 1;
0546              IF STOPPED = 3 THEN GOTO 12;
0547 
0548 
0549         200: END;
0550 
0551 
0552 «ff»
0553 
0554                                                 ! RC36-01053 PAGE 12 !
0555 
0556 
0557         BEGIN
0558 
0559         !INITIALIZATION !
0560 
0561         OPIN(OPSTRING);
0562         DATASETNAME:=INITINF;
0563         TPAR1:=-3;
0564         INBLOK:=1;
0565         BLOCKNO:=1;
0566         LABELPRINT:=FALSE;
0567         OFFLINE:=5;
0568         SAVEZCONV:=IN.ZCONV;
0569         FDUNIT:=0;
0570 
0571 
0572 1:      OPCOM;
0573 
0574 2:      INITPOSITION;
0575         ! MAIN LOOP !
0576         IF LABELPRINT = TRUE THEN
0577         BEGIN
0578           IF IN.ZMODE = 0 THEN
0579           BEGIN
0580             IN.ZNAME:=FD0;
0581             IN.ZCONV:=0;
0582             OPEN(IN,FDUNIT*256+17);
0583             SETPOSITION(IN,0,7);
0584 
0585 
0586             REPEAT
0587             BEGIN
0588               GETREC(IN,RECLENGTH);
0589               BLOCKNO:=IN.ZBLOCK;
0590               PUTREC(OUT,81);
0591               OUT^.CCW:=SP2A;
0592               MOVE(IN^,0,OUT^.DATA,0,80);
0593             END
0594             UNTIL BLOCKNO > 26;
0595 
0596   
0597           CLOSE(IN,1);
0598           CLOSE(OUT,0);
0599           END;
0600         END; ! LABELPRINT !
0601 
0602 
0603 «ff»
0604 
0605                                                 ! RC36-01053 PAGE 13 !
0606 
0607 
0608         ! DATA PRINT !
0609 
0610 3:      IN.ZNAME := D3740;
0611         IN.ZCONV:=SAVEZCONV;
0612         IF IN.ZMODE = 0 THEN OPEN3740;
0613 
0614         SETPOSITION(IN, 0, INBLOK);
0615         INITPOSITION;
0616 
0617 7:      REPEAT
0618         BEGIN
0619           IF IN.Z0 AND 8'4000 <> 0 THEN OPMESS(START):
0620           GETREC(IN,RECLENGTH);
   *** ERR: 000064
0621           INBLOK:=IN.ZBLOCK;
0622           PUTREC(OUT,RECLENGTH+1);
0623           OUT^.CCW:=SP1A;
0624           MOVE(IN^,0,OUT^.DATA,0,RECLENGTH);
0625         END
0626         UNTIL OPTEST <> 0;
0627 
0628         OPSTOP;
0629         IF STOPPED = 1 THEN GOTO 1;
0630         IF STOPPED = 3 THEN GOTO 12;
0631         GOTO 7;
0632 
0633         ! END OF FILE HANDELING !
0634 
0635 10:     CLOSE(IN,1);
0636         OPMESS(FDEOF);
0637         REPEAT OPSTOP UNTIL STOPPED <> 0;
0638         IF STOPPED = 1 THEN GOTO 1;
0639         IF STOPPED = 3 THEN GOTO 12;
0640         OPMESS(RUNTXT);
0641         INBLOK:=1;
0642         GOTO 3;
0643 
0644 
0645 9:      OPMESS(EOJTXT);
0646         GOTO 13;
0647 
0648 12:     OUT.ZMODE:=0;
0649         OPMESS(SUSTXT);
0650 
0651 13:     CLOSE(IN,1);
0652         CLOSE(OUT,1);
0653         BLOCKNO:=1;
0654         INBLOK:=1;
0655         OFFLINE:=5;
0656 
0657         REPEAT OPSTOP UNTIL STOPPED <> 0;
0658         IF STOPPED = 1 THEN GOTO 1;
0659         IF STOPPED = 3 THEN GOTO 12;
0660         OPMESS(RUNTXT);
0661         GOTO 2;
0662 
0663         END;

ERRORS: 00001
«ff»
«eof»