jrhodes Posted May 15, 2018 Share Posted May 15, 2018 Hi all, i am wondering if the following programs are available for emulation already? I have the PDF files and will be typing them out myself if not. I am looking for: From "Computes TI Collection Volume Two" - Mad Hatter Ladder From "32-basic-programs-for-the-ti994a" - Road Race From "Computes TI-99-4A Sound and Graphics" - a.) Shooting Gallery , b.) Banzai Bunny Quote Link to comment Share on other sites More sharing options...
+Ksarul Posted May 15, 2018 Share Posted May 15, 2018 Probably the best place to look for answers to this question would be in the most recent edition of the TI Gamebase. I'm not sure if there is a copy of it online right now though. Quote Link to comment Share on other sites More sharing options...
RickyDean Posted May 15, 2018 Share Posted May 15, 2018 Hi all, i am wondering if the following programs are available for emulation already? I have the PDF files and will be typing them out myself if not. I am looking for: From "Computes TI Collection Volume Two" - Mad Hatter Ladder From "32-basic-programs-for-the-ti994a" - Road Race From "Computes TI-99-4A Sound and Graphics" - a.) Shooting Gallery , b.) Banzai Bunny It is possible, depending on what you are needing to copy and paste a program into Classic99 or Js99er and save it back to disk image format. Quote Link to comment Share on other sites More sharing options...
+OLD CS1 Posted May 15, 2018 Share Posted May 15, 2018 And depending upon what did the OCR. I have found that Acrobat's OCR of magazines is near impossible to get a proper reading of for pasting. I just wind up typing it in, myself. Does not take long to do. And, besides: NOSTALGIA. Quote Link to comment Share on other sites More sharing options...
Omega-TI Posted May 15, 2018 Share Posted May 15, 2018 Those old computer magazines used to drive me Nutz! Two hours of typing, three or more hours hours afterwards debugging. Quote Link to comment Share on other sites More sharing options...
+OLD CS1 Posted May 15, 2018 Share Posted May 15, 2018 Those old computer magazines used to drive me Nutz! Two hours of typing, three or more hours hours afterwards debugging. A few weeks ago I spent about five minutes typing in Goblin. Way back when that would have taken me over an hour. The worst part was when the listing itself had a bug. You had to go through some serious detective work because the programs were rarely ever documented, at least for the multi-platform games and demos. The more system-specific programs would usually have some kind of break-down since the goal was to teach the reader. 1 Quote Link to comment Share on other sites More sharing options...
Omega-TI Posted May 15, 2018 Share Posted May 15, 2018 Yeah, I remember listings with errors. There was a file system program I typed in, and later modified a tad that would not search properly for the next entry. IIRC it took me two days to find the error. I think I still have that program... I'll look for it later today and if I find it, I'll post it here, Quote Link to comment Share on other sites More sharing options...
RickyDean Posted May 15, 2018 Share Posted May 15, 2018 And depending upon what did the OCR. I have found that Acrobat's OCR of magazines is near impossible to get a proper reading of for pasting. I just wind up typing it in, myself. Does not take long to do. And, besides: NOSTALGIA. Yes, I understand, I do not know the quality of these books but, it should be possible to get some useful copies. https://archive.org/details/tibooks Quote Link to comment Share on other sites More sharing options...
jrhodes Posted May 15, 2018 Author Share Posted May 15, 2018 (edited) Mad Hatter Ladder, enjoy. This climbing game pits you against buzz sawsand flames as you leap and dash from floor tofloor. Extended BASIC required; joystickoptional.The Mad Hatter is desperate. Buzz saws and flames are chasing him from one end of his two-tiered home to another.You're his only chance—you've got to help him out by pressing the right keys or moving the joystick in the right direction.Points and more points are your only reward.Starting at the lower left, the Mad Hatter glides silently fromside to side when you press the right or left arrow key (ormove the joystick right or left). Buzz saws, always headingleft, block the Hatter's path. They can be jumped, however, bypressing the period (.) key or the joystick fire button. Be extremely careful, though, that you help the Hatter jump at justthe right moment. Even the slightest touch of the buzz sawand the Mad Hatter is only a Mad Cap.Climbing from floor to floor, using the ladders, is evenmore difficult. Press the up arrow key when the Hatter is inposition. Unfortunately, he's a bit afraid of heights, and theonly time you can persuade him to climb is when he's just abit to the right of a ladder, with more than half his body directly under it. Hit the up arrow key or move the joystick upand, his fears gone, he pops up a floor.Up and up you help the Hatter climb, until he reaches thetop of the screen. At that moment, you're given the bonuspoints which have been ticking away at the bottom center ofthe screen. The faster you get the Hatter to the top, the morepoints you score. (The game ends if the bonus runs out beforethe Hatter makes it.)Three chances are all you have to help the Hatter. Oncehe's at the top, the screen flickers into the next tier of the Hatter's home. Now there are four floors and only two ladders.The saws are gone, but flames have taken their place.Two bolts on each floor must be removed by moving overthem. That's easier than it looks, for you can "wrap around"the screen and sneak up behind the flame to steal the bolt. Asin the first part of the Mad Hatter's house, ladders are provided to get to the next floor. On this screen, you can even goback down a ladder. Hatter has an even greater fear of heightshere, and climbing the ladders takes more time than before. Atleast he's safe when he's on a ladder, for the flames moveonly from side to side.A time limit ticks away—get to the top of the second tierbefore it runs out, and points equal to the remaining time areawarded. Then you're back to the first screen for more buzzsaw fun. Listing below, zip contains .txt and classic99 FIAD. (OLD DSK1.MHLADDER) 100 CALL CHAR(98,"818181FFFF818181") 110 CALL COLOR(9,1,1) 120 CALL SCREEN(2) 130 P=5 140 CALL CHAR(128,"0E13070F1F3F2F27130000000000000000C8E4F4FCF8F0E0C870") 150 CALL MAGNIFY(3) 160 LIFE=3 170 SC=0 180 E=0 190 CALL CLEAR 200 FOR I=1 TO 8 :: CALL COLOR(I,5,1) :: NEXT I 210 CALL CHAR(96,"FF814242242418FF") 220 M=0 230 FOR I=1 TO 4 :: CALL HCHAR(I*6,1,96,32) :: NEXT I 240 E=0 250 DISPLAY AT(1,7):"SCORE" :: DISPLAY AT(2,6):SC 260 DISPLAY AT(1,20):"HIGH" :: DISPLAY AT(2,19):HIGH 270 TIME=5000 :: DISPLAY AT(24,13)SIZE(5):TIME 280 CALL CHAR(97,"818181FFFF818181") :: FOR I=1 TO 2 :: CALL VCHAR(18,25+I,96+I,6) :: CALL VCHAR(12,5+I,96+I,6) :: CALL VCHAR(6,25+I,96+I,6) 290 CALL VCHAR(1,5+I,96+I,5) :: NEXT I 300 CALL HCHAR(1,3,96,5) 310 CALL COLOR(9,10,1) 320 FOR IR=1 TO 2 330 FOR I=1 TO 4 :: CALL SPRITE(#1+I+E,128,16,I*6*8-16,1,0,P) :: P=-P :: NEXT I 340 IF E=4 THEN 360 350 FOR R=1 TO 1000 :: NEXT R 360 E=4 370 NEXT IR 380 CALL CHAR(132,"3F3F3F1F1F1F1F1F1F3A02020222323EFCFCFCF8F8F8F8F8F85C404040444C7C") 390 CALL SPRITE(#1,132,5,21*8,16) 400 REM 1st screen play 410 CALL JOYST(1,X,Y) :: GOSUB 1290 :: CALL MOTION(#1,0,X*1.5) 420 CALL POSITION(#1,Q,W) :: IF W<16 AND X=-4 THEN CALL MOTION(#1,0,0) :: CALL LOCATE(#1,Q,24) 430 IF W>240 AND X=4 THEN CALL MOTION(#1,0,0) :: CALL LOCATE(#1,Q,232) 440 CALL COINC(ALL,Z) :: IF Z<0 THEN 610 450 TIME=TIME-50 :: IF TIME=0 THEN 1260 ELSE DISPLAY AT(24,13)SIZE(5):TIME 460 CALL POSITION(#1,Q,W) :: CALL GCHAR(Q/8,W/8,Z) :: IF Z=97 THEN 470 ELSE 540 470 CALL JOYST(1,X,Y) :: GOSUB 1290 :: CALL POSITION(#1,Q,W) :: IF Q<48 THEN 500 ELSE IF Y=4 THEN CALL LOCATE(#1,Q-48,W) 480 CALL COINC(ALL,Z) :: IF Z<0 THEN 610 490 GOTO 540 500 IF Y=4 THEN CALL DELSPRITE(ALL) ELSE 540 510 FOR AQW=1 TO TIME STEP 100 :: SC=SC+100 :: DISPLAY AT(2,6)SIZE(5):SC :: NEXT AQW 520 IF SC>HIGH THEN HIGH=SC :: CALL CLEAR 530 GOTO 640 540 CALL KEY(1,X,Y) :: GOSUB 1310 :: IF X=18 THEN 570 550 CALL COINC(ALL,Z) :: IF Z<0 THEN GOTO 610 560 CALL KEY(1,X,Y) :: GOSUB 1310 :: IF X=18 THEN 570 ELSE 600 570 CALL POSITION(#1,Q,W) :: CALL LOCATE(#1,Q-16,W) 580 FOR I=1 TO 130 :: NEXT I 590 CALL POSITION(#1,Q,W) :: CALL LOCATE(#1,Q+16,W) 600 CALL COINC(ALL,Z) :: IF Z<0 THEN 610 ELSE 630 610 LIFE=LIFE-1 :: CALL DELSPRITE(ALL) :: IF LIFE=0 THEN 1260 :: GOTO 230 620 CALL SOUND(-1000,200,0) 630 GOTO 400 640 CALL CLEAR 650 CALL CHAR(97,"FF814242242418FF") 660 CALL CHAR(98,"818181FFFB818181") 670 AQW=-5 680 CALL CHAR(136,"31377B7F7FFFFFFFFF7F7F3F3F1F0098FCF8FCFCFFFFFFFEFEFEFEFCFCF0F0") 690 FOR I=2 TO 5 :: F(I)=5 :: NEXT I 700 CALL COLOR(10,1,1) :: CALL CHAR(104,"FF7E7E7E7E7E7E7E7E") 710 M=0 720 TIME=5000 730 CALL CHAR(120,"3F3F3F1F1F1F1F1F1F3A02020222323EFCFCFCF8F8F8F8F8F85C404040444C7C") 740 CALL MAGNIFY(3) 750 CALL COLOR(9,1,1) :: CALL CHAR(96,"818181FFFF818181") :: CALL CLEAR 760 FOR I=1 TO 4 :: CALL HCHAR(I*6,1,97,32) :: NEXT I 770 CALL VCHAR(1,5,96,24) :: CALL VCHAR(1,6,98,24) :: CALL VCHAR(1,26,96,24) :: CALL VCHAR(1,27,98,24) 780 FOR I=1 TO 4 :: CALL HCHAR(I*6,11,104) :: CALL HCHAR(I*6,21,104) :: NEXT I 790 CALL COLOR(10,5,1) :: CALL COLOR(9,10,1) 800 DISPLAY AT(1,2):"HIGH SCORE" 810 DISPLAY AT(2,1):HIGH :: DISPLAY AT(2,22):SC 820 DISPLAY AT(24,12)SIZE(4):TIME 830 CALL SPRITE(#1,120,5,168,224) 840 FOR I=1 TO 4 :: CALL SPRITE(#1+I,136,7,I*6*8-16,1,0,AQW) :: AQW=-AQW :: NEXT I 850 CALL JOYST(1,X,Y) :: GOSUB 1290 :: CALL MOTION(#1,0,X*1.25) 860 CALL POSITION(#1,Q,W) 870 IF W<16 OR W>240 THEN 880 ELSE CALL GCHAR(Q/8+3,W/8,Z) :: IF Z=104 THEN CALL SOUND(-1000,210,0) :: CALL HCHAR(Q/8+3,W/8,32) :: GOTO 1170 880 TIME=TIME-100 :: IF TIME=0 THEN 1260 890 DISPLAY AT(24,12)SIZE(5):TIME 900 CALL COINC(ALL,Z) :: IF Z<0 THEN LIFE=LIFE-1 :: IF LIFE=0 THEN 1260 ELSE TIME=5000-(M*400) :: GOTO 830 910 IF ASD=1 THEN IT=IT+1 :: GOTO 920 ELSE 930 920 IF IT=1 THEN 980 930 CALL KEY(1,S,D) :: GOSUB 1310 :: IF S=18 THEN 940 ELSE 990 940 CALL POSITION(#1,Q,W) :: CALL LOCATE(#1,Q-16,W) 950 ASD=1 960 IF YY=1 THEN YY=0 :: GOTO 1010 970 GOTO 990 980 IT=0 :: ASD=0 :: CALL POSITION(#1,Q,W) :: CALL LOCATE(#1,Q+16,W) 990 FOR I=2 TO 5 :: CALL POSITION(#I,Q,W) :: IF W<16 THEN CALL MOTION(#I,0,5) :: F(I)=-F(I) 1000 CALL JOYST(1,X,Y) :: GOSUB 1290 :: CALL MOTION(#1,0,X*1.25) 1010 CALL POSITION(#1,Q,W) 1020 IF W<16 OR W>250 THEN 1030 ELSE CALL GCHAR(Q/8+3,W/8,Z) :: IF Z=104 THEN CALL SOUND(-1000,310,2) :: CALL HCHAR(Q/8+3,W/8,32) :: YY=1 :: GOTO 1170 1030 IF ASD=1 THEN 1070 ELSE CALL KEY(1,S,D) :: IF S=18 THEN YY=1 :: GOTO 940 1040 CALL COINC(ALL,Z) :: IF Z<0 THEN LIFE=LIFE-1 :: IF LIFE=0 THEN 1260 ELSE TIME=5000-(M*400) :: GOTO 830 1050 CALL JOYST(1,X,Y) :: GOSUB 1290 :: IF X=0 AND Y=0 THEN CALL MOTION(#1,0,X*1.5) 1060 YY=0 1070 IF W>232 THEN CALL MOTION(#I,0,-5) :: F(I)=-F(I) 1080 IF W>8 AND W<232 THEN 1090 ELSE 1100 1090 CALL GCHAR(Q/8+2,W/8,Z) :: IF Z=32 THEN F(I)=-F(I) :: CALL MOTION(#I,0,F(I)) 1100 NEXT I 1110 CALL POSITION(#1,Q,W) :: IF Q<28 THEN 1130 1120 IF Y=4 THEN CALL POSITION(#1,Q,W) :: CALL GCHAR(Q/8,W/8,Z) :: IF Z=96 THEN CALL LOCATE(#1,Q-48,W) 1130 IF Q>8*20 THEN 1150 1140 IF Y=-4 THEN CALL POSITION(#1,Q,W) :: CALL GCHAR(Q/8,W/8,Z) :: IF Z=96 THEN CALL LOCATE(#1,Q+48,W) 1150 CALL POSITION(#1,Q,W) 1160 IF W>250 OR W<16 THEN 850 ELSE CALL GCHAR(Q/8+3,INT(W/8+.5),Z) :: IF Z=104 THEN CALL SOUND(-1000,110,1) :: CALL HCHAR(Q/8+3,W/8,32) ELSE 1230 1170 SC=SC+20 1180 DISPLAY AT(2,22):SC 1190 M=M+1 :: IF M=8 THEN 1200 ELSE IF YY=1 THEN 1060 ELSE 850 1200 CALL DELSPRITE(ALL) :: FOR T=1 TO TIME STEP 100 1210 CALL SOUND(200,563,0) :: CALL SOUND(200,282,0) :: SC=SC+100 :: DISPLAY AT(2,22):SC :: NEXT T :: GOTO 190 1220 DISPLAY AT(2,22):SC 1230 GOTO 850 1240 IF SC>HIGH THEN HIGH=SC :: DISPLAY AT(2,1)SIZE(6):HIGH 1250 GOTO 210 1260 IF SC>HIGH THEN HIGH=SC 1270 CALL SCREEN(16) :: CALL DELSPRITE(ALL) 1280 DISPLAY AT(10,6)SIZE(17):"PLAY AGAIN (Y/N)" :: CALL KEY(0,Q,W) :: IF Q=121 OR Q=89 THEN 110 ELSE IF Q=110 OR Q=78 THEN END ELSE 1280 1290 CALL KEY(0,B,C) :: IF B=83 THEN X=-4 ELSE IF B=68 THEN X=4 ELSE IF B=69 THEN Y=4 ELSE IF B=88 THEN Y=-4 1300 RETURN 1310 CALL KEY(0,B,C) :: IF C=-1 THEN RETURN ELSE IF B=46 THEN X=18 :: S=18 1320 RETURN Mad Hatter Ladder.zip Edited May 15, 2018 by jrhodes 4 Quote Link to comment Share on other sites More sharing options...
HOME AUTOMATION Posted May 15, 2018 Share Posted May 15, 2018 (edited) Hi jrhodes, Texas Instrument Book: 32-basic-programs-for-the-ti994a PDF download I O.C.R.ed this with chrome. It took some corrections. I think it's right. alas I have no josticks handy to confirm this. I ran this on CLASSIC99 using pastexb from the edit menu. ROADRACE.txt Edited May 15, 2018 by HOME AUTOMATION 1 Quote Link to comment Share on other sites More sharing options...
Omega-TI Posted May 15, 2018 Share Posted May 15, 2018 FILESYSTEM II Requires: 32K & Extended BASIC Contents: LOAD (Use if you want the program to 'autoload' on a diskette) FILESYSTEM (Actual Program) NOTES : DSK1. is assumed for all filenames XB - Filesystem.zip Quote Link to comment Share on other sites More sharing options...
Omega-TI Posted May 16, 2018 Share Posted May 16, 2018 Hi jrhodes, Texas Instrument Book: 32-basic-programs-for-the-ti994a PDF download I O.C.R.ed this with chrome. It took some corrections. I think it's right. alas I have no josticks handy to confirm this. I ran this on CLASSIC99 using pastexb from the edit menu. I cut and pasted it into my TIPI and tried it out in XB, but the car immediately goes to the right and promptly crashes. Quote Link to comment Share on other sites More sharing options...
jrhodes Posted May 16, 2018 Author Share Posted May 16, 2018 (edited) I cut and pasted it into my TIPI and tried it out in XB, but the car immediately goes to the right and promptly crashes. The .txt file provided needs the following changes: 360 M=M+1 :: CALL MOTION(#3,0,X* 400 IF Y3>RR THEN CALL MOTION(#3,0,0):: CALL LOCATE(#3,VV,RR) 580 TM=TM+M :: CALL MOTION(#1,0,0,#2,0,0,#3,0,0,#4,0,0 Here is a .zip of the corrected FIAD and .txt file.roadrace.zip Edited May 16, 2018 by jrhodes 2 Quote Link to comment Share on other sites More sharing options...
Omega-TI Posted May 16, 2018 Share Posted May 16, 2018 The .txt file provided needs the following changes: 360 M=M+1 :: CALL MOTION(#3,0,X* 400 IF Y3>RR THEN CALL MOTION(#3,0,0):: CALL LOCATE(#3,VV,RR) 580 TM=TM+M :: CALL MOTION(#1,0,0,#2,0,0,#3,0,0,#4,0,0 I'll make the changes in a couple of hours, I gotta go eat and get some stuff done first. Thanks for the update. -- EDIT -- Changes made! Now it works. Just for the record - it was INSANELY EASY to use this text listing on Real Iron using the TIPI. 1) I Highlighted & copied the text 2) Opened a new tab in my browser, click my TIPI favorite on my task bar. 3) Created a new directory, created a new filename for the program, pasted the text and saved it. 4) Closed the tab. ---------------------------------------------------------------------------------------------------- THAT WAS IT, MERE SECONDS! The RPi is always on, so it's ready to take anything you offer it on your WiFi network. After that it's just a matter of turning on the TI and loading it. DAMN, this is great! I'm thinking once the internal card comes out, there will be a lot of minimally expanded P-Boxes that will be useful again. BTW - This is a cool thread, some of these are new to me, or I've lost it enough now to think they are new to me. Quote Link to comment Share on other sites More sharing options...
jrhodes Posted May 16, 2018 Author Share Posted May 16, 2018 Here is Shooting Gallery in a .txt and a FIAD for classic99, enjoy. 100 RANDOMIZE 110 DIM TOT(4),SC(14) 120 FOR L=2 TO 5 :: SC(L)=15 :: NEXT L 130 FOR L=6 TO 8 :: SC(L)=10 :: NEXT L 140 FOR L=9 TO 14 :: SC(L)=25 :: NEXT L 150 CALL CHAR(98,"081C3E7F7F3E1C08") 160 GOSUB 980 170 CALL CHAR(96,"0003021E3E7E0000") 180 CALL CHAR(97,"002020F820200000") 190 CALL CHAR(102,"10387CFEFE7C3810") 200 CALL CHAR(99,"FFFFFFFFFFFFFFFF") 210 CALL CHAR(101,"000000FFFF000000") :: CALL COLOR(9,7,1) 220 CALL CHAR(100,"FCB4FCCCFCB4CCFC") 230 GOSUB 1070 :: GOSUB 1220 240 CALL CLEAR :: CALL HCHAR(4,1,99,32) :: CALL HCHAR(22,1,99,32) 250 PL=1 260 CALL HCHAR(9,1,101,32) :: CALL HCHAR(15,1,101,32) 270 DISPLAY AT(1,1):"PLAYER 1: ___ PLAYER 3: ___" 280 DISPLAY AT(3,1):"PLAYER 2: ___ PLAYER 4: ___" 290 P=1 300 CALL MAGNIFY(2) 310 CALL SPRITE(#2,96,12,40,20,0,S1,#3,96,12,54,85,0,S1,#4,96,12,40,150,0,S1,#5,96,12,54,215,0,S1) 320 CALL SPRITE(#6,100,14,85,30,0,-S2,#7,100,14,85,110,0,-S2,#8,100,14,85,190,0,-S2) 330 CALL SPRITE(#9,98,5,130,30,0,S3,#10,98,5,130,110,0,S3,#11,98,5,130,190,0,S3) 340 CALL SPRITE(#12,102,5,155,30,0,-S3,#13,102,5,155,110,0,-S3,#14,102,5,155,190,0,-S3) 350 CALL SPRITE(#1,97,2,90,120) 360 DISPLAY AT(23,1):" " 370 FOR L=1 TO 10 380 DISPLAY AT(23,11):"PLAYER";PL :: CALL SOUND(30,600,4) :: FOR L2=1 TO 20 :: NEXT L2 390 DISPLAY AT(23,11):" " :: FOR L2=1 TO 15 :: NEXT L2 400 NEXT L 410 SH=15 :: TG=0 420 DISPLAY AT(24,1):"SHOTS LEFT:" :: CALL HCHAR(24,16,43,SH) 430 DISPLAY AT(23,1):"TIME:" 440 TI=0 :: TIME=30 450 CALL JOYST(1,X,Y) :: CALL MOTION(#1,-Y*2,X*2) :: CALL KEY(1,K,S) :: IF S<>0 THEN CALL SOUND(60,-6,0) :: GOTO 510 460 TI=TI+1 :: TIME=30-INT(TI/5) :: DISPLAY AT(23,7):TIME :: IF TIME=0 THEN 690 470 GOTO 450 480 SH=SH-1 :: IF SH=0 OR TG=13 THEN 690 490 DISPLAY AT(24,1):"SHOTS LEFT:" :: CALL HCHAR(24,16,43,SH) 500 GOTO 450 510 CALL POSITION(#1,DR,DC) :: IF DR<70 THEN 560 ELSE IF DR>140 THEN 650 ELSE IF DR>110 THEN 610 520 CALL COINC(#1,#6,7,C) :: IF C=-1 THEN SP=6 :: GOTO 890 530 CALL COINC(#1,#7,7,C) :: IF C=-1 THEN SP=7 :: GOTO 890 540 CALL COINC(#1,#8,7,C) :: IF C=-1 THEN SP=8 :: GOTO 890 550 GOTO 480 560 CALL COINC(#1,#2,7,C) :: IF C=-1 THEN SP=2 :: GOTO 890 570 CALL COINC(#1,#3,7,C) :: IF C=-1 THEN SP=3 :: GOTO 890 580 CALL COINC(#1,#4,7,C) :: IF C=-1 THEN SP=4 :: GOTO 890 590 CALL COINC(#1,#5,7,C) :: IF C=-1 THEN SP=5 :: GOTO 890 600 GOTO 480 610 CALL COINC(#1,#9,TL,C) :: IF C=-1 THEN SP=9 :: GOTO 890 620 CALL COINC(#1,#10,TL+1,C) :: IF C=-1 THEN SP=10 :: GOTO 890 630 CALL COINC(#1,#11,TL+1,C) :: IF C=-1 THEN SP=11 :: GOTO 890 640 GOTO 480 650 CALL COINC(#1,#12,TL+1,C) :: IF C=-1 THEN SP=12 :: GOTO 890 660 CALL COINC(#1,#13,TL+2,C) :: IF C=-1 THEN SP=13 :: GOTO 890 670 CALL COINC(#1,#14,TL+2,C) :: IF C=-1 THEN SP=14 :: GOTO 890 680 GOTO 480 690 DISPLAY AT(24,1):" GAME OVER PLAYER";PL :: CALL SOUND(900,800,5) :: FOR L=1 TO 800 :: NEXT L :: DISPLAY AT(24,1):" " 700 IF TG=13 AND TIME>0 THEN GOSUB 820 710 IF PL<NP THEN PL=PL+1 :: GOTO 290 720 FOR L=1 TO 4 730 DISPLAY AT(24,1):" " :: CALL SOUND(40,400,4) 740 FOR L2=1 TO 20 :: NEXT L2 750 DISPLAY AT(24,7):"PLAY AGAIN Y/N?" 760 FOR L2=1 TO 15 :: NEXT L2 770 NEXT L 780 CALL KEY(3,K,S) :: IF S=0 THEN 780 790 IF K=78 THEN CALL CLEAR :: STOP 800 IF K=89 THEN TOT(1)=0 :: TOT(2)=0 :: TOT(3)=0 :: TOT(4)=0 :: CALL DELSPRITE(ALL) :: GOSUB 1220 :: GOTO 240 810 GOTO 720 820 CALL SOUND(700,200,5,900,5) 830 DISPLAY AT(24,1):"*** BONUS POINTS AWARDED ***" 840 FOR L=1 TO 800 :: NEXT L 850 TOT(PL)=TOT(PL)+(15*TIME) 860 DISPLAY AT(ROW,COL):TOT(PL); 870 DISPLAY AT(24,1):" " 880 RETURN 890 CALL SOUND(50,400,0) 900 CALL COLOR(#SP,9) :: FOR L=1 TO 5 :: NEXT L 910 CALL DELSPRITE(#SP) 920 TG=TG+1 930 TOT(PL)=TOT(PL)+SC(SP) 940 IF PL/2=INT(PL/2) THEN ROW=3 ELSE ROW=1 950 IF PL=1 OR PL=2 THEN COL=10 ELSE COL=25 960 DISPLAY AT(ROW,COL):TOT(PL); 970 GOTO 480 980 CALL CLEAR :: CALL SCREEN(10) 990 DISPLAY AT(5,13):"T I" :: DISPLAY AT(8,7):"S H O O T I N G" :: DISPLAY AT(11,:"G A L L E R Y" 1000 FOR L=1 TO 1000 :: NEXT L 1010 FOR L=1 TO 10 1020 CALL HCHAR(INT(RND*22+1),INT(RND*26+1),98,1) :: CALL SOUND(50,-6,0) 1030 FOR L2=1 TO 20 :: NEXT L2 1040 NEXT L 1050 FOR L=1 TO 500 :: NEXT L 1060 RETURN 1070 CALL CLEAR :: CALL SCREEN( 1080 DISPLAY AT(4,1):"DO YOU NEED INSTRUCTIONS?" :: DISPLAY AT(6,1):"RESPOND Y/N" 1090 CALL SOUND(100,400,4) 1100 CALL KEY(3,K,S) :: IF S=0 THEN 1100 1110 IF K=78 THEN 1210 1120 IF K<>89 THEN 1080 1130 CALL CLEAR 1140 CALL SPRITE(#2,96,12,15,20,#3,100,14,38,20,#4,98,5,63,20) :: CALL MAGNIFY(2) 1150 DISPLAY AT(3,:"15 POINTS" :: DISPLAY AT(6,:"10 POINTS" :: DISPLAY AT(9,:"25 POINTS" 1160 DISPLAY AT(12,1):"USE THE JOYSTICK TO POSITION" :: DISPLAY AT(14,1):"THE CROSSHAIR ON THE TARGET" 1170 DISPLAY AT(16,1):"AND PRESS THE FIRE BUTTON TO" :: DISPLAY AT(18,1):"SHOOT. UP TO 4 PEOPLE CAN" 1180 DISPLAY AT(20,1):"PLAY AT ONE TIME. EACH" :: DISPLAY AT(22,1):"PLAYER HAS 15 SHOTS." 1190 DISPLAY AT(24,7):"PRESS ANY KEY" 1200 CALL KEY(3,K,S) :: IF S=0 THEN 1200 1210 CALL DELSPRITE(ALL) :: RETURN 1220 CALL CLEAR 1230 DISPLAY AT(4,1):"NUMBER OF PLAYERS? _" :: ACCEPT AT(4,20)VALIDATE("1234")SIZE(-1)BEEP:NP 1240 DISPLAY AT(8,1):"TARGET SPEED? (1-3) _" :: DISPLAY AT(10,1):"(3 = FASTEST)" 1250 ACCEPT AT(8,21)VALIDATE("123")SIZE(-1)BEEP:DL 1260 S1=3*DL :: S2=2*DL :: S3=5*DL 1270 TL=4+(2*DL) 1280 RETURN Shooting Gallery.zip 3 Quote Link to comment Share on other sites More sharing options...
jrhodes Posted May 16, 2018 Author Share Posted May 16, 2018 Lastly for now, here is Banzai Bunny. The .zip contains a FIAD and .txt, enjoy! Your job is to move the bunny from the bottom of thescreen across six lanes of traffic, over a polluted river on thebacks of turtles, and finally to safety on the far shore. Thebunny is controlled by the E, S, and D keys, and points arescored by reaching the other side of the river. As many asnine players may compete at one time. Each player has fivebunnies, and a player's turn continues until all five have been lost. 100 CALL CLEAR :: RANDOMIZE 110 CALL CHAR(40,"FFFFFFFFFFFFFFFF") 120 CALL CHAR(96,"000000030709030303030301000000000000000040C0808080C0C0C000000000") 130 CALL CHAR(100,"000000000000070F0F0E000000000000000000002010D8F8E030000000000000") 140 CALL CHAR(104,"0000000004081B1F070C000000000000000000000000E0F0F070000000000000") 150 CALL CHAR(108,"000000030709030303030301000000000000404040808080808080C040400000") 160 CALL CHAR(112,"000000000000070F0F38000000000000000000002010D8F8E01C000000000000") 170 CALL CHAR(116,"0000000004081B1F073C000000000000000000000000E0F0F01C000000000000") 180 CALL CHAR(120,"00000000000102043F7FFFFF381000000000000000F04844FEFFFFFF1C080000") 190 CALL CHAR(124,"00000000000F12227FFFFFFF381000000000000000804020FCFEFFFF1C080000") 200 CALL CHAR(128,"0000070F3F3F7FFFFF7F3F3F0F0700000000E0F0FCFCFEFFFFFEFCFCF0E00000") 210 CALL CHAR(132,"FFFFFFFFFFFFFFFF") :: CALL CHAR(136,"000000000000000F") 220 CALL CHAR(140,"80C06070303008060303030607181800010203071C30708080C0607030100100") 230 CALL COLOR(2,5,1,13,4,1,14,2,1) 240 DISPLAY AT(4,1):"NUMBER OF PLAYERS? _" 250 ACCEPT AT(4,20)VALIDATE(NUMERIC)SIZE(-1)BEEP:NP 260 CALL CLEAR 270 CALL HCHAR(23,1,132,32) :: CALL HCHAR(24,1,132,32) 280 CALL HCHAR(10,1,132,32) :: CALL HCHAR(9,1,132,32) 290 CALL HCHAR(1,1,132,32) :: CALL HCHAR(2,1,132,32) 300 FOR L=12 TO 21 STEP 2 310 CALL HCHAR(L,1,136,32) 320 NEXT L 330 FOR L=3 TO 8 340 CALL HCHAR(L,1,40,32) 350 NEXT L 360 CALL MAGNIFY(3) 370 CALL SPRITE(#2,124,2,160,70,0,9,#3,124,9,160,150,0,9,#4,124,14,160,230,0,9) 380 CALL SPRITE(#5,124,15,144,10,0,12,#6,124,5,144,100,0,12,#24,124,13,144,190,0,12) 390 CALL SPRITE(#7,124,2,128,70,0,10,#8,124,9,128,150,0,10,#9,124,11,128,230,0,10) 400 CALL SPRITE(#10,120,9,112,70,0,-10,#11,120,14,112,150,0,-10,#12,120,16,112,230,0,-10) 410 CALL SPRITE(#13,120,11,96,10,0,-12,#14,120,5,96,100,0,-12,#25,120,14,96,190,0,-12) 420 CALL SPRITE(#15,120,2,80,70,0,-9,#16,120,10,80,150,0,-9,#17,120,15,80,230,0,-9) :: GOTO 460 430 CALL SPRITE(#19,128,2,48,10,0,4) 440 CALL SPRITE(#21,128,2,32,10,0,-3) 450 CALL SPRITE(#22,128,2,16,10,0,5) :: RETURN 460 FOR PL=1 TO NP 470 BUNNY=5 :: FOR D=1 TO 5 :: CALL SOUND(300,500,0) :: CALL SOUND(300,300,0) :: NEXT D 480 DISPLAY AT(24,1):USING "###### #":"PLAYER",PL; :: DISPLAY AT(24,20):USING "####### #":"BUNNIES",BUNNY 490 DISPLAY AT(1,10):"SCORE: "; 500 GOSUB 530 510 NEXT PL 520 GOTO 890 530 GOSUB 430 :: CALL SPRITE(#18,96,16,176,125) :: R=176 :: C=125 540 CALL KEY(3,K,S) 550 IF R<64 THEN 610 560 CALL COINC(ALL,CO) :: IF CO<>0 THEN 780 570 IF K=69 THEN GOSUB 640 :: IF R<64 THEN 700 ELSE 540 580 IF K=83 THEN GOSUB 660 :: GOTO 540 590 IF K=68 THEN GOSUB 680 :: GOTO 540 600 GOTO 540 610 CALL COINC(ALL,CO) :: IF CO=0 THEN 780 ELSE 570 620 CALL SOUND(70,500,5,-6,0) :: CALL SOUND(30,300,5,-4,0) :: RETURN 630 RETURN 640 CALL PATTERN(#18,108) :: R=R-16 :: SW=1 :: IF R<1 THEN R=1 650 CALL LOCATE(#18,R,C) :: CALL PATTERN(#18,96 ):: GOSUB 620 :: RETURN 660 CALL PATTERN(#18,116) :: C=C-16 :: SW=1 :: IF C<1 THEN C=1 670 CALL LOCATE(#18,R,C) :: CALL PATTERN(#18,104) :: GOSUB 620 :: RETURN 680 CALL PATTERN(#18,112) :: C=C+16 :: SW=1 :: IF C>240 THEN C=240 690 CALL LOCATE(#18,R,C) :: CALL PATTERN(#18,100 ) :: GOSUB 620 :: RETURN 700 CALL KEY(3,K,S) 710 IF S<>0 THEN IF K=69 THEN GOSUB 640 ELSE IF K=83 THEN GOSUB 660 ELSE IF K=68 THEN GOSUB 680 720 CALL POSITION(#18,R,C) :: IF R=1 THEN CALL MOTION(#18,0,0) :: GOTO 850 730 IF C<7 OR C>238 THEN 780 740 IF R<=48 AND R>32 THEN CALL MOTION(#18,0,4) ELSE IF R<=32 AND R>16 THEN CALL MOTION(#18,0,-3) ELSE CALL MOTION(#18,0,5) 750 IF SW=1 THEN CALL COINC(ALL,CO) :: IF CO=0 THEN 780 ELSE SW=0 770 GOTO 700 780 CALL SOUND(300,3500,0,5000,5) :: CALL SOUND(-200,200,5,-6,0) 790 CALL PATTERN(#18,140) :: CALL COLOR(#18,11) 800 FOR D=1 TO 25 :: NEXT D 810 CALL DELSPRITE(#18) 820 BUNNY=BUNNY-1 :: IF BUNNY<1 THEN 630 830 DISPLAY AT(24,27):USING "##":BUNNY 840 GOTO 530 850 CALL SOUND(1500,400,5,1000,0) :: FOR D=1 TO 500 :: NEXT D 860 SC(PL)=SC(PL)+15 870 DISPLAY AT(1,17):USING "###":SC(PL); 880 GOTO 530 890 CALL DELSPRITE(ALL) :: CALL CLEAR 900 DISPLAY AT(2,7):"** SCORE **" 910 FOR L=1 TO NP 920 DISPLAY AT(4+L*2,4):USING "###### # ###":"PLAYER",L,SC(L) 930 NEXT L 940 GOTO 940 Banzai Bunny.zip 2 Quote Link to comment Share on other sites More sharing options...
+Ksarul Posted May 16, 2018 Share Posted May 16, 2018 That last one reminded me of another fun one in that vein: Chicken Helper from the old IUG program library. Quote Link to comment Share on other sites More sharing options...
HOME AUTOMATION Posted May 19, 2018 Share Posted May 19, 2018 I couldn't locate this the other day when it came to mind: software from books user=anonymous (no password)asks twice. 1 Quote Link to comment Share on other sites More sharing options...
+Ksarul Posted May 19, 2018 Share Posted May 19, 2018 Also note all of the TI books on this page that also have DSK files containing all of the programs from the book. Many do not, but the ones that do will significantly decrease the number of books you have to deal with on your programming hunt. 2 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.