NITETIME GOPHER 1.0 - Lake Koshkonong Node
Server: gopher.nitetime.net:70    Selector: /archive/mechanical-minds/c128/demo2-original.bas
10 REM ==========================================
20 REM  CINEMATIC SCIENCE-FICTION DISPLAY SYSTEM
30 REM  COMMODORE 128 NATIVE - BASIC 7.0
40 REM  DEEP-SPACE TELEMETRY & COMMAND CONSOLE
50 REM ==========================================
100 REM --- SYSTEM INITIALIZATION ---
110 FAST : REM MAX CPU SPEED FOR VDC INIT
120 PRINT CHR$(142); : REM UPPERCASE/GRAPHICS
130 DIM X(60),Y(60),Z(60),VX(60),VY(60),VZ(60),C(60)
140 DIM PX(16),PY(16),OX(16),OY(16),V(30),E1(20),E2(20)
150 REM LOAD 3D CUBE/SPACECRAFT EDGES
160 FOR I=1 TO 16: READ E1(I), E2(I): NEXT
170 DATA 0,1, 1,2, 2,3, 3,0, 4,5, 5,6, 6,7, 7,4, 0,4, 1,5, 2,6, 3,7, 0,6, 1,7, 2,4, 3,5
180 DIM CX(8),CY(8),CZ(8)
190 R=35 : FOR I=0 TO 7 : CX(I)=R*(1-2*(I AND 1)) : CY(I)=R*(1-2*((I AND 2)/2)) : CZ(I)=R*(1-2*((I AND 4)/4)) : NEXT
200 REM --- MASTER DISPATCHER & TRANSITION ENGINE ---
210 SLOW : COLOR 0,1 : COLOR 4,1 : COLOR 1,6 : GRAPHIC 1,1
225 QF=0 : MD=1
230 DO
240   GOSUB 9000 : REM CINEMATIC WIPE TRANSITION
250   ON MD GOSUB 1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 9500, 10000, 11000, 12000, 13000
260   IF QF=1 THEN 300
270   MD = MD + 1 : IF MD>13 THEN MD=1
280 LOOP
300 SLOW : GRAPHIC 0 : PRINT CHR$(147);"DEEP-SPACE CONSOLE OFFLINE." : END

500 REM --- STANDARD CINEMATIC HEADER ---
510 BOX 0, 0, 0, 319, 16, 0, 1 : COLOR 1,CC
520 CHAR 1, 1, 1, T$ : RETURN

9000 REM --- TRANSITION: SCAN WIPE & SYSTEM SYNC ---
9010 FOR W=0 TO 319 STEP 20
9020   COLOR 1,1 : BOX 1,W,0,W+10,199,0,1
9030   T1=TI: DO: LOOP UNTIL TI-T1>2
9040 NEXT W
9050 GRAPHIC 1,1 : RETURN

1000 REM === 1: DEEP-SPACE ORBITAL NAVIGATION ===
1010 T$="ORBITAL NAVIGATION - SECTOR 7" : CC=2 : GOSUB 500
1020 COLOR 1,6: CIRCLE 1,160,100,120,60 : COLOR 1,4: CIRCLE 1,160,100,90,45
1030 COLOR 1,2: CIRCLE 1,160,100,18,18 : REM CENTRAL PLANET
1040 A1=0 : A2=1.57 : A3=3.14 : T0=TI
1050 DO
1060   X1=160+120*COS(A1) : Y1=100+60*SIN(A1)
1070   X2=160+90*COS(A2)  : Y2=100+45*SIN(A2)
1080   COLOR 1,2: BOX 1,X1,Y1,X1+2,Y1+2,0,1 : COLOR 1,6: BOX 1,X2,Y2,X2+2,Y2+2,0,1
1090   COLOR 1,2: CHAR 1,1,22,"OBJ-A VEL: "+HEX$(INT(X1*42))+"  "
1100   COLOR 1,6: CHAR 1,1,23,"OBJ-B ALT: "+HEX$(INT(Y2*33))+"  "
1110   BOX 0,X1,Y1,X1+2,Y1+2,0,1 : BOX 0,X2,Y2,X2+2,Y2+2,0,1
1120   A1=A1+0.04 : A2=A2-0.03
1130   GET K$ : IF K$="Q" THEN QF=1: RETURN
1140 LOOP UNTIL TI-T0>220
1150 RETURN

