Looking for the source code for Biorhythms.prg

Basic and Machine Language

Moderator: Moderators

Post Reply
Galgermesh
Vic 20 Newbie
Posts: 2
Joined: Mon Jun 27, 2022 4:20 pm
Location: New York

Looking for the source code for Biorhythms.prg

Post by Galgermesh »

Can anyone send me the source code for the Biorhythms.prg (not Biorhythms compatibility)..
I have the .prg im looking for the source.

I would like to look at it in a format i can read on a PC.

Thanks so much!

Galger

(I got my start in the software engineering field when I got my Vic20 in 1980 or 81 when I was 10 or 11. I had a long career and am now retired, I loved the Biorhythms program that came with the Vic20 my parents bought for me. Now i have some time on my hands I would like to take a detailed look at it, with any luck it was written in Basic. Thanks again.. If there is an emulator link out there that runs Biorhythms I would also like to experience it again.. Thanks so much!)
User avatar
chysn
Vic 20 Scientist
Posts: 1205
Joined: Tue Oct 22, 2019 12:36 pm
Website: http://www.beigemaze.com
Location: Michigan, USA
Occupation: Software Dev Manager

Re: Looking for the source code for Biorhythms.prg

Post by chysn »

Are you talking about the one that came with the 6-pack of tapes? That's the first thing my family bought when we got our VIC-20. It had Blue Meanies from Outer Space and Slither, along with other classics.

If that's what you're looking for, it's here: http://www.zimmers.net/anonftp/pub/cbm/ ... hythms.prg

Unfortunately, it hasn't been updated for Y2K! :D

Edit: Re-read & noticed that you need the source and not the PRG. I just ran this through VICE's petcat...

