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

⟦4346a138c⟧

    Length: 13610 (0x352a)
    Notes: pts_type(SC)
    Names: »TOSS00.SC«

Derivation

└─⟦110b7ed5e⟧ Bits:30009664 Philips computer tape "600106"
    └─⟦this⟧ »TOOLS/TOSS00.SC« 
└─⟦bdcaa0fa2⟧ Bits:30009700 Philips computer tape "600999"
    └─⟦this⟧ »TOOLS/TOSS00.SC« 

PTS(SC)

	IDENT	TOSS00	TOSSUT INTERFACE 9.2 820917 


************************************************************************* 
* DETTE PROGRAM ER VENLIGST STILLET TIL R]DIGHED AF THOMAS SCHREITER *
* PDS, ZUERICH                                                       *
* DET INDEHOLDER DIVERSE INTERFACERUTINER FOR KALD AF TOSSUTILITIES  *
* FRA CREDITPROGRAMMER.                                              *
**********************************************************************


			PDS ZUERICH


*            DESCRIPTION: 
*            INTERFACE FOR TOSS UTILITIES 
*            CDD
*            CFF
*            DLF
*            CRF
*            BIX
*            RIX
*            SRT
*            PVC
*            RVN - READ VOLUME NAME 


	ENTRY	CDD	 
	ENTRY	CFF
	ENTRY	DLF
	ENTRY	CRF
	ENTRY	BIX
	ENTRY	RIX
	ENTRY	SRT
	ENTRY	PVC
	ENTRY	RVN



	EXTRN	I:EVA0 
	EXTRN	T:FDSP 
	EXTRN	I:RT1
	EXTRN	COPVOL 
	EXTRN	CRVOL
	EXTRN	COPFIL 
	EXTRN	DLFILE 
	EXTRN	CRFILE 
	EXTRN	BINDEX 
	EXTRN	RINDEX 
	EXTRN	SORTF
	EXTRN	CONPAR 
	EXTRN	PRVTOC 



FC2	EQU	/30	FILECODE CTW
FC3	EQU	/80	FILECODE LP 
LOADF	EQU	50	LOADFACTOR FOR RIX INDEX FILE



*	FORM STATEMENTS 
BYTE	FORM	8,8 
CALL	FORM	16=/F6A1,16 



BUF1	RES	3280 
BUF2	RES	205
	RES	2600 	ADDITIONAL SORT WORK AREA
REGA12	DATA	0	SAVE AREA FOR REG A12 
RC	DATA	0	SAVEAREA FOR RETURNCODE 
ECB	DATA	0
	DATA	BUF2
	DATA	410 
	DATA	0 
RCODE	DATA	0
	DATA	0 
	DATA	0 



SRTST	DATA	BUF1 
SRTEN	DATA	REGA12-BUF1
	EJECT
*		PARAMETER BLOCKS 
*		COPY DISC TO DISC
PBCDD	EQU	*	CDD 
	DATA	BUF1,BUF2 
	BYTE	0,FC2 
FCCDD	BYTE	0,0
VN1CDD	DATA	'      '
VN2CDD	DATA	'      '
RCDD	DATA	0 
PBCRV	EQU	* 
	DATA	BUF1,BUF2 
	BYTE	0,FC2 
FCCRV	BYTE	0,0
VNCRV	DATA	'      ' 
	DATA	50
	BYTE	1,1 


*		COPY FILE TO FILE
PBCFF	EQU	*	CFF 
	DATA	BUF1,BUF2 
	DATA	0 
FCCFF	BYTE	0,0
PCFF	DATA	0 


*		DELETE FILE
PBDLF	EQU	*	DLF 
	DATA	BUF1,BUF2 
	BYTE	0,FC2 
	BYTE	'S',0 
FNDLF	DATA	'        ' 
VN1DLF	DATA	'      '
	DATA	'      '
	DATA	'      '
	DATA	'      '


*		CREATE FILE
PBCRF	EQU	*	CRF 
	DATA	BUF1,BUF2 
	BYTE	0,FC2 
	BYTE	'S',0 
