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

⟦325ecefee⟧

    Length: 10944 (0x2ac0)
    Notes: pts_type(SC)
    Names: »TIOADM.SC«

Derivation

└─⟦13e5fd45a⟧ Bits:30009699 Philips computer tape "600507"
    └─⟦this⟧ »TOSSWORK/TIOADM.SC« 
└─⟦bc20f3abf⟧ Bits:30009670 Philips computer tape "600126"
    └─⟦this⟧ »TOSSWORK/TIOADM.SC« 

PTS(SC)

	IDENT TIOADM 	REL 11.0 81-02-10 870105041100 

			=1, CLOSE DISCARD EXECUTES CLOSE LOCK IF WRONG OPEN MODE 
			REL 11.0 81-01-26
* 
*********************************************** 
* 
*   TIOADM   TOSS ABRIDGED DATA MANAGEMENT
*            ACTIVATION MODULE
* 
*********************************************** 
* 
* 
*   INPUT : A6 = FDB ADDRESS
*           A8 = ECB ADDRESS
*          A14 = STACK BASE 
* 
*   OUTPUT: A2=DISPATCH ADDRESS 
* 
	EJECT		TIOADM
* 
* 
****************
*   ENTRY      *
****************
* 
* 
	ENTRY	TIOADM	ACTIVATION ADDRESS
* 
	EJECT		TIOADM
* 
* 
****************
*   EXTERNALS  *
****************
* 
	EXTRN	DWTOR
	EXTRN	DWTTAB 
	EXTRN	FPB:BF	BLOCK FACTOR
	EXTRN	FPB:BO	TOSS OPTION 
	EXTRN	FPB:EL	ENLARGE FACTOR
	EXTRN	DISIOE 
	EXTRN	ECBBA
	EXTRN	ECBRL
	EXTRN	ECBRC		=1
	EXTRN	ECBCW1 
	EXTRN	ECBCW2 
	EXTRN	FPB:FO	FILE ORGANISATION 
	EXTRN	FPB:RL	RECORD LENGTH 
	EXTRN	FDBEXC	EXCLUSIVE ACCESS
	EXTRN	FDBRLE	RECORD LENGTH 
	EXTRN	FDBOMD	OPEN MODE 
	EXTRN	DMACTI	ACTIVATE DM TASK
	EXTRN	DMACTD	ACTIVATE DM TASK #D 
	EXTRN	FDBSTA 
	EXTRN	FNDFDB 
	EXTRN	ADMTSK 
* 
	EJECT		TIOADM
* 
* 
***************************** 
*                           * 
*   CONDITIONAL ASSEMBLY    * 
*                           * 
***************************** 
* 
* 
*   A VERSION INCLUDING OPENEN MODES
*   EXTEND AND OUTPUT AND CLOSE DISCARD 
*   IS OBTAINED BY SETTING X:A EQU 1
* 
X:A	EQU	0 
CRDEEX	EQU	X:A
* 
MMUPAG	EQU	0
* 
	EJECT		TIOADM
* 
* 
******************************
*                            *
*    CONSTANTS               *
*                            *
******************************
* 
* 
LFILEN	EQU	256	L-FILE RECORD LENGTH 
* 
	EJECT		TIOADM
* 
**********
* ORDTAB *
**********
* 
*   TABLE OVER ALLOWED ORDERS AND ORDER OPTIONS 
* 
ORDTAB	EQU	*
	DATA	/821	OPEN   INPUT  UNPROTECTED
	DATA	/921	OPEN   INPUT  PROTECTED
	DATA	/A21	OPEN   INPUT  EXCLUSIVE
	DATA	/3921	OPEN   INPUT/OUTPUT  PROTECTED
	DATA	/3A21	OPEN   INPUT/OUTPUT  EXCLUSIVE
ORDOP1	EQU	*-ORDTAB 
	IFT	CRDEEX=1 
	DATA	/3221	OPEN   OUTPUT RANDOM      EXCLUSIVE 
	DATA	/5221	OPEN   EXTEND  EXCLUSIVE
	DATA	/1221	OPEN   OUTPUT SEQUENTIAL  EXCLUSIVE 
	XIF
ORDOPE	EQU	*-ORDTAB 
	IFT	CRDEEX=1 
	DATA	/222	CLOSE   DISCARD
	XIF
ORDCLO	EQU	*-ORDTAB 
	DATA	/022	CLOSE  LOCK
ORDRFP	EQU	*-ORDTAB 
	DATA	/3	READ FILE PARAMETERS 
