--- title: "pentzy" id: 71390 type: "computer_media" slug: "pentzy" url: "http://localhost/computer_media/pentzy/" markdown_url: "http://localhost/computer_media/pentzy.md" published_at: "2026-09-09T08:58:11+00:00" modified_at: "2026-09-09T08:58:12+00:00" author: "David Anderson" featured_image: url: "http://localhost/wp-content/uploads/2026/09/pentzy-pentzy-C.png" excerpt: "A six-player Yahtzee-style dice game with a sophisticated computer AI opponent that evaluates dice combinations and scoring strategy across twelve rounds of play." category: - name: "Archived Media" slug: "archived-media" taxonomy: "category" url: "http://localhost/category/archived-media/" post_tag: - name: "1984" slug: "year-1984" taxonomy: "post_tag" url: "http://localhost/tag/year-1984/" - 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/" genre: - name: "Dice" slug: "dice" taxonomy: "genre" url: "http://localhost/type/dice/" media_type: "Program" download_url: "https://archive.org/download/timex-sinclair-software-archive/pentzy%20(1984)(Erenrz%2C%20P.)(TS2068)(US)(Program).zip" tsrun_member: "pentzy (1984)(Erenrz, P.)(TS2068)(US)(Program).tap" mediadate: "1984" images: - url: "http://localhost/wp-content/uploads/2026/09/pentzy-pentzy-C.png" media_type_tags: "Dice" --- # pentzy Pentzy is a computerized implementation of Yahtzee-style dice scoring for up to six players, with optional computer-controlled players for any seat. The game manages three rounds of dice rolling per turn across twelve rounds, tracking seven scoring categories: ones through sixes, Quadzy (four of a kind), Full House, Straight, High, Low, and Pentzy (five of a kind). User-defined graphics are initialized via a subroutine at line 5400, which uses PEEK of system variables 23637–23638 to locate the UDG table and then POKEs the UDG address into 23675–23676, effectively remapping the UDG base pointer. The computer AI (lines 2440–3930) uses a sorted copy of the current dice values in array `v()` to evaluate which dice to re-roll, applying a priority-ordered decision tree spanning over 1,400 lines of BASIC to maximize scoring across all categories. A bubble-sort routine at lines 1530–1540 and 2470–2510 keeps dice values ordered for easier combination detection. *** ### Program Structure The program is organized into several broad regions: 1. **Lines 0–10:** REM header and UDG initialization subroutine call (GO SUB to line 5400). 2. **Lines 20–210:** Setup — title screen, player count input, and per-player name/computer-control configuration. 3. **Lines 220–270:** Array dimensioning for scores (`a$`, `w$`, `q$`, `f$`, `t$`, `h$`, `l$`, `c$`), totals (`T`, `n`, `m`), dice (`d`, `v`), and category counts (`y`). 4. **Lines 280–1520:** Main game loop — two nested loops over 12 rounds (`e`) and `p` players (`z`). Each turn covers up to three dice rolls, human input or AI selection of dice to re-roll, and score placement. 5. **Lines 1530–1690:** Utility subroutines: bubble-sort pass (1530), dice re-roll validation and animation (1550–1690). 6. **Lines 1700–1770:** Numeric score accumulator and display for the six pip categories. 7. **Lines 1780–2020:** Dice face drawing subroutines using UDG block graphics, one routine per pip value (1, 2, 3, 4, 5, 6), each drawing a 3-row by 4-character die face at position `x`. 8. **Lines 2030–2430:** Scorecard screen redraw subroutine, reading category labels and current scores from DATA statements. 9. **Lines 2440–3930:** Computer AI decision engine — determines which dice to hold or re-roll. 10. **Lines 3940–5200:** Computer AI scoring subroutine — decides which category to fill after the final roll. 11. **Lines 5210–5340:** Short display-update helper subroutines for each scoring slot. 12. **Lines 5345:** Clears the roll-label display area. 13. **Lines 5400–5430:** UDG initialization — locates and POKEs the UDG base address. 14. **Lines 5440:** UDG bitmap data embedded as a REM statement. 15. **Lines 5500–5520:** LOAD of a separate SCREEN$ file, then SAVE commands for the two-part program. ### Scoring Categories | Key | Name | Condition | Points | | --- | --- | --- | --- | | `1`–`6` | Ones through Sixes | Sum of matching pip values | Variable | | `q` | Quadzy | Four of a kind | 25 | | `f` | Full House | 3+2 or 2+3 matching | 25 | | `s` | Straight | Five consecutive values | 25 | | `h` | High | Total > 21, higher than Low | Sum of dice | | `l` | Low | Total > 20, lower than High | Sum of dice | | `p` | Pentzy | Five of a kind | 30 | | (auto) | Bonus | Pip total > 62 | 25 | ### Array Usage Score state is held entirely in string arrays, initialized to two spaces (`" "`) as a sentinel for “not yet scored.” The main pip scores are stored in `a$(6*p, 2)`, indexed as `a$(l+g)` where `l = 6*z-6` is the player offset and `g` is the die face value. Special categories use separate two-character string arrays per player: `w$` (Quadzy), `f$` (Full), `t$` (Straight), `h$` (High), `l$` (Low), `c$` (Pentzy), and `q$` (Bonus). Totals use numeric arrays `T(p)`, `n(p)` (count of pip categories filled), and `m(p)` (running pip total). ### Dice Rolling and Animation The rolling animation at lines 1610–1690 iterates `6 + INT(RND*5)` times, randomizing selected dice values each frame using `d(w) = INT(RND*6+1)` and immediately dispatching to the appropriate die-face drawing subroutine at `1750 + d(w)*40` — a computed GO SUB that selects among the six face-drawing routines spaced exactly 40 lines apart (1790, 1830, 1870, 1910, 1950, 1990). A short BEEP with increasing pitch shift (`.005+j*.001`) accompanies each animation frame. ### Computer AI — Dice Selection The AI (lines 2440–3930) first copies the current `d()` array to `v()` and sorts it descending using a bubble sort (lines 2470–2510). The sorted copy `v()` is used purely for pattern matching; the unsorted `d()` is used to build the re-roll string `d$`. A helper at lines 3870–3930 translates logical “which ranked positions to keep” (stored in `v$`) back into actual die slot indices in `d$`, clearing `d(j)=0` to prevent double-matching. The priority order for the AI’s dice-selection strategy is: 1. Pentzy (five of a kind) if not yet scored 2. Pip categories (1–6) for five-of-a-kind sets 3. Quadzy and Full House detection 4. Straight attempts 5. High/Low score management 6. Three-of-a-kind pip fills 7. Two-of-a-kind pip fills 8. Fallback zero-scoring of low-value categories ### Computer AI — Score Placement Lines 3940–5200 implement the AI’s scoring decision after all rolls are exhausted. This section mirrors the human scoring validation logic but uses the live `d()` array directly. Notably, variables `n(z)` and `m(z)` track how many pip categories have been filled and their running total respectively, allowing the AI to estimate whether the bonus threshold of 63 is reachable and to decide whether to sacrifice a pip slot or take the bonus early. ### Scoreboard Display The scorecard is redrawn by subroutine 2030, which reads category names and current score strings from DATA statements (lines 2370–2430) using a FOR loop with READ. The RESTORE at line 2280 resets the DATA pointer each time the subroutine is called. Column positions are fixed: pip names and scores appear at columns 0 and 9, special category names at column 11, and their scores at column 25. Dice-placeholder graphics (lines 2300–2360) are only drawn when `T(z)=0`, i.e., at the very start of a player’s game. ### UDG Initialization The subroutine at line 5400 defines two FN functions — `FN h(x)` and `FN l(x)` — for extracting the high and low bytes of a 16-bit address. It then reads the system variable at addresses 23637–23638 (the RAMTOP pointer), adds 6, and POKEs the result into 23675–23676 (the UDG pointer), effectively placing the UDG table immediately above RAMTOP. The actual UDG bitmap data is embedded in the REM statement at line 5440. ### Player Sorting (Final Scores) After all 12 rounds, if there are multiple players, a bubble sort (lines 1340–1400) sorts the `T()` and `z$()` arrays together in descending score order. The variable `r` is used as the shrinking upper bound of the sort, a standard optimized bubble sort technique. The player’s original color index is preserved in column 11 of `z$(i)` (set at line 190 as `STR$(7-i)`) so the final leaderboard can redisplay each player’s name in their original PAPER color. ### Notable Idioms and Anomalies - `SGN PI` is used throughout as a constant equal to 1, and `PI` evaluates to 3 (truncated in array index contexts), serving as literal index values without storing named constants. - `NOT PI` evaluates to 0, used for INK/PAPER color 0 and AT column 0. - `VAL "d(1)+d(2)+d(3)+d(4)+d(5)"` at line 720 computes the dice total via string evaluation — an unusual but valid technique. - The straight detection at line 860 has a logic error: the condition `d(SGN PI)=d(2)+1 AND d(PI)+1=d(2) AND d(4)+1=d(PI) AND d(4)=d(5)+1` contains a redundant and partially contradictory check (`d(1)=d(2)+1` and `d(3)+1=d(2)` simultaneously require `d(1)=d(2)+1` and `d(2)=d(3)+1`, which is consistent, but the unsorted `d()` array means this only works if dice happen to be in descending order). - Lines 583 and 586 are inserted between lines 580 and 590 as utility subroutines, demonstrating the common BASIC technique of using non-round line numbers to insert code between existing round-numbered lines. - The two-part load system (line 5500 LOADs a separate SCREEN$ file) suggests the game shipped on tape as at least two files: the BASIC program and a title/background screen. ## Source Code ``` 0 REM Pentzy \* P.Erentz 1984 10 GO SUB VAL "5400" 20 RANDOMIZE 30 PRINT #0; INK NOT PI; PAPER 7; FLASH 1;" PRESS ANY KEY TO PLAY",:PAUSE NOT PI 40 INK NOT PI:PAPER VAL "7":CLS :PRINT ;" PENTZY BY P.A.ERENTZ"; AT PI* PI, PI;"Number of players? "; 50 IF INKEY$ <>"" THEN GO TO VAL "50" 60 IF INKEY$="" THEN GO TO VAL "60" 70 LET k$= INKEY$:IF k$ <>"1" AND k$ <>"2" AND k$ <>"3" AND k$ <>"4" AND k$ <>"5" AND k$ <>"6" THEN GO TO VAL "70" 80 PRINT k$:LET p= VAL k$:DIM P(p):DIM p$(p,11):DIM z$(p,11) 90 FOR i= SGN PI TO p 100 CLS :PRINT AT 15, NOT PI;" Do you want the Spectrum to "'" play for player ";i;"? "; 110 IF INKEY$ <>"" THEN GO TO VAL "110" 120 IF INKEY$="" THEN GO TO VAL "120" 130 LET k$= INKEY$ 140 IF k$ <>"y" AND k$ <>"n" THEN GO TO 130 150 IF k$="y" THEN LET P(i)=1:PRINT "Yes" 160 IF k$="n" THEN PRINT "No" 170 POKE VAL "23658", VAL "8":INPUT " Enter player's name please"'" (10 letters maximum)"; LINE p$(i) 180 POKE VAL "23658", NOT PI 190 LET p$(i,11)= STR$ (7-i) 200 PRINT AT 19, NOT PI;" " 210 NEXT i 220 DIM a$(6*p,2) 230 DIM w$(p,2):DIM q$(p,2):DIM f$(p,2):DIM t$(p,2):DIM h$(p,2):DIM l$(p,2):DIM c$(p,2) 240 LET hi=0:LET lo=hi 250 DIM T(p):DIM n(p):DIM m(p) 260 DIM d(5):DIM v(5) 270 DIM y(6) 280 FOR e=1 TO 12 290 FOR z=1 TO p 300 LET l=6*z-6 310 GO SUB 2030 320 LET d$="12345" 330 PRINT AT 19, NOT PI; INK NOT PI; PAPER 7;"1st"'"ROLL" 350 GO SUB 583 360 GO SUB 1610 370 GO SUB 5345 380 IF P(z)=1 THEN GO SUB 2440:GO TO 440 390 IF P(z)=0 THEN INPUT "2nd throw,which dice?"; LINE d$ 400 IF d$="0" THEN GO TO 680 410 FOR i=1 TO LEN d$ 420 IF d$(i) <>"1" THEN IF d$(i) <>"2" THEN IF d$(i) <>"3" THEN IF d$(i) <>"4" THEN IF d$(i) <>"5" THEN GO TO 390 430 NEXT i 440 IF d$="0" THEN GO TO 680 450 GO SUB 586 460 LET r=2 470 PRINT AT 19, NOT PI; INK NOT PI; PAPER 7;"2nd"'"ROLL" 490 FOR i=1 TO LEN d$:PRINT AT 17,(VAL d$(i))*5+1; PAPER 7; INK 0;d$(i):NEXT i 500 GO SUB 1550 510 GO SUB 5345 520 IF P(z)=1 THEN GO SUB 2440:GO TO 590 530 GO SUB 583 540 IF P(z)=0 THEN INPUT "3rd throw,which dice?"; LINE d$ 550 IF d$="0" THEN GO TO 680 560 FOR i=1 TO LEN d$ 570 IF d$(i) <>"1" THEN IF d$(i) <>"2" THEN IF d$(i) <>"3" THEN IF d$(i) <>"4" THEN IF d$(i) <>"5" THEN GO TO 540 580 NEXT i:GO TO 590 583 FOR i=1 TO 5:PRINT AT 17,i*5+1; PAPER 7; INK 0;i:NEXT i:RETURN 586 FOR i=1 TO 5:PRINT AT 17,i*5+1; PAPER 7;" ":NEXT i:RETURN 590 IF d$="0" THEN GO TO 680 600 GO SUB 586 610 LET r=3 620 PRINT AT 19, NOT PI; INK NOT PI; PAPER 7;"3rd"'"ROLL" 640 FOR i=1 TO LEN d$:PRINT AT 17,(VAL d$(i))*5+1; PAPER 7; INK 0;d$(i):NEXT i 650 GO SUB 1550 660 GO SUB 5345 670 GO SUB 586 680 FOR i=1 TO 4:GO SUB 1530:NEXT i 690 FOR i=1 TO 3:GO SUB 1530:NEXT i 700 FOR i=1 TO 2:GO SUB 1530:NEXT i 710 FOR i=1 TO 1:GO SUB 1530:NEXT i 720 LET di= VAL "d(1)+d(2)+d(3)+d(4)+d(5)" 730 INK 0:PAPER 7:FLASH 1 740 IF P(z)=1 THEN GO SUB 3940:GO TO 1090 750 INPUT "Where do you want to score?"; LINE s$ 760 IF s$="" THEN GO TO 750 770 IF w$(z) <>" " THEN GO TO 810 780 IF s$="q" THEN IF d(SGN PI)=d(4) THEN LET w$(z)="25":PRINT AT 2,25;w$(z):GO TO 1090 790 IF s$="q" THEN IF d(2)=d(5) THEN LET w$(z)="25":PRINT AT 2,25;w$(z):GO TO 1090 800 IF s$="q" THEN LET w$(z)=" 0":PRINT AT 2,25;w$(z):GO TO 1090 810 IF f$(z) <>" " THEN GO TO 850 820 IF s$(SGN PI)="f" THEN IF d(SGN PI)=d(2) AND d(PI)=d(5) THEN LET f$(z)="25":PRINT AT 4,25;f$(z):GO TO 1090 830 IF s$(SGN PI)="f" THEN IF d(SGN PI)=d(PI) AND d(4)=d(5) THEN LET f$(z)="25":PRINT AT 4,25;f$(z):GO TO 1090 840 IF s$(SGN PI)="f" THEN LET f$(z)=" 0":PRINT AT 4,25;f$(z):GO TO 1090 850 IF t$(z) <>" " THEN GO TO 880 860 IF s$(SGN PI)="s" THEN IF d(SGN PI)=d(2)+1 AND d(PI)+1=d(2) AND d(4)+1=d(PI) AND d(4)=d(5)+1 THEN LET t$(z)="25":PRINT AT 6,25;t$(z):GO TO 1090 870 IF s$(SGN PI)="s" THEN LET t$(z)=" 0":PRINT AT 6,25;t$(z):GO TO 1090 880 IF h$(z) <>" " THEN GO TO 920 890 IF s$(SGN PI)="h" THEN LET hi=di:IF hi>21 AND l$(z)=" " THEN LET h$(z)= STR$ hi:PRINT AT 8,25;h$(z):GO TO 1090 900 IF s$(SGN PI)="h" THEN LET hi=di:IF hi>21 AND hi> VAL l$(z) THEN LET h$(z)= STR$ hi:PRINT AT 8,25;h$(z):GO TO 1090 910 IF s$(SGN PI)="h" THEN LET h$(z)=" 0":PRINT AT 8,25;h$(z):GO TO 1090 920 IF l$(z) <>" " THEN GO TO 970 930 IF s$(SGN PI)="l" THEN LET lo=di 940 IF s$(SGN PI)="l" THEN IF h$(z,1)=" " THEN IF lo>20 THEN LET l$(z)= STR$ lo:PRINT AT 10,25;l$(z):GO TO 1090 950 IF s$(SGN PI)="l" THEN IF h$(z,1) <>" " THEN IF lo< VAL h$(z) AND lo>20 THEN LET l$(z)= STR$ lo:PRINT AT 10,25;l$(z):GO TO 1090 960 IF s$(SGN PI)="l" THEN LET l$(z)=" 0":PRINT AT 10,25;l$(z):GO TO 1090 970 IF c$(z) <>" " THEN GO TO 1000 980 IF s$="p" THEN IF d(SGN PI)=d(5) THEN LET c$(z)="30":PRINT AT 12,25;c$(z):GO TO 1090 990 IF s$="p" THEN LET c$(z)=" 0":PRINT AT 12,25;c$(z):GO TO 1090 1000 IF s$ <>"1" AND s$ <>"2" AND s$ <>"3" AND s$ <>"4" AND s$ <>"5" AND s$ <>"6" THEN GO TO 750 1010 IF s$="1" AND a$(1+l) <>" " THEN GO TO 750 1020 IF s$="2" AND a$(2+l) <>" " THEN GO TO 750 1030 IF s$="3" AND a$(3+l) <>" " THEN GO TO 750 1040 IF s$="4" AND a$(4+l) <>" " THEN GO TO 750 1050 IF s$="5" AND a$(5+l) <>" " THEN GO TO 750 1060 IF s$="6" AND a$(6+l) <>" " THEN GO TO 750 1070 LET g= VAL s$ 1080 GO SUB 1700 1090 FLASH NOT PI 1100 IF e <>12 THEN GO TO 1500 1110 LET T(z)=0 1120 FOR i=1 TO 6 1130 LET T(z)=T(z)+ VAL a$(z*6-6+i) 1140 NEXT i 1150 LET q$(z)=" 0" 1160 IF T(z)>62 THEN LET q$(z)="25":LET T(z)=T(z)+ VAL q$(z) 1170 LET T(z)=T(z)+ VAL w$(z)+ VAL f$(z)+ VAL t$(z)+ VAL h$(z)+ VAL l$(z)+ VAL c$(z) 1180 PRINT AT 14,9; INK 0; PAPER 7; FLASH 1;q$(z):PAUSE 150 1190 GO SUB 2030 1200 INK 0:PAPER 7 1210 IF LEN (STR$ T(z))=3 THEN PRINT AT 14,24;T(z) 1220 IF LEN (STR$ T(z))=2 THEN PRINT AT 14,25;T(z) 1230 PRINT AT 19,2; PAPER NOT PI; INK 7;"PRESS ANY KEY TO CONTINUE":PAUSE NOT PI 1240 IF z <>p THEN GO TO 1510 1250 PAPER 7 1260 CLS 1270 PRINT AT 0,8; INK 0;"FINAL SCORES" 1280 PRINT TAB 8; INK 2;"____________" 1290 FOR i=1 TO p 1300 PRINT AT i+2,2; PAPER 7-i; INK 9;p$(i, TO 10); PAPER 7; INK 0;" ";T(i) 1310 LET z$(i)=p$(i) 1320 NEXT i 1330 IF p=1 THEN GO TO 1460 1340 LET r=p-1 1350 FOR i=1 TO p-1 1360 FOR j=1 TO r 1370 IF T(j) LEN d$ THEN IF r=2 THEN GO TO 390 1600 IF q <> LEN d$ THEN IF r=3 THEN GO TO 540 1610 FOR j=1 TO 6+ INT (RND*5) 1620 FOR k=1 TO LEN d$ 1630 LET w= VAL d$(k) 1640 LET d(w)= INT (RND*6+1) 1650 LET x=w*5 1660 PAPER 6:INK 2:BEEP .005+j*.001,-20:GO SUB 1750+d(w)*40 1670 NEXT k 1680 NEXT j 1690 RETURN 1700 FOR i=1 TO 5 1710 IF d(i)=g THEN LET y(g)=y(g)+g 1720 NEXT i 1730 IF y(g)>9 THEN LET a$(l+g)= STR$ y(g) 1740 IF y(g)<10 THEN LET a$(l+g)=" "+ STR$ y(g) 1750 PRINT AT g*2,9; INK 0; PAPER 7; FLASH 1;a$(l+g) 1760 LET y(g)=0 1770 RETURN 1780 REM \{20}\{1}PRINT dice \{20}\{0} 1790 PRINT AT 18,x;"\::\::\::" 1800 PRINT AT 19,x;"\::\a\::" 1810 PRINT AT 20,x;"\::\::\::" 1820 RETURN 1830 PRINT AT 18,x;"\a\::\::" 1840 PRINT AT 19,x;"\::\::\::" 1850 PRINT AT 20,x;"\::\::\a" 1860 RETURN 1870 PRINT AT 18,x;"\a\::\::" 1880 PRINT AT 19,x;"\::\a\::" 1890 PRINT AT 20,x;"\::\::\a" 1900 RETURN 1910 PRINT AT 18,x;"\a\::\a" 1920 PRINT AT 19,x;"\::\::\::" 1930 PRINT AT 20,x;"\a\::\a" 1940 RETURN 1950 PRINT AT 18,x;"\a\::\a" 1960 PRINT AT 19,x;"\::\a\::" 1970 PRINT AT 20,x;"\a\::\a" 1980 RETURN 1990 PRINT AT 18,x;"\a\::\a" 2000 PRINT AT 19,x;"\a\::\a" 2010 PRINT AT 20,x;"\a\::\a" 2020 RETURN 2030 CLS 2040 PAPER 7-z:INK 9 2050 PRINT AT 0,0;p$(z, TO 10); PAPER 7; INK 7-z;"\r"; AT 0,13; PAPER 7-z; INK 9;"PENTZY"; PAPER 7; INK 7-z;"\r" 2060 PRINT AT 1,0;"\f\b\b\b\b\b\b\b\b\b\b\b\l\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\g"; PAPER 7; INK 7-z;"\r" 2070 FOR j=2 TO 10 STEP 2 2080 READ e$,g$,b$,m$ 2090 PRINT AT j,0;e$ 2100 PRINT AT j,9; PAPER 7; INK 0;g$ 2110 PRINT AT j,11;b$ 2120 PRINT AT j,25; PAPER 7; INK 0;m$; PAPER 7-z; INK 9;" \e"; PAPER 7; INK 7-z;"\q" 2130 PRINT AT j+1,0;"\d \e \e"; PAPER 7; INK 7-z;"\q" 2140 NEXT j 2150 READ e$,g$,b$,m$ 2160 PRINT AT 12,0;e$ 2170 PRINT AT 12,9; PAPER 7; INK 0;g$ 2180 PRINT AT 12,11;b$ 2190 PRINT AT 12,25; PAPER 7; INK 0;m$; PAPER 7-z; INK 9;" \e"; PAPER 7; INK 7-z;"\q" 2200 PRINT AT 13,0;"\d \j\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\k"; PAPER 7; INK 7-z;"\q" 2210 READ e$,g$,b$ 2220 PRINT AT 14,0;e$ 2230 PRINT AT 14,9; PAPER 7; INK 0;g$ 2240 PRINT AT 14,11;b$ 2250 PRINT AT 14,24; PAPER 7; INK 0;" "; PAPER 7-z; INK 9;" \e"; PAPER 7; INK 7-z;"\q" 2260 PRINT AT 15,0;"\h\c\c\c\c\c\c\c\c\c\c\c\m\c\c\c\c\c\c\c\c\c\c\c\c\c\c\c\i"; PAPER 7; INK 7-z;"\q" 2270 PRINT AT 16,0; PAPER 7; INK 7-z;"\n\o\o\o\o\o\o\o\o\o\o\o\o\o\o\o\o\o\o\o\o\o\o\o\o\o\o\o\o\p" 2280 RESTORE 2290 IF T(z)>0 THEN RETURN 2300 FOR i=5 TO 25 STEP 5 2310 PRINT AT 21,i; PAPER 7; INK 2;"\n\o\o\p" 2320 PRINT AT 20,i+ PI; PAPER 7; INK 2;"\q" 2330 PRINT AT 19,i+ PI; PAPER 7; INK 2;"\q" 2340 PRINT AT 18,i+ PI; PAPER 7; INK 2;"\r" 2350 NEXT i 2360 RETURN 2370 DATA "\dONE ",a$(l+1)," \e QUADZY ",w$(z) 2380 DATA "\dTWO ",a$(l+2)," \e FULL ",f$(z) 2390 DATA "\dTHREE ",a$(l+ PI)," \e STRAIGHT ",t$(z) 2400 DATA "\dFOUR ",a$(l+4)," \e HIGH ",h$(z) 2410 DATA "\dFIVE ",a$(l+5)," \e LOW ",l$(z) 2420 DATA "\dSIX ",a$(l+6)," \e PENTZY ",c$(z) 2430 DATA "\dBONUS ",q$(z)," \e TOTAL " 2440 FOR i=1 TO 5 2450 LET v(i)=d(i) 2460 NEXT i 2470 FOR j=4 TO 1 STEP -1 2480 FOR i=1 TO j 2490 IF v(i)"" THEN RETURN 2560 FOR i=1 TO 6 2570 IF a$(i+l)=" " THEN GO SUB 2880:IF d$ <>"" THEN RETURN 2580 NEXT i 2590 IF h$(z)=" " THEN IF vi>27 THEN LET d$="0":RETURN 2600 IF w$(z)=" " THEN GO SUB 2950:IF d$ <>"" THEN RETURN 2610 IF f$(z)=" " THEN GO SUB 2920:IF d$ <>"" THEN RETURN 2620 IF t$(z)=" " THEN GO SUB 2980:IF d$ <>"" THEN RETURN 2630 FOR i=1 TO 6 2640 IF a$(i+l)=" " THEN GO SUB 3040:IF d$ <>"" THEN RETURN 2650 NEXT i 2660 IF f$(z)=" " THEN GO SUB 3080:IF d$ <>"" THEN RETURN 2670 IF w$(z)=" " THEN GO SUB 3110:IF d$ <>"" THEN RETURN 2680 IF t$(z)=" " AND l$(z)=" " THEN GO SUB 3150:IF d$ <>"" THEN RETURN 2690 FOR i=6 TO 1 STEP -1 2700 IF a$(i+l)=" " THEN GO SUB 3200:IF d$ <>"" THEN RETURN 2710 NEXT i 2720 IF t$(z)=" " THEN GO SUB 3520:IF d$ <>"" THEN RETURN 2730 IF h$(z)=" " AND l$(z) <>" " THEN GO SUB 3250:IF d$ <>"" THEN RETURN 2740 IF h$(z)=" " AND l$(z)=" " THEN GO SUB 3340:IF d$ <>"" THEN RETURN 2750 IF h$(z) <>" " AND l$(z)=" " THEN GO SUB 3430:IF d$ <>"" THEN RETURN 2760 FOR i=6 TO 1 STEP -1 2770 IF a$(i+l)=" " THEN GO SUB 3610:IF d$ <>"" THEN RETURN 2780 NEXT i 2790 IF c$(z)=" " THEN GO SUB 3670:IF d$ <>"" THEN RETURN 2800 IF w$(z)=" " THEN GO SUB 3710:IF d$ <>"" THEN RETURN 2810 IF t$(z)=" " THEN GO SUB 3760:IF d$ <>"" THEN RETURN 2820 IF c$(z)=" " OR f$(z)=" " THEN GO SUB 3710:IF d$ <>"" THEN RETURN 2830 LET d$="12345":RETURN 2840 IF v(SGN PI)=v(5) THEN LET d$="0":RETURN 2850 IF v(SGN PI)=v(4) THEN LET v$="5":GO SUB 3870:RETURN 2860 IF v(2)=v(5) THEN LET v$="1":GO SUB 3870:RETURN 2870 RETURN 2880 IF i=v(SGN PI) AND i=v(5) THEN LET d$="0":RETURN 2890 IF i=v(SGN PI) AND i=v(4) THEN LET v$="5":GO SUB 3870:RETURN 2900 IF i=v(2) AND i=v(5) THEN LET v$="1":GO SUB 3870:RETURN 2910 RETURN 2920 IF v(SGN PI)=v(PI) AND v(4)=v(5) THEN LET d$="0":RETURN 2930 IF v(SGN PI)=v(2) AND v(PI)=v(5) THEN LET d$="0":RETURN 2940 RETURN 2950 IF v(SGN PI)=v(4) THEN LET d$="0":RETURN 2960 IF v(2)=v(5) THEN LET d$="0":RETURN 2970 RETURN 2980 IF v(SGN PI)=v(2)+1 AND v(2)=v(PI)+1 AND v(PI)=v(4)+1 AND v(4)=v(5)+1 THEN LET d$="0":RETURN 2990 IF v(SGN PI)=5 AND v(2)=5 AND v(PI)=4 AND v(4)=3 AND v(5)=2 THEN LET v$="2":GO SUB 3870:RETURN 3000 IF v(SGN PI)=5 AND v(2)=4 AND v(PI)=4 AND v(4)=3 AND v(5)=2 THEN LET v$="2":GO SUB 3870:RETURN 3010 IF v(SGN PI)=5 AND v(2)=4 AND v(PI)=3 AND v(4)=3 AND v(5)=2 THEN LET v$="3":GO SUB 3870:RETURN 3020 IF v(SGN PI)=5 AND v(2)=4 AND v(PI)=3 AND v(4)=2 AND v(5)=2 THEN LET v$="4":GO SUB 3870:RETURN 3030 RETURN 3040 IF i=v(SGN PI) AND i=v(PI) THEN LET v$="45":GO SUB 3870:RETURN 3050 IF i=v(2) AND i=v(4) THEN LET v$="15":GO SUB 3870:RETURN 3060 IF i=v(PI) AND i=v(5) THEN LET v$="12":GO SUB 3870:RETURN 3070 RETURN 3080 IF v(SGN PI)=v(2) AND v(5)=v(4) THEN LET v$="3":GO SUB 3870:RETURN 3090 IF v(SGN PI)=v(2) AND v(PI)=v(4) THEN LET v$="5":GO SUB 3870:RETURN 3100 IF v(PI)=v(2) AND v(5)=v(4) THEN LET v$="1":GO SUB 3870:RETURN 3110 IF v(SGN PI)=v(PI) THEN LET v$="45":GO SUB 3870:RETURN 3120 IF v(2)=v(4) THEN LET v$="15":GO SUB 3870:RETURN 3130 IF v(PI)=v(5) THEN LET v$="12":GO SUB 3870:RETURN 3140 RETURN 3150 IF v(SGN PI)=6 AND v(2)=6 AND v(PI)=5 AND v(4)=4 AND v(5)=3 THEN LET v$="1":GO SUB 3870:RETURN 3160 IF v(SGN PI)=6 AND v(2)=5 AND v(PI)=5 AND v(4)=4 AND v(5)=3 THEN LET v$="2":GO SUB 3870:RETURN 3170 IF v(SGN PI)=6 AND v(2)=5 AND v(PI)=4 AND v(4)=4 AND v(5)=3 THEN LET v$="3":GO SUB 3870:RETURN 3180 IF v(SGN PI)=6 AND v(2)=5 AND v(PI)=4 AND v(4)=3 AND v(5)=1 THEN LET v$="5":GO SUB 3870:RETURN 3190 RETURN 3200 IF i=v(SGN PI) AND i=v(2) THEN LET v$="345":GO SUB 3870:RETURN 3210 IF i=v(2) AND i=v(PI) THEN LET v$="145":GO SUB 3870:RETURN 3220 IF i=v(PI) AND i=v(4) THEN LET v$="125":GO SUB 3870:RETURN 3230 IF i=v(4) AND i=v(5) THEN LET v$="123":GO SUB 3870:RETURN 3240 RETURN 3250 IF vi> VAL l$(z) AND v(5)>1 AND vi-v(5)< VAL l$(z) THEN LET d$="0":RETURN 3260 IF vi> VAL l$(z) AND v(5)=1 THEN LET v$="5":GO SUB 3870:RETURN 3270 IF vi> VAL l$(z) AND vi-v(5) >= VAL l$(z) THEN LET v$="5":GO SUB 3870:RETURN 3280 IF v(SGN PI)<5 THEN RETURN 3290 IF v(2)<5 THEN LET v$="2345":GO SUB 3870:RETURN 3300 IF v(PI)<5 THEN LET v$="345":GO SUB 3870:RETURN 3310 IF v(4)<5 THEN LET v$="45":GO SUB 3870:RETURN 3320 IF v(5)<5 THEN LET v$="5":GO SUB 3870:RETURN 3330 RETURN 3340 IF vi>20 AND v(5)>1 THEN LET d$="0":RETURN 3350 IF vi>21 AND v(5)>2 THEN LET d$="0":RETURN 3360 IF vi>22 AND v(5)>3 THEN LET d$="0":RETURN 3370 IF vi>20 THEN LET v$="5":GO SUB 3870:RETURN 3380 IF v(SGN PI)<5 THEN RETURN 3390 IF v(2)<5 THEN LET v$="2345":GO SUB 3870:RETURN 3400 IF v(PI)<5 THEN LET v$="345":GO SUB 3870:RETURN 3410 IF v(4)<5 THEN LET v$="45":GO SUB 3870:RETURN 3420 RETURN 3430 IF vi>20 THEN IF vi< VAL h$(z) THEN IF VAL h$(z)-vi<6 THEN LET d$="0":RETURN 3440 IF vi>20 THEN IF vi< VAL h$(z) THEN LET v$="5":GO SUB 3870:RETURN 3450 IF vi>20 THEN IF vi >= VAL h$(z) THEN LET v$="45":GO SUB 3870:RETURN 3460 IF v(SGN PI)<5 THEN RETURN 3470 IF v(2)<5 THEN LET v$="2345":GO SUB 3870:RETURN 3480 IF v(PI)<5 THEN LET v$="345":GO SUB 3870:RETURN 3490 IF v(4)<5 THEN LET v$="45":GO SUB 3870:RETURN 3500 IF v(5)<5 THEN LET v$="5":GO SUB 3870:RETURN 3510 RETURN 3520 IF v(SGN PI)=v(2) THEN LET v$="1" 3530 IF v(PI)=v(2) THEN LET v$=v$+"2" 3540 IF v(PI)=v(4) THEN LET v$=v$+"3" 3550 IF v(5)=v(4) THEN LET v$=v$+"4" 3560 IF LEN v$>1 THEN LET v$="":GO TO 3600 3570 IF LEN v$=1 AND v(SGN PI)-v(5)>4 THEN LET v$="":GO TO 3600 3580 IF LEN v$=1 THEN GO SUB 3870:RETURN 3590 IF v$="" THEN LET v$="5":GO SUB 3870:RETURN 3600 RETURN 3610 IF i=v(SGN PI) THEN LET v$="2345":GO SUB 3870:RETURN 3620 IF i=v(2) THEN LET v$="1345":GO SUB 3870:RETURN 3630 IF i=v(PI) THEN LET v$="1245":GO SUB 3870:RETURN 3640 IF i=v(4) THEN LET v$="1235":GO SUB 3870:RETURN 3650 IF i=v(5) THEN LET v$="1234":GO SUB 3870:RETURN 3660 RETURN 3670 IF v(SGN PI)=v(PI) THEN LET v$="45":GO SUB 3870:RETURN 3680 IF v(2)=v(4) THEN LET v$="15":GO SUB 3870:RETURN 3690 IF v(PI)=v(5) THEN LET v$="12":GO SUB 3870:RETURN 3700 IF c$(z) <>" " AND f$(z) <>" " THEN GO TO 3750 3710 IF v(SGN PI)=v(2) THEN LET v$="345":GO SUB 3870:RETURN 3720 IF v(PI)=v(2) THEN LET v$="145":GO SUB 3870:RETURN 3730 IF v(PI)=v(4) THEN LET v$="125":GO SUB 3870:RETURN 3740 IF v(5)=v(4) THEN LET v$="123":GO SUB 3870:RETURN 3750 RETURN 3760 FOR i=1 TO 3 3770 IF v(i)=v(i+1) THEN GO TO 3830 3780 IF v(i+1)=v(i+2) THEN GO TO 3830 3790 IF v(i)-v(i+2)>4 THEN GO TO 3830 3800 IF i=1 THEN LET v$="45":GO SUB 3870:RETURN 3810 IF i=2 THEN LET v$="15":GO SUB 3870:RETURN 3820 IF i=3 THEN LET v$="12":GO SUB 3870:RETURN 3830 NEXT i 3840 IF v(SGN PI)=v(2) AND v(PI)=v(4) AND v(SGN PI)-v(5)<5 AND v(SGN PI)>v(PI) AND v(PI)>v(5) THEN LET v$="24":GO SUB 3870:RETURN 3850 IF v(PI)=v(2) AND v(5)=v(4) AND v(SGN PI)-v(5)<5 AND v(SGN PI)>v(PI) AND v(PI)>v(5) THEN LET v$="24":GO SUB 3870:RETURN 3860 RETURN 3870 FOR i=1 TO LEN v$ 3880 LET o= VAL v$(i) 3890 FOR j=1 TO 5 3900 IF d(j)=v(o) THEN LET d$=d$+ STR$ j:LET d(j)=0:GO TO 3920 3910 NEXT j 3920 NEXT i 3930 RETURN 3940 IF c$(z) <>" " THEN GO TO 3960 3950 IF d(SGN PI)=d(5) THEN LET c$(z)="30":PRINT AT 12,25;c$(z):RETURN 3960 IF t$(z) <>" " THEN GO TO 3980 3970 IF d(SGN PI)=d(2)+1 AND d(2)+1=d(PI)+2 AND d(PI)+2=d(4)+3 AND d(4)+3=d(5)+4 THEN LET t$(z)="25":PRINT AT 6,25;t$(z):RETURN 3980 IF n(z) <>5 THEN GO TO 4050 3990 IF d(SGN PI) <>d(5) THEN GO TO 4050 4000 IF a$(d(SGN PI)+l) <>" " THEN GO TO 4050 4010 FOR i=0 TO 2 4020 IF i*d(SGN PI)+m(z)>62 THEN LET w$(z)="25":GO SUB 5220:RETURN 4030 NEXT i 4040 IF 3*d(SGN PI)>62 THEN LET i=d(SGN PI):LET a$(i+l)= STR$ (5*i):GO SUB 5210:RETURN 4050 FOR i=1 TO 6 4060 IF a$(i+l) <>" " THEN GO TO 4100 4070 LET aa=3- LEN (STR$ (5*i)) 4080 IF i=1 AND w$(z)=" " THEN IF d(SGN PI)=d(5) THEN LET w$(z)="25":GO SUB 5220:RETURN 4090 IF i=d(SGN PI) AND i=d(5) THEN LET a$(i+l,aa TO 2)= STR$ (5*i):GO SUB 5210:RETURN 4100 NEXT i 4110 IF d(SGN PI) <>d(4) AND d(2) <>d(5) THEN GO TO 4240 4120 IF n(z) <>5 THEN GO TO 4180 4130 IF a$(d(PI)+l) <>" " THEN GO TO 4180 4140 IF w$(z) <>" " THEN GO TO 4180 4150 FOR i=0 TO 2 4160 IF i*d(PI)+m(z)>62 THEN LET w$(z)="25":GO SUB 5220:RETURN 4170 NEXT i 4180 IF 4*d(PI)>62 AND 3*d(PI)<63 THEN LET i=d(PI):LET a$(i+l)= STR$ (4*i):GO SUB 5210:RETURN 4190 LET i=d(PI) 4200 LET ab=3- LEN (STR$ (4*i)) 4210 IF d(PI)>3 THEN IF a$(i+l)=" " THEN LET a$(i+l)= STR$ (4*i):GO SUB 5210:RETURN 4220 IF w$(z)=" " THEN LET w$(z)="25":GO SUB 5220:RETURN 4230 IF a$(i+l)=" " THEN LET a$(i+l,ab TO 2)= STR$ (4*i):GO SUB 5210:RETURN 4240 IF h$(z) <>" " THEN GO TO 4260 4250 IF di>26 THEN LET h$(z)= STR$ di:PRINT AT 8,25;h$(z):RETURN 4260 IF f$(z) <>" " THEN GO TO 4290 4270 IF d(SGN PI)=d(2) THEN IF d(PI)=d(5) THEN LET f$(z)="25":PRINT AT 4,25;f$(z):RETURN 4280 IF d(SGN PI)=d(PI) THEN IF d(4)=d(5) THEN LET f$(z)="25":PRINT AT 4,25;f$(z):RETURN 4290 IF n(z) <>5 THEN GO TO 4410 4300 FOR i=1 TO 6 4310 IF a$(i+l) <>" " THEN GO TO 4400 4320 FOR j=1 TO 3 4330 IF i=d(j) AND i=d(j+2) THEN IF m(z)+3*i<63 AND m(z)+4*i>62 THEN GO TO 4360 4340 NEXT j 4350 GO TO 4410 4360 IF h$(z)=" " AND l$(z)=" " THEN GO SUB 5280:IF h$(z) <>" " OR l$(z) <>" " THEN RETURN 4370 IF h$(z)=" " AND l$(z) <>" " THEN GO SUB 5310:IF h$(z) <>" " THEN RETURN 4380 IF l$(z)=" " AND h$(z) <>" " THEN GO SUB 5330:IF l$(z) <>" " THEN RETURN 4390 IF c$(z)=" " THEN LET c$(z)=" 0":GO SUB 5270:RETURN 4400 NEXT i 4410 FOR i=1 TO 6 4420 IF a$(i+l) <>" " THEN GO TO 4470 4430 LET aa=3- LEN (STR$ (i*3)) 4440 FOR j=1 TO 3 4450 IF i=d(j) AND i=d(j+2) THEN LET a$(i+l,aa TO 2)= STR$ (3*i):GO SUB 5210:RETURN 4460 NEXT j 4470 NEXT i 4480 IF h$(z)=" " AND l$(z)=" " THEN GO SUB 5280:IF h$(z) <>" " OR l$(z) <>" " THEN RETURN 4490 IF h$(z)=" " AND l$(z) <>" " THEN GO SUB 5310:IF h$(z) <>" " THEN RETURN 4500 IF l$(z)=" " AND h$(z) <>" " THEN GO SUB 5330:IF l$(z) <>" " THEN RETURN 4510 IF n(z) <>5 THEN GO TO 4750 4520 FOR i=1 TO 6 4530 IF a$(i+l) <>" " THEN GO TO 4740 4540 LET u=0 4550 FOR j=1 TO 4 4560 IF i=d(j) AND i=d(j+1) THEN LET u=2*i:IF m(z)+2*d(j)<63 THEN IF m(z)+3*d(j)>62 THEN GO TO 4670 4570 NEXT j 4580 IF u=2*i THEN GO TO 4640 4590 FOR j=1 TO 5 4600 IF i=d(j) THEN LET u=d(j):IF m(z)+d(j)<63 THEN IF m(z)+3*d(j)>62 THEN GO TO 4670 4610 NEXT j 4620 IF u=i THEN GO TO 4640 4630 LET u=0:IF m(z)<63 THEN IF m(z)+3*i>62 THEN GO TO 4670 4640 IF m(z)+u<63 THEN IF m(z)+4*i>62 THEN IF c$(z)=" " THEN LET c$(z)=" 0":GO SUB 5270:RETURN 4650 IF u>9 THEN LET a$(i+l)= STR$ u:GO SUB 5210:RETURN 4660 IF u<10 THEN LET a$(i+l)=" "+ STR$ u:GO SUB 5210:RETURN 4670 IF c$(z)=" " THEN LET c$(z)=" 0":GO SUB 5270:RETURN 4680 IF t$(z)=" " THEN LET t$(z)=" 0":GO SUB 5240:RETURN 4690 IF w$(z)=" " THEN LET w$(z)=" 0":GO SUB 5220:RETURN 4700 IF f$(z)=" " THEN LET f$(z)=" 0":GO SUB 5230:RETURN 4710 IF h$(z)=" " THEN LET h$(z)=" 0":GO SUB 5250:RETURN 4720 IF l$(z)=" " THEN LET l$(z)=" 0":GO SUB 5260:RETURN 4730 GO TO 4650 4740 NEXT i 4750 FOR i=1 TO 3 4760 IF a$(i+l) <>" " THEN GO TO 4850 4770 FOR j=1 TO 4 4780 IF i=d(j) AND i=d(j+1) THEN LET a$(i+l)=" "+ STR$ (2*i):GO SUB 5210:RETURN 4790 NEXT j 4800 IF i <>1 THEN GO TO 4840 4810 FOR k=1 TO 5 4820 IF d(k)=1 THEN LET a$(1+l)=" 1":PRINT AT 2,9;a$(1+l):LET n(z)=n(z)+1:LET m(z)=m(z)+1:RETURN 4830 NEXT k 4840 IF i=2 THEN IF a$(1+l)=" " THEN LET a$(1+l)=" 0":PRINT AT 2,9;a$(1+l):LET n(z)=n(z)+1:RETURN 4850 NEXT i 4860 FOR i=1 TO 3 4870 IF a$(i+l) <>" " THEN GO TO 4930 4880 FOR j=1 TO 5 4890 IF i=d(j) THEN LET a$(i+l)=" "+ STR$ i:GO SUB 5210:RETURN 4900 IF i>1 THEN GO TO 4920 4910 IF a$(1+l)=" " THEN LET a$(1+l)=" 0":PRINT AT 2,9;a$(1+l):LET n(z)=n(z)+1:RETURN 4920 NEXT j 4930 NEXT i 4940 FOR i=1 TO 2 4950 IF a$(i+l) <>" " THEN GO TO 4970 4960 LET a$(i+l)=" 0":GO SUB 5210:RETURN 4970 NEXT i 4980 IF c$(z)=" " THEN LET c$(z)=" 0":PRINT AT 12,25;c$(z):RETURN 4990 IF t$(z)=" " THEN LET t$(z)=" 0":PRINT AT 6,25;t$(z):RETURN 5000 FOR i=4 TO 6 5010 IF a$(i+l) <>" " THEN GO TO 5060 5020 LET aa=3- LEN (STR$ (i*2)) 5030 FOR j=1 TO 4 5040 IF i=d(j) AND i=d(j+1) THEN LET a$(i+l,aa TO 2)= STR$ (2*i):GO SUB 5210:RETURN 5050 NEXT j 5060 NEXT i 5070 FOR i=4 TO 6 5080 IF a$(i+l) <>" " THEN GO TO 5120 5090 FOR j=1 TO 5 5100 IF i=d(j) THEN LET a$(i+l)=" "+ STR$ i:GO SUB 5210:RETURN 5110 NEXT j 5120 NEXT i 5130 IF w$(z)=" " THEN LET w$(z)=" 0":GO SUB 5220:RETURN 5140 IF f$(z)=" " THEN LET f$(z)=" 0":PRINT AT 4,25;f$(z):RETURN 5150 FOR i=3 TO 6 5160 IF a$(i+l) <>" " THEN GO TO 5180 5170 LET a$(i+l)=" 0":GO SUB 5210:RETURN 5180 NEXT i 5190 IF l$(z)=" " THEN LET l$(z)=" 0":PRINT AT 10,25;l$(z):RETURN 5200 IF h$(z)=" " THEN LET h$(z)=" 0":PRINT AT 8,25;h$(z):RETURN 5210 PRINT AT i*2,9;a$(i+l):LET n(z)=n(z)+1:LET m(z)=m(z)+ VAL a$(i+l):RETURN 5220 PRINT AT 2,25;w$(z):RETURN 5230 PRINT AT 4,25;f$(z):RETURN 5240 PRINT AT 6,25;t$(z):RETURN 5250 PRINT AT 8,25;h$(z):RETURN 5260 PRINT AT 10,25;l$(z):RETURN 5270 PRINT AT 12,25;c$(z):RETURN 5280 IF di>24 THEN LET h$(z)= STR$ di:PRINT AT 8,25;h$(z):RETURN 5290 IF di>20 THEN LET l$(z)= STR$ di:PRINT AT 10,25;l$(z) 5300 RETURN 5310 IF di> VAL l$(z) THEN IF di>20 THEN LET h$(z)= STR$ di:PRINT AT 8,25;h$(z) 5320 RETURN 5330 IF di< VAL h$(z) THEN IF di>20 THEN LET l$(z)= STR$ di:PRINT AT 10,25;l$(z) 5340 RETURN 5345 PRINT AT 19, NOT PI; INK NOT PI; PAPER 7;" "'" ":RETURN 5400 REM \{20}\{1} UDGs \{20}\{0} 5410 DEF FN h(x)= INT (x/256):DEF FN l(x)=x-256* FN h(x) 5420 : 5430 LET x= VAL "(PEEK 23637+ PEEK 23638*256)+6":POKE 23675, FN l(x):POKE 23676, FN h(x):RETURN 5440 REM COPY COPY NOT NOT NOT NOT COPY COPY \{0}\{0}COPY \{0}\{0}\{0}\{0}\{0}\{0}\{0}\{0}\{0}\{0}COPY \{0}\{0} \{4}\{4}\{4}\{4}\{4}\{4}\{4}\{4}\{0}\{0}? \{0}\{0}DRAW \{4}\{4}\{4}\{4}\{4} ?\{0}\{0}\{4}\{4}\{4}\{4}\{4}DRAW \{0}\{0}\{4}\{4}\{7}\{4}\{4}\{4}\{4}\{4}\{4}\{4}DRAW \{4}\{4}\{4}\{4}\{4}\{0}\{0}COPY \{4}\{4}\{4}\{4}\{4}\{4}\{4}\{4}\{4}\{4}COPY \{0}\{0}\{0}\*?\{31}\{15}\{7}\{3}\{1}\{0}COPY COPY COPY COPY COPY COPY COPY \*IN OUT LOAD RUN CLS CLEAR RETURN \*\*\*\*\*\*\*\*\{0}@`px|~\*\{0}<@<\{2}B<\{0}\{0}RETURN \{16}\{16}\{16}\{16}\{16}\{0}\{0}BBBBB<\{0} 5500 LOAD "pentzy C"SCREEN$ :PAPER 6:GO TO 1 5510 REM LOAD ""SCREEN$ :SAVE "pentzy" LINE 1:SAVE "code"SCREEN$ 5520 SAVE "pentzy" LINE 5500 ```