--- title: "Classy Front End Pt 1" id: 55061 type: "computer_media" slug: "classy-front-end-pt-1" url: "http://localhost/computer_media/classy-front-end-pt-1/" markdown_url: "http://localhost/computer_media/classy-front-end-pt-1.md" published_at: "2024-06-14T01:24:05+00:00" modified_at: "2026-03-30T22:08:35+00:00" author: "David Anderson" featured_image: url: "http://localhost/wp-content/uploads/2019/02/20230809-041332.jpg" excerpt: "Enter any phrase and watch it rendered as large, individually hand-crafted pixel-art characters across the graphics screen, with automatic line-wrapping built in." category: - name: "Archived Media" slug: "archived-media" taxonomy: "category" url: "http://localhost/category/archived-media/" post_tag: - 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: "Paul Bingham" slug: "paul-bingham" taxonomy: "indiv" url: "http://localhost/indiv/paul-bingham/" genre: - name: "Demo" slug: "demo" taxonomy: "genre" url: "http://localhost/type/demo/" - name: "Programming" slug: "programming" taxonomy: "genre" url: "http://localhost/type/programming/" media_type: "Program" programmers: - name: "Paul Bingham" slug: "paul-bingham" taxonomy: "indiv" url: "http://localhost/indiv/paul-bingham/" download_url: "https://archive.org/download/timex-sinclair-software-archive/Classy%20Front%20End%20Pt%201%20%281987%29%28Hingham%2C%20Paul%29%28TS2068%29%28US%29%28Program%29.zip" mediadate: "1987" images: - url: "http://localhost/wp-content/uploads/2024/06/SCR-20260330-pwii.png" article_media: - id: 37697 title: "Classy Front End, Part I" type: "article" url: "http://localhost/article/classy-front-end-part-i/" media_type_tags: "Demo, Programming" --- This program renders user-supplied text as large pixel-art characters drawn directly on the high-resolution graphics screen using PLOT and DRAW commands. The user inputs a phrase of up to 200 characters, a row position (0–21), and a column position (0–31); the program then maps screen-grid coordinates to pixel coordinates and iterates through each character in the string. Each ASCII character code (32–127) dispatches to a dedicated subroutine at the matching line number, where a series of PLOT/DRAW statements trace that character’s outline at a size of roughly 6–8 pixels wide and 8 pixels tall. Width-aware kerning is implemented through a set of advance routines at lines 1120–1180, which increment the x position by 2–8 pixels depending on the character’s width category, with automatic line-wrap handled by line 1300. The subroutine at line 1100 serves as a shared starting-point helper, plotting the baseline pixel at (x+1, y+1) before returning for further drawing in the calling routine. *** ## Program Analysis ### Program Structure The program is organized into four conceptual zones: 1. **Initialization (lines 1–10):** Dimensions the string array `n$` to 200 characters and jumps to the input routine. 2. **Character drawing routines (lines 32–201):** One line per ASCII code, each rendering a specific glyph using `PLOT`/`DRAW` and ending with a `GO TO` to an advance routine. 3. **Main input and dispatch loop (lines 1000–1050):** Accepts the phrase and screen position, converts grid coordinates to pixel coordinates, then iterates over the string dispatching each character via `GO SUB a`. 4. **Utility routines (lines 1100–1300):** A shared plot helper (`1100`), width-advance routines (`1120`–`1180`), and a line-wrap handler (`1300`). ### Dispatch Mechanism The core dispatch at line 1040 is elegant: `LET a=CODE n$(t): GO SUB a`. Since ASCII codes for printable characters start at 32 (space) and the drawing routines are placed at exactly those line numbers (32, 33, 34, … 127), the `CODE` function returns the character’s ASCII value and `GO SUB a` jumps directly to the corresponding drawing routine. This avoids any lookup table or conditional chain. The loop runs unconditionally for all 200 positions, relying on line 999 (`RETURN`) as a catch-all for unmapped codes and the padding space characters at the end of the fixed-length string. ### Coordinate System The user enters a position in PRINT AT row/column terms (rows 0–21, columns 0–31). Line 1040 converts these to pixel coordinates: `x = xx*8` (column × 8 pixels) and `y = 168 - yy*8`. The subtraction from 168 flips the vertical axis, since the graphics origin is at the bottom-left of the screen while PRINT AT rows count from the top. Each character cell is treated as 8 pixels tall. ### Proportional Width System Characters are proportionally spaced. After drawing, each routine jumps to one of several advance subroutines that add a fixed number of pixels to `x` before returning: | Line | Advance (pixels) | Typical use | | --- | --- | --- | | `1120` | 2 | (reserved/narrow) | | `1130` | 3 | Very narrow (e.g. `!`, `[`, `]`, `i`) | | `1140` | 4 | Narrow characters | | `1150` | 5 | Medium-narrow characters | | `1160` | 6 | Standard-width characters | | `1170` | 7 | Wide characters | | `1180` | 8 | Very wide characters | Each advance routine also checks whether `x` has exceeded 248 (the right edge of the 256-pixel-wide screen minus a margin) and if so calls line `1300` to wrap to the next line by resetting `x=0` and decrementing `y` by 8. ### Shared Helper: Line 1100 Line 1100 simply executes `PLOT x+1,y+1` and returns. Many character routines `GO SUB 1100` at their start to establish a common anchor pixel before continuing with relative `DRAW` commands. This saves repeating the same `PLOT` boilerplate and also means changing the baseline offset only requires editing one line. ### Notable Techniques - **Line-number-as-jump-table:** Using `GO SUB a` where `a` is the ASCII value turns the BASIC line-number space directly into a character dispatch table — an unusual and efficient idiom. - **Relative drawing:** All `PLOT` commands use offsets from `x` and `y`, and all `DRAW` commands are relative, making each glyph routine fully position-independent. - **Fixed-length string padding:**`DIM n$(200)` pads the string with spaces (ASCII 32). Line 32 simply does `GO TO 1130`, advancing 3 pixels per space, which acts as the inter-word spacer. - **FLASH in INPUT prompts:** Lines 1010–1020 use `FLASH 1` and `FLASH 0` inline within `INPUT` statements to highlight the flashing question-mark placeholder, drawing attention to the variable entry point. - **Line 200 anomaly:**`LET x=x-1: RETURN` at line 200 (ASCII for ‘È’/extended char 200) would be reached if a character with code 200 appeared in the string. This nudges `x` back one pixel, which is likely an artifact of the fixed-length string’s terminal behaviour rather than an intentional glyph. - **Line 184 and 191:** Code 184 calls the line-wrap subroutine (`GO SUB 1300`) directly without a following `RETURN` on the same line, and line 191 adds a large 20-pixel advance. These handle extended or special character codes in the 128–200 range that might appear if the string contains non-ASCII values. - **Duplicate listing:** The entire program is listed twice in the source. This is a common technique used to ensure the tokenized file is written correctly when saved, not a logical duplication within a running program. ### Limitations and Anomalies - Not all ASCII codes 32–127 have drawing routines. Codes without a defined line will fall through to line 999 (`RETURN`) if the BASIC interpreter searches upward, though in practice the interpreter may error on a missing line number in `GO SUB`. The catch-all `999 RETURN` only works for codes above any defined glyph line if BASIC executes the next available line — this behavior depends on implementation. - The `FOR` loop always runs all 200 iterations regardless of actual phrase length, meaning trailing space characters will advance `x` by 3 pixels each, consuming horizontal space after the text ends. - Line `1030 PRINT n$` prints the raw string to the text area before drawing the pixel-art version, presumably for reference or debugging and not part of the intended display output. ## Source Code ``` 1 REM CLASSY FRONT END Part 1 10 DIM n$(200): GO TO 1000 32 GO TO 1130 33 PLOT x+2,y+1: DRAW 1,0: PLOT x+2,y+3: DRAW 0,3: DRAW 1,0: DRAW 0,-3: GO TO 1140 34 PLOT x+2,y+7: DRAW 0,-2: PLOT x+5,y+5: DRAW 0,2: GO TO 1170 35 PLOT x+1,y: DRAW 0,7: PLOT x+4,y: DRAW 0,7: PLOT x,y+2: DRAW 5,0: PLOT x,y+6: DRAW 5,0: GO TO 1160 36 PLOT x+3,y: DRAW 0,7: PLOT x+1,y+2: DRAW 1,0: DRAW 0,-1: DRAW 2,0: PLOT x+4,y+4: DRAW -2,0: DRAW 0,2: DRAW 2,0: PLOT x+5,y+2: DRAW 0,1: PLOT x+1,y+5: GO TO 1160 37 PLOT x+3,y+5: DRAW -1,-1: DRAW -1,0: DRAW 0,1: DRAW 1,1: DRAW 4,0: DRAW 0,-1: DRAW -1,0: DRAW 0,-2: DRAW 1,0: DRAW 0,-1: DRAW -1,-1: PLOT x+3,y+1: DRAW 0,1: DRAW 1,0: DRAW 0,1: GO TO 1170 38 PLOT x+4,y+1: DRAW -1,-1: DRAW 0,1: DRAW -1,0: DRAW 0,4: DRAW 2,0: PLOT x+1,y+2: PLOT x+3,y+6: DRAW -2,-2: DRAW 2,-1: DRAW 1,0: GO TO 1150 39 PLOT x+3,y+7: DRAW 0,-1: DRAW -1,-1: GO TO 1130 40 PLOT x+3,y: PLOT x+3,y+7: PLOT x+2,y+1: DRAW 0,5: PLOT x+1,y+2: DRAW 0,3: GO TO 1140 41 PLOT x+1,y: PLOT x+1,y+7: PLOT x+2,y+1: DRAW 0,5: PLOT x+3,y+2: DRAW 0,3: GO TO 1140 42 PLOT x+1,y+4: DRAW 1,1: DRAW -1,1: PLOT x+3,y+3: DRAW 0,4: PLOT x+5,y+4: DRAW -1,1: DRAW 1,1: GO TO 1160 43 PLOT x+3,y+1: DRAW 0,4: PLOT x+1,y+3: DRAW 4,0: GO TO 1160 44 PLOT x+2,y: PLOT x+3,y+1: DRAW 0,2: DRAW -1,0: GO TO 1140 45 PLOT x+2,y+3: DRAW 3,0: DRAW 0,1: DRAW -3,0: GO TO 1170 46 PLOT x+2,y+1: DRAW 1,0: DRAW 0,1: DRAW -1,0: GO TO 1150 47 PLOT x+2,y+1: DRAW 0,1: PLOT x+3,y+3: DRAW 0,1: PLOT x+4,y+5: DRAW 0,1: GO TO 1150 48 PLOT x+1,y+2: DRAW 0,3: PLOT x+4,y+1: DRAW -2,0: DRAW 0,5: DRAW 2,0: PLOT x+5,y+2: DRAW 0,3: PLOT x+3,y+3: PLOT x+4,y+4: GO TO 1160 49 GO SUB 1100: DRAW 2,0: DRAW -1,0: DRAW 0,5: PLOT x+1,y+5: GO TO 1140 50 GO SUB 1100: DRAW 0,1: DRAW 1,0: DRAW 0,-1: DRAW 2,0: PLOT x+1,y+5: PLOT x+2,y+6: DRAW 1,0: PLOT x+4,y+4: DRAW 0,1: PLOT x+3,y+3: GO TO 1150 51 PLOT x+1,y+2: PLOT x+2,y+1: DRAW 2,0: DRAW 0,5: DRAW -3,0: PLOT x+5,y+2: DRAW 0,1: PLOT x+5,y+6: PLOT x+3,y+4: GO TO 1160 52 PLOT x+3,y+1: DRAW 0,5: DRAW -1,0: DRAW 0,-1: PLOT x+4,y+3: DRAW -3,0: DRAW 0,2: GO TO 1150 53 PLOT x+1,y+2: PLOT x+4,y+6: DRAW -3,0: DRAW 0,-2: DRAW 2,0: PLOT x+2,y+5: PLOT x+4,y+2: DRAW 0,1: PLOT x+2,y+1: DRAW 1,0: GO TO 1150 54 PLOT x+4,y+1: DRAW -2,0: DRAW 0,1: DRAW -1,0: DRAW 0,1: DRAW 1,0: DRAW 0,2: PLOT x+4,y+4: DRAW -3,0: PLOT x+5,y+2: DRAW 0,1: PLOT x+3,y+6: DRAW 1,0: GO TO 1160 55 PLOT x+1,y+1: DRAW 0,2: DRAW 1,0: DRAW 0,1: DRAW 1,0: DRAW 0,2: DRAW -3,0: GO TO 1140 56 PLOT x+4,y+1: DRAW -2,0: DRAW 0,1: DRAW -1,0: DRAW 0,1: DRAW 1,0: DRAW 0,3: DRAW 2,0: PLOT x+1,y+5: PLOT x+5,y+5: PLOT x+3,y+4: DRAW 1,0: PLOT x+5,y+2: DRAW 0,1: GO TO 1160 57 PLOT x+5,y+2: DRAW 0,1: DRAW -3,0: DRAW 0,3: DRAW 2,0: PLOT x+1,y+4: DRAW 0,1: PLOT x+2,y+1: DRAW 2,0: PLOT x+5,y+4: DRAW 0,1: GO TO 1160 58 PLOT x+2,y+4: DRAW 1,0: PLOT x+3,y+2: DRAW -1,0: GO TO 1140 59 PLOT x+2,y+4: DRAW 1,0: PLOT x+2,y: PLOT x+3,y+1: DRAW 0,1: DRAW -1,0: GO TO 1140 60 PLOT x+1,y+3: DRAW 3,-3: PLOT x+1,y+4: DRAW 3,3: PLOT x+3,y+2: DRAW -1,1: DRAW 0,1: DRAW 1,1: GO TO 1150 61 PLOT x,y+2: DRAW 0,2: PLOT x,y+4: DRAW 0,2: GO TO 1130 62 PLOT x+4,y+3: DRAW -3,-3: PLOT x+4,y+4: DRAW -3,3: PLOT x+2,y+2: DRAW 1,1: DRAW 0,1: DRAW -1,1: GO TO 1150 63 PLOT x+1,y+5: PLOT x+3,y+1: DRAW 1,0: PLOT x+2,y+6: DRAW 2,0: DRAW 0,-1: DRAW 1,0: DRAW 0,-1: DRAW -1,0: DRAW 0,-1: DRAW -1,0: GO TO 1160 64 PLOT x+3,y+2: DRAW -1,0: DRAW 0,1: PLOT x+1,y+5: PLOT x+3,y+4: DRAW 1,0: DRAW 0,-3: DRAW 1,0: PLOT x+6,y+2: DRAW 0,3: PLOT x+2,y+6: DRAW 3,0: GO TO 1170 65 GO SUB 1100: DRAW 0,4: PLOT x+2,y+1: DRAW 0,5: DRAW 2,0: PLOT x+5,y+1: DRAW 0,4: PLOT x+5,y+3: DRAW -2,0: GO TO 1160 66 GO SUB 1100: DRAW 0,5: PLOT x+4,y+1: DRAW -2,0: DRAW 0,5: DRAW 2,0: PLOT x+5,y+5: PLOT x+3,y+4: DRAW 1,0: PLOT x+5,y+2: DRAW 0,1: GO TO 1160 67 PLOT x+1,y+2: DRAW 0,3: PLOT x+4,y+1: DRAW -2,0: DRAW 0,5: DRAW 2,0: PLOT x+5,y+2: PLOT x+5,y+5: GO TO 1160 68 GO SUB 1100: DRAW 0,5: PLOT x+4,y+1: DRAW -2,0: DRAW 0,5: DRAW 2,0: PLOT x+5,y+2: DRAW 0,3: GO TO 1160 69 PLOT x+5,y+1: DRAW -4,0: DRAW 0,5: DRAW 4,0: DRAW -3,0: DRAW 0,-2: DRAW 2,0: DRAW -2,0: DRAW 0,-2: GO TO 1160 70 PLOT x+5,y+6: DRAW -4,0: DRAW 0,-5: DRAW 1,0: DRAW 0,3: DRAW 2,0: PLOT x+2,y+5: GO TO 1150 71 PLOT x+4,y+3: DRAW 1,0: DRAW 0,-2: DRAW -3,0: DRAW 0,5: DRAW 2,0: PLOT x+1,y+2: DRAW 0,3: PLOT x+5,y+5: GO TO 1160 72 GO SUB 1100: DRAW 0,5: DRAW 1,0: DRAW 0,-5: DRAW 0,3: DRAW 3,0: DRAW 0,2: DRAW 0,-5: GO TO 1160 73 GO SUB 1100: DRAW 2,0: DRAW 0,5: DRAW -2,0: DRAW 3,0: DRAW -2,0: DRAW 0,-5: DRAW 2,0: GO TO 1150 74 PLOT x+2,y+1: DRAW 2,0: DRAW 0,5: DRAW 1,0: DRAW 0,-4: PLOT x+1,y+2: DRAW 0,1: GO TO 1160 75 GO SUB 1100: DRAW 0,5: DRAW 1,0: DRAW 0,-5: PLOT x+3,y+3: DRAW 0,1: PLOT x+4,y+2: PLOT x+4,y+5: PLOT x+5,y+1: PLOT x+5,y+6: GO TO 1160 76 GO SUB 1100: DRAW 0,5: DRAW 1,0: DRAW 0,-5: DRAW 3,0: GO TO 1160 77 GO SUB 1100: DRAW 0,5: DRAW 1,0: DRAW 0,-5: PLOT x+3,y+5: PLOT x+4,y+4: PLOT x+5,y+5: DRAW 1,0: DRAW 0,1: DRAW 0,-5: GO TO 1170 78 GO SUB 1100: DRAW 0,5: DRAW 1,0: DRAW 0,-5: PLOT x+3,y+5: DRAW 0,-1: PLOT x+4,y+3: DRAW 0,-1: PLOT x+5,y+1: DRAW 0,5: GO TO 1160 79 PLOT x+1,y+2: DRAW 0,3: PLOT x+4,y+1: DRAW -2,0: DRAW 0,5: DRAW 2,0: PLOT x+5,y+2: DRAW 0,3: GO TO 1160 80 GO SUB 1100: DRAW 0,5: DRAW 3,0: DRAW -2,0: DRAW 0,-5: DRAW 0,2: DRAW 2,0: PLOT x+5,y+4: DRAW 0,1: GO TO 1160 81 PLOT x+3,y+3: PLOT x+1,y+2: DRAW 0,3: PLOT x+4,y+2: DRAW 0,-1: DRAW -2,0: DRAW 0,5: DRAW 2,0: PLOT x+5,y: DRAW 0,5: GO TO 1160 82 GO SUB 1100: DRAW 0,5: DRAW 3,0: DRAW -2,0: DRAW 0,-5: DRAW 0,2: DRAW 2,0: DRAW 0,-1: DRAW 1,0: DRAW 0,-1: PLOT x+5,y+4: DRAW 0,1: GO TO 1160 83 PLOT x+1,y+2: DRAW 1,0: DRAW 0,-1: DRAW 2,0: PLOT x+4,y+4: DRAW -2,0: DRAW 0,2: DRAW 2,0: PLOT x+5,y+2: DRAW 0,1: PLOT x+1,y+5: GO TO 1160 84 PLOT x+1,y+6: DRAW 2,0: DRAW 0,-5: DRAW 1,0: DRAW 0,5: DRAW 2,0: GO TO 1160 85 PLOT x+1,y+2: DRAW 0,4: DRAW 1,0: DRAW 0,-5: DRAW 2,0: PLOT x+5,y+2: DRAW 0,4: GO TO 1160 86 PLOT x+1,y+5: DRAW 0,1: DRAW 1,0: DRAW 0,-3: DRAW 1,0: DRAW 0,1: DRAW 0,-3: DRAW 1,0: DRAW 0,1: PLOT x+5,y+3: DRAW 0,1: PLOT x+6,y+5: DRAW 0,1: GO TO 1160 87 PLOT x+1,y+2: DRAW 0,4: DRAW 1,0: DRAW 0,-5: DRAW 1,0: DRAW 0,1: DRAW 1,0: DRAW 0,2: DRAW 0,-2: DRAW 2,0: DRAW 0,4: PLOT x+5,y+1: GO TO 1170 88 GO SUB 1100: DRAW 1,0: DRAW 0,1: DRAW 1,0: DRAW 0,1: DRAW 1,0: DRAW 0,1: DRAW -1,0: DRAW 0,1: DRAW -1,0: DRAW 0,1: DRAW -1,0: PLOT x+5,y+2: PLOT x+5,y+5: PLOT x+6,y+1: PLOT x+6,y+6: GO TO 1170 89 PLOT x+4,y+4: DRAW 0,-3: DRAW -1,0: DRAW 0,3: DRAW -1,0: DRAW 0,1: DRAW -1,0: DRAW 0,1: PLOT x+6,y+6: PLOT x+5,y+5: GO TO 1160 90 PLOT x+1,y+6: DRAW 4,0: DRAW 0,-1: DRAW -1,0: DRAW 0,-1: DRAW -1,0: DRAW 0,-1: DRAW -1,0: DRAW 0,-1: DRAW -1,0: DRAW 0,-1: DRAW 4,0: GO TO 1160 91 PLOT x+2,y: DRAW -1,0: DRAW 0,7: DRAW 1,0: GO TO 1130 92 PLOT x+4,y+1: DRAW 0,1: PLOT x+3,y+3: DRAW 0,1: PLOT x+2,y+5: DRAW 0,1: GO TO 1150 93 PLOT x+1,y: DRAW 1,0: DRAW 0,7: DRAW -1,0: GO TO 1130 94 PLOT x+1,y+4: DRAW 2,2: DRAW 2,-2: DRAW -2,2: DRAW 0,-5: GO TO 1160 95 PLOT x,y: DRAW 7,0: GO TO 1180 96 PLOT x+6,y: DRAW -5,0: DRAW 0,5: DRAW 1,0: DRAW 0,1: DRAW 5,0: DRAW 0,-5: DRAW -5,0: DRAW 0,3: GO TO 1180 97 PLOT x+4,y+4: DRAW 0,-3: DRAW -2,0: DRAW 0,3: DRAW 1,0: PLOT x+1,y+2: DRAW 0,1: GO TO 1150 98 GO SUB 1100: DRAW 0,5: DRAW 0,-2: DRAW 2,0: DRAW 0,-3: DRAW -1,0: PLOT x+4,y+2: DRAW 0,1: GO TO 1150 99 PLOT x+1,y+2: DRAW 0,1: PLOT x+4,y+1: DRAW -2,0: DRAW 0,3: DRAW 2,0: GO TO 1150 100 PLOT x+4,y+6: DRAW 0,-5: DRAW -2,0: DRAW 0,3: DRAW 1,0: PLOT x+1,y+2: DRAW 0,1: GO TO 1150 101 PLOT x+4,y+3: DRAW 0,1: DRAW -2,0: DRAW 0,-3: DRAW 2,0: DRAW -1,0: DRAW 0,1: DRAW -2,0: DRAW 0,1: GO TO 1150 102 PLOT x+1,y+4: DRAW 2,0: PLOT x+2,y+1: DRAW 0,5: PLOT x+3,y+6: GO TO 1140 103 PLOT x+4,y: DRAW 0,4: DRAW -2,0: DRAW 0,-3: DRAW 1,0: PLOT x+1,y+3: DRAW 0,-1: PLOT x+4,y: DRAW -3,0: GO TO 1150 104 GO SUB 1100: DRAW 0,5: PLOT x+2,y+4: DRAW 1,0: PLOT x+4,y+3: DRAW 0,-2: GO TO 1150 105 GO SUB 1100: DRAW 2,0: DRAW -1,0: DRAW 0,3: DRAW -1,0: PLOT x+2,y+6: GO TO 1140 106 PLOT x,y: DRAW 1,0: PLOT x+2,y+1: DRAW 0,3: PLOT x+2,y+6: GO TO 1130 107 GO SUB 1100: DRAW 0,5: PLOT x+2,y+3: DRAW 1,0: DRAW 0,-1: PLOT x+4,y+1: PLOT x+4,y+4: GO TO 1150 108 GO SUB 1100: DRAW 2,0: DRAW -1,0: DRAW 0,5: PLOT x+1,y+6: GO TO 1140 109 GO SUB 1100: DRAW 0,3: PLOT x+2,y+1: DRAW 0,3: DRAW 3,0: PLOT x+4,y+1: DRAW 0,2: PLOT x+6,y+1: DRAW 0,2: GO TO 1170 110 GO SUB 1100: DRAW 0,3: PLOT x+2,y+1: DRAW 0,3: DRAW 1,0: PLOT x+4,y+1: DRAW 0,2: GO TO 1150 111 PLOT x+3,y+1: DRAW -1,0: DRAW 0,3: DRAW 1,0: PLOT x+1,y+2: DRAW 0,1: PLOT x+4,y+2: DRAW 0,1: GO TO 1150 112 PLOT x+1,y: DRAW 0,4: DRAW 2,0: DRAW 0,-3: DRAW -1,0: PLOT x+4,y+3: DRAW 0,-1: GO TO 1150 113 PLOT x+4,y: DRAW 0,4: DRAW -2,0: DRAW 0,-3: DRAW 1,0: PLOT x+1,y+3: DRAW 0,-1: GO TO 1150 114 GO SUB 1100: DRAW 0,3: PLOT x+2,y+1: DRAW 0,2: PLOT x+3,y+4: DRAW 1,0: GO TO 1150 115 GO SUB 1100: DRAW 2,0: DRAW 0,2: DRAW -2,0: PLOT x+4,y+2: PLOT x+4,y+4: DRAW -2,0: GO TO 1150 116 PLOT x+2,y+1: DRAW 0,5: PLOT x+1,y+4: DRAW 2,0: PLOT x+3,y+1: GO TO 1140 117 PLOT x+1,y+2: DRAW 0,2: PLOT x+2,y+4: DRAW 0,-3: DRAW 2,0: DRAW 0,3: GO TO 1150 118 PLOT x+1,y+4: DRAW 0,-1: DRAW 1,0: DRAW 0,-1: DRAW 1,0: DRAW 0,-1: PLOT x+4,y+3: DRAW 0,1: GO TO 1150 119 PLOT x+1,y+2: DRAW 0,2: PLOT x+2,y+4: DRAW 0,-3: DRAW 3,0: DRAW -1,0: DRAW 0,2: PLOT x+6,y+2: DRAW 0,2: GO TO 1170 120 GO SUB 1100: PLOT x+1,y+4: PLOT x+4,y+4: PLOT x+4,y+1: PLOT x+2,y+2: DRAW 1,0: DRAW 0,1: DRAW -1,0: GO TO 1150 121 PLOT x+1,y: DRAW 1,0: PLOT x+3,y+1: PLOT x+1,y+3: DRAW 0,1: DRAW 1,0: DRAW 0,-2: DRAW 2,0: DRAW 0,2: GO TO 1150 122 GO SUB 1100: DRAW 3,0: PLOT x+1,y+4: DRAW 3,0: PLOT x+2,y+2: PLOT x+3,y+3: GO TO 1150 123 PLOT x,y+7: DRAW 5,0: GO TO 1160 124 PLOT x+1,y: DRAW 0,7: PLOT x+2,y: DRAW 0,7: GO TO 1140 125 PLOT x,y: DRAW 5,0: PLOT x,y+2: DRAW 5,0: PLOT x,y+4: DRAW 5,0: PLOT x,y+6: DRAW 5,0: GO TO 1160 126 GO SUB 1100: DRAW 3,3: PLOT x+7,y+1: DRAW -2,2: PLOT x+2,y+1: DRAW 4,4: PLOT x+5,y+3: DRAW 2,2: PLOT x+6,y+1: DRAW -4,4: PLOT x+4,y+4: DRAW 0,3: PLOT x+3,y+3: DRAW -2,2: GO TO 1180 127 PLOT x+1,y+3: DRAW 0,1: PLOT x+4,y+2: DRAW -2,0: DRAW 0,3: DRAW 2,0: PLOT x+3,y: DRAW 0,2: PLOT x+3,y+5: DRAW 0,2: GO TO 1150 184 GO SUB 1300 191 LET x=x+20: RETURN 199 PLOT x+1,y+3: DRAW 0,1: PLOT x+2,y+3: DRAW 0,1: GO TO 1130 200 LET x=x-1: RETURN 201 PLOT x,y: DRAW 2,0: PLOT x,y+1: DRAW 2,2: PLOT x,y+4: DRAW 2,2: PLOT x,y+7: DRAW 2,0: GO TO 1130 999 RETURN 1000 INPUT "PHRASE: ";n$ 1010 INPUT "PRINT AT "; FLASH 1;"?"; FLASH 0;",x (to 21):";yy 1020 INPUT "PRINT AT y,"; FLASH 1;"?"; FLASH 0;" (to 31):";xx 1030 PRINT n$ 1040 LET x=xx*8: LET y=168-yy*8: FOR t=1 TO 200: LET a=CODE n$(t): GO SUB a: NEXT t 1050 STOP 1100 PLOT x+1,y+1: RETURN 1120 LET x=x+2: IF x>248 THEN GO TO 1300 1125 RETURN 1130 LET x=x+3: IF x>248 THEN GO TO 1300 1135 RETURN 1140 LET x=x+4: IF x>248 THEN GO TO 1300 1145 RETURN 1150 LET x=x+5: IF x>248 THEN GO TO 1300 1155 RETURN 1160 LET x=x+6: IF x>248 THEN GO TO 1300 1165 RETURN 1170 LET x=x+7: IF x>248 THEN GO TO 1300 1175 RETURN 1180 LET x=x+8: IF x>248 THEN GO TO 1300 1185 RETURN 1300 LET x=0: LET y=y-8: RETURN 9999 SAVE "cfe" LINE 1: SAVE "cfe" LINE 1 1 REM CLASSY FRONT END Part 1 10 DIM n$(200): GO TO 1000 32 GO TO 1130 33 PLOT x+2,y+1: DRAW 1,0: PLOT x+2,y+3: DRAW 0,3: DRAW 1,0: DRAW 0,-3: GO TO 1140 34 PLOT x+2,y+7: DRAW 0,-2: PLOT x+5,y+5: DRAW 0,2: GO TO 1170 35 PLOT x+1,y: DRAW 0,7: PLOT x+4,y: DRAW 0,7: PLOT x,y+2: DRAW 5,0: PLOT x,y+6: DRAW 5,0: GO TO 1160 36 PLOT x+3,y: DRAW 0,7: PLOT x+1,y+2: DRAW 1,0: DRAW 0,-1: DRAW 2,0: PLOT x+4,y+4: DRAW -2,0: DRAW 0,2: DRAW 2,0: PLOT x+5,y+2: DRAW 0,1: PLOT x+1,y+5: GO TO 1160 37 PLOT x+3,y+5: DRAW -1,-1: DRAW -1,0: DRAW 0,1: DRAW 1,1: DRAW 4,0: DRAW 0,-1: DRAW -1,0: DRAW 0,-2: DRAW 1,0: DRAW 0,-1: DRAW -1,-1: PLOT x+3,y+1: DRAW 0,1: DRAW 1,0: DRAW 0,1: GO TO 1170 38 PLOT x+4,y+1: DRAW -1,-1: DRAW 0,1: DRAW -1,0: DRAW 0,4: DRAW 2,0: PLOT x+1,y+2: PLOT x+3,y+6: DRAW -2,-2: DRAW 2,-1: DRAW 1,0: GO TO 1150 39 PLOT x+3,y+7: DRAW 0,-1: DRAW -1,-1: GO TO 1130 40 PLOT x+3,y: PLOT x+3,y+7: PLOT x+2,y+1: DRAW 0,5: PLOT x+1,y+2: DRAW 0,3: GO TO 1140 41 PLOT x+1,y: PLOT x+1,y+7: PLOT x+2,y+1: DRAW 0,5: PLOT x+3,y+2: DRAW 0,3: GO TO 1140 42 PLOT x+1,y+4: DRAW 1,1: DRAW -1,1: PLOT x+3,y+3: DRAW 0,4: PLOT x+5,y+4: DRAW -1,1: DRAW 1,1: GO TO 1160 43 PLOT x+3,y+1: DRAW 0,4: PLOT x+1,y+3: DRAW 4,0: GO TO 1160 44 PLOT x+2,y: PLOT x+3,y+1: DRAW 0,2: DRAW -1,0: GO TO 1140 45 PLOT x+2,y+3: DRAW 3,0: DRAW 0,1: DRAW -3,0: GO TO 1170 46 PLOT x+2,y+1: DRAW 1,0: DRAW 0,1: DRAW -1,0: GO TO 1150 47 PLOT x+2,y+1: DRAW 0,1: PLOT x+3,y+3: DRAW 0,1: PLOT x+4,y+5: DRAW 0,1: GO TO 1150 48 PLOT x+1,y+2: DRAW 0,3: PLOT x+4,y+1: DRAW -2,0: DRAW 0,5: DRAW 2,0: PLOT x+5,y+2: DRAW 0,3: PLOT x+3,y+3: PLOT x+4,y+4: GO TO 1160 49 GO SUB 1100: DRAW 2,0: DRAW -1,0: DRAW 0,5: PLOT x+1,y+5: GO TO 1140 50 GO SUB 1100: DRAW 0,1: DRAW 1,0: DRAW 0,-1: DRAW 2,0: PLOT x+1,y+5: PLOT x+2,y+6: DRAW 1,0: PLOT x+4,y+4: DRAW 0,1: PLOT x+3,y+3: GO TO 1150 51 PLOT x+1,y+2: PLOT x+2,y+1: DRAW 2,0: DRAW 0,5: DRAW -3,0: PLOT x+5,y+2: DRAW 0,1: PLOT x+5,y+6: PLOT x+3,y+4: GO TO 1160 52 PLOT x+3,y+1: DRAW 0,5: DRAW -1,0: DRAW 0,-1: PLOT x+4,y+3: DRAW -3,0: DRAW 0,2: GO TO 1150 53 PLOT x+1,y+2: PLOT x+4,y+6: DRAW -3,0: DRAW 0,-2: DRAW 2,0: PLOT x+2,y+5: PLOT x+4,y+2: DRAW 0,1: PLOT x+2,y+1: DRAW 1,0: GO TO 1150 54 PLOT x+4,y+1: DRAW -2,0: DRAW 0,1: DRAW -1,0: DRAW 0,1: DRAW 1,0: DRAW 0,2: PLOT x+4,y+4: DRAW -3,0: PLOT x+5,y+2: DRAW 0,1: PLOT x+3,y+6: DRAW 1,0: GO TO 1160 55 PLOT x+1,y+1: DRAW 0,2: DRAW 1,0: DRAW 0,1: DRAW 1,0: DRAW 0,2: DRAW -3,0: GO TO 1140 56 PLOT x+4,y+1: DRAW -2,0: DRAW 0,1: DRAW -1,0: DRAW 0,1: DRAW 1,0: DRAW 0,3: DRAW 2,0: PLOT x+1,y+5: PLOT x+5,y+5: PLOT x+3,y+4: DRAW 1,0: PLOT x+5,y+2: DRAW 0,1: GO TO 1160 57 PLOT x+5,y+2: DRAW 0,1: DRAW -3,0: DRAW 0,3: DRAW 2,0: PLOT x+1,y+4: DRAW 0,1: PLOT x+2,y+1: DRAW 2,0: PLOT x+5,y+4: DRAW 0,1: GO TO 1160 58 PLOT x+2,y+4: DRAW 1,0: PLOT x+3,y+2: DRAW -1,0: GO TO 1140 59 PLOT x+2,y+4: DRAW 1,0: PLOT x+2,y: PLOT x+3,y+1: DRAW 0,1: DRAW -1,0: GO TO 1140 60 PLOT x+1,y+3: DRAW 3,-3: PLOT x+1,y+4: DRAW 3,3: PLOT x+3,y+2: DRAW -1,1: DRAW 0,1: DRAW 1,1: GO TO 1150 61 PLOT x,y+2: DRAW 0,2: PLOT x,y+4: DRAW 0,2: GO TO 1130 62 PLOT x+4,y+3: DRAW -3,-3: PLOT x+4,y+4: DRAW -3,3: PLOT x+2,y+2: DRAW 1,1: DRAW 0,1: DRAW -1,1: GO TO 1150 63 PLOT x+1,y+5: PLOT x+3,y+1: DRAW 1,0: PLOT x+2,y+6: DRAW 2,0: DRAW 0,-1: DRAW 1,0: DRAW 0,-1: DRAW -1,0: DRAW 0,-1: DRAW -1,0: GO TO 1160 64 PLOT x+3,y+2: DRAW -1,0: DRAW 0,1: PLOT x+1,y+5: PLOT x+3,y+4: DRAW 1,0: DRAW 0,-3: DRAW 1,0: PLOT x+6,y+2: DRAW 0,3: PLOT x+2,y+6: DRAW 3,0: GO TO 1170 65 GO SUB 1100: DRAW 0,4: PLOT x+2,y+1: DRAW 0,5: DRAW 2,0: PLOT x+5,y+1: DRAW 0,4: PLOT x+5,y+3: DRAW -2,0: GO TO 1160 66 GO SUB 1100: DRAW 0,5: PLOT x+4,y+1: DRAW -2,0: DRAW 0,5: DRAW 2,0: PLOT x+5,y+5: PLOT x+3,y+4: DRAW 1,0: PLOT x+5,y+2: DRAW 0,1: GO TO 1160 67 PLOT x+1,y+2: DRAW 0,3: PLOT x+4,y+1: DRAW -2,0: DRAW 0,5: DRAW 2,0: PLOT x+5,y+2: PLOT x+5,y+5: GO TO 1160 68 GO SUB 1100: DRAW 0,5: PLOT x+4,y+1: DRAW -2,0: DRAW 0,5: DRAW 2,0: PLOT x+5,y+2: DRAW 0,3: GO TO 1160 69 PLOT x+5,y+1: DRAW -4,0: DRAW 0,5: DRAW 4,0: DRAW -3,0: DRAW 0,-2: DRAW 2,0: DRAW -2,0: DRAW 0,-2: GO TO 1160 70 PLOT x+5,y+6: DRAW -4,0: DRAW 0,-5: DRAW 1,0: DRAW 0,3: DRAW 2,0: PLOT x+2,y+5: GO TO 1150 71 PLOT x+4,y+3: DRAW 1,0: DRAW 0,-2: DRAW -3,0: DRAW 0,5: DRAW 2,0: PLOT x+1,y+2: DRAW 0,3: PLOT x+5,y+5: GO TO 1160 72 GO SUB 1100: DRAW 0,5: DRAW 1,0: DRAW 0,-5: DRAW 0,3: DRAW 3,0: DRAW 0,2: DRAW 0,-5: GO TO 1160 73 GO SUB 1100: DRAW 2,0: DRAW 0,5: DRAW -2,0: DRAW 3,0: DRAW -2,0: DRAW 0,-5: DRAW 2,0: GO TO 1150 74 PLOT x+2,y+1: DRAW 2,0: DRAW 0,5: DRAW 1,0: DRAW 0,-4: PLOT x+1,y+2: DRAW 0,1: GO TO 1160 75 GO SUB 1100: DRAW 0,5: DRAW 1,0: DRAW 0,-5: PLOT x+3,y+3: DRAW 0,1: PLOT x+4,y+2: PLOT x+4,y+5: PLOT x+5,y+1: PLOT x+5,y+6: GO TO 1160 76 GO SUB 1100: DRAW 0,5: DRAW 1,0: DRAW 0,-5: DRAW 3,0: GO TO 1160 77 GO SUB 1100: DRAW 0,5: DRAW 1,0: DRAW 0,-5: PLOT x+3,y+5: PLOT x+4,y+4: PLOT x+5,y+5: DRAW 1,0: DRAW 0,1: DRAW 0,-5: GO TO 1170 78 GO SUB 1100: DRAW 0,5: DRAW 1,0: DRAW 0,-5: PLOT x+3,y+5: DRAW 0,-1: PLOT x+4,y+3: DRAW 0,-1: PLOT x+5,y+1: DRAW 0,5: GO TO 1160 79 PLOT x+1,y+2: DRAW 0,3: PLOT x+4,y+1: DRAW -2,0: DRAW 0,5: DRAW 2,0: PLOT x+5,y+2: DRAW 0,3: GO TO 1160 80 GO SUB 1100: DRAW 0,5: DRAW 3,0: DRAW -2,0: DRAW 0,-5: DRAW 0,2: DRAW 2,0: PLOT x+5,y+4: DRAW 0,1: GO TO 1160 81 PLOT x+3,y+3: PLOT x+1,y+2: DRAW 0,3: PLOT x+4,y+2: DRAW 0,-1: DRAW -2,0: DRAW 0,5: DRAW 2,0: PLOT x+5,y: DRAW 0,5: GO TO 1160 82 GO SUB 1100: DRAW 0,5: DRAW 3,0: DRAW -2,0: DRAW 0,-5: DRAW 0,2: DRAW 2,0: DRAW 0,-1: DRAW 1,0: DRAW 0,-1: PLOT x+5,y+4: DRAW 0,1: GO TO 1160 83 PLOT x+1,y+2: DRAW 1,0: DRAW 0,-1: DRAW 2,0: PLOT x+4,y+4: DRAW -2,0: DRAW 0,2: DRAW 2,0: PLOT x+5,y+2: DRAW 0,1: PLOT x+1,y+5: GO TO 1160 84 PLOT x+1,y+6: DRAW 2,0: DRAW 0,-5: DRAW 1,0: DRAW 0,5: DRAW 2,0: GO TO 1160 85 PLOT x+1,y+2: DRAW 0,4: DRAW 1,0: DRAW 0,-5: DRAW 2,0: PLOT x+5,y+2: DRAW 0,4: GO TO 1160 86 PLOT x+1,y+5: DRAW 0,1: DRAW 1,0: DRAW 0,-3: DRAW 1,0: DRAW 0,1: DRAW 0,-3: DRAW 1,0: DRAW 0,1: PLOT x+5,y+3: DRAW 0,1: PLOT x+6,y+5: DRAW 0,1: GO TO 1160 87 PLOT x+1,y+2: DRAW 0,4: DRAW 1,0: DRAW 0,-5: DRAW 1,0: DRAW 0,1: DRAW 1,0: DRAW 0,2: DRAW 0,-2: DRAW 2,0: DRAW 0,4: PLOT x+5,y+1: GO TO 1170 88 GO SUB 1100: DRAW 1,0: DRAW 0,1: DRAW 1,0: DRAW 0,1: DRAW 1,0: DRAW 0,1: DRAW -1,0: DRAW 0,1: DRAW -1,0: DRAW 0,1: DRAW -1,0: PLOT x+5,y+2: PLOT x+5,y+5: PLOT x+6,y+1: PLOT x+6,y+6: GO TO 1170 89 PLOT x+4,y+4: DRAW 0,-3: DRAW -1,0: DRAW 0,3: DRAW -1,0: DRAW 0,1: DRAW -1,0: DRAW 0,1: PLOT x+6,y+6: PLOT x+5,y+5: GO TO 1160 90 PLOT x+1,y+6: DRAW 4,0: DRAW 0,-1: DRAW -1,0: DRAW 0,-1: DRAW -1,0: DRAW 0,-1: DRAW -1,0: DRAW 0,-1: DRAW -1,0: DRAW 0,-1: DRAW 4,0: GO TO 1160 91 PLOT x+2,y: DRAW -1,0: DRAW 0,7: DRAW 1,0: GO TO 1130 92 PLOT x+4,y+1: DRAW 0,1: PLOT x+3,y+3: DRAW 0,1: PLOT x+2,y+5: DRAW 0,1: GO TO 1150 93 PLOT x+1,y: DRAW 1,0: DRAW 0,7: DRAW -1,0: GO TO 1130 94 PLOT x+1,y+4: DRAW 2,2: DRAW 2,-2: DRAW -2,2: DRAW 0,-5: GO TO 1160 95 PLOT x,y: DRAW 7,0: GO TO 1180 96 PLOT x+6,y: DRAW -5,0: DRAW 0,5: DRAW 1,0: DRAW 0,1: DRAW 5,0: DRAW 0,-5: DRAW -5,0: DRAW 0,3: GO TO 1180 97 PLOT x+4,y+4: DRAW 0,-3: DRAW -2,0: DRAW 0,3: DRAW 1,0: PLOT x+1,y+2: DRAW 0,1: GO TO 1150 98 GO SUB 1100: DRAW 0,5: DRAW 0,-2: DRAW 2,0: DRAW 0,-3: DRAW -1,0: PLOT x+4,y+2: DRAW 0,1: GO TO 1150 99 PLOT x+1,y+2: DRAW 0,1: PLOT x+4,y+1: DRAW -2,0: DRAW 0,3: DRAW 2,0: GO TO 1150 100 PLOT x+4,y+6: DRAW 0,-5: DRAW -2,0: DRAW 0,3: DRAW 1,0: PLOT x+1,y+2: DRAW 0,1: GO TO 1150 101 PLOT x+4,y+3: DRAW 0,1: DRAW -2,0: DRAW 0,-3: DRAW 2,0: DRAW -1,0: DRAW 0,1: DRAW -2,0: DRAW 0,1: GO TO 1150 102 PLOT x+1,y+4: DRAW 2,0: PLOT x+2,y+1: DRAW 0,5: PLOT x+3,y+6: GO TO 1140 103 PLOT x+4,y: DRAW 0,4: DRAW -2,0: DRAW 0,-3: DRAW 1,0: PLOT x+1,y+3: DRAW 0,-1: PLOT x+4,y: DRAW -3,0: GO TO 1150 104 GO SUB 1100: DRAW 0,5: PLOT x+2,y+4: DRAW 1,0: PLOT x+4,y+3: DRAW 0,-2: GO TO 1150 105 GO SUB 1100: DRAW 2,0: DRAW -1,0: DRAW 0,3: DRAW -1,0: PLOT x+2,y+6: GO TO 1140 106 PLOT x,y: DRAW 1,0: PLOT x+2,y+1: DRAW 0,3: PLOT x+2,y+6: GO TO 1130 107 GO SUB 1100: DRAW 0,5: PLOT x+2,y+3: DRAW 1,0: DRAW 0,-1: PLOT x+4,y+1: PLOT x+4,y+4: GO TO 1150 108 GO SUB 1100: DRAW 2,0: DRAW -1,0: DRAW 0,5: PLOT x+1,y+6: GO TO 1140 109 GO SUB 1100: DRAW 0,3: PLOT x+2,y+1: DRAW 0,3: DRAW 3,0: PLOT x+4,y+1: DRAW 0,2: PLOT x+6,y+1: DRAW 0,2: GO TO 1170 110 GO SUB 1100: DRAW 0,3: PLOT x+2,y+1: DRAW 0,3: DRAW 1,0: PLOT x+4,y+1: DRAW 0,2: GO TO 1150 111 PLOT x+3,y+1: DRAW -1,0: DRAW 0,3: DRAW 1,0: PLOT x+1,y+2: DRAW 0,1: PLOT x+4,y+2: DRAW 0,1: GO TO 1150 112 PLOT x+1,y: DRAW 0,4: DRAW 2,0: DRAW 0,-3: DRAW -1,0: PLOT x+4,y+3: DRAW 0,-1: GO TO 1150 113 PLOT x+4,y: DRAW 0,4: DRAW -2,0: DRAW 0,-3: DRAW 1,0: PLOT x+1,y+3: DRAW 0,-1: GO TO 1150 114 GO SUB 1100: DRAW 0,3: PLOT x+2,y+1: DRAW 0,2: PLOT x+3,y+4: DRAW 1,0: GO TO 1150 115 GO SUB 1100: DRAW 2,0: DRAW 0,2: DRAW -2,0: PLOT x+4,y+2: PLOT x+4,y+4: DRAW -2,0: GO TO 1150 116 PLOT x+2,y+1: DRAW 0,5: PLOT x+1,y+4: DRAW 2,0: PLOT x+3,y+1: GO TO 1140 117 PLOT x+1,y+2: DRAW 0,2: PLOT x+2,y+4: DRAW 0,-3: DRAW 2,0: DRAW 0,3: GO TO 1150 118 PLOT x+1,y+4: DRAW 0,-1: DRAW 1,0: DRAW 0,-1: DRAW 1,0: DRAW 0,-1: PLOT x+4,y+3: DRAW 0,1: GO TO 1150 119 PLOT x+1,y+2: DRAW 0,2: PLOT x+2,y+4: DRAW 0,-3: DRAW 3,0: DRAW -1,0: DRAW 0,2: PLOT x+6,y+2: DRAW 0,2: GO TO 1170 120 GO SUB 1100: PLOT x+1,y+4: PLOT x+4,y+4: PLOT x+4,y+1: PLOT x+2,y+2: DRAW 1,0: DRAW 0,1: DRAW -1,0: GO TO 1150 121 PLOT x+1,y: DRAW 1,0: PLOT x+3,y+1: PLOT x+1,y+3: DRAW 0,1: DRAW 1,0: DRAW 0,-2: DRAW 2,0: DRAW 0,2: GO TO 1150 122 GO SUB 1100: DRAW 3,0: PLOT x+1,y+4: DRAW 3,0: PLOT x+2,y+2: PLOT x+3,y+3: GO TO 1150 123 PLOT x,y+7: DRAW 5,0: GO TO 1160 124 PLOT x+1,y: DRAW 0,7: PLOT x+2,y: DRAW 0,7: GO TO 1140 125 PLOT x,y: DRAW 5,0: PLOT x,y+2: DRAW 5,0: PLOT x,y+4: DRAW 5,0: PLOT x,y+6: DRAW 5,0: GO TO 1160 126 GO SUB 1100: DRAW 3,3: PLOT x+7,y+1: DRAW -2,2: PLOT x+2,y+1: DRAW 4,4: PLOT x+5,y+3: DRAW 2,2: PLOT x+6,y+1: DRAW -4,4: PLOT x+4,y+4: DRAW 0,3: PLOT x+3,y+3: DRAW -2,2: GO TO 1180 127 PLOT x+1,y+3: DRAW 0,1: PLOT x+4,y+2: DRAW -2,0: DRAW 0,3: DRAW 2,0: PLOT x+3,y: DRAW 0,2: PLOT x+3,y+5: DRAW 0,2: GO TO 1150 184 GO SUB 1300 191 LET x=x+20: RETURN 199 PLOT x+1,y+3: DRAW 0,1: PLOT x+2,y+3: DRAW 0,1: GO TO 1130 200 LET x=x-1: RETURN 201 PLOT x,y: DRAW 2,0: PLOT x,y+1: DRAW 2,2: PLOT x,y+4: DRAW 2,2: PLOT x,y+7: DRAW 2,0: GO TO 1130 999 RETURN 1000 INPUT "PHRASE: ";n$ 1010 INPUT "PRINT AT "; FLASH 1;"?"; FLASH 0;",x (to 21):";yy 1020 INPUT "PRINT AT y,"; FLASH 1;"?"; FLASH 0;" (to 31):";xx 1030 PRINT n$ 1040 LET x=xx*8: LET y=168-yy*8: FOR t=1 TO 200: LET a=CODE n$(t): GO SUB a: NEXT t 1050 STOP 1100 PLOT x+1,y+1: RETURN 1120 LET x=x+2: IF x>248 THEN GO TO 1300 1125 RETURN 1130 LET x=x+3: IF x>248 THEN GO TO 1300 1135 RETURN 1140 LET x=x+4: IF x>248 THEN GO TO 1300 1145 RETURN 1150 LET x=x+5: IF x>248 THEN GO TO 1300 1155 RETURN 1160 LET x=x+6: IF x>248 THEN GO TO 1300 1165 RETURN 1170 LET x=x+7: IF x>248 THEN GO TO 1300 1175 RETURN 1180 LET x=x+8: IF x>248 THEN GO TO 1300 1185 RETURN 1300 LET x=0: LET y=y-8: RETURN 9999 SAVE "cfe" LINE 1: SAVE "cfe" LINE 1 ```