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

⟦84c53cc3e⟧

    Length: 14138 (0x373a)
    Notes: pts_type(SC)
    Names: »TASKS0.SC«

Derivation

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

PTS(SC)

 IDENT TASKS0 830915 EV 
 DDUM KMD08 
 PDIV 



 ENTRY S0INIT SPOOLSCHEDULER




 EXT MASK 
 EXT DLF
 EXT GETCW



 INCLUDE EQUATE 
 EJECT
S0INIT
 PAUSE		WAIT FOR VOLUMENAMES ETC
 CLEAR SKEDOK 
 CLEAR SPASGERR 
 SET CS0ACTIV TASK S0 ACTIVATED 
 DSC0 MASTER,CLOSE
 MOVE ASVOL,CVOL(CBIN1) XXX001
 MOVE ASFNAME,=C'SPOOLINX' MASTERFILE 
 ASSIGN MASTER,1,SSBINW2,ASFNAME,ASVOL
 CBNE SSBINW2,CBIN0,SKI005
 PERF READIX
 B SKI010 
SKI005
 SET SPASGERR 
 CLEAR CSPOOL 
 B SKI090 
SKI010
 MOVE SSBINW1,CBIN0 
 MOVE SSBINW2,CBIN0 
SKI020
* ALL STATUSBYTES ARE CHANGE TO "CAN BE PRINTED"
 XCOPY SSSTRG4,CBIN0,CBIN4,CUSED,SSBINW1
 XCOPY SSSTRG1,CBIN0,CBIN1,SSSTRG4,CBIN3 STATUS 
 CBE SSSTRG1,=X'00',SKI040
 XCOPY SSSTRG4,CBIN3,CBIN1,CBLANKS,CBIN0
 XCOPY CUSED,SSBINW1,CBIN4,SSSTRG4,CBIN0
SKI030
 XCOPY SSBINW2,CBIN1,CBIN1,SSSTRG4,CBIN2 FILEID 
 MOVE SSBCD4,SSBINW2
 CBL SSBCD4,SSBCDCUR,SKI040 
 MOVE SSBCDCUR,SSBCD4 FIND HIGHEST FILEID 
SKI040
 ADD SSBINW1,CBIN4
 CBL SSBINW1,CUSEDLN,SKI020 
 PERF SAVEIX
 BNERR SKI090 
 SET SPASGERR ASSIGNERROR 
SKI090
 MOVE SSBINW1,=W'-1'
 DSC1 SII,X'0B',SSBINW1 
 DSC1 SIO,X'0B',SSBINW1 
 SET SKEDOK 
 EJECT
SKI100			READ MSG TO BE SPOOLED 
 MOVE SSBINW1,=W'140' MAX LENGTH
 READ SII,ICIBUF,SSBINW1
 BERR SKI100
 CBL SSBINW1,CBIN2,SKI100 
 CALL GETCW,SII,RETTASK SENDING TASK
 MOVE CALLING,ICIBUF
 TBF SPASGERR,SKI110
 B SKI910 
SKI110
 XCOPY SSBINW1,CBIN0,CBIN2,ICIBUF,CBIN2 FUNCTION
 IB SSBINW1,SKI300,SKI350,SKI400,SKI450,		C 
		SKI500,SKI550,SKI600,SKI650,SKI700,SKI750,SKI800
 EJECT
SKI300

 B SKI960 UNDEFINED 
 EJECT
SKI350

* WRITE A LINE

SKI400
SKI750

* EXPL. CLOSE 

 MOVE SSBINW1,CBIN0 
 MOVE SSBINW2,CBIN20
 MATCH TASKS,SSBINW1,SSBINW2,CALLING,CBIN0,CBIN2
* FIND SPOOLTASK TO ADDRESS 
 BNOK SKI950 UNDEFINED
 CBE SSBINW1,CBIN0,SKI410 
 DIV SSBINW1,CBIN2
SKI410
* THE ADDRESSED TASK IS FOUND AS "SA"+(MATCHPOINT/2)
 MOVE SSBINW2,=C'SA' REL.TASK=0 
 ADD SSBINW2,SSBINW1 FIND TASK (SA...SJ)
SKI420
 RWRITE SIO,ICIBUF,SSBINW2 REROUTE SPOOLBUFFER
 BERR SKI420
SKI440
 MOVE SSBINW1,=W'64'
 RREAD SII,ICOBUF,SSBINW1,SSBINW2 
 BERR SKI440
 CBE SSBINW1,CBIN0,SKI440 INVALID LENGTH
 TBF CSAVEIX,SKI460 
 PERF SAVEIX
SKI460
 B SKI995 
 EJECT
