diff --git a/basic/LEMONADE.PRG b/basic/LEMONADE.PRG new file mode 100644 index 0000000..87036a1 Binary files /dev/null and b/basic/LEMONADE.PRG differ diff --git a/basic/PETFONT.BIN b/basic/PETFONT.BIN new file mode 100644 index 0000000..a94425a Binary files /dev/null and b/basic/PETFONT.BIN differ diff --git a/basic/lemonade.bas b/basic/lemonade.bas new file mode 100644 index 0000000..017f0e0 --- /dev/null +++ b/basic/lemonade.bas @@ -0,0 +1,494 @@ +5 REM LEMONADE STAND FOR X16, EDIT 2021 ROBERT EAGLESTONE +10 REM BORING NOTES AT THE END OF THIS LISTING +15 REM +20 REM TO USE THE PET FONT: +25 REM +30 VLOAD "PETFONT.BIN",8,1,0 +35 POKE $9F36,128 +40 DIM A0$(30) +45 A0$(0)="\X13" +50 FORX=1TO30:A0$(X)=A0$(X-1)+"\X11":NEXT +55 REM ------------------------------------ +60 REM +65 REM +70 REM COMMODORE TITLE PAGE (CA. 1986) +75 REM +80 REM +85 REM ------------------------------------ +90 SCREEN 0 :REM X16 40X25 MODE +95 COLOR 5,0 :REM X16 GREEN-ON-BLACK +100 ?CHR$(147) +105 PRINT"\X93\X11\X1D"; +110 FORI=1TO38:PRINT"\X12Š\X92";:NEXT +115 FORI=1TO27:PRINT"\X11\X9D\X12Š\X92";:NEXT +120 FORI=1TO37:PRINT"\X9D\X9D\X12Š\X92";:NEXT +125 FORI=1TO27:PRINT"\X91\X9D\X12Š\X92";:NEXT +130 REM ------------------------------------ +135 REM +140 REM PRINT THE COMMODORE LOGO! +145 REM +150 REM ------------------------------------ +155 COLOR 6,0 :REM LTBLUE ON BLACK +160 PRINT"\X13\X11\X11\X11\X11\X11\X11\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X12© \X92 +165 PRINT"\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X12 \X92 \X12 \X92© +170 PRINT"\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X12 \X92 "; +175 COLOR 2,0 :REM RED ON BLACK +180 PRINT "\X12£ß +185 COLOR 6,0 :REM LTBLUE ON BLACK +190 PRINT"\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1Dß\X12 \X92 +195 COLOR 5,0 :REM X16 GREEN-ON-BLACK +200 PRINT"\X11\X11\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1DC O M M O D O R E\X11\X11 +205 PRINT"\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1DEDUCATIONAL\X11\X11 +210 PRINT"\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1DSOFTWARE +215 ? A0$(24);"\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X1D\X12 PRESS SPACE BAR \X92":I=0 +220 GET A$: IF A$<>" " GOTO 220 +225 GOSUB 2120 :REM INTRO +230 V=RND(-TI) :REM SEED RANDOMIZER +235 ?"\X93\X11\X11 LEMONADE STAND \X11\X11" +240 INPUT" WHAT IS YOUR NAME";N$ +245 IF N$="" GOTO 90 +250 N$=LEFT$(N$,13) +255 ? +260 REM ------------------------------------ +265 REM +270 REM +275 REM INITIALIZATION +280 REM +285 REM +290 REM ------------------------------------ +295 WK=12 :REM # OF WEEKS TO RUN +300 B=10 :REM STARTING CASH +305 D1=0 :REM STARTING LEMON CONCENTRATE +310 A1=0 :REM STARTING SUGAR +315 P1=0 :REM STARTING CUPS +320 X=1 +325 ?:?" " N$", YOU SHALL OPERATE YOUR" +330 ?:?" STAND FOR"WK"WEEKS." +335 GOSUB 1745 :REM SPACEBAR +340 REM ------------------------------------ +345 REM +350 REM +355 REM MAIN LOOP +360 REM +365 REM +370 REM ------------------------------------ +375 FX=0 +380 ? "\X93\X11"; +385 ?" WEEK NUMBER" X +390 ? " +395 ? " YOU HAVE: +400 ? " +405 ? " §£££££££££££££££¥ QTS/CONC +410 ? " § ¥ LBS/SUGAR +415 TA=4+INT(((14-LEN(N$))/2)+.5) +420 ? TAB(TA)"\X91"N$"'S" +425 ? " § LEMONADE ¥ CUPS +430 ? " § ¥ +435 ? " § CENTS ¥ WEATHER: +440 ? " §£££££££££££££££¥ +445 ? " § €€€ ¥ +450 ? " § Í ÎÉ ¥ +455 ? " § ( )Ë¡¡¡¡¡¡¡¡¡ ¥ +460 ? " §\X12© ß\X92¥ +465 ? " \X12© ß\X92 +470 ? " È(Ù@Ç()ÕÉÇ()Ç)Ç*Ç +475 ? " È)Ù(Â)(ÊËÂ)(Â@Ç)Ç +480 ? " È(Ù)Ç(×()Ç(*Ç)Ç(Ç +485 ? " È)Ù(Â)(@(Â)(Â(Ç)Ç +490 ? " È*Ù)Ç*)()Ç()Ç)Ç(Ç +495 ? " È)Ù(Ç)()(Ç)(Ç(Ç)Ç +500 ? "±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± +505 GOSUB 1640 :REM SHOW VALUES +510 REM ------------------------------------ +515 REM +520 REM PREDICTIONS +525 REM +530 REM T: TEMP +535 REM H: HUMIDITY +540 REM S: COST OF SUGAR +545 REM L: COST OF LEMON CONCENTRATE +550 REM C: COST OF CUPS +555 REM Z: TEMP VARIATION (ACTUAL) +560 REM T2: FELT (LOW) TEMPERATURE W/HUMIDITY +565 REM F2,F4: THRESHOLD VALUES +570 REM +575 REM ------------------------------------ +580 T=(INT(RND(1)*3)+7)*10 +585 H=RND(1) +590 IF H>.66 THEN H$="HIGH" +595 IF H<.33 THEN H$="LOW" +600 IF H>.32 AND H<.67 THEN H$="AVERAGE" +605 S=.99+(.01)*INT(RND(1)*9):REM**COST OF SUGAR +610 L=.69+(.01)*INT(RND(1)*9):REM**COST OF CONCENTRATE +615 C=.90+(.01)*INT(RND(1)*9):REM**COST OF CUPS +620 Z=-5+INT(RND(1)*20) +625 T2=T+Z-INT(H*10) +630 F2=INT(RND(1)*30)+70 +635 F4=(((T+Z+T2)-137.5)/25) +640 IF F4<.1 THEN F4=.1 +645 IF F4>1 THEN F4=1 +650 GOSUB 1915 :REM CLEAR W +655 ? A0$(11) TAB(23) "PREDICTION FOR" +660 ? A0$(12) TAB(23) "SATURDAY:" +665 ? A0$(14) TAB(23) "TEMPERATURES IN" +670 ? A0$(15) TAB(23) "THE"T"\X9D'S AND" +675 ? A0$(16) TAB(23) H$" HUMIDITY" +680 REM ------------------------------------ +685 REM +690 REM +695 REM BUY LEMON CONCENTRATE +700 REM +705 REM +710 REM ------------------------------------ +715 GOSUB 1640 :REM SHOW VALUES +720 GOSUB 1970 :REM CLEAR D +725 ? A0$(23) "CONC. LEMON IS $"L"A QUART." +730 ? A0$(24) "HOW MANY QUARTS DO YOU WANT TO BUY? "; +735 GOSUB 2025 :D=AN +740 IF D*L"Y" GOTO 1040 +1050 FX=2 +1055 GOSUB 1970 :REM CLEAR D +1060 ? A0$(23) "WHICH ITEM: LEMON=1 SUGAR=2 CUPS=3" +1065 NI$="" +1070 GET NI$ +1075 IF NI$="1" THEN B=B+(A*S) :D1=D1-D :GOTO 715 +1080 IF NI$="2" THEN B=B+(D*L) :A1=A1-(5*A) :GOTO 815 +1085 IF NI$="3" THEN B=B+(P*C) :P1=P1-(P*100) :GOTO 915 +1090 GOTO 1070 +1095 GOSUB 1970 :REM CLEAR D +1100 ? A0$(23) "PRICE (IN CENTS) FOR A CUP" +1105 ? "OF LEMONADE: "; +1110 GOSUB 2025 :K=AN +1115 IF K<1 OR K>80 GOTO 1095 +1120 F3=3-((K/3)/((((T+Z+T2)-37.5)^3)/10^6)) +1125 IF F3<0 THEN F3=0 +1130 GOSUB 1970 :REM CLEAR D +1135 ? A0$(9) TAB(9) K :REM PRICE PER CUP +1140 F1=INT(F2*F3*F4) +1145 IF F1<0 THEN F1=0 +1150 IF F1<1 THEN W=1: IF F1<1 GOTO 1320 +1155 REM ------------------------------------ +1160 REM +1165 REM +1170 REM RUN THE SIMULATION F1 TIMES +1175 REM +1180 REM +1185 REM ------------------------------------ +1190 FOR W=1 TO F1 +1195 IF P1<.01 THENP1=0 +1200 IF D1<.01 THEND1=0 +1205 IF A1<.01 THENA1=0 +1210 IF P1=0 OR A1=0 OR D1=0 GOTO 1245 +1215 GOSUB 1640 :REM SHOW VALUES +1220 D1=D1-(1/40) +1225 A1=A1-(1/20) +1230 P1=P1-1 +1235 B=B+(K*.01) +1240 NEXT W +1245 GOSUB 1640 :REM SHOW VALUES +1250 REM ------------------------------------ +1255 REM +1260 REM +1265 REM DISPLAY RESULTS AND COMMENTARY +1270 REM +1275 REM +1280 REM ------------------------------------ +1285 IF W=F1 GOTO 1320 +1290 MM$="CUPS." +1295 IF P1<=0 THEN GOSUB 1850 +1300 MM$="LEMON JUICE." +1305 IF D1<=0 THEN GOSUB 1850 +1310 MM$="SUGAR." +1315 IF A1<=0 THEN GOSUB 1850 +1320 GOSUB 1970 :REM CLEAR D +1325 ? A0$(23) "YOU MADE"W-1"SALES AT"K"CENTS A CUP." +1330 ? A0$(24) "YOU GROSSED $"(W-1)*(K/100)"\X9D." +1335 FOR K1=1 TO 50 +1340 F5=3-((K1/3)/((((T+Z+T2)-37.5)^3/10^6))) +1345 G5=(INT(F5*F2*F4))*(K1/100) +1350 IF G51 THEN ? A0$(26) "YOU'RE A GOOD BUSINESSPERSON." +1400 COUNT=COUNT+1 +1405 K9=0:G9=0 +1410 GOSUB 1795 :REM WAIT +1415 GOSUB 1745 :REM SPACEBAR +1420 X=X+1: IF X<=WK GOTO 375 :REM LOOP +1425 REM ------------------------------------ +1430 REM +1435 REM +1440 REM END / SUMMARY +1445 REM +1450 REM +1455 REM ------------------------------------ +1460 ?CHR$(147) +1465 ? "\X12SUMMER'S END\X92" +1470 ?:? " THE SUMMER IS OVER." +1475 ?:? " YOU HAVE $"B"." +1480 ?:? " YOU OWE YOUR FAMILY $10, SO" +1485 ?:? " YOU EARNED $"B-10"THIS SUMMER." +1490 ?:? " YOU HAVE"P1"CUPS,"INT(D1)"BOTTLES OF" +1495 ?:? " LEMON JUICE, AND"INT(A1)"LBS OF" +1500 ?:? " SUGAR LEFT OVER." +1505 IF COUNT" "THEN 1750 +1755 RETURN +1760 REM ------------------------------------ +1765 REM +1770 REM +1775 REM A SHORT WAIT (100 JIFFYS) +1780 REM +1785 REM +1790 REM ------------------------------------ +1795 TT=TI+100 +1800 IF TT>TI GOTO 1800 +1805 RETURN +1810 REM ------------------------------------ +1815 REM +1820 REM +1825 REM YOU WOULD HAVE MADE SALES, +1830 REM IF YOU HAD MORE . +1835 REM +1840 REM +1845 REM ------------------------------------ +1850 GOSUB 1970 :REM CLEAR D +1855 ? A0$(23) "YOU WOULD HAVE MADE"F1"SALES," +1860 ? A0$(24) "IF YOU HAD MORE " MM$ +1865 FX=1 +1870 GOSUB 1795 :REM WAIT +1875 RETURN +1880 REM ------------------------------------ +1885 REM +1890 REM +1895 REM CLEAR WEATHERBOARD +1900 REM +1905 REM +1910 REM ------------------------------------ +1915 FOR V=10 TO 18 +1920 ? A0$(V) TAB(23) " " +1925 NEXT V +1930 RETURN +1935 REM ------------------------------------ +1940 REM +1945 REM +1950 REM CLEAR DIRECTIVES +1955 REM +1960 REM +1965 REM ------------------------------------ +1970 FOR V=23 TO 28 +1975 ? A0$(V) " " +1980 NEXT V +1985 RETURN +1990 REM ------------------------------------ +1995 REM +2000 REM +2005 REM DIGIT COLLECTION +2010 REM +2015 REM +2020 REM ------------------------------------ +2025 GET A1$ :IF A1$<"0" OR A1$>"9" GOTO 2025 +2030 ? A1$; +2035 GET A2$ :IF A2$="" GOTO 2035 +2040 IF A2$=CHR$(20) THEN ? CHR$(20); :GOTO 2025 +2045 IF A2$=CHR$(13) THEN A2$="" :GOTO 2075 +2050 IF A2$<"0" OR A2$>"9" THEN 2035 +2055 ? A2$; +2060 GET A3$ :IF A3$="" GOTO 2060 +2065 IF A3$=CHR$(20) THEN ? CHR$(20); :GOTO 2035 +2070 IF A3$<>CHR$(13) GOTO 2060 +2075 AN=VAL(A1$+A2$) +2080 RETURN +2085 REM ------------------------------------ +2090 REM +2095 REM +2100 REM INTRODUCTION +2105 REM +2110 REM +2115 REM ------------------------------------ +2120 ?CHR$(147); +2125 ? CHR$(14); +2130 ? " \X12LEMONADE STAND\X92" +2135 ? +2140 ? " YOU'VE DECIDED TO RUN A LEMONADE STAND" +2145 ? " FOR 12 SATURDAYS THIS SUMMER IN ORDER " +2150 ? " TO MAKE SOME MONEY. ÂUT YOU SOON FIND " +2155 ? " THAT RUNNING A STAND COSTS MONEY." +2160 ? " YOUR JOB IS TO MAKE AS BIG A PROFIT AS" +2165 ? " YOU CAN." +2170 ? +2175 ? " YOUR FAMILY AGREES TO STAKE YOU $10 IN" +2180 ? " ORDER TO GET STARTED. AT THE END OF " +2185 ? " THE SUMMER YOU WILL HAVE TO RETURN THE" +2190 ? " $10, BUT YOU WILL NOT NEED TO PAY" +2195 ? " INTEREST." +2200 ? +2205 ? " IF YOU KEEP YOUR PRICE LOW, YOU'LL SELL"; +2210 ? " MORE LEMONADE, BUT WILL MAKE LESS MONEY"; +2215 ? " ON EACH SALE." +2220 ? " ON HOT OR HUMID DAYS, YOU WILL SELL" +2225 ? " MORE LEMONADE AND ALSO BE ABLE TO" +2230 ? " CHARGE MORE PER CUP." +2235 ? " WHEN THE WET BULB READING IS CLOSE TO" +2240 ? " THE TEMPERATURE, IT IS A HUMID DAY." +2245 GOSUB 1795 :REM WAIT +2250 GOSUB 1745 :REM SPACEBAR +2255 ?CHR$(147):? CHR$(142) +2260 RETURN +2265 "----------------------------------------------------- +2270 : +2275 : +2280 "LEMONADE STAND DESIGN NOTES, R.EAGLESTONE 2021 +2285 : +2290 : +2295 "----------------------------------------------------- +2300 "MY GOAL IS TO RE-CREATE THE ORIGINAL PET EXPERIENCE, +2305 "BUT ON THE X16 WITH A 40 X 25 DISPLAY. I GO SO FAR AS +2310 "TO USE THE ORIGINAL STARTING CASH AMOUNT, ORIGINAL +2315 "IMPERIAL UNITS, AND A GREEN-ON-BLACK DISPLAY. +2320 : +2325 "THERE ARE A VERY FEW X16-SPECIFIC COMMANDS USED: +2330 "'COLOR' AND 'SCREEN' TO BE EXACT. +2335 : +2340 "WHAT IS UNCHANGED ARE THE ALGORITHMS USED TO +2345 "CALCULATE THE PRICES, TEMPERATURES, AND DEMAND -- +2350 "I.E. THE CORE MECHANICS OF THE GAME ITSELF. +2355 : +2360 "EFFORTS TO FIND THE SOURCE RETURNED TWO LATE VARIANTS: +2365 "(1) A VIC-20 LISTING MADE IN 2009 +2370 "(2) THE C64 VERSION FROM 1986 +2375 : +2380 "THE VIC-20 VERSION IS GREATLY STRIPPED DOWN, WHICH +2385 "ACTUALLY WAS A BOON SINCE IT LAID BARE THE FUNDAMENTAL +2390 "STRUCTURE OF THE GAME. +2395 : +2400 "THE C64 VERSION IS ABOUT 50% BOILERPLATE AND +2405 "FRIVOLOUS POKES, INCLUDING SOME ML TO PREVENT THE +2410 "CODE FROM BEING MODIFIED. AT THE SAME TIME, THAT +2415 "VERSION NOTES THAT THE PROGRAM WAS IN THE PUBLIC +2420 "DOMAIN. ITS CODE IS MORE FAITHFUL TO THE ORIGINAL, +2425 "AS WELL, ALTHOUGH DIFFERENCES EXIST. +2430 : +2435 "THIS VERSION WAS REBUILT USING THE VIC-20 VERSION +2440 "TO RECAPTURE THE ORIGINAL FLOW, THEN ADAPTING THE +2445 "1986 LOGIC INTO THE FRAMEWORK, PIECE BY PIECE. +2450 : +2455 "SUBROUTINES ARE NOT EQUIVALENT TO THE ORIGINALS. +2460 "IN FACT, EVEN THE INTERFACE IS NOT THE SAME, SINCE +2465 "I USED THE ORIGINAL PET VIEW AS THE TEMPLATE, +2470 "RATHER THAN THE C64/V20 VERSIONS, WHICH DIFFER. diff --git a/basic/music-invention13.bas b/basic/music-invention13.bas new file mode 100644 index 0000000..fa317b3 --- /dev/null +++ b/basic/music-invention13.bas @@ -0,0 +1,310 @@ +5 SK = 0 :REM SKIP NOTES +10 TE = 1200 :REM TEMPO +15 SG = $F9C0 :REM PSG +20 REM SG :REM FREQ LO +25 REM SG+1 :REM FREQ HI +30 REM SG+2 :REM VOL +35 REM SG+3 :REM WAVEFORM DUTY CYCLE +40 LR = %11000000 :REM STEREO +45 W(0) = %00000000 :REM WAVEFORM 1 +50 W(1) = %10000000 :REM WAVEFORM 2 +55 W(2) = %11000000 :REM WAVEFORM 3 +60 PU = 63 :REM PULSE DUTY CYCLE = 50% +65 REM +70 REM NOTES +75 REM +80 DIM NO$(61) +85 FOR X=0 TO 61 :READ NO$(X) :NEXT +90 DATA 0,0 +95 DATA C2,CS2,D2,DS2,E2,F2,FS2,G2,GS2,A2,AS2,B2 +100 DATA C3,CS3,D3,DS3,E3,F3,FS3,G3,GS3,A3,AS3,B3 +105 DATA C4,CS4,D4,DS4,E4,F4,FS4,G4,GS4,A4,AS4,B4 +110 DATA C5,CS5,D5,DS5,E5,F5,FS5,G5,GS5,A5,AS5,B5 +115 DATA C6,CS6,D6,DS6,E6,F6,FS6,G6,GS6,A6,AS6,B6 +120 REM +125 REM FREQUENCIES +130 REM +135 DIM FR(61) +140 FOR X=0 TO 54 :READ FR(X) :NEXT +145 REM OFF +150 DATA 0 +155 REM C2 , CS2 , D2 , DS2 , E2 , F2 +160 DATA 175.60 , 186.04 , 197.10 , 208.81 , 221.23 , 234.39 +165 REM FS2 , G2 , GS2 , A2 , AS2 , B2 +170 DATA 248.32 , 263.09 , 278.74 , 295.30 , 312.86 , 331.46 +175 REM C3 , CS3 , D3 , DS3 , E3 , F3 +180 DATA 351.17 , 372.05 , 394.17 , 417.61 , 442.44 , 468.75 +185 REM FS3 , G3 , GS3 , A3 , AS3 , B3 +190 DATA 496.64 , 526.17 , 557.45 , 590.60 , 625.72 , 662.93 +195 REM C4 , CS4 , D4 , DS4 , E4 , F4 +200 DATA 702.36 , 744.11 , 788.35 , 835.25 , 884.91 , 937.53 +205 REM FS4 , G4 , GS4 , A4 , AS4 , B4 +210 DATA 993.26 , 1052.35, 1114.90, 1181.21, 1251.44, 1325.85 +215 REM C5 , CS5 , D5 , DS5 , E5 , F5 +220 DATA 1404.70, 1488.24, 1576.72, 1670.47, 1769.80, 1875.06 +225 REM FS5 , G5 , GS5 , A5 , AS5 , B5 +230 DATA 1986.55, 2104.67, 2229.83, 2362.42, 2502.90, 2651.73 +235 REM C6 , CS6 , D6 , DS6 , E6 , F6 +240 DATA 2809.40, 2976.46, 3153.45, 3340.97, 3539.62, 3750.09 +245 REM +250 REM SET VOICES +255 REM +260 FOR I = 0 TO 2 +265 SR = SG + 16 * I +270 VPOKE 1,SR,0 +275 VPOKE 1,SR+1,0 +280 V = 63 :REM VOL +285 VPOKE 1,SR+2, LR + V +290 VPOKE 1,SR+3, W(I) + PU +295 NEXT +300 REM +305 REM PLAY LOOP +310 REM +315 READ P(0),P(1) +320 IF P(0)=-255 GOTO 405 +325 IF SK>0 THEN SK=SK-1 :GOTO 315 +330 REM PRINT NO$(P(0)), NO$(P(1)) +335 REM GOTO 315 +340 FOR I = 0 TO 1 +345 SR = SG + 16 * I +350 F = FR(P(I)) +355 FL = F AND 255 +360 FH = INT(F/256) +365 VPOKE 1,SR+0 ,FL +370 VPOKE 1,SR+1 ,FH +375 NEXT +380 FOR X = 1 TO TE :NEXT :REM QUANTIZE TIMER +385 GOTO 315 +390 REM +395 REM DONE - TURN OFF VOICES +400 REM +405 FOR I = 0 TO 2 +410 SR = SG + 16 * I +415 VPOKE 1,SR+2,0 +420 VPOKE 1,SR+3,0 +425 NEXT +430 REM +435 REM NOTE FREQUENCY DATA PER VOICE +440 REM +445 REM BAR 1 +450 DATA 0,11 :REM 0, A2 +455 DATA 30,11 :REM E4, A2 +460 DATA 35,23 :REM A4, A3 +465 DATA 38,23 :REM C5, A3 +470 DATA 37,23 :REM B4, A3 +475 DATA 30,23 :REM E4, A3 +480 DATA 37,22 :REM B4, GS3 +485 DATA 40,22 :REM D5, GS3 +490 DATA 38,23 :REM C5, A3 +495 DATA 38,18 :REM C5, E3 +500 DATA 42,23 :REM E5, A3 +505 DATA 42,26 :REM E5, C4 +510 DATA 34,25 :REM GS4, B3 +515 DATA 34,18 :REM GS4, E3 +520 DATA 42,25 :REM E5, B3 +525 DATA 42,28 :REM E5, D4 +530 REM BAR 2 +535 DATA 35,26 :REM A4, C3 +540 DATA 30,26 :REM E4, C3 +545 DATA 35,23 :REM A4, A2 +550 DATA 38,23 :REM C5, A2 +555 DATA 37,22 :REM B4, GS3 +560 DATA 30,22 :REM E4, GS3 +565 DATA 37,18 :REM B4, E3 +570 DATA 40,18 :REM D5, E3 +575 DATA 38,23 :REM C5, A3 +580 DATA 38,18 :REM C5, E3 +585 DATA 35,23 :REM A4, A3 +590 DATA 35,26 :REM A4, C4 +595 DATA 0,25 :REM 0, B3 +600 DATA 0,18 :REM 0, E3 +605 DATA 0,25 :REM 0, B3 +610 DATA 0,28 :REM 0, D4 +615 REM BAR 3 +620 DATA 0,26 :REM 0, C4 +625 DATA 42,26 :REM E5, C4 +630 DATA 38,23 :REM C5, A3 +635 DATA 42,23 :REM E5, A3 +640 DATA 35,26 :REM A4, C4 +645 DATA 38,26 :REM C5, C4 +650 DATA 30,23 :REM E4, A3 +655 DATA 33,23 :REM G4, A3 +660 DATA 31,28 :REM F4, D4 +665 DATA 31,23 :REM F4, A3 +670 DATA 35,19 :REM A4, F3 +675 DATA 35,23 :REM A4, A3 +680 DATA 40,16 :REM D5, D3 +685 DATA 40,19 :REM D5, F3 +690 DATA 43,11 :REM F5, A2 +695 DATA 43,14 :REM F5, C3 +700 REM BAR 4 +705 DATA 43,13 :REM F5, B2 +710 DATA 40,13 :REM D5, B2 +715 DATA 37,16 :REM B4, D3 +720 DATA 40,16 :REM D5, D3 +725 DATA 33,21 :REM G4, G3 +730 DATA 37,21 :REM B4, G3 +735 DATA 28,25 :REM D4, B3 +740 DATA 31,25 :REM F4, B3 +745 DATA 30,25 :REM E4, B3 +750 DATA 30,21 :REM E4, G3 +755 DATA 33,18 :REM G4, E3 +760 DATA 33,21 :REM G4, G3 +765 DATA 38,14 :REM C5, C3 +770 DATA 38,18 :REM C5, E3 +775 DATA 42,9 :REM E5, G2 +780 DATA 42,13 :REM E5, B2 +785 REM BAR 5 +790 DATA 42,11 :REM E5, A2 +795 DATA 38,11 :REM C5, A2 +800 DATA 35,14 :REM A4, C3 +805 DATA 38,14 :REM C5, C3 +810 DATA 31,16 :REM F4, D3 +815 DATA 31,19 :REM F4, F3 +820 DATA 40,13 :REM D5, B2 +825 DATA 40,16 :REM D5, D3 +830 DATA 40,9 :REM D5, G2 +835 DATA 37,9 :REM B4, G2 +840 DATA 33,13 :REM G4, B2 +845 DATA 37,13 :REM B4, B2 +850 DATA 30,14 :REM E4, C3 +855 DATA 30,18 :REM E4, E3 +860 DATA 38,11 :REM C5, A2 +865 DATA 38,14 :REM C5, C3 +870 REM BAR 6 +875 DATA 38,7 :REM C5, F2 +880 DATA 35,7 :REM A4, F2 +885 DATA 31,4 :REM F4, D2 +890 DATA 35,4 :REM A4, D2 +895 DATA 28,9 :REM D4, G2 +900 DATA 28,21 :REM D4, G3 +905 DATA 37,19 :REM B4, F3 +910 DATA 37,21 :REM B4, G3 +915 DATA 38,11 :REM C5, A2 +920 DATA 38,21 :REM C5, G3 +925 DATA 0,26 :REM 0, C4 +930 DATA 0,30 :REM 0, E4 +935 DATA 0,28 :REM 0, D4 +940 DATA 0,21 :REM 0, G3 +945 DATA 0,28 :REM 0, D4 +950 DATA 0,31 :REM 0, F4 +955 REM BAR 7 +960 DATA 0,30 :REM 0, E4 +965 DATA 33,30 :REM G4, E4 +970 DATA 38,26 :REM C5, C4 +975 DATA 42,26 :REM E5, C4 +980 DATA 40,25 :REM D5, B3 +985 DATA 33,25 :REM G4, B3 +990 DATA 40,21 :REM D5, G3 +995 DATA 43,21 :REM F5, G3 +1000 DATA 42,26 :REM E5, C4 +1005 DATA 42,21 :REM E5, G3 +1010 DATA 45,26 :REM G5, C4 +1015 DATA 45,30 :REM G5, E4 +1020 DATA 37,28 :REM B4, D4 +1025 DATA 37,21 :REM B4, G3 +1030 DATA 45,28 :REM G5, D4 +1035 DATA 45,31 :REM G5, F4 +1040 REM BAR 8 +1045 DATA 38,30 :REM C5, E4 +1050 DATA 33,30 :REM G4, E4 +1055 DATA 38,26 :REM C5, C4 +1060 DATA 42,26 :REM E5, C4 +1065 DATA 40,0 :REM D5, 0 +1070 DATA 33,0 :REM G4, 0 +1075 DATA 40,0 :REM D5, 0 +1080 DATA 43,0 :REM F5, 0 +1085 DATA 42,0 :REM E5, 0 +1090 DATA 42,33 :REM E5, G4 +1095 DATA 38,30 :REM C5, E4 +1100 DATA 38,33 :REM C5, G4 +1105 DATA 45,26 :REM G5, C4 +1110 DATA 45,30 :REM G5, E4 +1115 DATA 42,21 :REM E5, G3 +1120 DATA 42,25 :REM E5, B3 +1125 REM BAR 9 +1130 DATA 50,23 :REM C6, A3 +1135 DATA 47,23 :REM A5, A3 +1140 DATA 42,26 :REM E5, C4 +1145 DATA 47,26 :REM A5, C4 +1150 DATA 38,30 :REM C5, E4 +1155 DATA 42,30 :REM E5, E4 +1160 DATA 35,33 :REM A4, G4 +1165 DATA 38,33 :REM C5, G4 +1170 DATA 40,32 :REM D5, FS4 +1175 DATA 40,35 :REM D5, A4 +1180 DATA 44,28 :REM FS5, D4 +1185 DATA 44,32 :REM FS5, FS4 +1190 DATA 47,23 :REM A5, A3 +1195 DATA 47,28 :REM A5, D4 +1200 DATA 50,20 :REM C6, FS3 +1205 DATA 50,35 :REM C6, A4 +1210 REM BAR 10 +1215 DATA 49,21 :REM B5, G3 +1220 DATA 45,21 :REM G5, G3 +1225 DATA 40,25 :REM D5, B3 +1230 DATA 45,25 :REM G5, B3 +1235 DATA 37,28 :REM B4, D4 +1240 DATA 40,28 :REM D5, D4 +1245 DATA 33,32 :REM G4, FS4 +1250 DATA 37,32 :REM B4, FS4 +1255 DATA 38,30 :REM C5, E4 +1260 DATA 38,32 :REM C5, FS4 +1265 DATA 42,26 :REM E5, C4 +1270 DATA 42,30 :REM E5, E4 +1275 DATA 45,21 :REM G5, G3 +1280 DATA 45,26 :REM G5, C4 +1285 DATA 49,18 :REM B5, E3 +1290 DATA 49,21 :REM B5, G3 +1295 REM BAR 11 +1300 DATA 47,20 :REM A5, FS3 +1305 DATA 44,20 :REM FS5, FS3 +1310 DATA 41,23 :REM DS5, A3 +1315 DATA 44,23 :REM FS5, A3 +1320 DATA 37,25 :REM B4, B3 +1325 DATA 40,25 :REM D5, B3 +1330 DATA 32,29 :REM FS4, DS4 +1335 DATA 35,29 :REM A4, DS4 +1340 DATA 33,0 :REM G4, 0 +1345 DATA 33,30 :REM G4, E4 +1350 DATA 45,26 :REM G5, C4 +1355 DATA 45,30 :REM G5, E4 +1360 DATA 45,23 :REM G5, A3 +1365 DATA 42,26 :REM E5, C4 +1370 DATA 38,30 :REM C5, E4 +1375 DATA 42,33 :REM E5, G4 +1380 REM BAR 12 +1385 DATA 35,32 :REM A4, FS4 +1390 DATA 35,28 :REM A4, D4 +1395 DATA 44,25 :REM FS5, B3 +1400 DATA 44,28 :REM FS5, D4 +1405 DATA 44,21 :REM FS5, G3 +1410 DATA 40,25 :REM D5, B3 +1415 DATA 37,28 :REM B4, D4 +1420 DATA 40,32 :REM D5, FS4 +1425 DATA 33,30 :REM G4, E4 +1430 DATA 33,26 :REM G4, C4 +1435 DATA 42,23 :REM E5, A3 +1440 DATA 42,26 :REM E5, C4 +1445 DATA 42,20 :REM E5, FS3 +1450 DATA 38,23 :REM C5, A3 +1455 DATA 35,26 :REM A4, C4 +1460 DATA 38,26 :REM C5, C4 +1465 REM BAR 13 +1470 DATA 32,26 :REM FS4, C4 +1475 DATA 45,25 :REM G5, B3 +1480 DATA 44,26 :REM FS5, C4 +1485 DATA 42,25 :REM E5, B3 +1490 DATA 41,26 :REM DS5, C4 +1495 DATA 44,26 :REM FS5, C4 +1500 DATA 37,13 :REM B4, B2 +1505 DATA 41,13 :REM DS5, B2 +1510 DATA 42,18 :REM E5, E3 +1515 DATA 42,30 :REM E5, E4 +1520 DATA 0,25 :REM 0, B3 +1525 DATA 0,21 :REM 0, G3 +1530 DATA 0,18 :REM 0, E3 +1535 DATA 0,13 :REM 0, B2 +1540 DATA 0,13 :REM 0, B2 +1545 DATA 0,13 :REM 0, B2 +1550 DATA -255,-255 diff --git a/basic/traveller-uwp.bas b/basic/traveller-uwp.bas index 677267c..e3c8fd8 100644 --- a/basic/traveller-uwp.bas +++ b/basic/traveller-uwp.bas @@ -19,7 +19,7 @@ 140 FOR RA = RA TO RA + 7:FOR RI = RI TO RI + 9 141 GOSUB 1100: REM COL+ROW 160 GOSUB 200: REM INIT -165 IF P = 0 THEN ? CR$ " *":GOTO 195 +165 IF P = 0 GOTO 195 170 GOSUB 1000: REM UWP 172 GOSUB 1200: REM NAME 173 RS$ = " ": REM SPECIAL REMARKS (N/A)