FNCRF	DATA	'        ' 
VN1CRF	DATA	'      '
	DATA	'      '
	DATA	'      '
	DATA	'      '
CRDCRF	DATA	'      '
	DATA	'36'
	DATA	'5 '
BFCRF	EQU	*-1 
RLCRF	DATA	0
KACRF	DATA	0
NIFCRF	BYTE	0,0 
NRCRF	DATA	0


*		BUILD INDEX FILES
PBBIX	EQU	*	BIX 
	DATA	BUF1,BUF2 
	DATA	0 
FCBIX	BYTE	0,0
	DATA	'            '
	BYTE	'D','D' 
KABIX	DATA	0
KLBIX	DATA	0


*		REORGANIZE INDEX FILES 
PBRIX	EQU	*	RIX 
	DATA	BUF1,BUF2 
	BYTE	0,FC2 
FC3RIX	BYTE	0,0 
FC5RIX	BYTE	0,0 
	DATA	'          '
	BYTE	'D',0 
	DATA	0 
	DATA	LOADF	LOADFACTOR
	DATA	0 
NORRIX	DATA	0 


*		SORT 
PBSRT	EQU	*	SRT 
	DATA	0,0 
	BYTE	0,FC2 
FC3SRT	BYTE	0,0 
FC5SRT	BYTE	0,0 
	DATA	0 
	BYTE	0,1 
	DATA	0,0 
	DATA	CONPAR
	BYTE	'D','D' 
CWASRT	DATA	0 
CWALSR	DATA	0 
	BYTE	5,0 
	DATA	0 
	DATA	0 
	DATA	0,0,0,0 
NSKSRT	DATA	0 
KASRT	DATA	0,0,0,0,0
	DATA	0,0,0,0,0 
	DATA	0,0,0,0,0 
NKCSRT	DATA	0,0,0,0,0 
	DATA	0,0,0,0,0 
	DATA	0,0,0,0,0 


*		PRINT VTOC 
PBPVC	EQU	*	PVC 
	DATA	BUF1,BUF2 
	DATA	0 
FCPVC	BYTE	FC3,0
	EJECT
* COPY DISK TO DISC 

* CALL CDD,IV,OV,FC1,FC2,R,A1 