SKI450			FUNCTION 4 

* PRINT SPOOLDATA.
* CUSED HAS TO BE MODIFIED IN SUCH A WAY THAT 
* ALL ENTRIES BELONGING TO THE SPECIFIED TASK 
* GET MODIFIED THEIR STATUSBYTES FROM ' ' TO 'P'. 

 MOVE SSBINW1,CBIN0 
 XCOPY SSSTRG2A,CBIN0,CBIN2,ICIBUF,CBIN6
SKI455
 XCOPY SSSTRG4,CBIN0,CBIN4,CUSED,SSBINW1 MOVE ENTRY 
 MOVE SSSTRG2,SSSTRG4 TASKID
 CBNE SSSTRG2,SSSTRG2A,SKI470 THIS TASKS DATA?
 XCOPY SSSTRG1,CBIN0,CBIN1,SSSTRG4,CBIN3 YES, MOVE STATUSBYTE 
 CBNE SSSTRG1,CBLANKS,SKI470 NOT TO BE RELEASED 
 MOVE SSSTRG1,=C'P' PRINTABLE 
 XCOPY SSSTRG4,CBIN3,CBIN1,SSSTRG1,CBIN0 MODIFY ENTRY 
 XCOPY CUSED,SSBINW1,CBIN4,SSSTRG4,CBIN0 MODIFY CUSED 
SKI470
 ADD SSBINW1,CBIN4 NEXT ENTRY 
 CBL SSBINW1,CUSEDLN,SKI455 MORE LEFT?
 PERF SAVEIX
 B SKI900 FINISHED OK 
 EJECT
SKI500
* SPOOLFILE SURVEY
 CBE PRIO,CBLANKS,SKI502
 PERF SENDMSG,CBIN5,CALLING 
 B SKI504 
SKI502
 PERF SENDMSG,CBIN6,CALLING 
SKI504
 PERF SENDMSG,CBIN3,CALLING 
* 
 MOVE SSBINW1,CBIN1 
SKI505
 MOVE SSTASK(SSBINW1),CBLANKS 
 MOVE SSSTAT(SSBINW1),CBLANKS 
 MOVE SSFILES(SSBINW1),=D'0'
 ADD SSBINW1,CBIN1
 CBL SSBINW1,CBIN11,SKI505
* 
 MOVE SSBINW1,CBIN0 
SKI510
 XCOPY SSSTRG4,CBIN0,CBIN4,CUSED,SSBINW1 COPY WHOLE ENTRY 
 MOVE SSSTRG2,SSSTRG4 EXTRACT TASK
 CBE SSSTRG2,=X'0000',SKI526 ENTRY NOT USED 
 MOVE SSBINW2,CBIN1 
SKI515
 CBE SSTASK(SSBINW2),CBLANKS,SKI520 NEW ENTRY?
 CBE SSTASK(SSBINW2),SSSTRG2,SKI525 UPDATE ENTRY? 
 ADD SSBINW2,CBIN1
 CBL SSBINW2,CBIN11,SKI515
 B SKI527 TABLE FILLED, ABORT 
SKI520			NEW ENTRY
 MOVE SSTASK(SSBINW2),SSSTRG2 
 XCOPY SSSTAT(SSBINW2),CBIN0,CBIN1,SSSTRG4,CBIN3
 MOVE SSFILES(SSBINW2),=D'1'
 B SKI526 NEXT TASK 
SKI525
 ADD SSFILES(SSBINW2),=D'1' 
 XCOPY SSSTRG1,CBIN0,CBIN1,SSSTRG4,CBIN3 STATUSBYTE 
 CBE SSSTAT(SSBINW2),=C'*',SKI526 DONT CHANGE 
  CBE SSSTAT(SSBINW2),=C'F',SKI526
 MOVE SSSTAT(SSBINW2),SSSTRG1 
SKI526
 ADD SSBINW1,CBIN4
 CBL SSBINW1,CUSEDLN,SKI510 
* 
SKI527			PRINT TABLES 
 MOVE SSBINW1,CBIN1 
SKI530
 CBE SSTASK(SSBINW1),CBLANKS,SKI540 
 PERF SENDMSG,CBIN2,CALLING 
 ADD SSBINW1,CBIN1
 CBL SSBINW1,CBIN11,SKI530
SKI540
 B SKI900 
 EJECT
SKI550
* DELETE SPOOLFILE

 XCOPY SSCURFIL,CBIN0,CBIN8,ICIBUF,CBIN6 FILENAME 
 MOVE SSBCD4,SSCURFIL IN BCD
 MOVE SSBINW8,SSBCD4 AND INBIN
 MOVE SSBINW1,CBIN0 
 MOVE SSBINW2,CBIN0 