2000 REM === 2: 3D VECTOR ATTITUDE PROJECTION ===
2010 T$="3D ATTITUDE PROJECTION" : CC=6 : GOSUB 500
2020 A=0: B=0: C=0 : T0=TI
2030 COLOR 1,2: DRAW 1,160,20 TO 160,180 : DRAW 1,60,100 TO 260,100
2040 DO
2050   SA=SIN(A):CA=COS(A):SB=SIN(B):CB=COS(B):SC=SIN(C):CC=COS(C)
2060   FOR I=0 TO 7
2070     XY=CX(I)*CA-CY(I)*SA : YY=CX(I)*SA+CY(I)*CA
2080     XZ=XY*CB-CZ(I)*SB   : ZY=XY*SB+CZ(I)*CB
2090     YZ=YY*CC-ZY*SC     : ZZ=YY*SC+ZY*CC
2100     OX(I)=PX(I) : OY(I)=PY(I)
2110     PX(I)=160+(XZ*50)/(120+ZZ) : PY(I)=100+(YZ*50)/(120+ZZ)
2120   NEXT
2130   FOR J=1 TO 16: DRAW 0, OX(E1(J)), OY(E1(J)) TO OX(E2(J)), OY(E2(J)): NEXT
2140   COLOR 1,6: FOR J=1 TO 16: DRAW 1, PX(E1(J)), PY(E1(J)) TO PX(E2(J)), PY(E2(J)): NEXT
2150   COLOR 1,4: CHAR 1,1,23,"PITCH:"+STR$(INT(A*57))+" YAW:"+STR$(INT(B*57))+"   "
2160   A=A+0.08 : B=B+0.05 : C=C+0.06
2170   GET K$: IF K$="Q" THEN QF=1: RETURN
2180 LOOP UNTIL TI-T0>220
2190 RETURN

3000 REM === 3: DEEP-SPACE RADAR TACTICAL ===
3010 T$="TACTICAL RADAR CONSOLE" : CC=4 : GOSUB 500
3020 COLOR 1,6: FOR R=25 TO 95 STEP 25: CIRCLE 1,160,100,R,R: NEXT
3030 DRAW 1,160,5 TO 160,195 : DRAW 65,100 TO 255,100
3040 A=0 : T0=TI
3050 DO
3060   X=160+90*COS(A): Y=100+90*SIN(A)
3070   DRAW 0,160,100 TO X,Y
3080   A=A+0.12 : IF A>6.28 THEN A=A-6.28
3090   X=160+90*COS(A): Y=100+90*SIN(A)
3100   COLOR 1,6: DRAW 1,160,100 TO X,Y
3110   IF RND(1)<0.2 THEN TX=160+RND(1)*140-70 : TY=100+RND(1)*120-60 : COLOR 1,2 : BOX 1,TX,TY,TX+2,TY+2,0,1
3120   COLOR 1,4: CHAR 1,2,23,"SWEEP AZ:"+STR$(INT(A*57.3))+"   "
3130   GET K$: IF K$="Q" THEN QF=1: RETURN
3140 LOOP UNTIL TI-T0>220
3150 RETURN

4000 REM === 4: TRIPLE WAVEFORM SPECTRUM ANALYZER ===
4010 T$="SIGNAL SPECTRUM ANALYZER" : CC=2 : GOSUB 500
4020 COLOR 1,2: DRAW 1,20,100 TO 300,100 : DRAW 1,20,30 TO 20,170
4030 P=0 : T0=TI
4040 DO
4050   P=P+0.3
4060   FOR X=30 TO 290 STEP 6
4070     Y1 = 70  + 20*SIN(X/15 + P)
4080     Y2 = 130 + 20*COS(X/15 + P)
4090     BOX 0,X,45,X+4,155,0,1
4100     COLOR 1,4: BOX 1,X,Y1,X+4,Y1+2,0,1
4110     COLOR 1,6: BOX 1,X,Y2,X+4,Y2+2,0,1
4120   NEXT X
4130   COLOR 1,2: CHAR 1,1,23,"FREQ: 4.882 GHz  PHASE LOCK: ACTIVE"
4140   GET K$: IF K$="Q" THEN QF=1: RETURN
4150 LOOP UNTIL TI-T0>220
4160 RETURN

5000 REM === 5: STELLAR NAVIGATION & TRIANGULATION ===
5010 T$="STELLAR TRIANGULATION MAP" : CC=6 : GOSUB 500
5020 COLOR 1,2
5030 FOR I=1 TO 25
5040   X(I)=RND(1)*280+20 : Y(I)=RND(1)*120+30
5050   BOX 1,X(I),Y(I),X(I)+1,Y(I)+1,0,1
5060 NEXT I
5070 T0=TI
5080 DO
5090   P1=INT(RND(1)*25)+1 : P2=INT(RND(1)*25)+1
5100   COLOR 1,4: DRAW 1,X(P1),Y(P1) TO X(P2),Y(P2)
5110   COLOR 1,6: CHAR 1,INT(X(P1)/8),INT(Y(P1)/8),"S-"+STR$(P1)
5120   COLOR 1,2: CHAR 1,1,23,"SOLUTION SOLVED: RA 14H 22M / DEC +42"
5130   T1=TI: DO: LOOP UNTIL TI-T1>15
5140   GET K$: IF K$="Q" THEN QF=1: RETURN
5150 LOOP UNTIL TI-T0>220
5160 RETURN

