0 REM SAIGON.100 (C) Copyright 1987, 1991 by Max Pandaemonium 1 SU%=0:SN%=0:WA%=1:TU%=1:AR%=5:NV%=CINT(RND(1)*4)+1:NA%=NV%:HE%=4:DIMTE%(21),AX%(AR%),AY%(AR%),HX%(HE%),HY%(HE%),PL%(40,7),NX%(5),NY%(5),ND%(5) 2 H1%=37:H2%=43:T%=61:AS%=64:ES$=CHR$(27) 3 CLS:PRINT@94,"SAIGON.100":PRINT@209,"by Max Pandaemonium":KEYOFF:KEY(8)ON:ONKEYGOSUB,,,,,,,94 4 RESTORE1000:FORI%=0TO21:READTE%(I%):NEXTI% 5 RESTORE1001:FORI%=1TOAR%:READAX%(I%),AY%(I%):NEXTI% 6 RESTORE1002:FORI%=1TOHE%:READHX%(I%),HY%(I%):NEXTI% 7 RESTORE1003:FORJ%=1TO7:FORI%=1TO40:READPL%(I%,J%):NEXTI%,J% 8 CLS:PRINTES$"V";:FORI%=1TOVAL(MID$(TIME$,3,2))+VAL(RIGHT$(TIME$,2)):DUMMY#=RND(1):NEXTI% 9 FORY%=1TO7:FORX%=1TO40:GOSUB100:NEXTX%,Y%:FORA%=1TOAR%:GOSUB101:NEXTA%:FORN%=1TONV%:GOSUB105:GOSUB102:NEXTN%:GOSUB103:GOSUB104 10 FORA%=1TOAR%:GOSUB103:PRINT@280,"Army moves: "CHR$(AS%+A%);:PRINT@(AY%(A%)-1)*40+AX%(A%)-1,ES$"P"; 11 A$=INKEY$:IFA$=""THEN11 12 IFA$="q"ORA$="Q"THENI%=-1:J%=-1:GOTO22 13 IFA$="w"ORA$="W"THENI%=0:J%=-1:GOTO22 14 IFA$="e"ORA$="E"THENI%=1:J%=-1:GOTO22 15 IFA$="a"ORA$="A"THENI%=-1:J%=0:GOTO22 16 IFA$="s"ORA$="S"ORA$=" "ORA$=CHR$(13)THEN21 17 IFA$="d"ORA$="D"THENI%=1:J%=0:GOTO22 18 IFA$="z"ORA$="Z"THENI%=-1:J%=1:GOTO22 19 IFA$="x"ORA$="X"THENI%=0:J%=1:GOTO22 20 IFA$="c"ORA$="C"THENI%=1:J%=1:GOTO22ELSEGOTO11 21 I%=0:J%=0:IFPL%(AX%(A%),AY%(A%))=5THENPL%(AX%(A%),AY%(A%))=8:SOUND2348,1 22 PRINTES$"Q";:X%=AX%(A%):Y%=AY%(A%):GOSUB100:X%=AX%(A%)+I%:Y%=AY%(A%)+J%:GOSUB107:AX%(A%)=X%:AY%(A%)=Y%:I%=A%:FORA%=1TOAR%:GOSUB101:NEXTA%:A%=I% 23 FORN%=1TONV%:IFND%(N%)<>0ANDAX%(A%)=NX%(N%)ANDAY%(A%)=NY%(N%)THENFORI%=1TO5:SOUND9394,5:SOUND0,5:NEXTI%:ND%(N%)=0:NA%=NA%-1:SU%=SU%+2 24 NEXTN%,A% 30 IFCINT(RND(1)*100)>50THEN50 31 FORN%=1TONV%:IFND%(N%)=0THEN44 32 GOSUB103:PRINT@280,"Enemy moves!"; 33 X%=NX%(N%):Y%=NY%(N%):GOSUB100 34 X%=X%-ND%(N%) 35 IFX%<1ANDND%(N%)=1THEN37 36 IFX%>40ANDND%(N%)=-1THEN37ELSE38 37 FORI%=1TO3:SOUND587,10:SOUND0,10:NEXTI%:SN%=SN%+10:ND%(N%)=0:NA%=NA%-1:GOTO44 38 GOSUB107:NX%(N%)=X%:NY%(N%)=Y%:FORA%=1TOAR%:IFAX%(A%)=X%ANDAY%(A%)=Y%THENFORI%=1TO5:SOUND9394,5:SOUND0,5:NEXTI%:ND%(N%)=0:NA%=NA%-1:GOTO44 39 NEXTA% 40 IFPL%(NX%(N%),NY%(N%))=0THEN43 41 IFPL%(NX%(N%),NY%(N%))>=4ANDPL%(NX%(N%),NY%(N%))<=8THENPL%(NX%(N%),NY%(N%))=8:GOSUB100:GOTO43 42 SOUND9394,50:PL%(NX%(N%),NY%(N%))=5:SN%=SN%+1:GOSUB100:X%=NX%(N%)+CINT(RND(1)*4)-2:Y%=NY%(N%)+CINT(RND(1)*4)-2:GOTO35 43 GOSUB102 44 NEXTN% 50 IFCINT(RND(1)*100)>10THEN80 51 FORH%=1TOHE% 52 IFPL%(HX%(H%),HY%(H%))=4ORPL%(HX%(H%),HY%(H%))>=9ANDPL%(HX%(H%),HY%(H%))<=15THEN53ELSE79 53 PRINT@(HY%(H%)-1)*40+HX%(H%)-1,CHR$(H1%);:SOUND1174,5:SOUND4697,5:X%=HX%(H%):Y%=HY%(H%):GOSUB103:PRINT@280,"Chopper";H%;:PRINT@(Y%-1)*40+X%-1,ES$"P"; 54 A$=INKEY$:IFA$=""THEN54 55 IFA$="q"ORA$="Q"THENI%=-1:J%=-1:GOTO64 56 IFA$="w"ORA$="W"THENI%=0:J%=-1:GOTO64 57 IFA$="e"ORA$="E"THENI%=1:J%=-1:GOTO64 58 IFA$="a"ORA$="A"THENI%=-1:J%=0:GOTO64 59 IFA$="d"ORA$="D"THENI%=1:J%=0:GOTO64 60 IFA$="z"ORA$="Z"THENI%=-1:J%=1:GOTO64 61 IFA$="x"ORA$="X"THENI%=0:J%=1:GOTO64 62 IFA$="c"ORA$="C"THENI%=1:J%=1:GOTO64 63 IFA$="s"ORA$="S"ORA$=CHR$(13)ORA$=" "THEN65ELSE54 64 X%=X%+I%:Y%=Y%+J%:GOSUB107:PRINT@(Y%-1)*40+X%-1,"";:GOTO54 65 PRINTES$"Q";:I%=X%:J%=Y%:X%=HX%(H%):Y%=HY%(H%) 66 IFX%=I%ANDY%=J%THEN76 67 PRINT@(Y%-1)*40+X%-1,CHR$(H1%);:SOUND1174,2 68 FORN%=1TONV%:IFND%(N%)<>0ANDX%=NX%(N%)ANDY%=NY%(N%)THENSOUND1660,20:SOUND3134,20:PL%(X%,Y%)=7:SN%=SN%+3:GOSUB100:GOTO79 69 NEXTN% 70 GOSUB100:IFX%I%THENX%=X%-1 72 IFY%J%THENY%=Y%-1 74 SOUND4697,2:FORA%=1TOAR%:GOSUB101:NEXTA%:PRINT@(Y%-1)*40+X%-1,CHR$(H2%); 75 GOTO66 76 IFPL%(X%,Y%)=0ORPL%(X%,Y%)=8THEN77ELSEGOSUB100:GOTO79 77 PL%(X%,Y%)=4:SOUND4697,10:GOSUB100:FORN%=1TONV%:IFND%(N%)<>0ANDX%=NX%(N%)ANDY%=NY%(N%)THENFORI%=1TO5:SOUND9394,5:SOUND0,5:NEXTI%:ND%(N%)=0:NA%=NA%-1:SU%=SU%+2 78 NEXTN% 79 FORA%=1TOAR%:GOSUB101:NEXTA%:NEXTH% 80 IFCINT(RND(1)*100)>5THEN91 81 PRINT@280,"Truck arrives!"; 82 I%=CINT(RND(1)*3)+1:ONI%GOSUB83,84,85,86:GOTO87 83 RESTORE1010:RETURN 84 RESTORE1011:RETURN 85 RESTORE1012:RETURN 86 RESTORE1013:RETURN 87 READX%,Y%:IFX%=0ANDY%=0THEN90 88 PRINT@(Y%-1)*40+X%-1,CHR$(T%);:IFPL%(X%,Y%)=4ORPL%(X%,Y%)>=16ANDPL%(X%,Y%)<=21THENSOUND2348,2:SN%=SN%+5:GOSUB100:GOTO87 89 SOUND3516,20:SOUND2959,20:PL%(X%,Y%)=6:GOSUB100 90 SOUND1396,10:SOUND466,10:SU%=SU%+5 91 IFNA%=0THENPRINT@280,"";:PRINTUSING"Wave ## ends . . . USA: ### NVA: ###";WA%,SU%,SN%;:NV%=CINT(RND(1)*4)+1:NA%=NV%:FORN%=1TONV%:GOSUB105:GOSUB102:NEXTN%:WA%=WA%+1:FORDLAY%=1TO1000:NEXTDLAY%:IFSU%>=100ORSN%>=100THEN94GOTO10 92 TU%=TU%+1:GOSUB103:GOSUB104:GOTO10 93 CLEAR:GOTO1 94 KEY(4)ON:KEY(8)ON:ONKEYGOSUB,,,93,,,,99:PRINT@92,ES$"Q"ES$"p GAME OVER ";:PRINT@132,"";:PRINTUSING" USA ### NVA ### ";SU%,SN%;:PRINT@172," F4 Replay ";:PRINT@212," F8 Menu "ES$"q"; 95 GOTO95 99 CLEAR:MENU 100 PRINT@(Y%-1)*40+X%-1,CHR$(TE%(PL%(X%,Y%)));:RETURN 101 PRINT@(AY%(A%)-1)*40+AX%(A%)-1,ES$"p"CHR$(AS%+A%)ES$"q";:RETURN 102 RETURN:REMPRINT@(NY%(N%)-1)*40+NX%(N%)-1,ES$"p"CHR$(TE%(PL%(NX%(N%),NY%(N%))))ES$"q";:RETURN 103 PRINT@280,SPACE$(24);:RETURN 104 PRINT@304,"";:PRINTUSING"Wave ## Turn ###";WA%,TU%;:RETURN 105 ND%(N%)=CINT(RND(1)*2):NX%(N%)=ND%(N%)*39+1:NY%(N%)=CINT(RND(1)*7)+1:IFND%(N%)=0THENND%(N%)=-1 106 IFPL%(NX%(N%),NY%(N%))>0THEN105ELSERETURN 107 IFX%<1THENX%=1 108 IFX%>40THENX%=40 109 IFY%<1THENY%=1 110 IFY%>7THENY%=7 111 RETURN 1000 DATA32,255,239,134,250,42,138,140,224,133,245,241,246,240,242,247,245,241,246,240,242,247 1001 DATA13,3,11,4,15,4,12,5,14,5 1002 DATA28,5,29,5,28,6,29,6 1003 DATA0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 1004 DATA17,17,17,20,3,0,0,0,0,0,0,19,17,17,17,17,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,3,0,0,0 1005 DATA0,0,3,18,17,17,17,17,20,0,1,1,1,1,1,0,0,0,0,0,0,0,0,19,17,17,17,17,17,17,17,17,17,17,17,17,17,20,0,0 1006 DATA0,0,3,3,3,3,3,0,16,0,1,2,2,2,1,17,17,17,17,17,20,0,0,16,0,0,0,0,0,0,0,0,3,3,3,3,3,16,3,0 1007 DATA0,0,0,3,3,3,0,0,18,17,1,1,1,1,1,0,0,0,0,0,16,0,0,16,0,0,0,13,14,0,0,0,0,0,3,3,3,18,17,17 1008 DATA0,0,0,0,3,0,3,0,0,0,0,18,17,17,17,20,0,0,0,0,18,17,17,21,0,0,0,12,15,0,0,0,0,3,0,0,3,3,0,0 1009 DATA0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 1010 DATA1,2,2,2,3,2,4,2,4,3,5,3,6,3,7,3,8,3,9,3,9,4,9,5,10,5,0,0 1011 DATA17,1,17,2,16,2,15,2,14,2,13,2,12,2,0,0 1012 DATA40,5,39,5,38,5,38,4,38,3,37,3,36,3,35,3,34,3,33,3,32,3,31,3,30,3,29,3,28,3,27,3,26,3,25,3,24,3,24,4,24,5,24,6,23,6,22,6,21,6,21,5,21,4,20,4,19,4,18,4,17,4,16,4,0,0