SKI560
 XCOPY SSSTRG4,CBIN0,CBIN4,CUSED,SSBINW1 ENTRY
 XCOPY SSBINW2,CBIN1,CBIN1,SSSTRG4,CBIN2 FILEID 
 CBNE SSBINW2,SSBINW8,SKI570 NOT FOUND
 XCOPY SSSTRG1,CBIN0,CBIN1,SSSTRG4,CBIN3 STATUSBYTE 
 CBE SSSTRG1,=C'F',SKI590 DONT DELETE WHEN FILLING
 CBNE SSSTRG1,=C'*',SKI565 CAN BE DELETED 
 MOVE SSSTRG1,=C'D' TO BE DELETED BY PRINTTASK
  XCOPY SSSTRG4,CBIN3,CBIN1,SSSTRG1,CBIN0 
 B SKI567 
SKI565
 MOVE SSSTRG4,=X'00'
SKI567
 XCOPY CUSED,SSBINW1,CBIN4,SSSTRG4,CBIN0 DELETE ENTRY 
 B SKI580 
SKI570
 ADD SSBINW1,CBIN4
 CBL SSBINW1,CUSEDLN,SKI560 
SKI580
 EDIT PBLK,FRMDLF FOUND, DELETE FILE
 CALL DLF,PBLK,RC1,RC2
* 
 MOVE SSBINW1,CBIN0 
SKI582
 XCOPY SSSTRG2,CBIN0,CBIN2,CUSED,SSBINW1
 CBNE SSSTRG2,=X'0000',SKI588 
 ADD SSBINW1,CBIN4
 CBL SSBINW1,CUSEDLN,SKI582 
* NO SPOOLFILES LEFT, RESET NEXT-SPOOL-FILE 
 MOVE SSBCDCUR,=D'0'
SKI584
SKI588
 PERF SAVEIX
SKI590
 B SKI900 
 EJECT
SKI600

* STATUS

 B SKI960 
 EJECT
SKI650

* PRIORITY

 XCOPY PRIO,CBIN0,CBIN2,ICIBUF,CBIN6 TASKID PRIO
 B SKI900 
 EJECT
SKI700

* LIST INDEXFILE

 PERF SENDMSG,CBIN3,CALLING HEADER
 MOVE SSBINW1,CBIN0 
SKI710
 XCOPY SSSTRG4,CBIN0,CBIN4,CUSED,SSBINW1 ENTRY
 MOVE SSSTRG2,SSSTRG4 TASKID
 CBE SSSTRG2,=X'0000',SKI720 EMPTY ELEMENT
 MOVE SSBINW2,CBIN0 
 XCOPY SSBINW2,CBIN1,CBIN1,SSSTRG4,CBIN2 FILE ID
 MOVE SSBCD4,SSBINW2
 XCOPY SSSTRG1,CBIN0,CBIN1,SSSTRG4,CBIN3 STATUS 
 PERF SENDMSG,CBIN4,CALLING 
SKI720
 ADD SSBINW1,CBIN4
 CBL SSBINW1,CUSEDLN,SKI710 
 B SKI500 
 EJECT
SKI800

* RESTART PRINTFILE 

 MOVE SSBINW1,CBIN0 
SKI810
 XCOPY SSSTRG4,CBIN0,CBIN4,CUSED,SSBINW1
 XCOPY SSSTRG1,CBIN0,CBIN1,SSSTRG4,CBIN3
 CBNE SSSTRG1,=C'*',SKI820
 MOVE SSSTRG1,=C'R' CHANGE STATUS FROM * TO R 
 XCOPY SSSTRG4,CBIN3,CBIN1,SSSTRG1,CBIN0
 XCOPY CUSED,SSBINW1,CBIN4,SSSTRG4,CBIN0
 B SKI830 
SKI820
 ADD SSBINW1,CBIN4
 CBL SSBINW1,CUSEDLN,SKI810 
SKI830
 B SKI900 
 EJECT
SKI900
 MOVE ICOBUF,=C'0' OK THIS TIME 
 B SKI995 
SKI910
 MOVE ICOBUF,=C'1' ASSIGNERROR
 B SKI995 
SKI950
 MOVE ICOBUF,=C'5' TASK NOT DEFINED 
 B SKI995 
SKI960
 MOVE ICOBUF,=C'6' FUNCTION NOT DEFINED 
 B SKI995 
SKI995
 XCOPY SSBINW2,CBIN0,CBIN2,RETTASK,CBIN0
 MOVE SSSTRG2,ICOBUF
 RWRITE SIO,SSSTRG2,SSBINW2 
 BERR SKI995
 B SKI100 
 EJECT