6000 REM === 6: PROGRESSIVE TRAJECTORY SOLVER ===
6010 T$="INTERCEPT TRAJECTORY SOLVER" : CC=4 : GOSUB 500
6020 COLOR 1,6
6030 FOR X=20 TO 300 STEP 40: DRAW 1,X,25 TO X,175: NEXT
6040 FOR Y=25 TO 175 STEP 30: DRAW 1,20,Y TO 300,Y: NEXT
6050 T0=TI : X=20
6060 DO
6070   Y = 160 - (X*X)/250
6080   COLOR 1,2: CIRCLE 1,X,Y,2,2
6090   COLOR 1,4: CHAR 1,2,22,"DELTA-V: "+STR$(INT(X*3.14))+" M/S"
6100   X = X + 4 : IF X>300 THEN X=20 : COLOR 1,1 : BOX 1,21,26,299,174,0,1
6110   GET K$: IF K$="Q" THEN QF=1: RETURN
6120 LOOP UNTIL TI-T0>220
6130 RETURN

7000 REM === 7: SPACECRAFT SUBSYSTEM SCHEMATIC ===
7010 T$="SUBSYSTEM ARCHITECTURE & BUS" : CC=2 : GOSUB 500
7020 COLOR 1,2
7030 BOX 1,30,30,90,70,0,0   : CHAR 1,4,4,"REACTOR"
7040 BOX 1,130,30,190,70,0,0 : CHAR 1,17,4,"NAVIGATION"
7050 BOX 1,230,30,290,70,0,0 : CHAR 1,30,4,"LIFE-SUP"
7060 BOX 1,80,110,140,150,0,0: CHAR 1,11,14,"PROPULSION"
7070 BOX 1,180,110,240,150,0,0: CHAR 1,24,14,"GUIDANCE"
7080 DRAW 1,90,50 TO 130,50 : DRAW 1,190,50 TO 230,50
7090 DRAW 1,110,70 TO 110,110 : DRAW 1,210,70 TO 210,110
7100 T0=TI
7110 DO
7120   C=4 : IF RND(1)>0.5 THEN C=6
7130   COLOR 1,C: BOX 1,190,120,230,140,0,1 : COLOR 1,2: CHAR 1,25,15,"ACTIVE"
7140   COLOR 1,6: CHAR 1,2,23,"BUS STATUS: ALL CHANNELS NOMINAL"
7150   T1=TI: DO: LOOP UNTIL TI-T1>15
7160   GET K$: IF K$="Q" THEN QF=1: RETURN
7170 LOOP UNTIL TI-T0>220
7180 RETURN

8000 REM === 8: CORE MEMORY MACHINE-STATE MAP ===
8010 T$="CORE MEMORY MACHINE-STATE" : CC=6 : GOSUB 500
8020 COLOR 1,6
8030 FOR I=0 TO 9: FOR J=0 TO 7: BOX 1,30+I*26,25+J*18,52+I*26,39+J*18,0,0: NEXT: NEXT
8040 T0=TI
8050 DO
8060   I=INT(RND(1)*10) : J=INT(RND(1)*8)
8070   C=2 : IF RND(1)>0.6 THEN C=4
8080   COLOR 1,C: BOX 1,31+I*26,26+J*18,51+I*26,38+J*18,0,1
8090   COLOR 1,6: CHAR 1,2,23,"MEM BANK $E000-$FFFF: SCANNING..."
8100   GET K$: IF K$="Q" THEN QF=1: RETURN
8110 LOOP UNTIL TI-T0>220
8120 RETURN

9500 REM === 9: ROTATING POLAR & LISSAJOUS PLOT ===
9510 T$="POLAR MATRIX / LISSAJOUS" : CC=4 : GOSUB 500
9520 T0=TI : A=0
9530 DO
9540   R = 60 * SIN(3*A) * COS(2*A)
9550   X = 160 + R*COS(A) : Y = 100 + R*SIN(A)
9560   COLOR 1,6: CIRCLE 1,X,Y,2,2
9570   A = A + 0.15
9580   COLOR 1,2: CHAR 1,2,23,"POLAR ANGLE THETA: "+STR$(INT(A*57))+"  "
9590   GET K$: IF K$="Q" THEN QF=1: RETURN
9600 LOOP UNTIL TI-T0>220
9610 RETURN

