|
DataMuseum.dkPresents historical artifacts from the history of: RegneCentralen RC3600/RC7000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RegneCentralen RC3600/RC7000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 19456 (0x4c00) Types: TextFile Notes: RCSL-43-GL-1519, RCSL-43-GL-8808, RCSL-43-GL-8809, RCSL-43-GL-8810 Names: »S699«
└─⟦a59f0a452⟧ Bits:30000472 DOMUS disk image └─⟦this⟧ »/S699«
S699! RCSL: 43-GL8809 AUTHOR: PBP EDITED: 79.03.20 PROGRAM RC36-00699.01 HEXADECIMAL PRINT KEYWORDS: MUSIL,CONVERSION,MTA,LPT,LISTING ABSTRACT: THIS PROGRAM HANDLES UNDEFINED LENGTH FORMAT INPUT, WITH A MAXIMUM BLOCK SIZE OF 4096 BYTES. OUTPUT ON SERIAL PRINTER. THE PROGRAM USES CODEPROCEDURE CHANGETABLE. THE PROGRAM MAY BE OPERATED FROM EITHER OCP OR TTY. RCSL: 43-GL8808 ASCII SOURCE RCSL: 43-GL8810 REL.BIN/TTY ! «ff» ! RC36-00699 PAGE 01 TITLE: HEXADECIMAL PRINT ABSTRACT: THIS PROGRAM HANDLES UNDEFINED LENGTH FORMAT INPUT, WITH A MAXIMUM BLOCK SIZE OF 4096 BYTES. OUTPUT ON SERIAL PRINTER. THE PROGRAM USES CODEPROCEDURE CHANGETABLE. THE PROGRAM MAY BE OPERATED FROM EITHER OCP OR TTY. SIZE: 9606 BYTES. INCLUDING ONE 4096 BYTES INPUT BUFFER AND EIGHT 134 BYTES OUTPUT BUFFER. DATE: NOVEMBER 1ST 1977. RUNTIME PARAMETERS: BLOCK NO : 00001 NEXT BLOCK TO BE READ FROM CURRENT FILE. FILE NO : 00001 THE FILE FROM WHICH THE BLOCK IS READ. REWIND : + INDICATES IF REWIND AT TAPEMARK. RECSIZE : 00080 LENGTH OF INPUT RECORD. PRINT LGT: 00120 LENGTH OF OUTPUT RECORD WITHOUT THE PROGRAM GENERATED STANDARD TEXTS OF 12 BYTES. 00001 <= PRINT LGT <= 120. NEWPAGE : 00000 INDICATES PAGE SHIFT AFTER EACH "NEWPAGE" PRINTED LINES. 00000 <= NEWPAGE <= 00099. NEWPAGE = 0 MEANS NO PAGE SHIFT. MARGIN : 00000 SPACES TO THE LEFT OF THE PRINT LINE. OTHER OUTPUT MESSAGES: CONTSTATE: +/- STATE OF CONTINUE SWITCH (TTY ONLY). PROG NO : 699 PROGRAM EXECUTION IS STOPPED. RUNNING PROGRAM EXECUTION IS STARTED. SUSPENDED DRIVERS RELEASED, PROGRAM EXECUTION IS STOPPED. MOUNT DATA TAPE MT-UNIT IS NOT ON-LINE. MT ERROR NNNNN CONSULT THE RC3600 OPERATORS MANUAL. LP ERROR NNNNN CONSULT THE RC3600 OPERATORS MANUAL. END JOB PROGRAM EXECUTION IS TERMINATED. INPUT MESSAGES: STOP STOPS EXECUTION WRITING PROG NO : 699. SUSPEND STOPS EXECUTION RELEASING DRIVERS (TTY ONLY). INT NEXT PARAMETER IS DISPLAYED (ESCAPE BUTTON ON TTY HAS SAME EFFECT). STATE ALL PARAMETERS ARE DISPLAYED (TTY ONLY). "VALUE" CURRENTLY DISPLAYED PARAMETER IS CHANGED TO "VALUE". "TEXT"="VALUE" THE PARAMETER IDENTIFIED BY "TEXT" IS CHANGED TO "VALUE". CONT STATE OF CONTINUE SWITCH IS INVERTED. START PROGRAM EXECUTION IS STARTED. NOTE: AFTER MT ERROR, START MEANS ACCEPTING THE ERRONEOUS INPUT, AFTER LP ERROR, START MEANS REPEATING THE PRINT OPERATION. SPECIAL REQUIREMENTS: CODEPROCEDURE CHANGETABLE RCSL: 43-GL1519 ! «ff» ! RC36-00699 PAGE 02 ! CONST NOQ= 8, OPTXTS= '<14><6> <10>PROG NO : 699<0> <10>BLOCK NO : <0> <10>FILE NO : <0> <10>REWIND : <0> <10>RECSIZE : <0> <10>PRINT LGT: <0> <10>NEWPAGE : <0> <10>MARGIN : <0>', START= 'START', STOP= 'STOP', SUSPEND= 'SUSPEND', CONT= 'CONT', INT= 'INT', STATE= 'STATE', TABNAME= 'IBMLP', MINUS= '-', PLUS= '+', FIVE= '<5><0>', FIFTEEN= '<15><0>', NL= '<10>', NEXTPARAM= '<27>', SK1B= '<143>', SP1B= '<15>', SP2B= '<23>', ENDLINE= '<13><0>', RETURN= '<13>', RUNTXT= '<16><4><10>RUNNING<13><0>', MTTXT= '<7><10>MT ERROR ', LPTXT= '<7><10>LP ERROR ', EOJTXT= '<14><7><10>END JOB<13><0>', SUSTXT= '<7><10>SUSPENDED<13><0>', MTMOUNTTAPE= '<14><7><10>MOUNT DATA TAPE<13><0>', CONTSTATE= '<10>CONTSTATE: <0>', «ff» ! RC36-00699 PAGE 03 ! HEADING= '<217><195><243><246><240><240><64><64> <200><197><231><193><196><197> <195><201><212><193><211><64><215><217><201><213> <227><64><64><64><64><64>', PAGETXT= '<215><193><199><197>', BLOCKTXT= '<194><211><214><195><210><226><201><233><197><64><64> <64><64><64><64><64><64><64><64><64><64><64><64> <194><211><214><195><210><213><228><212><194><197><217> <64><64><64><64><64><64><64><64><64><64><64><64><64><64> <198><201><211><197><213><228><212><194><197><217> <64><64><64><64><64><64>', RECTXT= '<217><197><195><211><197><213><199><227><200>', POSTXT= '<64><64><64><64><64><64><64><64><64><64><64><64> <241><75><75><75><92><75><75><75><241><240> <075><75><75><75><92><75><75><75><242><240> <075><75><75><75><92><75><75><75><243><240> <075><75><75><75><92><75><75><75><244><240> <075><75><75><75><92><75><75><75><245><240> <075><75><75><75><92><75><75><75><246><240> <075><75><75><75><92><75><75><75><247><240> <075><75><75><75><92><75><75><75><248><240> <075><75><75><75><92><75><75><75><249><240> <075><75><75><75><92><75><75><241><240><240> <075><75><75><75><92><75><75><241><241><240> <075><75><75><75><92><75><75><241><242><240>', ZONETXT= '<64><64><64><64><64><64><64><233><214><213><197><64>', NUMRTXT= '<64><64><64><64><64><64><64><213><228><212><217><64>', CHARTXT= '<64><64><64><64><64><64><64><195><200><193><217><64>', «ff» ! RC36-00699 PAGE 04 ! ZONETAB= ! 0 1 2 3 4 5 6 7 8 9 ! # ! 0 ! 240 240 240 240 240 240 240 240 240 240 ! 10 ! 240 240 240 240 240 240 241 241 241 241 ! 20 ! 241 241 241 241 241 241 241 241 241 241 ! 30 ! 241 241 242 242 242 242 242 242 242 242 ! 40 ! 242 242 242 242 242 242 242 242 243 243 ! 50 ! 243 243 243 243 243 243 243 243 243 243 ! 60 ! 243 243 243 243 244 244 244 244 244 244 ! 70 ! 244 244 244 244 244 244 244 244 244 244 ! 80 ! 245 245 245 245 245 245 245 245 245 245 ! 90 ! 245 245 245 245 245 245 246 246 246 246 ! 100 ! 246 246 246 246 246 246 246 246 246 246 ! 110 ! 246 246 247 247 247 247 247 247 247 247 ! 120 ! 247 247 247 247 247 247 247 247 248 248 ! 130 ! 248 248 248 248 248 248 248 248 248 248 ! 140 ! 248 248 248 248 249 249 249 249 249 249 ! 150 ! 249 249 249 249 249 249 249 249 249 249 ! 160 ! 193 193 193 193 193 193 193 193 193 193 ! 170 ! 193 193 193 193 193 193 194 194 194 194 ! 180 ! 194 194 194 194 194 194 194 194 194 194 ! 190 ! 194 194 195 195 195 195 195 195 195 195 ! 200 ! 195 195 195 195 195 195 195 195 196 196 ! 210 ! 196 196 196 196 196 196 196 196 196 196 ! 220 ! 196 196 196 196 197 197 197 197 197 197 ! 230 ! 197 197 197 197 197 197 197 197 197 197 ! 240 ! 198 198 198 198 198 198 198 198 198 198 ! 250 ! 198 198 198 198 198 198 #, NUMRTAB= ! 0 1 2 3 4 5 6 7 8 9 ! # ! 0 ! 240 241 242 243 244 245 246 247 248 249 ! 10 ! 193 194 195 196 197 198 240 241 242 243 ! 20 ! 244 245 246 247 248 249 193 194 195 196 ! 30 ! 197 198 240 241 242 243 244 245 246 247 ! 40 ! 248 249 193 194 195 196 197 198 240 241 ! 50 ! 242 243 244 245 246 247 248 249 193 194 ! 60 ! 195 196 197 198 240 241 242 243 244 245 ! 70 ! 246 247 248 249 193 194 195 196 197 198 ! 80 ! 240 241 242 243 244 245 246 247 248 249 ! 90 ! 193 194 195 196 197 198 240 241 242 243 ! 100 ! 244 245 246 247 248 249 193 194 195 196 ! 110 ! 197 198 240 241 242 243 244 245 246 247 ! 120 ! 248 249 193 194 195 196 197 198 240 241 ! 130 ! 242 243 244 245 246 247 248 249 193 194 ! 140 ! 195 196 197 198 240 241 242 243 244 245 ! 150 ! 246 247 248 249 193 194 195 196 197 198 ! 160 ! 240 241 242 243 244 245 246 247 248 249 ! 170 ! 193 194 195 196 197 198 240 241 242 243 ! 180 ! 244 245 246 247 248 249 193 194 195 196 ! 190 ! 197 198 240 241 242 243 244 245 246 247 ! 200 ! 248 249 193 194 195 196 197 198 240 241 ! 210 ! 242 243 244 245 246 247 248 249 193 194 ! 220 ! 195 196 197 198 240 241 242 243 244 245 ! 230 ! 246 247 248 249 193 194 195 196 197 198 ! 240 ! 240 241 242 243 244 245 246 247 248 249 ! 250 ! 193 194 195 196 197 198 #; «ff» ! RC36-00699 PAGE 05 ! VAR OPDUMMY: STRING(2); ! RUNTIME PARAMETERS ! PROGNO: INTEGER; BLOCKNO: INTEGER; FILENO: INTEGER; REWIND: INTEGER; RECSIZE: INTEGER; PRINTLENGTH: INTEGER; NEWPAGE: INTEGER; MARGIN: INTEGER; OPTEXT: STRING(20); ! COMMUNICATION AREA ! OPSTRING: STRING(20); OPDEC: STRING(10); OPCONT: STRING(2); ! INTERNAL VARIABLES ! NEXTCONT: STRING(2); GLCONT: STRING(2); ERRORNO: INTEGER; MASK: INTEGER; TOM: INTEGER; SIGN: INTEGER; Q: INTEGER; PAR: INTEGER; LENGTH: INTEGER; LPLENGTH: INTEGER; P1: INTEGER; P2: INTEGER; P3: INTEGER; S1: STRING(2); S2: STRING(2); NEXTLP: INTEGER; STOPPED: INTEGER; BLOCKREM: INTEGER; BLOCKCHANGE: INTEGER; RECREM: INTEGER; RECCHANGE: INTEGER; LINES: INTEGER; PAGE: INTEGER; COUNT: INTEGER; PARAM: INTEGER; NOBY: INTEGER; REMAIN: INTEGER; DIGITS: STRING(6); «ff» ! RC36-00699 PAGE 06 ! IN: FILE ! INPUT FILE DESCRIPTION ! 'MT0', ! NAME OF INPUT DRIVER ! 14, ! KIND= REPEATABLE, ! ! POSITIONABLE, ! ! BLOCKED. ! 1, ! BUFFERS ! 4096, ! SHARESIZE ! U; ! UNDEFINED ! GIVEUP MTERROR, ! MT ERROR PROCEDURE ! 2'0110001111011011 ! GIVE UP MASK ! ! ALL REPEATABLE BITS OFF ! ! AND BIT 15 ON ! OF RECORD INPUT: STRING(4096) END; OUT: FILE ! OUTPUT FILE DESCRIPTION ! 'SP', ! NAME OF OUTPUT DRIVER ! 2, ! KIND= BLOCKED ! 8, ! BUFFERS ! 134, ! SHARESIZE ! U; ! UNDEFINED ! GIVEUP LPERROR, ! LP ERROR PROCEDURE ! 2'1100001011110010 ! GIVE UP MASK ! OF RECORD ! RECORD STRUCTURE ! CCW: STRING(1); DATA: STRING(132); LINE: STRING(120) FROM 14; BSIZE: STRING(5) FROM 12; BNUMBER: STRING(5) FROM 37; FNUMBER: STRING(5) FROM 61 END; «ff» ! RC36-00699 PAGE 07 ! PROCEDURE CHANGETABLE (FILE OUT; CONST TABNAME: STRING(6)); CODEBODY; PROCEDURE INITPOSITION; BEGIN IF IN.ZMODE=0 THEN OPEN(IN,1); IF BLOCKNO <> IN.ZBLOCK THEN GOTO 2000; IF FILENO <> IN.ZFILE THEN BEGIN 2000: OUT.ZMODE:= 0; WAITZONE(OUT); END; SETPOSITION(IN,FILENO,BLOCKNO); IF OUT.ZMODE=0 THEN BEGIN CHANGETABLE(OUT,TABNAME); OPEN(OUT,7); END; SETPOSITION(OUT,MARGIN,0); NEWPAGE:= NEWPAGE - (NEWPAGE / 100 * 100); IF PRINTLENGTH > 120 THEN PRINTLENGTH:= 120; END; PROCEDURE CONTINUE; BEGIN GLCONT:=OPCONT; OPCONT:=NEXTCONT; NEXTCONT:=GLCONT; OPMESS(OPCONT); END; PROCEDURE BINTOEBCDIC; BEGIN COUNT:= 0; REPEAT BEGIN COUNT:= COUNT + 1; REMAIN:= PARAM / 10 * 10; INSERT(PARAM-REMAIN+240, DIGITS, 5-COUNT); PARAM:= PARAM / 10; END UNTIL PARAM = 0; END; «ff» ! RC36-00699 PAGE 08 ! PROCEDURE DIRECTUPDATE; BEGIN P1:=0; ! INDEX IN INPUT STRING ! P2:=0; ! INDEX IN CONSTANT STRING ! P3:=1; ! PARAMETER NUMBER IN CONSTANT STRING ! REPEAT BEGIN MOVE(OPTEXT,P1,S1,0,1); MOVE(OPTXTS,P2,S2,0,1); WHILE BYTE S1 <> BYTE S2 DO BEGIN IF BYTE S2 = 0 THEN P3:=P3+1; P2:=P2+1; MOVE(OPTXTS,P2,S2,0,1); IF P3>NOQ THEN S2:=S1; END; IF P3<=NOQ THEN BEGIN WHILE BYTE S1 = BYTE S2 DO BEGIN P1:=P1+1; P2:=P2+1; MOVE(OPTEXT,P1,S1,0,1); MOVE(OPTXTS,P2,S2,0,1); IF BYTE S1 = 61 THEN BEGIN MOVE(OPTEXT,P1+1,OPTEXT,0,10); LENGTH:=LENGTH-P1-1; Q:=P3; MOVE(OPDUMMY,Q*2,OPDUMMY,0,2); PAR:= WORD OPDUMMY; P3:=NOQ; END; END; P2:=P2-P1+1; P1:=0; END; END UNTIL P3>=NOQ; END; «ff» ! RC36-00699 PAGE 09 ! PROCEDURE OPCOM; BEGIN 1000: Q:=0; 1010: REPEAT BEGIN IF OPTEXT=STATE THEN BEGIN Q:=1; OPMESS(CONTSTATE); IF OPCONT=FIVE THEN OPMESS(PLUS); IF OPCONT=FIFTEEN THEN OPMESS(MINUS); GOTO 1040; END; 1015: Q:=Q+1; 1020: OPSTATUS(1 SHIFT(16-Q),OPTXTS); IF Q<>1 THEN BEGIN MOVE(OPDUMMY,Q*2,OPDUMMY,0,2); PAR:= WORD OPDUMMY; IF PAR = -1 THEN OPMESS(PLUS); IF PAR = -2 THEN OPMESS(MINUS); IF PAR >= 0 THEN BEGIN BINDEC(PAR,OPDEC); OPMESS(OPDEC); END; END; IF OPTEXT=STATE THEN GOTO 1060; 1040: OPMESS(ENDLINE); OPWAIT(LENGTH); OPTEXT:=OPSTRING; OPIN(OPSTRING); IF OPTEXT=STATE THEN BEGIN Q:=0; GOTO 1015; END; IF OPTEXT=SUSPEND THEN GOTO 10; IF LENGTH > 6 THEN DIRECTUPDATE; IF LENGTH > 6 THEN GOTO 1020; IF OPTEXT = START THEN GOTO 1070; IF OPTEXT = STOP THEN GOTO 1000; IF OPTEXT = CONT THEN BEGIN CONTINUE; GOTO 1040; END; IF OPTEXT = INT THEN GOTO 1060; IF OPTEXT = NEXTPARAM THEN GOTO 1060; IF OPTEXT = NL THEN GOTO 1020; IF OPTEXT = ENDLINE THEN GOTO 1020; IF OPTEXT = RETURN THEN GOTO 1020; SIGN:=0; IF OPTEXT = MINUS THEN SIGN:=-1; IF OPTEXT = PLUS THEN SIGN:=+1; IF SIGN <> 0 THEN INSERT(48,OPTEXT,0); DECBIN(OPTEXT,TOM); IF PAR < 0 THEN BEGIN IF SIGN=0 THEN GOTO 1020; PAR:=-2; IF SIGN=1 THEN PAR:=-1; GOTO 1050; END; IF SIGN=0 THEN BEGIN SIGN:=1; PAR:=0; END; PAR:=PAR+TOM*SIGN; IF PAR<0 THEN GOTO 1020; 1050: INSERT(PAR SHIFT(-8),OPDUMMY,0); INSERT(PAR, OPDUMMY,1); MOVE(OPDUMMY,0,OPDUMMY,Q*2,2); IF OPTEST <> 0 THEN GOTO 1040; GOTO 1020; 1060: IF OPTEXT=STATE THEN IF Q<NOQ THEN GOTO 1015; END UNTIL Q>=NOQ; GOTO 1000; 1070: OPMESS(RUNTXT); END; «ff» ! RC36-00699 PAGE 10 ! PROCEDURE OPSTOP; BEGIN OPWAIT(LENGTH); OPTEXT:=OPSTRING; OPIN(OPSTRING); STOPPED:= 0; IF OPTEXT=CONT THEN CONTINUE; IF OPTEXT=STOP THEN STOPPED:= 1; IF OPTEXT=SUSPEND THEN BEGIN STOPPED:= 1; GOTO 10; END; IF OPTEXT=START THEN STOPPED:= 2; END; PROCEDURE SHOWERROR; BEGIN ERRORNO:=20; WHILE MASK>0 DO BEGIN MASK:=MASK SHIFT 1; ERRORNO:=ERRORNO+1 END; BINDEC(ERRORNO,OPTEXT); OPMESS(OPTEXT); OPMESS(ENDLINE); END; «ff» ! RC36-00699 PAGE 11 ! PROCEDURE MTERROR; BEGIN IF IN.Z0 AND 256 <> 0 THEN !EOF! GOTO 9; IF IN.Z0 AND 8'041000 = 0 THEN BLOCKNO:= IN.ZBLOCK; IF IN.Z0 SHIFT 1 < 0 THEN OPMESS(MTMOUNTTAPE); IF IN.Z0 SHIFT 1 >= 0 THEN BEGIN IF OPTEST <> 0 THEN OPSTOP; OPMESS(MTTXT); MASK:=IN.Z0; SHOWERROR; END; REPEAT OPSTOP UNTIL STOPPED <> 0; IF STOPPED = 1 THEN GOTO 1; OPMESS(RUNTXT); END; PROCEDURE LPERROR; BEGIN NEXTLP:= OUT.Z0 AND 8'000020; OUT.Z0:= OUT.Z0 - NEXTLP; IF OUT.Z0 SHIFT 1 < 0 THEN OUT.Z0:= OUT.Z0 AND 8'041342; IF OUT.Z0 = 8'040000 THEN IF NEXTLP <> 0 THEN OUT.Z0:= NEXTLP; IF OUT.Z0 AND 8'001342 <> 0 THEN OUT.Z0:= OUT.Z0 AND 8'001342; IF OUT.Z0 <> 0 THEN BEGIN OPMESS(LPTXT); BLOCKNO:= IN.ZBLOCK; MASK:=OUT.Z0; SHOWERROR; NEXTLP:=0; REPEAT OPSTOP UNTIL STOPPED <> 0; IF STOPPED = 1 THEN GOTO 1; OPMESS(RUNTXT); IF OUT.Z0 AND 8'141342 <> 0 THEN REPEATSHARE(OUT); END; END; «ff» ! RC36-00699 PAGE 12 ! BEGIN !************************** * PROGRAM INITIALIZATION * **************************! BLOCKNO:= 1; FILENO:= 1; REWIND:= -1; MARGIN:= 0; RECSIZE:= 80; PRINTLENGTH:= 120; NEWPAGE:= 0; NEXTLP:= 0; OPCONT:= FIFTEEN; NEXTCONT:= FIVE; LINES:= 100; PAGE:= 0; OPIN(OPSTRING); 1: OPCOM; 2: INITPOSITION; !************* * MAIN LOOP * *************! 3: IF OPTEST <> 0 THEN BEGIN OPSTOP; IF STOPPED = 1 THEN BEGIN WAITZONE(OUT); BLOCKNO:= IN.ZBLOCK; GOTO 1; END; END; GETREC(IN, BLOCKREM); BLOCKCHANGE:= 1; 4: RECCHANGE:= 1; RECREM:= RECSIZE; IF BLOCKREM < RECSIZE THEN RECREM:= BLOCKREM; 5: IF NEWPAGE = 0 THEN GOTO 6; IF LINES >= NEWPAGE THEN BEGIN LPLENGTH:= PRINTLENGTH + 13; IF PRINTLENGTH < 60 THEN LPLENGTH:= 73; PUTREC(OUT, LPLENGTH); OUT^.CCW:= SK1B; LINES:= 1; OUT^.DATA:= HEADING; MOVE(OUT^, 28, OUT^, 30, 104); MOVE(PAGETXT, 0, OUT^, LPLENGTH-10, 4); PAGE:= PAGE + 1; PARAM:= PAGE; BINTOEBCDIC; MOVE(DIGITS, 5-COUNT, OUT^, LPLENGTH-5, COUNT); END; «ff» ! RC36-00699 PAGE 13 ! 6: IF BLOCKCHANGE = 1 THEN BEGIN PUTREC(OUT, 65); OUT^.CCW:= SP2B; LINES:= LINES + 2; OUT^.DATA:= BLOCKTXT; PARAM:= BLOCKREM; BINTOEBCDIC; MOVE(DIGITS, 5-COUNT, OUT^.BSIZE, 0, COUNT); PARAM:= IN.ZBLOCK - 1; BINTOEBCDIC; MOVE(DIGITS, 5-COUNT, OUT^.BNUMBER, 0, COUNT); PARAM:= IN.ZFILE; BINTOEBCDIC; MOVE(DIGITS, 5-COUNT, OUT^.FNUMBER, 0, COUNT); BLOCKCHANGE:= 0; END; NOBY:= PRINTLENGTH; IF RECREM < PRINTLENGTH THEN NOBY:= RECREM; LPLENGTH:= NOBY + 13; PUTREC(OUT, LPLENGTH); OUT^.CCW:= SP2B; LINES:= LINES + 2; MOVE(POSTXT, 0, OUT^.DATA, 0, NOBY+12); IF RECCHANGE = 1 THEN OUT^.DATA:= RECTXT; PUTREC(OUT, LPLENGTH); OUT^.CCW:= SP1B; LINES:= LINES + 1; OUT^.DATA:= ZONETXT; IF RECCHANGE = 1 THEN BEGIN PARAM:= RECREM; BINTOEBCDIC; MOVE(DIGITS, 5-COUNT, OUT^.DATA, 0, COUNT); RECCHANGE:= 0; END; CONVERT(IN^, OUT^.LINE, ZONETAB, NOBY); PUTREC(OUT, LPLENGTH); OUT^.CCW:= SP1B; LINES:= LINES + 1; OUT^.DATA:= NUMRTXT; CONVERT(IN^, OUT^.LINE, NUMRTAB, NOBY); PUTREC(OUT, LPLENGTH); OUT^.CCW:= SP1B; LINES:= LINES + 1; OUT^.DATA:= CHARTXT; MOVE(IN^, 0, OUT^.LINE, 0, NOBY); IN.ZFIRST:= IN.ZFIRST + NOBY; RECREM:= RECREM - NOBY; BLOCKREM:= BLOCKREM - NOBY; IF RECREM <> 0 THEN GOTO 5; IF BLOCKREM <> 0 THEN GOTO 4; GOTO 3; «ff» ! RC36-00699 PAGE 14 ! !*********** * END JOB * ***********! 9: OPMESS(EOJTXT); 10: CLOSE(OUT, 1); IF OPTEXT=SUSPEND THEN BEGIN CLOSE(IN,1); OPMESS(SUSTXT); GOTO 11; END; CLOSE(IN, REWIND + 2); BLOCKNO:= 1; FILENO:= FILENO + 1; IF REWIND = -1 THEN FILENO:= 1; PAGE:= 0; LINES:= 100; 11: REPEAT OPSTOP UNTIL STOPPED <> 0; IF STOPPED = 1 THEN GOTO 1; OPMESS(RUNTXT); GOTO 2; END; «ff» «nul»