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

⟦009e225aa⟧

    Length: 3492 (0xda4)
    Notes: pts_type(SC)
    Names: »FDIO.SC«

Derivation

└─⟦5c22ed822⟧ Bits:30009675 Philips computer tape "600209"
    └─⟦this⟧ »DEN10/FDIO.SC« 
└─⟦79fbed147⟧ Bits:30009697 Philips computer tape "600414"
    └─⟦this⟧ »SHBAPL/FDIO.SC« 
└─⟦bf903a231⟧ Bits:30009665 Philips computer tape "600109"
    └─⟦this⟧ »DEN10/FDIO.SC« 

PTS(SC)

	IDENT FDIO	801022REL10 

	ENTRY	FDIO	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
	EXTRN	T:SCW2	GET CW AND STORE IN ECB 
* 
* CONDITIONAL ASSEMBLY FLAGS
* 
TEST	EQU	0
NOTEST	EQU	1
PARM	EQU	NOTEST 
* 
*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
* 
*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
DSCBRL	EQU	14	REQUESTED LENGTH ADDR 
DSCB1X	EQU	16	CW-ITEM ADDRESS 
	EJECT
* 
*  PERFORM TOSS FUNCTION
* 
*  CALL FDIO,<DSET>,<ORDER>,<ITEM>,<LENGTH>,<CW>
* 

FDIO	RES	0
* 
*  HANDLE PARAMETER <DSET>
* 
	CF	A14,T:FDSP	GET<DSET>

* 
*  HANDLE PARAMETER <ORDER> 
* 

	LCR	A7,A12 
	ADKL	A12,1 
	ANK	A7,/FF 
* 
*  HANDLE PARAMETER <ITEM>
* 
	CF	A14,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	A14,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	A14,T:SCW2
* 
*        SET/RESET FILECONTROL-MODE IF OPEN/CLOSE 
* 
	CWK	A7,/A1	OPEN
	RF(NE)	FD30	NO 
	LDKL	A1,/200	SET FILE-CTRL-MODE
	ORRS	A1,A8 
	RF	FD40
FD30	EQU	*
	CWK	A7,/A2	CLOSE 
	RF(NE)	FD50	NO 
	LDKL	A1,/FDFF	RESET FILE-CTRL-MODE 
	ANRS	A1,A8 
FD40	EQU	*
	CM	DSCBRL,A8 
	CM	DSCB1X,A8 
FD50	EQU	*

* 
*ECB PREPARED 
* 

	ABL	T:IO3	PERFORM I/O REQUEST
	END

Full view