|
|
DataMuseum.dkPresents historical artifacts from the history of: Philips Data Systems |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Philips Data Systems Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 7998 (0x1f3e)
Notes: pts_type(SC)
Names: »SPOOL.SC«
└─⟦38a30a456⟧ Bits:30009662 Philips computer tape "600104"
└─⟦this⟧ »OD-KOM/SPOOL.SC«
└─⟦d2cdd233a⟧ Bits:30009674 Philips computer tape "600204"
└─⟦this⟧ »OD-KOM/SPOOL.SC«
IDENT SPOOL 830919 EV DDUM KMD08 PDIV ENTRY SAINIT EXT MASK EXT CRF INCLUDE EQUATE EJECT SAINIT TBT SKEDOK,SPOOL10 DELAY CBIN3 B SAINIT SPOOL10 * SET NO TIME OUT FOR FIRST READ MOVE SSBINW1,=W'-1' NO TIME OUT DSC1 SII,X'0B',SSBINW1 DSC1 SIO,X'0B',SSBINW1 MOVE SSBINW1,=W'134' READ SII,ICIBUF,SSBINW1 FIRST READ BNOK SPOOL10 * SET TIME OUT FOR FOLLOWING READS GETID TASKID XCOPY SSBINW9,CBIN0,CBIN2,TASKID,CBIN0 SUB SSBINW9,=C'S@' SSBINW9=TIME OUT VALUE MOVE SSBINW9,TIMOUT(SSBINW9) DSC1 SII,X'0B',SSBINW9 DSC1 SIO,X'0B',SSBINW9 B SPOOL30 SPOOL20 NOT FIRST READ MOVE SSBINW1,=W'134' READ SII,ICIBUF,SSBINW1 BNERR SPOOL30 XSTAT SII,SSBINW1 GET EXT. STATUSBYTE MOVE SSBINW2,CBIN7 TEST FOR BIT 9 = TIMEOUT CALL MASK,SSBINW1,SSBINW2 BNZ SPOOL20 BRANCH IF BIT CLEARED * TIMEOUT HAS ACCURRED CBE SSCURFIL,=C' ',SPOOL10 NO FILE ACTIVE SET AUTOCLOS B SP2120 GO AND CLOSE FILE SPOOL30 CBL SSBINW1,CBIN2,SPOOL20 INVALID LENGTH MOVE CALLING,ICIBUF TASKID XCOPY SSBINW1,CBIN0,CBIN2,ICIBUF,CBIN2 FUNCTION XCOPY SSBINW2,CBIN0,CBIN2,ICIBUF,CBIN4 LENGTH MOVE RETTASK,=C'S0' TBF SPASGERR,SP0000 ASSIGNERROR B SPOOLER1 EJECT SP0000 IB SSBINW1,SP9000,SP2000,SP3000 B SP9000 SP2000 * WE NOW HAVE A PRINTLINE WHICH HAS TO BE * WRITTEN TO THE DISK CBNE SSCURFIL,=C' ',SP2100 SPOOLFILE ACTIVATED? * NO CURRENT FILE YET * SEE IF TASKID IS IN INDEXRECORD MOVE SSBINW7,CUSEDLN MOVE SSBINW4,CBIN0 MOVE SSBINW5,CBIN0 MOVE SSBINW6,CBIN0 SP2020 XCOPY SSSTRG4,CBIN0,CBIN4,CUSED,SSBINW4 MOVE SSSTRG2,SSSTRG4 CBNE SSSTRG2,CALLING,SP2050 XCOPY SSBINW5,CBIN1,CBIN1,SSSTRG4,CBIN2 MOVE FILEID CBL SSBINW5,SSBINW6,SP2030 FIND HIGHEST FILEID MOVE SSBINW6,SSBINW5 AND SAVE IT SP2030 ADD SSBINW4,CBIN4 CBL SSBINW4,CUSEDLN,SP2020 * SP2050 SP2060 MOVE SSSTRG4,=X'00' FIND PLACE FOR NEW FILE MOVE SSBINW4,CBIN0 MOVE SSBINW7,CUSEDLN MATCH CUSED,SSBINW4,SSBINW7,SSSTRG4,CBIN0,CBIN4 XCOPY CUSED,SSBINW4,CBIN2,CALLING,CBIN0 TASKID ADD SSBCDCUR,=D'1' NEW CURRENT FILE MOVE SSBINW6,SSBCDCUR ADD SSBINW4,CBIN2 XCOPY CUSED,SSBINW4,CBIN1,SSBINW6,CBIN1 FILEID SET CSAVEIX EDIT SSCURFIL,FMCURFIL SPOOLXXX ADD SSBINW4,CBIN1 MOVE SSSTRG1,=C'F' BEING FILLED XCOPY CUSED,SSBINW4,CBIN1,SSSTRG1,CBIN0 ** CREATE FILE VIA TOSSUTILITIES MOVE PBLK,=X'00' EDIT PBLK,FRMCRF CALL CRF,PBLK,RC1,RC2 CBNE RC1,CBIN0,SPOOLER2 PERF SENDMSG,CBIN1,CALLING SP2090 MOVE ASVOL,CVOL(CBIN1) ASSIGN SPOOL,1,SSBINW1,SSCURFIL,ASVOL BNOK SPOOLER1 MOVE SSSTRG2,=C'11' FORM FEED XCOPY ICIBUF,CBIN6,CBIN2,SSSTRG2,CBIN0 SP2100 * NOW SEQ.WRITE CAN BE DONE MOVE TDISKBUF,CBLANKS CLEAR BUFFER XCOPY SSBINW2,CBIN0,CBIN2,ICIBUF,CBIN4 GET LENGTH XCOPY TDISKBUF,CBIN0,SSBINW2,ICIBUF,CBIN6 WRITE SPOOL,TDISKBUF BOFL SP2120 BNOK SPOOLER2 SP2110 B SPOOLRET SP2120 * SEGMENT FILLED. * THIS SEGMENT IS TO BE CLOSED. * IF IT WAS BECAUSE OF OVERFLOW (AUTOCLOS=FALSE) * A NEW ONE IS TO BE CREATED AND THE MASTERINDEX * MUST BE UPDATED DSC0 SPOOL,CLOSE CLOSE CURRENT FILE MOVE SSBCD4,SSCURFIL CURRENT FILE MOVE SSBINW2,SSBCD4 MOVE SSBINW1,CBIN0 MOVE SSBINW3,CBIN0 SP2130 XCOPY SSSTRG4,CBIN0,CBIN4,CUSED,SSBINW1 XCOPY SSBINW3,CBIN1,CBIN1,SSSTRG4,CBIN2 FILEID CBNE SSBINW3,SSBINW2,SP2140 MOVE SSSTRG1,CBLANKS TBF AUTOCLOS,SP2135 CBG SSBINW9,=W'200',SP2135 TIME OUT VALUE LESS THAN 20 SECONDS HAS OCCURRED, MUST BE HARDCOPY MEANING: SET PRINT MOVE SSSTRG1,=C'P' SP2135 XCOPY SSSTRG4,CBIN3,CBIN1,SSSTRG1,CBIN0 XCOPY CUSED,SSBINW1,CBIN4,SSSTRG4,CBIN0 SET CSAVEIX B SP2150 SP2140 ADD SSBINW1,CBIN4 CBL SSBINW1,CUSEDLN,SP2130 SP2150 TBF AUTOCLOS,SP2060 CLEAR AUTOCLOS MOVE SSCURFIL,CBLANKS CLEAR CURRENT FILE B SPOOL10 EJECT SP3000 * EXPLICIT CLOSE DSC0 SPOOL,CLOSE CLOSE FILE MOVE SSBCD4,SSCURFIL CURRENT FILE MOVE SSBINW2,SSBCD4 MOVE SSBINW1,CBIN0 MOVE SSBINW3,CBIN0 SP3010 XCOPY SSSTRG4,CBIN0,CBIN4,CUSED,SSBINW1 XCOPY SSBINW3,CBIN1,CBIN1,SSSTRG4,CBIN2 FILEID CBNE SSBINW3,SSBINW2,SP3020 XCOPY SSSTRG4,CBIN3,CBIN1,CBLANKS,CBIN0 XCOPY CUSED,SSBINW1,CBIN4,SSSTRG4,CBIN0 SET CSAVEIX B SP3030 SP3020 ADD SSBINW1,CBIN4 CBL SSBINW1,CUSEDLN,SP3010 SP3030 MOVE SSCURFIL,CBLANKS B SPOOLRET SP9000 B SPOOLER6 EJECT SPOOLER1 MOVE ICOBUF,=C'1' ASSIGN ERROR B SPOOLERR SPOOLER2 MOVE ICOBUF,=C'2' I/O ERROR B SPOOLERR SPOOLER6 MOVE ICOBUF,=C'6' UNDEFINED FUNCTION B SPOOLERR SPOOLERR SET CIGNORE B SPOOLRT1 SPOOLRET MOVE ICOBUF,=C'0' SPOOLRT1 MOVE SSSTRG2,ICOBUF RWRITE SIO,SSSTRG2,RETTASK B SPOOL20 EJECT SENDMSG PROC P,ADR EDIT ICOBUF,MSGFRM(P) CBL ADR,=C'TC',SENDM90 SENDM10 MOVE SSBINW2,ADR RWRITE SIO,ICOBUF,SSBINW2 BERR SENDM10 SENDM90 RET PEND MSGFRM FTABLE MSG1 MSG1 FRMT FILLR ' ',1 FCOPY ='SPOOLFILE ' FMEL '999',SSBCDCUR FTEXT ' OPRETTET.' FILLR X'00',40 FMEND EJECT FRMCRF FRMT FILLR X'00',4 BUF1,BUF2 FILLR X'00',1 FC1 FILLR X'00',1 PRINT DEVICE FILLR 'S',1 FILEORG FILLR X'00',1 FCOPY SSCURFIL FILENAME FCOPY CVOL(CBIN1) VOLUMENAME FILLR ' ',18 UNUSED VOLUMENAMES FMEL '999999',CMASKDAT FILLR '0',3 RET.PERIOD FILLR X'02',1 BLOCKFACTOR FILLR X'00',1 RECLEN FILLR X'86',1 - FILLR X'00',3 KEYADR+NO.INDEXFILES FILLR X'00',1 FTEXT X'01F4' 500 RECORDS FILLR X'00',6 FMEND FMCURFIL FRMT FTEXT 'SPOOL' FMEL '999',SSBCDCUR FMEND END