{"id":1850,"date":"2026-04-25T10:00:00","date_gmt":"2026-04-25T08:00:00","guid":{"rendered":"https:\/\/www.pagetable.com\/?p=1850"},"modified":"2026-04-23T23:00:20","modified_gmt":"2026-04-23T21:00:20","slug":"pacificpage-p%c2%b7e-postscript-cartridge-for-hp-laserjet-ii-iii","status":"publish","type":"post","link":"https:\/\/www.pagetable.com\/?p=1850","title":{"rendered":"PacificPage P\u00b7E PostScript Cartridge for HP LaserJet II\/III"},"content":{"rendered":"<p>PostScript came to the desktop in 1985 with the Apple LaserWriter, and within a year or two several other companies had joined Adobe&rsquo;s licensee list. HP was late \u2014 its own Adobe PostScript cartridge for the LaserJet II\/III family didn&rsquo;t ship until 1991.<\/p>\n<p>Pacific Data Products started filling the gap <a href=\"https:\/\/www.deseret.com\/1989\/10\/22\/18829418\/cheaper-laser-printers-enable-anyone-to-be-publishing-tycoon\/\">in 1989<\/a> with its &ldquo;<strong>PacificPage PostScript Language Emulation Cartridge<\/strong>&rdquo;, which<\/p>\n<ul>\n<li>uses a <strong>reimplementation<\/strong> of the PostScript interpreter in place of Adobe&rsquo;s reference code and<\/li>\n<li>Bitstream&rsquo;s <strong>clone fonts<\/strong> in place of the Linotype\/ITC originals.<\/li>\n<\/ul>\n<p>And all this in a clever custom cartridge that was designed for cheap updates.<\/p>\n<p><a href=\"docs\/postscript_cartridge_pacific_data\/postscript_cartridge_pacific_data_case.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"docs\/postscript_cartridge_pacific_data\/postscript_cartridge_pacific_data_case.jpg\" height=\"298\" width=\"400\" alt=\"\" \/><\/a><\/p>\n<h2 id=\"article-series\">Article Series<\/h2>\n<p>This is the third article in a series that dissects ROMs related to the HP LaserJet family:<\/p>\n<table>\n<thead>\n<tr>\n<th> Year <\/th>\n<th> Name <\/th>\n<th> Description <\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td> <strong>1990<\/strong> <\/td>\n<td> <strong>PacificPage P\u00b7E (\u2190 this article)<\/strong> <\/td>\n<td> <strong>Phoenix PostScript Level 1 emulation<\/strong> <\/td>\n<\/tr>\n<tr>\n<td> 1991 <\/td>\n<td> <a href=\"https:\/\/www.pagetable.com\/?p=1721\">HP LaserJet PostScript Cartridge<\/a> <\/td>\n<td> Adobe PostScript Level 1 <\/td>\n<\/tr>\n<tr>\n<td> 1991 <\/td>\n<td> <a href=\"https:\/\/www.pagetable.com\/?p=1673\">HP LaserJet III PostScript Cartridge Plus<\/a> <\/td>\n<td> Adobe PostScript Level 2 <\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>HP&rsquo;s own Adobe cartridges shipped in 1991 at roughly $695; PacificPage P\u00b7E<sup id=\"fnref:1\"><a href=\"#fn:1\" rel=\"footnote\">1<\/a><\/sup> undercut them at $495.<\/p>\n<h2 id=\"cartridge\">Cartridge<\/h2>\n<p>The cartridge is about 9&#215;14 cm in size \u2014 the same dimensions as HP&rsquo;s own font and PostScript cartridges, so it plugs straight into the LaserJet cartridge slot.<\/p>\n<p><a href=\"docs\/postscript_cartridge_pacific_data\/postscript_cartridge_pacific_data_case_front.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"docs\/postscript_cartridge_pacific_data\/postscript_cartridge_pacific_data_case_front.jpg\" height=\"396\" width=\"270\" alt=\"\" \/><\/a><\/p>\n<p><a href=\"docs\/postscript_cartridge_pacific_data\/postscript_cartridge_pacific_data_case_side.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"docs\/postscript_cartridge_pacific_data\/postscript_cartridge_pacific_data_case_side.jpg\" height=\"80\" width=\"270\" alt=\"\" \/><\/a><\/p>\n<p><a href=\"docs\/postscript_cartridge_pacific_data\/postscript_cartridge_pacific_data_case_back.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"docs\/postscript_cartridge_pacific_data\/postscript_cartridge_pacific_data_case_back.jpg\" height=\"403\" width=\"270\" alt=\"\" \/><\/a><\/p>\n<p>The front says<\/p>\n<blockquote>\n<p>POSTSCRIPT\u00ae LANGUAGE EMULATION<br \/>\nPacificPage\u2122 P\u00b7E<br \/>\nInstall in left slot only.<br \/>\n\u00a9 1990 Pacific Data Products, Inc.<br \/>\nMade in the U.S.A.<br \/>\nPhoenixPage<br \/>\nPACIFIC DATA PRODUCTS<\/p>\n<\/blockquote>\n<p>The back carries a plain white sticker:<\/p>\n<blockquote>\n<p>010570 REV G VERSION 4.1<br \/>\nPACIFIC PAGE P.E.<br \/>\nIIP SINGLE SLOT; IID\/III\/IIID LEFT SLOT<\/p>\n<\/blockquote>\n<h2 id=\"board\">Board<\/h2>\n<p><a href=\"docs\/postscript_cartridge_pacific_data\/postscript_cartridge_pacific_data_board_front.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"docs\/postscript_cartridge_pacific_data\/postscript_cartridge_pacific_data_board_front.jpg\" height=\"210\" width=\"380\" alt=\"\" \/><\/a><\/p>\n<p><a href=\"docs\/postscript_cartridge_pacific_data\/postscript_cartridge_pacific_data_board_back.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"docs\/postscript_cartridge_pacific_data\/postscript_cartridge_pacific_data_board_back.jpg\" height=\"217\" width=\"390\" alt=\"\" \/><\/a><\/p>\n<p>The board contains<\/p>\n<ul>\n<li>4x 74ALS244AN: Octal Buffer and Line Driver with 3-State Output [U1-U4]<\/li>\n<li>1x Lattice GAL16V8-25LP: Generic Array Logic, socketed [U5]<\/li>\n<li>2x 27C512 EPROM, 64 KB, DIP28 in a DIP32 socket [U6, U9]<\/li>\n<li>2x Sharp mask ROM, 256 KB, 27C020 pinout, DIP32 [U7, U10]<\/li>\n<li>2x Toshiba TC534000P mask ROM, 512 KB, 27C040 pinout, DIP32 [U8, U11]<\/li>\n<\/ul>\n<p>The Sharp mask ROMs are marked with<\/p>\n<blockquote>\n<p>PN 012132 REV A<br \/>\nPACIFIC DATA<br \/>\n\u00a9 1991 SHARP JAPAN<br \/>\n9109 D<\/p>\n<\/blockquote>\n<p>and<\/p>\n<blockquote>\n<p>PN 012133 REV A<br \/>\nPACIFIC DATA<br \/>\n\u00a9 1991 SHARP JAPAN<br \/>\n9109 D<\/p>\n<\/blockquote>\n<p>The Toshiba mask ROMs are marked with<\/p>\n<blockquote>\n<p>T 010732 9114EBI<br \/>\nTC534000P-F985<br \/>\nPACIFIC DATA<\/p>\n<\/blockquote>\n<p>and<\/p>\n<blockquote>\n<p>T 010733 9114EBI<br \/>\nTC534000P-F986<br \/>\nPACIFIC DATA<\/p>\n<\/blockquote>\n<p>The socketed EPROMs and the GAL16V8 carry printed paper labels \u2014 <code>013247 REV. A<\/code>\/<code>013249 REV. A<\/code>, and <code>013112 REV. A<\/code> respectively.<\/p>\n<p>Here is the PCB with the GAL and the ROMs removed:<\/p>\n<p><a href=\"docs\/postscript_cartridge_pacific_data\/postscript_cartridge_pacific_data_board_front_empty.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"docs\/postscript_cartridge_pacific_data\/postscript_cartridge_pacific_data_board_front_empty.jpg\" height=\"215\" width=\"388\" alt=\"\" \/><\/a><\/p>\n<p>The silkscreen reads <code>\u00a9 1990 PACIFIC DATA \/ GENERIC FONT \/ P\/N 009785<\/code>.<\/p>\n<h2 id=\"rom\">ROM<\/h2>\n<p>These are the raw ROM dumps:<\/p>\n<ul>\n<li>U6: <a href=\"docs\/postscript_cartridge_pacific_data\/013247a.bin\">013247a (patch A)<\/a>, 64 KB, MD5 f3c5865a23b2e4a5dd5c034aa22a5762<\/li>\n<li>U9: <a href=\"docs\/postscript_cartridge_pacific_data\/013249a.bin\">013249a (patch B)<\/a>, 64 KB, MD5 cf11aab05302ba88fb43c682703217b7<\/li>\n<li>U7: <a href=\"docs\/postscript_cartridge_pacific_data\/012132a.bin\">012132a (code A)<\/a>, 256 KB, MD5 df72becdd0f3aa02587a2da36ce17ec8<\/li>\n<li>U10: <a href=\"docs\/postscript_cartridge_pacific_data\/012133a.bin\">012133a (code B)<\/a>, 256 KB, MD5 bffd0198cde16ba2e42a3ea50253bb57<\/li>\n<li>U8: <a href=\"docs\/postscript_cartridge_pacific_data\/010732.bin\">010732 (fonts A)<\/a>, 512 KB, MD5 2147d45b2ec897f2ced64ea16fba4586<\/li>\n<li>U11: <a href=\"docs\/postscript_cartridge_pacific_data\/010733.bin\">010733 (fonts B)<\/a>, 512 KB, MD5 3987a76938c38f4bbb3b4a8cbabb35a3<\/li>\n<li>U5: <a href=\"docs\/postscript_cartridge_pacific_data\/gal.txt\">013112 (GAL16V8 fuse map)<\/a><\/li>\n<\/ul>\n<p>Since the LaserJet&rsquo;s Motorola 68000 CPU reads 16 bits at a time, adjacent bytes are interleaved from each pair to form three <a href=\"docs\/postscript_cartridge_pacific_data\/combine.py\">combined<\/a> 16-bit images:<\/p>\n<ul>\n<li><a href=\"docs\/postscript_cartridge_pacific_data\/fonts_010732_010733.bin\">PacificPage P\u00b7E Fonts<\/a>, 1 MB, MD5 0323b2c050559119034c45620eaf6855<\/li>\n<li><a href=\"docs\/postscript_cartridge_pacific_data\/code_012132a_012133a.bin\">PacificPage P\u00b7E Code 4.00<\/a>, 512 KB, MD5 07cf6a2d0c89d2cc4647db8eb6f0d5f0<\/li>\n<li><a href=\"docs\/postscript_cartridge_pacific_data\/patch_013247a_013249a.bin\">PacificPage P\u00b7E Patch 4.10<\/a>, 128 KB, MD5 ea3dd97c5fb2241ea470977cb72409b3<\/li>\n<\/ul>\n<p>Both the code and the patch images start with <code>SYST<\/code> \u2014 the magic signature the LaserJet&rsquo;s boot ROM checks to identify a code cartridge rather than a pure font cartridge. The images also contain the following messages near the beginning:<\/p>\n<blockquote>\n<p>PacPage<br \/>\nCopyright 1989, 1990 by Pacific Data Products, Inc. 9125 Rehco Road San Diego Califonia [sic] 92121 (619) 552-0880.<\/p>\n<\/blockquote>\n<p>The code ROM contains a version number of &ldquo;4.00&rdquo;; the patch ROM says &ldquo;4.10&rdquo;.<\/p>\n<h2 id=\"the-patch-eprom\">The Patch EPROM<\/h2>\n<p>Mask ROMs are the cheapest way to hold large amounts of code once a design is stable and committed to volume, but respinning one for a bug fix is slow and expensive. EPROMs are the opposite: more expensive per chip, but programmable in small batches at the factory. Put both on the same board and let a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Generic_array_logic\">GAL16V8<\/a> decide at address-decode time which chip answers which read, and you get the best of both: ship the stable interpreter as mask ROM, and override anything that needs fixing after release by programming a fresh EPROM instead of cutting a new mask ROM. That&rsquo;s what this cartridge does.<\/p>\n<p>In this configuration of the GAL, the first 128 KB of read accesses that would go to the code mask ROM are redirected to the patch EPROM instead, so the CPU sees a single contiguous 512 KB code window assembled from two physical chips:<\/p>\n<pre><code>            code mask ROM (4.00)                  patch EPROM (4.10)\n            512 KB                                128 KB\n\n0x00000  \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510                \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n         \u2502   first 128 KB     \u2502  \u25c0\u2500\u2500 override  \u2502     128 KB         \u2502\n         \u2502   (hidden)         \u2502                \u2502                    \u2502\n0x20000  \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524                \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n         \u2502                    \u2502\n         \u2502                    \u2502\n         \u2502   next 384 KB      \u2502\n         \u2502                    \u2502\n         \u2502                    \u2502\n0x80000  \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518<\/code><\/pre>\n<p>The mask ROM carries version <code>4.00<\/code>, the EPROM carries <code>4.10<\/code>, so the EPROM is a post-release bug-fix pass over the first 128 KB of the original interpreter.<\/p>\n<p>The EPROMs and the GAL sit in sockets rather than soldered down, so upgrading the firmware is a chip swap, though nothing in the user documentation treats that as an end-user path; the User&rsquo;s Guide points owners at a mail-in upgrade channel via the registration card.<\/p>\n<p>The mechanism isn&rsquo;t fixed at 128 KB: the patch sockets are DIP32 even though this cartridge fits them with smaller DIP28 EPROMs (pin-offset in). Dropping in 27C020 or 27C040 parts with a matching fuse map could expand the patch window to any 2\u207f-aligned region up to the full 512 KB \u2014 overriding the whole interpreter if needed.<\/p>\n<h2 id=\"rom-contents\">ROM Contents<\/h2>\n<p>The 1.5 MB of firmware (512 KB code with a 128 KB patch + 1 MB fonts) breaks down into three components, each covered in its own section below:<\/p>\n<ol>\n<li><strong>PhoenixPage<\/strong>: Phoenix Technologies&#8217; PostScript interpreter compiled for the 68000.<\/li>\n<li><strong>Bitstream Speedo fonts<\/strong>: the 35 outline typefaces the interpreter draws from.<\/li>\n<li><strong>HP LaserJet integration<\/strong>: the glue that binds the interpreter to the printer&rsquo;s hardware.<\/li>\n<\/ol>\n<h2 id=\"phoenixpage\">PhoenixPage<\/h2>\n<p>Near the end of the code ROM:<\/p>\n<blockquote>\n<p>PhoenixPage &trade;<br \/>\nCopyright &copy; 1987,1988,1989,1990 Phoenix Technologies Ltd.<\/p>\n<\/blockquote>\n<p>Adobe defined PostScript, published a spec (incomplete, hinting stayed proprietary), and licensed its interpreter to OEMs for per-unit royalties. Phoenix Technologies reimplemented PostScript clean-room and sold the clone cheaper. This 1990 build is Level 1; the Products Catalogue (p. 8, see below) gives the PhoenixPage version as 51.9.<\/p>\n<h2 id=\"font-engines:-type-1-and-speedo\">Font Engines: Type 1 and Speedo<\/h2>\n<p>Any PostScript interpreter has to rasterize <strong>Adobe Type 1 fonts<\/strong> at minimum, because a conforming PostScript job can embed Type 1 font data inline and the interpreter must install and use those fonts for the duration of the job.<\/p>\n<p>For the <strong>built-in<\/strong> fonts, however, Pacific Data skipped Type 1 entirely. They shipped Bitstream&rsquo;s <strong>Speedo<\/strong> format<sup id=\"fnref:2\"><a href=\"#fn:2\" rel=\"footnote\">2<\/a><\/sup> instead, a scalable outline format Bitstream had developed in the mid-1980s as its own entrant in the emerging <a href=\"https:\/\/en.wikipedia.org\/wiki\/Font_wars\">font wars<\/a>. Adobe&rsquo;s Type 1 (1984) owned the PostScript printing market and Adobe refused to publish its hinting algorithm; Apple announced TrueType in 1989 specifically to break that lock; Bitstream positioned Speedo as the third option: an independent, licensable scalable format for OEMs who wanted neither to pay Adobe nor wait for TrueType to mature.<\/p>\n<p>Bitstream pushed Speedo aggressively across every segment it could reach. At the 1987 Seybold conference <a href=\"https:\/\/techmonitor.ai\/technology\/bitstream_sets_the_font_standard_for_clonemakers\">six PostScript-clone vendors including Phoenix had committed<\/a> to Bitstream&rsquo;s Fontware Quality Enhancement Module, effectively lining up every non-Adobe PostScript interpreter on the market behind a single Bitstream-supplied font stack. Around the same time Atari licensed the Speedo rasterizer from Bitstream to build <strong>SpeedoGDOS<\/strong>, the scalable-font add-on to its Graphics Device Operating System; Speedo also shipped in early versions of WordPerfect and on Windows 3.0 as Bitstream FaceLift (1990). And in March 1991 Bitstream <a href=\"https:\/\/en.wikipedia.org\/wiki\/Bitstream_Speedo_Fonts\">contributed the Speedo format and eight fonts to the X Consortium<\/a>, where it shipped in X11 until being retired in 2005.<br \/>\nTen SCCS-tagged C source filenames leak through the code image, all matching <a href=\"https:\/\/github.com\/rdebath\/SLS-1.02\/tree\/master\/usr\/src\/X11\/mit\/fonts\/lib\/font\/Speedo\">Bitstream&rsquo;s Speedo rasterizer sources<\/a>: <code>do_char.c<\/code>, <code>do_trns.c<\/code>, <code>out_outl.c<\/code>, <code>out_scrn.c<\/code>, <code>out_bl2d.c<\/code>, <code>out_blk.c<\/code>, <code>out_util.c<\/code>, <code>set_spcs.c<\/code>, <code>set_trns.c<\/code>, <code>reset.c<\/code><\/p>\n<h2 id=\"built-in-fonts\">Built-in Fonts<\/h2>\n<p>The cartridge ships the 35 PostScript base fonts, but not Adobe&rsquo;s originals. Adobe had paid Linotype and ITC for trademark-cleared licenses: Times, Helvetica, Palatino], and the rest; Pacific Data didn&rsquo;t, and ships Bitstream&rsquo;s metric-compatible lookalikes in Speedo format under Bitstream&rsquo;s own names. PostScript jobs still reference the Adobe names; the cartridge resolves each to its Bitstream face.<\/p>\n<p>The fonts ROM is structured as a small filesystem. It opens with an 8-byte header (32-bit BE count+1, 32-bit BE base address), followed by 27 \u00d7 24-byte directory entries starting at offset 8:<\/p>\n<table>\n<thead>\n<tr>\n<th> Offset in entry <\/th>\n<th> Field <\/th>\n<th> Size <\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td> 0 <\/td>\n<td> ASCIIZ filename, <code>bt22XXXX.sp<\/code>, NUL-padded to 16 bytes <\/td>\n<td> 16 B <\/td>\n<\/tr>\n<tr>\n<td> 16 <\/td>\n<td> 32-bit BE absolute file start address (offset in the ROM image + base address) <\/td>\n<td> 4 B <\/td>\n<\/tr>\n<tr>\n<td> 20 <\/td>\n<td> 32-bit BE length-like field \u2014 doesn&rsquo;t match the actual file span; purpose unclear <\/td>\n<td> 4 B <\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>File data starts right after the directory.<\/p>\n<p>The fonts can be extracted with <a href=\"docs\/postscript_cartridge_pacific_data\/extract_fonts.py\">this script<\/a>:<\/p>\n<table>\n<thead>\n<tr>\n<th> File <\/th>\n<th> Face <\/th>\n<th> PostScript name <\/th>\n<th> Built <\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td> <a href=\"docs\/postscript_cartridge_pacific_data\/fonts\/bt223000.sp\">bt223000.sp<\/a> <\/td>\n<td> Dutch 801 Roman <\/td>\n<td> <code>Times-Roman<\/code> <\/td>\n<td> 12 Oct 89 <\/td>\n<\/tr>\n<tr>\n<td> <a href=\"docs\/postscript_cartridge_pacific_data\/fonts\/bt223001.sp\">bt223001.sp<\/a> <\/td>\n<td> Dutch 801 Italic <\/td>\n<td> <code>Times-Italic<\/code> <\/td>\n<td> 29 Aug 89 <\/td>\n<\/tr>\n<tr>\n<td> <a href=\"docs\/postscript_cartridge_pacific_data\/fonts\/bt223002.sp\">bt223002.sp<\/a> <\/td>\n<td> Dutch 801 Bold <\/td>\n<td> <code>Times-Bold<\/code> <\/td>\n<td> 29 Aug 89 <\/td>\n<\/tr>\n<tr>\n<td> <a href=\"docs\/postscript_cartridge_pacific_data\/fonts\/bt223003.sp\">bt223003.sp<\/a> <\/td>\n<td> Dutch 801 Bold Italic <\/td>\n<td> <code>Times-BoldItalic<\/code> <\/td>\n<td> 12 Oct 89 <\/td>\n<\/tr>\n<tr>\n<td> <a href=\"docs\/postscript_cartridge_pacific_data\/fonts\/bt223004.sp\">bt223004.sp<\/a> <\/td>\n<td> Swiss 721 <\/td>\n<td> <code>Helvetica<\/code> <\/td>\n<td> 28 Aug 89 <\/td>\n<\/tr>\n<tr>\n<td> <a href=\"docs\/postscript_cartridge_pacific_data\/fonts\/bt223006.sp\">bt223006.sp<\/a> <\/td>\n<td> Swiss 721 Bold <\/td>\n<td> <code>Helvetica-Bold<\/code> <\/td>\n<td> 28 Aug 89 <\/td>\n<\/tr>\n<tr>\n<td> <a href=\"docs\/postscript_cartridge_pacific_data\/fonts\/bt223008.sp\">bt223008.sp<\/a> <\/td>\n<td> Courier 10 Pitch <\/td>\n<td> <code>Courier<\/code> <\/td>\n<td> 12 Oct 89 <\/td>\n<\/tr>\n<tr>\n<td> <a href=\"docs\/postscript_cartridge_pacific_data\/fonts\/bt223010.sp\">bt223010.sp<\/a> <\/td>\n<td> Courier Bold 10 Pitch <\/td>\n<td> <code>Courier-Bold<\/code> <\/td>\n<td> 12 Oct 89 <\/td>\n<\/tr>\n<tr>\n<td> <a href=\"docs\/postscript_cartridge_pacific_data\/fonts\/bt223012.sp\">bt223012.sp<\/a> <\/td>\n<td> Symbol <\/td>\n<td> <code>Symbol<\/code> <\/td>\n<td> 28 Aug 89 <\/td>\n<\/tr>\n<tr>\n<td> <a href=\"docs\/postscript_cartridge_pacific_data\/fonts\/bt223013.sp\">bt223013.sp<\/a> <\/td>\n<td> Zapf Calligraphic 801 <\/td>\n<td> <code>Palatino-Roman<\/code> <\/td>\n<td> 02 Dec 89 <\/td>\n<\/tr>\n<tr>\n<td> <a href=\"docs\/postscript_cartridge_pacific_data\/fonts\/bt223014.sp\">bt223014.sp<\/a> <\/td>\n<td> Zapf Calligraphic 801 Italic <\/td>\n<td> <code>Palatino-Italic<\/code> <\/td>\n<td> 03 Dec 89 <\/td>\n<\/tr>\n<tr>\n<td> <a href=\"docs\/postscript_cartridge_pacific_data\/fonts\/bt223015.sp\">bt223015.sp<\/a> <\/td>\n<td> Zapf Calligraphic 801 Bold <\/td>\n<td> <code>Palatino-Bold<\/code> <\/td>\n<td> 02 Dec 89 <\/td>\n<\/tr>\n<tr>\n<td> <a href=\"docs\/postscript_cartridge_pacific_data\/fonts\/bt223016.sp\">bt223016.sp<\/a> <\/td>\n<td> Zapf Calligraphic 801 Bold Italic <\/td>\n<td> <code>Palatino-BoldItalic<\/code> <\/td>\n<td> 03 Dec 89 <\/td>\n<\/tr>\n<tr>\n<td> <a href=\"docs\/postscript_cartridge_pacific_data\/fonts\/bt223017.sp\">bt223017.sp<\/a> <\/td>\n<td> Geometric 711 Book <\/td>\n<td> <code>AvantGarde-Book<\/code> <\/td>\n<td> 01 Dec 89 <\/td>\n<\/tr>\n<tr>\n<td> <a href=\"docs\/postscript_cartridge_pacific_data\/fonts\/bt223018.sp\">bt223018.sp<\/a> <\/td>\n<td> Geometric 711 Book Oblique <\/td>\n<td> <code>AvantGarde-BookOblique<\/code> <\/td>\n<td> 01 Dec 89 <\/td>\n<\/tr>\n<tr>\n<td> <a href=\"docs\/postscript_cartridge_pacific_data\/fonts\/bt223019.sp\">bt223019.sp<\/a> <\/td>\n<td> Geometric 711 Demi <\/td>\n<td> <code>AvantGarde-Demi<\/code> <\/td>\n<td> 01 Dec 89 <\/td>\n<\/tr>\n<tr>\n<td> <a href=\"docs\/postscript_cartridge_pacific_data\/fonts\/bt223020.sp\">bt223020.sp<\/a> <\/td>\n<td> Geometric 711 Demi Oblique <\/td>\n<td> <code>AvantGarde-DemiOblique<\/code> <\/td>\n<td> 01 Dec 89 <\/td>\n<\/tr>\n<tr>\n<td> <a href=\"docs\/postscript_cartridge_pacific_data\/fonts\/bt223021.sp\">bt223021.sp<\/a> <\/td>\n<td> Revival 711 Light <\/td>\n<td> <code>Bookman-Light<\/code> <\/td>\n<td> 03 Dec 89 <\/td>\n<\/tr>\n<tr>\n<td> <a href=\"docs\/postscript_cartridge_pacific_data\/fonts\/bt223022.sp\">bt223022.sp<\/a> <\/td>\n<td> Revival 711 Light Italic <\/td>\n<td> <code>Bookman-LightItalic<\/code> <\/td>\n<td> 04 Dec 89 <\/td>\n<\/tr>\n<tr>\n<td> <a href=\"docs\/postscript_cartridge_pacific_data\/fonts\/bt223023.sp\">bt223023.sp<\/a> <\/td>\n<td> Revival 711 Demi <\/td>\n<td> <code>Bookman-Demi<\/code> <\/td>\n<td> 04 Dec 89 <\/td>\n<\/tr>\n<tr>\n<td> <a href=\"docs\/postscript_cartridge_pacific_data\/fonts\/bt223024.sp\">bt223024.sp<\/a> <\/td>\n<td> Revival 711 Demi Italic <\/td>\n<td> <code>Bookman-DemiItalic<\/code> <\/td>\n<td> 04 Dec 89 <\/td>\n<\/tr>\n<tr>\n<td> <a href=\"docs\/postscript_cartridge_pacific_data\/fonts\/bt223029.sp\">bt223029.sp<\/a> <\/td>\n<td> Chancery 801 Medium Italic <\/td>\n<td> <code>ZapfChancery-MediumItalic<\/code> <\/td>\n<td> 04 Dec 89 <\/td>\n<\/tr>\n<tr>\n<td> <a href=\"docs\/postscript_cartridge_pacific_data\/fonts\/bt223030.sp\">bt223030.sp<\/a> <\/td>\n<td> ITC Zapf Dingbats <\/td>\n<td> <code>ZapfDingbats<\/code> <\/td>\n<td> 01 Dec 89 <\/td>\n<\/tr>\n<tr>\n<td> <a href=\"docs\/postscript_cartridge_pacific_data\/fonts\/bt223031.sp\">bt223031.sp<\/a> <\/td>\n<td> Century 702 <\/td>\n<td> <code>NewCenturySchlbk-Roman<\/code> <\/td>\n<td> 30 Nov 89 <\/td>\n<\/tr>\n<tr>\n<td> <a href=\"docs\/postscript_cartridge_pacific_data\/fonts\/bt223032.sp\">bt223032.sp<\/a> <\/td>\n<td> Century 702 Italic <\/td>\n<td> <code>NewCenturySchlbk-Italic<\/code> <\/td>\n<td> 30 Nov 89 <\/td>\n<\/tr>\n<tr>\n<td> <a href=\"docs\/postscript_cartridge_pacific_data\/fonts\/bt223033.sp\">bt223033.sp<\/a> <\/td>\n<td> Century 702 Bold <\/td>\n<td> <code>NewCenturySchlbk-Bold<\/code> <\/td>\n<td> 30 Nov 89 <\/td>\n<\/tr>\n<tr>\n<td> <a href=\"docs\/postscript_cartridge_pacific_data\/fonts\/bt223034.sp\">bt223034.sp<\/a> <\/td>\n<td> Century 702 Bold Italic <\/td>\n<td> <code>NewCenturySchlbk-BoldItalic<\/code> <\/td>\n<td> 30 Nov 89 <\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>The 27 files cover the 35 PostScript faces; the missing 8 are synthesized at runtime from the others<sup id=\"fnref:3\"><a href=\"#fn:3\" rel=\"footnote\">3<\/a><\/sup>.<\/p>\n<h2 id=\"hp-laserjet-integration\">HP LaserJet Integration<\/h2>\n<p>Beyond the PostScript interpreter and font outlines, the ROM carries a layer of LaserJet-specific glue that ties PhoenixPage to the printer&rsquo;s user interface and error-handling paths.<\/p>\n<p>The cartridge drives status and error messages on the LaserJet&rsquo;s 15-character front-panel LCD: <code>Init    PacPage<\/code>, <code>CART    RESET<\/code>, <code>OUT OF  PAPER<\/code>, <code>PAPER   JAMMED<\/code>, <code>TONER   LOW<\/code>, <code>Font    Page<\/code>, <code>Test    Page<\/code>, and so on, plus a full set of names for the 68000 CPU exceptions it can catch. While a job is arriving, the LCD shows a running byte count (<code>XXXXK File Size<\/code>) until the firmware sees the end-of-file <code>^D<\/code> (User&rsquo;s Guide p. 3-10).<\/p>\n<h2 id=\"postscript-files-in-rom\">PostScript Files in ROM<\/h2>\n<p>Two test pages are embedded as PostScript source in the ROM:<\/p>\n<table>\n<tr>\n<td width=\"340\"><a href=\"docs\/postscript_cartridge_pacific_data\/ps\/1.pdf\"><img loading=\"lazy\" decoding=\"async\" src=\"docs\/postscript_cartridge_pacific_data\/ps\/fontpage_small.jpg\" width=\"319\" height=\"413\"\/><\/a><\/td>\n<td valign=\"top\"><b>Font Sample Page.<\/b> Displays the ten Bitstream typefaces in Normal \/ Bold \/ Italic \/ Bold-Italic across three point sizes, headed &#8220;Pacific Data Products, Inc. \/ PacificPage\u2122 PERSONAL\u00b7EDITION Fonts&#8221;. A footnote points the reader to the User&#8217;s Manual for &#8220;Apple LaserWriter\u00ae equivalent font family names&#8221;. A developer comment in the source reads: <i>&#8220;Helen Quach and Lee Oeth are the Funky Font Meisters of the known universe!&#8221;<\/i><br \/><a href=\"docs\/postscript_cartridge_pacific_data\/ps\/1.ps\">fontpage.ps<\/a> (source)<br \/><a href=\"docs\/postscript_cartridge_pacific_data\/ps\/1.pdf\">fontpage.pdf<\/a> (rendered)<\/td>\n<\/tr>\n<tr>\n<td width=\"340\"><a href=\"docs\/postscript_cartridge_pacific_data\/ps\/2.pdf\"><img loading=\"lazy\" decoding=\"async\" src=\"docs\/postscript_cartridge_pacific_data\/ps\/io_settings_small.jpg\" width=\"319\" height=\"413\"\/><\/a><\/td>\n<td valign=\"top\"><b>I\/O Settings Page.<\/b> Prints the cartridge&#8217;s current Mode, Baud Rate, Data Bits, Stop Bits, Parity, Robust XON, DTR Polarity, and firmware version. The source in the ROM is a PostScript <i>template<\/i>: at emit time the firmware patches literal values (<code>(Parallel)<\/code>, <code>(HIGH)<\/code>, etc.) into holes in the source, then sends the completed program to the engine.<br \/><a href=\"docs\/postscript_cartridge_pacific_data\/ps\/2.ps\">io_settings.ps<\/a> (source, as-extracted)<br \/><a href=\"docs\/postscript_cartridge_pacific_data\/ps\/2.pdf\">io_settings.pdf<\/a> (fixed and rendered)<\/td>\n<\/tr>\n<\/table>\n<h2 id=\"install-disks\">Install Disks<\/h2>\n<p>The cartridge ships with four 5.25-inch floppy disks in a single software pack (part <code>20383.00 REV 00<\/code>):<\/p>\n<table>\n<thead>\n<tr>\n<th> Disk <\/th>\n<th> PN <\/th>\n<th> Format <\/th>\n<th> Label <\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td> 1 <\/td>\n<td> <code>012245 REV. A<\/code> <\/td>\n<td> HD <\/td>\n<td> 35 PacificPage Scalable Screenfonts for Windows 3.x (part 1 of 3) <\/td>\n<\/tr>\n<tr>\n<td> 2 <\/td>\n<td> <code>012246 REV. A<\/code> <\/td>\n<td> HD <\/td>\n<td> 35 PacificPage Scalable Screenfonts for Windows 3.x (part 2 of 3) <\/td>\n<\/tr>\n<tr>\n<td> 3 <\/td>\n<td> <code>012247 REV. A<\/code> <\/td>\n<td> HD <\/td>\n<td> 35 PacificPage Scalable Screenfonts for Windows 3.x (part 3 of 3) <\/td>\n<\/tr>\n<tr>\n<td> 4 <\/td>\n<td> <code>011952 REV A<\/code> <\/td>\n<td> DD <\/td>\n<td> Printer Control Panel 2.0-P, \u00a9 1990 <a href=\"https:\/\/www.computerhistory.org\/collections\/catalog\/102726067\">LaserTools Corporation<\/a> <\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>The earlier Documentation Update (p. 3-18) identifies the three font disks as a customised build of Bitstream&rsquo;s <strong><a href=\"https:\/\/archive.org\/details\/BitstreamFaceLiftForWindows1990\">FaceLift<\/a><\/strong>: the Windows-side Speedo rasterizer that matches the Fontware code already compiled into the cartridge. Disk 4 holds LaserTools Corporation&rsquo;s DOS utility, licensed to Pacific Data under the retail name <em>Printer Control Panel<\/em>. None of the four floppies have been imaged.<\/p>\n<p><kbd><a href=\"docs\/postscript_cartridge_pacific_data\/disk1.png\"><img loading=\"lazy\" decoding=\"async\" src=\"docs\/postscript_cartridge_pacific_data\/disk1.png\" height=\"150\" width=\"150\" alt=\"\" \/><\/a><\/kbd> <kbd><a href=\"docs\/postscript_cartridge_pacific_data\/disk2.png\"><img loading=\"lazy\" decoding=\"async\" src=\"docs\/postscript_cartridge_pacific_data\/disk2.png\" height=\"150\" width=\"150\" alt=\"\" \/><\/a><\/kbd> <kbd><a href=\"docs\/postscript_cartridge_pacific_data\/disk3.png\"><img loading=\"lazy\" decoding=\"async\" src=\"docs\/postscript_cartridge_pacific_data\/disk3.png\" height=\"150\" width=\"150\" alt=\"\" \/><\/a><\/kbd> <kbd><a href=\"docs\/postscript_cartridge_pacific_data\/disk4.png\"><img loading=\"lazy\" decoding=\"async\" src=\"docs\/postscript_cartridge_pacific_data\/disk4.png\" height=\"150\" width=\"150\" alt=\"\" \/><\/a><\/kbd> <kbd><a href=\"docs\/postscript_cartridge_pacific_data\/disk_sleeve.png\"><img loading=\"lazy\" decoding=\"async\" src=\"docs\/postscript_cartridge_pacific_data\/disk_sleeve.png\" height=\"150\" width=\"105\" alt=\"\" \/><\/a><\/kbd> <kbd><a href=\"docs\/postscript_cartridge_pacific_data\/disk_envelope.png\"><img loading=\"lazy\" decoding=\"async\" src=\"docs\/postscript_cartridge_pacific_data\/disk_envelope.png\" height=\"150\" width=\"105\" alt=\"\" \/><\/a><\/kbd><\/p>\n<h2 id=\"manuals-and-extras\">Manuals and Extras<\/h2>\n<p>Thirteen printed documents shipped in the retail box:<\/p>\n<table>\n<thead>\n<tr>\n<th> <\/th>\n<th> Manual <\/th>\n<th> Pages <\/th>\n<th> Description <\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td> <kbd><a href=\"docs\/postscript_cartridge_pacific_data\/manuals\/users_guide.pdf\"><img loading=\"lazy\" decoding=\"async\" src=\"docs\/postscript_cartridge_pacific_data\/manuals\/users_guide_small.jpg\" height=\"260\" width=\"164\" alt=\"\" \/><\/a><\/kbd> <\/td>\n<td> <a href=\"docs\/postscript_cartridge_pacific_data\/manuals\/users_guide.pdf\">PacificPage P\u00b7E User&rsquo;s Guide<\/a> <\/td>\n<td> 68 <\/td>\n<td> The cartridge&rsquo;s main manual: installation, front-panel operation, troubleshooting. <\/td>\n<\/tr>\n<tr>\n<td> <kbd><a href=\"docs\/postscript_cartridge_pacific_data\/manuals\/application_setup.pdf\"><img loading=\"lazy\" decoding=\"async\" src=\"docs\/postscript_cartridge_pacific_data\/manuals\/application_setup_small.jpg\" height=\"260\" width=\"164\" alt=\"\" \/><\/a><\/kbd> <\/td>\n<td> <a href=\"docs\/postscript_cartridge_pacific_data\/manuals\/application_setup.pdf\">Application Setup and Printing Guide<\/a> <\/td>\n<td> 68 <\/td>\n<td> Per-application instructions for driving the cartridge from WordPerfect, Word, Ventura Publisher, PageMaker, and others via their generic PostScript drivers. <\/td>\n<\/tr>\n<tr>\n<td> <kbd><a href=\"docs\/postscript_cartridge_pacific_data\/manuals\/doc_update0.pdf\"><img loading=\"lazy\" decoding=\"async\" src=\"docs\/postscript_cartridge_pacific_data\/manuals\/doc_update0_small.jpg\" height=\"260\" width=\"168\" alt=\"\" \/><\/a><\/kbd> <\/td>\n<td> <a href=\"docs\/postscript_cartridge_pacific_data\/manuals\/doc_update0.pdf\">Documentation Update, earlier revision<\/a> <\/td>\n<td> 36 <\/td>\n<td> An earlier version of the Documentation Update pamphlet. <\/td>\n<\/tr>\n<tr>\n<td> <kbd><a href=\"docs\/postscript_cartridge_pacific_data\/manuals\/documentation_update.pdf\"><img loading=\"lazy\" decoding=\"async\" src=\"docs\/postscript_cartridge_pacific_data\/manuals\/documentation_update_small.jpg\" height=\"260\" width=\"168\" alt=\"\" \/><\/a><\/kbd> <\/td>\n<td> <a href=\"docs\/postscript_cartridge_pacific_data\/manuals\/documentation_update.pdf\">Documentation Update<\/a> <\/td>\n<td> 1 <\/td>\n<td> Addendum to the main PacificPage user&rsquo;s guide. <\/td>\n<\/tr>\n<tr>\n<td> <kbd><a href=\"docs\/postscript_cartridge_pacific_data\/manuals\/control_panel_users_guide.pdf\"><img loading=\"lazy\" decoding=\"async\" src=\"docs\/postscript_cartridge_pacific_data\/manuals\/control_panel_users_guide_small.jpg\" height=\"260\" width=\"164\" alt=\"\" \/><\/a><\/kbd> <\/td>\n<td> <a href=\"docs\/postscript_cartridge_pacific_data\/manuals\/control_panel_users_guide.pdf\">Printer Control Panel User&rsquo;s Guide<\/a> <\/td>\n<td> 56 <\/td>\n<td> LaserTools&#8217; <em>Printer Control Panel 2.0-P<\/em> \u2014 the DOS utility shipped on disk 4. <\/td>\n<\/tr>\n<tr>\n<td> <kbd><a href=\"docs\/postscript_cartridge_pacific_data\/manuals\/control_panel_documentation_update.pdf\"><img loading=\"lazy\" decoding=\"async\" src=\"docs\/postscript_cartridge_pacific_data\/manuals\/control_panel_documentation_update_small.jpg\" height=\"260\" width=\"200\" alt=\"\" \/><\/a><\/kbd> <\/td>\n<td> <a href=\"docs\/postscript_cartridge_pacific_data\/manuals\/control_panel_documentation_update.pdf\">Control Panel Documentation Update<\/a> <\/td>\n<td> 1 <\/td>\n<td> Addendum to the Control Panel user&rsquo;s guide. <\/td>\n<\/tr>\n<tr>\n<td> <kbd><a href=\"docs\/postscript_cartridge_pacific_data\/manuals\/products.pdf\"><img loading=\"lazy\" decoding=\"async\" src=\"docs\/postscript_cartridge_pacific_data\/manuals\/products_small.jpg\" height=\"260\" width=\"164\" alt=\"\" \/><\/a><\/kbd> <\/td>\n<td> <a href=\"docs\/postscript_cartridge_pacific_data\/manuals\/products.pdf\">Pacific Data Products Catalogue<\/a> <\/td>\n<td> 20 <\/td>\n<td> Pacific Data&rsquo;s full product line at the time. <\/td>\n<\/tr>\n<tr>\n<td> <kbd><a href=\"docs\/postscript_cartridge_pacific_data\/manuals\/registration.pdf\"><img loading=\"lazy\" decoding=\"async\" src=\"docs\/postscript_cartridge_pacific_data\/manuals\/registration_small.jpg\" height=\"260\" width=\"164\" alt=\"\" \/><\/a><\/kbd> <\/td>\n<td> <a href=\"docs\/postscript_cartridge_pacific_data\/manuals\/registration.pdf\">Registration Card<\/a> <\/td>\n<td> 4 <\/td>\n<td> Warranty registration to be returned to Pacific Data. <\/td>\n<\/tr>\n<tr>\n<td> <kbd><a href=\"docs\/postscript_cartridge_pacific_data\/manuals\/disk_conversion.pdf\"><img loading=\"lazy\" decoding=\"async\" src=\"docs\/postscript_cartridge_pacific_data\/manuals\/disk_conversion_small.jpg\" height=\"200\" width=\"260\" alt=\"\" \/><\/a><\/kbd> <\/td>\n<td> <a href=\"docs\/postscript_cartridge_pacific_data\/manuals\/disk_conversion.pdf\">Free Disk Conversion Offer<\/a> <\/td>\n<td> 2 <\/td>\n<td> Mail-in coupon to swap the 5.25&#8243; DSHD media for 5.25&#8243; DSDD or 3.5&#8243; diskettes, or download via Pacific Data&rsquo;s BBS. <\/td>\n<\/tr>\n<tr>\n<td> <kbd><a href=\"docs\/postscript_cartridge_pacific_data\/manuals\/license.pdf\"><img loading=\"lazy\" decoding=\"async\" src=\"docs\/postscript_cartridge_pacific_data\/manuals\/license_small.jpg\" height=\"260\" width=\"164\" alt=\"\" \/><\/a><\/kbd> <\/td>\n<td> <a href=\"docs\/postscript_cartridge_pacific_data\/manuals\/license.pdf\">Software License Agreement<\/a> <\/td>\n<td> 2 <\/td>\n<td> End-user software license covering the cartridge firmware and the install disks. <\/td>\n<\/tr>\n<tr>\n<td> <kbd><a href=\"docs\/postscript_cartridge_pacific_data\/manuals\/guarantee.pdf\"><img loading=\"lazy\" decoding=\"async\" src=\"docs\/postscript_cartridge_pacific_data\/manuals\/guarantee_small.jpg\" height=\"260\" width=\"164\" alt=\"\" \/><\/a><\/kbd> <\/td>\n<td> <a href=\"docs\/postscript_cartridge_pacific_data\/manuals\/guarantee.pdf\">Product Guarantee<\/a> <\/td>\n<td> 1 <\/td>\n<td> Pacific Data&rsquo;s product guarantee statement. <\/td>\n<\/tr>\n<tr>\n<td> <kbd><a href=\"docs\/postscript_cartridge_pacific_data\/manuals\/warranty.pdf\"><img loading=\"lazy\" decoding=\"async\" src=\"docs\/postscript_cartridge_pacific_data\/manuals\/warranty_small.jpg\" height=\"260\" width=\"164\" alt=\"\" \/><\/a><\/kbd> <\/td>\n<td> <a href=\"docs\/postscript_cartridge_pacific_data\/manuals\/warranty.pdf\">Limited Warranty<\/a> <\/td>\n<td> 1 <\/td>\n<td> Hardware warranty terms. <\/td>\n<\/tr>\n<tr>\n<td> <kbd><a href=\"docs\/postscript_cartridge_pacific_data\/manuals\/support.pdf\"><img loading=\"lazy\" decoding=\"async\" src=\"docs\/postscript_cartridge_pacific_data\/manuals\/support_small.jpg\" height=\"260\" width=\"164\" alt=\"\" \/><\/a><\/kbd> <\/td>\n<td> <a href=\"docs\/postscript_cartridge_pacific_data\/manuals\/support.pdf\">Technical Support<\/a> <\/td>\n<td> 1 <\/td>\n<td> Contact information for technical support, including the Pacific Data BBS. <\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"future-work\">Future Work<\/h2>\n<ul>\n<li>Image and analyse the four install floppies.<\/li>\n<li>Find and dump a cartridge with a lower sticker version.<\/li>\n<li>Find and dump the <a href=\"https:\/\/techmonitor.ai\/technology\/phoenix_says_software_available_on_pacific_xl_postscript\">PacificPage XL<\/a>, a 1991 Intel i960 RISC accelerator board, runs the same PE 4.0 software stack, and is marketed at 2\u20138\u00d7 the cartridge&rsquo;s speed.<\/li>\n<\/ul>\n<div class=\"footnotes\">\n<hr\/>\n<ol>\n<li id=\"fn:1\">\n<p>The cartridge&rsquo;s built-in font sample page prints the full product name as <em>&ldquo;PacificPage\u2122 PERSONAL\u00b7EDITION Fonts&rdquo;<\/em>.<a href=\"#fnref:1\" rev=\"footnote\">&#8617;<\/a><\/p>\n<\/li>\n<li id=\"fn:2\">\n<p>The major outline font formats of the era differ in what kind of B\u00e9zier curves they use. Adobe Type 1 (and the CFF flavour of OpenType) use cubic B\u00e9ziers: three control points per segment, finer per-segment control. TrueType (and the <code>glyf<\/code> flavour of OpenType) uses quadratic B\u00e9ziers: two control points per segment, computationally cheaper to evaluate. Bitstream Speedo is <em>cubic<\/em> like Type 1.<a href=\"#fnref:2\" rev=\"footnote\">&#8617;<\/a><\/p>\n<\/li>\n<li id=\"fn:3\">\n<p>The 8 missing faces are all synthesized at runtime from the stored uprights. <strong>Four<\/strong> \u2014 Helvetica-Narrow, Helvetica-Narrow-Oblique, Helvetica-Narrow-Bold, Helvetica-Narrow-BoldOblique, derived from Helvetica and Helvetica-Bold by 0.82\u00d7 horizontal scaling (plus slanting for the two oblique variants) \u2014 are handled the same way by Adobe. <strong>The other four<\/strong> \u2014 Helvetica-Oblique, Helvetica-BoldOblique, Courier-Oblique, Courier-BoldOblique, slanted from their uprights \u2014 Adobe ships as hand-designed outlines with optically corrected stroke weights; slanting is a quality shortcut.<a href=\"#fnref:3\" rev=\"footnote\">&#8617;<\/a><\/p>\n<\/li>\n<\/ol>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>PostScript came to the desktop in 1985 with the Apple LaserWriter, and within a year or two several other companies had joined Adobe&rsquo;s licensee list. HP was late \u2014 its own Adobe PostScript cartridge for the LaserJet II\/III family didn&rsquo;t ship until 1991. Pacific Data Products started filling the gap in 1989 with its &ldquo;PacificPage &#8230; <a title=\"PacificPage P\u00b7E PostScript Cartridge for HP LaserJet II\/III\" class=\"read-more\" href=\"https:\/\/www.pagetable.com\/?p=1850\" aria-label=\"Read more about PacificPage P\u00b7E PostScript Cartridge for HP LaserJet II\/III\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,24],"tags":[],"class_list":["post-1850","post","type-post","status-publish","format-standard","hentry","category-archeology","category-postscript"],"_links":{"self":[{"href":"https:\/\/www.pagetable.com\/index.php?rest_route=\/wp\/v2\/posts\/1850","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pagetable.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.pagetable.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.pagetable.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pagetable.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1850"}],"version-history":[{"count":1,"href":"https:\/\/www.pagetable.com\/index.php?rest_route=\/wp\/v2\/posts\/1850\/revisions"}],"predecessor-version":[{"id":1851,"href":"https:\/\/www.pagetable.com\/index.php?rest_route=\/wp\/v2\/posts\/1850\/revisions\/1851"}],"wp:attachment":[{"href":"https:\/\/www.pagetable.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1850"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pagetable.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1850"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pagetable.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1850"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}