DataMuseum.dk

Presents historical artifacts from the history of:

Philips Data Systems

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

See our Wiki for more about Philips Data Systems

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦2b703bf07⟧

    Length: 7732 (0x1e34)
    Notes: pts_type(SC)
    Names: »SPOOL.SC«

Derivation

└─⟦22f4dea89⟧ Bits:30009702 Philips computer tape "DOS_PTS_4.2_M_FL"
    └─⟦this⟧ »NJ-AMT/SPOOL.SC« 
└─⟦dab19bdd7⟧ Bits:30009677 Philips computer tape "600218"
    └─⟦this⟧ »NJ-AMT/SPOOL.SC« 

PTS(SC)

 IDENT SPOOL 831026 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 


SP2060
 MOVE SSSTRG4,=X'00' FIND PLACE FOR NEW FILE
 MOVE SSBINW4,CBIN0 
 MOVE SSBINW7,CUSEDLN 
 MATCH CUSED,SSBINW4,SSBINW7,SSSTRG4,CBIN0,CBIN4
 BNOK SPOOLER2
 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,SPOOLDEL
 PERF SENDMSG,CBIN1,CALLING 

 MOVE ASVOL,CVOL(CBIN1) 
 ASSIGN SPOOL,1,SSBINW1,SSCURFIL,ASVOL
 BNOK SPOOLDEL
 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 SP2120
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
SPOOLDEL			DELETE ENTRY 
 SUB SSBINW4,CBIN3 ADJUST TO START
 MOVE SSSTRG4,=X'00'
 XCOPY CUSED,SSBINW4,CBIN4,SSSTRG4,CBIN0
 MOVE SSCURFIL,CBLANKS
 SUB SSBCDCUR,=D'1' 
* 
 B SPOOLER2 

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

Full view