1 'Club 100 library - 415/939-1246 BBS 937-5039 NEWSLETTER, 932-8856 VOICE 2 'Loaded 2/10/85 with opening by Stan Kendall as 'A-DUEL'. 3 'Modified for the NEC PC-8201/8300, 2/8/92 by Gary Weber. Requires LINE & CHR100. 4 'To activate the print-screen function, press "@" at any time. 10 SCREEN,0:CLS:CLEAR500:BEEP:BEEP 20 IF(PEEK(64082!)=135)AND(PEEK(64083!))=11THENBEEP:PRINT"This program requires that the LINE":PRINT"command be added to NEC Basic.":PRINT"":END 30 FORC=2TO120STEP4:D=D+2:LINE(C,30)-(C-2,D-2),1,B:NEXT:FORC=122TO239STEP4:D=D-2:LINE(C,30)-(C-2,D+2),1,B:NEXT 40 LOCATE9,0:PRINT "ARTILLERY DUEL ":LOCATE9,1:PRINT "(C) JOHN D PERKINS 1983":LOCATE 9,2:PRINT "NEC version by G. Weber":LOCATE4,5:PRINT "uit":LOCATE30,5:PRINT "

LAY" 50 Z$=INKEY$:IFZ$="Q"ORZ$="q"THENMENU 60 IFZ$="P"ORZ$="p"THEN90 70 GOTO50 80 GOTO80 90 CLEAR:DEFINT A-Z:DIMTR(239),GN(2,29),SC(2,2),EX(2,8,2):XC=-83:FOR HT=1TO7STEP3:XC=XC+VAL(MID$(TIME$,HT,2))+VAL(MID$(DATE$,HT,2)):NEXT HT:CLS:FOR PL=0TO1:LOCATE(PL*80+45)MOD40,(PL*80+45)\40 100 PRINT "Player";PL+1;" skill level: "; 110 KB$=INPUT$(1):IF KB$<"1" OR KB$>"3" THEN PL=PL-1:ELSE SC(PL,0)=VAL(KB$):PRINT KB$;:FOR HT=0TO7:AR!=HT*.8:EX(PL,HT*3MOD8,0)=SIN(AR!)*(5-SC(PL,0))*1.1:EX(PL,HT*3MOD8,1)=COS(AR!)*(5-SC(PL,0))*1.1:NEXT HT 120 NEXTPL:LOCATE 5,5:INPUT"Number of games";GAMES 121 CLS:LV=32:GOSUB390:LV=25:GOSUB390:LV=-16:GOSUB390:FORTC=1TO20:XB=RND(1)*214+15:YB=TR(XB):' Original: TC 1 to 35 130 IFYB>0THENFORHT=YBTOYB-RND(1)*9STEP-5:XC=XB+RND(1)*2-1:LINE(XC,HT)-(XC,HT-5),1:LINE(XC,HT-2)-(XC-2,HT-4),1:LINE(XC,HT-2)-(XC+2,HT-4),1:LINE(XC-1,HT)-(XC-3,HT-2),1:LINE(XC,HT)-(XC+3,HT-3),1:TR(XC)=-HT+5:NEXTHT 140 NEXTTC:GOSUB390:FOR PL=0TO1:BI=1-PL*2:FOR XB=PL*239+BI*(RND(1)*30+35)TO PL*230+5STEP-BI:FOR XC=XB-5TOXB+5:IF TR(XC)>0THENNEXTXC:GOTO150:ELSENEXTXB 150 XC=XB-BI*1:GN(PL,0)=XC:GN(PL,1)=TR(XC)-1:GN(PL,2)=70:GN(PL,3)=45:FOR HT=4TO29:GN(PL,HT)=1:NEXT HT:FORXB=XC+BI*5TOXC-BI*4STEP-BI:IFTR(XC)>TR(XB)THEN LINE(XB,TR(XC)-1)-(XB,TR(XB)),0:TR(XB)=TR(XC)-1 160 NEXT XB:FOR YB=TR(XC)-1TOTR(XC)-6STEP-1:FORHT=0TO30*(TR(XC)-YB):NEXTHT:LINE(XC-BI*3,YB)-(XC+BI,YB),1:SOUND450,1:NEXTYB:YB=TR(XC)-1:LINE(XC-BI*3,YB)-(XC-BI*2,YB),0:PRESET(XC+BI,YB):XB=XC:HT=1:GOSUB310 170 LINE(XC-BI*2,YB+1)-(XC+BI,YB+1),1:FORXB=XC+BITOXC-BI*3STEP-BI:TR(XB)=YB-6:NEXTXB:GOSUB390:NEXTPL:FORTC=10TO229:IFTR(TC)<0THENTR(TC)=-TR(TC) 180 NEXTTC:WD=RND(1)*51-26:GV=RND(1)*3+3:PL=(SC(0,1)"; 210 LOCATE2,1:PRINT "POWDER";USING"##.#";GN(PL,2)/10;:LOCATE17,1:PRINT "ANGLE";USING"###";GN(PL,3);:LOCATEXCMOD40,XC\40:PRINT ;:KB$=INPUT$(1):KY=ASC(KB$):IFKY=28ANDXC=52THENXC=65 220 IFKY=29ANDXC=65THENXC=52 230 IFXC=52AND((GN(PL,2)<99ANDKY=30)OR(GN(PL,2)>30ANDKY=31))THENGN(PL,2)=GN(PL,2)-KY*2+61:SOUND1200-GN(PL,2)*10,1 240 IFXC=65AND((GN(PL,3)<90ANDKY=30)OR(GN(PL,3)>0ANDKY=31))THENAR!=GN(PL,3)/57.3:HT=0:GOSUB310:GN(PL,3)=GN(PL,3)-KY*10+305:HT=1:GOSUB310:SOUND1000-GN(PL,3)*5,1 245 IFKY=64THENGOSUB65000 250 IFKY<>13THEN210 260 LINE(XB-BI*2,YB-4)-(XB,YB-4),1:LINE(4,6)-(235,16),0,BF:DX!=(GN(PL,2)*BI*COS(AR!)+WD/2)/20:DY!=(GN(PL,2)*SIN(AR!))/20:XX!=BX:XY!=BY:BX=0:BY=0:HT=0:SOUND16383,2 270 XX!=XX!+DX!:XY!=XY!-DY!:DY!=DY!-GV/50:XB=XX!+.5:YB=XY!+.5:IFXB<0ORXB>239THENPRESET(BX,BY):GOTO350 280 YB=-63*(YB>63)-YB*(YB<64):IFYB=63OR(HT>20-SC(PL,0)*5ANDTR(XB)<=YB)THEN320 290 PRESET(BX,BY):IFYB>=0ANDTR(XB)>YBTHENPSET(XB,YB):BX=XB:BY=YB:ELSEBX=0:BY=0 300 IFINKEY$="@"THENGOSUB65000 305 HT=HT+1:GOTO270 310 AR!=GN(PL,3)/57.3:BX=XB+BI*(2+4*COS(AR!))+.5:BY=YB-2.7-3.3*SIN(AR!):LINE(XB+BI*2+.5,YB-3)-(BX,BY),HT:RETURN 320 PRESET(BX,BY):FORHT=0TO7:BX=XB+EX(PL,HT,0):BY=YB+EX(PL,HT,1):SOUND16383,1:IFBX<0ORBX>239ORBY>63THEN340 330 LINE(XB,YB)-(BX,BY),1:LINE(XB,YB)-(BX,BY),0:IFTR(BX)<=BYTHENTR(BX)=BY+1 340 IFINKEY$="@"THENGOSUB65000 345 NEXTHT 350 WD=WD+RND(1)*(SC(PL,0)*4-1)-SC(PL,0)*2-1:XC=PL:PL=(PL=1)+1:HT=0:BI=PL*2-1:BX=GN(PL,0):BY=GN(PL,1):FORXB=BX-BITOBX+BI*3STEPBI:HT=HT+BY-TR(XB)-1:NEXTXB 360 IFHT>20THEN190:ELSEFORHT=BY-15TOYB:LINE(BX-BI,HT)-(BX+BI*3,HT),0 370 XB=BX-5+RND(1)*9:LINE(BX,BY)-(XB,BY-10),1:SOUND16383,3:LINE(BX,BY)-(XB,BY-10),0:NEXTHT:SC(XC,1)=SC(XC,1)+1:LOCATE13,0:PRINT"GUN DESTROYED" 375 IFINKEY$="@"THENGOSUB65000 380 FORXC=0TO1:LOCATE(XC*25+45)MOD40,(XC*25+45)\40:PRINT SC(XC,1);:NEXTXC:FORPL=0TO2999:NEXTPL:IF(SC(0,1)+SC(1,1)=GAMES)THEN500ELSE121 390 FORXC=VAL(RIGHT$(TIME$,2))TO0STEP-1:HT=RND(1)*32+LV:NEXTXC:IFLV<0THENRETURN:ELSEBI=RND(1)*9:XB=0:YB=HT 400 XC=XC+INT(RND(1)*15)+3:HT=HT-RND(1)*9+BI:IFHT>LV+31THENHT=LV+31:BI=5 410 IFHT5)*2-RND(1)*3:IFXC>239THEN XC=239 430 IFLV<>32THENLINE(XB,YB)-(XC,HT),1:XB=XC:GOTO450 440 DY!=(HT-YB)/(XC-XB+1):YC!=YB:FORXB=XBTOXC:TR(XB)=YC!:LINE(XB,YC!)-(XB,63),1:YC!=YC!+DY!:NEXTXB 450 YB=HT:IFXC<>239THEN400 460 RETURN 500 LOCATE6,3:PRINT"GAME OVER: "; 510 IF SC(0,1)>SC(1,1) THEN PRINT"Player ONE wins!" ELSE IF SC(0,1)