--- title: "The Print Factory" id: 72643 type: "computer_media" slug: "the-print-factory" url: "http://localhost/computer_media/the-print-factory/" markdown_url: "http://localhost/computer_media/the-print-factory.md" published_at: "2026-10-26T23:19:22+00:00" modified_at: "2026-10-26T23:19:22+00:00" author: "David Anderson" featured_image: url: "http://localhost/wp-content/uploads/2026/10/pf-menu.png" excerpt: "Ten-program desktop publishing suite for page layout, newsletters, letters, labels, greeting cards and screens, with a clip-art editor, graphic libraries and fonts." post_tag: - name: "Byte Power" slug: "byte-power" taxonomy: "post_tag" url: "http://localhost/tag/byte-power/" - name: "Downloadable" slug: "downloadable" taxonomy: "post_tag" url: "http://localhost/tag/downloadable/" - name: "TS 2068" slug: "ts2068" taxonomy: "post_tag" url: "http://localhost/tag/ts2068/" model: - name: "Timex/Sinclair 2068" slug: "ts-2068" taxonomy: "model" url: "http://localhost/model/ts-2068/" indiv: - name: "Eric Boisvert" slug: "boisvert-eric" taxonomy: "indiv" url: "http://localhost/indiv/boisvert-eric/" - name: "Kristian Boisvert" slug: "boisvert-kristian" taxonomy: "indiv" url: "http://localhost/indiv/boisvert-kristian/" genre: - name: "Desktop Publishing" slug: "desktop-publishing" taxonomy: "genre" url: "http://localhost/type/desktop-publishing/" media_type: "Program" programmers: - name: "Eric Boisvert" slug: "boisvert-eric" taxonomy: "indiv" url: "http://localhost/indiv/boisvert-eric/" - name: "Kristian Boisvert" slug: "boisvert-kristian" taxonomy: "indiv" url: "http://localhost/indiv/boisvert-kristian/" download_url: "https://archive.org/download/timex-sinclair-software-archive/The%20Print%20Factory%20%281989%29%28Boisvert%2C%20Eric%3B%20Boisvert%2C%20Kristian%29%28TS2068%29%28CA%29%28Program%29.zip" tsrun_member: "The Print Factory (1989)(Boisvert, Eric; Boisvert, Kristian)(TS2068)(CA)(Program)/The Print Factory (1989)(Boisvert, Eric; Boisvert, Kristian)(TS2068)(CA)(Program).tap" mediadate: "1989" producer_company: - id: 25181 title: "Byte Power" type: "company" url: "http://localhost/company/byte-power/" images: - url: "http://localhost/wp-content/uploads/2026/10/pf-menu.png" - url: "http://localhost/wp-content/uploads/2026/10/pf-first10-demopage.png" - url: "http://localhost/wp-content/uploads/2026/10/pf-press-demo.png" - url: "http://localhost/wp-content/uploads/2026/10/pf-creator-animals.png" - url: "http://localhost/wp-content/uploads/2026/10/pf-cardmaker.png" - url: "http://localhost/wp-content/uploads/2026/10/pf-quickscreen.png" - url: "http://localhost/wp-content/uploads/2026/10/pf-filekeeper.png" - url: "http://localhost/wp-content/uploads/2026/10/pf-first11-graphics.png" article_media: - id: 40261 title: "Byte Power Magazine’s The Print Factory" type: "article" url: "http://localhost/article/byte-power-magazines-the-print-factory/" - id: 23515 title: "Print Factory by BytePower, A Review" type: "article" url: "http://localhost/article/print-factory-by-bytepower-a-review/" - id: 23189 title: "Review: Byte Power’s The Print Factory" type: "article" url: "http://localhost/article/review-byte-powers-the-print-factory/" - id: 23589 title: "Increase your Print Factory and other software package productivity with a mouse for your Kempston port" type: "article" url: "http://localhost/article/increase-your-print-factory-and-other-software-package-productivity-with-a-mouse-for-your-kempston-port/" - id: 26010 title: "Creating Graphics for Print Factory with The Creator" type: "article" url: "http://localhost/article/creating-graphics-for-print-factory-with-the-creator/" - id: 52025 title: "From the Pencil to The Press" type: "article" url: "http://localhost/article/from-the-pencil-to-the-press/" - id: 52053 title: "From the Pencil to the Press" type: "article" url: "http://localhost/article/from-the-pencil-to-the-press-2/" - id: 26001 title: "New Print Factory Graphics Now Available" type: "article" url: "http://localhost/article/new-print-factory-graphics-now-available/" - id: 26012 title: "Graphic Design Files for The Print Factory family of programs" type: "article" url: "http://localhost/article/graphic-design-files-for-the-print-factory-family-of-programs/" related_products: - id: 25958 title: "Print Factory" type: "product" url: "http://localhost/product/print-factory/" related_content: - id: 51131 title: "Companion 1" type: "computer_media" url: "http://localhost/computer_media/companion-1/" - id: 51134 title: "Companion 2" type: "computer_media" url: "http://localhost/computer_media/companion-2/" - id: 51137 title: "Companion 3" type: "computer_media" url: "http://localhost/computer_media/companion-3/" - id: 25958 title: "Print Factory" type: "product" url: "http://localhost/product/print-factory/" media_type_tags: "Desktop Publishing" license: false --- # The Print Factory A desktop publishing suite of eleven programs that share one pointer-and-icon interface. FIRST EDITION lays out pages of text, headline lettering and clip art; THE PRESS lays out a scrolling page that can take in whole screens and pictures; LETTER-PERFECT writes letters; THE LABELER designs labels; CARD MAKER builds four-panel greeting cards; QUICK SCREEN composes a single screen; and THE BANNER PRINTER prints long banners of text and large graphic designs. THE CREATOR draws and edits the graphic libraries the other programs use, THE FILE KEEPER sorts graphics between libraries, and THE TRANSLATOR loads icon files and turns them into graphic designs. The arrow is moved with Q, A, O and P and SPACE selects; every program has a FILE menu for loading and saving its work, and the layout programs have a PRINT menu. The REM lines credit FIRST EDITION (versions 1.0 and 1.1), CARD MAKER, QUICK SCREEN and THE CREATOR to Eric Boisvert, and THE PRESS, LETTER-PERFECT, THE LABELER, THE FILE KEEPER and THE TRANSLATOR to Kristian Boisvert, all “Copyright 1989 BYTE POWER”. THE BANNER PRINTER v2.0 is also by Eric Boisvert. On the Oliger disks it survives only as a JLO state save, but a Larken disk of The Print Factory has its program files, and it is now on the program tape. The download holds six tapes. The program tape starts with a menu (keys A to L) that loads any of the programs, plus the 320-byte ZX DRIVER, a relocatable LPRINT driver that loads at 64000. DEMO PAGE (for FIRST EDITION), PRESSDEMO, a dithered photograph for THE PRESS, and EXAMPL.CC, a sample card for CARD MAKER, follow their programs. The second tape holds the graphics disk that came with the package: the clip-art libraries ANIMALS, OFFICE, TRANSPORT, ARTS, MISC., COMICS and DIGITIZED, three frames, and FONT 1 to FONT 13, saved in the same graphic-library format as the clip art. The third tape adds 48 more libraries from two further graphics disks, whose artists are not named, along with UPDATE magazine logo files, three of them QUICK SCREEN screens. ## Program Analysis ### Structure Each program is a short BASIC shell around a large machine-code block loaded at 28000 or above. The machine code runs the whole screen interface and drops back into BASIC only for file work. It jumps to fixed line numbers: 1000 to save, 1500 or 2000 to load a page, 2500 to load graphics and 3000 to load fonts. Each of these routines asks for a file name with `INPUT "FILE NAME:"; LINE N$`, does one `LOAD` or `SAVE` with a fixed address and length, and re-enters the machine code with `LET l=USR ...`. When the machine code needs to tell BASIC where to load, it puts the address in the SEED system variable, which BASIC reads back with `PEEK 23670+256*PEEK 23671`. ### Loaders The auto-run lines (8000, 8010, 9995 or 9998) set white paper, `CLEAR 27999` (or higher), print “STILL LOADING…” and then switch to `INK 7`, so the tape headers that follow are printed white on white and stay hidden. Line 9999 in each program is the publisher’s mastering line that saved the BASIC and its code blocks. ### Data formats Graphic libraries are saved from 28000 by THE CREATOR, with the length worked out from a pointer in the machine code. The other programs load them at their own working addresses: 43404 for FIRST EDITION, 44800 for CARD MAKER, 40288 for QUICK SCREEN and 39592 for THE FILE KEEPER. QUICK SCREEN saves 6144-byte bitmaps and can load an ordinary `SCREEN$`. THE BANNER PRINTER saves a banner as 24475 bytes from 39525 and loads graphics at 41829. THE TRANSLATOR saves its output in two parts when it is longer than 12204 bytes. ### Notable Techniques - Almost every number in the BASIC is written as `VAL "n"`, and zero as `NOT PI`, to save memory. - Loader messages are hidden by switching to `INK 7` on white paper before `LOAD`. - LETTER-PERFECT works out its save length with `VAL "USR 62141-27999"`, which calls the machine code to find the end of the text. - The ZX DRIVER finds its own address (by calling a `RET` in ROM and reading the stack) and patches the printer channel so `LPRINT` output goes through its routine. ### Potential Issues - The CARD MAKER code file “C” is damaged on both Oliger Print Factory disks: it holds disk directory sectors and zeros instead of program code. The first edition of this archive used code recovered from a JLO state save of CARD MAKER; the tape now uses the intact copy from the Larken disk. - CARD MAKER’s auto-run line 9995 loaded the next code block (GRAFIX4) at 42496, which is the card area, so the sample graphics appeared as noise on the card. The state save shows GRAFIX4 belongs at 44800, so line 9995 now loads it there through the graphics loader at line 2515. - THE PRESS line 2090 had a Larken `RANDOMIZE USR 100` in front of the font `LOAD`, a leftover that would crash without a Larken interface. It was removed. - FIRST EDITION 1.0 and 1.1 load pages with different lengths (22900 and 24436 bytes), so a page saved from 1.1 may be too long to load into 1.0. These programs come from the Oliger (JLO SAFE) disk edition of The Print Factory, except THE BANNER PRINTER, the CARD MAKER code and the sample card, which come from the Larken disk edition. They were converted to run from tape: the “/” and Larken disk syntax was removed from every `LOAD` and `SAVE`, CARD MAKER’s loader was repaired, and a menu was added. The machine code makes no disk calls; all file work goes through BASIC. Every program was tested in ZEsarUX on a TS2068, loading and saving pages, graphics and screens from tape. The download also holds three more clip-art tapes, taken from Larken disks labelled Print Factory Collection 4, 5 and 6. Collection 4 has the miscellaneous libraries `mis17+` to `mis33+` (17 libraries, 184 graphics); Collection 5 has more people, faces, sports and holiday art (`men4+` to `men7d`, `wmen3+`, `face5+` to `fac10+`, `sprt3+` to `sprt5-`, `hday4+` and `hday5-`; 16 libraries, 176 graphics); and Collection 6 has cartoons, animals, Christmas art, transport and computers (`funy5+` to `funy7d`, `anim8+` to `ani13+`, `xmas3+` to `xmas5-`, `tran3+` to `tran5-` and `comp2+`; 16 libraries, 168 graphics). They are in the same graphic-library format as the rest of the clip art: each library is a series of pictures, each stored as its height and width in character cells followed by eight bytes per cell. The ending of a library’s name gives its size: “+” libraries hold 8 pictures, “–” libraries 16, and “d” libraries 6 to 16. Each file keeps its disk name without the `.C1` ending, so it loads by that name through each program’s graphics loading option; the names are in lower case, so CAPS LOCK has to be switched off before typing one. Who drew these libraries is not recorded. The Sinclair Desktop Publishing Journal reported on extra Print Factory graphics in [New Print Factory Graphics Now Available](/article/new-print-factory-graphics-now-available/) and reviewed John McMichael’s graphics disks in [Graphic Design Files for The Print Factory family of programs](/article/graphic-design-files-for-the-print-factory-family-of-programs/). A fourth Larken disk, Print Factory Collection 1, holds the GRAPHICS 1 libraries (`misc1+` to `mis11+`, `men1+` to `men3d`, `wmen1+` and `wmen2+`). Compared with it, ten of the libraries first taken from the Oliger GRAPHICS 1+2 disk held the wrong data: each one contained the graphics of the library that follows it on the disk (the file named `men1+` held `men2+`, `men2+` held `men3d`, and so on), and the blank sectors in the old `men3d` and `misc8+` files belonged to those misplaced copies, not to the libraries themselves. The Larken copies are complete, so all sixteen GRAPHICS 1 libraries on the GR1-GR3 tape now come from that disk, including `misc1+`, `misc7-` and `wmen1+`, which were missing before. Collections 2 and 3 on the Larken disks are identical to the GRAPHICS 2 and GRAPHICS 3 libraries already on that tape. The new libraries were checked by loading one into THE CREATOR in ZEsarUX. ### The Banner Printer THE BANNER PRINTER v2.0 by Eric Boisvert (menu key F) composes a banner from lines of text and large graphic designs and prints it sideways on a continuous strip of paper. Its icon bar has HOME, FILE, TEXT, PRINT, END, LEFT, GRAPHIC DESIGNS and RIGHT. TEXT types lines in Font I, II or III, at normal or double size, or with the Super Set, and EDIT (CAPS SHIFT and 1) ends the typing. GRAPHIC DESIGNS steps through the designs with Next and Previous, and Select picks one up so the arrow can place it. The designs loaded with the program are large headline letters followed by further designs. PRINT prints the banner on a large printer or the T/S 2040, with Aerco, Tasman B or other interface drivers and a Customize option. FILE saves, loads and clears banners, loads graphics and fonts, and sets the banner size and arrow speed. The program follows the same plan as the other modules. Line 1010 saves a banner as 24475 bytes from 39525, line 2010 loads one, line 2510 loads graphics at 41829 (up to 21100 bytes), and line 3010 loads a 768-byte font at the address the machine code leaves in SEED. Its design file, `GRAFX2.CG` (10134 bytes), starts with the same headline letters as FONT 1 on the graphics tape. On the Oliger disks THE BANNER PRINTER survives only as a JLO state save. The tape version comes from a Larken (LKDOS) disk of The Print Factory, which has the program files `BANNER.B1`, `BANNER.C1` and `GRAFX2.CG`. For tape, the Larken `LET L=USR 100:` and `RANDOMIZE USR 100` prefixes were removed from the `LOAD` and `SAVE` lines, the `CAT` before the file-name prompt was dropped, the loader line 9998 now hides the tape headers like the other loaders, and Quit Program ends with `NEW` instead of reloading the Larken menu. In ZEsarUX it loaded from the tape menu, took text and a design, saved a banner to tape and loaded it back, and ran its print routine with the T/S 2040 driver. ### The Larken disk edition The same Larken disk holds the other ten programs at the same version numbers as the Oliger disks. Their code files are identical, or differ only in a few dozen bytes of work space and settings that the programs keep in memory; the graphic libraries, DEMO PAGE and PRESSDEMO are identical. The BASIC differs only in the disk syntax and in Quit, which loads the disk’s own two-page menu (`MENU.B1`) instead of using `NEW`. The Larken disk has no copy of the 4856-byte GRAFIX library that FIRST EDITION 1.0 and THE LABELER load on the Oliger disks; there THE LABELER loads the 8268-byte library instead. A second Larken disk, a 720K copy, holds the same files. The Oliger copy of the CARD MAKER code was damaged, and the first edition of this tape used code recovered from a JLO state save. The Larken disk has the intact file, `CARD.C1`, and the tape now uses it as `C`. It matches the recovered code except in its work areas. The Larken disk also has a sample card, `EXAMPL.CC` (“For Someone Special”), which now follows CARD MAKER on the tape and loads with Load Card. ## Source Code ``` REM ===== PFACTORY ===== 10 BORDER 7: PAPER 7: INK 0: CLS 20 PRINT AT 0,7;"THE PRINT FACTORY";AT 1,5;"* 1989 BYTE POWER (tape)" 30 PRINT AT 3,1;"A FIRST EDITION 1.1 (layout)";AT 4,1;"B FIRST EDITION 1.0 + demo";AT 5,1;"C THE PRESS 2.0 + demo";AT 6,1;"D LETTER-PERFECT 2.0";AT 7,1;"E THE LABELER 2.0";AT 8,1;"F CARD MAKER 1.0";AT 9,1;"G QUICK SCREEN 1.0";AT 10,1;"H THE CREATOR 2.0 (graphics)";AT 11,1;"I THE FILE KEEPER 1.0";AT 12,1;"J THE TRANSLATOR 1.0";AT 13,1;"K ZX DRIVER (2040 LPRINT)" 40 PRINT AT 15,1;"Programs by Eric and Kristian";AT 16,1;"Boisvert. Graphics and fonts";AT 17,1;"are on the second tape file.";AT 19,1;"Press A-K, then PLAY the tape" 50 LET k$=INKEY$: IF k$>="a" AND k$<="k" THEN LET k$=CHR$ (CODE k$-32) 60 IF k$<"A" OR k$>"K" THEN GO TO 50 70 CLS : PRINT AT 10,4;"Searching the tape..." 80 IF k$="A" THEN LOAD "FIRST 1.1" 81 IF k$="B" THEN LOAD "FIRST 1.0" 82 IF k$="C" THEN LOAD "PRESS" 83 IF k$="D" THEN LOAD "LETTER" 84 IF k$="E" THEN LOAD "LABELER" 85 IF k$="F" THEN LOAD "CARD MAKER" 86 IF k$="G" THEN LOAD "QUICK SCRN" 87 IF k$="H" THEN LOAD "CREATOR" 88 IF k$="I" THEN LOAD "FILEKEEPER" 89 IF k$="J" THEN LOAD "TRANSLATOR" 90 IF k$="K" THEN CLEAR 63999: LOAD "ZX DRIVER"CODE 64000: RANDOMIZE USR 64000: CLS : PRINT AT 10,1;"ZX DRIVER loaded at 64000 and";AT 11,1;"started (RANDOMIZE USR 64000).": STOP REM ===== FIRST 1.1 ===== 0 REM FIRST EDITION Version 1.1Written by Eric Boisvert Copyright *1989 BYTE POWER 1 GO TO VAL "1030" 1000 REM SAVE PAGE 1010 GO SUB VAL "4e3": SAVE n$CODE VAL "41100",a 1030 PRINT ;: LET l=USR VAL "31609" 2000 REM LOAD PAGE 2005 GO SUB VAL "4e3" 2010 LET a=USR VAL "28577": LOAD n$CODE VAL "41100",VAL "24436": GO TO VAL "2530" 2500 REM LOAD GRAPHICS 2510 GO SUB VAL "4e3" 2520 LET a=USR VAL "28577": LOAD N$CODE VAL "43404",VAL "13968" 2530 PRINT ;: INK NOT PI: LET l=USR VAL "31303" 3000 REM LOAD FONTS 3010 GO SUB VAL "4E3": LOAD N$CODE A,VAL "768": GO TO VAL "1030" 4000 REM INPUT FILE NAME 4010 INPUT "FILE NAME:"; LINE N$: IF LEN N$>VAL "10" THEN GO TO VAL "4e3" 4020 LET A=VAL "PEEK 23670+256*PEEK 23671": RETURN 9000 REM QUIT 9010 PAUSE VAL "60": CLEAR VAL "65535": NEW 9998 INK NOT PI: PAPER VAL "7": BORDER VAL "7": CLEAR VAL "27999": PRINT AT VAL "10",VAL "8";"STILL LOADING...": INK VAL "7": LOAD "F1"CODE : LET N$="GRAFIX1": GO TO VAL "2520" 9999 SAVE "FIRST 1.1" LINE VAL "9998": SAVE "F1"CODE VAL "28E3",VAL "15404": SAVE "GRAFIX1"CODE VAL "43404",VAL "8268": RUN REM ===== FIRST 1.0 ===== 0 REM FIRST EDITION Version 1.0Written by Eric Boisvert Copyright *1989 BYTE POWER 1 GO TO VAL "1030" 1000 REM SAVE PAGE 1010 GO SUB VAL "4e3": SAVE n$CODE VAL "41100",a 1030 PRINT ;: LET l=USR VAL "31609" 2000 REM LOAD PAGE 2005 GO SUB VAL "4e3" 2010 LET a=USR VAL "28577": LOAD n$CODE VAL "41100",VAL "22900": GO TO VAL "2530" 2500 REM LOAD GRAPHICS 2510 GO SUB VAL "4e3" 2520 LET a=USR VAL "28577": LOAD N$CODE VAL "43404",VAL "12432" 2530 PRINT ;: INK NOT PI: LET l=USR VAL "31303" 3000 REM LOAD FONTS 3010 GO SUB VAL "4E3": LOAD N$CODE A,VAL "768": GO TO VAL "1030" 4000 REM INPUT FILE NAME 4010 INPUT "FILE NAME:"; LINE N$: IF LEN N$>VAL "10" THEN GO TO VAL "4e3" 4020 LET A=VAL "PEEK 23670+256*PEEK 23671": RETURN 9000 REM QUIT 9010 PAUSE VAL "60": CLEAR VAL "65535": NEW 9900 INK NOT PI: PAPER VAL "7": BORDER VAL "7": CLEAR VAL "27999": PRINT AT VAL "10",VAL "8";"STILL LOADING...": INK VAL "7": LOAD ""CODE : LET N$="DEMO PAGE": GO TO VAL "2010" 9998 INK NOT PI: PAPER VAL "7": BORDER VAL "7": CLEAR VAL "27999": PRINT AT VAL "10",VAL "8";"STILL LOADING...": INK VAL "7": LOAD "F"CODE : LET N$="GRAFIX": GO TO VAL "2520" 9999 SAVE "FIRST 1.0" LINE VAL "9998": SAVE "F"CODE VAL "28E3",VAL "15404": SAVE "GRAFIX"CODE VAL "43404",VAL "8268": RUN REM ===== PRESS ===== 0 REM THE PRESS Version 2.0 Program by Kristian Boisvert Copyright *1989 BYTE POWER 100 PRINT ;: LET L=USR VAL "51075" 1000 REM SAVE FILE 1010 GO SUB VAL "5E3": IF a$="" THEN GO TO VAL "1010" 1020 SAVE A$CODE VAL "28000",VAL "PEEK 28000*PEEK 28001*8+2" 1030 PRINT ;: LET L=USR VAL "51109" 1500 REM LOAD FILE 1510 GO SUB VAL "5e3" 1520 LOAD A$CODE VAL "28000",VAL "23042" 1530 PRINT ;: INK NOT PI: LET L=USR VAL "54484" 2000 REM FONTS 2005 PRINT AT 8,1;"STANDARD OR DOUBLE HEIGHT SET?" 2010 PAUSE NOT PI: LET a=VAL "PEEK 23556" 2020 LET ad=VAL "PEEK 23670+256*PEEK 23671": LET l=VAL "768": IF a=CODE "D" THEN LET ad=VAL "59471": LET l=VAL "1536" 2080 PRINT AT VAL "8",NOT PI,,: GO SUB VAL "5e3" 2090 LOAD A$CODE ad,l 2100 GO TO VAL "1030" 2250 REM SCREEN$ 2510 GO SUB VAL "5e3" 2520 LOAD A$SCREEN$ 2530 PRINT ;: LET L=USR VAL "55299" 3500 REM NEW 3510 PAUSE VAL "120": CLEAR VAL "65535": NEW 5000 REM GET NAME 5010 INPUT "ENTER FILENAME: "; LINE A$: IF LEN A$>VAL "10" THEN GO TO VAL "5010" 5020 RETURN 8500 INK NOT PI: PAPER VAL "7": BORDER VAL "7": CLEAR VAL "27999": PRINT AT VAL "10",VAL "8";"STILL LOADING...": INK VAL "7": LOAD ""CODE : LET L=USR VAL "63274": LET A$="": GO TO VAL "1520" 9998 INK NOT PI: PAPER VAL "7": BORDER VAL "7": CLEAR VAL "27999": PRINT AT VAL "10",VAL "8";"STILL LOADING...": INK 0: LOAD "P"CODE : LET L=USR VAL "63274": RUN 9999 SAVE "PRESS" LINE VAL "9998": SAVE "P"CODE VAL "51054",VAL "12946": RUN REM ===== LETTER ===== 0 REM LETTER-PERFECT Version 2.0 Program by Kristian Boisvert Copyright *1989 BYTE POWER 100 POKE VAL "27999",NOT PI: PRINT ;: LET L=USR VAL "43554" 1000 REM SAVE FILE 1010 GO SUB VAL "5e3": IF a$="" THEN GO TO VAL "1010" 1020 SAVE A$CODE VAL "28000",VAL "USR 62141-27999" 1030 PRINT ;: LET L=USR VAL "43582" 1500 REM LOAD FILE 1510 GO SUB VAL "5e3" 1520 LOAD A$CODE VAL "28000",VAL "15360" 1530 GO TO VAL "100" 2000 REM FONTS 2010 GO SUB VAL "5e3" 2090 LOAD A$CODE VAL "58274",VAL "3600" 2100 GO TO VAL "1030" 3000 REM STOP 3010 STOP 3500 REM NEW 3510 PAUSE VAL "120": CLEAR VAL "65535": NEW 5000 REM GET NAME 5010 INPUT "ENTER FILENAME: "; LINE A$: IF LEN A$>VAL "10" THEN GO TO VAL "5010" 5020 RETURN 8000 REM LOAD 8010 INK NOT PI: PAPER VAL "7": BORDER VAL "7": CLEAR VAL "27998": PRINT AT VAL "10",VAL "8";"STILL LOADING...": INK VAL "7": LOAD "L"CODE : INK NOT PI: POKE VAL "27999",NOT PI: LET L=USR VAL "62154": RUN 9998 REM SAVE 9999 SAVE "LETTER" LINE VAL "8E3": SAVE "L"CODE VAL "43500",VAL "20500": RUN REM ===== LABELER ===== 0 REM THE LABELER Version 2.0 Program by Kristian Boisvert Copyright *1989 BYTE POWER 100 PRINT ;: LET L=USR VAL "51412" 1000 REM SAVE LABEL 1010 GO SUB VAL "5e3": IF a$="" THEN GO TO VAL "1010" 1020 SAVE A$CODE VAL "47203",VAL "4097" 1030 GO TO VAL "100" 1500 REM LOAD LABEL 1510 GO SUB VAL "5e3" 1520 LOAD A$CODE VAL "47203",VAL "4097" 1530 PRINT ;: LET L=USR VAL "54526" 2000 REM LOAD FONTS 2010 GO SUB VAL "5e3" 2015 LET set=PEEK VAL "58246": IF set=NOT PI THEN POKE VAL "58246",SGN PI: LET set=SGN PI 2020 LET set=VAL "set*768+58102" 2025 LOAD A$CODE set,VAL "768" 2030 GO TO VAL "100" 2500 REM LOAD GRAPHIC DESIGNS 2510 GO SUB VAL "5e3" 2520 LOAD "GRAFIX2"CODE VAL "28000",VAL "19200" 2530 PRINT ;: INK NOT PI: LET L=USR VAL "54625" 3000 REM BREAK TO BASIC 3010 STOP 3500 REM QUIT PROGRAM 3510 PAUSE VAL "120": CLEAR VAL "65535": NEW 5000 REM INPUT STRING 5010 INPUT "ENTER FILENAME: "; LINE A$: IF LEN A$>VAL "10" THEN GO TO VAL "5010" 5020 RETURN 8000 REM LOAD CUSTOMIZED 8010 INK NOT PI: PAPER VAL "7": BORDER VAL "7": CLEAR VAL "27999": PRINT AT VAL "10",VAL "8";"STILL LOADING...": INK VAL "7": LOAD "L2"CODE : LET L=VAL "USR 61373+USR 61718+USR 58448": LET A$="": GO TO VAL "2520" 9998 REM SAVE CUSTOMIZED 9999 SAVE "LABELER" LINE VAL "8e3": SAVE "L2"CODE VAL "51317",VAL "12683": SAVE "GRAFIX2"CODE VAL "28000",VAL "4856": RUN REM ===== CARD MAKER ===== 0 REM CARD MAKER Version 1.0Written by Eric Boisvert Copyright *1989 BYTE POWER 100 PRINT ;: INK NOT PI: LET l=USR VAL "31505" 1000 REM SAVE 1010 GO SUB VAL "5e3" 1020 SAVE A$CODE VAL "42496",A 1030 RUN 2000 REM LOAD 2010 GO SUB VAL "5e3" 2020 LOAD A$CODE VAL "42496",VAL "19200" 2030 RUN 2500 REM LOAD GRAPHICS 2510 GO SUB VAL "5e3" 2515 LET l=USR VAL "30958" 2520 LOAD A$CODE VAL "44800",VAL "15300" 2530 RUN 3000 REM LOAD FONTS 3010 GO SUB VAL "5e3" 3020 LOAD A$CODE A,VAL "768" 3030 RUN 5000 REM GET FILE NAME 5010 LET A=VAL "PEEK 23670+256*PEEK 23671" 5020 INPUT "FILE NAME:"; LINE a$: IF LEN a$>VAL "10" THEN GO TO VAL "5020" 5030 RETURN 9000 REM QUIT PROGRAM 9010 PAUSE VAL "60": CLEAR VAL "65535": NEW 9995 BORDER VAL "7": INK NOT PI: PAPER VAL "7": CLEAR VAL "27999": PRINT AT VAL "10",VAL "8";"STILL LOADING...": INK VAL "7": LOAD "C"CODE : LET a$="": GO TO VAL "2515" 9998 BORDER VAL "7": INK NOT PI: PAPER VAL "7": CLEAR VAL "27999": PRINT AT VAL "10",VAL "8";"STILL LOADING...": INK VAL "7": LOAD "GRAFIX4"CODE : LET a$="": GO TO VAL "2515" 9999 SAVE "CARD MAKER" LINE VAL "9995": SAVE "C"CODE VAL "28E3",VAL "14436": SAVE "GRAFIX4"CODE VAL "44800",VAL "7492": RUN REM ===== QUICK SCRN ===== 0 REM QUICK SCREEN Version 1.0Written by Eric Boisvert Copyright *1989 BYTE POWER 10 GO TO 1030 100 INK 0: PAPER 7: BORDER 7: CLEAR 27999: PRINT AT 10,8;"STILL LOADING...": INK 7: LOAD "QUICK SCRN"CODE : LOAD "GRAFIX5"CODE 110 PRINT ;: INK 0: LET l=USR 50303 1000 REM SAVE SCREEN 1010 GO SUB 4e3: SAVE n$CODE 34144,6144 1030 PRINT ;: LET l=USR 50374 2000 REM LOAD SCREEN 2010 GO SUB 4E3: LOAD n$CODE 28000,6912: LET l=USR 61704+USR 61209: GO TO 1030 2500 REM LOAD GRAPHICS 2510 GO SUB 4e3 2520 LET l=USR 61249: LOAD n$CODE 40288,9500: PRINT ;: LET l=USR 50350 3000 REM LOAD FONTS 3010 GO SUB 4E3: LOAD N$CODE A,768: GO TO 1030 4000 REM ENTER FILE NAME 4010 INPUT "FILE NAME:"; LINE N$: IF LEN N$>10 THEN GO TO 4010 4020 LET A=PEEK 23670+256*PEEK 23671: RETURN 9000 REM QUIT 9010 PAUSE 60: CLEAR 65535: NEW 9999 SAVE "QUICK SCRN" LINE 100: SAVE "QUICK SCRN"CODE 50240,13760: SAVE "GRAFIX5"CODE 40288,4126: RUN REM ===== CREATOR ===== 0 REM THE CREATOR Version 2.0Program by Eric Boisvert Copyright *1989 BYTE POWER 10 GO TO VAL "2040" 1000 REM SAVE FILE 1010 GO SUB VAL "3E3": IF N$="" THEN GO TO VAL "1E3" 1020 LET LEN=VAL "PEEK 23670+256*PEEK 23671" 1030 PRINT ''" SAVING ";N$;", LEN ";LEN 1040 SAVE N$CODE VAL "28E3",LEN 1050 PRINT ;: LET L=USR VAL "51461" 2000 REM LOAD FILE 2020 GO SUB VAL "3E3": LET L=USR VAL "59077" 2030 LOAD N$CODE VAL "28E3",VAL "21690" 2040 PRINT ;: LET L=USR VAL "51443" 3000 REM ENTER FILE NAME 3010 INPUT "ENTER FILENAME:"; LINE N$: IF LEN N$>VAL "10" THEN GO TO VAL "3E3" 3020 RETURN 5000 REM LOAD SCREEN 5020 GO SUB VAL "3E3" 5030 LOAD N$SCREEN$ 5040 PRINT ;: LET L=USR VAL "53881" 9000 REM QUIT PROGRAM 9010 PAUSE VAL "60": CLEAR 65535: NEW 9998 INK NOT PI: PAPER VAL "7": BORDER VAL "7": CLEAR VAL "27999": PRINT AT VAL "10",VAL "8";"STILL LOADING...": POKE VAL "23658",VAL "8": INK VAL "7": LOAD "CREATOR"CODE : INK NOT PI: PRINT ;: LET L=VAL "USR 51353" 9999 SAVE "CREATOR" LINE VAL "9998": SAVE "CREATOR"CODE VAL "51353",VAL "12647": RUN REM ===== FILEKEEPER ===== 0 REM THE FILE KEEPER Version 1.0 Program by Kristian Boisvert Copyright *1989 BYTE POWER 100 POKE 23296,22: POKE 23297,6: PRINT ;: LET l=USR 32639 1000 REM SAVE 1010 GO SUB 5000: IF a$="" THEN GO TO 1010 1015 LET a=PEEK 35535+256*PEEK 35536-51796 1016 PRINT AT 8,0;" SAVING ";A$;", LEN ";A 1020 SAVE a$CODE 51796,a 1030 GO TO 100 1500 REM LOAD 1510 GO SUB 5000 1520 LOAD a$CODE 39592,12204 1530 PRINT ;: LET l=USR 33726 2000 REM STOP 2010 STOP 2500 REM NEW 2510 PAUSE 120: CLEAR 65535: NEW 5000 REM GET NAME 5010 INPUT "ENTER FILENAME: "; LINE a$: IF LEN a$>10 THEN GO TO 5010 5020 RETURN 8000 REM LOAD 8010 INK 0: PAPER 7: BORDER 7: CLEAR 32599: PRINT AT 10,8;"STILL LOADING...": INK 7: LOAD "FILEKEEPER"CODE : INK 0: POKE 23296,22: POKE 23297,6: PRINT ;: LET l=USR 32600 9998 REM SAVE 9999 SAVE "FILEKEEPER" LINE 8000: SAVE "FILEKEEPER"CODE 32600,6992 REM ===== TRANSLATOR ===== 1 REM THE TRANSLATOR Version 1.0 Written by Kristian Boisvert Copyright *1989 BYTE POWER 100 POKE 23296,5: POKE 23297,6: PRINT ;: LET l=USR 29400 1000 REM SAVE 1005 LET a=PEEK 32852+256*PEEK 32853: IF a>12204 THEN GO TO 1100 1010 GO SUB 5000: IF a$="" THEN GO TO 1010 1020 PRINT AT 10,0;" SAVING ";a$;",LEN ";a: SAVE a$CODE 35273,a 1030 PRINT ;: LET l=USR 29440 1100 PRINT AT 10,4;"SAVING IN 2 SECTIONS..." 1105 INPUT "ENTER FILENAME #1: "; LINE b$: IF B$="" THEN GO TO 1105 1106 INPUT "ENTER FILENAME #2: "; LINE a$: IF a$="" THEN GO TO 1106 1110 LET B=226*INT (a/452): LET A=A-B: PRINT AT 13,0;" SAVING ";B$;", LEN ";a: SAVE b$CODE 35273,A 1120 PRINT AT 15,0;" SAVING ";a$;", LEN ";b: SAVE a$CODE 35273+a,B 1130 GO TO 1030 1500 REM LOAD 1510 GO SUB 5000 1520 LOAD a$CODE 35272,28728 1530 PRINT ;: LET l=USR 30185 2000 REM STOP 2010 STOP 2500 REM NEW 2510 PAUSE 120: CLEAR 65535: NEW 5000 REM GET NAME 5010 INPUT "ENTER FILENAME: "; LINE a$: IF LEN a$>10 THEN GO TO 5010 5020 RETURN 8000 REM LOAD 8010 INK 0: PAPER 7: BORDER 7: CLEAR 29399: PRINT AT 10,8;"STILL LOADING...": INK 7: LOAD "TRANSLATOR"CODE : INK 0: RUN 9998 REM SAVE 9999 SAVE "TRANSLATOR" LINE 8000: SAVE "TRANSLATOR"CODE 29400,5872 ```