10000 REM === 10: GRAVITATIONAL WELL & VECTOR FIELD ===
10010 T$="GRAVITATIONAL WELL TENSOR" : CC=2 : GOSUB 500
10020 COLOR 1,6
10030 FOR R=10 TO 80 STEP 15: CIRCLE 1,160,100,R,R: NEXT
10040 T0=TI : A=0
10050 DO
10060   A=A+0.2
10070   X1=160+70*COS(A) : Y1=100+70*SIN(A)
10080   COLOR 1,4: BOX 1,X1,Y1,X1+3,Y1+3,0,1
10090   COLOR 1,2: CHAR 1,2,23,"TENSOR GRADIENT: -0.984 G/CM3"
10100   BOX 0,X1,Y1,X1+3,Y1+3,0,1
10110   GET K$: IF K$="Q" THEN QF=1: RETURN
10120 LOOP UNTIL TI-T0>220
10130 RETURN

11000 REM === 11: AUTOMATED LANDING & TERRAIN PROFILE ===
11010 T$="AUTOMATED DESCENT COMPUTER" : CC=6 : GOSUB 500
11020 COLOR 1,2: DRAW 1,20,160 TO 300,160
11030 FOR X=30 TO 290 STEP 20: DRAW 1,X,160 TO X,150-RND(1)*40: NEXT
11040 T0=TI : DX=160 : DY=60
11050 DO
11060   BOX 0,DX-4,DY-4,DX+4,DY+4,0,1
11070   DY = DY + 1 : IF DY>130 THEN DY=60
11080   COLOR 1,4: BOX 1,DX-4,DY-4,DX+4,DY+4,0,0
11090   COLOR 1,6: CHAR 1,2,23,"ALTITUDE: "+STR$(INT(160-DY)*15)+"M  DESCENT: -4.2M/S"
11100   GET K$: IF K$="Q" THEN QF=1: RETURN
11110 LOOP UNTIL TI-T0>220
11120 RETURN

12000 REM === 12: COMPUTER HEURISTIC THOUGHT DISPLAY ===
12010 T$="NEURAL HEURISTIC SOLVER" : CC=4 : GOSUB 500
12020 T0=TI
12030 DO
12040   X1=RND(1)*260+30 : Y1=RND(1)*120+30
12050   X2=RND(1)*260+30 : Y2=RND(1)*120+30
12060   COLOR 1,2: DRAW 1,X1,Y1 TO X2,Y2
12070   COLOR 1,6: CIRCLE 1,X1,Y1,3,3
12080   COLOR 1,4: CHAR 1,2,23,"HEURISTIC SEARCH ACTIVE..."
12090   GET K$: IF K$="Q" THEN QF=1: RETURN
12100 LOOP UNTIL TI-T0>220
12110 RETURN

13000 REM === 13: 80 COLUMN VDC TELEMETRY WALL ===
13010 GRAPHIC 5 : FAST
13020 PRINT CHR$(147);
13030 PRINT "================================================================================"
13040 PRINT " COMMAND MODULE TELEMETRY WALL             MISSION TIME: T-04:22:10"              
13050 PRINT "================================================================================"
13060 PRINT : PRINT " NAV / GUIDANCE:   NOMINAL" : PRINT " PROPULSION BUS:   STABLE"
13070 PRINT " RADAR TRACKING:   ACQUIRED" : PRINT " REACTOR OUTPUT:   104.2%"             
13080 PRINT : PRINT " SECTOR   CHANNELS   VECTOR_XYZ    BEARING    STATUS"
13090 PRINT " ------   --------   ----------    -------    ------"
13100 FOR I=1 TO 5
13110   PRINT " ";HEX$(INT(RND(1)*255));TAB(10);HEX$(INT(RND(1)*4096));TAB(21);STR$(RND(1));TAB(35);INT(RND(1)*360);TAB(46);"NOMINAL"
13120 NEXT
13130 T0=TI
13140 DO
13150   PRINT CHR$(19); : FOR N=1 TO 3: PRINT CHR$(17); : NEXT
13160   PRINT TAB(18);STR$(INT(RND(1)*100));"%"
13170   T1=TI: DO: LOOP UNTIL TI-T1>5
13180   GET K$: IF K$="Q" THEN QF=1: RETURN
13190 LOOP UNTIL TI-T0>220
13200 SLOW : GRAPHIC 1,1 : RETURN
SIGNAL ACTIVE   //   WISCO 608   //   Gateway locked to gopher.nitetime.net