File RWOPEN.PA (PAL assembler source file)

Directory of image this file is from
This file as a plain text file


/UTILITIES FOR RTAPE,WTAPE FOR THE TD8E CONTROLLER.
/
/ (1) OPEN FILE FOR READ.
/	ROPEN(IUNIT,FILENAME,ISTARTBLOCK,INOBLOCKS,IER)
/
/ (2) OPEN NEW FILE FOR WRITE.
/	WOPEN(IUNIT,FILENAME,ISTARTBLOCK,INOBLOCKS,IER)

/
/ (3) CLOSE PREVIOUSLY OPENED FILE.
/	WCLOSE(IUNIT,FILENAME,INOBLOCKS,IER|)
/
/


OPDEF TADI 1400
OPDEF DCAI 3400
OPDEF JMPI 5400


ENTRY ROPEN
ENTRY WOPEN
ENTRY WCLOS


/  PARAMETER UNPACKING ROUTINE..

ARGAD,  0

GETARG,	0		/GETS NEXT ARGUMENT IN FORTRAN
			/GENERATED PARAMETER STRING.
GTCDF1,	HLT		/REPLACED BY CDF
	TADI  ROPEN#	/GET PARAM DATA FIELD
	DCA   GTCDF2
	INC   ROPEN#	/BUMP LIST ADDRESS
	TADI  ROPEN#	/GET THE PARAMETER ADDRESS.
	DCA   ARGAD	/SAVE FOR INDIRECT
	INC   ROPEN#
GTCDF2, HLT		/REPLACED BY CDF
	TADI  ARGAD	/PASS THE VALUE IN THE ACC
	JMPI  GETARG	/ADIOS M.F.......


/COMMON CODE FOR GETTING THE FIRST TWO PARAMS.


COMMON, 0
	JMS   GETARG	/GET THE UNIT NUMBER
	CLL RAR		/DETERMINE WHICH UNIT
	SZL CLA
	TAD   (3	/DTA1 IS LOGICAL #4
	IAC		/DTA0 IS LOGICAL #1
	DCA   DEVIC
	JMS   GETARG	/NOW GET THE FILE NAME
	DCA   NAME
	INC   ARGAD	/WHICH CONSISTS OF THREE
	TADI  ARGAD	/WORDS AND AN ASSUMED
	DCA   NAME#	/EXTENSION OF .DA
	INC   ARGAD	
	TADI  ARGAD
	DCA   NAME1
	TAD   NAMAD	/SET UP ADDRES POINTER
	DCA   ARG1	/TO THIS NAME IN ARG1.
	DCA   EROR	/CLEAR ERROR STATUS
	JMP I COMMON  	/EXEUNT THE PLACE


/  COMMON CALL TO THE USR FOR THE FUNCTION DESIRED..


CALLEM,	0
	TAD   DEVIC	/DEVICE NUMBER IN THE ACC
	6212		/CHANGE INSTRUCTION FIELD TO 1
	JMS I USR
FCODE,	0		/FUNCTION CODE WORD
ARG1,	0
ARG2,	0
	INC   EROR	/SET ERROR FLAG
	JMP I CALLEM	/SO MUCH FOR THAT PART.


/ A FEW DATA CELLS AND CONSTANTS.

EROR,	0
DEVIC,	0		/THE DEVICE NUMBER
USR,	7700
NAMAD,	NAME
NAME,	BLOCK 2
NAME1,  0
	0401		/ASSUMED EXTENSION OF .DA


/ COMMON ROUTINE TO RETURN THE LAST TWO PARAMETERS.


RETRNM,	0
	CLA CLL
	JMS  GETARG	/GET IT ALL SET UP BY GETTING
	CLA		/THE PARAMETER, THEN JUST PUT
	TAD   ARG1	/IN THE RETURNED VALUE.
	DCAI  ARGAD	/PASS BACK THE START BLOCK
	JMS   GETARG
	CLA
	TAD   ARG2	/AND THE NUMBER OF BLOCKS.
	CIA		/AS A POSITIVE NUMBER
	DCAI  ARGAD
	JMP I RETRNM	/ZOOM ON GANG.


/  ENTRY FOR READ FILE OPEN (ROPEN)


ROPEN,	BLOCK 2
	CLA CLL IAC RAL	/FUNCTION CODE IS 2
ROPE1,	DCA   FCODE
	TAD   ROPEN	/SET UP PARAMETER FETCH
	DCA   GTCDF1
	JMS   COMMON	/UNPACK THE PARAMETERS
	JMS   CALLEM	/CALL THE USR
	JMS   RETRNM	/RETURN THE FILE INFORMATION
SPLIT,	JMS   GETARG	/AND THE ERROR STATUS
	CLA
	TAD   EROR
	DCAI  ARGAD
	RETRN ROPEN	/AND SPLIT.


/  ENTRY FOR WRITE FILE OPEN (WOPEN)


WOPEN,	BLOCK 2
	TAD   WOPEN	/MOVE CALLING PARAMETERS
	DCA   ROPEN
	TAD   WOPEN#
	DCA   ROPEN#
	TAD   (3	/FUNCTION CODE IS 3
	JMP   ROPE1	/AND THE REST IS THE SAME


/  ENTRY FOR CLOSING PREVIOUSLY OPENED WRITE FILE (WCLOS)


WCLOS,	BLOCK 2
	TAD   WCLOS	/JUGGLE THE CALLING PARAMS
	DCA   ROPEN
	TAD   WCLOS#
	DCA   ROPEN#
	CLA CLL IAC RTL /FUNCTION CODE IS 4
	DCA   FCODE
	TAD   ROPEN	/SET UP PARAMETER FETCH
	DCA   GTCDF1
	JMS   COMMON	/GET FIRST TWO PARAMS
	JMS   GETARG	/AND THE FILE LENGTH
	DCA   ARG2
	JMS   CALLEM	/CALL THE USR
	JMP   SPLIT	/THATS ALL....


	END



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search