*   CDD   NAME
*   IV    INPUTVOLUMENAME (STRG, 6 BYTES) 
*   OV    OUTPUTVOLUMENAME (STRG, 6 BYTES)
*   FC1   INPUTFILECODE (INTEGER, X'F0' - X'F3')
*   FC2   OUTPUTFILECODE (INTEGER, X'F0 - X'F3')
*   R     ROERGFLAG (1=WITH, 0=WITHOUT) 
*         WENN 1, WIRD ZUERST EIN CRV AUSGEFUEHRT 
*   A1    RETURNCODES (BIN) 
*         0  NO ERROR 
*         1  INPUT I/O ERROR
*         2  OUTPUT I/O ERROR 
*         3	  VOLUMENAME ERROR
*         4  OUTPUT DISC NOT EMPTY
*         5  VTOC OVERFLOW
*         6  DISC OVERFLOW
*         7  FAULTY DISC FORMAT 
*         8  FLEX DISC WRITE PROTECTED (CDD)
*         9  DISK NOT OPERABLE
*         10 BADSPOT ON TRACK 0 
*         11 MORE THAN 5 BADSPOTS 
*         12 DISC I/O ERROR (CRV) 
*          13 FLEX DISC WRITE PROTECTED (CRV

CDD	EQU	* 
	LDKL	A8,VN1CDD 
	CALL	STVN00	STORE NAME 1 
	LDKL	A8,VN2CDD 
	CALL	STVN00
	LDKL	A1,FCCDD
	CALL	PARA00
	CALL	PARA00
	LDKL	A1,RCDD+1 
	CALL	PARA00
	LDR	A2,A2
	RF(Z)	CDD200	JP IF NOREORG 
	LDKL	A9,VN2CDD 
	LDKL	A8,VNCRV
	CALL	STVN00	STORE VOLUMENAME 
	LD	A1,FCCDD
	ST	A1,FCCRV	STORE FILE CODE
	ST	A12,REGA12	SAVE A12 
	LDKL	A12,PBCRV 
	CALL	CRVOL 
	LD	A12,REGA12
	LDR	A1,A1
	RF(NZ)	CDD500 JP IF  ERROR 
CDD200	EQU	*
	ST	A12,REGA12
	LDKL	A12,PBCDD 
	CALL	COPVOL
	LD	A12,REGA12
	RF	CDD900
CDD500	EQU	*
	ADK	A1,8 
CDD900	EQU	*
	CALL	RC00
	RF	RT2 
	EJECT
*	COPY FILE TO FILE 
*   CALL CFF,FN1,FN2,P,A1 

*   CFF   NAME
*   FN1   INPUTFILENAME 
*   FN2   OUTPUTFILENAME
*   P     PACK (1=YES,0=NO) 
*   A1    RETURNCODES (BIN) 
*        0  NO ERROR
*       1  DISK NOT OPERABLE
*       2 DISC I/O ERROR
*      3 FAULTY RECORD LENGTH 
*      4 OUTPUT FILE TOO SMALL
*      5 OUTPUT FILE NOT EMPTY
*      6 FILE ORG. ERROR
CFF	EQU	* 
	LDKL	A1,FCCFF
	CALL	FC00	INPUTFILE
	CALL	FC00	OUTPUTFILE 
	LDKL	A1,PCFF+1 
	CALL	PARA00	PARAMETER PACK 
	ST	A12,REGA12	SAVE A12 
	LDKL	A12,PBCFF 
	CALL	COPFIL
	LD	A12,REGA12
	CALL	RC00
	RF	RT2 
	EJECT
*   DELETE FILES
*   CALL DLF,FN,VN,A1 
*      0 NO ERROR 
*      1 DISC I/O ERROR 
*      2 VOLUME UNKNOWN 
*      3 FILE UNKNOWN 
*      4 NO FREE ENTRY
*      5 FLEX DISC WRITE PROTECTED
DLF	EQU	0 
	LDKL	A8,FNDLF
	CALL	STFN00	STORE FILENAME 
	LDKL	A8,VN1DLF 
	CALL	STVN00	VOLUME NAME
	ST	A12,REGA12
	LDKL	A12,PBDLF 
	CALL	DLFILE
	LD	A12,REGA12
	CALL	RC00	RETURNCODES
	RF	RT2 
	EJECT
*   CREATE FILES
*   CALL CRF,FN,VN,BF,RL,KA,NIF,NR,A1 
CRF	EQU	* 
	LDKL	A8,FNCRF
	CALL	STFN00	FILENAME 
	LDKL	A8,VN1CRF 
	CALL	STVN00	VOLUMENAME 
	CALL	I:EVA0	BLOCKFACTOR
	LC	A1,1,A9 
	SC	A1,BFCRF
	LDKL	A8,RLCRF
	CALL	STBN00	RECORDLENGTH 
	LDKL	A1,KACRF+1
	CALL	PARA00	KEYADDRESS 
	LDKL	A1,NIFCRF 
	CALL	PARA00
	LDKL	A8,NRCRF
	CALL	STBN00
	ST	A12,REGA12
	LDKL	A12,PBCRF 
	CALL	CRFILE
	LD	A12,REGA12
	CALL	RC00
	RF	RT2 
	EJECT
BIX	EQU	* 
	LDKL	A1,FCBIX
	CALL	FC00
	CALL	FC00
	LDKL	A1,KABIX+1
	CALL	PARA00
	LDKL	A1,KLBIX+1
	CALL	PARA00
	ST	A12,REGA12
	LDKL	A12,PBBIX 
	CALL	BINDEX
	LD	A12,REGA12
	CALL	RC00
RT2	EQU	* 
	RF	RT1 
	EJECT
RIX	EQU	* 
	LDKL	A1,FC3RIX 
	CALL	FC00	FN1
	CALL	FC00	FN2
	CALL	FC00	FN3
	LDKL	A8,NORRIX 
	CALL	STBN00	NOR
	ST	A12,REGA12
	LDKL	A12,PBRIX 
	CALL	RINDEX
	LD	A12,REGA12
	CALL	RC00
	RF	RT1 
	EJECT
SRT	EQU	* 
	LDKL	A1,FC3SRT 
	CALL	FC00	FN1
	CALL	FC00	FN2
	CALL	FC00	FN3
	LDKL	A1,NSKSRT+1 
	CALL	PARA00
	LDR	A3,A2	SAVE NSK 
	LDKL	A1,KASRT+1
SRT100	EQU	*
	CALL	PARA00	KA1.KA15 
	ADK	A1,1 
	SUK	A3,1 
	RB(P)	SRT100 
	LDKL	A1,NKCSRT+1 
	LD	A3,NSKSRT	NR OF KEYS
SRT200	EQU	*
	CALL	PARA00	KL1.KL15 
	ADK	A1,1 
	SUK	A3,1 
	RB(P)	SRT200 
	LD	A1,SRTST	START OF SORTAREA
	ST	A1,CWASRT 
	LD	A2,SRTEN	END OF SORTAREA
	ST	A2,CWALSR	LENGTH OF WORKAREA
	ST	A12,REGA12
	LDKL	A12,PBSRT 
	CALL	SORTF 
	LD	A12,REGA12
	CALL	RC00	RETURNCODES
	RF	RT1 
	EJECT
PVC	EQU	* 
	LDKL	A1,FCPVC
	CALL	PARA00
	ST	A12,REGA12
	LDKL	A12,PBPVC 
	CALL	PRVTOC
	LD	A12,REGA12
	CALL	RC00
	RF	RT1 
	EJECT
*   CALL RVN,FC,VN,A1 
RVN	EQU	* 
	LDKL	A8,ECB
	LDKL	A1,ECB+1
	CALL	PARA00
	LDK	A7,/81 
	LKM
	DATA	1 
	CALL	I:EVA0
	LDK	A1,5 
RVN100	EQU	*
	LC	A2,BUF2+2,A1
	SUK	A5,1 
	SCR	A2,A5
	SUK	A1,1 
	RB(NN)	RVN100
	LD	A1,RCODE	RETURNCODE	
	RF(Z)	RVN900 
	LDK	A1,1	ANY ERROR 
RVN900	EQU	*
	CALL	RC00
RT1	EQU	* 
	ABL	I:RT1
	EJECT
			STORE VOLUMENAME INTO PARABLOCK
			A9=ITEM START
			A8=VNSTART 
STVN00	EQU	*
	CALL	I:EVA0
	LDK	A3,5	LENGTH
STVN10	EQU	*
	LDK	A2,1 
STVN20	EQU	*
	LCR	A1,A9
	SCR	A1,A8
	ADR	A9,A2
	ADR	A8,A2
	SUK	A3,1 
	RB(NN)	STVN20
	RTN	A14



			STORE FILENAME INTO PB 
			A9=ITEMSTART 
			A8=FN START
STFN00	EQU	*
	CALL	I:EVA0
	LDK	A3,7 
	RB	STVN10



			STORE BINARY INTO PARA 
			A9=ITEMSTART 
			A8=PARABLOCK ADDRESS 
STBN00	EQU	*
	CALL	I:EVA0
	LDK	A3,1 
	RB	STVN10



			GET PARA FROM CREDIT 
			A1=ADDRESS IN PARABLOCK
PARA00	EQU	*
	LDK	A2,0 
	LCR	A2,A12	GET PARA
	ADKL	A12,1 
	SCR	A2,A1
	ADK	A1,1 
	RTN	A14



			GET FILECODE FROM ECB
			A1=ADDRESS IN PARABLOCK
FC00	EQU	*
	CALL	T:FDSP
	LC	A2,1,A8 
	SCR	A2,A1
	ADK	A1,1 
	RTN	A14



			RETURNCODE 
RC00	EQU	*
	ST	A1,RC 
	CALL	I:EVA0
	LD	A1,RC 
	STR	A1,A9
	RTN	A14
	END

Full view