Omega-TI Posted September 28, 2020 Share Posted September 28, 2020 (edited) Okay, here's the deal, I have an early FinalGROM development board to give away. It has one button, not two and is 512K, not 1 Meg. Due to shipping, this offer is available to continental U.S. members only, sorry. It'll arrive in a flat rate USPS box. Here is a photo of the cartridge... Did I mention there were "strings attached"? This will be a contest to see who can do the best conversion to T80XB for a nice 80 column display, or even compiled into either E/A5 format, or in cartridge .BIN format. (It's actually not possible to compile at this time, so a simple conversion is all that necessary). When completed, post your entries below. On November 15th there will be a one week poll posted for users to judge the winner. Once the winner is announced, I'll get their mailing address in a PM so I can immediately send it out to them so they'll have a new toy to play with before Christmas. The game to convert is the BASIC game: B1-BOMBER GOOD LUCK! It's truly a rare cartridge and piece of TI history that spawned the most popular cartridge ever. Edited September 29, 2020 by Omega-TI Clarified Quote Link to comment Share on other sites More sharing options...
Omega-TI Posted September 28, 2020 Author Share Posted September 28, 2020 I figured I should post the program listing for anyone wanting to give it a go. This game, while devoid of graphics has special place in my heart. As the game came originally... The BASIC game listing <spoiler> 1 REM 5/18/82 2 REM BY R.E.REED,JR. 5 RANDOMIZE 10 DIM C(10,2),C$(12) 15 CALL CLEAR 20 FOR I=1 TO 5 21 PRINT 22 NEXT I 23 PRINT TAB(18);"* B-1 NUCLEAR BOMBER GAME *" 24 PRINT 25 PRINT TAB(24);"COPYWRITE 1980 BY" 26 PRINT 27 PRINT TAB(27);"AVALON HILL" 30 PRINT TAB(23);"MICROCOMPUTER GAMES" 31 FOR I=1 TO 4 32 PRINT 33 NEXT I 40 FOR I=1 TO 1000 41 NEXT I 42 PRINT "WORKING..." 43 PRINT 50 N0=10 51 N1=20 60 N2=N0+N1 61 CALL CHAR(128,"1824241800000000") 70 DIM N$(30),T(30,3) 71 FOR I=1 TO 12 72 READ C$(I) 73 NEXT I 74 DATA "AU","EC","EV","PH","NA","AL" 75 DATA "CO","ST","RA","SE","AR","BO" 76 FOR I=1 TO N2 77 READ N$(I),T(I,1),T(I,2) 78 NEXT I 81 DATA "ARKHANGEL",8261,5922,"ASTRAKHAN",8631,7947 82 DATA "KIYEV",7391,7467,"LENINGRAD",7661,6427 83 DATA "MOSKVA",7956,6937,"MURMANSK",8056,5452 84 DATA "SEVASTOPOL",7506,8152,"SVERDLOVSK",9311,6682 85 DATA "VOLGOGRAD",8331,7692,"YEREVAN",8381,8657 86 DATA "DUBOVKA",8350,7650,"KHARKOV",7783,7450 87 DATA "KONOSHA",8153,6325,"LIPETSK",8100,7210 88 DATA "OCHAMCHIRA",8060,8400,"ODESSA",7360,8050 89 DATA "ONEGA",8147,5976,"PECHENGA",7976,5410 90 DATA "PINSK",7115,7235,"PODOLSK",7900,7010 91 DATA "PSKOV",7475,6637,"ROSTOV",7990,6802 92 DATA "SARPA",8455,7930,"SYKTYVKAR",8825,6200 93 DATA "TALLINN",7270,6415,"TBILISI",8415,8435 94 DATA "UKHTA",7737,5925,"VINNITSA",7200,7585 95 DATA "VYBORG",7575,6300,"YARANSK",8575,6740 96 N$(0)="THULE AFB" 100 A9=25000 101 A0=100 102 C0=10 103 S=4500 104 P=6 105 F9=0 106 TT=0 107 E=1.75 110 X=5500+RND*1500 111 Y=3500+RND*1000 120 FOR I=1 TO N2 121 T(I,3)=0 122 NEXT I 123 A=INT(25000*RND) 124 A1=A 125 R9=0 130 CC=INT(RND*360) 131 C1=CC 132 T9=INT(RND*N0+1) 133 T8=0 134 F=18500 140 FOR I=1 TO 10 141 C(I,1)=0 142 NEXT I 143 F$="" 144 FOR I=1 TO 5 150 F$=F$&CHR$(INT(RND*26)+65) 151 NEXT I 152 L9=.3 160 PRINT "YOU ARE FLYING A B-1 BOMBER OUT OF THULE AFB. YOU ARE INALERT STATUS ORBITING OVER THE ARTIC." 170 PRINT 180 PRINT " *** FLASH-HOT WAR ***" 181 PRINT 182 PRINT "YOUR PRIMARY TARGET IS ";N$(T9);"." 183 PRINT 190 PRINT "YOUR FAILSAFE CODE IS " 191 PRINT " '";F$;"'.";" MEMORIZE IT!" 192 PRINT 200 PRINT "YOUR ALTERNATE TARGETS ARE:" 201 J=0 202 FOR I=1 TO N0 203 IF I=T9 THEN 230 210 J=J+1 211 PRINT TAB((J-1)*15+2);N$(I); 212 IF J<2 THEN 230 220 J=0 221 IF I>=9 THEN 230 222 PRINT 230 NEXT I 231 PRINT 232 PRINT 233 INPUT "PRESS ENTER TO CONTINUE":A$ 234 PRINT 240 PRINT "SOVIET DEFENSE COMPLEXES ARE:" 241 PRINT 250 J=0 251 FOR I=N0+1 TO N2 252 J=J+1 260 PRINT TAB((J-1)*12+2);N$(I); 261 IF J<2 THEN 280 270 J=0 271 PRINT 280 NEXT I 281 PRINT 283 PRINT "GOOD LUCK!" 284 PRINT 290 GOSUB 670 291 A$="" 292 PRINT 293 INPUT "COMMAND: ":A$ 294 PRINT 295 IF LEN(A$)<2 THEN 310 300 A$=SEG$(A$,1,2) 301 I=0 302 I=I+1 303 IF A$=C$(I)THEN 350 304 IF I<12 THEN 302 310 PRINT "LEGAL COMMANDS ARE: COURSE, ALTITUDE, STATUS, RADAR, NAVIGATOR, SEARCH, AUTO" 321 PRINT "PILOT, EVASIVE ACTION, ECM, PHOENIX MISSLE, ARM BOMB, BOMB." 330 T0=TT+3+INT(5*RND) 340 GOTO 1020 350 ON I GOTO 430,970,740,820,560,360,380,700,650,610,390,470 360 INPUT "NEW ALTITUDE ? ":A1 361 IF A1>A9 THEN 362 ELSE 364 362 A1=A9 363 GOTO 370 364 IF A1<A0 THEN 365 ELSE 370 365 A1=A0 370 T0=TT+13+INT(15*RND) 371 GOTO 1020 380 INPUT "NEW COURSE ? ":C1 381 GOTO 370 390 IF F9=2 THEN 420 391 A$="" 392 INPUT "FAIL SAFE CODE ? ":A$ 393 IF A$<>F$ THEN 400 394 F9=1 400 IF F9=0 THEN 410 401 PRINT "BOMB ARMED" 402 L9=10*L9 403 GOTO 370 410 PRINT "WRONG CODE." 411 GOTO 370 420 PRINT "BOMB ALREADY DROPPED." 421 GOTO 370 430 I=0 431 J=0 432 K=0 433 INPUT "TIME FOR AUTOPILOT (SEC,MIN,HR)":I,J,K 460 I=-I*(I>0) 461 J=-J*(J>0) 462 K=-K*(K>0) 463 T2=TT+I+(60*J)+(3600*K) 464 IF T2<>TT THEN 466 465 T2=T2+1 466 GOTO 1020 470 IF F9=2 THEN 420 471 IF F9=0 THEN 530 472 A$="" 473 INPUT "TARGET ? ":A$ 480 IF LEN(A$)<2 THEN 540 481 A$=SEG$(A$,1,2) 482 GOSUB 2000 483 IF (I=0)+(I>N0)THEN 540 490 GOSUB 2010 491 IF FR>250 THEN 550 492 A$="" 493 INPUT "CONFIRM DROP (Y-N)":A$ 500 IF A$="" THEN 370 501 IF SEG$(A$,1,1)<>"Y" THEN 370 502 PRINT N$(I);" DESTROYED." 510 L9=L9/15 520 T8=I 521 S=S+250 522 A0=A0+50 523 F9=2 524 T0=TT+3+INT(5*RND) 525 GOTO 1020 530 PRINT "BOMB NOT YET ARMED." 531 GOTO 370 540 PRINT "IMPROPER TARGET." 541 GOTO 370 550 PRINT N$(I);" NOT IN RANGE." 551 GOTO 370 560 A$="" 561 INPUT "WHERE TO ? ":A$ 562 IF LEN(A$)<2 THEN 600 563 A$=SEG$(A$,1,2) 570 GOSUB 2000 571 IF A$="TH" THEN 580 572 IF I=0 THEN 600 580 GOSUB 2010 581 GOSUB 2020 582 PRINT N$(I);" BEARS "; 583 FX$=STR$((INT(FA*10))/10) 584 PRINT FX$;CHR$(128);" TRUE" 585 PRINT "RANGE:";INT(FR+.5);"KM." 590 T0=TT+40+INT(41*RND) 591 GOTO 1020 600 PRINT "NOT ON THE MAP." 601 GOTO 590 610 I=0 611 J=1E4 612 FOR K=N0+1 TO N2 613 FI=I 614 I=K 615 GOSUB 2010 616 L=FR 617 I=FI 618 IF L>J THEN 640 620 IF T(K,3)=2 THEN 640 630 FI=I 631 I=K 632 GOSUB 2020 633 I=FI 634 IF (ABS(CC-FA)>45)*(ABS(CC-FA)<315)THEN 640 635 J=L 636 I=K 640 NEXT K 641 IF I>0 THEN 580 642 PRINT "NO COMPLEX FOUND." 643 GOTO 590 650 PRINT "CONTACTS:" 651 GOSUB 670 652 IF J<>0 THEN 660 653 PRINT TAB(5);"NO CONTACTS." 660 T0=TT+5+INT(RND*11) 661 GOTO 1020 670 PRINT 671 J=0 672 FOR I=1 TO 10 673 IF C(I,1)=0 THEN 690 674 J=1 680 GOSUB 2030 681 PRINT FM$;" WILL INTERCEPT IN";C(I,2)-TT;"SECONDS." 690 NEXT I 691 RETURN 700 PRINT "COURSE: "; 701 CX$=STR$((INT(CC*10))/10) 702 PRINT TAB(19);CX$;CHR$(128);"TRUE" 703 PRINT "SPEED:";TAB(18);S;"KPH" 704 PRINT "ALTITUDE:";TAB(18);A;"M" 710 PRINT "ENOUGH FUEL" 711 PRINT "REMAINING TO FLY:";TAB(18);F;"KM" 720 IF F9=2 THEN 730 721 PRINT "PRIMARY TARGET: ";TAB(19);N$(T9) 730 PRINT "PHOENIX MISSLES:";TAB(18);P 731 T0=TT+20+INT(RND*21) 732 GOTO 1020 740 A1=200+INT(300*RND) 741 IF RND>=.5 THEN 743 742 A1=-A1 743 A=A+A1 750 IF A<0 THEN 1470 751 A1=A 752 C1=60+INT(60*RND) 760 IF RND<=.5 THEN 762 761 C1=-C1 762 CC=CC+C1 763 CC=CC+360*(CC>360)-360*(CC<0) 770 C1=CC 771 FOR I=1 TO 10 772 IF C(I,1)=0 THEN 810 780 J=(8+2*(C(I,1)<10))/(C(I,2)-TT) 782 IF J<=.95 THEN 790 783 J=.95 790 IF RND>J THEN 810 791 GOSUB 2030 792 PRINT FM$;" LOSES TARGET LOCK"; 800 IF C(I,1)<=10 THEN 802 801 PRINT "AND RETURNS TO BASE"; 802 PRINT "." 803 C(I,1)=0 810 NEXT I 811 T0=TT+10+INT(21*RND) 812 GOTO 1020 820 IF P=0 THEN 870 821 A$="" 822 PRINT "PHOENIX MISSLE ARMED." 823 INPUT "TARGET ? ":A$ 830 IF A$="" THEN 900 831 IF LEN(A$)<2 THEN 880 832 A$=SEG$(A$,1,2) 833 GOSUB 2000 840 IF I<N0+1 THEN 880 841 GOSUB 2010 842 IF FR>200 THEN 890 843 PRINT 844 PRINT "PHEONIX MISSLE AWAY!" 850 PRINT N$(I);" DEFENSE COMPLEX" 851 PRINT "DESTROYED." 852 T(I,3)=2 853 P=P-1 860 T0=TT+3+INT(RND*5) 861 GOTO 1020 870 PRINT "NO MORE MISSLES." 871 GOTO 860 880 PRINT "INVALID TARGET." 881 GOTO 860 890 PRINT N$(I);" OUT OF RANGE." 891 GOTO 860 900 J=1E4 901 K=0 902 FOR I=1 TO 10 903 IF C(I,1)=0 THEN 920 910 IF C(I,2)-TT>J THEN 920 911 J=C(I,2)-TT 912 K=I 920 NEXT I 921 PRINT "PHEONIX MISSLE AWAY!" 922 P=P-1 923 IF K=0 THEN 960 930 IF J>10 THEN 960 931 IF (C(K,1)<10)*(RND>.6)THEN 960 940 IF (C(K,1)>10)*(RND>.85)THEN 960 941 FI=I 942 I=K 943 GOSUB 2030 944 I=FI 945 PRINT FM$;" DESTROYED." 950 C(K,1)=0 951 GOTO 860 960 PRINT "MISSED!" 961 GOTO 860 970 FOR I=1 TO 10 971 IF C(I,1)=0 THEN 1010 972 J=E*(.5+5/(C(I,2)-TT)) 980 IF J<=.97 THEN 982 981 J=.97 982 IF RND>J THEN 1010 983 GOSUB 2030 984 PRINT FM$; 990 IF C(I,1)>10 THEN 991 ELSE 994 991 PRINT " LOSES TARGET LOCK" 992 PRINT "AND RETURNS TO BASE." 993 GOTO 1000 994 PRINT " SELF-DESTRUCTS." 1000 C(I,1)=0 1010 NEXT I 1011 E=E*(.7+.3*RND) 1012 T0=TT+3+INT(5*RND) 1013 GOTO 1020 1020 T3=T0 1021 I9=1 1022 IF T0>TT THEN 1060 1023 I9=0 1024 T3=INT(RND*301)+TT 1030 FOR I=1 TO 10 1031 IF C(I,1)=0 THEN 1050 1032 IF C(I,2)>=T3 THEN 1040 1033 T3=C(I,2) 1040 IF TT>=C(I,2)-10 THEN 1050 1041 IF C(I,2)-10>=T3 THEN 1050 1042 T3=C(I,2)-10 1050 NEXT I 1051 IF (T2<=TT)+(T3<T2)THEN 1060 1052 T3=T2 1053 I9=1 1060 T0=T3-TT 1061 A2=A0*T0 1062 C2=C0*T0 1070 IF A2>ABS(A-A1)THEN 1071 ELSE 1073 1071 A=A1 1072 GOTO 1080 1073 A=A+A2*SGN(A1-A) 1080 IF C2>ABS(360*ABS(CC-C1)>180)-ABS(CC-C1)THEN 1100 1090 CC=CC+C2*SGN(C1-CC) 1091 CC=CC-360*(CC<0)+360*(CC>360) 1092 GOTO 1110 1100 CC=C1 1110 X=X+S*T0*SIN(CC*3.14159265/180)/3600 1120 F=F-INT(S*(T3-TT)/3600) 1130 Y=Y-S*T0*COS(CC*3.14159265/180)/3600 1131 TT=T3 1140 IF F<0 THEN 1490 1150 I=0 1151 I=I+1 1152 IF C(I,1)=0 THEN 1210 1153 IF C(I,2)>TT THEN 1200 1160 PRINT "NUCLEAR AIRBURST!" 1161 R9=1 1162 C(I,1)=0 1163 I9=1 1170 A=A+INT(3000*RND*SGN(.5-RND)) 1171 IF A<0 THEN 1470 1180 A1=A 1181 F=INT(F*RND) 1182 S=INT(S*(.5+.5*RND)) 1190 IF RND<.15 THEN 1480 ELSE 1210 1200 IF C(I,2)>TT+10 THEN 1210 1201 GOSUB 2030 1202 PRINT FM$;" IN PHEONIX RANGE." 1203 I9=1 1210 IF I<10 THEN 1151 1211 IF F9=2 THEN 1270 1220 FOR I=1 TO N0 1221 GOSUB 2010 1222 J=FR 1223 IF J>250 THEN 1240 1224 IF T(I,3)<>0 THEN 1240 1230 PRINT N$(I);" IN BOMB RANGE." 1231 T(I,3)=1 1232 I9=1 1240 IF T(I,3)<>1 THEN 1260 1241 IF J<250 THEN 1260 1250 PRINT N$(I);" NO LONGER IN" 1251 PRINT "BOMB RANGE." 1252 T(I,3)=0 1260 NEXT I 1270 FOR I=N0+1 TO N2 1271 IF T(I,3)=2 THEN 1440 1280 IF ABS(X-T(I,1))>750 THEN 1440 1290 IF ABS(Y-T(I,2))>750 THEN 1440 1291 GOSUB 2010 1292 J=FR 1293 IF J>750 THEN 1440 1300 IF J>200 THEN 1320 1301 IF T(I,3)=1 THEN 1320 1302 T(I,3)=1 1310 PRINT N$(I);" DEFENSE COMPLEX" 1311 PRINT "IN PHEONIX MISSLE RANGE." 1312 I9=1 1320 IF T(I,3)<>1 THEN 1340 1321 IF J<200 THEN 1340 1322 T(I,3)=0 1330 PRINT N$(I);" DEFENSE COMPLEX" 1331 PRINT "OUT OF PHEONIX MISSLE RANGE." 1340 IF RND>L9*(T0/300)*(A^.125)THEN 1440 1350 K=0 1351 K=K+1 1352 IF C(K,1)=0 THEN 1360 1353 IF K<10 THEN 1351 1354 GOTO 1440 1360 IF RND>.5 THEN 1380 1370 C(K,1)=INT(9*RND+1) 1371 M=6500 1372 GOTO 1390 1380 C(K,1)=21+2*INT(RND*7) 1381 M=5000 1390 GOSUB 2020 1391 L=(FA-CC)*.0174532 1392 S1=S*SIN(L) 1393 S2=S*COS(L) 1400 L=SQR(M*M-S1*S1)+SGN(3.141593-ABS(L))*ABS(S2) 1410 GOSUB 2010 1411 FI=I 1412 I=K 1413 GOSUB 2030 1414 I=FI 1415 C(K,2)=TT+INT(3600*FR/L+1) 1416 PRINT 1420 PRINT N$(I);" DEFENSE COMPLEX" 1421 PRINT "LAUNCHES A ";FM$;"." 1430 I9=1 1440 NEXT I 1441 I=0 1442 GOSUB 2020 1443 L=ABS(CC-FA) 1444 GOSUB 2010 1450 IF ((L<30)+(L>330))*(FR<6500)*(TT>2000)THEN 1500 1460 IF I9=1 THEN 290 ELSE 1020 1470 PRINT "B-1 CRASHES INTO HILLSIDE." 1471 R9=2 1472 GOTO 1510 1480 PRINT "B-1 DESTROYED." 1481 R9=2 1482 GOTO 1510 1490 PRINT "B-1 RUNS OUT OF FUEL." 1491 GOTO 1470 1500 PRINT "B-1 LANDS AT THULE AFB. MISSION COMPLETE." 1510 PRINT "MISSION SUMMARY:" 1511 IF T8=0 THEN 1540 1520 IF T8=T9 THEN 1521 ELSE 1523 1521 PRINT "PRIMARY"; 1522 GOTO 1530 1523 PRINT "SECONDARY"; 1530 PRINT " TARGET, ";N$(T8);"DESTROYED." 1540 PRINT "DEFENSE COMPLEXES DESTROYED:" 1541 J=0 1542 FOR I=N0 TO N2 1550 IF T(I,3)<>2 THEN 1560 1551 PRINT TAB(5);N$(I) 1552 J=1 1560 NEXT I 1561 IF J<>0 THEN 1570 1562 PRINT "NONE." 1570 IF R9<>1 THEN 1580 1571 PRINT "THE CREW WILL DIE FROM RADIATION EXPOSURE." 1580 IF R9<>2 THEN 1590 1581 PRINT "CREW DEAD." 1590 A$="" 1591 INPUT "GO AGAIN (Y/N)":A$ 1592 A$=A$&" " 1593 IF SEG$(A$,1,1)="Y" THEN 100 ELSE 9999 2000 I=0 2001 I=I+1 2002 IF SEG$(N$(I),1,2)=A$ THEN 2003 ELSE 2004 2003 RETURN 2004 IF I<N2 THEN 2001 2005 I=0 2006 RETURN 2010 IF I<>0 THEN 2013 2011 FR=SQR(X*X+Y*Y) 2012 RETURN 2013 FX=X-T(I,1) 2014 FY=Y-T(I,2) 2015 FR=SQR(FX*FX+FY*FY) 2016 RETURN 2020 FX=X-T(I,1) 2021 FY=Y-T(I,2) 2022 IF FY<>0 THEN 2025 2023 FA=90-180*(FX>0) 2024 RETURN 2025 FA=180*(ATN(-FX/FY)/3.141593-(FY<0)+2*((FY>0)*(FX>0))) 2026 RETURN 2030 FM$=STR$(C(I,1)) 2032 IF C(I,1)<10 THEN 2033 ELSE 2035 2033 FM$="SAM-"&FM$ 2034 GOTO 2040 2035 FM$="MIG-"&FM$ 2040 RETURN 9999 END </spoiler> A scan of the original instruction sheet as done by AtariAge user @Remo_Williams... B-1 Nuclear Bomber Original.pdf ... and an enhanced users manual I made a few years back... B-1 BOMBER MANUAL.pdf Quote Link to comment Share on other sites More sharing options...
GDMike Posted September 28, 2020 Share Posted September 28, 2020 (edited) Lol, error in 25. "copyright" Line 844, 877- "missile"(s) Edited September 28, 2020 by GDMike Quote Link to comment Share on other sites More sharing options...
Omega-TI Posted September 29, 2020 Author Share Posted September 29, 2020 3 hours ago, GDMike said: Lol, error in 25. "copyright" Line 844, 877- "missile"(s) That is a copy I had on my HD's storage area. I'll load up my tape version, save it to the TIPI and re-upload it in a couple of hours. That'll be a good version for sure. Quote Link to comment Share on other sites More sharing options...
Omega-TI Posted September 29, 2020 Author Share Posted September 29, 2020 I didn't have time to see if this one is any different, but it just came off my original B1 Bomber cassette... B1 1 Quote Link to comment Share on other sites More sharing options...
Omega-TI Posted September 29, 2020 Author Share Posted September 29, 2020 BTW - If you've never heard of or used T80XB, by Harry Wilhelm, you can get it << HERE >> Quote Link to comment Share on other sites More sharing options...
Omega-TI Posted October 4, 2020 Author Share Posted October 4, 2020 ... ANYONE? Quote Link to comment Share on other sites More sharing options...
Omega-TI Posted October 13, 2020 Author Share Posted October 13, 2020 It's beginning to look like this has ZERO interest. Quote Link to comment Share on other sites More sharing options...
Asmusr Posted October 13, 2020 Share Posted October 13, 2020 If you made a first try at converting it to T80XB I'm sure someone here would help with the rest. Quote Link to comment Share on other sites More sharing options...
Omega-TI Posted October 13, 2020 Author Share Posted October 13, 2020 3 minutes ago, Asmusr said: If you made a first try at converting it to T80XB I'm sure someone here would help with the rest. Too many things on my plate, so I've not personally tried. This is my first "full day" to play in a long time, (as one can witness from my numerous posts today), so I've been vegging out on AtariAge while I clean and sort the den. If no one takes me up on it, I'll eventually get around to it... in about 10 years when I retire. I figured offering up a cool little collectors item might have been inducement for someone with more time on their hands to cut & paste the code while adding the required display commands. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.