Galactic Gladiator
Emulation Item Preview
Share or Embed This Item
- Language
- English
Notes
Disk info for Galactic_Gladiator_19xx_SSI_RDOS.dsk:
File Name: a2_Galactic_Gladiator_19xx_SSI_RDOS/Galactic_Gladiator_19xx_SSI_RDOS.dsk
Disk Name: RDOS 3.3 BY KRAKOWICZ
Physical Size (bytes): 143360
Free Space (bytes): 7168
Used Space (bytes): 109312
Physical Size (KB): 140
Free Space (KB): 7
Used Space (KB): 106
Archive Order: DOS
Disk Format: RDOS 2.1
Total Blocks: 455
Free Blocks: 28
Used Blocks: 427
Disk directory for Galactic_Gladiator_19xx_SSI_RDOS.dsk:
a2_Galactic_Gladiator_19xx_SSI_RDOS/Galactic_Gladiator_19xx_SSI_RDOS.dsk RDOS 3.3 BY KRAKOWICZ
B 026 RDOS 2.1 COPYRIGHT 1981 6,656 000
T 001 SYSTEMBOOT 256 026
A 001 HELLO 28 027
A 027 PREP 6,747 028
A 052 CREATE 13,216 055
A 049 PLACE 12,452 107
A 062 OPTIONS-C 15,852 156
A 048 RES 12,228 218
A 013 RESULTS 3,096 266
B 014 NAMES7 3,521 279
B 003 SSI.INIT 768 293
T 007 SHORT MAPS 1,792 296
T 011 MEDIUM MAPS 2,816 303
T 026 LONG MAPS 6,656 314
T 020 ONE SPECIES 5,120 340
T 020 MIXED SPECIES 5,120 360
T 021 EXPERIENCED 5,376 380
T 022 SPECIAL 5,632 401
T 001 IDX 256 423
B 002 QWERTY 512 424
A 001 HELLO.RG 147 426
RDOS 2.1 format; 7,168 bytes free; 109,312 bytes used.
Text found in Galactic_Gladiator_19xx_SSI_RDOS.dsk/HELLO.bas:
10 TEXT
20 & RUN "PREP",16385
Text found in Galactic_Gladiator_19xx_SSI_RDOS.dsk/OPTIONS-C.bas:
5 ONERR GOTO 2385
10 GOTO 1105
15 SG = A/2:SH = AA/2: IF ABS(SG) > ABS(TB) OR ABS(SH) > ABS(TB) THEN SG = SG/2:SH = SH/2
20 RETURN
25 FOR J = 0 TO B2 -1: IF ED = 1 THEN 45
30 GOSUB 220: IF SA >2 THEN 45
35 ON HU GOSUB 240,245: IF X > = X1 -1 AND X < = X1 +1 AND Y > = Y1 -1 AND Y < = Y1 +1 THEN 45
40 ED = 1
45 NEXT J: RETURN
50 FOR J = 0 TO B2 -1:SB = 0:HH = A1%(A1%(22,I) +10,I):PN = HH *2: GOSUB 220: IF SA >2 THEN 110
55 GOSUB 235: ON HU GOSUB 240,245:RA = 0
60 A = X1 -X:AA = Y1 -Y: IF ABS(A) > ABS(TB) OR ABS(AA) > ABS(TB) THEN GOSUB 15
65 X2 = X *TB +(TB/2):Y2 = Y *TB +(TB/2):X3 = X1 *TB +(TB/2) -3:Y3 = Y1 *TB +(TB/2) -3:X4 = X3 +6:Y4 = Y3 +6
70 X2 = X2 +A:Y2 = Y2 +AA: IF X2 >X3 AND X2 Y3 AND Y2 X THEN X = INT(X2/TB):RA = RA +1
80 IF INT(Y2/TB) < >Y THEN Y = INT(Y2/TB):RA = RA +1
85 IF X <0 OR X >TC OR Y <0 OR Y >TD THEN SB = 1: GOTO 110
90 IF MP%(X,Y) = 1 THEN SB = 1
95 IF MP%(X,Y) = 2 THEN HH = HH -1: IF RA >HH THEN SB = 1
100 IF MP%(X,Y) = 3 THEN PN = PN -1: IF RA >PN THEN SB = 1
105 IF SB = 0 THEN 70
110 NEXT J: RETURN
115 ED = 0: GOSUB 375: FOR J = 0 TO B2 -1: GOSUB 220: IF SA >2 THEN 125
120 ON HU GOSUB 240,245: IF X1 > = SB AND X1 < = SD AND Y1 > = SE AND Y1 < = SF THEN ED = 1: ON HU GOSUB 295,310
125 NEXT J: RETURN
130 GOSUB 325: IF RA DR THEN ED = 1
145 RETURN
150 ED = 1: RETURN
155 IF X <0 OR X >TC OR Y <0 OR Y >TD THEN SB = 1
160 RETURN
165 IF MP%(X,Y) >0 THEN SB = 1
170 IF MA%(X,Y) < >0 THEN SB = 1
175 RETURN
180 Y = Y -1: RETURN
185 Y = Y -1:X = X +1: RETURN
190 X = X +1: RETURN
195 X = X +1:Y = Y +1: RETURN
200 Y = Y +1: RETURN
205 Y = Y +1:X = X -1: RETURN
210 X = X -1: RETURN
215 X = X -1:Y = Y -1: RETURN
220 SA = P%(21,J): IF HU = 2 THEN SA = A%(21,J)
225 RETURN
230 A = X1 -X:AA = Y1 -Y:X2 = X *TB +(TB/2):Y2 = Y *TB +(TB/2):X3 = X1 *TB +(TB/2):Y3 = Y2 *TB +(TB/2): RETURN
235 X = A1%(25,I):Y = A1%(26,I): RETURN
240 X1 = P%(25,J):Y1 = P%(26,J): RETURN
245 X1 = A%(25,J):Y1 = A%(26,J): RETURN
250 B2 = B: RETURN
255 B2 = E2: RETURN
260 SB = 0: FOR K = 0 TO 2: ON PG%(P1,K) GOSUB 180,185,190,195,200,205,210,215: GOSUB 155: IF SB = 0 THEN GOSUB 165
265 NEXT K: RETURN
270 SB = 0: FOR K = 0 TO 1: ON PH%(P1,K) GOSUB 180,185,190,195,200,205,210,215: GOSUB 155: IF SB = 0 THEN GOSUB 165
275 NEXT K: RETURN
280 SB = 0: ON PI%(P1) GOSUB 180,185,190,195,200,205,210,215: GOSUB 155: IF SB = 0 THEN GOSUB 165
285 RETURN
290 RETURN
295 A1%(33,I) = P%(0,J):TR = 1: RETURN
300 FOR K = 0 TO B1 -1: IF A1%(25,K) = X1 AND A1%(26,K) = Y1 AND A1%(21,K) <3 THEN SF = 1
302 NEXT K: RETURN
310 A1%(33,I) = A%(0,J):TR = 1: RETURN
315 SF = 0: IF A1%(25,I) = TX AND A1%(26,I) = TY AND GA <3 THEN SF = 1
317 RETURN
325 SJ = ABS(X1 -X):SK = ABS(Y1 -Y):RA = SJ: IF RA 75 THEN 395
385 IF A1%(23,I) = 11 OR A1%(23,I) = 0 THEN SN = 1:A1%(31,I) = 1: GOTO 395
390 A1%(29,I) = 1:SN = 1
395 RETURN
400 IF GA = 3 THEN 410
405 GOSUB 235:X1 = TX:Y1 = TY: GOSUB 325: IF RA < = D1 THEN D1 = RA
410 RETURN
415 GOSUB 235:P1 = P1 +1: IF P1 = FB THEN 435
420 ON MV GOSUB 280,270,260: IF SB = 1 THEN 415
425 ON OP GOSUB 25,115,130,130,140,140,150
430 IF ED = 0 THEN 415
435 RETURN
440 P1 = INT(8 * RND(1) +1): FOR J = 1 TO 8:PI%(J -1) = P1:P1 = P1 +1: IF P1 >8 THEN P1 = 1
445 NEXT J:FB = 7: RETURN
450 FB = 31: RETURN
455 FB = 135: RETURN
460 GOSUB 355: GOSUB 400:SQ = 34: ON MV GOSUB 440,450,455:P1 = -1: GOSUB 415: IF ED = 0 THEN 470
465 ON MV GOSUB 555,565,575
470 RETURN
475 D1 = A1%(8,I): GOSUB 400:MV = D1: IF D1 >3 THEN MV = 3
480 SQ = 34: ON MV GOSUB 440,450,455:P1 = -1: GOSUB 415: IF ED = 0 THEN 505
485 ON MV GOSUB 555,565,575: IF D1 < = 3 THEN 505
490 SQ = 37:MV = D1 -MV: ON MV GOSUB 440,450,455:P1 = -1:VX = A1%(25,I):VY = A1%(26,I):A1%(25,I) = X:A1%(26,I) = Y
495 ED = 0: GOSUB 415: IF ED = 0 THEN A1%(25,I) = VX:A1%(26,I) = VY: GOTO 505
500 ON MV GOSUB 555,565,575:A1%(25,I) = VX:A1%(26,I) = VY
505 RETURN
510 IF GA <3 THEN X1 = TX:Y1 = TY:SF = 0: GOSUB 300: IF SF = 0 THEN 520
511 ON HU GOTO 512,515
512 FOR K = 0 TO B -1: IF P%(21,K) >2 THEN 514
513 J = K
514 NEXT K: GOTO 518
515 FOR K = 0 TO E2 -1: IF A%(21,K) >2 THEN 517
516 J = K
517 NEXT K
518 ON HU GOSUB 240,245
520 GOSUB 325:DR = RA: RETURN
525 DE = 0:DR = 0: GOSUB 235: FOR J = 0 TO B2 -1: GOSUB 220: IF SA >2 THEN 545
530 ON HU GOSUB 240,245, GOSUB 345: GOSUB 325
535 IF RA >SA +1 THEN 545
540 DR = 1:DF = J
545 NEXT J: RETURN
550 FOR J3 = 34 TO 39:A1%(J3,I) = 0: NEXT J3: RETURN
555 A1%(SQ,I) = PI%(P1): IF OP = 2 THEN A1%(SQ +1,I) = 10
560 RETURN
565 FOR J3 = 0 TO 1:A1%(SQ +J3,I) = PH%(P1,J3): NEXT J3: IF OP = 2 THEN A1%(SQ +2,I) = 10
570 RETURN
575 FOR J3 = 0 TO 2:A1%(SQ +J3,I) = PG%(P1,J3): NEXT J3: IF OP = 2 THEN A1%(SQ +3,I) = 10
580 RETURN
585 SJ = 0: FOR K = 0 TO B2 -1: IF HU = 1 AND P%(21,K) >2 THEN 600
590 IF HU = 2 AND A%(21,K) >2 THEN 600
595 SJ = SJ +1
600 NEXT K
605 SK = 0: FOR K = 0 TO B1 -1: IF A1%(21,K) >2 THEN 615
610 SK = SK +1
615 NEXT K: RETURN
620 SF = 0: IF A1%(28,I) = 1 THEN SF = 1
625 IF A1%(34,I) >0 THEN SF = 1
630 IF A1%(32,I) = 1 THEN SF = 1
635 IF A1%(31,I) = 1 THEN SF = 1
640 IF A1%(29,I) = 1 THEN SF = 1
645 IF A1%(21,I) >0 THEN SF = 1
650 IF A1%(41,I) >0 THEN SF = 1
655 IF SF = 0 AND A1%(7,I) 2 THEN 710
705 ON HU GOSUB 240,245: GOSUB 325: IF RA -A1%(A1%(22,I) +10,I) <7 THEN SN = 1
710 NEXT J: GOSUB 315: IF SF = 0 AND SN = 0 THEN OP = 4: GOSUB 510: GOSUB 475: GOTO 770
715 GOSUB 50: IF TR = 1 THEN 770
717 GOSUB 315: IF SF = 1 OR A1%(7,I) = 1 THEN A1%(32,I) = 1: GOTO 770
720 OP = INT(5 * RND(1) +3): IF GA < >3 THEN OP = 4
725 IF GA = 3 THEN GOSUB 585: IF SK >SJ THEN OP = 4
730 GOSUB 510
735 IF OP = 6 OR OP = 4 THEN GOSUB 475
740 IF OP < >6 AND OP < >4 THEN GOSUB 460: IF ED = 1 THEN A1%(41,I) = 3
745 GOTO 770
750 IF A1%(27,I) = 1 THEN GOSUB 380: IF SN = 1 THEN 770
755 GOSUB 235: IF A1%(27,I) = 1 THEN MV = 1:OP = 1: GOSUB 460:A1%(41,I) = 3: GOTO 770
760 GOSUB 525: IF DR = 0 THEN A1%(31,I) = 1: GOTO 770
765 J = DF: GOSUB 235: GOSUB 515:OP = 5: GOSUB 460: IF ED = 1 THEN A1%(41,I) = 3
770 RETURN
775 IF A1%(27,I) = 0 THEN 800
780 GOSUB 235
785 FOR J = 0 TO B2 -1: GOSUB 235: GOSUB 220: IF SA >2 THEN 795
790 ON HU GOSUB 240,245: GOSUB 375: IF X1 > = SB AND X1 < = SD AND Y1 > = SE AND Y1 < = SF THEN A1%(28,I) = 1: ON HU GOSUB 295,310
795 NEXT J: IF TR = 1 THEN 835
800 GOSUB 315: IF SF = 1 THEN A1%(32,I) = 1: GOTO 835
802 DR = INT((A1%(8,I)/2) +.5):SF = 0: FOR J = 0 TO B2 -1: GOSUB 220: IF SA >2 THEN 810
805 GOSUB 235: ON HU GOSUB 240,245: GOSUB 325: IF RA < = DR +1 THEN SF = 1
810 NEXT J: IF SF = 0 THEN 820
815 IF INT(100 * RND(1) +1) >33 THEN OP = 2: GOSUB 460: IF TR = 1 THEN 835
820 OP = 4: IF INT(100 * RND(1) +1) >80 THEN OP = 3
825 GOSUB 235: GOSUB 510: IF OP = 3 THEN GOSUB 460: IF ED = 1 THEN A1%(41,I) = 3
830 IF OP = 4 THEN GOSUB 475
835 RETURN
840 DR = INT(A1%(5,I)/4) +1: GOSUB 235
845 FOR J = 0 TO B2 -1: GOSUB 220: IF SA >2 THEN 860
850 GOSUB 235: ON HU GOSUB 240,245: GOSUB 325: IF RA >DR -1 THEN 860
855 IF INT(100 * RND(1) +1) >50 THEN A1%(28,I) = 1: ON HU GOSUB 295,310
860 NEXT J
865 IF TR = 1 THEN 890
867 GOSUB 315: IF SF = 1 THEN A1%(32,I) = 1: GOTO 890
870 OP = 4: IF INT(100 * RND(1) +1) >80 THEN OP = 3
875 GOSUB 235: GOSUB 510
880 IF OP = 4 THEN GOSUB 475
885 IF OP = 3 THEN GOSUB 460: IF ED = 1 THEN A1%(41,I) = 3
890 RETURN
895 FOR I = 0 TO E2 -1: FOR J = 28 TO 41:A%(J,I) = 0: NEXT J,I: RETURN
900 FOR I = 0 TO B -1: FOR J = 28 TO 41:P%(J,I) = 0: NEXT J,I: RETURN
905 FOR I = 0 TO E2 -1: FOR J = 0 TO 44:A1%(J,I) = A%(J,I): NEXT J,I:B1 = E2: RETURN
910 FOR I = 0 TO B -1: FOR J = 0 TO 44:A1%(J,I) = P%(J,I): NEXT J,I:B1 = B: RETURN
915 FOR I = 0 TO E2 -1: FOR J = 28 TO 41:A%(J,I) = A1%(J,I): NEXT J,I: RETURN
920 FOR I = 0 TO B -1: FOR J = 28 TO 41:P%(J,I) = A1%(J,I): NEXT J,I: RETURN
925 SF = 1: IF A1%(22,I) >6 THEN SF = 2
930 IF A1%(22,I) >8 THEN SF = 3
935 RETURN
940 GOSUB 990
945 ON HU GOSUB 895,900: ON HU GOSUB 905,910: ON HU GOSUB 250,255
950 FOR I = 0 TO B1 -1:TR = 0:ED = 0: IF A1%(21,I) >0 THEN 975
955 IF A1%(7,I) < = 0 THEN A1%(32,I) = 1: GOTO 975
960 IF A1%(22,I) = 11 THEN A1%(29,I) = 1: GOTO 975
965 IF A1%(22,I) = 0 AND A1%(23,I) >0 THEN A1%(29,I) = 1: GOTO 975
970 GOSUB 925: ON SF GOSUB 775,840,695
975 GOSUB 620: NEXT I: GOSUB 670: ON HU GOSUB 915,920
980 GOTO 1825
990 ON HU GOSUB 905,910: ON HU GOSUB 250,255: GOSUB 585
995 SF = 1: IF SJ >SK THEN SF = 2
1000 IF SJ >SK +1 THEN SF = 3
1005 IF SJ >SK +2 THEN SF = 4
1010 IF SK >SJ THEN SF = 5
1015 IF A1%(43,0) = 11 OR A1%(43,0) = 15 THEN SF = 5
1020 HOME : VTAB 21: FLASH : PRINT "TEAM # ";SC;"-";S1$(SC)
1025 ON SF GOSUB 1055,1040,1045,1050,1035
1030 NORMAL : RETURN
1035 PRINT "IS DECIDING HOW TO DESTROY YOU!": RETURN
1040 PRINT "IS DECIDING HOW TO WIN THIS ONE": RETURN
1045 PRINT "IS DESPERATELY DECIDING WHAT TO DO": RETURN
1050 PRINT "IS DECIDING HOW TO GET OUT OF THIS ALIVE";: RETURN
1055 PRINT "IS DECIDING HOW TO DEFEAT YOU": RETURN
1060 POKE 216,0
1105 HH = 0: ONERR GOTO 2385
1110 SCALE= 1: ROT= 0: HCOLOR= 3
1112 IF SP = 2 AND HU = 1 THEN 940
1114 IF SP = 1 AND HU = 2 THEN 940
1115 IF SP = 2 THEN 1800
1120 GOTO 1770
1165 IF X <0 THEN X = 0
1170 IF X >TC THEN X = TC
1175 IF Y <0 THEN Y = 0
1180 IF Y >TD THEN Y = TD
1185 RETURN
1190 XDRAW 68 AT X *TB +4,Y *TB +10: RETURN
1195 XDRAW 68 AT X *TB +3,Y *TB +7: RETURN
1200 XDRAW 67 AT X *TB +1,Y *TB +5: RETURN
1205 X = A1%(25,MC):Y = A1%(26,MC): FOR I = 34 TO 39: IF A1%(I,MC) = 0 OR A1%(I,MC) = 10 THEN 1215
1210 ON A1%(I,MC) GOSUB 180,185,190,195,200,205,210,215: GOSUB 1165: IF A1%(33,MC) = 5 THEN 1215
1212 ON TE GOSUB 1190,1195,1200
1215 NEXT I: IF A1%(33,MC) = 5 THEN A1%(33,MC) = 5: ON TE GOSUB 1190,1195,1200
1217 RETURN
1220 VTAB 24: HTAB 10: PRINT "HIT ANY KEY TO CONTINUE";: GET R$: RETURN
1225 SD = -1: FOR I = 0 TO E2 -1: IF ASC(R$) = A%(0,I) THEN SD = I
1230 NEXT I: RETURN
1235 SD = -1: FOR I = 0 TO B -1: IF ASC(R$) = P%(0,I) THEN SD = I
1240 NEXT I: RETURN
1245 SD = 1:SE = 1: VTAB 21: HTAB 12: PRINT NA$(MC): VTAB 22: HTAB 12: PRINT "CAN MOVE ";MV;" SQUARES": VTAB 23: HTAB 12: PRINT "WHICH DIRECTION(0=STOP)?": VTAB 24: HTAB 12: PRINT "MOVES-";
1250 X = A1%(25,MC):Y = A1%(26,MC)
1255 VTAB 24: HTAB 18 +SE: GET R$: IF ASC(R$) <48 OR ASC(R$) >56 THEN 1255
1260 IF R$ = "0" THEN 1275
1265 IF SD >1 THEN GOSUB 1165: ON TE GOSUB 1190,1195,1200
1270 SH = VAL(R$):A1%(SD +33,MC) = SH: VTAB 24: HTAB 18 +SE: PRINT R$;"-";:SD = SD +1:SE = SE +2: ON SH GOSUB 180,185,190,195,200,205,210,215: GOSUB 1165: ON TE GOSUB 1190,1195,1200: IF SD < = MV THEN 1255
1275 IF A1%(34,MC) = 0 THEN 1290
1280 IF SB = 8 THEN 1290
1285 ON TE GOSUB 1190,1195,1200
1290 RETURN
1295 MV = A1%(8,MC): IF A1%(27,MC) = 1 THEN MV = 1
1300 GOSUB 2070: GOSUB 1245
1305 SD = 0:X = A1%(25,MC):Y = A1%(26,MC): GOSUB 2070: VTAB 21: HTAB 12: PRINT NA$(MC): VTAB 22: HTAB 12: PRINT "MOVES-": FOR I = 34 TO 39: IF A1%(I,MC) = 0 OR A1%(I,MC) = 10 THEN 1320
1310 SD = SD +2: VTAB 22: HTAB 18 +SD: PRINT A1%(I,MC);"-"
1315 ON A1%(I,MC) GOSUB 180,185,190,195,200,205,210,215: GOSUB 1165: ON TE GOSUB 1190,1195,1200
1320 NEXT I:SD = 0: FOR I = 34 TO 39: IF A1%(I,MC) = 0 OR A1%(I,MC) = 10 THEN 1330
1325 SD = SD +1
1330 NEXT I: IF SA < >7 THEN A1%(40,MC) = SD: GOSUB 1220: GOSUB 1205
1335 RETURN
1340 MV = INT((A1%(8,MC)/2) +.5): IF MV <1 THEN MV = 1
1345 IF A1%(27,MC) = 1 THEN MV = 1
1350 GOSUB 2070: GOSUB 1245
1355 SD = 0:X = A1%(25,MC):Y = A1%(26,MC): GOSUB 2070: VTAB 21: HTAB 12: PRINT NA$(MC): VTAB 22: HTAB 12: PRINT "MOVES-": FOR I = 34 TO 39: IF A1%(I,MC) = 0 OR A1%(I,MC) = 10 THEN 1370
1360 SD = SD +2: VTAB 22: HTAB 18 +SD: PRINT A1%(I,MC);"-"
1365 ON A1%(I,MC) GOSUB 180,185,190,195,200,205,210,215: GOSUB 1165: ON TE GOSUB 1190,1195,1200
1370 NEXT I: VTAB 23: HTAB 12: PRINT "DODGING":SD = 0: FOR I = 34 TO 39: IF A1%(I,MC) = 0 OR A1%(I,MC) = 10 THEN 1380
1375 SD = SD +1
1380 NEXT I: IF SA < >7 THEN A1%(41,MC) = 3: GOSUB 1220: GOSUB 1205
1385 RETURN
1390 MV = INT((A1%(8,MC)/2) +.5): IF MV <1 THEN MV = 1
1395 IF A1%(27,MC) = 1 THEN MV = 1
1400 GOSUB 2070: GOSUB 1245:A1%(SD +33,MC) = 10: GOSUB 2055: IF A1%(34,MC) = 10 THEN 1410
1405 ON TE GOSUB 1190,1195,1200
1410 SD = 0:X = A1%(25,MC):Y = A1%(26,MC): GOSUB 2070: VTAB 21: HTAB 12: PRINT NA$(MC): VTAB 22: HTAB 12: PRINT "MOVES-": FOR I = 34 TO 39: IF A1%(I,MC) = 0 OR A1%(I,MC) = 10 THEN 1425
1415 SD = SD +2: VTAB 22: HTAB 18 +SD: PRINT A1%(I,MC);"-"
1420 ON A1%(I,MC) GOSUB 180,185,190,195,200,205,210,215: GOSUB 1165: ON TE GOSUB 1190,1195,1200
1425 NEXT I
1430 ON SC GOSUB 2045,2035: VTAB 23: HTAB 12: PRINT "AND ATTACKS-";A$:SD = 0: FOR I = 34 TO 39: IF A1%(I,MC) = 0 OR A1%(I,MC) = 10 THEN 1440
1435 SD = SD +1
1440 NEXT I: IF SA < >7 THEN A1%(40,MC) = SD: GOSUB 1220: GOSUB 1205
1445 RETURN
1450 HOME : VTAB 21: PRINT NA$(MC): PRINT "ATTACK WHO?": PRINT "ENTER LETTER-";: GET R$:SD = -1: ON SC GOSUB 2025,2015: IF SD = -1 THEN GOSUB 2290: GOTO 1465
1455 A1%(28,MC) = 1:A1%(33,MC) = SG
1460 ON SC GOSUB 2045,2035: HOME : VTAB 21: PRINT NA$(MC): PRINT "ATTACKS-";A$: IF SA < >7 THEN GOSUB 1220
1465 RETURN
1470 IF A1%(22,MC) <9 THEN GOSUB 2305: GOTO 1485
1475 A1%(31,MC) = 1
1480 HOME : VTAB 21: PRINT NA$(MC): PRINT "LOADS WEAPON": IF SA < >7 THEN GOSUB 1220
1485 RETURN
1490 A1%(29,MC) = 1
1495 HOME : VTAB 21: PRINT NA$(MC): PRINT "CHANGES WEAPON": IF SA < >7 THEN GOSUB 1220
1500 RETURN
1505 A1%(32,MC) = 1
1510 HOME : VTAB 21: PRINT NA$(MC): PRINT "RESTS": IF SA < >7 THEN GOSUB 1220
1515 RETURN
1520 IF A1%(22,MC) < >11 THEN GOSUB 2320: GOTO 1538
1525 A1%(33,MC) = 5: HOME : GOSUB 2070:SE = 0:X = A1%(25,MC):Y = A1%(26,MC): GOSUB 2080
1530 HOME :X = A1%(25,MC):Y = A1%(26,MC): VTAB 21: HTAB 1: PRINT NA$(MC);" FIRES HEAT RAY GUN": FOR I = 34 TO 39: IF A1%(I,MC) = 0 THEN 1534
1532 ON A1%(I,MC) GOSUB 180,185,190,195,200,205,210,215: GOSUB 1165: IF SA < >7 THEN SG = 1: ON TE GOSUB 1190,1195,1200
1534 NEXT I: ON TE GOSUB 1190,1195,1200: IF SA < >7 THEN GOSUB 1220
1536 ON TE GOSUB 1190,1195,1200: IF SA = 7 THEN SA = 7: ON TE GOSUB 1190,1195,1200
1538 RETURN
1540 HOME : VTAB 21: PRINT NA$(MC): PRINT "NO OPTION": RETURN
1545 HOME : VTAB 21: HTAB 1: PRINT N$(SD);"-";SP$(P%(43,SD));"-";WS$(P%(21,SD))
1550 PRINT "ST-";P%(5,SD);" DX-";P%(6,SD);" EN-";P%(7,SD);" SP-";P%(8,SD)
1555 PRINT OB$(P%(22,SD));: IF P%(22,SD) <11 THEN PRINT "(";P%(P%(22,SD) +10,SD);") ";
1560 IF P%(24,SD) >0 THEN PRINT OB$(P%(24,SD) +11)
1565 VTAB 24: HTAB 1: PRINT "'ESC'=QUIT,LETTER=VIEW";: GET R$: IF ASC(R$) = 27 THEN 1580
1570 GOSUB 1235: IF SD = -1 THEN 1565
1575 GOTO 1545
1580 RETURN
1585 HOME : VTAB 21: PRINT NB$(SD);"-";SP$(A%(43,SD));"-";WS$(A%(21,SD))
1590 PRINT "ST-";A%(5,SD);" DX-";A%(6,SD);" EN-";A%(7,SD);" SP-";A%(8,SD)
1595 PRINT OB$(A%(22,SD));: IF A%(22,SD) <11 THEN PRINT "(";A%(A%(22,SD) +10,SD);") ";
1600 IF A%(24,SD) >0 THEN PRINT OB$(A%(24,SD) +11)
1605 VTAB 24: HTAB 1: PRINT "'ESC'=QUIT, LETTER=VIEW";: GET R$: IF ASC(R$) = 27 THEN 1620
1610 GOSUB 1225: IF SD = -1 THEN 1605
1615 GOTO 1585
1620 RETURN
1625 HOME : VTAB 21: PRINT NA$(SD);"-";SP$(A1%(43,SD));"-";WS$(A1%(21,SD))
1630 PRINT "ST-";A1%(5,SD);" DX-";A1%(6,SD);" EN-";A1%(7,SD);" SP-";A1%(8,SD)
1635 PRINT OB$(A1%(22,SD));: IF A1%(22,SD) <11 THEN PRINT "(";A1%(A1%(22,SD) +10,SD);")";
1640 IF A1%(42,SD) >0 AND A1%(22,SD) >8 THEN PRINT "-LOADED"
1645 IF A1%(42,SD) = 0 AND A1%(22,SD) >8 THEN PRINT "-UNLOAD"
1650 VTAB 24: HTAB 1: PRINT OB$(A1%(23,SD));: IF A1%(23,SD) <11 THEN PRINT "(";A1%(A1%(23,SD) +10,SD);")";
1655 IF A1%(24,SD) >0 THEN PRINT " "; LEFT$(OB$(A1%(24,SD) +11),9);
1660 VTAB 23: HTAB 32: PRINT "ESC=Q";: VTAB 24: HTAB 31: PRINT "LET=VIEW";: VTAB 24: HTAB 39: GET R$: IF ASC(R$) = 27 THEN 1675
1665 ON SC GOSUB 1235,1225: IF SD = -1 THEN 1660
1670 GOTO 1625
1675 RETURN
1680 FOR I = 28 TO 41:A1%(I,MC) = 0: NEXT I: RETURN
1685 GOSUB 2345:SF = 1: IF HU = 1 THEN SF = 2:SC = 2
1690 IF SP >0 THEN SF = 3
1695 RETURN
1700 GOSUB 2350:SF = 1: IF HU = 2 THEN SF = 2:SC = 1
1705 IF HU = 2 AND SP = 2 THEN SF = 1
1710 IF HU = 1 THEN SF = 3
1715 RETURN
1720 SF = 0: IF A1%(31,MC) = 1 THEN SF = 1
1725 IF A1%(29,MC) = 1 THEN SF = 2
1730 IF A1%(32,MC) = 1 THEN SF = 3
1735 IF A1%(28,MC) = 1 THEN SF = 4
1740 IF A1%(33,MC) = 5 THEN SF = 5: GOTO 1765
1745 FOR I = 34 TO 39: IF A1%(I,MC) >0 THEN SF = 6
1750 IF A1%(I,MC) = 10 THEN SF = 8
1755 NEXT I: IF A1%(41,MC) >0 THEN SF = 7
1760 IF SF = 0 THEN SF = 9
1765 RETURN
1770 SC = 1: IF HU = 2 THEN 1800
1775 GOSUB 2325
1780 GOSUB 2235: ON SA GOSUB 1860,1865,1880,1945,1885,1890,1895,1920
1785 IF SA = 1 THEN 1835
1790 IF SA = 3 THEN GOSUB 3000: GOSUB 1685: ON SF GOTO 1800,1845,1825
1795 GOTO 1780
1800 SC = 2: GOSUB 2330
1805 GOSUB 2235: ON SA GOSUB 1860,1865,1880,1945,1885,1890,1895,1920
1810 IF SA = 1 THEN 1835
1815 IF SA = 3 THEN GOSUB 3000: GOSUB 1700: ON SF GOTO 1825,1845,1770
1820 GOTO 1805
1825 TN = TN +1:HH = 1
1830 HOME : VTAB 23: HTAB 12: PRINT "START TURN# ";TN: & READ "IDX": & END : & GOTO "RES"
1835 TN = TN +1:HH = 2
1840 HOME : VTAB 23: HTAB 12: PRINT "END OF COMBAT": & READ "IDX": & END : & GOTO "RESULTS"
1845 HH = 3
1850 HOME : VTAB 23: PRINT "TEAM# ";SC;"-";S1$(SC): PRINT "COMBAT OPTION PHASE"
1855 GOTO 940
1860 WO = SC: RETURN
1865 HH = 4: GOSUB 1955
1870 IF SF = 1 THEN GOSUB 1975: IF R$ < >"" THEN 2355
1872 IF SF = 1 THEN 1880
1875 END
1880 RETURN
1885 GOSUB 2010: ON SC GOSUB 1585,1545: RETURN
1890 GOSUB 2005: GOSUB 1625: RETURN
1895 GOSUB 1990: IF SD = -1 THEN 1915
1900 GOSUB 1720: ON SF GOSUB 1480,1495,1510,1460,1530,1305,1355,1410,1540: VTAB 24: HTAB 10: PRINT "'ESC'=QUIT,LETTER=REVIEW";: GET R$: IF ASC(R$) = 27 THEN GOSUB 1205: GOTO 1915
1905 HOME : GOSUB 1205:SD = -1: GOSUB 1995: IF SD = -1 THEN 1915
1910 MC = SD: GOTO 1900
1915 RETURN
1920 GOSUB 1980: IF SD = -1 THEN 1940
1925 GOSUB 1680: IF A1%(21,MC) >0 THEN GOSUB 2300: GOTO 1940
1930 GOSUB 2180: IF A1%(7,MC) < = 0 AND SB < >3 THEN GOSUB 2315: GOTO 1940
1935 ON SB GOSUB 1470,1490,1505,1450,1520,1295,1340,1390
1940 RETURN
1945 HOME : VTAB 21: HTAB 1: PRINT "1-TEAM#1-PLAYER CONTROL": PRINT "2-TEAM#2-PLAYER CONTROL": PRINT "3-BOTH TEAMS-PLAYER CONTROL": INVERSE : PRINT "COMMAND MODE-ENTER NUMBER";: GET R$: IF ASC(R$) <49 OR ASC(R$) >51 THEN 1945
1950 HU = VAL(R$): NORMAL : PRINT R$: RETURN
1955 HOME : VTAB 21: PRINT "DO YOU WANT TO SAVE THIS GAME(Y/N)?": GET R$:SF = 0: IF R$ = "Y" THEN SF = 1
1960 IF R$ = "N" THEN SF = 2
1965 IF SF = 0 THEN 1955
1970 RETURN
1975 HOME : VTAB 21: PRINT "PLEASE INSERT A SSI SAVE DISK": PRINT "HIT 'RET' TO CANCEL, '0' FOR CATALOG":R$ = "": INPUT "ENTER NAME FOR GAME-";R$: IF R$ = "" THEN 1979
1976 IF R$ = "0" THEN PRINT : TEXT : HOME : & C AT : VTAB 24: HTAB 1: PRINT "HIT ANY KEY TO CONTINUE";: GET R$: PRINT : POKE -16304,0: GOTO 1975
1979 RETURN
1980 HOME : VTAB 21: PRINT "CHOOSE OPTIONS FOR WHO?": PRINT "ENTER LETTER-";: GET R$:SD = -1: ON SC GOSUB 2015,2025: IF SD = -1 THEN GOSUB 2290: GOTO 1985
1982 MC = SD
1985 RETURN
1990 HOME : VTAB 21: HTAB 1: PRINT "WHOSE OPTIONS DO YOU WANT TO REVIEW?": PRINT "ENTER LETTER-";: GET R$:SD = -1: GOSUB 1995:MC = SD: RETURN
1995 FOR J = 0 TO B1 -1: IF ASC(R$) = A1%(0,J) THEN SD = J
2000 NEXT J: RETURN
2005 HOME : VTAB 21: PRINT "WHOSE PROFILE?": PRINT "ENTER LETTER-";: GET R$:SD = 0: GOSUB 1995: RETURN
2010 HOME : VTAB 21: PRINT "WHICH ENEMY?": PRINT "ENTER LETTER-";: GET R$:SD = 0: ON SC GOSUB 2025,2015: RETURN
2015 FOR J = 0 TO B -1: IF ASC(R$) = P%(0,J) THEN SD = J:SG = P%(0,J)
2020 NEXT J: RETURN
2025 FOR J = 0 TO E2 -1: IF ASC(R$) = A%(0,J) THEN SD = J:SG = A%(0,J)
2030 NEXT J: RETURN
2035 FOR I = 0 TO B -1: IF A1%(33,MC) = P%(0,I) THEN A$ = N$(I)
2040 NEXT I: RETURN
2045 FOR I = 0 TO E2 -1: IF A1%(33,MC) = A%(0,I) THEN A$ = NB$(I)
2050 NEXT I: RETURN
2055 HOME : VTAB 21: PRINT NA$(MC): PRINT "ATTACKS WHO?": PRINT "ENTER LETTER-";: GET R$:SD = -1: ON SC GOSUB 2025,2015: IF SD = -1 THEN GOSUB 2290: GOTO 2055
2060 A1%(33,MC) = SG
2065 RETURN
2070 HOME : VTAB 21: PRINT "8";: HTAB 3: PRINT "1";: HTAB 5: PRINT "2": PRINT "7";: HTAB 3: PRINT "X";: HTAB 5: PRINT "3": PRINT "6";: HTAB 3: PRINT "5";: HTAB 5: PRINT "4"
2075 RETURN
2080 VTAB 21: HTAB 12: PRINT "MOVE CURSOR TO TARGET SQUARE": VTAB 22: HTAB 10: PRINT "HIT 0 TO SELECT TARGET": VTAB 23: HTAB 10: PRINT "ENTER NUMBER-";: GET R$: IF ASC(R$) <48 OR ASC(R$) >56 THEN 2080
2082 SE = SE +1:A1%(33 +SE,MC) = VAL(R$): IF A1%(33 +SE,MC) = 0 THEN 2088
2084 ON A1%(33 +SE,MC) GOSUB 180,185,190,195,200,205,210,215: GOSUB 1165: ON TE GOSUB 1190,1195,1200
2086 IF SE <6 THEN 2080
2088 RETURN
2090 SF = 0: IF A1%(22,MC) <7 THEN SF = 1
2095 RETURN
2100 SF = 0: IF A1%(22,MC) < >11 THEN SF = 1
2105 RETURN
2110 SF = 0: IF A1%(7,MC) < = 0 THEN SF = 1
2115 RETURN
2120 SF = 0: IF A1%(21,MC) >0 THEN SF = 1
2125 RETURN
2130 SD = 0: FOR J = 0 TO E2 -1: IF A1%(33,MC) = A%(0,J) THEN SD = J
2135 NEXT J: RETURN
2140 SD = 0: FOR J = 0 TO B -1: IF A1%(33,MC) = P%(0,J) THEN SD = J
2145 NEXT J: RETURN
2150 HOME : VTAB 21: PRINT "DO YOU WANT TO SURRENDER(Y/N)?";: GET R$: PRINT : IF R$ = "Y" THEN SA = 1
2155 RETURN
2160 HOME : VTAB 21: PRINT "DO YOU WANT TO QUIT(Y/N)?";: GET R$: PRINT : IF R$ = "Y" THEN SA = 2
2165 RETURN
2170 HOME : VTAB 21: PRINT "DO YOU WANT TO END OPTION PHASE(Y/N)?";: GET R$: PRINT : IF R$ = "Y" THEN SA = 3
2175 RETURN
2180 SB = 0: HOME : VTAB 21: PRINT NA$(MC);" CHOOSE OPTIONS:": PRINT "(L)OAD,(C)HANGE WEAPON,(R)EST,": PRINT "(S)TANDING ATTACK,(F)IRE HEAT RAY GUN,": PRINT "(M)OVE,MOVE & (D)ODGE,MOVE & (A)TTACK?";: GET R$
2185 IF R$ = "L" THEN SB = 1
2190 IF R$ = "C" THEN SB = 2
2195 IF R$ = "R" THEN SB = 3
2200 IF R$ = "S" THEN SB = 4
2205 IF R$ = "F" THEN SB = 5
2210 IF R$ = "M" THEN SB = 6
2215 IF R$ = "D" THEN SB = 7
2220 IF R$ = "A" THEN SB = 8
2225 IF SB = 0 THEN 2180
2230 RETURN
2235 SA = 0: HOME : VTAB 21: PRINT "TEAM# ";SC;"--"; LEFT$(S1$(SC),15);: HTAB 27: PRINT "RANGE: ";RG$(TE): PRINT "(S)URRENDER, (M)ODE, (Q)UIT/SAVE": PRINT "(C)HOOSE, (R)EVIEW, (E)ND OPTIONS": PRINT "(V)IEW ENEMY, (P)ROFILE";: GET R$
2240 IF R$ = "S" THEN GOSUB 2150
2245 IF R$ = "Q" THEN GOSUB 2160
2250 IF R$ = "E" THEN GOSUB 2170
2255 IF R$ = "M" THEN SA = 4
2260 IF R$ = "V" THEN SA = 5
2265 IF R$ = "P" THEN SA = 6
2270 IF R$ = "R" THEN SA = 7
2275 IF R$ = "C" THEN SA = 8
2280 IF SA = 0 THEN 2235
2285 RETURN
2290 HOME : VTAB 21: PRINT "NO ONE HERE BY THAT NAME": FOR K = 1 TO 1500: NEXT K: RETURN
2295 HOME : VTAB 21: PRINT "NOT A PROPER OPTION": FOR K = 1 TO 1500: NEXT K: RETURN
2300 HOME : VTAB 21: PRINT NA$(MC);" IS TOO HURT TO DO ANYTHING": FOR K = 1 TO 1500: NEXT K: RETURN
2305 HOME : VTAB 21: PRINT "YOU CAN'T LOAD THAT": FOR K = 1 TO 1500: NEXT K: RETURN
2310 HOME : VTAB 21: PRINT "NOT A PROPER DIRECTION": FOR K = 1 TO 1500: NEXT K: RETURN
2315 HOME : VTAB 21: PRINT NA$(MC);" IS TOO TIRED": PRINT "TO DO ANYTHING EXCEPT REST": FOR K = 1 TO 1500: NEXT K: RETURN
2320 HOME : VTAB 21: PRINT NA$(MC);" DOESN'T HAVE A HEAT RAY GUN": FOR K = 1 TO 1500: NEXT K: RETURN
2325 FOR I = 0 TO B -1: FOR J = 0 TO 44:A1%(J,I) = P%(J,I): NEXT J:NA$(I) = N$(I): NEXT I:B1 = B: RETURN
2330 FOR I = 0 TO E2 -1: FOR J = 0 TO 44:A1%(J,I) = A%(J,I): NEXT J:NA$(I) = NB$(I): NEXT I:B1 = E2: RETURN
2335 B2 = E2: RETURN
2340 B2 = B: RETURN
2345 FOR I = 0 TO B -1: FOR J = 28 TO 41:P%(J,I) = A1%(J,I): NEXT J,I: RETURN
2350 FOR I = 0 TO E2 -1: FOR J = 28 TO 41:A%(J,I) = A1%(J,I): NEXT J,I: RETURN
2355 & DEF R$,12: & PRINT R$
2360 PRINT GA: PRINT TE: PRINT TB: PRINT TC: PRINT TD: PRINT TP: PRINT HU: PRINT TN: PRINT B: PRINT E2: PRINT TX: PRINT TY
2365 PRINT S1$(1): PRINT S1$(2): PRINT GM
2370 FOR I = 0 TO B -1: FOR J = 0 TO 44: PRINT P%(J,I): NEXT J: PRINT N$(I): NEXT I: FOR I = 0 TO E2 -1: FOR J = 0 TO 44: PRINT A%(J,I): NEXT J: PRINT NB$(I): NEXT I
2375 FOR I = 0 TO TC: FOR J = 0 TO TD: PRINT MP%(I,J): NEXT J,I
2380 & END : ON SC GOTO 1770,1800
2385 DK = PEEK(222):DK$ = "DOS ERROR": IF DK >15 THEN DK$ = "ERROR-NOT DOS"
2390 HOME : VTAB 21: HTAB 1: PRINT "THERE HAS BEEN A ";DK$: PRINT "PLEASE CHECK YOUR SET UP AND TRY AGIAN";
2395 GOSUB 2410
2400 ON HH GOTO 1830,1840,1850,1870
2405 RESUME
2410 VTAB 24: HTAB 1: PRINT "HIT ANY KEY TO CONTINUE";: GET I$: PRINT : RETURN
3000 FOR K = 0 TO B1 -1: IF A1%(21,K) >0 THEN 3010
3005 MC = K: GOSUB 1720: IF SF = 9 THEN A1%(32,K) = 1
3010 NEXT K: RETURN
Text found in Galactic_Gladiator_19xx_SSI_RDOS.dsk/PLACE.bas:
6 HH = 0:DK = 0: ONERR GOTO 10000
10 GOTO 3000
100 FOR I = 0 TO 280 STEP 20: IF I = 280 THEN I = 279
102 HPLOT I,0 TO I,159: NEXT I: FOR I = 0 TO 160 STEP 20: IF I = 160 THEN I = 159
104 HPLOT 0,I TO 279,I: NEXT I: RETURN
106 FOR I = 2 TO 274 STEP 16: HPLOT I,0 TO I,159: NEXT I: FOR I = 0 TO 160 STEP 16: IF I = 160 THEN I = 159
108 HPLOT 2,I TO 274,I:: NEXT I: RETURN
110 FOR I = 0 TO 280 STEP 10: IF I = 280 THEN I = 279
112 HPLOT I,0 TO I,159: NEXT I: FOR I = 0 TO 160 STEP 10: IF I = 160 THEN I = 159
114 HPLOT 0,I TO 279,I: NEXT I: RETURN
120 HCOLOR= 5: DRAW MB%(1,0) AT SD +MB%(1,1),SF +MB%(1,2): RETURN
122 HCOLOR= 6: DRAW MB%(2,0) AT SD +MB%(2,1),SF +MB%(2,2): RETURN
124 HCOLOR= 1: DRAW MB%(3,0) AT SD +MB%(3,1),SF +MB%(3,2): RETURN
150 HCOLOR= 3: IF SH = 280 THEN SH = 279
155 IF SJ = 160 THEN SJ = 159
160 HPLOT SA,SB TO SH,SB TO SH,SJ TO SA,SJ TO SA,SB: RETURN
170 HCOLOR= 3:SH = 279:SJ = 0: IF TE = 2 THEN SJ = 2:SH = 274
175 HPLOT SJ,0 TO SJ,159 TO SH,159 TO SH,0 TO SJ,0: RETURN
200 HOME : VTAB 21: PRINT "WHOSE PROFILE?": PRINT "ENTER LETTER-";: GET R$:SD = 0
205 FOR J = 0 TO B -1: IF ASC(R$) = P%(0,J) THEN SD = J
210 NEXT J
215 HOME : VTAB 21: PRINT N$(SD);"-";SP$(P%(43,SD));"-";WS$(P%(21,SD))
220 PRINT "ST-";P%(5,SD);" DX-";P%(6,SD);" EN-";P%(7,SD);" SP-";P%(8,SD)
225 PRINT OB$(P%(22,SD));: IF P%(22,SD) <11 THEN PRINT "(";P%(P%(22,SD) +10,SD);")";
230 IF P%(42,SD) >0 AND P%(22,SD) >8 THEN PRINT "-LOADED"
235 IF P%(42,SD) = 0 AND P%(22,SD) >8 THEN PRINT "-UNLOAD"
240 VTAB 24: HTAB 1: PRINT OB$(P%(23,SD));: IF P%(23,SD) <11 THEN PRINT "(";P%(P%(23,SD) +10,SD);")";
245 IF P%(24,SD) >0 THEN PRINT " "; LEFT$(OB$(P%(24,SD) +11),9);
250 VTAB 23: HTAB 32: PRINT "ESC=Q";: VTAB 24: HTAB 31: PRINT "LET=VIEW";: VTAB 24: HTAB 39: GET R$: IF ASC(R$) = 27 THEN 260
255 GOTO 205
260 RETURN
300 HOME : VTAB 21: PRINT "WHOSE PROFILE?": PRINT "ENTER LETTER-";: GET R$:SD = 0
305 FOR J = 0 TO E2 -1: IF ASC(R$) = A%(0,J) THEN SD = J
310 NEXT J
315 HOME : VTAB 21: PRINT NB$(SD);"-";SP$(A%(43,SD));"-";WS$(A%(21,SD))
320 PRINT "ST-";A%(5,SD);" DX-";A%(6,SD);" EN-";A%(7,SD);" SP-";A%(8,SD)
325 PRINT OB$(A%(22,SD));: IF A%(22,SD) <11 THEN PRINT "(";A%(A%(22,SD) +10,SD);")";
330 IF A%(42,SD) >0 AND A%(22,SD) >8 THEN PRINT "-LOADED"
335 IF A%(42,SD) = 0 AND A%(22,SD) >8 THEN PRINT "-UNLOAD"
340 VTAB 24: HTAB 1: PRINT OB$(A%(23,SD));: IF A%(23,SD) <11 THEN PRINT "(";A%(A%(23,SD) +10,SD);")";
345 IF A%(24,SD) >0 THEN PRINT " "; LEFT$(OB$(A%(24,SD) +11),9);
350 VTAB 23: HTAB 32: PRINT "ESC=Q";: VTAB 24: HTAB 31: PRINT "LET=VIEW";: VTAB 24: HTAB 39: GET R$: IF ASC(R$) = 27 THEN 360
355 GOTO 305
360 RETURN
400 FOR I = 0 TO TC: FOR J = 0 TO TD:SD = I *TB:SF = J *TB: ON MP%(I,J) GOSUB 120,122,124
405 NEXT J,I: RETURN
500 SA = 0:SB = 0:SP = 0: FOR I = 0 TO B -1: IF SA >P%(9,I) THEN 510
505 SA = P%(9,I)
510 NEXT I: FOR I = 0 TO E2 -1: IF SB >A%(9,I) THEN 520
515 SB = A%(9,I)
520 NEXT I
525 SG = ABS(SA -SB) *2: IF SG >40 THEN SG = 40
530 IF INT(100 * RND(1) +1) -SG >50 THEN SM = 3: GOTO 540
535 SG = (SA -SB) *2: IF SG >40 THEN SG = 40
536 IF SG < -40 THEN SG = -40
537 SF = INT(100 * RND(1) +1): IF SF +SG >50 THEN SP = 1:SM = 1: GOTO 540
538 SP = 2:SM = 2
540 RETURN
600 SA = 0: HOME : VTAB 21: PRINT "PLACEMENT PHASE": PRINT "DO YOU WANT THE (E)XPERIENCE RULE OR": PRINT "(C)HOOSE INITIAL PLACEMENT?";: GET R$: IF R$ = "E" THEN SA = 2
605 IF R$ = "C" THEN SA = 1
610 IF SA = 0 THEN 600
615 RETURN
700 GOSUB 500
705 HOME : VTAB 21: IF SM = 3 THEN PRINT "NO SURPRISE"
710 IF SM = 1 THEN PRINT "TEAM # 1 ";S1$(1): PRINT "HAS SURPRISE": IF HU = 2 THEN SM = 3
715 IF SM = 2 THEN PRINT "TEAM # 2 ";S1$(2): PRINT "HAS SURPRISE": IF HU = 1 THEN SM = 3
720 FOR I1 = 1 TO 2000: NEXT I1
725 ON SM GOSUB 870,875,880: RETURN
800 GOSUB 2200: GOSUB 2220: GOSUB 2240: RETURN
820 GOSUB 2200: GOSUB 1595: GOSUB 2220: GOSUB 2240: RETURN
840 GOSUB 2220: GOSUB 2240: GOSUB 1640: RETURN
860 GOSUB 2200: GOSUB 1595: HCOLOR= 0: GOSUB 2200: HCOLOR= 3: GOSUB 2220: GOSUB 2240: GOSUB 1640: RETURN
870 GOSUB 2200: GOSUB 2220: GOSUB 2240: GOSUB 1595: RETURN
875 GOSUB 2200: GOSUB 2220: GOSUB 2240: GOSUB 1640: RETURN
880 GOSUB 2200: GOSUB 2220: GOSUB 2240: RETURN
900 HOME : VTAB 21: PRINT "INITIAL PLACEMENT PHASE": PRINT "1-PLACE TEAM# 1";: HTAB 20: PRINT "2-PLACE TEAM# 2": PRINT "3-RANDOM";: HTAB 20: PRINT "4-PLACE BOTH"
905 VTAB 24: HTAB 1: PRINT "ENTER NUMBER-";: GET R$: IF ASC(R$) <49 OR ASC(R$) >52 THEN 905
910 SM = VAL(R$): PRINT R$: RETURN
1000 HGR : ROT= 0: SCALE= 1: HCOLOR= 3: IF GM = 1 THEN GOSUB 170: GOTO 1004
1002 ON TE GOSUB 100,106,110
1004 GOSUB 2180:SA = 0: GOSUB 400: IF GA <3 THEN GOSUB 3100
1005 GOSUB 600: HCOLOR= 3: IF SA = 1 THEN GOSUB 900: ON SM GOSUB 820,840,800,860: GOTO 1015
1010 HCOLOR= 3: GOSUB 700
1015 GOSUB 2200: GOSUB 2240: HOME : VTAB 23: PRINT "START COMBAT"
1020 HH = 1
1025 & READ "IDX": & END : & GOTO "OPTIONS-C"
1130 SF = 0:SA = VAL(R$):X = P%(25,MC):Y = P%(26,MC): IF SA = 1 OR SA = 2 OR SA = 8 THEN Y = Y -1
1135 IF SA = 2 OR SA = 3 OR SA = 4 THEN X = X +1
1140 IF SA = 4 OR SA = 5 OR SA = 6 THEN Y = Y +1
1145 IF SA = 6 OR SA = 7 OR SA = 8 THEN X = X -1
1150 IF X TC OR Y <0 OR Y >TD THEN SF = 1: GOTO 1160
1155 IF MP%(X,Y) >0 THEN SF = 2
1157 IF MA%(X,Y) < >0 THEN SF = 3
1160 RETURN
1165 SA = P%(25,MC) *TB:SB = P%(26,MC) *TB: DRAW P%(0,MC) -64 AT SA +MB%(4,1),SB +MB%(4,2): IF P%(24,MC) >0 AND TE < >3 THEN DRAW P%(24,MC) +37 AT SA +MB%(5,1),SB +MB%(5,2)
1170 IF P%(22,MC) >0 AND TE < >3 THEN DRAW P%(22,MC) +26 AT SA +MB%(6,1),SB +MB%(6,2)
1175 RETURN
1190 SF = 0:SA = VAL(R$):X = A%(25,MC):Y = A%(26,MC): IF SA = 1 OR SA = 2 OR SA = 8 THEN Y = Y -1
1195 IF SA = 2 OR SA = 3 OR SA = 4 THEN X = X +1
1200 IF SA = 4 OR SA = 5 OR SA = 6 THEN Y = Y +1
1205 IF SA = 6 OR SA = 7 OR SA = 8 THEN X = X -1
1210 IF X <0 OR X >6 OR Y <0 OR Y >TD THEN SF = 1: GOTO 1220
1215 IF MP%(X,Y) >0 THEN SF = 2
1217 IF MA%(X,Y) < >0 THEN SF = 3
1220 RETURN
1225 SA = A%(25,MC) *TB:SB = A%(26,MC) *TB: DRAW MB%(7,0) AT SA +MB%(7,1),SB +MB%(7,2): HCOLOR= 0: DRAW A%(0,MC) -64 AT SA +MB%(8,1),SB +MB%(8,2): IF ER = 0 THEN HCOLOR= 3
1227 IF TE = 3 AND GM = 0 THEN SH = SA +10:SJ = SB +10: GOSUB 150
1230 IF A%(24,MC) >0 AND TE < >3 THEN DRAW A%(24,MC) +50 AT SA +MB%(9,1),SB +MB%(9,2)
1235 IF A%(22,MC) >0 AND TE < >3 THEN DRAW A%(22,MC) +39 AT SA +MB%(10,1),SB +MB%(10,2)
1240 RETURN
1250 RETURN
1275 HOME : VTAB 21: PRINT "NOT A PROPER DIRECTION": FOR I1 = 1 TO 1000: NEXT I1: RETURN
1280 HOME : VTAB 21: PRINT "YOU CAN'T GO ANY FURTHER": PRINT "IN THAT DIRECTION": FOR I1 = 1 TO 1000: NEXT I1: RETURN
1290 HOME : VTAB 21: PRINT "THERE'S A BLOCK THERE!": FOR I1 = 1 TO 1000: NEXT I1: RETURN
1295 HOME : VTAB 21: PRINT "THERE'S SOMEONE IN THAT SQUARE": FOR I1 = 1 TO 1000: NEXT I1: RETURN
1565 SF = 0: IF MP%(X,Y) >0 THEN SF = 1
1570 FOR J = 0 TO B -1: IF P%(25,J) = X AND P%(26,J) = Y THEN SF = 1
1575 NEXT J: RETURN
1580 SF = 0: IF MP%(X,Y) >0 THEN SF = 1
1585 FOR J = 0 TO E2 -1: IF A%(25,J) = X AND A%(26,J) = Y THEN SF = 1
1590 NEXT J: RETURN
1595 HOME : VTAB 21: PRINT "INITIAL PLACEMENT PHASE-TEAM #1": PRINT "(M)OVE, (P)ROFILE, OR (E)ND PHASE?";: GET R$: IF R$ = "E" THEN 1635
1597 IF R$ = "P" THEN GOSUB 200: GOTO 1595
1600 IF R$ < >"M" THEN 1595
1605 HOME : VTAB 21: PRINT "WHO DO YOU WANT TO MOVE?": PRINT "ENTER LETTER-";: GET R$:SA = 0: FOR I = 0 TO B -1: IF ASC(R$) = P%(0,I) THEN SA = 1:MC = I
1610 NEXT I: IF SA = 0 THEN GOSUB 1250: GOTO 1605
1615 HOME : VTAB 21: PRINT "8";: HTAB 3: PRINT "1";: HTAB 5: PRINT "2": PRINT "7";: HTAB 3: PRINT "X";: HTAB 5: PRINT "3": PRINT "6";: HTAB 3: PRINT "5";: HTAB 5: PRINT "4": VTAB 21: HTAB 10: PRINT "WHICH DIRECTION?": VTAB 22: HTAB 10: PRINT "ENTER 0 TO STOP-";: GET R$: IF R$ = "0" THEN 1595
1620 IF ASC(R$) <49 OR ASC(R$) >56 THEN GOSUB 1275: GOTO 1615
1625 GOSUB 1130: IF SF = 1 THEN GOSUB 1280: GOTO 1615
1627 IF SF = 2 THEN GOSUB 1290: GOTO 1615
1628 IF SF = 3 THEN GOSUB 1295: GOTO 1615
1630 HCOLOR= 0: GOSUB 1165:MA%(P%(25,MC),P%(26,MC)) = 0:P%(25,MC) = X:P%(26,MC) = Y:MA%(X,Y) = 1: HCOLOR= 3: GOSUB 1165: GOTO 1615
1635 PRINT : RETURN
1640 HOME : VTAB 21: PRINT "INITIAL PLACEMENT PHASE-TEAM #2": PRINT "(M)OVE, (P)ROFILE, OR (E)ND PHASE?";: GET R$: IF R$ = "E" THEN 1680
1642 IF R$ = "P" THEN GOSUB 300: GOTO 1640
1645 IF R$ < >"M" THEN 1640
1650 HOME : VTAB 21: PRINT "WHO DO YOU WANT TO MOVE?": PRINT "ENTER LETTER-";: GET R$:SA = 0: FOR I = 0 TO E2 -1: IF ASC(R$) = A%(0,I) THEN SA = 1:MC = I
1655 NEXT I: IF SA = 0 THEN GOSUB 1250: GOTO 1650
1660 HOME : VTAB 21: PRINT "8";: HTAB 3: PRINT "1";: HTAB 5: PRINT "2": PRINT "7";: HTAB 3: PRINT "X";: HTAB 5: PRINT "3": PRINT "6";: HTAB 3: PRINT "5";: HTAB 5: PRINT "4": VTAB 21: HTAB 10: PRINT "WHICH DIRECTION?": VTAB 22: HTAB 10: PRINT "ENTER 0 TO STOP-";: GET R$: IF R$ = "0" THEN 1640
1665 IF ASC(R$) <49 OR ASC(R$) >56 THEN GOSUB 1275: GOTO 1660
1670 GOSUB 1190: IF SF = 1 THEN GOSUB 1280: GOTO 1660
1672 IF SF = 2 THEN GOSUB 1290: GOTO 1660
1673 IF SF = 3 THEN GOSUB 1295: GOTO 1660
1675 HCOLOR= 0:ER = 1: GOSUB 1225:MA%(A%(25,MC),A%(26,MC)) = 0:A%(25,MC) = X:A%(26,MC) = Y:MA%(X,Y) = -1: HCOLOR= 3:ER = 0: GOSUB 1225: GOTO 1660
1680 PRINT : RETURN
2180 FOR I = 0 TO B -1
2185 X = TC - INT(6 * RND(1) +1):Y = INT((TD +1) * RND(1)): GOSUB 1565: IF SF = 0 THEN 2195
2190 GOTO 2185
2195 P%(25,I) = X:P%(26,I) = Y:MA%(X,Y) = 1: NEXT I: RETURN
2200 FOR I = 0 TO B -1: IF P%(21,I) >2 THEN 2210
2202 X = P%(25,I) *TB:Y = P%(26,I) *TB: DRAW P%(0,I) -64 AT X +MB%(4,1),Y +MB%(4,2): IF P%(24,I) >0 AND TE <3 THEN DRAW P%(24,I) +37 AT X +MB%(5,1),Y +MB%(5,2)
2205 IF P%(22,I) >0 AND TE < >3 THEN DRAW P%(22,I) +26 AT X +MB%(6,1),Y +MB%(6,2)
2210 NEXT I: RETURN
2220 FOR I = 0 TO E2 -1
2225 X = INT(6 * RND(1)):Y = INT(TD * RND(1)): GOSUB 1580: IF SF = 0 THEN 2235
2230 GOTO 2225
2235 A%(25,I) = X:A%(26,I) = Y:MA%(X,Y) = -1: NEXT I: RETURN
2240 FOR I = 0 TO E2 -1: IF A%(21,I) >2 THEN 2255
2241 X = A%(25,I) *TB:Y = A%(26,I) *TB: DRAW MB%(7,0) AT X +MB%(7,1),Y +MB%(7,2): HCOLOR= 0:HC = 0: DRAW A%(0,I) -64 AT X +MB%(8,1),Y +MB%(8,2)
2242 HCOLOR= 3
2245 IF A%(24,I) >0 AND TE < >3 THEN DRAW A%(24,I) +50 AT X +MB%(9,1),Y +MB%(9,2)
2250 IF A%(22,I) >0 AND TE < >3 THEN DRAW A%(22,I) +39 AT X +MB%(10,1),Y +MB%(10,2)
2255 NEXT I: RETURN
2400 Y = Y -1: IF Y <0 THEN Y = 0
2405 XDRAW 64 AT X *TB +(TB/2),Y *TB +(TB/2): RETURN
2410 Y = Y +1: IF Y >TD THEN Y = TD
2415 XDRAW 64 AT X *TB +(TB/2),Y *TB +(TB/2): RETURN
2420 X = X -1: IF X <0 THEN X = 0
2425 XDRAW 64 AT X *TB +(TB/2),Y *TB +(TB/2): RETURN
2430 X = X +1: IF X >TC THEN X = TC
2435 XDRAW 64 AT X *TB +(TB/2),Y *TB +(TB/2): RETURN
2440 HCOLOR= 5: DRAW MB%(1,0) AT X *TB +MB%(1,1),Y *TB +MB%(1,2):MP%(X,Y) = 1: RETURN
2445 HCOLOR= 6: DRAW MB%(2,0) AT X *TB +MB%(2,1),Y *TB +MB%(2,2):MP%(X,Y) = 2: RETURN
2450 HCOLOR= 1: DRAW MB%(3,0) AT X *TB +MB%(3,1),Y *TB +MB%(3,2):MP%(X,Y) = 3: RETURN
2455 HCOLOR= 0: DRAW MB%(1,0) AT X *TB +MB%(1,1),Y *TB +MB%(1,2): HCOLOR= 3
2457 IF GM = 1 THEN 2472
2460 SF = X *TB: IF TE = 2 THEN SF = SF +2
2462 SG = Y *TB:S1 = SF +TB:S2 = SG +TB: IF S1 = 280 THEN S1 = 279
2465 IF S2 = 160 THEN S2 = 159
2470 HPLOT SF,SG TO S1,SG TO S1,S2 TO SF,S2 TO SF,SG
2472 MP%(X,Y) = 0: RETURN
2475 HOME : VTAB 3: HTAB 8: PRINT "CHOOSE BATTLEFIELD PHASE": VTAB 5: HTAB 1: PRINT "DO YOU WANT:": VTAB 7: PRINT "1-RANDOM BATTLEFIELD": VTAB 9: PRINT "2-STANDARD BATTLEFIELD": VTAB 11: PRINT "3-OLD BATTLEFIELD"
2480 VTAB 13: PRINT "4-CREATE BATTLEFIELD"
2485 VTAB 16: HTAB 1: PRINT "ENTER NUMBER-";: GET R$: IF ASC(R$) <49 OR ASC(R$) >52 THEN 2485
2490 SA = VAL(R$): PRINT SA: RETURN
2495 HOME : VTAB 3: HTAB 12: PRINT "BATTLEFIELD SIZE": VTAB 5: PRINT "DO YOU WANT:": VTAB 7: PRINT "1-CLOSE RANGE": VTAB 9: PRINT "2-MEDIUM RANGE": VTAB 11: PRINT "3-LONG RANGE"
2500 VTAB 15: HTAB 1: PRINT "ENTER NUMBER-";: GET R$: IF ASC(R$) <49 OR ASC(R$) >51 THEN 2500
2505 TE = VAL(R$): PRINT TE: IF TE = 1 THEN TB = 20:TC = 13:TD = 7:R1$ = "SHORT MAPS"
2510 IF TE = 2 THEN TB = 16:TC = 16:TD = 9:R1$ = "MEDIUM MAPS"
2515 IF TE = 3 THEN TB = 10:TC = 27:TD = 15:R1$ = "LONG MAPS"
2520 RETURN
2525 HOME : VTAB 3: HTAB 12: PRINT "BATTLEFIELD TYPE": VTAB 5: PRINT "DO YOU WANT:": VTAB 7: PRINT "1-INDOOR BATTLEFIELD": VTAB 9: PRINT "2-OUTDOOR BATTLEFIELD"
2530 VTAB 12: HTAB 1: PRINT "ENTER NUMBER-";: GET R$: IF ASC(R$) <49 OR ASC(R$) >50 THEN 2530
2535 TP = VAL(R$): PRINT TP: RETURN
2540 FOR I = 1 TO 10: FOR J = 0 TO 2:MB%(I,J) = 0: NEXT J,I: RETURN
2545 MB%(1,0) = 65:MB%(1,1) = 0:MB%(1,2) = 0: IF TP = 1 THEN MB%(2,0) = 56:MB%(2,1) = 3:MB%(2,2) = 3:MB%(3,0) = 58:MB%(3,1) = 3:MB%(3,2) = 3
2555 IF TP = 2 THEN MB%(2,0) = 55:MB%(2,1) = 5:MB%(2,2) = 14:MB%(3,0) = 57:MB%(3,1) = 9:MB%(3,2) = 6
2560 MB%(4,1) = 10:MB%(4,2) = 16:MB%(5,1) = 4:MB%(5,2) = 16:MB%(6,1) = 5:MB%(6,2) = 4:MB%(7,0) = 58:MB%(7,1) = 1:MB%(7,2) = 6:MB%(8,1) = 6:MB%(8,2) = 16:MB%(9,1) = 13:MB%(9,2) = 16:MB%(10,1) = 4:MB%(10,2) = 3
2565 RETURN
2570 MB%(1,0) = 54:MB%(1,1) = 2:MB%(1,2) = 0: IF TP = 1 THEN MB%(2,0) = 56:MB%(2,1) = 3:MB%(2,2) = 1:MB%(3,0) = 58:MB%(3,1) = 3:MB%(3,2) = 1
2580 IF TP = 2 THEN MB%(2,0) = 55:MB%(2,1) = 4:MB%(2,2) = 12:MB%(3,0) = 57:MB%(3,1) = 9:MB%(3,2) = 4
2585 MB%(4,1) = 10:MB%(4,2) = 14:MB%(5,1) = 4:MB%(5,2) = 14:MB%(6,1) = 5:MB%(6,2) = 3:MB%(7,0) = 58:MB%(7,1) = 1:MB%(7,2) = 4:MB%(8,1) = 6:MB%(8,2) = 14:MB%(9,1) = 12:MB%(9,2) = 14:MB%(10,1) = 5:MB%(10,2) = 3: RETURN
2600 MB%(1,0) = 59:MB%(1,1) = 0:MB%(1,2) = 0: IF TP = 1 THEN MB%(2,0) = 61:MB%(2,1) = 1:MB%(2,2) = 1:MB%(3,0) = 63:MB%(3,1) = 1:MB%(3,2) = 1
2610 IF TP = 2 THEN MB%(2,0) = 60:MB%(2,1) = 2:MB%(2,2) = 6:MB%(3,0) = 62:MB%(3,1) = 2:MB%(3,2) = 4
2615 MB%(4,1) = 3:MB%(4,2) = 8:MB%(7,0) = 59:MB%(7,1) = 0:MB%(7,2) = 0:MB%(8,1) = 3:MB%(8,2) = 8
2620 RETURN
2625 HOME : VTAB 3: HTAB 10: PRINT "BATTLEFIELD DENSITY": VTAB 5: PRINT "DO YOU WANT:": VTAB 7: PRINT "1-OPEN": VTAB 9: PRINT "2-SEMI-OPEN": VTAB 11: PRINT "3-NORMAL": VTAB 13: PRINT "4-CROWDED": VTAB 15: PRINT "5-VERY CROWDED"
2630 VTAB 17: HTAB 1: PRINT "ENTER NUMBER-";: GET R$: IF ASC(R$) <49 OR ASC(R$) >53 THEN 2630
2635 SD = VAL(R$): PRINT SD
2640 IF SD = 1 THEN 2690
2645 IF SD = 2 AND TE <3 THEN N1 = 15
2650 IF SD = 2 AND TE = 3 THEN N1 = 30
2655 IF SD = 3 AND TE <3 THEN N1 = 30
2660 IF SD = 3 AND TE = 3 THEN N1 = 70
2665 IF SD = 4 AND TE <3 THEN N1 = 60
2670 IF SD = 4 AND TE = 3 THEN N1 = 110
2675 IF SD = 5 AND TE <3 THEN N1 = 90
2680 IF SD = 5 AND TE = 3 THEN N1 = 130
2685 NB = INT(10 * RND(1) +N1): FOR I = 1 TO NB:X = INT((TC +1) * RND(1)):Y = INT((TD +1) * RND(1)):MP%(X,Y) = INT(3 * RND(1) +1): NEXT I
2690 RETURN
2695 HOME : VTAB 21: PRINT "DO YOU WANT TO QUIT (Y/N)?";: GET R$: IF R$ = "Y" THEN SL = 1
2700 RETURN
2705 : HOME : VTAB 21: PRINT "DO YOU WANT TO SAVE": PRINT "THIS BATTLEFIELD (Y/N)?";: GET R$:SB = 0: IF R$ = "Y" THEN SB = 1
2710 IF R$ = "N" THEN SB = 2
2715 IF SB = 0 THEN 2705
2720 RETURN
2725 HOME : VTAB 21: PRINT "PLEASE INSERT THE DISK ON WHICH": PRINT "YOU WANT TO SAVE THIS BATTLEFIELD": PRINT "WHAT IS THE NAME OF THE BATTLEFIELD?"
2727 PRINT "HIT 'RET' TO CANCEL": PRINT "ENTER '0' TO SEE THE CATALOG"
2730 R$ = "": INPUT R$: IF R$ = "0" THEN GOSUB 2950: GOTO 2725
2731 IF R$ = "" THEN 2735
2732 & DEF R$,5: & PRINT R$: PRINT TB: PRINT TP: PRINT TC: PRINT TD: PRINT TE: FOR I = 0 TO TC: FOR J = 0 TO TD: PRINT MP%(I,J): NEXT J,I: & END : RETURN
2735 RETURN
2745 HOME : VTAB 3: PRINT "PLEASE INSERT THE DISK ON WHICH": PRINT "THE OLD BATTLEFIELD IS SAVED": VTAB 9: PRINT "(HIT 'RET' TO CANCEL)": VTAB 10: PRINT "(HIT 0 FOR CATALOG)": VTAB 14: PRINT "WHAT IS THE NAME OF THE BATTLEFIELD?": INPUT R$: IF R$ = "0" THEN GOSUB 2950: GOTO 2745
2750 SF = 0: IF R$ = "" THEN SF = 1: GOTO 2760
2752 & READ R$
2755 INPUT TB: INPUT TP: INPUT TC: INPUT TD: INPUT TE: FOR I = 0 TO TC: FOR J = 0 TO TD: INPUT MP%(I,J): NEXT J,I
2760 RETURN
2765 GOSUB 2475: IF SA = 1 THEN GOSUB 2495: GOSUB 2525: GOSUB 2540: ON TE GOSUB 2545,2570,2600: GOSUB 2625: GOTO 2795
2770 IF SA = 2 THEN GOSUB 2900: GOSUB 2540: ON TE GOSUB 2545,2570,2600: GOTO 2795
2775 IF SA = 3 THEN GOSUB 2745: & END : IF SF = 1 THEN 2765
2780 IF SA = 3 THEN GOSUB 2540: ON TE GOSUB 2545,2570,2600: GOTO 2795
2785 GOSUB 2495: GOSUB 2525: GOSUB 2540: ON TE GOSUB 2545,2570,2600
2790 HGR : ROT= 0: SCALE= 1: HCOLOR= 3: IF GM = 1 THEN GOSUB 170: GOTO 2792
2791 ON TE GOSUB 100,106,110
2792 X = 0:Y = 0: GOSUB 2435: GOSUB 2800
2793 HH = 2: GOSUB 2705: IF SB = 1 THEN GOSUB 2725: IF DK >0 THEN 1000
2795 HOME : RETURN
2800 HOME : VTAB 21: PRINT "CURSOR-U,D,R,L": PRINT "B=BLOCK,H=HALF BLOCK,P=PARTIAL BLOCK": PRINT "Q=QUIT,E=ERASE": GET R$:SL = 0: IF R$ = "U" THEN SL = 1
2805 IF R$ = "D" THEN SL = 2
2810 IF R$ = "L" THEN SL = 3
2815 IF R$ = "R" THEN SL = 4
2820 IF R$ = "B" THEN SL = 5
2825 IF R$ = "H" THEN SL = 6
2830 IF R$ = "P" THEN SL = 7
2835 IF R$ = "E" THEN SL = 8
2840 IF R$ = "Q" THEN GOSUB 2695: IF SL >0 THEN 2875
2845 IF SL = 0 THEN 2800
2850 GOSUB 2435: IF MP%(X,Y) = 0 THEN 2860
2855 ON MP%(X,Y) GOSUB 2440,2445,2450
2860 ON SL GOSUB 2400,2410,2420,2430,2440,2445,2450,2455
2865 IF SL >4 THEN GOSUB 2435
2870 GOTO 2800
2875 RETURN
2900 GOSUB 2495:SD = (TE -1) *7 +1: HOME : VTAB 3: HTAB 1: PRINT "STANDARD BATTLEFIELDS":SE = 0: VTAB 6: HTAB 1: FOR I = SD TO SD +6:SE = SE +1: PRINT SE;"-";MA$(I): NEXT I
2905 VTAB 18: HTAB 1: PRINT "WHICH BATTLEFIELD?": PRINT "ENTER NUMBER-";: GET R$: IF ASC(R$) <49 OR ASC(R$) >55 THEN 2905
2910 PRINT R$:R1 = VAL(R$):R1$ = MP$(TE)
2915 & READ R1$: FOR K = 1 TO R1: GOSUB 2755: NEXT K: & END : RETURN
2950 TEXT : HOME : & C AT : VTAB 24: HTAB 1: PRINT "HIT ANY KEY TO CONTINUE";: GET R$: PRINT : RETURN
3000 IF CA <10 THEN 3008
3001 CA = 0: HGR : SCALE= 1: ROT= 0: HCOLOR= 3: IF GM = 1 THEN GOSUB 170: GOTO 3003
3002 ON TE GOSUB 100,106,110
3003 IF TN = 0 THEN GOSUB 400: IF GA < >3 THEN GOSUB 3205
3004 IF TN = 0 THEN GOSUB 2180: GOTO 1005
3005 HCOLOR= 3:HC = 3: GOSUB 2200: GOSUB 2240: GOSUB 400: IF GA < >3 THEN GOSUB 3205
3006 GOTO 1025
3008 GOSUB 3300: IF GG = 1 THEN R1$ = "SHORT MAPS":R1 = 3: GOSUB 2915: ON TE GOSUB 2545,2570,2600: GOTO 3025
3010 IF GG = 5 THEN R1$ = MP$(S%(GD,1)):R1 = S%(GD,0): GOSUB 2915: ON TE GOSUB 2545,2570,2600: GOTO 3025
3015 IF GG = 2 OR GG = 3 THEN GOSUB 2495:R2 = GG *3 +TE +1:R1$ = MP$(S%(R2,1)):R1 = S%(R2,0): GOSUB 2915: ON TE GOSUB 2545,2570,2600: GOTO 3025
3020 HH = 3: GOSUB 2765
3025 GOTO 1000
3100 Y = 0:X = 0: IF GA = 1 THEN X = TC
3102 GOSUB 2435
3105 HOME : VTAB 21: PRINT "PLACE TARGET SQUARE": PRINT "HIT U, D, L, R TO MOVE CURSOR": PRINT "HIT 'ESC' TO CHOOSE TARGET SQUARE";: GET R$:SL = 0: IF R$ = "U" THEN SL = 1
3110 IF R$ = "D" THEN SL = 2
3111 IF R$ = "L" THEN SL = 3
3112 IF R$ = "R" THEN SL = 4
3115 IF ASC(R$) = 27 THEN SL = 5
3120 IF SL = 0 THEN 3105
3125 IF SL = 5 AND MP%(X,Y) >0 THEN GOSUB 1290: GOTO 3150
3130 IF SL = 5 THEN GOSUB 2435: GOSUB 3200: GOTO 3155
3135 GOSUB 2435: ON MP%(X,Y) GOSUB 2440,2445,2450
3140 ON SL GOSUB 2400,2410,2420,2430
3150 GOTO 3105
3155 RETURN
3200 TX = X:TY = Y: HCOLOR= 3: DRAW 64 AT X *TB +(TB/2),Y *TB +(TB/2): RETURN
3205 HCOLOR= 3: DRAW 64 AT TX *TB +(TB/2),TY *TB +(TB/2): RETURN
3300 HOME : VTAB 3: HTAB 8: PRINT "CHOOSE BATTLEFIELD PHASE": VTAB 12: HTAB 1: PRINT "DO YOU WANT A (G)RID MAP": VTAB 14: PRINT "OR AN (O)PEN MAP?"
3305 VTAB 18: HTAB 1: PRINT "ENTER LETTER-";: GET R$:SJ = 0: IF R$ = "G" THEN SJ = 1
3310 IF R$ = "O" THEN SJ = 2
3315 IF SJ = 0 THEN 3305
3320 GM = 0: IF SJ = 2 THEN GM = 1
3325 PRINT R$: RETURN
10000 DK = PEEK(222):DK$ = "DOS ERROR": IF DK >15 THEN DK$ = "ERROR-NOT DOS"
10005 HOME : VTAB 21: HTAB 1: PRINT "THERE HAS BEEN A ";DK$: PRINT "PLEASE CHECK YOUR SET UP AND TRY AGAIN";
10010 GOSUB 10100
10015 ON HH GOTO 1025,2793,3020
10020 RESUME
10100 VTAB 24: HTAB 1: PRINT "HIT ANY KEY TO CONTINUE";: GET I$: PRINT : RETURN
0
Text found in Galactic_Gladiator_19xx_SSI_RDOS.dsk/PREP.bas:
2 IF CA = 10 THEN CA = 0: GOTO 4100
3 LOMEM: 32300
4 ONERR GOTO 10000
5 & RECALL "NAMES7"
7 POKE 232,0: POKE 233,12
12 DIM P%(44,9),A1%(44,9),A%(44,9),WR%(11,1),CB%(15,4)
15 DIM MA%(27,15),MP%(27,15),PH%(31,1),PG%(135,2),MB%(10,2)
20 DIM OB$(13),SP$(15),N$(9),NA$(9),NB$(9)
21 DIM A2%(44,1),MP$(3),MA$(21),TM$(22),TE$(7),S%(13,1)
25 GOSUB 4000: GOSUB 3000: GOSUB 3500: GOTO 4100
2000 DATA "HANDS","STUN WAND","VIBRO KNIFE","LASER SWORD","SLICER","DISRUPTOR","HEAVY DISRUPTOR","GAPER","GEMSTONE","PHASOR","PHASOR RIFLE","HEAT RAY GUN","LIGHT ARMOUR","HEAVY ARMOUR"
2005 DATA 6,18,3,6,0,9,15,4,5,0,12,12,6,4,0,15,9,4,4,0,15,9,6,3,0,18,6,9,2,0,18,9,4,2,0,18,18,9,6,7,25,9,25,5,2,15,9,3,3,1,75,25,50,6,6,9,15,4,6,5,15,12,6,3,3,15,12,9,6,4
2010 DATA 1,6,0,6,2,6,3,9,4,12,5,15,6,18,0,9,5,12,3,6,5,15,0,6
2055 DATA "KORACI","CYGNIAN","HUMAN","WODANITE","FROGLODYTE","DULBIAN","ZORCON","GORSAI"
2060 DATA "ROBOT","MUTANT","BANSHEE","SLIME DEVIL","NIGHT STALKER","ORANGAPHIN","MONSTER"
2065 DATA 3,3,6,7,7,6,1,8,8,1,2,8,7,8,8,2,3,2,5,4,4,4,2,3,2,2,1,2,6,4,2,1,2,4,6,6,5,6,6,8,4,2,4,3,6,5,8,7,4,6,7,7,8,8,5,5,3,4,1,1,8,6,4,5
2070 DATA 2,3,4,6,5,4,4,2,4,7,8,1,1,8,8,5,4,3,7,6,8,4,6,4,8,2,4,6,6,8,6,5,6,3,4,3,5,5,5,2,8,2,7,7,6,2,8,1,4,4,5,3,2,8,8,8,6,6,4,5,4,6,8,2,8,8,8,7,6,6,7,6,5,4,4,2,4,5
2075 DATA 6,6,7,7,7,7,4,3,3,3,2,4,8,1,1,8,2,3,4,4,4,1,1,2,8,7,8,3,2,2,5,6,8,1,2,1,4,5,5,3,4,5,1,2,2,6,4,4,2,8,7,2,4,4,4,5,6,6,7,7,2,3,2,1,2,4,8,2,1,6,6,5
2080 DATA 4,3,4,8,8,1,7,6,5,4,4,6,4,2,3,2,3,3,4,6,5,6,5,5,7,7,8,5,6,7,5,5,6,6,4,3,1,8,2,6,8,6,6,4,2,8,1,2,4,2,2,3,4,6,1,8,6,2,8,6,4,6,7,7,8,7,7,8,8
2085 DATA 2,2,3,8,6,4,8,2,8,2,1,8,7,6,6,8,6,7,5,6,4,4,4,2,2,2,1,7,6,7,4,6,6,2,4,3,3,3,3,8,8,7,1,1,8,4,3,2,6,6,6,7,8,2,6,8,7,1,8,7,2,2,8,8,7,7,5,4,6,6,8,1,8,6,5
2090 DATA 2,1,1,5,6,6,8,1,8,8,8,2,1,8,1,1,1,1,7,8,6,7,6,4,2,4,2,3,3,4,3,4,4,4,2,8,6,8,8,1,2,3,3,2,3,4,4,3,5,6,5,8,2,2,1,2,8,2,4,6,3,2,1,4,5,4,5,5,4
2095 DATA 6,8,2,6,6,4,2,1,2,3,3,2,5,4,2,6,7,8,2,2,4,3,4,2,5,4,5,6,4,6,8,8,8,8,6,6,2,2,2,4,2,1,8,6,8
2100 DATA "STRENGTH","DEXTERITY","ENDURANCE","SPEED"
2105 DATA "OK","STUN","HEAVY STUN","WOUNDED","DEAD"
2110 DATA "MISSED","PARTIAL HIT","FULL HIT"
2115 DATA "KORACI","CYGNIANS","HUMANS","WODANITES","FROGLODYTES","DULBIANS","ZORCON","LIGHTWEIGHTS","MIDDLEWEIGHTS","HEAVYWEIGHTS","ARMOUR TEAM","PHASOR TEAM","HAND WEAPONS","GUIDED MISSILES"
2120 DATA "GORSAI","ROBOTS","MUTANTS","BANSHEES","SLIME DEVILS","NIGHT STALKERS","ORANGAPHINS","GORSAI-2"
2125 DATA "KORACI-E","CYGNIANS-E","HUMANS-E","WODANITES-E","FROGLODYTES-E","DULBIANS-E","ZORCON-E"
2130 DATA "ARENA-1","THE BRIDGE","MIKE'S PLACE","LIGHT FOREST","OPEN MEADOWS","SHOOTER'S HALL","TOMBSTONE","ARENA-2","HEAVY FOREST","ENGINEERING"
2135 DATA "CLOSED ROOMS","REC ROOM","NIGHT VALLEY","FOUR ROOMS","ARENA-3","RUHRKIN VALLEY","ROBOT MAZE","MUTANT RUINS","MADAM SACRE'S","SPACE SHIP","THE FORT"
2140 DATA "SHORT MAPS","MEDIUM MAPS","LONG MAPS"
2142 DATA 5,3,4,2,2,6,7,1,1,1,2,3,6,2,3,3,3,2,2,3,1,2,3,1,2,3
2155 DATA "CLOSE","MEDIUM","LONG"
3000 FOR I = 0 TO 13: READ OB$(I): NEXT I
3005 FOR I = 1 TO 14: FOR J = 0 TO 4: READ CB%(I,J): NEXT J,I
3010 FOR I = 0 TO 11: FOR J = 0 TO 1: READ WR%(I,J): NEXT J,I
3015 FOR I = 1 TO 15: READ SP$(I): NEXT I
3020 FOR I = 0 TO 31: FOR K = 0 TO 1: READ PH%(I,K): NEXT K,I: FOR I = 0 TO 135: FOR K = 0 TO 2: READ PG%(I,K): NEXT K,I
3025 FOR I = 1 TO 4: READ P$(I): NEXT I
3030 FOR I = 0 TO 4: READ WS$(I): NEXT I
3035 FOR I = 0 TO 2: READ HT$(I): NEXT I
3040 FOR I = 1 TO 22: READ TM$(I): NEXT I: FOR I = 1 TO 7: READ TE$(I): NEXT I: FOR I = 1 TO 21: READ MA$(I): NEXT I
3045 FOR I = 1 TO 3: READ MP$(I): NEXT : FOR I = 0 TO 1: FOR J = 1 TO 13: READ S%(J,I): NEXT J,I
3055 FOR I = 1 TO 3: READ RG$(I): NEXT I
3120 RETURN
3500 FOR I = 0 TO 9: FOR J = 0 TO 44:A1%(J,I) = 0:P%(J,I) = 0:A%(J,I) = 0: NEXT J:NA$(I) = "":N$(I) = "":NB$(I) = "": NEXT I
3505 SU = 0:TN = 0:MC = 0:B1 = 0:S1$(1) = "":S1$(2) = ""
3515 RETURN
3600 ROT= 0: SCALE= 1: HCOLOR= 3
3605 SA = 0:SB = 0: FOR I = 84 TO 90:SA = SA +20:SB = SB +1: DRAW I AT 14,SA: DRAW I -15 AT 24,SA: FOR J = 1 TO LEN(SP$(SB)):SD = ASC( MID$ (SP$(SB),J,1)) -64: IF SD <1 THEN 3615
3610 DRAW SD AT 32 +(8 *J),SA
3615 NEXT J,I
3620 SA = 0: FOR I = 91 TO 98:SA = SA +20:SB = SB +1: DRAW I AT 136,SA: DRAW I -15 AT 146,SA: FOR J = 1 TO LEN(SP$(SB)):SD = ASC( MID$ (SP$(SB),J,1)) -64: IF SD <1 THEN 3630
3625 DRAW SD AT 154 +(8 *J),SA
3630 NEXT J,I: RETURN
3800 HGR : POKE -16302,0: GOSUB 3600: GET R$: PRINT : GOTO 4100
4000 TEXT : HOME : VTAB 11: HTAB 5: PRINT "WELCOME TO GALACTIC GLADIATORS": VTAB 13: HTAB 2: PRINT "COMBAT SIMULATOR OF THE 28TH CENTURY": RETURN
4100 TEXT : HOME : VTAB 3: HTAB 11: PRINT "GALACTIC GLADIATOR": VTAB 6: HTAB 13: PRINT "WOULD YOU LIKE:": VTAB 9: HTAB 1: PRINT "(P)LAY A NEW GAME"
4105 VTAB 11: PRINT "(R)ESTART AN OLD GAME": VTAB 13: PRINT "(I)NITIALIZE A SSI SAVE DISK": VTAB 15: PRINT "(C)ATALOG A SSI SAVE DISK": VTAB 17: PRINT "(D)ELETE AN OLD TEAM,BATTLEFIELD,OR GAME"
4107 VTAB 19: PRINT "(V)IEW SPECIES DRAWINGS"
4110 VTAB 21: HTAB 1: PRINT "ENTER LETTER-";: GET R$:SA = 0: IF R$ = "P" THEN SA = 1
4115 IF R$ = "R" THEN SA = 2
4120 IF R$ = "I" THEN SA = 3
4125 IF R$ = "C" THEN SA = 4
4130 IF R$ = "D" THEN SA = 5
4135 IF R$ = "V" THEN SA = 6
4136 IF SA = 0 THEN 4110
4137 PRINT R$
4140 ON SA GOTO 4200,5115,4220,4205,4210,3800
4200 & READ "IDX": & END : & GOTO "CREATE"
4205 HOME : VTAB 12: PRINT "PLEASE INSERT YOR SSI SAVE DISK": PRINT "HIT 'RET' TO CANCEL": PRINT "ANY OTHER KEY TO CONTINUE";: GET R$: PRINT : IF ASC(R$) = 13 THEN 4100
4207 & C AT : VTAB 24: HTAB 1: PRINT "HIT ANY KEY TO CONTINUE";: GET R$: PRINT : GOTO 4100
4210 HOME : VTAB 12: PRINT "PLEASE INSERT YOUR SSI SAVE DISK": VTAB 14: PRINT "HIT'RET' TO CANCEL": VTAB 16: INPUT "WHAT IS THE NAME OF THE FILE?";R$: IF R$ = "" THEN 4100
4215 & DEL R$: VTAB 22: PRINT "HIT ANY KEY TO CONTINUE";: GET R$: PRINT : GOTO 4100
4220 & RECALL "SSI.INIT": HOME : VTAB 12: PRINT "PLEASE INSERT A BLANK DISK": VTAB 14: PRINT "HIT 'RET' TO CANCEL": VTAB 16: PRINT "ANY OTHER KEY TO INITIALIZE THE DISK";: GET R$: IF ASC(R$) = 13 THEN 4100
4225 PRINT : CALL 2048: VTAB 22: HTAB 1: PRINT "PLEASE INSERT THE GAME DISK": PRINT "AND HIT ANY KEY TO CONTINUE";: GET R$: PRINT : GOTO 4100
5005 FOR I = 0 TO B -1: IF P%(21,I) >2 THEN 5015
5010 SF = P%(25,I):SG = P%(26,I):MA%(SF,SG) = 1
5015 NEXT I: FOR I = 0 TO E2 -1: IF A%(21,I) >2 THEN 5025
5020 SF = A%(25,I):SG = A%(26,I):MA%(SF,SG) = -1
5025 NEXT I: RETURN
5030 FOR I = 1 TO 10: FOR J = 0 TO 2:MB%(I,J) = 0: NEXT J,I: RETURN
5035 MB%(1,0) = 65:MB%(1,1) = 0:MB%(1,2) = 0
5040 IF TP = 1 THEN MB%(2,0) = 56:MB%(2,1) = 3:MB%(2,2) = 3:MB%(3,0) = 58:MB%(3,1) = 3:MB%(3,2) = 3
5045 IF TP = 2 THEN MB%(2,0) = 55:MB%(2,1) = 5:MB%(2,2) = 14:MB%(3,0) = 57:MB%(3,1) = 9:MB%(3,2) = 6
5050 MB%(4,1) = 10:MB%(4,2) = 16:MB%(5,1) = 4:MB%(5,2) = 16:MB%(6,1) = 4:MB%(6,2) = 4:MB%(7,0) = 58:MB%(7,1) = 0:MB%(7,2) = 8:MB%(8,1) = 5:MB%(8,2) = 18:MB%(9,1) = 12:MB%(9,2) = 18:MB%(10,1) = 3:MB%(10,2) = 5
5055 RETURN
5060 MB%(1,0) = 54:MB%(1,1) = 2:MB%(1,2) = 0
5065 IF TP = 1 THEN MB%(2,0) = 56:MB%(2,1) = 3:MB%(2,2) = 1:MB%(3,0) = 58:MB%(3,1) = 3:MB%(3,2) = 1
5070 IF TP = 2 THEN MB%(2,0) = 55:MB%(2,1) = 4:MB%(2,2) = 12:MB%(3,0) = 57:MB%(3,1) = 9:MB%(3,2) = 4
5075 MB%(4,1) = 10:MB%(4,2) = 14:MB%(5,1) = 4:MB%(5,2) = 14:MB%(6,1) = 5:MB%(6,2) = 3
5080 MB%(7,0) = 58:MB%(7,1) = 0:MB%(7,2) = 4:MB%(8,1) = 5:MB%(8,2) = 14:MB%(9,1) = 11:MB%(9,2) = 14:MB%(10,1) = 4:MB%(10,2) = 3
5085 RETURN
5090 MB%(1,0) = 59:MB%(1,1) = 0:MB%(1,2) = 0
5095 IF TP = 1 THEN MB%(2,0) = 61:MB%(2,1) = 1:MB%(2,2) = 1:MB%(3,0) = 63:MB%(3,1) = 1:MB%(3,2) = 1
5100 IF TP = 2 THEN MB%(2,0) = 60:MB%(2,1) = 2:MB%(2,2) = 6:MB%(3,0) = 62:MB%(3,1) = 2:MB%(3,2) = 4
5105 MB%(4,1) = 3:MB%(4,2) = 8:MB%(7,0) = 59:MB%(7,1) = 0:MB%(7,2) = 0:MB%(8,1) = 3:MB%(8,2) = 8
5110 RETURN
5115 HOME : VTAB 5: HTAB 1: PRINT "PLEASE INSERT THE DISK ON WHICH": VTAB 7: PRINT "THE OLD GAME IS SAVED": VTAB 9: PRINT "WHAT IS THE NAME OF THE GAME?": PRINT "(HIT 'RET' TO CANCEL)": INPUT R$: IF R$ = "" THEN 4100
5120 & READ R$: INPUT GA: INPUT TE: INPUT TB: INPUT TC: INPUT TD: INPUT TP: INPUT HU: INPUT TN: INPUT B: INPUT E2
5125 INPUT TX: INPUT TY: INPUT S1$(1): INPUT S1$(2): INPUT GM
5130 FOR I = 0 TO B -1: FOR J = 0 TO 44: INPUT P%(J,I): NEXT J: INPUT N$(I): NEXT I: FOR I = 0 TO E2 -1: FOR J = 0 TO 44: INPUT A%(J,I): NEXT J: INPUT NB$(I): NEXT I
5135 FOR I = 0 TO TC: FOR J = 0 TO TD: INPUT MP%(I,J): NEXT J,I: & END
5140 IF TN >0 THEN GOSUB 5005
5145 GOSUB 5030: ON TE GOSUB 5035,5060,5090: HOME : VTAB 12: HTAB 1: PRINT "PLEASE INSERT THE GAME DISK": VTAB 14: PRINT "AND HIT ANY KEY TO CONTINUE";: CALL 64780:X = PEEK(78): FOR I = 1 TO X:X1 = RND(1): NEXT : PRINT :CA = 10: & GOTO "PLACE"
10000 POKE 34,0: HOME : VTAB 10: HTAB 1: PRINT "THERE HAS BEEN AN ERROR": VTAB 12: PRINT "PLEASE CHECK YOUR SET UP AND TRY AGAIN"
10005 VTAB 24: HTAB 1: PRINT "HIT ANY KEY TO CONTINUE";: GET I$: PRINT : GOTO 4100
- Addeddate
- 2014-06-12 19:50:13
- Emulator
- apple2e
- Emulator_ext
- dsk
- Identifier
- a2_Galactic_Gladiator_19xx_SSI_RDOS
- Scanner
- Internet Archive Python library 0.6.5
comment
Reviews
307 Views
DOWNLOAD OPTIONS
IN COLLECTIONS
The Apple II Library: Games The Software Library: Apple Computer Software Library The Emulation StationUploaded by Jason Scott on