1 'clkcalc.100 2 'Calender, clock, appointment reminder and calculator program. 3 'Much modified version of Richard Ross APPOINT.220 and Howard Benner's 4 'clkdat.101 programs. Requires a NOTE.DO file with at least one entry. (I use just the word "DUMMY") 5 'Display shows current months calander the time, day of the week, and a new 6 'feature - the time of the current days appointments in a changing display. 7 'The calculator is similiar to a Hewlett-Packard type and is taken from the program HPCALC in DL 4. 8 'See HPCALC.DOC for instructions. Requires 3704 bytes of memory in .BA form and 5829 in .DO form. 9 'By Jim Ferris (70506,1102) 10 MAXFILES=2:CLEAR2000:DEFSTRA-M:DIMA(100):B="NOTE.DO":C=SPACE$(35):D=SPACE$(40):DATE$=LEFT$(DATE$,6)+"84" 11 E=LEFT$(DATE$,5):H=CHR$(27)+"p":I=CHR$(27)+"q":KEYON:ONKEYGOSUB32,39,54,61,62,65,81,85:GOSUB60 12 F=DATE$:N=0:GOSUB21 13 K=LEFT$(TIME$,5):E=LEFT$(DATE$,5):IFEOF(1)THENGOSUB60 14 M=TIME$:LINEINPUT#1,L:IFINSTR(L,E)=0THEN17ELSEIFINSTR(L,K)=0THEN17ELSECLS:Q=LEN(L)-12:IFQ<40THENPRINT@80+((40-Q)/2),; 15 PRINTRIGHT$(L,Q):PRINT@208,"Press Any Key to Silence" 16 L=INKEY$:SOUND9000,7:FORR=1TO550:NEXT:N=N+1:IFN=70THEN12ELSEIFL=""THEN16ELSEFORR=1TO25000:NEXT:GOTO12 17 IFM=TIME$THEN17ELSEIFINSTR(L,E)<>0THENPRINT@228,MID$(L,6,6) 18 K=TIME$:S=VAL(LEFT$(TIME$,2)) 19 IFS>12THENPRINT@67,STR$(S-12);RIGHT$(K,6)ELSEIFS<10THENPRINT@67,STR$(S);RIGHT$(K,6)ELSEPRINT@67,K 20 GOTO13 21 CLS:N=VAL(MID$(F,4,2)):O=VAL(LEFT$(F,2)):P=VAL(RIGHT$(F,2))+1900:Q=-INT((14-O)/12) 22 R=(INT(1461*(P+4800+Q)/4)-32073)+INT(367*(O-2-12*Q)/12):S=R-INT(3*INT((P+4900+Q)/100)/4) 23 RESTORE30:FORT=1TOO:READG,U:NEXT:IFO=2THENU=U-(0=PMOD4)+(0=PMOD100)-(0=PMOD400) 24 LINE(14,0)-(140,7),1,BF:PRINT@4,H;G;:PRINT@17,P;I:PRINT" Su Mo Tu We Th Fr Sa":Q=S-7*INT(S/7) 25 PRINTTAB(2);SPACE$(3*Q);:FORT=1TOU:IFT=NTHENPRINT" ";:PRINTH;ELSEPRINT" "; 26 PRINTUSING"##";T;:IFT=NTHENPRINTI; 27 Q=Q+1:IFQ>6ANDT<>UTHENPRINT:PRINTTAB(2);:Q=0 28 NEXT:LINE(14,7)-(140,56),1,B:PRINT@280,H;"note entr adrs moyr mo strt calc menu";I;:LINE(157,4)-(219,50),1,B 29 LINE(159,6)-(217,16),1,B:LINE(159,22)-(217,32),1,BF:PRINT@148,H;"- ";DAY$;" -";I;:LINE(159,38)-(217,48),1,B:RETURN 30 DATAJanuary,31,February,28,March,31,April,30,May,31,June,30,July,31,August,31 31 DATASeptember,30,October,31,November,30,December,31 32 GOSUB60:OPEN"temp.do"FORAPPENDAS2:CLS:PRINT@9,"<< Scan NOTE.DO File >>":PRINT@80,"Enter date (MM/DD) or word to search for" 33 PRINT@120,"[ for today, ALL for all entries]":PRINT@172,"(Today is "E")":PRINT@256,":";:LINEINPUT"";K:IFK=""THENK=E 34 IFEOF(1)THENCLOSE:KILLB:NAME"temp.do"ASB:GOSUB65:RETURNELSELINEINPUT#1,L 35 IFINSTR(L,K)<>0ORK="all"ORK="ALL"THEN36ELSEPRINT#2,L:GOTO34 36 CLS:N=LEN(L):IFN<40THENPRINT@80+(40-N)/2,"";:ELSEPRINT@80,; 37 PRINTL:BEEP:PRINT@208,"DELETE THIS ENTRY (Y/N)"; 38 M=INKEY$:IFM=""THEN38ELSEIFM="Y"ORM="y"THEN34ELSEPRINT#2,L:CLS:GOTO34 39 CLOSE:OPENBFORAPPENDAS1 40 CLS:PRINT@4,"<< Input new NOTE.DO entries >>";:PRINT@52,"Today is "E 41 PRINT@208,"(Press ENTER for Today)":PRINT@120,;:LINEINPUT"Enter Date (MM/DD):";K:PRINT@120,D:IFK=""THENK=E 42 PRINT@51,"The Time is "LEFT$(TIME$,5):PRINT@208,D:PRINT@210,"(Use Military Time)":PRINT@120,; 43 LINEINPUT"Enter Time (HH:MM):";L:PRINT@51,C:PRINT@210,D:PRINT@120,D:PRINT@120,;:LINEINPUT"Enter Prompt:";M 44 PRINT#1,K+" "+L+" "+M:CLS:PRINT@169,"Another Prompt (Y/N)?"; 45 K=INPUT$(1):IFINSTR("Yy",K)>0THEN40ELSEGOSUB60:CLS:PRINT@171,"Reorganizing File":N=1:O=11:P=0 46 P=P+1:LINEINPUT#1,A(P):IFEOF(1)THEN47ELSE46 47 CLOSE1:GOSUB48:KILLB:OPENBFOROUTPUTAS1:FORQ=1TOP:PRINT#1,A(Q):NEXT:GOSUB65:RETURN 48 U=P 49 U=INT(U/2):IFU=0THENRETURNELSER=1:S=P-U 50 Q=R 51 T=Q+U:IF(MID$(A(Q),N,(O-N)+1))<(MID$(A(T),N,(O-N)+1))THEN53 52 G=A(Q):A(Q)=A(T):A(T)=G:Q=Q-U:IFQ<1THEN53ELSE51 53 R=R+1:IFR>STHEN49ELSE50 54 CLOSE:OPEN"ADRS.DO"FORINPUTAS1:CLS:PRINT@9,"<< Scan ADRS.DO File >>"; 55 PRINT@87,"Enter string to search for":PRINT@127,"(Upper/lower case is used)":PRINT@215,":";:LINEINPUT"";K 56 IFEOF(1)THENCLOSE:CLS:PRINT@91,"String Not Found":GOTO58 57 LINEINPUT#1,L:IFINSTR(L,K)=0THEN56ELSECLS:PRINTL 58 PRINT@209,"Another String (Y/N)?"; 59 K=INPUT$(1):IFINSTR("Yy",K)>0THEN54ELSECLOSE:GOSUB65:RETURN 60 CLOSE:OPENBFORINPUTAS1:RETURN 61 CLS:PRINT@170," ";:INPUT"Month/Year";F:GOSUB21:RETURN 62 N=VAL(LEFT$(F,2))+1 63 O=VAL(RIGHT$(F,2)):IFN=0THENN=12:O=O-1ELSEIFN=13THENN=1:O=O+1 64 F=RIGHT$(STR$(N),2)+"/"+MID$(F,4,2)+"/"+RIGHT$(STR$(O),2):GOSUB21:RETURN 65 F=DATE$:GOSUB60:GOSUB21:RETURN 66 PRINT@5,C;:PRINT@5,USINGD;T;:PRINT@85,C;:PRINT@85,USINGD;Z;:PRINT@165,C; 67 PRINT@165,USINGD;Y;:PRINT@245,C;:PRINT@245,USINGD;X;:RETURN 68 T=Z:Z=Y:Y=X:GOSUB66:RETURN 69 R=1:S=0:Y=Z:Z=T:GOSUB66:RETURN 70 X=X+Y:GOSUB69:RETURN 71 X=Y-X:GOSUB69:RETURN 72 X=X*Y:GOSUB69:RETURN 73 IFX=0THENBEEP:RETURNELSEX=Y/X:GOSUB69:RETURN 74 X=Y^X:GOSUB69:RETURN 75 X=VAL(B):PRINT@245,C;:PRINT@245,USINGD;X; 76 A=INKEY$:IFA=""THEN76ELSEIFINSTR("0123456789.-",A)=0THEN78 77 IFS=1THENS=0:B=A:GOTO75ELSEIFR=1THENR=0:B=A:GOSUB68:GOTO75ELSEIFLEN(B)=15THENBEEP:GOTO76ELSEB=B+A:GOTO75 78 IFA=CHR$(8)ANDLEN(B)>0THENB=LEFT$(B,LEN(B)-1):GOTO75ELSEIFA=CHR$(13)THENS=1:GOSUB68:GOTO76ELSE76 79 F=INKEY$:IFF=""THEN79ELSEIFASC(F)<48ORASC(F)>56THEN79ELSED=E+STRING$(VAL(F),"#"):GOSUB66:RETURN 80 T=0:Z=0:Y=0:X=0:B="":GOSUB66:RETURN 81 CLEAR:CLS:SCREEN0,0:DEFSTRA-F:C=STRING$(35," "):KEYON 82 ONKEYGOSUB70,71,72,73,74,79,80,10:LINE(0,11)-(239,11):LINE(0,27)-(239,27):LINE(0,43)-(239,43) 83 E="###,###,###,###.":D=E+"##":PRINTCHR$(27);"p";:PRINT@280," + - x / y^x dec clr retn";:PRINTCHR$(27);"q"; 84 LINE(233,56)-(239,63),1,BF:PRINT@1,"T =";:PRINT@81,"Z =";:PRINT@161,"Y =";:PRINT@241,"X =";:GOSUB66:GOTO76 85 KEYOFF:MENU