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

⟦000249608⟧

    Length: 3866 (0xf1a)
    Notes: pts_type(SC)
    Names: »TOSSIO.SC«

Derivation

└─⟦d2cdd233a⟧ Bits:30009674 Philips computer tape "600204"
    └─⟦this⟧ »OD-KOM/TOSSIO.SC« 

PTS(SC)

	IDENT	TOSSIO	790129/EV 
			770526 

	ENTRY	TOSSIO	PERFORM TOSS FUNCTION 

	EXTRN	T:FDSP	FETCH DATASET PARAMETERS
	EXTRN	T:IO3	PERFORM I/O REQUEST
	EXTRN	I:EVA0	EVALUATE ADDRESS
	EXTRN	I:ERR2	ILLEGAL TYPE
	EXTRN	I:ERR	ERROR PRINT ROUTINE
* 
* CONDITIONAL ASSEMBLY FLAGS
* 
TEST	EQU	1
NOTEST	EQU	0
PARM	EQU	TEST 
* 
*TEMPORARY REGISTERS
* 
WK1	EQU	A1	WORK REGISTER
OP1E	EQU	A6	OPERAND1 END
OP2A	EQU	A9	OPERAND2 ADDRESS
OP2E	EQU	A5	OPERAND 2 LENGTH
OP2T	EQU	A3	OPERAND 2 TYPE
* 
*NON TEMPORARY REGISTERS
* 
PP	EQU	A12	PROGRAM POINTER
PS	EQU	A14	STACK POINTER
* 
*BIT VALUES 
* 
ARITHB	EQU	X'10'	ARITHMETIC BIT 
NUMBIT	EQU	X'20'	NUMERIC BIT
* 
*DATA SET DISPLACEMENTS 
* 
ECBBA	EQU	2	BUFFER ADDRESS
ECBRL	EQU	4	REQUESTED LENGTH
ECBCW	EQU	10	CONTROL WORK 
DSCBRL	EQU	14	REQUESTED LENGTH ADDR 
DSCBCW	EQU	16	CONTROL WORK ADDR 
	EJECT
* 
*  PERFORM TOSS FUNCTION
* 
*  CALL TOSSIO,<DSET>,<ORDER>,<ITEM>,<LENGTH>,<CW>
* 

TOSSIO	RES	0
* 
*  HANDLE PARAMETER <DSET>
* 
	CF	PS,T:FDSP	GET<DSET> 

* 
*  HANDLE PARAMETER <ORDER> 
* 
*   FROM  790129/EV 
*	LCR	OP1E,PP	GET <ORDER> 
*	ADKL	PP,1 
*	LDR	A7,OP1E 
	CF	PS,I:EVA0	GET <ORDER> 
	IFT	PARM=TEST
	ANK	OP2T,ARITHB+NUMBIT 
	SUK	OP2T,NUMBIT	BINARY ? 
	ABL(NZ)	I:ERR2	NO! ILLEGAL TYPE
	XIF
	LDR*	A7,OP2A	PUT ORDER IN REG. 7 
*     TO   790129/EV

* 
*  HANDLE PARAMETER <ITEM>
* 
	CF	PS,I:EVA0	GET <ITEM>
	ST	OP2A,ECBBA,A8	STORE BUF.ADDR IN ECB 

	SUR	OP2E,OP2A	COMPUTE BUFFER LENGTH
	LDR	OP1E,OP2E	SAVE 

* 
*  HANDLE PARAMETER <LENGTH>
* 
	CF	PS,I:EVA0	GET <LENGTH>
	IFT	PARM=TEST
	ANK	OP2T,ARITHB+NUMBIT 
	SUK	OP2T,NUMBIT	BINARY ? 
	ABL(NZ)	I:ERR2	NO! ILLEGAL TYPE
	CWR*	OP1E,OP2A	ILLEGAL REQUESTED LENGTH
	RF(NL)	LEN	NO
	LDK	WK1,5
	ABL	I:ERR	YES
LEN RES 0 
	XIF

	LDR*	WK1,OP2A	GET VALUE
	ST	WK1,ECBRL,A8	STORE REQ.LENGTH IN ECB
	ST	OP2A,DSCBRL,A8	STORE IN DSET

* 
*  HANDLE PARAMETER <CW>
* 
	CF	PS,I:EVA0	GET <CW>
	IFT	PARM=TEST
	ANK	OP2T,ARITHB+NUMBIT 
	SUK	OP2T,NUMBIT	BINARY ? 
	ABL(NZ)	I:ERR2	NO! ILLEGAL TYPE
	XIF

	LDR*	WK1,OP2A
	ST	WK1,ECBCW,A8	STORE CONTROL WORD IN ECB
	ST	OP2A,DSCBCW,A8	STORE IN DSET

* 
*ECB PREPARED 
* 

	ABL	T:IO3	PERFORM I/O REQUEST
	END

Full view