;
; 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