Post by Leif Bloomquist on Apr 27, 2006 10:07:13 GMT -5
Might be useful for reference, if you're wondering how the original game did something.
0 CLR:POKE59468,12
1 REM OURANOS COPYRIGHT (C) 1980 KATHY HIGBY
2 REM 4026 W. EL CAMINITO
3 REM PHOENIX,AZ 85021
4 :
5 REM CURSOR #21, JUNE-JULY 1980
6 REM BOX 550, GOLETA, CA. 93017
7 REM LINES 61000-65000 (C) 1980 CURSOR MAGAZINE
8 :
10 REM AS OF 28JUL80
90 PG$="OURANOS!":NM$="21":GOSUB62000
100 READAA,BB:FORZ=AATOBB:READW:POKEZ,W:NEXT
105 PRINT"{down}WHAT'S PLAYER 1'S NAME? ";:GOSUB60000:EP$=IN$
106 IFEP$=""THEN105
107 PRINT"{down}WHAT'S PLAYER 2'S NAME? ";:GOSUB60000:WP$=IN$
108 IFWP$=""THEN107
110 DATA826,849,162,128,160,0,132,33,134,34,177,33,73,128,145,33
120 DATA200,208,247,232,224,132,208,240,96,0
130 Q=59467:R=59466:S=59464:POKEQ,16:POKER,15:POKES,0:H=33530
140 A$="{home}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}"
145 BL$=" "
150 C$="{A7}{left}{down}n{left}{down}m{down}m{left}{down}nm{A4}{left}{left}{left}{down}m m{left}{left}{left}{left}{down}{A7}{left}{down}n{left}{left}{down}n{left}{down}"
160 D$=" {left}{down} {left}{down} {down} {left}{down} {left}{left}{left}{down} {left}{left}{left}{left}{down} {left}{down} {left}{left}{down} {left}{down}"
170 E$=C$+"m{left}{down}n{left}{left}{down}n{left}{down}{A5}{left}{left}{down}n{left}{left}{left}{left}{down} {A4}n {left}{left}{left}{left}{down}n "
180 F$=D$+" {left}{down} {left}{left}{down} {left}{down} {left}{left}{down} {left}{left}{left}{down} {left}{left}{left}{down} "
190 G$=C$+"m{down}{A5}{left}{down}{A5}{left}{down}m{down}m{left}{down} m{A4} {left}{left}{down} m"
200 H$=D$+" {down} {left}{down} {left}{down} {down} {down} {down} "
210 I$=C$+"m{down}m{down}{A5}{left}{left}{down} {A5}{left}{left}{left}{down} n {left}{left}{left}{left}{down} n {left}{left}{left}{down} {A5}"
220 J$=D$+" {down} {down} {left}{down} {left}{left}{down} {left}{left}{down} {left}{down} "
230 PRINT"{clr}{B0}";:FORV=1TO38:PRINT"{C0}";:NEXT:PRINT"{AE}";
235 F=28:G=28:M=3:MM=0
240 FORV=1TO19:PRINT"{DD}";BL$;"{DD}";:NEXT
250 PRINT"{up}{up}{up}{up}{right}{right}{right}{rvson}{A9}m {DF}"SPC(20)"{A9} n{DF}"
255 PRINT"{up}{right}{right}{right}{rvson} {A7}{A3}{A3}{A3}{A3}{A3}"SPC(20)"{A3}{A3}{A3}{A3}{A3}{A5} "
260 PRINT"{right}{right}{right}{rvson} {A7} "SPC(20)" {A5} "
265 T$=LEFT$(EP$,7):PRINT"{up}{up}{rvson}";SPC(3.5+(7-LEN(T$))/2);T$
275 T$=LEFT$(WP$,7):PRINT"{up}{up}{rvson}";SPC(30+(7-LEN(T$))/2);T$
285 PRINT"{up}{right}{right}{right}{rvson}{A4}{BA}{A4}{A4}{A4}{A4}{A4}"SPC(20)"{A4}{A4}{A4}{A4}{A4}l{A4}"
290 PRINTA$:FORV=1TO40:PRINT"{rvson}{A2}";:NEXT:PRINT
295 POKE Q,16:POKER,15
300 GOSUB970:IFF<1ORG<1THEN1390
310 M=M+1:IFM>3THENM=1:MM=MM+1:B=0:PRINT"{home}";TAB(15);"{C0}{C0}{C0}{C0}{C0}{C0}{C0}{C0}{C0}{C0}{C0}
315 IFM=3ANDRND(1)>.33THEN310
320 PRINT"{home}{down}{rvsoff}";:FORV=1TO3:PRINT"{DD}";BL$;"{DD}";:NEXTV:PRINT
330 A=32812:AA=RND(1)*26:A=A+AA:B=1-B
340 POKEA,104:FORV=1TO4:A=A+1:POKEA,102:NEXT:FORV=1TO5:A=A+1:POKEA,104:NEXT
350 A=A+27:POKEA,104:FORV=1TO11:A=A+1:POKEA,102:NEXT:POKEA,104:A=A+33
360 POKEA,104:FORV=1TO6:A=A+1:POKEA,102:NEXT:POKEA,104:NN=0
365 PRINTA$"{rvson}";BL$;" ":PRINTA$;"{right}{right}{right}";
370 IFM=3THENPRINT"TARGET"SPC(21)"TARGET":GOTO400
380 IFB=0THENPRINT"TARGET"SPC(21)"{rvson}ATTACKER":GOTO400
390 PRINT"{rvson}ATTACKER{rvsoff}"SPC(20)"TARGET
400 EE=INT(RND(1)*100)
410 IFEE>50THENEE=INT(-EE/2):PRINTA$SPC(13)"{rvson} WIND
420 PRINTA$SPC(13)"{rvson} WIND cc>"EE"{left} {down}"
430 PRINTBL$:PRINTBL$;"{up}{up}"
450 IFM<3THEN490
460 FORX=1TO4:PRINTBL$;"{up}":GOSUB1280:GOSUB1260
470 PRINTTAB(13)"{rvson}ACT OF NATURE{rvsoff}{up}":GOSUB1280:NEXT
480 GOSUB1270:GOSUB1270:PRINTBL$
482 O=1:B$=MID$("HLRT",INT(RND(1)*4)+1,O):IN$=B$:GOTO520
490 IFM<>1THENGOSUB1280:GOTO505
500 POKES,255:PRINT"{home}";TAB(15)" ROUND"MM"{left} ":FORX=1TO2:GOSUB1260:NEXT:POKES,0
505 T$=EP$:IFB=0THENT$=WP$
510 PRINTA$"{down}{down}";T$;": WEAPON (H,L,R,T,Q) ? ";:GOSUB60000:PRINT"{up}";BL$
515 B$=LEFT$(IN$,1):O=LEN(IN$):IFO=0THEN510
520 W$="RAIN":IFLEFT$(W$,O)=IN$THENFF=5:TT=FF:O=2:GOTO590
530 W$="HAIL":IFLEFT$(W$,O)=IN$THENCC=58:FF=4:TT=FF:O=0:GOTO590
540 W$="TORNADO":IFLEFT$(W$,O)=IN$THENCC=102:FF=7:TT=FF:O=1:GOTO590
550 W$="LIGHTNING":IFLEFT$(W$,O)=IN$THENO=0:GOTO590
560 W$="QUIT":IFLEFT$(W$,O)=IN$THEN1390
580 PRINT"{up}{up}":GOTO430
590 PRINT"{up} WEAPON IS {rvson}";W$
595 IFO=1THENPRINT"{home}{down}";:FORV=1TO40:PRINT"{A6}{A6}";:NEXT:PRINTA$;"{down}{down}
600 IFM=3THENA1=0:PRINT
610 IFM<3THENPRINT"{right}CHARGE? ";:GOSUB60000:BB$=IN$:A1=VAL(BB$)
615 PRINT"{up} CHARGE IS";A1
620 IFA1<-150THENA1=-150
630 IFA1>150THENA1=150
640 IFB$="H"THENGOSUB1270:GOTO670
650 IFB$="L"THENGOSUB1270:GOTO1070
660 IFO=1THENPRINT"{home}{down}{down}{down}";:FORV=1TO20:PRINT"{A6}{A6}";:NEXT:PRINT:EE=1.5*EE
670 E=(A1+EE)/50:DD=0:GG=104
680 IFO=2ANDE<0THENCC=47:GOTO710
690 IFO=2ANDE>0THENCC=28:GOTO710
700 IFO=2THENCC=66
710 A=32892+AA:BB=0:FF=TT:T=WW:I=0:FORW=1TO16:WW=W:POKES,W*10
720 IFO<>1ORDD=1THENPOKES,0
730 IFT=WWTHENW=16:WW=0
740 A=A+(40+E):GOSUB870:NEXT
750 IFO<>1THEN840
760 IFPEEK(C+1)=93ORPEEK(C-1)=93THEN840
770 POKEC+1,GG:POKEC-1,GG
780 IFPEEK(C+2)=93ORPEEK(C-2)=93THEN840
790 POKEC+2,GG:POKEC-2,GG
800 IFE>0ORE=0THENPOKEC-38,32:POKEC-39,32
810 IFE<0ORE=0THENPOKEC-41,32:POKEC-42,32
820 IFDD=0THENGOSUB1370:GOTO840
830 IFDD=1THENPOKER,51:FORV=100TO10STEP-2:POKES,V:NEXT:POKER,15:POKES,0
840 IFNN<>1THENGOSUB1270
850 IFDD=0THENDD=1:CC=32:GG=CC:GOTO710
860 GOTO300
865 GOTO 300
870 C=A:FORZ=1TOFF:C=C+1:D=PEEK(C):IFO=1ANDE<0THEND=PEEK(C-1)
880 IFD=93THENGOSUB1310:W=16:O=0:RETURN
890 IFD>127ANDDD=0THENGOSUB940
900 IFI>2THENW=16
910 POKEC,CC:IFCC=58THENPOKES,FF*10:POKES,0
920 NEXT:BB=1-BB:IFBB=0ANDB$="T"THENFF=FF-1
930 RETURN
940 FORX=1TO3:POKEC,170:GOSUB960:POKEC,58:GOSUB960:NEXT:I=I+1:IFO<>0THENW=16
950 RETURN
960 POKES,Z*10:FORV=1TO50:NEXT:POKES,0:RETURN
970 F=0:G=-1:P=0
980 FORY=1TO4:FORX=1TO7:H=H+1:D=PEEK(H):IFD<>32THENP=P+1
990 NEXT:H=H-47:NEXT
1000 IFG=-1THENF=P:G=0:P=0:H=H+187:GOTO980
1010 G=P:H=33530
1020 RETURN
1070 A1=A1/33:IFA1<-4THENA1=-4
1080 IFA1>4THENA1=4
1090 IFA1>1THENA1=A1-1
1100 AA=AA+A1+7
1110 IFAA>33THENAA=33
1120 IFAA<6THENAA=6
1130 FORZ=1TO3:GOSUB1250:PRINTC$:SYS826:SYS826:GOSUB1250:PRINTD$:NEXT
1140 GOSUB1260:GOSUB1250:PRINTC$:SYS826:SYS826:GOSUB1250:PRINTD$:GOSUB1270
1150 IFA1>0THEN1200
1160 IFA1=0THEN1230
1170 FORZ=1TO2:GOSUB1250:PRINTE$:SYS826:GOSUB1290:SYS826:GOSUB1250:PRINTF$
1180 AA=AA+1
1190 NEXT:GOTO300
1200 FORZ=1TO2:GOSUB1250:PRINTG$:SYS826:GOSUB1290:SYS826:GOSUB1250:PRINTH$
1210 AA=AA-1
1220 NEXT:GOTO300
1230 FORZ=1TO2:GOSUB1250:PRINTI$:SYS826:GOSUB1290:SYS826:GOSUB1250:PRINTJ$
1240 NEXT:GOTO300
1250 PRINT"{home}{down}{down}{down}{down}"SPC(AA);:FORV=1TO25:NEXT:RETURN
1260 FORV=1TO500:NEXT:RETURN
1270 FORV=1TO1000:NEXT:RETURN
1280 POKES,M*50:FORV=1TO100:NEXT:POKES,0:RETURN
1290 POKEQ,0:FORV=1TO30:POKE59468,194:POKE59468,12:NEXT:POKEQ,16:POKER,15
1300 RETURN
1310 IFNN=1THENRETURN
1330 PRINT"{home}";TAB(13);"{rvson}OUT OF BOUNDS!":GOSUB1370:FORV=1TO2500:NEXT
1350 PRINT"{home}";TAB(13)"{C0}{C0} ROUND"MM"{left} {C0}{C0}{C0}":NN=1:RETURN
1370 FORX=1TO10:FORV=10TO200STEP25:POKES,V:NEXT:NEXT:POKES,0:RETURN
1390 PRINTA$;"{rvson} ";BL$:PRINTBL$:PRINTBL$
1400 SYS826:FORX=1TO500:NEXT
1410 FORV=200TO50STEP-1:POKES,V:NEXT:POKES,0:POKER,0:POKEQ,0
1415 SYS826:B$=WP$:P=F*3.6:IFG>0THENB$=EP$:P=G*3.6
1420 T=7-(LEN(EP$)/2):IFT<0THENT=0
1425 PRINT"{up}{up}{up}{up}{rvson}";TAB(T);EP$
1430 T=33.5-LEN(WP$)/2:IFT+LEN(WP$)>39THENT=40-LEN(WP$)
1435 PRINT"{up}{up}{rvson}";TAB(T);WP$
1440 PRINT "{up}{up}{up}{up}{up}{up}{up}{up}{right}{right}";INT(F*3.6);"{left}% LEFT"
1445 PRINT "{up}{up}";TAB(29);INT(G*3.6);"{left}% LEFT"
1450 PRINT"{home}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}";
1460 IF F=G THENPRINT" IT'S A TIE!":GOTO 1500
1470 PRINT"THE WINNER IS ";:IF F
1480 PRINT EP$
1500 PRINTA$;"{down}{down}WANT TO PLAY AGAIN? ";:GOSUB60000
1510 IFLEFT$(IN$,1)="N"THEN1600
1520 T$=EP$:EP$=WP$:WP$=T$
1530 GOTO 230
1600 PRINT"{clr}{down}{down}":END
9999 END
60000 IN$=" ":ZT=TI:ZC=2:ZD$=CHR$(20)
60010 GETZ$:IFZ$<>""THEN60070
60020 IFZT<=TITHENPRINTMID$(" {A6}",ZC,1);"{left}";:ZC=3-ZC:ZT=TI+15
60030 GOTO60010
60070 Z=ASC(Z$):ZL=LEN(IN$):IF(ZAND127)<32THENPRINT" {left}";:GOTO60110
60080 IFFLAND(ZAND127)>64AND(ZAND127)<91THENZ$=CHR$((Z+128)AND255)
60090 IFZL>254THEN60010
60100 IN$=IN$+Z$:PRINTZ$;ZD$;Z$;
60110 IFZ=13THENIN$=MID$(IN$,2):PRINTCR$;:RETURN
60120 IFZ=20ANDZL>1THENIN$=LEFT$(IN$,ZL-1):PRINT"{left}";:GOTO60010
60130 IFZ=141THENZ$=CHR$(-20*(ZL>1)):FORZ=2TOZL:PRINTZ$;:NEXTZ:GOTO60000
60140 GOTO60010
62000 PRINT"{clr}{down}{down}";TAB(9);"CURSOR #";NM$;" ";PG$
62010 PRINT"{down} COPYRIGHT (C) 1980 BY KATHY HIGBY{down}
62020 FORI=1TO10:PRINT"{C0}{C0}{C0}{C0}";:NEXTI
62030 PRINT"{down}TAKE THE ENEMY BY STORM
62040 PRINT"{down}{down}{down}PRESS {rvson}RETURN{rvsoff} TO BEGIN
62050 GETT$:IFT$=""THEN62050
62060 PRINT"{clr}":CLR:CR$=CHR$(13):GOTO100