diff --git a/README.md b/README.md index d2c8758..1e4b6bf 100644 --- a/README.md +++ b/README.md @@ -9,9 +9,6 @@ Chat on Discord - - - @@ -23,54 +20,17 @@ Cookie Clicker C64 (or CC64 for short) is a Cookie clicker clone for the Commodore 64. -## No this project is not dead. I have been doing a lot of planning for a whole new program design. Join my Discord server if you want to see my progress so far.
- Ian Skinner - ## How to play : - Press the space bar to 'click' for cookies. -- Buy/select items by pressing the letter beside them. (the one in brackets) - -## Saves: - -Saves must be named cc64.sav and placed in the same directory as cookie.prg. (to copy the save onto a d64 file, use
DiskImagery64 or another disk editor.) -
Currently saves are only available in the nightly builds. - - -### Save file format: - -

- Stop key flag -
Cookies -
Cookie gain -
Cursor amount -
Grandma amount -
Farm amount -
Mine amount -
Player name -
-
The stop key flag must be `0` or `1`. -
`0` will prevent the player from stoping the program, and `1` allows the player to stop the program. - -### Example save file: - -
0 -
3426597 -
0.9823 -
230 -
54 -
32 -
1 -
IANSKINNER1982

- -## Credits and Notes - Credits: -- [@Orteil](https://orteil.dashnet.org/) (for making the original cookie clicker game) +- [@Orteil](https://orteil.dashnet.org/) for making the original cookie clicker game +- [@drskinner](https://github.com/drskinner/) Notes: -- Due to the way I have everything set up, some of my commits will appear as commits by [@drskinner](https://github.com/drskinner/) - Editing program lines larger than 80 characters on the C64 (or on an emulator) will result in parts of them being deleted +- `storedat` must be placed in the same d64 as `cookie.prg`, or in the same directory, if your emulator treats a folder like a disk. Also note that unlike `storedat`, `savedat` is not needed to run the game, so you can place `savedat` on another d64 and swap disks when needed. diff --git a/build/cookie.prg b/build/cookie.prg index f3caea4..6012606 100644 Binary files a/build/cookie.prg and b/build/cookie.prg differ diff --git a/build/cookie.prg.out.prg b/build/cookie.prg.out.prg index 55e92d0..fea8c52 100644 Binary files a/build/cookie.prg.out.prg and b/build/cookie.prg.out.prg differ diff --git a/build/storedat b/build/storedat index fbcfb1d..a916233 100644 --- a/build/storedat +++ b/build/storedat @@ -1,54 +1,72 @@ cursor adds .1 cps +.1 15 grandma adds 1 cps +1 100 farm adds 8 cps +8 1100 mine adds 47 cps +47 12000 factory adds 260 cps +260 130000 bank adds 1400 cps +1400 1400000 temple adds 7800 cps +7800 20000000 wizard tower adds 44000 cps +44000 330000000 shipment adds 260000 cps +260000 5100000000 alchemy lab adds 1600000 cps +1600000 75000000000 portal adds 10 million cps +10000000 1000000000000 time machine adds 65 million cps +65000000 14000000000000 -antim. condenser +antimatter condenser adds 430 million cps +430000000 170000000000000 prism adds 2.9 billion cps +2900000000 2100000000000000 chancemaker adds 21 billion cps +21000000000 26000000000000000 fractal engine adds 150 billion cps +150000000000 310000000000000000 ml monitor adds 1.1 trillion cps +1100000000000 71000000000000000000 idleverse adds 8.3 trillion cps -1.2e+22 +8300000000000 +1.2e+22 \ No newline at end of file diff --git a/build/testmenu.prg b/build/testmenu.prg index 701b1b3..4ba2c25 100644 Binary files a/build/testmenu.prg and b/build/testmenu.prg differ diff --git a/build/testmenu.prg.out.prg b/build/testmenu.prg.out.prg index a027f51..9429336 100644 Binary files a/build/testmenu.prg.out.prg and b/build/testmenu.prg.out.prg differ diff --git a/prg.txt b/prg.txt index 624c279..9bcd613 100755 --- a/prg.txt +++ b/prg.txt @@ -1,250 +1,243 @@ 0 rem !to "build/cookie.prg" -5 poke53280,14:poke53281,6:poke650,64:rem screen color, no keys repeat +10 mi=17:dimna$(mi):dimia(mi):dimbd$(mi):dimbg(mi):dimpr(mi):dimcg(mi) +20 rem open 8,8,8,"storedat,s,r" +30 rem forx=0tomi +40 rem input#8,na$(x) +50 rem input#8,bd$(x) +55 rem input#8,bg(x) +60 rem input#8,pr(x) +65 rem ?x+1"/"mi+1 +70 rem next +80 gosub 52000:rem close 8 +90 ms=2:bn$="someone's":r1$="{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}" +95 r2$="{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}":ss=1 +100 rem stick news here. +110 print"{brown}{clear}UCCCCCCCCCCCCCCC{$b2}CCCCCCCCCCCCCCCCCCCCCCI"; +120 print"B B B"; +130 print"B B B"; +140 print"{$ab}CCCCCCCCCCCCCCC{$b3} B"; +150 print"B B B"; +160 print"B B B"; +170 print"B B B"; +180 print"B {rvon} {rvof} B B"; +190 print"B {rvon} {blk} {brown} {rvof} B B"; +200 print"B {rvon} {blk} {brown} {rvof} B B"; +210 print"B {rvon} {blk} {brown} {blk} {brown} {rvof} B B"; +220 print"B {rvon} {blk} {brown} {blk} {brown} {rvof} B B"; +230 print"B {rvon} {rvof} B B"; +240 print"B {rvon} {rvof} B B"; +250 print"B {rvon} {blk} {brown} {rvof} B B"; +260 print"B {rvon} {blk} {brown} {blk} {brown} {blk} {brown} {rvof} B B"; +270 print"B {rvon} {blk} {brown} {blk} {brown} {rvof} B B"; +280 print"B {rvon} {rvof} B B"; +290 print"B {rvon} {rvof} B B"; +300 print"B {rvon} {rvof} B B"; +310 print"B B B"; +320 print"B{wht} v2.9.0-1.0 {brown}B B"; +330 print"JCCCCCCCCCCCCCCC{$b1}CCCCCCCCCCCCCCCCCCCCCCK"; +340 print"{wht} {rvon}f1{rvof} store {rvon}f3{rvof} options {rvon}f5{rvof} stats {rvon}f7{rvof} ascend"; +500 print"{home}{down}{right}"int(cc) +510 print"{brown}B{wht} cookies" +520 ?"{brown}B{wht}"bn$ +530 print"{up}{brown}B{wht} bakery" +1000 on ms gosub 2000, 5000, 5000 +1010 goto 1000 -10 open 8,8,8,"cc64.sav,s,r" : rem reads the first line -15 input#8,sb : rem of the save file and -20 close 8 : rem checks stop key flag -30 if sb=0 then poke788,52:poke792,193: rem 0=on, 1=off +2000 ifms<>1thenreturn :rem store page selection and menu switching area. +2010 ifss>0theni=0:j=4:ifss>1theni=5:j=9:ifss>2theni=10:j=14:ifss>3theni=15:j=17 +2060 ts=ss:tm=ms :rem 2010 sets the range of item data +2090 gosub2500 :rem to be used. do not have a range +2100 goto2000 :rem bigger than 5. (smaller is fine) -40 cc=0:cg=0:ca=0:ga=0:fa=0:ma=0:ft$="0":mt$="0":bn$="someone" -50 ds$=chr$(17):rem cursor down -60 rs$=chr$(29):rem cursor right -70 ls$=chr$(157):rem cursor left -80 c1=15:c2=100:c3=1100:c4=12000 -99 print"{clear}{home}" +2500 gosub51000 +2505 y=1:forx=itoj :rem this section prints the +2510 ifx=ithen?"{home}" :rem item data in the given range. +2515 ?r1$"{up}{rvon}"right$(str$(y),1)"{rvof} "na$(x) +2520 ?r1$r2$"{up}"ia(x) +2530 ?r1$bd$(x) +2540 ?r1$"{up}"int(pr(x)) +2545 ?r1$"{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}":y=y+1 +2550 next +2555 ifj=17then?r1$"{down}{down}{down}{down}{down}{down}{down} prev/next(-/+)" +2560 ?r1$"{up} prev/next(-/+)" +2565 gosub 3000 +2570 return -1000 print"{clear}{home}{grey2}UCCCCCCCCCCCCCCCCCCCCCCCCC{$b2}CCCCCCCCCCCI" -1010 print"{grey2}B{wht} you have 0 {grey2}B{wht}cursor(c) {grey2}B" -1020 print"{grey2}B{wht} cookies {grey2}B{wht}"ca -1025 print"{up}{grey2}B{wht} cookies {grey2}B{wht}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{grey2}B" -1030 print"{grey2}{$ab}CCCCCCCCCCCCCCCCCCCCCCCCC{$b3}{wht}cost: {grey2}B" -1040 print"{grey2}B {grey2}B{wht} 15 {grey2}B" -1050 print"{grey2}B {grey2}{$ab}CCCCCCCCCCC{$b3}" -1060 print"{grey2}B {grey2}B{wht}grandma(g) {grey2}B" -1070 print"{grey2}B {grey2}B{wht}"ga -1075 print"{up}{grey2}B{wht} {grey2}B{wht}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{grey2}B" -1080 print"{grey2}B {brown}******** {grey2}B{wht}cost: {grey2}B" -1090 print"{grey2}B {brown}*******{blk}**{brown}* {grey2}B{wht} 100 {grey2}B" -1100 print"{grey2}B {brown}***{blk}*{brown}******** {grey2}{$ab}CCCCCCCCCCC{$b3}" -1110 print"{grey2}B {brown}***{blk}**{brown}********* {grey2}B B" -1120 print"{grey2}B {brown}********{blk}**{brown}**** {grey2}B B" -1130 print"{grey2}B {brown}********{blk}**{brown}**** {grey2}B B" -1140 print"{grey2}B {brown}************** {grey2}B B" -1150 print"{grey2}B {brown}*{blk}*{brown}************ {grey2}B B" -1160 print"{grey2}B {brown}*************{brown}* {grey2}B B" -1170 print"{grey2}B {brown}******{blk}**{brown}**** {grey2}B B" -1180 print"{grey2}B {brown}*****{blk}**{brown}*** {grey2}B B" -1190 print"{grey2}B {brown}******** {grey2}B B" -1200 print"{grey2}B {$ab}CCCCCCCCCCC{$b3}" -1210 print"{grey2}B B{grey1}settings(s){grey2}B" -1220 print"{grey2}B v2.9.0-1.0 B{grey1}upgrades(u){grey2}B" -1230 print"{grey2}JCCCCCCCCCCCCCCCCCCCCCCCCC{$b1}CCCCCCCCCCCK" +3000 get k$:x=0 :rem don't add a 'ifk$=""' or else the adding routine won't run properly +3010 gosub 60000 :rem +3015 ifval(k$)>5then3070 :rem main loop +3020 ifval(k$)<1then3070 :rem +3025 x=val(k$) +3065 gosub 3500 +3070 gosub 50000 +3080 ifk$="+"thenss=ss+1 +3085 ifk$="-"thenss=ss-1 +3090 ifss=0thenss=1 +3095 ifss=5thenss=4 +3110 ifss<>tsthenreturn +3120 ifms<>tmthenreturn +3130 goto 3000 -1300 print"{home}{down}{down}{down}{down}B "bn$"'s bakery " -1310 print"{up}B{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{grey2}B{wht} 15 {grey2}B" -1320 print"{grey2}B {grey2}{$ab}CCCCCCCCCCC{$b3}" +3500 y=i+x-1 :rem buying subroutine +3510 if cc2thenreturn :rem +5010 tm=ms :rem this section is for menu switching. +5020 gosub51000:gosub5100:goto5000 :rem -1900 if ft$="0" then gosub 4000 -1910 if mt$="0" then gosub 4100 -1920 get k$:if k$= "" then 1990 -1930 if k$=" " then 2100 -1940 if k$="c" then 2200 -1950 if k$="g" then 2300 -1960 if k$="f" then 2400 -1970 if k$="m" then 2500 -1980 if k$="s" then 10000 -1990 rem start of auto add -2000 cc=cc+cg -2010 print"{home}{down}{grey2}B{wht} you have "int(cc) -2020 goto 1900 +5100 ?"{home}{down}"r1$"{rvon}1{rvof} change your bakery's" +5110 ?r1$"name" +5120 ?r1$"{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{down}" +5130 ?r1$"{up}{rvon}2{rvof} create a save file" +5140 ?r1$"on a disk" +5150 ?r1$"{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{down}" +5160 ?r1$"{up}{rvon}3{rvof} load a save file" +5170 ?r1$"from a disk" +5180 ?r1$"{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{down}" +5160 ?r1$"{up}{rvon}4{rvof} manage your saves" +5180 ?r1$"{down}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{down}" -2099 rem part 2 +5200 getk$ :rem +5210 ifval(k$)>4then5240 :rem main loop +5220 ifval(k$)<1then5240 :rem +5230 onval(k$)gosub5500,5700,5900,6100 +5240 gosub 50000 +5250 ifms<>tmthenreturn +5260 goto 5200 +5500 tn$="":?"{home}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}"r1$"new name:" +5510 getnp$:ifnp$=""then5510 +5515 iflen(tn$)<1then?r1$; : +5520 ?np$;:tn$=tn$+np$:ifnp$="{\n}"then5540 :rem bakery name +5530 iflen(tn$)<14then5510 : +5540 ?"{home}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}"r1$" " +5550 ?r1$" ":bn$=left$(tn$,(len(tn$)-1)) +5560 ?"{home}{down}{down}{down}{down}{right} {home}{down}{down}{down}{down}{right}"bn$"'s":return -2100 cc=cc+1 -2110 print"{home}{down}{grey2}B{wht} you have "int(cc) -2120 goto 1900 +5700 open 8,8,8,"@0:savedat,s,w" :rem save data +5710 print#8,fl +5720 print#8,bn$ +5730 print#8,cc +5740 forx=0tomi +5750 print#8,cg(x) +5760 print#8,pr(x) +5770 print#8,ia(x) +5780 next:close 8:return -2200 if cc<15 then 1900 rem CURSORS -2210 cc=cc-15:cg=cg+.04:ca=ca+1 -2220 print"{home}{down}{grey2}B{wht} you have "int(cc) -2225 print"{home}{down}{grey2}B{wht} you have {grey2}B -2230 print"{home}{down}{down}{down}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{grey2}B{wht}"ca -2240 goto 1900 +5900 open 8,8,8,"@0:savedat,s,r" :rem load data +5910 input#8,fl +5920 input#8,bn$ +5930 input#8,cc +5940 forx=0tomi +5950 input#8,cg(x) +5960 input#8,pr(x) +5970 input#8,ia(x) +5980 next:close 8:return -2300 if cc<100 then 1900 rem GRANDMAS -2310 cc=cc-100:cg=cg+.05:ga=ga+1 -2320 print"{home}{down}{grey2}B{wht} you have "int(cc) -2325 print"{home}{down}{grey2}B{wht} you have {grey2}B -2330 print"{home}{down}{down}{down}{down}{down}{down}{down}{down}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{grey2}B{wht}"ga -2340 goto 1900 +10000 stop -2400 if cc<1100 then 1900 rem MINES -2410 cc=cc-1100:cg=cg+.06:ma=ma+1 -2420 print"{home}{down}{grey2}B{wht} you have "int(cc) -2425 print"{home}{down}{grey2}B{wht} you have {grey2}B -2430 print"{home}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{grey2}B{wht}"ma -2440 goto 1900 +49999 :rem important subroutines -2500 if cc<12000 then 1900 rem FARMS -2510 cc=cc-12000:cg=cg+.1:fa=fa+1 -2520 print"{home}{down}{grey2}B{wht} you have "int(cc) -2525 print"{home}{down}{grey2}B{wht} you have {grey2}B -2530 print"{home}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{left}{grey2}B{wht}"fa -2540 goto 1900 +50000 ifk$="{f1}"then50040:rem +50010 ifk$="{f3}"then50040:rem menu selecting +50020 ifk$="{f5}"then50040:rem +50030 return +50040 ms=-1*(k$="{f1}")-2*(k$="{f3}")-3*(k$="{f5}"):return -4000 if cc<400 then return -4010 ft$="1" -4020 print"{home}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{grey2}B {brown}***{blk}*{brown}******** {grey2}{$ab}CCCCCCCCCCC{$b3}" -4030 print"{grey2}B {brown}***{blk}**{brown}********* {grey2}B{wht}farm(f) {grey2}B" -4040 print"{grey2}B {brown}********{blk}**{brown}**** {grey2}B{wht}"fa -4045 print"{grey2}B {brown}********{blk}**{brown}**** {grey2}B{wht} {right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{grey2}B" -4050 print"{up}{grey2}B {brown}********{blk}**{brown}**** {grey2}B{wht}cost: {grey2}B" -4060 print"{grey2}B {brown}************** {grey2}B{wht} 1100 {grey2}B" -4070 print"{grey2}B {brown}*{blk}*{brown}************ {grey2}{$ab}CCCCCCCCCCC{$b3}" -4080 return +51000 forx=1to20: rem clears the menu +51010 ifx=1then?"{home}"r1$"{down} "; +51020 ?r1$"{right} ";:next +51040 return -4100 if cc<6000 then return -4110 mt$="1" -4120 print"{home}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{grey2}B {brown}*{blk}*{brown}***********{brown}* {grey2}{$ab}CCCCCCCCCCC{$b3}" -4130 print"{grey2}B {brown}*************{brown}* {grey2}B{wht}mine(m) {grey2}B" -4140 print"{grey2}B {brown}******{blk}**{brown}**** {grey2}B{wht}"ma -4145 print"{up}{grey2}B {brown}******{blk}**{brown}**** {grey2}B{wht} {right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{grey2}B" -4150 print"{grey2}B {brown}*****{blk}**{brown}*** {grey2}B{wht}cost: {grey2}B" -4160 print"{grey2}B {brown}******** {grey2}B{wht} 12000 {grey2}B" -4170 print"{grey2}B {grey2}{$ab}CCCCCCCCCCC{$b3}" -4180 return -4180 return +52000 x=0:na$(x)="cursor" +52001 bd$(x)="adds .1 cps" +52002 bg(x)=.1 +52003 pr(x)=15 +52004 x=x+1:na$(x)="grandma" +52005 bd$(x)="adds 1 cps" +52006 bg(x)=1 +52007 pr(x)=100 +52008 x=x+1:na$(x)="farm" +52009 bd$(x)="adds 8 cps" +52010 bg(x)=8 +52011 pr(x)=1100 +52012 x=x+1:na$(x)="mine" +52013 bd$(x)="adds 47 cps" +52014 bg(x)=47 +52015 pr(x)=12000 +52016 x=x+1:na$(x)="factory" +52017 bd$(x)="adds 260 cps" +52018 bg(x)=260 +52019 pr(x)=130000 +52020 x=x+1:na$(x)="bank" +52021 bd$(x)="adds 1400 cps" +52022 bg(x)=1400 +52023 pr(x)=1400000 +52024 x=x+1:na$(x)="temple" +52025 bd$(x)="adds 7800 cps" +52026 bg(x)=7800 +52027 pr(x)=20000000 +52028 x=x+1:na$(x)="wizard tower" +52029 bd$(x)="adds 44000 cps" +52030 bg(x)=44000 +52031 pr(x)=330000000 +52032 x=x+1:na$(x)="shipment" +52033 bd$(x)="adds 260000 cps" +52034 bg(x)=260000 +52035 pr(x)=5100000000 +52036 x=x+1:na$(x)="alchemy lab" +52037 bd$(x)="adds 1600000 cps" +52038 bg(x)=1600000 +52039 pr(x)=75000000000 +52040 x=x+1:na$(x)="portal" +52041 bd$(x)="adds 10 million cps" +52042 bg(x)=10000000 +52043 pr(x)=1000000000000 +52044 x=x+1:na$(x)="time machine" +52045 bd$(x)="adds 65 million cps" +52046 bg(x)=65000000 +52047 pr(x)=14000000000000 +52048 x=x+1:na$(x)="antimatter condenser" +52049 bd$(x)="adds 430 million cps" +52050 bg(x)=430000000 +52051 pr(x)=170000000000000 +52052 x=x+1:na$(x)="prism" +52053 bd$(x)="adds 2.9 billion cps" +52054 bg(x)=2900000000 +52055 pr(x)=2100000000000000 +52056 x=x+1:na$(x)="chancemaker" +52057 bd$(x)="adds 21 billion cps" +52058 bg(x)=21000000000 +52059 pr(x)=26000000000000000 +52060 x=x+1:na$(x)="fractal engine" +52061 bd$(x)="adds 150 billion cps" +52062 bg(x)=150000000000 +52063 pr(x)=310000000000000000 +52064 x=x+1:na$(x)="ml monitor" +52065 bd$(x)="adds 1.1 trillion cps" +52066 bg(x)=1100000000000 +52067 pr(x)=71000000000000000000 +52068 x=x+1:na$(x)="idleverse" +52069 bd$(x)="adds 8.3 trillion cps" +52070 bg(x)=8300000000000 +52071 pr(x)=1.2e+22 +52072 return -10000 rem settings start here -10010 poke53280,0:poke53281,0 -10100 print"{clear}{grey1}UCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCI" -10110 print"B B" -10120 print"B {wht}bakery name (b): {grey1}B" -10130 print"B{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}B" -10140 print"B B" -10150 print"B {wht}save (s) {grey1}B" -10160 print"B{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}B" -10170 print"B B" -10180 print"B {wht}load (l) {grey1}B" -10190 print"B{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}B" -10200 print"B B" -10210 print"B {wht}manage saves (m) {grey1}B" -10220 print"B{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}B" -10230 print"B B" -10240 print"B {yel}testmenu (t) {grey1}B" -10250 print"B{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}B" -10260 print"B B" -10270 rem print"B B" -10280 rem print"B B" -10290 rem print"B B" -10300 rem print"B B" -10310 print"B {wht}exit settings (e) {grey1}B" -10320 print"B{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}B" -10330 print"B B" -10340 print"JCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCK" - -11200 getk$:ifk$=""then 11200 -11210 ifk$="b"then goto 12000 -11220 ifk$="s"then goto 12100 -11230 ifk$="l"then goto 12200 -11240 ifk$="m"then goto 12300 -11250 ifk$="e"then goto 15000 -11260 ifk$="t"then goto 40000 -11270 goto 11200 - -12000 print"{clear}{down}{wht}please enter a new name (14 characters max):" -12010 input nn$ -12020 nl=len(nn$) -12030 if nl<15 then 12050 -12040 print"{up}{up}{up}{red}error: name too long{wht}":getk$:ifk$=""goto12040 -12045 goto 12000 -12050 print"are you sure? (y/n)" -12055 getk$:ifk$=""then12055 -12060 ifk$="y"then 12080 -12070 goto 10100 -12080 bn$=nn$:goto10100 - -12100 print"{clear}{wht}writing save data..." -12110 open 8,8,8,"@0:cc64.sav,s,w" -12110 print#8,sb -12120 print#8,cc -12130 print#8,cg -12140 print#8,ca -12145 print#8,ga -12150 print#8,fa -12155 print#8,ma -12160 print#8,bn$ -12165 close 8 -12170 print"saving complete" -12180 goto 10000 - -12200 print"{clear}{wht}loading save data..." -12210 open 8,8,8,"cc64.sav,s,r" -12215 input#8,sb -12220 input#8,cc -12222 input#8,cg -12224 input#8,ca -12226 input#8,ga -12228 input#8,fa -12230 input#8,ma -12235 input#8,bn$ -12260 close 8 -12270 print"loading complete" -12275 poke53280,14:poke53281,6 -12280 goto 10000 - - - - - - - - -12300 print"{home}{down}{down}{down}{down}{down}{down}{right}{right}{right}{right}*CCCCCCCCCCCCCCCCCCCCCCCCCCCCC*" -12310 print"{right}{right}{right}{right}B (1) erase current save B" -12320 print"{right}{right}{right}{right}B (2) erase cc64.sav B" -12330 rem print"{right}{right}{right}{right}B (3) create 2nd save B" -12340 rem print"{right}{right}{right}{right}B (4) erase 2nd save B" -12350 print"{right}{right}{right}{right}B (3) exit B" -12360 print"{right}{right}{right}{right}*CCCCCCCCCCCCCCCCCCCCCCCCCCCCC*" -12400 getk$:ifk$=""then12400 -12410 ifk$="1"then 12500 -12420 ifk$="2"then 12600 -12450 ifk$="3"then 10000 -12460 goto 12400 - -12500 cc=0:cg=0:ca=0:ga=0:fa=0:ma=0:ft$="0":mt$="0":bn$="someone" -12510 goto 10000 - -12600 open 8,8,8,"@0:cc64.sav,s,w" -12610 print#8,sb -12610 print#8,0 -12620 print#8,0 -12630 print#8,0 -12640 print#8,0 -12650 print#8,0 -12660 print#8,0 -12670 close 8 -12680 goto 10000 - - - - - - -15000 print"{clear}" -15010 poke53280,14:poke53281,6 -15030 goto 1000 - -40000 print"{clear}" -40010 print chr$(147); -40020 q$=chr$(34) -40030 d$=chr$(17) -40040 print"load"q$"testmenu"q$",8" -40050 printd$;d$;d$;d$;"run" -40060 rem load keyboard buffer and flush it -40070 poke631,19:poke632,13:poke633,13:poke198,3 \ No newline at end of file +60000 b=0:fora=0tomi:b=b+(cg(a)/3.6):next:rem adding subroutine +60010 ifk$=" "thencc=cc+1 +60020 ifcb>ccthen?"{home}{down}{right} " +60030 cc=cc+b:?"{home}{down}{right}"int(cc):cb=cc:return diff --git a/testmenu.txt b/testmenu.txt index ba225fa..09adad9 100644 --- a/testmenu.txt +++ b/testmenu.txt @@ -1,133 +1 @@ -0 rem !to "build/testmenu.prg" -5 poke788,52:poke792,193 -40000 rem testing menu -40010 poke53280,0:poke53281,0:poke646,5 -40020 print"{clear}logging into console" -40025 print"cc64:/>" -40030 print"{up}{right}{right}{right}{right}{right}{right}{right} h" -40040 print"booting help menu" -40045 print"" -40050 print" manage saves:" -40060 print"" -40110 print" delete [d]" -40130 print" restore [r]" -40140 print" edit [e]" -40150 print"" -40160 print" others:" -40165 print"" -40170 print" help [h]" -40160 print" exit [t]" -40170 print"" -40180 print"cc64:/>" -40500 getk$:ifk$=""then40500 -40520 ifk$="d"then 41000 -40540 ifk$="r"then 43000 -40570 ifk$="e"then 44000 -40580 ifk$="h"then 40030 -40590 ifk$="t"then 60000 -40600 goto 40500 - -41000 print"{up}{right}{right}{right}{right}{right}{right}{right} d" -41005 print"writing objects: 0% (0/1)" -41010 open 8,8,8,"@0:cc64.sav,s,w" -41015 print#8,0 -41020 print#8,0 -41025 print#8,0 -41030 print#8,0 -41035 print#8,0 -41040 print#8,0 -41050 print#8,0 -41055 print#8,"someone" -41060 close 8 -41070 print"{up}writing objects: 0% (1/1)" -41080 goto 40180 - -44000 print"{up}{right}{right}{right}{right}{right}{right}{right} e" -44005 print"loading save file: 0% (0/1)" -44010 open 8,8,8,"@0:cc64.sav,s,r" -44015 input#8,sb -44020 input#8,cc -44022 input#8,cg -44024 input#8,ca -44026 input#8,ga -44028 input#8,fa -44030 input#8,ma -44040 input#8,bn$ -44040 close 8 -44070 print"{up}loading save file: 100% (1/1)" -44080 print"" -44090 print" [1] stop key flag: "sb -44100 print" [2] cookies: "cc -44110 print" [3] cookie gain: "cg -44120 print" [4] cursor amount: "ca -44130 print" [5] grandma amount: "ga -44140 print" [6] farm amount: "fa -44150 print" [7] mine amount: "ma -44160 print" [8] bakery name: "bn$ -44500 print" [9] exit menu (saves changes)" -44510 print"" -44520 print"please choose an option" -44530 print"cc64:/cc64.sav/>" -44540 getk$:ifk$=""then44540 -44550 if k$="1"then 45000 -44560 if k$="2"then 45100 -44570 if k$="3"then 45200 -44580 if k$="4"then 45300 -44590 if k$="5"then 45400 -44600 if k$="6"then 45500 -44610 if k$="7"then 45600 -44620 if k$="8"then 45700 -44630 if k$="9"then 45800 -44999 goto 43540 - -45000 print"please set a value (0=on:1=off) -45010 input sb -45020 if sb>1 then goto 45000 -45030 if sb<0 then goto 45000 -45040 goto 44080 -45100 print"please set a value" -45110 input cc -45120 goto 44080 -45200 print"please set a value" -45210 input cg -45220 goto 44080 -45300 print"please set a value" -45310 input ca -45320 goto 44080 -45400 print"please set a value" -45410 input ga -45420 goto 44080 -45500 print"please set a value" -45510 input fa -45520 goto 44080 -45600 print"please set a value" -45610 input ma -45620 goto 44080 -45700 print"please set a value" -45710 input bn$ -45720 goto 44080 - - -45800 print"{up}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right} .." -45805 print"writing objects: 0% (0/1)" -45810 open 8,8,8,"@0:cc64.sav,s,w" -45815 print#8,sb -45820 print#8,cc -45825 print#8,cg -45830 print#8,ca -45835 print#8,ga -45840 print#8,fa -45845 print#8,ma -45850 print#8,bn$ -45855 close 8 -45860 print"{up}writing objects: 100% (1/1)" -45865 goto 40180 - -60000 print"{clear}" -60010 print chr$(147); -60020 q$=chr$(34) -60030 d$=chr$(17) -60040 print"load"q$"cookie"q$",8" -60050 printd$;d$;d$;d$;"run" -60060 rem load keyboard buffer and flush it -60070 poke631,19:poke632,13:poke633,13:poke198,3 \ No newline at end of file +0 rem !to "build/testmenu.prg" \ No newline at end of file