ORDSQW	EQU	*-ORDTAB 
	DATA	/006	WRITE  SEQUENTIAL
	DATA	/107	REWRITE
	DATA	/108	DELETE 
	DATA	/106	WRITE  RANDOM
ORDRED	EQU	*-ORDTAB 
	DATA	/102	READ   DIRECT
ORDLGT	EQU	*-ORDTAB	LENGTH OF TABLE 
* 
	EJECT		TIOADM
* 
* 
**********
* OPEMOD *
**********
* 
*   BIT MAP OVER ALLOWED COMBINATIONS 
*   IO FUNCTIONS VS. OPEN MODES 
* 
* 
OPEMOD	EQU	*
	DATA	/1010	IN UNPRO,IN PROT
	DATA	/101F	INP EXC,IN/OUT PROT 
	DATA	/1F09	IN/OUT EXC,OUT RAN
	DATA	/0101	EXTEND EXC,OUT SEQ
* 
	EJECT		TIOADM
* 
* 
*   INPUT : A6 = FDB ADDRESS
*           A8 = ECB ADDRESS
*          A14 = STACK BASE 2-LEVEL STACK 
* 
TIOADM	EQU	*
	LD	A1,DWTTAB,A6	USER TTAB ADDRESS
	LDR*	A2,A8	FILE CODE 
	ANK	A2,/FF 
	LDK	A5,0 
	CF	A14,FNDFDB
	LDK	A2,0 
	SCR	A2,A4	RESET STATUS 
	LD	A7,DWTOR,A6	GET ORDER AND OPTION
	LDK	A2,/20	ORDER BIT MASK
	LDK	A3,ORDLGT	LENGTH OF TABLE
TIOA20	EQU	*
	SUK	A3,2	NEXT ORDER IN TABLE 
	RF(N)	ER:IRQ	ERROR: NOT ALLOWED ORDER
	SRL	A2,1	BIT MASK
	CW	A7,ORDTAB,A3	CHECK IF ORDER ALLOWED 
	RB(NE)	TIOA20	NO MATCH TRY NEXT
	SC	A3,DWTOR+1,A6	SAVE ORDER DISPLACEMENT 
	SUK	A3,ORDOPE
	RF(N)	TAOPEN	OPEN
* 
	EJECT		TIOADM
* 
* 
	CWK	A6,FDBSTA
	RF(E)	ER:IRQ	FILE NOT OPENED 
	LD	A1,FDBEXC,A6	EXCUSIVE ACCESS POINTER
	RF(Z)	TIOA30	NOT EXCLUSIVE ACCESS
	CW	A1,DWTTAB,A6	 
	RF(NE)	ER:IRQ	ERROR: NOT SAME USER 
TIOA30	EQU	*
	IFT	CRDEEX=1 
	SUK	A3,ORDCLO-ORDOPE 
	RF(N)	TACLOD	CLOSE DISCARD 
	RF(Z)	TACLOS	CLOSE LOCK
	XIF
	IFT	CRDEEX=0 
	SUK	A3,ORDCLO-ORDOP1 
	RF(Z)	TACLOS	CLOSE 
	XIF
	SUK	A3,ORDRFP-ORDCLO 
	RF(Z)	TARFP	READ FILE PARAMETERS 
	SUK	A3,ORDSQW-ORDRFP 
	RF(Z)	TIA100	WRITE SEQUENTIAL
	LD	A4,ECBCW1,A8	CHECK RECORD NUMBER
	OR	A4,ECBCW2,A8
	RF(NP)	ER:IRQ	ILLEGAL
	SUK	A3,ORDRED-ORDSQW 
	RF(NZ)	TIA100	NOT READ DIRECT
	LD	A3,ECBRL,A8	GET REQUESTED LENGTH
	CW	A3,FDBRLE,A6	RECORD LENGTH
	RF(NE)	ER:IRQ	ERROR: ILLEGAL REQUESTED LENGTH
* 
	EJECT		TIOADM
* 
* 
TIA100	EQU	*
	LC	A3,FDBOMD,A6	OPEN MODE
	ANK	A3,/7F 
	SRL	A3,1	BYTE MODE 
	LC	A3,OPEMOD,A3
	ANR	A2,A3
	RF(Z)	ER:IRQ	ERROR: INCORRECT OPEN MODE
	LDKL	A2,ADMTSK	DISPATCH ADDRESS
	ABL	DMACTI	ACTIVATE DM TASK
* 
	EJECT		TIOADM
