THE PAST MASTER CLUB
PERPETUAL CALENDAR






1 '' CAL.BAS COPYRIGHTED NICK VAN VLIET 1981 TRANSLATED OCT/99 û
3 '' renum 10,2,10 NEW,OLD,INC ''ENT
10 Q = 1: R = Q + Q: P = R + Q: S = P + R: L = S + R: F = Q - Q: D = R * P: H = P * L: V = L + Q: W = P * P: E = R * S: WW = H + E:
T = P + Q: EQ = E + Q: ER = E + R: EE = E + E: Y = EE: U = EE + V: EP = E + P
20 OO = E * E: O = Q / OO: V = L + Q: COLOR 15, Q, P: CLS : COLOR 11, 4, 15:
PRINT "CODEBREAKER "; : COLOR F, 4: PRINT " NICK VAN VLIET "; :
COLOR 15, S: PRINT " "; : PRINT DATE$; " "; : PRINT TIME$; : PRINT " "; :
COLOR 15, F: PRINT " CALENDAR "
30 PRINT : COLOR 15, Q: PRINT : LOCATE T, Y: PRINT "YEAR ? "; : COLOR 11:
INPUT " ", IY: IF IY < 1800 THEN RUN
40 LOCATE S, Y: COLOR 15: PRINT "MONTH (1-12) ? ":
LOCATE S, P * S + Y: COLOR 11: INPUT " ", IM: IF IM < Q OR IM > ER THEN 40
50 GOSUB 380: LOCATE S, T * T + Y: COLOR 11: PRINT U$: LOCATE D, Y: COLOR 15:
PRINT "DAY (1-" + STR$(DL) + ") ? ";
60 LOCATE D, P * S + Y: COLOR 11: INPUT " ", ID: COLOR 15: IF ID < Q OR ID > DL THEN 50
70 COLOR 11: LOCATE T, P * S + Y: PRINT IY: LOCATE S, Y: COLOR 15:
PRINT "MONTH (1-12) ?": LOCATE S, T * T + Y: COLOR 11: PRINT U$:
LOCATE D, Y: COLOR 15: PRINT "DAY (1-" + STR$(DL) + ") ? "; :
LOCATE D, P * S + Y: COLOR 11: PRINT ID
80 COLOR F, L: PRINT : LOCATE W, Y: PRINT " "; U$; TAB(23 + Y); IY
90 LOCATE E, Y: PRINT CHR$(201); : FOR I = Q TO D: FOR J = Q TO P:
PRINT CHR$(205);: NEXT: PRINT CHR$(203); : NEXT:
FOR J = Q TO P: PRINT CHR$(205); : NEXT
100 PRINT CHR$(187): LOCATE EQ, Y: PRINT CHR$(186); : COLOR 4: PRINT "SUN"; :
COLOR 0: PRINT CHR$(186); :
COLOR 15: PRINT "MON"; : COLOR 0: PRINT CHR$(186);
110 COLOR 15: PRINT "TUE"; : COLOR 0: PRINT CHR$(186); :
COLOR 15: PRINT "WED"; : COLOR 0: PRINT CHR$(186); :
COLOR 15: PRINT "THU"; : COLOR 0
120 PRINT CHR$(186); :
COLOR 15: PRINT "FRI"; : COLOR 0: PRINT CHR$(186); :
COLOR 4: PRINT "SAT"; : COLOR 0: PRINT CHR$(186)
130 LOCATE ER, Y: PRINT CHR$(204); : FOR I = Q TO D: FOR J = Q TO P:
PRINT CHR$(205); : NEXT: PRINT CHR$(202);
140 NEXT: FOR J = Q TO P: PRINT CHR$(205); : NEXT: PRINT CHR$(185)
150 G = - (X = Q OR X = E) - R * (X = S) - P * (X = V)
G = G - T * (X = R OR X = P OR X = EQ) - S * (X = D)
G = G - D * (X = W OR X = ER) - L * (X = T OR X = L)
160 U$ = "MABCKFGAIDEFNBCDLGABJEFGHCDE": U$ = MID$(U$, Z + Q, Q)
170 G = G - R + (Z = IZ AND (X = Q OR X = R)) - (U$ = "A" OR U$ = "N")
G = G - R * (U$ = "B" OR U$ = "H") - P * (U$ = "C" OR U$ = "I")
G = G - T * (U$ = "D" OR U$ = "J")
180 G = G - S * (U$ = "E" OR U$ = "K") - D * (U$ = "F" OR U$ = "L")
G = G - L * (U$ = "G" OR U$ = "M") + L * L:
G = G - L * INT(G / L + O) + Q: K = Q
190 FOR I = Q TO D: LOCATE ER + I, Y: PRINT CHR$(186); : FOR J = Q TO L:
A = L * (I - Q) + J: COLOR 15
200 IF J = Q OR J = L THEN COLOR T, L
210 IF K = ID THEN COLOR 27, L
220 IF A >= G AND K <= DL THEN PRINT TAB((J - Q) * T + R + (K >= E) + Y); STR$(K); : COLOR 15, L
230 K = K - (A >= G): NEXT: COLOR 0: PRINT TAB(48); CHR$(186):
IF K > DL THEN
I = I + Q: GOTO 250
end if
240 NEXT
250 LOCATE ER + I, Y: PRINT CHR$(200); : FOR I = Q TO 27: PRINT CHR$(205); : NEXT:
PRINT CHR$(188)
260 COLOR 15, 1: PRINT TAB(Y); " "
270 LOCATE 22, Q: PRINT "DAYS:DOWN(1)/UP(2) MONTHS:DOWN(3)/UP(4) YEARS:";
print "DOWN(5)/UP(6) RUN:(7) EXIT:(8) ?"
280 IF INKEY$ <> "" THEN 280
290 IF INKEY$ = "1" THEN
GOSUB 380: ID = ID - Q: IM = IM + (ID < Q): IY = IY + (IM = F):
IM = IM - ER * (IM = F): GOSUB 380:
ID = ID - DL * (ID = F): GOTO 70
END IF
300 IF INKEY$ = "2" THEN
GOSUB 380: ID = ID + Q: IM = IM - (ID > DL): IY = IY - (IM > ER): IM = IM + ER * (IM = EP):
ID = ID + DL * (ID > DL): GOSUB 380: GOTO 70
END IF
310 IF INKEY$ = "3" THEN
GOSUB 380: IM = IM - Q: IY = IY + (IM = F): IM = IM - ER * (IM = F): GOSUB 380: GOTO 70
END IF
320 IF INKEY$ = "4" THEN
GOSUB 380: IM = IM + Q: IY = IY - (IM = EP): IM = IM + ER * (IM = EP): GOSUB 380: GOTO 70
END IF
330 IF INKEY$ = "5" THEN IY = IY - Q: GOSUB 380: GOTO 70
340 IF INKEY$ = "6" THEN IY = IY + Q: GOSUB 380: GOTO 70
350 IF INKEY$ = "7" THEN RUN
360 IF INKEY$ = "8" THEN CHAIN "GAME.BAS"
370 IF INKEY$ = "" THEN GOTO 280 ELSE GOTO 370



380 X = IM: U$ = ">8><><>><><>"
390 IF IY = 1800 THEN IY = 1902
400 IF IY = 1900 THEN IY = 1906
410 IF IY < 1900 THEN IY = IY + ER
420 Z = IY - U * INT(IY / U + O): IZ = T * INT(Z / T + O): DL = ASC(MID$(U$, X, Q)) / R - (IM = R AND Z = IZ)
430 U$ = "JANUARY FEBRUARY MARCH APRIL MAY JUNE JULY AUG"
U$ = U$ + "UST SEPTEMBEROCTOBER NOVEMBER DECEMBER "
440 U$ = MID$(U$, (X - Q) * W + Q, W): RETURN



450 '' 9000
460 '' CLS
470 '' SAVE"CAL"
480 '' COLOR 15,1,1
490 '' SYSTEM

END


RETURN TO TOP
PREVIOUS MENU
RETURN TO PMC MENU
HOME PAGE
You are visitor no. to this page.
1