Path: utzoo!utgpu!utstat!jarvis.csri.toronto.edu!mailrus!ames!ncar!boulder!sunybcs!bingvaxu!leah!rpi!batcomputer!cornell!rochester!pt.cs.cmu.edu!g.gp.cs.cmu.edu!fryd From: fryd@g.gp.cs.cmu.edu (Michael Fryd) Newsgroups: comp.lang.postscript Subject: Re: LaserWriter II fonts -- HELP Summary: PS Hard disk info - Real World PostScript info Keywords: PostScript, LaserWriter, Hard disk Message-ID: <4177@pt.cs.cmu.edu> Date: 2 Feb 89 22:27:35 GMT References: <771@draken.nada.kth.se> <2198@scolex.sco.COM> <784@draken.nada.kth.se> Organization: Carnegie-Mellon University, CS/RI Lines: 77 The Linotype series of PostScript imagesetters were the first commercially available PostScript printer with a hard disk. The primary extensions to PostScript were: - a disk file name could be given to the 'file' operator (previously only things like %stdin and %stdout could be used) - the operator 'filenameforall' was added which allows the user to provide a filename containing wildcards, and a procedure, and the procedure will be executed once for each matching filename. - the 'findfont' operator was modifed to look on the disk for fonts if the requested font was not found in FontDirectory. - the addition of various maintenance operators such as 'initializedisk' and 'deletefile' Fonts may be placed on the disk simply by placing them in a file named font/FONTNAME. The LaserWriter II NTX has an external SCSI connector to which you can connect a hard disk. This external disk acts just like the internal disk in a Linotype, VT600, or ColorScript 100. The format of these disks is not Macintosh readable. The disk must be formatted by the PostScript printer. The contents of the disk can only be read or written via PostScript commands. The primary purpose of the disk is to hold downloadable fonts, and as overflow for the font cache and internal display list. Although the disk does not provide unlimited virtual memory; prologs and other routines may be stored on the disk and called into memory with a single PostScript command. The easiest way to test for the existence of a disk is to test to see if the filenameforall operator is defined. The following short piece of PostScript is what the Macintosh LaserWriter 5.2 driver uses for determining what fonts are available on a PostScript printer. It sends a list of fonts back to to the host, one per line, followed by a line containing just '*'. The fonts are NOT listed in alphabetical order. This code will work on PostScript printers with or without a hard disk. save /scratch 100 string def FontDirectory{pop = flush}forall systemdict/filenameforall known {(fonts/*){dup length 6 sub 6 exch getinterval = flush} scratch filenameforall } if (*) = flush restore and since someone asked. . . "Real World PostScript" Edited by Stephen F. Roth ISBN 0-201-06663-7 Published by Addison-Wesley first printing: October 1988 Michael Fryd Contributing author, Real World PostScript MEFCO, Inc. AppleLink: MEFCO 2401 Coulter Road AT&T: (412) 751-5557 McKeesport, PA 15131 ARPA: Michael.Fryd@cs.cmu.edu --