* 
**********
* TAOPEN *
**********
* 
*   OPEN
* 
TAOPEN	EQU	*
	CWK	A6,FDBSTA
	RF(NE)	ER:IRQ	FILE CODE USED 
	LD	A1,ECBBA,A8	FPB ADDRESS 
	ADK	A1,8 
	IFT	MMUPAG=0 
	LC	A4,FPB:BO,A1	TOSS OPTION
	ANK	A4,/FF 
	SUK	A4,1 
	RF(P)	ER:IRQ	OPTION NOT 0 OR 1 
	LC	A4,FPB:FO,A1	FILE ORGANIZATION
	XIF
	IFT	MMUPAG=1 
	EL	A4,FPB:BO,A1	TOSS OPTION
	ANK	A4,/FF 
	SUK	A4,1 
	RF(P)	ER:IRQ	OPTION NOT 0 OR 1 
	EL	A4,FPB:FO-1,A1	FILE ORGANISATION
	XIF
	ANK	A4,/FF 
	SUK	A4,3 
	RF(P)	ER:IRQ	ERROR 
	ADK	A4,2 
	RF(Z)	ER:IRQ	ERROR 
	IFT	CRDEEX=1 
	RF(P)	TAOP10	L,X-FILE
	LDK	A2,1	S-FILE
TAOP10	EQU	*
	EJECT		TIOADM
* 
* 
	ADK	A3,ORDOPE-ORDOP1 
	RF(N)	TAOPE2	OPEN EXISTING FILE
	IFT	MMUPAG=0 
	AD	A2,FPB:RL,A1	RECORD LENGTH
	XIF
	IFT	MMUPAG+CRDEEX=2
	EL	A3,FPB:RL,A1
	SUK	A4,1	FILE ORGANIZATION 
	RF(NZ)	TAOP20	NOT L-FILE 
	CWK	A3,LFILEN	L-FILE LENGTH
	RF(NE)	ER:IRQ	ILLEGAL REQUESTED LENGTH 
TAOP20	EQU	*
	ADR	A2,A3
	XIF
	IFT	CRDEEX=1 
	RF(NP)	ER:IRQ	NOT ALLOWED
	ANK	A2,/FF 
	RF(NZ)	ER:IRQ	ERROR:ILLEGAL LENGTH 
	IFT	MMUPAG=0 
	SUK	A4,1	FILE ORGANIZATION 
	RF(NZ)	TAOP20	NOT L-FILE 
	LDKL	A3,LFILEN	L-FILE LENGTH 
	CW	A3,FPB:RL,A1	RECORD LENGTH
	RF(NE)	ER:IRQ
TAOP20	EQU	*
	LC	A2,FPB:BF,A1	BLOCKING FACTOR
	XIF
	IFT	MMUPAG+CRDEEX=2
	EL	A2,FPB:BF,A1	BLOCK FACTOR 
	SRL	A2,8 
	XIF
	IFT	CRDEEX=1 
	SUK	A2,1 
	RF(Z)	TARFP	ACTIVATE #D
	RF	ER:IRQ	ILLEGAL BLOCK FACTOR 
	XIF
* 
	EJECT		TIOADM
* 
* 
**********
* TAOPE2 *
**********
* 
* 
TAOPE2	EQU	*	OPEN EXISTING FILE 
	IFT	MMUPAG=0 
	LD	A2,FPB:EL,A1	ENLARGE FACTOR 
	XIF
	IFT	MMUPAG=1 
	EL	A2,FPB:EL,A1	ENLARGE FACTOR 
	XIF
	RF(Z)	TARFP	ACTIVATE #D
ER:IRQ	EQU	*	ILLEGAL REQUEST
	ABL	DISIOE 
* 
* 
	EJECT		TIOADM
* 
* 
**********
* TACLOD *
* TACLOS *
* TARFP  *
**********
* 
*   CLOSE AND READ FILE PARAMETERS
* 
*   A4 = FILE CODE REFERENCE ADDRESS
* 
* 
	IFT	CRDEEX=1 
TACLOD	EQU	*	CLOSE DISCARD
	ADK	A1,0 
	RF(NZ)	TACLOS	OPENED EXCLUSIVE 
	LDKL	A1,/8000	RC: REQUEST ERROR	=1 
	ST	A1,ECBRC,A8		=1 
	LDK	A1,ORDCLO	PERFORM CLOSE LOCK	=1
	SC	A1,DWTOR+1,A6		=1 
	XIF
TACLOS	EQU	*	CLOSE LOCK 
	LDKL	A2,FDBSTA 
	ST	A2,2,A4	FC ENTRY
TARFP	EQU	* 
	LDKL	A2,ADMTSK	DISPATCH ADDRESS
	ABL	DMACTD	ACTIVATE DM TASK #D 
* 
	END

Full view