.TITLE FCSRES - FCS RESIDENT LIBRARY FILE .IDENT /M2X/ ; ; COPYRIGHT 1974, DIGITAL EQUIPMENT CORP., MAYNARD, MASS. ; ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC. ; ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL ; EQUIPMENT CORPORATION. ; ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY ; OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC. ; ; PETER H. LIPMAN 22-OCT-74 ; ; MODIFIED 29-OCT-79 JGD ADD SUPPORT FOR 4K ANSI FCSRES ; ; THIS FILE DOCUMENTS HOW TO BUILD AN FCS RESIDENT LIBRARY, ; AND IT DEFINES ALL OF THE POSSIBLE MODULES THAT MIGHT GO INTO ; SUCH A LIBRARY. ; ; IT SHOULD BE UNDERSTOOD THAT PRECISELY HOW MUCH GOES INTO FCSRES ; IS ACTUALLY DEPENDENT ON WHICH PROGRAMS ARE GOING TO USE IT AND WHAT ; THOSE PROGRAMS REQUIRE. THE IMPORTANT POINT TO BEAR IN MIND ; IS THAT A PROGRAM LINKING TO FCSRES MAY NOT GET MISSING FCS MODULES ; FROM THE SYSLIB.OLB OBJECT LIBRARY FILE AS WELL. A PROGRAM NEEDING ; FCS MODULES WHICH WERE NOT PLACED IN FCSRES WOULD HAVE NO CHOICE ; BUT TO LINK WITHOUT FCSRES AND USE ALL THE MODULES OUT OF SYSLIB. ; ; FOR THE OBVIOUS REASONS OF SIZE, THE MINIMUM AMOUNT SHOULD BE PUT IN ; FCSRES CONSISTENT WITH THE NEEDS OF THE PROGRAMS USING IT. ; ; THOSE ENTRY POINTS THAT ARE INVOKED BY MACROS ARE DOCUMENTED BELOW ; SO THAT IT IS POSSIBLE TO PICK WHAT SHOULD GO INTO FCSRES. ; ; IT IS INTENDED THAT THIS FILE BE EDITED TO ELIMINATE UNDESIRED ; MODULES FROM FCSRES. ; ; THE ACTUAL BUILDING OF FCSRES INVOLVES THE FOLLOWING: ; 1) ASSEMBLE THIS MODULE ; ; MAC> FCSRES,FCSRES=FCSRES ; ; 2) BUILD THE LIBRARY ; ; SET /UIC=[1,1] ; ; TO BUILD FCSRES FOR A MAPPED SYSTEM: ; ; TKB>[1,1]FCSRES/-HD/MM/PI,LP:,SY:[1,1]FCSRES=[200,200]FCSRES ; TKB>/ ; TKB>STACK=0 ; TKB>PAR=FCSRES:0:20000 ; TKB// ; ; TO BUILD AN FCSRES ON AN UNMAPPED SYSTEM: ; ; TKB>SY:[1,1]FCSRES/-HD/-MM/PI,LP:,SY:[1,1]FCSRES=[200,200]FCSRES ; TKB>/ ; TKB>STACK=0 ; TKB>PAR=FCSRES:140000:20000 ; TKB>// ; .MCALL CALLR, NBOF$L,FDOF$L FDOF$L NBOF$L .PSECT $$RESL ; ; OPENING FILES .ENABLE LSB ; ; .GLOBL .OPEN ;OPEN$X, OPNS$X, OPNT$X ;.OPFID::CALLR .OPEN ;OFID$X CAN USE THE OPEN$X CODE ; .GLOBL .OPFNB ;OFNB$X - USED FOR FORTAN RUN TIME .OPEN:: ; OPEN BY CHECKING FOR FILEID. ; IF NOT PRESENT PARSE AND USE ; OPFNB TO USE CREATED FNB TST F.FNB+N.FID(R0) ; FILE ID NON-ZERO? BNE 10$ ; YES, TREAT AS OFID$ CALL 20$ ; NO, PARSE FILESPECS BCC 10$ ; IF IK, CALL OPFNB RETURN ; ELSE RETURN ERROR .OPFID:: 10$: CALLR .OPFNB ; MAP OFID TO OPFNB ; 20$: JSR R5, .SAVR1 ; SAVE R1-R5 MOV @#.FSRPT,R1 ; POINT TO FILE WORK AREA TST 102(R1) ; FILE OWNER<>0 -> INITED BNE 30$ ; YES, INITIALIZED BEFORE CALL ..FINI ; NO, DO IT YOURSELF 30$: MOV R0,R1 ; MAKE THE FNB ADDRESS ADD #F.FNB,R1 ; MOV F.DSPT(R0),R2 ; AND DATA SET POINTER MOV F.DFNB(R0),R3 ; AND DEFAULT FNB CALL .PARSE ; PARSE NAME RETURN ; RESTORE REGISTERS .DSABL LSB ; ; CLOSING FILES ; .GLOBL .CLOSE ;CLOSE$ ; ; RECORD I/O ; .GLOBL .GET,.PUT ;GET$, AND PUT$, GET$R, AND PUT$R .PUTSQ::CALLR .PUT ;PUT$S CAN USE PUT$ CODE .GETSQ::CALLR .GET ;GET$S CAN USE GET$ CODE ; ; BLOCK I/O ; .GLOBL .READ,.WRITE,.WAIT ;READ$, WRITE$, AND WAIT$ ; ; DELETE FILES ; .GLOBL .DELET ;DELET$ .GLOBL .MRKDL ;USED BY OPNT$D ; ; THE FOLLOWING MODULE IS NORMALLY NOT USED, DELET$ IS MUCH MORE COMMON ; ; .GLOBL .DLFNB ;DELETE BY FILE NAME BLOCK ; JGD INSERT ; ; ; FILE EXTENSION ; .GLOBL .EXTND ; ; DIRECTORY OPERATIONS ; .GLOBL .FIND,.ENTER,.REMOV ; ; FILE POSITIONING ; .GLOBL .POINT,.MARK ; ; ESTABLISH DIRECTORY ID ; .GLOBL .GTDID,.GTDIR ; ; RENAME FILE ; ; .GLOBL .RENAM ; JGD INSERT ; ; ; READ AND WRITE FILE STORAGE REGION CELLS ; .GLOBL .RDFDR,.WDFDR,.RFOWN,.WFOWN,.RDFFP,.WDFFP ; ; ISSUE GENERAL QI/O AND SPECIAL MAGTAPE FUNCTION QI/OS ; ; .GLOBL .XQIO,.CTRL ; JGD INSERT ; ; ; .END