|
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: 6656 (0x1a00) Types: TextFile Notes: RCSL-43-GL-0619, RCSL-43-GL-10723, RCSL-43-GL-10724, RCSL-43-GL-10725, RCSL-43-GL-1519, RCSL-43-GL-4403, RCSL-43-GL-7836 Names: »SRPRI«
└─⟦a59f0a452⟧ Bits:30000472 DOMUS disk image └─⟦this⟧ »/SRPRI«
! RCSL:43-GL10724 AUTHOR: PBP EDITED: 80.10.23 PROGRAM RC36-01314.00 RECEIVE FUNCTION ON SP. RPRI. KEYWORDS: MUSIL DEVICEHANDLER,RIGA-NET,SP,LISTING ABSTRACT: DEVICEPROGRAM, OUTPUT ON A SERIAL PRINTER WITH IBM CCW AND RECORDS OF MAX. 132 CHARACTERS. ASCII SOURCE: RCSL: 43-GL10723 REL/BIN: RCSL: 43-GL10725 ! «ff» ! RC36-01314.00 PAGE 01 ! ! PROGRAM: RC36-01314.00 TITLE: RECEIVE FUNCTION ON SERIAL PRINTER. ABSTRACT: DEVICEPROGRAM. OUTPUT ON A SERIAL PRINTER WITH IBM CCW AND RECORDS OF MAX. 132 CHARACTERS SIZE: XXXX BYTES. RUNTIME PARAMETERS: THE PARAMETERS ARE GIVEN TO THIS MODULE VIA THE MAIN MODULE. :SF. STARTS THE RECIEVE MODULE. (HAS NO PARAMETERS) :FF. FINIS THE RECIEVE MODULE. (HAS NO PARAMETERS) :PS. PROCESSING STATE. TYPES THE NUMBER OF BLOCKS ON MAGTAPE (HAS NO PARAMETERS) :ER. ERROR REPLY. THIS COMMAND MUST BE USED AS A REPLY TO A DEVICE ERROR MESSAGE. PARAMETERS DESCRIPTION R REPEAT THE FAULTY OPERATION. A ACCEPT THE ERRONEUS DATA. OUTPUT MESSAGES: COM ERROR COMMAND ERROR SPECIAL REQUIREMENTS: CODEPROCEDURE ARESERVE RCSL: 43-GL4403. CODEPROCEDURE DELAY RCSL: 43-GL0619. CODEPROCEDURE OUTSTATUS RCSL: 43-GL7836. CODEPROCEDURE CHANGETABLE RCSL: 43-GL1519. CONVERSION TABLE IBMLP ! «ff» ! RC36-01314.00 PAGE 02 ! CONST IDENT= '80.10.28 VERS. 1.00 RIGA RECEIVE PRINT ', MAINKIND= 1, MAINMASK= 8'000022, SPKIND= 2, SPSHARES= 3, SPSHARESIZE= 133, SPMASK= 8'141366, MAINMODE= 1, SPMODE= 7, TRUE= 1, FALSE= 0, C9= 201, ! HEX C9 ! EM= '<13><0>', R= '<82>', B11= 8'000020, HARDBITS= 8'101356, IBMLP= 'IBMLP<0>', START= ':SF', FINIS= ':FF', ERROR= ':ER', GETPR= ':PS', «ff» ! RC36-01314.00 PAGE 03 ! ERRORTXT= ' <0> ****<0>', BLOCKCOUNT= ' BLOCKS=NNNNN<13>', ENDFUNC= ' END FUNCTION<13>', COMERR= ' COM ERROR<13>', SPERRTXTS= ' DISCONNECTED<0> OFF-LINE<0> <0> <0> <0> <0> ILLEGAL<0> <0> PAPER FAULT<0> NOT READY<0> PARITY ERROR<0> END OF PAPER<0> POSITION ERROR<0> DRIVER MISSING<0> TIMEOUT<0> <0>', ! SERIAL PRINTER RC3640 HAS ONLY GOT AN 8-CHANNEL FORMAT ! ! TAPE. SKIP TO CHANNELS 9-12 ARE TRANSLATED TO SP1A. ! CCWTAB= # 201 9 203 9 209 9 211 9 217 9 219 9 225 9 227 9 0 0 ! STOP ! 0 9 ! DEFAULT ! #; «ff» ! RC36-01314.00 PAGE 04 ! VAR AREA: RECORD CONNECT: INTEGER; STREAMNO: INTEGER; SENDER: INTEGER END; COMMAND: STRING(80); COML: INTEGER; RECLENGTH: INTEGER; HELPST: STRING(6); SPERRORCODE: INTEGER; TEXTLINE: STRING(80); BLOCK: INTEGER; STATUS: INTEGER; WORK: INTEGER; REST: INTEGER; MAIN: FILE 'XXX', MAINKIND, 2, 420, VB; GIVEUP MAINERROR, MAINMASK OF RECORD CCW: STRING(1) FROM 1 END; SP: FILE 'SP', SPKIND, SPSHARES, SPSHARESIZE, U; GIVEUP SPERROR, SPMASK OF RECORD CCW: STRING(1); DATA: STRING(1) END; «ff» ! RC36-01314.00 PAGE 05 ! PROCEDURE ARESERVE (VAR SENDER: INTEGER; VAR ZNAME: STRING(6); VAR AREA: INTEGER); CODEBODY P0138; PROCEDURE DELAY (CONST TIME: INTEGER); CODEBODY; PROCEDURE OUTSTATUS (CONST BITS: INTEGER; CONST TEXTARRAY: STRING(1); VAR TEXTLINE: STRING(1); VAR INDEX: INTEGER); CODEBODY P0209; PROCEDURE CHANGETABLE (FILE F; CONST IDENT: STRING(6)); CODEBODY; «ff» ! RC36-01314.00 PAGE 06 ! PROCEDURE PROCESSSTATE; BEGIN BINDEC(BLOCK,HELPST); MOVE(HELPST,0,BLOCKCOUNT,11,5); OPMESS(BLOCKCOUNT); END; PROCEDURE OPERATOR; BEGIN OPWAIT(COML); IF COMMAND=START THEN GOTO 50; IF COMMAND=FINIS THEN GOTO 220; IF COMMAND=GETPR THEN PROCESSSTATE ELSE IF COMMAND=ERROR THEN BEGIN MOVE(COMMAND,COML-2,HELPST,0,1); SPERRORCODE:=0; END ELSE OPMESS(COMERR); 50: OPIN(COMMAND); END; PROCEDURE OUTERROR; BEGIN IF STATUS AND HARDBITS=0 THEN STATUS:=8'100000 ELSE STATUS:=8'040000; COML:=0; OUTSTATUS(STATUS,ERRORTXT,TEXTLINE,COML); END; PROCEDURE MAINERROR; BEGIN IF MAIN.Z0 AND B11 <> 0 THEN GOTO 210; IF MAIN.Z0 AND 2<>0 THEN BEGIN REST:= REST + MAIN.ZREM; IF OPTEST<>0 THEN OPERATOR; WAITZONE(SP); REPEATSHARE(MAIN); END; END; PROCEDURE SPERROR; BEGIN IF SPERRORCODE=0 THEN BEGIN SPERRORCODE:=SP.Z0; STATUS:=SP.Z0; OUTERROR; OUTSTATUS(8'100000,SP.ZNAME,TEXTLINE,COML); OUTSTATUS(SP.Z0,SPERRTXTS,TEXTLINE,COML); MOVE(EM,0,TEXTLINE,COML,2); OPMESS(TEXTLINE); END; IF SPERRORCODE AND HARDBITS=0 THEN BEGIN DELAY(10); IF OPTEST <>0 THEN OPERATOR; REPEATSHARE(SP); END; REPEAT OPERATOR UNTIL COMMAND=ERROR; IF HELPST=R THEN REPEATSHARE(SP); END; «ff» ! RC36-01314.00 PAGE 07 ! BEGIN 100: AREA.SENDER:=0; ARESERVE(AREA.SENDER,MAIN.ZNAME,AREA.CONNECT); INSERT(0,COMMAND,0); INSERT(0,COMMAND,1); MOVE(COMMAND,0,COMMAND,2,78); WAITZONE(SP); SPERRORCODE:=0; BLOCK:=0; OPIN(COMMAND); 110: REPEAT OPERATOR UNTIL COMMAND=START; BLOCK:=0; SPERRORCODE:=0; CHANGETABLE(SP,IBMLP); OPEN(SP,SPMODE); SETPOSITION(SP,0,0); ! MARGIN = 0 ! OPEN(MAIN,AREA.STREAMNO+MAINMODE); 200: REPEAT BEGIN REST:= 0; GETREC(MAIN,RECLENGTH); SPERRORCODE:=0; MAIN.ZFIRST:= MAIN.ZFIRST-REST; RECLENGTH:= RECLENGTH+REST; PUTREC(SP,RECLENGTH); WORK:= BYTE MAIN^; IF WORK>= C9 THEN BEGIN TRANSLATE(MAIN^.CCW,SP^.CCW,CCWTAB); WORK:= 1; END ELSE WORK:= 0; MOVE(MAIN^,WORK,SP^,WORK,RECLENGTH-WORK); BLOCK:=BLOCK+1; END UNTIL OPTEST<>0; OPERATOR; GOTO 200; 210: CLOSE(MAIN,TRUE); CLOSE(SP,TRUE); PROCESSSTATE; OPMESS(ENDFUNC); GOTO 110; 220: IF SPERRORCODE<>0 THEN SP.ZMODE:=0; IF SP.ZMODE<>0 THEN CLOSE(SP,TRUE); IF MAIN.ZMODE<>0 THEN CLOSE(MAIN,TRUE); PROCESSSTATE; OPMESS(ENDFUNC); OPMESS(COMMAND); GOTO 100; END; «ff» «nul»