GETBIT PROC DSET
 XSTAT DSET,SSBINW8 GET STATUS
 MOVE SSBCD4,=D'15' BITNR IN BCD
 MOVE SSBINW5,CBIN1 BITNR IN BIN
GET10 
 CALL MASK,SSBINW8,SSBINW5 'AND' WITH STATUS
 BNZ GETRET BIT SET 
 ADD SSBINW5,SSBINW5 NEXT BIT 
 SUB SSBCD4,=D'1' 
 CBG SSBCD4,=D'1',GET10 
GETRET
 RET
 PEND 



ERDK PROC DSET
 PERF GETBIT,DSET 
 CBE SSBCD4,=D'4',ERDKRET NO  DATA
 CBE SSBCD4,=D'7',ERDKRET NEW VOL 
 CMP CBIN0,CBIN1
ERDKRET 
 RET
 PEND 


SENDMSG PROC P,ADR
 MOVE ICOBUF,=X'00' 
 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,MSG2,MSG3,MSG4,MSG5,MSG6,MSG7

MSG1 FRMT 
 FILLR ' ',1
 FCOPY ='SPOOLFILE '
 FMEL '999',SSBCD4
 FTEXT ' SLETTET.'
 FMEND

MSG2 FRMT 
 FILLR ' ',2
 FCOPY SSTASK(SSBINW1)
 FILLR ' ',5
 FCOPY SSSTAT(SSBINW1)
 FILLR ' ',5
 FMEL 'ZZ9',SSFILES(SSBINW1)
 FILLR ' ',1
 FMEND

MSG3 FRMT 
 FILLR ' ',1
 FTEXT 'TASK  STATUS FILES' 
 FMEND

MSG4 FRMT 
 FILLR ' ',2
 FCOPY SSSTRG2
 FILLR ' ',4
 FCOPY SSSTRG1
 FILLR ' ',4
 FMEL '999',SSBCD4
 FILLR ' ',3
 FMEND

MSG5 FRMT 
 FILLR ' ',2
 FTEXT 'TASK '
 FCOPY PRIO 
 FTEXT ' PRINTES SOM N[STE.'
 FMEND

MSG6 FRMT 
 FILLR ' ',2
 FTEXT 'INTET TASK HAR H' 
 FILLR X'5C',1
 FTEXT 'J PRIORITET.' 
 FMEND

MSG7 FRMT 
 FMEND
 EJECT
SAVEIX PROC 
 MOVE SSBINW2,CBIN1 RECORD NR 1 
 MOVE SSBINW7,CBIN0 START DISPLACEMENT
SAVE10
 MOVE SSBINW9,CBIN6 
 RREAD MASTER,SSSTRG6,SSBINW9,SSBINW2 
 MOVE SSBINW9,=W'128' 
 XCOPY TDISKBUF,CBIN0,SSBINW9,CUSED,SSBINW7 
 RWRITE MASTER,TDISKBUF,SSBINW2 
 BERR SAVE20
 ADD SSBINW2,CBIN1
 ADD SSBINW7,=W'128'
 CBL SSBINW2,CBIN4,SAVE10 
 CLEAR CSAVEIX
 CMP CBIN0,CBIN0
SAVE20
 RET
 PEND 


READIX PROC 
 MOVE SSBINW2,CBIN1 
 MOVE SSBINW7,CBIN0 
READ10
 MOVE SSBINW1,=W'128' 
 RREAD MASTER,TDISKBUF,SSBINW1,SSBINW2
 BOK READ20 
 BEOF READ20
 PERF ERDK,MASTER 
 BOK READ20 
 RET
READ20
 CBNE SSBCD4,=D'4',READ30 
 MOVE TDISKBUF,=X'00' 
 MOVE SSBINW1,=W'128' 
READ30
 XCOPY CUSED,SSBINW7,SSBINW1,TDISKBUF,CBIN0 
 ADD SSBINW7,SSBINW1
 ADD SSBINW2,CBIN1
  DSC0 MASTER,RACCS 
 CBL SSBINW2,CBIN4,READ10 
 CMP CBIN0,CBIN0
 RET
 PEND 



FRMDLF FRMT 
 FILLR X'00',4 BUF1,BUF2
 FILLR X'00',1
 FILLR X'00',1 PRINT DEVICE 
 FILLR 'S',1 FILEORG
 FILLR X'00',1
 FCOPY SSCURFIL 
 FCOPY CVOL(CBIN1)
 FILLR ' ',18 UNUSED VOLUMENAMES
 FILLR X'00',24 
 FMEND

 END

Full view