Source Code
0 REM TRACK ****D £ D TRACK**** BY JIM LANE MODIFIED FOR %T%I%M%E%X/ SINCLAIR BY ANTHONY WILLING (4/1984) *******************
70 REM
80 CLS
100 LET R=0
110 LET Z=1
120 GOTO 210
140 REM ** CONTROL **
150 PRINT AT 19,1;"\##\##\##\##BEGINNING OF ROUND ";Z;"\##\##\##\##"
160 PRINT AT 20,1;"%1=STATUS %2=DAMAGE %3=HEAL %4=REG. %5=BIND %6=DROP %7= RAND "
170 INPUT J
180 IF J=0 THEN STOP
190 IF J>7 THEN GOTO 170
200 GOTO (360 AND J=1)+(590 AND J=2)+(1140 AND J=3)+(880 AND J=4)+(1320 AND J=5)+(1240 AND J=6)+(1380 AND J=7)
210 REM ** BEGIN **
215 PRINT AT 0,0;"HOW MANY CREATURES TO TRACK?"
217 INPUT Q
220 DIM A(Q)
221 DIM B(Q)
222 DIM C(Q)
223 DIM D(Q)
224 DIM E(Q)
230 CLS
240 PRINT AT 20,1;"MONSTER NUMBER?"
250 INPUT F
260 IF F=0 THEN GOTO 290
270 LET A(F)=1
280 GOTO 230
290 FOR F=1 TO Q
300 IF A(F)=0 THEN GOTO 340
310 PRINT AT 20,1;"HIT POINTS FOR ";F
320 INPUT H
330 LET A(F)=H
335 LET B(F)=H
340 NEXT F
350 GOTO 130
360 REM ** DISPLAY STATUS **
370 CLS
380 LET G=1
390 LET H=0
400 FOR F=1 TO Q
410 IF A(F)=0 THEN GOTO 490
420 IF G>42 THEN GOSUB 510
430 PRINT AT G-1,H;F
440 PRINT AT G,H;A(F)
450 LET H=H+4
460 IF H<28 THEN GOTO 490
470 LET H=1
480 LET G=G+3
490 NEXT F
500 GOTO 580
510 PRINT AT 21,1;"CONTINUE PRINTOUT?"
520 INPUT A$
530 IF A$="N" THEN GOTO 580
540 LET G=3
550 LET H=1
560 CLS
570 RETURN
580 GOTO 140
590 GOSUB 1530
595 REM ** DAMAGE **
600 LET Z=Z+1
610 PRINT AT 21,1;"CHARACTER THAT TOOK DAMAGE? "
620 INPUT F
630 IF F=0 THEN GOTO 680
640 PRINT AT 21,1;"AMOUNT OF DAMAGE? "
650 INPUT J
660 LET A(F)=A(F)-J
670 GOTO 610
680 REM ** REGENERATE/ROUND **
690 FOR F=1 TO Q
700 IF A(F)>=0 THEN LET E(F)=0
710 IF A(F)>=0 THEN GOTO 770
720 IF E(F)=10 THEN GOTO 770
730 IF E(F)=0 THEN GOTO 760
740 LET A(F)=A(F)-1
750 GOTO 770
760 LET E(F)=1
770 IF (C(F)=0 OR A(F)=B(F)) THEN GOTO 830
780 IF (C(F)<10) AND (A(F)<B(F)) THEN GOTO 850
790 IF D(F)=0 THEN LET D(F)=Z+3
800 IF D(F)>Z THEN GOTO 830
810 LET A(F)=A(F)+3
820 IF A(F)>B(F) THEN LET A(F)=B(F)
830 NEXT F
840 GOTO 360
850 LET A(F)=A(F)+C(F)
860 IF A(F)>B(F) THEN LET A(F)=B(F)
870 GOTO 830
880 REM ** REGENERATE **
890 LET R=1
900 FOR F=1 TO Q
902 LET B(F)=A(F)
904 NEXT F
910 REM ** TROLLS **
920 GOSUB 1530
930 PRINT AT 20,1;"FIRST TROLL NUMBER?"
940 INPUT K
950 IF K=0 THEN GOTO 1040
960 PRINT AT 20,1;"LAST TROLL NUMBER? "
970 INPUT L
980 IF K>L THEN GOTO 1030
990 IF A(K)<1 THEN GOTO 1010
\n1000 LET C(K)=10
\n1010 LET K=K+1
\n1020 GOTO 980
\n1030 GOTO 930
\n1040 REM ** OTHER REGENERATE **
\n1050 GOSUB 1530
\n1060 PRINT AT 20,1;"OTHER REGENERATING CREATURE?"
\n1070 INPUT F
\n1080 IF F=0 THEN GOTO 1130
\n1090 PRINT AT 20,1;"REGENERATION PER ROUND? "
\n1100 INPUT M
\n1110 LET C(F)=M
\n1120 GOTO 1060
\n1130 GOTO 360
\n1140 REM ** HEAL **
\n1150 GOSUB 1530
\n1160 PRINT AT 20,1;"CHARACTER THAT WAS HEALED?"
\n1170 INPUT F
\n1180 IF F=0 THEN GOTO 1230
\n1190 PRINT AT 20,1;"AMOUNT OF CURE? "
\n1200 INPUT N
\n1210 IF N=1000 THEN LET A(F)=B(F)
\n1212 IF N<>1000 THEN LET A(F)=A(F)+N
\n1220 GOTO 1160
\n1230 GOTO 360
\n1240 REM ** DROP CHARACTERS **
\n1250 GOSUB 1530
\n1260 PRINT AT 20,1;"CHARACTER TO DROP FROM STATUS?"
\n1270 INPUT F
\n1280 IF F=0 THEN GOTO 1310
\n1290 LET A(F)=0
\n1295 LET B(F)=0
\n1300 GOTO 1260
\n1310 GOTO 360
\n1320 REM ** BIND **
\n1330 PRINT AT 20,1;"CHARACTER NUMBER BOUND?"
\n1332 INPUT F
\n1340 IF F=0 THEN GOTO 1370
\n1350 LET E(F)=10
\n1360 GOTO 1330
\n1370 GOTO 360
\n1380 REM ** RANDOM ROLLS **
\n1390 CLS
\n1400 PRINT "WHAT SIDED DICE?"
\n1410 INPUT F
\n1420 IF F=0 THEN GOTO 1510
\n1430 PRINT "NUMBER OF TIMES?"
\n1440 INPUT G
\n1445 CLS
\n1450 FOR H=1 TO G
\n1470 LET K=INT (F*RND)+1
\n1480 PRINT K
\n1490 NEXT H
\n1492 PRINT "(PRESS %E%N%T%E%R TO GO ON)"
\n1495 PAUSE 4E4
\n1500 GOTO 1390
\n1510 CLS
\n1520 GOTO 360
\n1530 PRINT AT 20,1;" "
\n1540 PRINT AT 21,1;" "
\n1570 RETURN
\n1600 STOP
\n1610 REM RAND USR 14336
\n1620 REM SAVE "TRACK.B1"
\n1625 SAVE "1021%0"
\n1630 RUN