Code: Select all

    1 dima(12),x(3),j(3),cd(3,2),r(3),s%(3):fori=1to12:reada(i):next:deffny(i)=28-(i/4=int(i/4))
    2 v=36879:p(1)=16:p(2)=5:p(3)=9:m$="janfebmaraprmayjunjulaugsepoctnovdec":w$="mtwtfss"
    3 s(1)=v-5:s(2)=v-4:sp$="                    ":f$="{home}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}"
    4 i=(peek(v-13)and128)*4:sb=i+64*(peek(v-10)and120):cb=i+37888-sb
    5 deffns(i)=8*sin((t/i-int(t/i))*2*~):deffnp(i)=sb+439-int(i+11.5)*22+int((q+1)/2)
    6 s(3)=v-3:pokev,27:print"{clr}{down}{down}{down}{blk}{rvon}{rght}{rght}{rght}"left$(sp$,16):print"{rvon}{rght}{rght}{rght} vic biorhythms "
    7 print"{rvon}{rght}{rght}{rght}"left$(sp$,16):print"{red}{down}{down}   by andy finkel
    8 printtab(7)"{blu}{down}{down}{down}(c) 1981{sret}  commodore business{sret}    machines, inc.
    9 fori=0to21:j=i+(i>7)*8+(i>15)*8:pokesb+cb+i,j:pokesb+505+cb-i,j:pokesb+i,160:pokesb+505-i,160:next
   10 printf$"{up}{up}{grn}{rght}{rght}{rght}{rght}instructions ?";:gosub59:ifi$="n"then15
   11 print"{clr}{blu}{down}{down}enter dates like this:{down}{down}{red}month/day/year
   12 print"{down}{down}{red}(8/13/57{blu}=aug 13,1957){sret}{down}{down}{down}{pur}use slashes":gosub58:print"{clr}{down}{swlc}COMMANDS
   13 print"{red}{down}{down}f1{blu}  New chart{sret}{down}{red}f7{blu}  Plot next 20 days
   14 print"{down}{red}C{blu}   Critical days{sret}{down}{red}Q{blu}   Quit{sret}{down}{red}R{blu}   Compare":gosub58
   15 pokev,27:print"{swuc}{clr}{down}{blu}plot from{sret}(mo/da/yr){left}{up}";:gosub54:ifi1=0then15
   16 m1=i1:d1=i2:y1=i3:d0=d1:fori=1tom1-1:d0=d0+a(i):next
   17 d3=y1*365+d0:fori=1toy1-1:d3=d3-(i/4=int(i/4)):next
   18 print"{home}{down}{down}{down}{down}{down}{blu}birthday";:gosub54:ifi1=0then18
   19 m=i1:fori=1tom-1:i2=i2+a(i):next:gosub50:d=i2:y=i3
   20 print"{down}compare?":gosub59:r=0:t3=0:ifi$="n"then23
   21 r=1:printleft$(f$,10)"birthday 2";:gosub54:ifi1=0then21
   22 fori=1toi1-1:i2=i2+a(i):next:t3=t:gosub50:gosub53
   23 ift<0ort3<0thenprint"{rvon}plot starts before{sret}{rvon}birthday":gosub58:goto15
   24 print"{clr}{down}{down}{red}on "mid$(m$,3*m1-2,3)d1","y1+1900:print"{down}you will have lived{sret}{left}{down}"t"days
   25 gosub58:pokev,8:print"{clr}{cyn}"left$(f$,9):fori=1to20:print"-";:nexti:printleft$(f$,19)"{rvon}"sp$:t2=m1
   26 printleft$(f$,19)"{rvon}"mid$(m$,3*m1-2,3)y1+1900"{rvof}";:printleft$(f$,20);
   27 fori=1to3:j(i)=0:r(i)=0:forj=0to2:cd(i,j)=0:nextj,i:forq=1to40:ifq/2=int(q/2)then31
   28 e=d3-1:e=int(7*(e/7-int(e/7))+.5)+1:e$=mid$(str$(d1),2)
   29 print"{wht}{rvon}"mid$(w$,e,1)"{rvof}{down}{left}"left$(e$,1)"{down}";:iflen(e$)>1thenprint"{left}"right$(e$,1);
   30 print"{up}{up}";
   31 pokev-1,9:fori=1to3:x=fns(18+i*5):gosub53:r(i)=r(i)-(sgn(x)=sgn(fns(18+i*5)))*2.5:gosub53
   32 ifx<.6andx>-.6thencd(i,j(i))=m1*100+d1:j(i)=j(i)+1
   33 z=peek(fnp(x)):ifz=32orz=45orz=p(i)thenpokefnp(x),p(i):pokefnp(x)+30720,i+3:goto35
   34 pokefnp(x),42
   35 pokes(i),2*x+200:forj=0to9:next:pokes(i),0:nexti:d3=d3+.5:t=t+.5:t3=t3+.5:d1=d1+.5
   36 ifd1>=a(m1)+1thend1=1:m1=m1+1:ifm1>12thenm1=1:y1=y1+1
   37 nextq:poke198,0:ift2<>m1andd1<>1thenprintleft$(f$,19)"{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{cyn}{rvon}"mid$(m$,3*m1-2,3)y1+1900"{rvof}"
   38 printf$"{grn}hit f1,f7,c,q";:ifr=1thenprint",r";
   39 gosub59:i=asc(i$):ifi=133then15
   40 ifi=81thenprint"{clr}":pokev,27:end
   41 ifi<>82orr=0then43
   42 print"{clr}{wht}compatability{sret}{down}phy: "r(1)"%{sret}emot:"r(2)"%{sret}int: "r(3)"%":goto38
   43 ifi=136then24
   44 ifi<>67then38
   45 print"{clr}{red}{rvon}critical days{sret}{down}{down}{rvon}p{rvof}hys.{rght}{rght}{rvon}e{rvof}mot.{rght}{rght}{rvon}i{rvof}nt.
   46 fori=1to3:forj=0to2:ifcd(i,j)=0then49
   47 k2=int(cd(i,j)/100):k1=cd(i,j)-k2*100:k2=k2-1
   48 printleft$(f$,6+2*j)tab((i-1)*7)mid$(b$,k2*3+1,3)str$(int(k1))
   49 nextj,i:goto38
   50 t=0:ify1=i3then52
   51 fori=i3+1toy1-1:t=t-(i/4=int(i/4)):next:t=t-(i3/4=int(i3/4)andi2>58)
   52 t=t+(y1-i3-1-(d0>=i2))*365-(d0>=i2)*(d0-i2)-(d0<i2)*(365-i2+d0):return
   53 k2=t:t=t3:t3=k2:return
   54 i=4:inputi$:i1=val(left$(i$,2)):ifmid$(i$,2,1)>"9"ormid$(i$,2,1)<"0"theni=3
   55 i2=val(mid$(i$,i,2)):i3=val(right$(i$,2)):a(2)=fny(i3):ifi1>12ori1<1then57
   56 ifi2>0andi2<=a(i1)thenreturn
   57 print"{rvon}improper date":gosub58:print"{clr}":i1=0:return
   58 printf$"{up}{red}  hit a key"
   59 geti$:ifi$=""then59
   60 return
   61 data31,28,31,30,31,30,31,31,30,31,30,31

VIC-20 Projects: wAx Assembler, TRBo: Turtle RescueBot, Helix Colony, Sub Med, Trolley Problem, Dungeon of Dance, ZEPTOPOLIS, MIDI KERNAL, The Archivist, Ed for Prophet-5

WIP: MIDIcast BASIC extension

he/him/his
Galgermesh
Vic 20 Newbie
Posts: 2
Joined: Mon Jun 27, 2022 4:20 pm
Location: New York

Re: Looking for the source code for Biorhythms.prg

Post by Galgermesh »

Thanks so much, really appreciate it !

Wow I can't believe (even with the : separators) that it is only 61 lines of code.

Thanks again !
User avatar
highinfidelity
Vic 20 Nerd
Posts: 644
Joined: Thu Jul 28, 2011 2:34 am
Website: http://www.hirtel.it
Location: Torino, Italy.

Re: Looking for the source code for Biorhythms.prg

Post by highinfidelity »

Heh, biorhythms! :D They're also a fundamental part of the '80s living experience! 8) I remember that on TV guides there were even companies advertising pocket biorhythms calculators... I can hardly think what could happen to your life, shouldn't you always be able to instantly check your biorhyhtms with your biorhythms pocket calculator! :mrgreen:
GOD is REAL. Unless declared DOUBLE PRECISION.
Post Reply