Compucolor.org – Virtual Media

Listing of file='COWIND.BAS;01' on disk='vmedia/nsw_ug_1-sideA-sector.ccvf'

90 CLEAR 800
100 DIM IX(10),IY(10),CX(10),CY(10)
105 GOSUB 60000:REM  CALL KEYBOARD
110 PLOT 12,14,27,88
120 PLOT 6,57
130 FOR I= 18TO 26:PLOT 3,I,4,32,3,I,12,32:NEXT I
140 PLOT 3,18,6:PRINT " COWBOYS "
150 PLOT 3,18,8:PRINT "   AND   ":PLOT 3,18,10::PRINT " INDIANS "
160 PLOT 15,3,36,5,6,1
170 INPUT "INDIAN LEADER :";I$:I$= LEFT$ (I$,6)
180 PLOT 15,3,36,11,6,7
190 INPUT "COWBOY LEADER :";C$:C$= LEFT$ (C$,5)
192 PLOT 3,0,19
195 PRINT "DO YOU WANT INSTRUCTIONS :";:A= CALL (0):PLOT 28,11
200 IF A= 89THEN GOSUB 3000
490 PLOT 14,12
495 PLOT 6,3
500 PLOT 2,5,125,242,8,115,4,115,7,125,255
510 PLOT 2,11,120,242,14,110,10,110,13,120,255
520 PLOT 2,1,112,242,5,102,0,102,4,112,255
525 PLOT 15,3,8,1,6,5:PRINT I$;"S":PLOT 3,8,2:PRINT "CAMP":PLOT 6,2,14
530 PLOT 6,3
535 FOR J= 28TO 30:PLOT 3,56,J,43,3,63,J,43:NEXT J
540 FOR I= 56TO 63:PLOT 3,I,27,43,3,I,31,43:NEXT I
560 PLOT 15,6,5,3,57,28:PRINT C$;"S":PLOT 3,58,29:PRINT "FORT":PLOT 14,6,2
570 PLOT 6,4
580 PLOT 2,20,0,242,40,20,40,40,87,90,100,127,255
590 PLOT 2,107,127,242,93,88,45,38,45,19,24,0,255
600 L= 0:K= 1:PLOT 6,1
610 FOR I= 4TO 6STEP 2
620 FOR J= 8TO 16STEP 2
630 PLOT 3,J+ L,I,99
635 IX(K)= J+ L:IY(K)= I:K= K+ 1
640 NEXT J
645 L= 1
650 NEXT I
655 L= 0:K= 1:PLOT 6,7
660 FOR I= 22TO 24STEP 2
670 FOR J= 54TO 62STEP 2
680 PLOT 3,J+ L,I,99
685 CX(K)= J+ L:CY(K)= I:K= K+ 1
690 NEXT J
695 L= 1
700 NEXT I
710 PLOT 15,6,6,3,46,4,32
720 FOR I= 46TO 50
730 PLOT 3,I,5,61,3,I+ 1,4,61
740 NEXT I
750 FOR I= 15TO 20
760 PLOT 3,I,29,61,3,I+ 1,28,61
770 NEXT I
775 REM
780 REM      ##  BOULDERS FOLLOW  ##
785 REM
790 PLOT 14,6,2,3,2,17,116,117,3,8,23,116,117
800 PLOT 3,30,7,116,117,3,26,11,116,117
810 PLOT 3,57,13,116,117,3,48,15,116,117
812 PLOT 3,34,25,116,117,3,26,31,116,117
814 PLOT 3,42,3,116,117,3,21,5,116,117
815 PLOT 3,55,5,116,117,3,50,7,116,117
816 PLOT 3,59,9,116,117,3,14,11,116,117
818 PLOT 3,5,13,116,117,3,10,17,116,117
819 PLOT 3,43,19,116,117,3,58,19,116,117
821 PLOT 3,14,23,116,117,3,15,27,116,117
822 PLOT 3,28,27,116,117,3,46,27,116,117
824 PLOT 3,34,29,116,117,3,3,31,116,117
825 CHECK= 0
830 FOR II= 10TO 1STEP - 1
840 IF IX(II)= 0AND IY(II)= 0THEN 900
850 PLOT 14,6,65,3,IX(II),IY(II),99
860 GOSUB 1100:REM  GET SELECTION
890 PLOT 6,1,3,IX(II),IY(II),99
892 IF A= 12THEN PLOT 6,0,3,IX(II),IY(II),32:IX(II)= 0:IY(II)= 0
895 IF A= 13THEN II= 1
900 NEXT II
905 CHECK= 1
910 FOR II= 1TO 10
920 IF CX(II)= 0AND CY(II)= 0THEN 980
930 PLOT 14,6,71,3,CX(II),CY(II),99
940 GOSUB 1200:REM  GET SELECTION
970 PLOT 6,7,3,CX(II),CY(II),99
972 IF A= 12THEN PLOT 6,0,3,CX(II),CY(II),32:CX(II)= 0:CY(II)= 0
975 IF A= 13THEN II= 10
980 NEXT II
990 GOSUB 2000:REM  CHECK GAME STATUS
995 GOTO 825
1000 REM   ##  END ROUTINE  ##
1010 REM
1020 PLOT 6,6,15,3,28,28:PRINT "DO YOU WANT ANOTHER GAME :";
1030 A= CALL (0):IF A= 89THEN RUN 110
1090 PLOT 27,75,6,2,15:END
1100 REM   ##  GET INDIAN SELECTION  ##
1110 REM
1120 PLOT 6,65,3,14,0:PRINT ">";:A= CALL (0)
1122 PLOT 3,14,0:PRINT "   "
1124 IF A< 58AND A> 48THEN 1170
1125 IF A= 27THEN 1000
1126 IF A= 1THEN GOSUB 4000
1127 IF A= 1THEN PLOT 14,6,65,3,IX(II),IY(II),99:GOTO 1120
1130 IF A< > 83THEN 1160
1142 PLOT 6,1,3,22,0:PRINT "SHOT ANGLE :";:A= CALL (0)
1144 PLOT 3,22,0:PRINT "            "
1150 GOSUB 1600
1152 X= IX(II):Y= IY(II)
1155 GOSUB 1300
1160 RETURN
1170 REM  ##  MOVE  ##
1171 GOSUB 1600
1175 IF (IX(II)+ DX)< 0OR (IX(II)+ DX)> 63OR (IY(II)+ DY)< 0OR (IY(II)+ DY)> 31THEN RETURN
1180 PLOT 3,IX(II),IY(II),32:IX(II)= IX(II)+ DX:IY(II)= IY(II)+ DY
1185 IF IX(II)> 56AND IY(II)> 27THEN 2220
1190 RETURN
1200 REM   ##  GET COWBOY SELECTION  ##
1210 REM
1220 PLOT 6,71,3,42,31:PRINT "<";:A= CALL (0)
1222 PLOT 3,42,31:PRINT "   "
1224 IF A< 58AND A> 48THEN 1270
1226 IF A= 27THEN 1000
1227 IF A= 1THEN GOSUB 4000
1228 IF A= 1THEN PLOT 14,6,71,3,CX(II),CY(II),99:GOTO 1220
1230 IF A< > 83THEN 1260
1242 PLOT 6,7,3,31,31:PRINT "SHOT ANGLE :";:A= CALL (0)
1244 PLOT 3,31,31:PRINT "            "
1250 GOSUB 1600
1252 X= CX(II):Y= CY(II)
1255 GOSUB 1300
1260 RETURN
1270 REM  ##  MOVE  ##
1271 GOSUB 1600
1275 IF (CX(II)+ DX)< 0OR (CX(II)+ DX)> 63OR (CY(II)+ DY)< 0OR (CY(II)+ DY)> 31THEN RETURN
1280 PLOT 3,CX(II),CY(II),32:CX(II)= CX(II)+ DX:CY(II)= CY(II)+ DY
1285 IF CX(II)< 7AND CY(II)< 4THEN 2120
1290 RETURN
1300 REM   ##  SHOT FIRED!  ##
1310 REM
1312 IF DX< > 0THEN DX= DX/ 3
1314 IF DY< > 0THEN DY= DY/ 2
1330 IF CHECK= 0THEN 1500:REM  COWBOY CHECK
1340 FOR I= 1TO 7
1350 XC= X+ I* DX:YC= Y+ I* DY
1360 FOR J= 1TO 10
1370 IF IX(J)= XCAND IY(J)= YCTHEN IX(J)= 0:IY(J)= 0:GOTO 1400
1380 NEXT J
1385 NEXT I
1390 IF XC> 63OR YC> 31OR XC< 0OR YC< 0THEN RETURN
1400 REM   ##  A HIT  ##
1410 PX= XC* 2+ 1:PY= 127- (YC* 4+ 3)
1415 QX= X* 2+ 1:QY= 127- (Y* 4+ 3)
1420 PLOT 6,5,2,QX,QY,242,PX,PY,255
1430 FOR I= 1TO 1000:NEXT I
1440 PLOT 6,0,2,QX,QY,242,PX,PY,255,3,XC,YC,32
1445 IF CHECK= 1THEN 1470
1450 PLOT 14,6,1,3,X,Y,99
1460 RETURN
1470 PLOT 14,6,7,3,X,Y,99
1480 RETURN
1500 FOR I= 1TO 7
1510 XC= X+ I* DX:YC= Y+ I* DY
1520 FOR J= 1TO 10
1530 IF CX(J)= XCAND CY(J)= YCTHEN CX(J)= 0:CY(J)= 0:GOTO 1400
1540 NEXT J
1550 NEXT I
1555 IF XC> 63OR YC> 31OR XC< 0OR YC< 0THEN RETURN
1560 GOTO 1400
1600 REM  SUBROUTINE FOR CALL FUNCTION
1610 REM
1620 A= A- 48:DX= - 3:DY= - 2:IF A= 3OR A= 6OR A= 9THEN DX= 3
1630 IF A= 1OR A= 2OR A= 3THEN DY= 2
1640 IF A= 2OR A= 8THEN DX= 0
1650 IF A= 4OR A= 6THEN DY= 0
1660 RETURN
1670 REM
2000 REM
2010 REM   ##  CHECK GAME STATUS  ##
2015 K= 0:L= 0
2020 FOR I= 1TO 10
2030 IF IX(I)= 0AND IY(I)= 0THEN K= K+ 1
2040 IF CX(I)= 0AND CY(I)= 0THEN L= L+ 1
2050 NEXT I
2060 IF K= 10THEN 2100
2070 IF L= 10THEN 2200
2080 RETURN
2100 REM   ##  ALL INDIANS SHOT  ##
2110 PLOT 6,5,3,2,2:PRINT "ALL INDIANS DEAD"
2120 PLOT 6,69,3,50,30:PRINT "COWBOYS WIN"
2130 FOR I= 1TO 2000:NEXT I
2140 GOTO 1000
2200 REM   ##  ALL COWBOYS SHOT  ##
2205 PLOT 6,5,3,42,25:PRINT "ALL COWBOYS DEAD"
2220 PLOT 6,69,3,2,2:PRINT "INDIANS WIN"
2230 FOR I= 1TO 1000:NEXT I
2240 GOTO 1000
2990 REM
3000 REM   ##  INSTRUCTIONS  ##
3010 REM
3020 PLOT 15,6,6,3,0,16
3025 PRINT
3030 PRINT TAB( 5);"THIS IS A TACTICAL GAME IN WHICH YOU"
3040 PRINT TAB( 5);"MOVE YOUR MEN SO THAT YOU REACH THE "
3050 PRINT TAB( 5);"ENEMY CAMP / FORT FIRST. YOU CAN ALSO"
3060 PRINT TAB( 5);"WIN BY ELIMINATING ALL THE ENEMY FORCE."
3070 PRINT :PRINT TAB( 10);:INPUT "HIT RETURN TO CONTINUE :";A$
3080 FOR I= 16TO 28:PLOT 3,0,I,11:NEXT I
3090 PLOT 3,5,16,6,5:PRINT "RULES :":PRINT TAB( 5);"-----"
3100 PRINT :PRINT TAB( 5);"YOU CAN MOVE ONE MAN AT A TIME."
3110 PRINT :PRINT TAB( 5);"YOU CAN SHOOT AT THE ENEMY, BUT YOU"
3120 PRINT TAB( 5);"CANNOT MOVE THAT MAN AS WELL."
3130 PRINT :PRINT TAB( 5);"YOU CAN CROSS THE RIVER AT ANY POINT."
3140 PRINT :PRINT TAB( 5);"NO SHOOTING THROUGH ROCKS / ACROSS RIVER"
3150 PRINT :PRINT :PRINT TAB( 10);:INPUT "HIT RETURN TO CONTINUE :";A$
3190 PLOT 12
3200 PLOT 3,6,12:PRINT "7"
3210 PLOT 3,10,12:PRINT "8"
3220 PLOT 3,14,12:PRINT "9"
3230 PLOT 3,6,15:PRINT "4"
3240 PLOT 3,14,15:PRINT "6"
3250 PLOT 3,6,18:PRINT "1"
3260 PLOT 3,10,18:PRINT "2"
3270 PLOT 3,14,18:PRINT "3"
3280 PLOT 18
3290 PLOT 2,10,82,242,15,82,15,73,10,73,10,82
3300 PLOT 253,10,70,242,15,70,15,61,10,61,10,70
3310 PLOT 253,10,58,242,15,58,15,49,10,49,10,58
3320 REM
3330 PLOT 253,18,82,242,23,82,23,73,18,73,18,82
3340 PLOT 253,18,58,242,23,58,23,49,18,49,18,58
3350 REM
3360 PLOT 253,26,82,242,31,82,31,73,26,73,26,82
3370 PLOT 253,26,70,242,31,70,31,61,26,61,26,70
3380 PLOT 253,26,58,242,31,58,31,49,26,49,26,58
3390 PLOT 255,30,16,29,18
3400 PLOT 21,3,2,5:PRINT "TEN-KEY NUMBER PAD"
3410 PLOT 17<0xFC> _9,47,242,3,35,3,39,253,3,35,242,5,35
3430 PLOT 253,21,47,242,CN -VAL UEND <0xCD> <0xFF> 21,35,19,37,253,21,35,242,23,37
3440 PLOT 253,32,47,242,38,35,38,39,253,38,35,242,36,35
3450 PLOT 253,33,65,242,40,65,38,67,253,40,65,242,38,63
3460 PLOT 253,32,84,242,38,96,36,96,253,38,96,242,38,92
3470 PLOT 253,21,84,242,21,96,19,94,253,21,96,242,23,94
3480 PLOT 253,9,84,242,3,96,3,92,253,3,96,242,5,96
3490 PLOT 253,8,65,242,1,65,3,67,253,1,65,242,3,63
3500 PLOT 255
3510 PLOT 6,6,3,24,7
3520 PRINT "MOVING OR SHOOTING :"
3530 PLOT 6,7,3,24,8:PRINT "------    --------"
3540 PLOT 6,2,15,3,26,10
3550 PRINT "SIMPLY ENTER THE REQUIRED DIRECTION AS"
3560 PLOT 3,26,11
3570 PRINT "PER THE TEN KEY NUMERICAL PAD @ LEFT."
3580 PLOT 3,26,13
3590 PRINT "TO MOVE ENTER THE DIRECTION WHEN THE"
3600 PLOT 3,26,14
3610 PRINT "RELEVANT MAN IS FLASHING."
3620 PLOT 3,26,16
3630 PRINT "IF YOU DON'T WANT TO MOVE / SHOOT"
3640 PLOT 3,26,17
3650 PRINT "TYPE ANY KEY EXCEPT SPECIAL KEYS."
3660 PLOT 3,26,19
3670 PRINT "WHEN SHOOTING ENTER 'S', THE ANGLE"
3680 PLOT 3,26,20
3690 PRINT "WILL THEN BE ASKED FOR. USE KEY PAD.""
3700 PLOT 3,26,23
3710 PRINT "SPECIAL KEYS ARE -"
3720 PLOT 3,28,25
3730 PRINT "'RETURN'  FOR ENDING YOUR GO"
3740 PLOT 3,28,27
3750 PRINT "'ERASE PAGE'  FOR REMOVING A MAN"
3760 PLOT 3,28,29
3770 PRINT "E.G. A MAN HITS RIVER / BOULDER."
3780 PLOT 3,20,2:INPUT "HIT RETURN TO CONTINUE :";AOS + PRINT TAB( SPC( REM
4010 END <0xCD> VAL U- y<0xFF> REM   ## PLOT ALL CHARACTERS ##
4020 REM
4030 FOR KK= 10TO 1STEP - 1
4040 IF IX(KK)= 0AND IY(KK)= 0THEN 4060
4050 PLOT 6,1,3,IX(KK),IY(KK),99
4060 IF CX(KK)= 0AND CY(KK)= 0THEN 4080
4070 PLOT 6,7,3,CX(KK),CY(KK),99
4080 NEXT KK
4090 RETURN
60000 REM   ##  READ FROM KEYBOARD  'CALL()'  ##
60010 REM
60020 POKE 33283,232:POKE 33284,253
60030 ADR= 65000
60040 FOR I= 0TO 18
60050 READ V:POKE (ADR+ I),V
60060 NEXT I
60070 RETURN
60080 DATA 245,229,197,205,36,0
60090 DATA 194,235,253,95,175,87
60100 DATA 50,255,129,193,225,241
60110 DATA 201