File INSYS.SB (8k SABR macro assembler source file)

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

/INSYS.SB, PAGE 1 OF 3.		(8/12/71 - C.M.MOORE, RICE U., HOUSTON)
/
/THIS FILE CONTAINS ENTRY POINTS: LSYS,RSYS,LINK.
/
/SEE THE LISTING OF FILE 'XPLAIN.IO' FOR A DETAILED EXPLANATION
/OF HOW TO USE THESE ROUTINES.
/
/THE BINARY FILE OF THIS PACKAGE (INSYS.RL) OCCUPIES 1 PAGE OF
/CORE, AND MUST NOT BE LOADED INTO LOCS 0000 TO 1777 OF FIELD 1.
/THIS IS THE USR OVERLAY AREA. IF LOADED INTO THIS AREA, THESE
/ROUTINES WILL TYPE FATAL MONITOR ERROR 4 WHEN CALLED.
/
OPDEF CIF0  6202
OPDEF CIF10 6212
OPDEF TADI  1400
OPDEF DCAI  3400
OPDEF JMSI  4400
OPDEF JMPI  5400
/
	LAP /DISABLE AUTOMATIC PAGING TO CONSERVE SPACE
/
P7700,	7700 /POINTS TO USR. ***MUST BE 1ST LOC ON PAGE***
P7607,	7607 /SYS DEVICE HANDLER ENTRY POINT
IFILEP,	INFILE
P77,	77
P70,	70
P40,	40
M40,	-40
/
/ADDRES LOADS ARG ADDRESS FROM LSYS TO TEM
ADDRES,	0
	TAD I LSYS
	DCA CDFARG
	INC LSYS#
	TADI LSYS#
	DCA TEM
	INC LSYS#
	JMP I ADDRES /CHANGE TO CURRENT DF
/
/FETCH LOADS NEXT ARG AS SPECIFIED BY TEM
FETCH,	0
CDFARG,	HLT /CHANGE TO DF OF ARG
	TADI TEM
	JMP I FETCH /CHANGE TO CURRENT DF
/
/ENTRYP MOVES ENTRY POINT POINTERS TO LSYS, THEN FETCHES 1ST ARG.
ENTRYP,	0
	CLA CMA CLL RTL /SET AC=-3
	TAD ENTRYP
	DCA FETCH
	TADI FETCH
	INC FETCH
	DCA LSYS
	TADI FETCH
	DCA LSYS#
	JMS ADDRES
	JMS FETCH
	JMPI ENTRYP
/

/INSYS.SB, PAGE 2 OF 3. / /SUBROUTINE LINK(IBLK1) ENTRY LINK LINK, BLOCK 2 JMS ENTRYP SPA JMP BADDF /NEGATIVE STARTING BLOCK # FOR .SV FILE DCA AMPS CIF10 JMSI P7700 6 /REQUEST 6 / /AMPS CONVERTS BLANKS(40) TO AMPERSANDS(00) IN BOTH CHARACTERS /OF THE WORD IN THE AC. AMPS, 0 /THIS LOC ALSO USED TO HOLD BLOCK # FOR LINK AND P77 TAD M40 SZA TAD P40 DCA LENTH JMS FETCH P200, AND P7700 CLL RAL SZA RAR TAD LENTH JMPI AMPS / /TYPE FATAL ERROR MESSAGE. (NEGATIVE IBLK1 FOR LINK, I/O ERROR IN RSYS.) /MESSAGE WILL READ: 'FILE ERROR AT LOC NNNNN' BADDF, CALL 1,ERROR ARG FILEMS / /FUNCTION LSYS(NAME,LENTH) ENTRY LSYS FILEMS, TEXT /FILE/ LSYS, BLOCK 2 JMS ENTRYP /GET 1ST WORD OF FILE NAME JMS AMPS DCAI IFILEP CLA CMA CLL RTL/SET AC=-3 DCA ADDRES TAD IFILEP DCA ENTRYP INGF, INC TEM /LOOP TO GET REMAINDER OF 4-WORD FILE NAME JMS FETCH JMS AMPS INC ENTRYP DCAI ENTRYP ISZ ADDRES JMP INGF JMS ADDRES /GET ADDRESS OF LENTH /
/INSYS.SB, PAGE 3 OF 3. / /LOOK UP PERMANENT FILE TAD IFILEP /POINTS TO INPUT FILE NAME DCA INBNUM CIF10 CLA IAC /SYS DEVICE # == 1. JMSI P7700 2 /REQUEST 2 INBNUM, 0 /WILL BE OVERLAID WITH STARTING BLOCK # LENTH, 0 /NEGATIVE OF FILE LENGTH IN BLOCKS JMP INERR /FILE NOT FOUND TAD CDFARG DCA CDFAR2 TAD LENTH CIA CDFAR2, HLT /CHANGE TO DF OF ARG DCAI TEM /STORE LENGTH OF FILE IN BLOCKS TAD INBNUM /LOAD AC WITH STARTING BLOCK # JBACK, RETRN LSYS /ERROR. SET BLOCK # = -1. INERR, CLA CMA JMP JBACK / /SUBROUTINE RSYS(NUM,IBLK1,LOC1) ENTRY RSYS INFILE, BLOCK 2 /NEXT 4 LOCS HOLD INPUT FILE NAME RSYS, BLOCK 2 JMS ENTRYP /GET # OF PAGES SPA /CHECK FOR NEGATIVE # OF BLOCKS TAD M40 /SET UP TO WRITE INSTEAD OF READ SPA CIA CLL RTL RTL RTL DCA NBLKS JMS ADDRES JMS FETCH /GET STARTING BLOCK # DCA IBLK1 JMS ADDRES /GET ADDRESS OF LOC1 TAD CDFARG /GET FIELD OF LOC1 AND P70 TAD NBLKS /SET UP TO READ/WRITE NUM PAGES DCA NBLKS CIF0 JMSI P7607 /JUMP TO SYS HANDLER NBLKS, 0 /# OF PAGES TEM, LOC1, 0 /BUFFER ADDRESS IBLK1, 0 /STARTING BLOCK # JMP BADDF /FATAL I/O ERROR AAPAG1, JMP JBACK 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