; ; PFK.LIT 06/17/87 NEW ED SCHRAYER ; ; Modified from RDONLY by Irv Bromberg ; ; Donated to AMUS from NY-AMUS 06/17/87 ; ; PURPOSE : PFK will determine the correct function key translation file ; for the desired terminal and, if not already in user ; memory, will load the module. ; ; USAGE : 1> The translation file (Driver-name.PFK) file must permanently ; reside on DSK0:1,4 (SYS:) ; ; 2> a) From the terminal type 'PFK' ; ; OR ; ; b) During the force commands in the .INI file just add ; the line 'PFK' ; ; for example : FORCE JOB3 ; MEMORY 64K ; LOG 2,2 ; SET DSKERR ; >> ADD HERE >>>>> PFK ; LOG DSK3:60,0 ; RUN MENU ; ; WAIT JOB3 ; OBJNAM PFK.LIT RADIX 10 VMAJOR=1 VMINOR=0 VEDIT=0 SEARCH SYS SEARCH SYSSYM SEARCH TRM JCB=A0 TDV=A2 DDB=A3 Module=A4 TCB=A5 Atemp=A6 TDVNAM=D0 Size=D1 PHDR -1,0,PH$REE!PH$REU MOV JOBCUR,JCB MOV JOBTRM(JCB),TCB ; get user's TCB MOV T.TDV(TCB),TDV ; get user's TDV MOV -4(TDV),TDVNAM ; get user's TDVNAM LEA DDB,JOBRBK(JCB) ; use JOBRBK as temp DDB MOV TDVNAM,D.FIL(DDB) ; look for MEM:TDVNAM.PFK first MOVW #[PFK],D.EXT(DDB) ; SRCH D.FIL(DDB),Module,F.USR ; search MEM: only BNE Disk ; not found, get from disk TYPESP <? module> ; found, notify user and exit PFILE @DDB TYPECR < already exists in memory.> EXIT ; all done ; ;TDVNAM.PFK must be loaded from disk so fetch SYS:TDVNAM.PFK ; Disk: MOVW #[DSK],D.DEV(DDB) ; [DSK] CLRW D.DRV(DDB) ; drive #0 CLR D.DVR(DDB) ; make monitor get the driver MOVW #1_8!4,D.PPN(DDB) ; [1,4] MOV TDVNAM,D.FIL(DDB) ; use tdvnam as file name FETCH @DDB,Module,F.USR ; fetch but search MEM: only BEQ OK ; was fetch successful? yes. TYPE <? > ; .PFK file was not found PFILE @DDB ; on DSK0:[1,4] TYPECR < not found> ; notify user and exit EXIT ; OK: ORW #FIL,-8(Module) ; prevent EXIT from deleting it TYPESP < module> ; notify user and exit PFILE @DDB TYPECR < loaded into memory.> EXIT END