-
Posts
537 -
Joined
-
Last visited
Content Type
Profiles
Forums
Blogs
Gallery
Events
Store
Posts posted by oddemann
-
-
Ver 5
BUT but but... why dos it only do one round and then fail? Also it was way slower...
Spoiler50 CALL CLEAR 100 DATA 1,2,"C038040000000000" 200 DATA 1,2,"0000040202020101" 300 DATA 2,2,"0101020202040000" 400 DATA 2,2,"00000000000438C0" 500 DATA 2,1,"0000000000201C03" 600 DATA 2,1,"8080404040200000" 700 DATA 1,1,"0000204040408080" 800 DATA 1,1,"031C200000000000" 801 PRINT "Spinner Demo Ver. 5" 802 PRINT "press a key to stop" 803 PRINT 804 TIME=5 805 GOSUB 1000 806 CALL KEY(0,K,S) 807 IF S=0 THEN 805 808 PRINT "Spinner stopped" 809 END 900 Read A,B,C$ 1000 FOR I=128 to 135 1025 Read A,B,C$ 1050 CALL CHAR (I,C$) 1100 CALL HCHAR(A,B,I) 1200 CALL HCHAR(A,B,32) 1300 GOSUB 9010 1400 NEXT I 1500 RETURN 9000 REM delay 9010 FOR T=0 TO TIME 9020 NEXT T 9999 RETURN
-
Hmmm, if I go this way...
DATA 32,"00"
DATA 1,2,128,"C038040000000000"
DATA 1,2,129,"0000040202020101"
DATA 2,2,130,"0101020202040000"
DATA 2,2,131,"00000000000438C0"
DATA 2,1 132,"0000000000201C03"
DATA 2,1 133,"8080404040200000"
DATA 1,1,134,"0000204040408080"
DATA 1,1,135,"031C200000000000"
Read Char nr., "pic"
Display it in a for-next loop - LINE NR CALL HCHAR(A,B,C)
Then GOSUB the time delay
Maybe even not have Char 32 in DATA as it is the same... would that make it more even?- 1
-
18 hours ago, TheBF said:
Ha. That was a long time ago.
You might want to organize the code like this. The time delay is in one place.
OK... I made it bigger, but there is a slight hold at the start... is it possible to make it move more even around and around?
Spoiler100 CALL CLEAR 110 CALL CHAR(128,"C038040000000000") 120 CALL CHAR(129,"0000040202020101") 130 CALL CHAR(130,"0101020202040000") 140 CALL CHAR(131,"00000000000438C0") 150 CALL CHAR(132,"0000000000201C03") 160 CALL CHAR(133,"8080404040200000") 170 CALL CHAR(134,"0000204040408080") 180 CALL CHAR(135,"031C200000000000") 190 PRINT "Spinner Demo Ver 4" 200 PRINT "press a key to stop" 210 PRINT 220 TIME=3 230 GOSUB 1000 240 CALL KEY(0,K,S) 250 IF S=0 THEN 230 260 PRINT "Spinner stopped" 270 END 1000 REM Spinner sub-routine 1010 CALL HCHAR(1,2,128) 1020 GOSUB 9010 1040 CALL HCHAR(1,2,129) 1050 GOSUB 9010 1055 CALL HCHAR(1,2,32) 1060 CALL HCHAR(2,2,130) 1070 GOSUB 9010 1080 CALL HCHAR(2,2,131) 1090 GOSUB 9010 1095 CALL HCHAR(2,2,32) 1100 CALL HCHAR(2,1,132) 1110 GOSUB 9010 1120 CALL HCHAR(2,1,133) 1130 GOSUB 9010 1135 CALL HCHAR(2,1,32) 1140 CALL HCHAR(1,1,134) 1150 GOSUB 9010 1160 CALL HCHAR(1,1,135) 1170 GOSUB 9010 1175 CALL HCHAR(1,1,32) 1180 RETURN 9000 REM delay 9010 FOR T=1 TO TIME 9020 NEXT T 9999 RETURN
-
3 hours ago, Retrospect said:
Yeah me too, I see there are lots of new games coming out for other retro formats, the Spectrum for example gets new games each month.
Two thing could be done...
#1 Make a tread about ideas for games, free for all to try out ideas and make it themself. But one tread where we brainstorm and come up with ideas. Just free for all and all ideas are welcome, not critical thinking. Only for the one taking on the idea.
#2 Educate more people to be able to make games.
And maybe...
#3 work together on games?- 2
-
16 hours ago, matthew180 said:
I have seen other forums try this, and IMO it does not help, and I actually miss things I would have otherwise read. The 99/4A community here does not have enough people doing things in all those areas to justify separate subforums, again IMO.
I can see that point, but... we have split this forum into 3 at this point. And it works! Sometimes I do not go to "Development", I just stay at the first level. So it works. BUT, I also see that I might miss stuff if I do NOT go to "Development". But I like that split, as I know where to ask and find stuff. With that split I know that if I ask in one place I might get answer from just the right person.
14 hours ago, GDMike said:I just do a search on a topic and try my best that I used the right term and get a hit and then start reading from the top. Of course it's going to take time, but this way I can find most stuff.
I have tried that and at times is is mostly a miss, I get hits, but they are fare from what I want. BUT If I know what to specificity look for, it is easier. But... usually I am looking for something I know exist, BUT I do not know the "name" of it. And most of the time then, searching is a miss. I then end up asking or making my own tread about stuff. And then I run the risk of getting... "You need to read TI-99/4A FAQ" and sometimes that works. And sometimes I just give up. as the FAQ gives me an overview. But luckily, often someone takes the time to give me info, that I can use and understand. But I am making more treads and more stuff to search, for the next guy. And IF I made a good title on my tread, it might be of help.
13 hours ago, OLD CS1 said:Good thread topics and tags help immensely. Topics like "What I discovered today..." on a thread with a breakdown of some assembly tricks are unhelpful. Also, avoiding thread derailing and hijacking helps, and no one should be insulted when a thread owner tells people to move their tangential discussion to another thread, nor should they be complete pricks and thumb their nose at the request (you know who you are.) To that end, I have the ability to move posts between threads, into new threads, and move threads between subforums as needed or requested.
And at this point I am bad, i am NOT good at making a good tread title, do not think about using tags or in other way make it smart for the future. Is there a "This is what you need to think about in a title, topic and tag with!"? At this point in time I am adding to the chaos 😛
I see your points, but still IMO, I think that Ex Basic should get its own tread as it can be compiled and made into something usable on the TI. And that there are many that still use Ex Basic. Example... I was playing around with "Nerm of Bemer" the version I was looking at, did not have joystick support. Then in a tread about Ex Basic I could search for "how to joystick" and do the replacement my self as learning. On the other hand I did search then for "Nerm of Bemer" and found it had been compiled and with joystick setup. Also I think that some of the old games can be "modernized" and made better if one know what and where to fix stuff. And I think a separate forum about Ex Basic, would over time help me get better with Ex Basic. I can see that I have improved, since I found my own tread about "Nerm of Bemer" and program listings. I could debug them fast and I see that I understand much more now, then back in 2019. So... I can learn this way too.
BUT... seeing the skill of some of the people here, I know I would benefit from a forum about ONLY Ex Basic. Over time I would learn more and also the next guy will also benefit from it, I think.- 1
-
On 5/12/2019 at 11:25 PM, TheBF said:
A simple spinner sub-routine. Might be useful for BASIC game makers.
The x,y coordinates could be variables of course.
My SPINN on it...100 CALL CLEAR 110 CALL CHAR(128,"1C02010101000000") 120 CALL CHAR(129,"000000010101021C") 130 CALL CHAR(130,"0000008080804038") 140 CALL CHAR(131,"3840808080000000") 150 PRINT "Spinner Demo" 160 PRINT "press a key to stop" 170 PRINT 180 GOSUB 9000 190 PRINT "Spinner stopped" 200 END 9000 TIME=8 :: REM TIME is to slow it down 9001 CALL HCHAR(1,1,128) 9002 FOR I=1 TO TIME 9003 NEXT I 9010 CALL HCHAR(1,1,129) 9011 FOR I=1 TO TIME 9012 NEXT I 9020 CALL HCHAR(1,1,130) 9021 FOR I=1 TO TIME 9022 NEXT I 9030 CALL HCHAR(1,1,131) 9032 FOR I=1 TO TIME 9033 NEXT I 9040 CALL KEY(0,K,S) 9050 IF S=0 THEN 9000 9060 CALL HCHAR(1,1,32) 9070 RETURN
- 1
-
I see that many talk about programming and it looks like it is mostly a thing people do alone and questions related to a specific lango is spread all over. What about making a new "TI-99/4A Computers TI-99/4A Development" forum where it is narrowed down to one specific thing.
"TI-99/4A - Programming in Basic!"
"TI-99/4A - Programming in Extended Basic!" (I would love this one and to keep learning about Ex. B.).and
.so
.on
What about making a dedicated forum tread for Programming in...
- TI Basic!
- TI Ex Basic!
- Logo!
- Fortran
- Pascal
- Assembler
- GPL? or something
- RXB!
- And other programming langos!
Why... To collect specific stuff for Basic (and other programming langoes) in one place with separation of different things within Basic. It would be a "living book" about new ways of programming and where new ideas could be talked about. Like a tread about RND and best ways to use it. And how to practically put it in a program. Also people could ask about a specific subject and then it will be searchable within the "under forum". Then there is a specific place for Basic where everything is ONLY about Basic. And so for every other langos anyone wants to put out there.
Even if Basic gets it's own tread, it is hard to find something within x pages of stuff about Basic. Maybe you have to look at 20 pages and countless posts to find stuff about "put in that ever your looking for!". It gets old fast!
Then in the Basic tread there will be a tread about...
- How to use Data to save space. (thinking about how pixelpedant way to saved space, in his last game - Great idea. And with its own tread this could maybe be expanded upon.)
- How to make the optimal joystick routine.
- Optimal way of "painting" the screen, save time and space.
- Tricks and tips!
Also I think it would make it easier to start to learn an new programming lango! At least one could ask question within that specific lango. Also the masters of a topic would know how to push forward development of langos/games/programs. (from questions)
Over time the separate treads would be a "How to" for all beginners. Like a "playing around" and start testing one and one of the topics. You will educate yourself within your chosen programming lango. Also stuff could be formatted so that more programmers can learn and start to make programmes for the TI. There is one tread about optical illusion, with its own tread in its own lango this could maybe make it easier for people to test, try and make there own stuff to inspire others again. (easier to find to in a learning setting)
I asked a question about making an animation of a running man (a long time ago, I learned so much from that question)... That tread is WAY down in "TI-99/4A Computers" or "TI-99/4A Computers TI-99/4A Development". I wish it was easy to get back to and then maybe use it or just play around with it. But as it is now... hard to find stuff. What was the name of that tread? And then there was this other tread about a trick in Ex. Basic... Don't remember the name or anything else... With one place for Basic, Ex Basic and others. It would be easier to find stuff and it is ONLY about one subject that is fragmented into all related things.
Now - "TI-99/4A Computers" or "TI-99/4A Computers TI-99/4A Development" contains all and everything!
I think that sorting things in this way it would be easier to help people and grow there potential to make programs. Or at least make it easier to find something your looking for.
This is what I think... what do you think?- 2
-
On 8/23/2016 at 10:52 AM, sometimes99er said:
So this is it. Bugs, fine tuning and testing's done. This could be the final release.
Here's a one page black and white instruction paper (click picture below).
http://sometimes.planet-99.net/pic/snake.plissken.instructions.onepage.jpgSnake Plissken 002.pdf Snake Plissken 001.pdf Snake Plissken 003.pdf
- 4
-
On 10/11/2022 at 1:38 PM, sometimes99er said:
- 1
-
6 hours ago, 9640News said:
Sometimes, even fully commented source code is not enough. I have looked at some of your source code in the past and you go far beyond what a lot of programmers do in commenting source code.
For me though back in the 80's and 90's, one would have really had to dumb it down for me to get the basic-basics. That first step was too big of a step. Now, I will tell you it is unlikely I will program in GPL in the future, however, I would follow along as @dhe suggested should you put out some kind of monthly tutorial at the beginner's level so that I could understand some of the basics.
Same here! Some of the beginner stuff is to another beginner that is smarter then me, hehehe. And for that reason I will most probably struggle along with the limitations of Ex B. As it has a good guide to learn and make programs. But if I was to get the stupid beginners program... I might try it on!
- 3
- 1
-
Why not take advantage of the keyboards of today and instead make a "translator" inside the TI that you can connect to? And then add a USB / PS/2 connection to the TI. And if one wants to be really cool one could add BT and other WIFI standards to the "translator".
Then you would have a smaller part to upgrade, if changes come along. -
More to delete...
- 3
-
Talking with some friends about old games and I came across this YT about Elite:
Then I started to think... Have this been made for the TI? And if not, there are a lot of new skills. Maybe NOW it can be made? Quick looking around here, and yes there has been some talk about this game.
Guess my main question is, can this game be made for the TI? -
-
VERY COOL!
It is great that you have used the "TI as is" to make this game and run it! I think you have used the strong points of the TI and made a really good game. From what I can see this game is so good that it works today even being used to a much faster game pace. You have done some smart programming "moves" to make it "Fast". I will for sure test it out when I get back from vacation!
LOL - When is Hells Halls II released? ?
Also, I think your game concept is a strong one and can grow, in many ways.
PS! I think you will sell out!- 3
- 2
-
4 hours ago, F.G. Kaal said:
Do you have a Youtube where you show features of your emulator?
-
I have a "modern" cassette player that I can plug into my PC via USB. But reading here and having tested it to read wav files from that player, it dos not work. So the question is... The old "Data-cassette-player", does they play correct speed or does it not matter?
-
I am thinking about just replacing the bottom part and using that "space" to mod it in the same kinda way. But re-using all top parts. So the top looks original.
-
3 hours ago, RXB said:
With a loop that is how you measure better, been saying this for some time now.
With some math you can get it down to millionths of a second.
Please do not "loop" me into that garb! And I did not reply to you!
-
Can this be integrated into Classic99 as it's on Basic ver.?
That is a huge jump in speed and I would love to have a "Press 2" for MMX Basic 2! in Classic99.- 1
-
5 hours ago, senior_falcon said:
Here is MMXB2.OBJ
This has the faster CALL CHAR. I just compared this with standard BASIC and XB, running at the same time. Looping 1000 times:
XB 134 seconds, Basic 181 seconds, MMXB 54 seconds (the programs were run simultaneously so the results should be comparable to each other even though the times may be off)
This is very interesting!
- 1
-
Not a great Translation...
Spoiler100 CALL CLEAR 1000 RANDOMIZE :: OPTION BASE 1 :: ON ERROR 20001 1020 DIM A$(20),B$(8),C$(5),XZ(5),E(4),YZ(5),SX(8),SY(8),G$(8),K(5) 1030 WRZT$=CHR$(129)&CHR$(130)&CHR$(131)&CHR$(132)&CHR$(133)&CHR$(134)&CHR$(140)&CHR$(135) 1500 DATA 32,47,"FFC0A09088848383","8383838383838383","8383848890A0C0FF","FFFF0000000000FF" 1510 DATA C1C12111090503FF,C1C1C1C1C1C1C1C1,FF0305091121C1C1,FF0000000000FFFF,000406FFFF0604,002060FFFF602,1E0E1E3A70E04 1520 DATA 7870785C0E0702,18181818187E3C18,183C7E1818181818,02070E5C787078,40E0703A1E0E1E 1530 DATA 123,142,"FFFFFFFF","8142240000244281","0000000000001",,"00305F0E6C202C",,"8" 1540 DATA 00000008,0004,1,00000240001,0000000200000004,,0240003030044,0008001818122,004018180200008,,08114410A2144008,3C7EFFFFFFFF7E3C,FFFFF 1550 DATA 58,64 1552 DATA 00626408102646,,,,,, 1555 DATA 91,96 1560 DATA ,FFFFC3C3C3C3FFFF,0606030303030606,183C7E7E3C18,0000003C, 1650 DATA 2,1,"time",7,1,"Gaia",2,18,"gala```:ok",4,18,"dollar",6,18,"hunter",8,18,"energy" 1700 DATA 1,2,5,10,1,8,10,10,1,19,12,10,12,2,29,9 3000 RESTORE 1500 :: FOR U=1 TO 4 :: READ A,B :: FOR I=A TO B :: READ E$ :: CALL CHAR(I,E$) :: NEXT I :: NEXT U 4000 CALL SCREEN(2) 4002 CALL COLOR(5,16,14,6,16,14,7,16,14,8,16,14) 4003 CALL COLOR(9,2,4,10,2,4,11,2,4,12,2,4) 4005 CALL COLOR(3,2,12,4,2,12) 4010 CALL COLOR(0,2,2,1,16,6,2,16,4,13,16,5,14,15,5) 5000 CALL HCHAR(1,1,96,672) :: CALL HCHAR(22,1,64,96) :: CALL VCHAR(1,32,31,48) 5010 RESTORE 1700 :: FOR I=1 TO 4 :: READ A,B,C,D :: CALL VCHAR(A,B,33,D) :: CALL HCHAR(A+D,B,35,C) :: CALL VCHAR(A,B+C,37,D) :: CALL HCHAR(A,B,39,C) 5020 CALL HCHAR(A,B,32) :: CALL HCHAR(A+D,B,34) :: CALL HCHAR(A+D,B+C,36) :: CALL HCHAR(A,B+C,38) :: NEXT I :: CALL D(-2,18,"e\\\\\\\\\f") 5021 DISPLAY AT(23,1):"@@@@HAVE@3@MIN@OF@PATIENCE@@@@" :: RESTORE 5028 :: FOR Y=1 TO 8 :: READ B$(Y) :: IF Y<6 THEN READ C$(Y) 5022 NEXT Y :: READ D$ :: FOR Y=1 TO 20 :: A$(Y)="" :: FOR X=1 TO 30 :: IF RND<1/(SQR(ABS((Y-10)^2)+ABS((X-15)^2))/1.6+1)THEN A$(Y)=A$(Y)&SEG$(WRZT$,INT(RND*8)+1,1)ELSE A$(Y)=A$(Y)&CHR$(135) 5024 NEXT X :: NEXT Y 5025 FOR I=1 TO 8 :: SX(I),A=INT(RND*30)+1 :: SY(I),B=INT(RND*20)+1 :: A$(B)=SEG$(A$(B),1,A-1)&CHR$(INT(RND*3)+136)&SEG$(A$(B),A+1,30-A) 5026 NEXT I 5028 DATA orion,dracon,cygnus,lepton,centaurie,arkion,draconia,syrian,pegasus,myonid,phoenix,altair,hydra,‡‡‡‡‡‡‡‡‡, 5030 CALL SPRITE(#10,124,12,40,97,#26,123,12,171,152) :: CALL MOTION(#26,0,30) :: CALL HCHAR(22,1,30,32) 5050 RESTORE 1650 :: FOR I=1 TO 6 :: READ A,B,E$ :: CALL D(-12+A,B,E$) :: NEXT I 6000 FOR I=1 TO 8 :: G$(I)="9"&STR$(INT(RND*5+1))&STR$(INT(RND*9+1))&STR$(INT(RND*9+1)) :: IF I<6 THEN XZ(I)=INT(RND*30)+1 :: YZ(I)=INT(RND*30+1) :: K(I)=10.9 6030 NEXT I :: P,FA,FB,FC,FD=0 :: L=15 :: M=100 :: O=2000 :: N=1000 6040 XG=INT(RND*38-4) :: XE=INT(RND*42-6) :: IF XE-XG<16 THEN 6040 ELSE YG=INT(RND*28-4)-3 :: YE=INT(RND*34-6) 6050 GOSUB 16000 7000 DISPLAY AT(23,1)BEEP :"1_DAMAGE@2_ALARM@3_SENSOR@@@4_COURSE@5_NEGOTIATE@6_NEXT" 8000 CALL I(123456,SP) :: FOR U=1 TO 3 :: CALL SOUND(-65,U*250,6-U) :: NEXT U :: CALL C 8010 DISPLAY AT(23,1):RPT$("@",39)&"9_MENU@@@@@@@@@@" :: ON SP GOSUB 15000,13000,12000,11000,14000,16000 9000 CALL D(-10,23,"``") :: CALL D(-8,26,"```") :: CALL D(-6,26,"```") :: IF FA=0 THEN FB,FC=0 9010 IF INT(N)<=0 OR INT(M)<=0 THEN CALL D(2,1,"galactica`destroyed") :: GOTO 19200 ELSE CALL L(4,2,P) :: CALL L(2,22,M) :: CALL L(4,25,O) :: CALL L(6,25,L) 9500 CALL SPRITE(#22,93,2,73,155+N*.072) :: GOTO 7000 11000 CALL D(1,9,"change`of`course") :: CALL D(3,8,"+`-`*```1`2`3") :: CALL D(5,8,")`0`(```8`0`4") :: CALL D(7,8,".`,`/```7`6`5") :: CALL I(1023456789,SP) 11021 KX=VAL(SEG$("-1000001010100-1-1",SP*2-1,2)) :: KY=VAL(SEG$("-100-1-10001010100",SP*2-1,2)) :: Q=VAL(SEG$("038405020007040601",SP*2-1,2)) 11029 CALL PATTERN(#10,40+Q) :: RETURN 12000 E$="`located" :: A=S+R :: IF A>0 THEN CALL D(1,1,STR$(A)&"`cylonsquadron"&E$)ELSE IF S=0 THEN CALL D(1,1,"no`spaceships"&E$) 12020 IF T=0 THEN CALL D(3,3,"no`solar`system"&E$) :: RETURN 12030 IF FA=0 THEN CALL D(3,1,STR$(T)&"`solar`system"&E$) :: RETURN 12040 CALL D(4,1,"planet`name`"&B$(FA)) :: IF SEG$(G$(FA),2,3)="000" THEN 12400 ELSE IF E(3)=1 THEN E$="no" ELSE IF E(3)<4 THEN E$="under" ELSE IF E(3)<8 THEN E$="same" ELSE E$="higher" 12050 CALL D(6,1,E$&"`developed`life") :: IF E(3)>1 THEN CALL D(8,1,"descendants`of`"&C$(E(2))&"en") 12060 RETURN 12400 CALL D(7,1,"culture`destroyed") :: CALL D(8,1,"planet`infested") :: RETURN 13000 IF FD>0 THEN 14001 ELSE CALL D(1,1,"shield```a`1``out`2") :: CALL I(129,SP) :: IF SP=1 THEN SI=M/10 ELSE IF SP=2 THEN SI=0 ELSE RETURN 13010 CALL D(1,1,"attack``````yes``1`no`2") :: CALL I(129,SP) :: IF SP>1 THEN RETURN 13020 FD=1 :: CALL D(1,1,"hunter`insert`yes`1`no`2") :: CALL I(129,SP) :: IF SP=2 THEN 13100 ELSE IF SP=9 THEN RETURN 13030 IF L=0 THEN CALL D(1,1,"all`interceptors`destroyed`")ELSE GOSUB 13700 13040 KW=L*4 :: CALL D(1,1,"interceptor`launched") :: FOR I=1 TO 7 :: CALL SOUND(-75,-7,I*2) :: NEXT I :: ON SP GOSUB 9000,13800,13850,13900 13045 N=N-L*2 :: C=INT(RND*L*1/5)+1-INT(RND+.5) :: CALL D(8,1,STR$(C)&"`own`hunter`destroyed") :: L=L-C 13100 CALL D(1,1,"laserguns````yes`1`no`2") :: CALL I(129,SP) :: IF SP>1 THEN RETURN ELSE GOSUB 13700 13110 KW=M/3 :: CALL D(1,1,"aimed`at") :: FOR U=1 TO 6 :: CALL SOUND(-100,U*500,6-U) :: NEXT U :: CALL D(2,1,"fire`free") :: ON SP GOSUB 9000,13800,13850,13900 13120 N=N-KW :: RETURN 13700 CALL C :: E$="9" :: CALL D(3,1,"choose`target") :: IF FA>0 THEN IF SEG$(G$(FA),2,3)<>"000" THEN CALL D(3,15,"1`planet") :: E$="1" 13705 IF R=0 THEN 13720 ELSE A=INT(K(RN)) :: IF K(RN)-A>0 THEN CALL D(4,15,"2`baseship") :: E$=E$&"2" ELSE E$=E$&"0" 13710 IF A>0 THEN CALL D(5,15,"3`cylonhunter") :: E$=E$&"3" 13720 IF E$="9" THEN CALL D(3,1,"no`target`in`range") :: GOTO 9000 ELSE CALL I(VAL("9"&E$),SP) :: DISPLAY AT(13,1):RPT$("`",140) :: RETURN 13800 FB=1 :: B=E(1)*E(3) :: GOSUB 13950 :: D=INT(E(1)-C/E(3)) 13803 IF D>0 THEN G$(FA)=STR$(D)&SEG$(G$(FA),2,3)ELSE G$(FA)=STR$(E(3))&"000" :: E(3)=0 :: CALL D(5,1,"planet`destroyed") :: RETURN 13805 IF D>6 OR RND>.6 OR E(3)<3 THEN RETURN ELSE CALL D(5,1,C$(E(2))&"one`want`negotiate") 13807 FB,FC=0 :: IF RND>.5 THEN E(4)=7 :: G$(FA)=SEG$(G$(FA),1,3)&"7" ELSE E(4)=0 :: G$(FA)=SEG$(G$(FA),1,3)&"0" 13810 RETURN 13850 B=15*(K(RN)-A) :: GOSUB 13950 :: D=INT(B-C)/10 :: IF D>0 AND D<1 THEN K(RN)=A+D :: RETURN ELSE CALL D(5,1,"`Cylonship`destroyed") :: R=0 :: I=RN :: GOSUB 18000 13875 IF A>0 THEN CALL D(7,1,STR$(A)&"`cylonhunter`fled") 13878 RETURN 13900 B=A :: GOSUB 13950 :: D=INT(B-C) :: IF D>0 THEN K(RN)=A-K(RN)+D :: RETURN ELSE K(RN)=K(RN)-A :: CALL D(5,1,"cylonhunter`destroyed") :: RETURN 13950 GOSUB 18500 :: IF KW>2*B THEN E$="heaviest" ELSE IF KW>B THEN E$="heavy" ELSE IF KW<B/2 THEN E$="light" ELSE E$="" 13955 CALL D(4,1,E$&"`hit`at`the`enemy") :: C=ABS(B-KW/2) :: RETURN 14000 IF FC<>1 THEN 14003 14001 CALL D(1,1,"beautifully`carried`out") :: RETURN 14003 FC=1 :: IF FA>0 THEN IF E(3)>1 THEN 14009 14005 CALL D(1,1,"radio direction finding`negativ") :: RETURN 14009 CALL D(1,1,"contact`with`"&C$(E(2))&"it's ok") 14010 IF E(4)=0 THEN CALL D(3,1,C$(E(2))&"one`surrender`") :: C=1 :: GOTO 14015 14012 IF E(4)>2 THEN 14020 ELSE CALL D(3,1,C$(E(2))&"one`is`extinct") :: IF RND>.5 THEN CALL D(4,1,"robotic`systems`are`still`working") :: C=1 ELSE 14016 14015 CALL D(6,1,"dinghies`land`on`planets") :: GOTO 14800 14016 CALL D(4,1,"energy`storage`still`ok") :: C=0 :: GOTO 14015 14020 IF FB>0 OR(E(4)>2 AND E(4)<7)THEN FB=1 :: FC=0 :: IF RND>.7 THEN GOTO 16410 ELSE CALL D(8,1,"leave`orbit`immediately") :: B=10 :: GOTO 16422 14030 CALL D(3,1,C$(E(2))&"en`help") :: CALL D(8,1,"trade``yes`1`no`2") :: CALL I(129,SP) :: IF SP>1 THEN FC=0 :: RETURN 14040 CALL C :: A=INT(E(1)*E(3)/5) :: C=INT(A*(8+2*RND)) :: B=INT(E(1)*E(3)*25) :: D=1000-N :: IF B>D THEN B=INT(D) 14050 D=INT(D*(RND+.4)) :: CALL D(1,1,"Price`offer") :: CALL D(3,1,STR$(A)&"`yeseger`for`"&STR$(C)&"`dollar```") :: CALL D(5,1,STR$(B)&":`charge`energy`"&STR$(D)&"`dollar```") 14060 CALL D(8,1,"trade`1``buy`2") :: CALL I(129,SP) :: IF SP=9 THEN RETURN ELSE IF SP=1 THEN IF RND>.7 THEN FB=1 :: GOTO 14020 ELSE 14040 14063 E$="yeseger" :: GOSUB 14075 :: IF SP=1 THEN IF C>O THEN CALL D(3,1,"money`is`not`enough``````")ELSE L=L+A :: O=O-C 14067 E$="energie" :: GOSUB 14075 :: IF SP=1 THEN IF D>O THEN CALL D(5,1,"money`is`not`enough```````")ELSE N=N+B :: O=O-D 14070 GOTO 14850 14075 CALL D(8,1,E$&"`buy``yes`1``no`2") :: CALL I(129,SP) :: IF SP=9 THEN 9000 ELSE RETURN 14800 IF RND<.9 THEN A=INT(RND*(E(3)+E(1))*C) :: B=INT(E(1)*E(3)*15) :: GOTO 14820 14805 GOSUB 18500 :: FB=1 :: FC=0 :: CALL D(7,1,"dinghies`of`galactica") :: CALL D(8,1,"von`kampfrobotern`destroyed") :: RETURN 14820 CALL D(7,1,STR$(A)&"`yeseger`and") :: L=L+A :: C=1000-N :: IF B>C THEN B=C 14830 CALL D(7,15,STR$(INT(B/10))&"`:`energie") :: B=INT(E(1)*E(3)*(5+RND*5)) :: O=O+B :: CALL D(8,1,"and`"&STR$(B)&"`dollar`found") :: N=N+C 14850 G$(FA)=STR$(INT(ASC(G$(FA))-48)/2))&SEG$(G$(FA),2,3) :: RETURN 15000 A=100-M :: IF A>.2*N THEN CALL D(3,1,"energy`is`not`enough") :: RETURN 15020 CALL D(3,1,"damage`eliminated") :: N=N-A/.2 :: M=100 :: RETURN 16000 FD,FA,KW,T,R,S=0 :: P=P+1 16010 XG=XG+KX :: YG=YG+KY :: FOR I=YG-4 TO YG+4 :: IF I>20 OR I<1 OR XG<-3 OR XG>34 THEN E$=D$ :: GOTO 16090 16020 IF XG>4.9 AND XG<27 THEN E$=SEG$(A$(I),XG-4,9)ELSE IF XG<5 THEN E$=SEG$(D$,1,5-XG)&SEG$(A$(I),1,4+XG)ELSE E$=SEG$(A$(I),XG-4,35-XG)&D$ 16090 DISPLAY AT(I-YG+6,7)SIZE(9):E$ :: NEXT I :: CALL DELSPRITE(#16,#17) 16100 CALL A(XG,YG,XE,YE,A) :: DISPLAY AT(9,3)SIZE(2):"``" :: CALL L(9,2,INT(A)) :: IF A<4 THEN C=(XE-XG+12)*8 :: D=(YE-YG+5)*8 :: CALL SPRITE(#17,141,16,D,C,#16,127,4,D,C) 16105 IF A<1 AND KX=0 AND KY=0 THEN 19000 ELSE CALL GCHAR(6,13,A) :: IF A=140 THEN 19100 16200 FOR I=1 TO 8 :: CALL A(XG,YG,SX(I),SY(I),A) :: IF A<5 THEN T=T+1 :: IF A<1 AND KX=0 AND KY=0 THEN FA=I :: CALL D(1,1,"galactica`in`orbit") 16202 IF I>5 THEN 16405 ELSE IF YZ(I)>YG THEN A=-1 ELSE A=1 16203 IF XZ(I)>XG THEN B=-1 ELSE B=1 16205 XZ(I)=XZ(I)+B :: YZ(I)=YZ(I)+A :: K(I)=K(I)+1 :: CALL A(XG,YG,XZ(I),YZ(I),A) :: IF A>4.9 THEN 16220 ELSE B=YZ(I)-YG+6 16210 C=XZ(I)-XG+13 :: RN=I :: CALL SPRITE(#10+I,94,12,B*8-6,C*8-7) :: CALL GCHAR(B,C,D) :: IF D=140 THEN 16900 ELSE R=R+1 :: D=INT(K(I)) :: KW=KW+2*D+30*(K(I)-D)/(A+1) :: GOSUB 18500 16215 GOTO 16405 16220 IF A<8 THEN S=S+1 :: CALL D(4,1),"approaching`objects`located") 16405 NEXT I :: IF R>0 THEN CALL D(5,1,"attack`through`cylon") 16407 IF FA=0 THEN 16415 16410 FOR I=1 TO 4 :: E(I)=VAL(SEG$(G$(FA),I,1)) :: NEXT I :: IF(E(4)<7 OR FB>0)AND E(3)>1 THEN CALL D(1,1,"attack`from`planet") :: KW=KW+E(1)*E(3) :: GOSUB 18500 16415 IF KW<=0 THEN 16420 ELSE B=10 :: IF SI=0 THEN E$="activate" ELSE IF KW<2*SI THEN E$="withstood" :: KW=0 ELSE E$="broken" :: KW=KW-2*SI 16418 D=INT(KW/5) :: M=M-D :: CALL D(7,1,"shield`"&E$) :: CALL D(8,1,STR$(D)&":`damage`by`hit") :: GOTO 16422 16420 IF S=0 THEN B=12 ELSE B=4 16422 N=N-(ABS(KX)+ABS(KY))*7-SI*2 :: CALL COLOR(#26,B) :: GOTO 9000 16900 E$="cylon``" :: D=2 :: GOSUB 17000 16910 GOSUB 18000 16920 GOTO 16220 17000 CALL D(1,1,E$&"`in`the`asteroid`field") :: CALL D(D+1,1,"smashed") :: RETURN 18000 FOR U=1 TO 3 :: CALL SOUND(75,-7,U*2) :: CALL COLOR(#10+RN,U+10) :: CALL PATTERN(#RN+10,143-U*3) :: NEXT U :: CALL DELSPRITE(#RN+10) 18010 D=SGN(RND-.5) :: XZ(RN)=XZ(RN)+D*INT(RND*8+6) :: YZ(RN)=YZ(RN)+D*INT(RND*6+7) :: K(RN)=0.9 :: RETURN 18500 FOR U=1 TO 4 :: CALL COLOR(13,16,13-U*2,14,8,13-U*2) :: CALL SOUND(-125,110,30,110,30,20000/U,30,-8,U) :: NEXT U :: RETURN 19000 CALL D(2,1,"goal`achieved") :: GOTO 19200 19100 E$="galactica" :: D=2 :: GOSUB 17000 19200 DISPLAY AT(16,1):RPT$("`",140) :: CALL DELSPRITE(ALL) :: CALL D(5,8,"new`game``1") :: CALL D(7,8,"new``map``2") :: CALL I(12,SP) :: ON SP GOTO 5030,5021 20001 ON ERROR 20001 :: GOTO 9000 30000 SUB I(A,SP) :: A$=STR$(A) 30001 CALL SOUND(-4250,-7,25) :: FOR I=1 TO 25 :: CALL KEY(0,K,S) :: IF S<>0 THEN SP=POS(A$,CHR$(K),1) :: IF SP>0 THEN 30010 30003 NEXT I :: CALL SOUND(-50,4000,0) :: GOTO 30001 30010 CALL SOUND(-50,770,3) :: SUBEND 30020 SUB L(A,B,C) :: CALL D(-12+A,B,STR$(C)) :: SUBEND 30050 SUB D(Y,X,A$) :: DISPLAY AT(Y+12,X)SIZE(LEN(A$)):A$ :: SUBEND 30060 SUB A(A,B,C,D,E) :: E=SQR(ABS(A-C)^2+ABS(B-D)^2) :: SUBEND 30070 SUB C :: DISPLAY AT(13,1):RPT$("`",224) :: SUBEND
- 1
- 1
-
What I am reading is that the hardcore users, use a PEB! ?
And one way of growing the community is to make a modern PEB, that is easy for everyone to get a hold of. Maybe that is something that is a more interesting thing to know. How many want to take the real TI and expand it with hardware that can run "bigger stuff" on the system? If you could upgrade your system, what would you do?
To pixelpedant, what about making an overview of possible ways of upgrading your TI. You're making a lot of great content for the TI, on youtube! ?
-
What if one modernized the PEB? I think that all cards can be made much smaller and all possible cards could have space within a smaller footprint. Or is it better to code it all into a Raspberry Pi? (if possible?)
If I understand correctly, there are some "half" substitutes for the PEB, or are there modern 100% substitutes for the PEB?- 1
OPERATION SEA WOLF - BY MARK HANKINS
in TI-99/4A Development
Posted · Edited by oddemann
The game "OPERATION SEA WOLF" looks to be missing lines. The games comes from "Computer & Video Games - Yearbook 1985" Did a search here and it dos not look to be present. The scan was really bad, I know there are a few lines that are bad. As it is now, it is missing data for some sounds.
Dos anyone have a good copy/scan of it or a complete listing of the game?
100 REM <--OPERATION SEA WOLF--> 110 REM <--BY MSOFT--> 120 REM <--(C) 1983 MSOFT--> 130 RESTORE 140 CALL CLEAR 150 CALL CHAR(128,"00B2FEE0C0C0C000") 160 PRINT TAB(6):"OPERATION SEA WOLF"::TAB(7):"BY MARK HANKINS"::TAB(9):"FOR C & VG":::::::::: 170 FOR A=3 TO 32 STEP 2 180 CALL HCHAR(1,A,128) 190 CALL HCHAR(24,A,128) 200 NEXT A 210 CALL VCHAR(1,3,128,24) 220 CALL VCHAR(1,31,128,24) 230 FOR A=1 TO 6 240 READ NOT,DUR 250 CALL SOUND(DUR,NOT,2) 260 NEXT A 270 V$="PRESS ANY KEY TO BEGIN!" 280 RO=20 290 CO=5 300 GOSUB 1170 310 CALL KEY(0,K,S) 320 CALL KEY(1,K,S1) 330 IF (S=0)*(S1=0) THEN 310 340 CALL CLEAR 350 PRINT "WOULD YOU LIKE INSTRUCTIONS(Y/N)?" 360 CALL KEY(0,K,S) 370 IF K=89 THEN 1230 380 IF K=78 THEN 390 ELSE 400 390 PRINT "PLEASE ENDER YOUR SKILL LEVEL - 0=EASY - 9=HARD" 400 CALL KEY(0,K,S) 410 IF S=0 THEN 400 420 IF (K<48)+(K>57) THEN 400 430 NSHIP=(K-48)*6+16 440 REM DEFINE CHARACTERS 441 CALL CHAR(128,"FFFFFFFFFFFFFFFF" 450 CALL CHAR(136,"00030203FF7F3F1F" 460 CALL CHAR(137,"00B19E9CFEFEFEFE" 470 CALL CHAR(144,"000003031F3F1F00" 480 CALL CHAR(145,"00309090FBFCFB00" 490 CALL CHAR(146,"00007EFFFF7E0000" 500 CALL CHAR(152,"00" 510 REM SET UP SCREEN 520 CALL CLEAR 530 CALL SCREEN(5) 540 CALL COLOR(12,16,1) 541 CALL COLOR(13,15,1) 550 CALL COLOR(14,15,6) 560 CALL COLOR(15,12,1) 570 CALL COLOR(16,1,6) 580 CALL HCHAR(1,1,152,32*12) 581 CALL HCHAR(2,15,128) 582 CALL HCHAR(3,13,128,5) 583 CALL HCHAR(4,11,128,8) 584 CALL HCHAR(5,11,128,8) 585 CALL HCHAR(6,13,128,5) 590 CALL HCHAR(12,16,136) 600 CALL HCHAR(12,17,137) 610 V$="SCORE=: 0" 620 RO=1 630 CO=1 640 GOSUB 1170 650 REM SET UP GAME 660 SC=0 670 ROS=INT(8*RND)+13 680 PO=13 690 SH=0 700 Z=0 710 C=16 720 REM 730 FOR Q=31 TO 3 STEP -2 740 CALL KEY() 750 IF K=13 THEN 990 760 RA=C+(K=83)-(K=68) 770 IF (RA<3)+(RA>30) THEN 890 780 IF RA<>C THEN 840 790 CALL JOYST(1,DX,DY) 800 RA=C+DX/4 810 RA=INT(32*((RA-1)/32-INT((RA-1)/32)))+1 820 CALL KEY(1,K,S) 830 IF K=18 THEN 990 840 CALL HCHAR(12,C,152,2) 850 CALL HCHAR(12,RA,136) 860 CALL HCHAR(12,RA+1,137) 870 C=RA 880 IF Z=1 THEN 1010 890 CALL HCHAR(ROS,5,32,28) 900 CALL HCHAR(ROS,Q,144) 910 CALL HCHAR(ROS,Q+1,145) 920 CALL SOUND(150,-1,0) 930 NEXT Q 940 SH=SH+1 950 IF SH=NSHIP THEN 1330 960 ROS=INT(8*RND) 970 GOTO 730 980 REM FIRE 990 Y=C 1000 IF Z=1 THEN 760 1010 FOR A=PO TO PO+3 1020 CALL GCHAR(A,Y,GET) 1030 CALL HCHAR(A,Y,146) 1040 IF GET=144 THEN 1430 1050 IF GET=145 THEN 1430 1060 CALL HCHAR(A,Y,32) 1070 NEXT A 1080 CALL SOUND(150,-3,0) 1090 PO=PO+3 1100 IF PO>=22 THEN 1140 1110 Z=1 1120 IF Q<3 THEN 940 1130 GOTO 890 1140 Z=0 1150 PO=13 1160 GOTO 890 1170 FOR A=1 TO LEN(V$) 1180 CH=ASC(SEG$(V$,A,1)) 1190 CALL HCHAR(RO,CO+A,CH) 1200 NEXT A 1210 RETURN 1220 REM INSTRUCTIONS: 1230 CALL CLEAR 1240 PRINT "YOUR JOB IS TO STOP THE":"ENEMY SUBS FROM REACHING":"THE HARBOUR IN THE LEFT HAND":"CORNER.":: 1250 PRINT :::"NOTE::":" THE FIRE KEY IS THE ENTER":" KEY":"S & D MOVE THE SHIP"::: 1260 PRINT ::"IF USING THE JOYSTICKS USE":"JOYSTICK NO.:" 1270 PRINT "ANY KEY TO BEGIN":: 1280 CALL KEY( 1290 CALL KEY( 1300 IF (S=0)*(S1=0) THEN 1280 1310 CALL CLEAR 1320 GOTO 390 1330 CALL CLEAR 1340 PRINT "YOU HIT":SC/100:"SHIPS":"OUT OF MAXIMUM OF":NSHIP:"YOU SCORED":SC:"POINTS"
https://archive.org/details/ComputerAndVideoGamesYearbook1985/page/n127/mode/2up