That video made me smile. Haha. I also read earlier about someone needing a BASIC interface. =D I would love to design it, if it is still needed
TI_Coder wrote:
That video made me smile. Haha. I also read earlier about someone needing a BASIC interface. =D I would love to design it, if it is still needed
Well, there's two main problems with a BASIC interface:

1) Keeping the interrupt undisturbed while the TI-OS rampages about the memory space of the calculator, especially if I end up having to design a relocatable interrupt that can't sit happily in a ROM page.

2) Keeping the 512+5+8+2 bytes of safeRAM that the interrupt uses for buffers and such undisturbed by the TI-OS and by all manner of other libraries and routines. I'm sure I'll think of something eventually, but it's a big issue.

At any rate, I just finished implementing broadcasting, so now I need to check that the system still works properly for non-broadcast transmissions, then expand the Cn22Pong demo to arbitrary numbers of calculators! \o/
I have a few questions:
1) Is the cable easy to splice together? (Like is the multi-calc cable time consuming to make?)
2) Is it going to be re-introduced to the Doors OS?
3) Is it real-time, or does it have to be cleverly programed to simulate real time?
4) Finally, does it work with the USB cables, and can you use USB and Graphlink-thing at the same time? (So you can do many without making a fancy cable.)
1) No, it's pretty easy. You just cut the cables in half, and each half has a silver, red, and white wire. You simply splice all the whites together, all the reds together, and all the silvers together.

2) Possibly. I'm debating about that, especially in terms of actually fitting it into the shell. I'm beginning to think I may have to, though, especially with all the requests for a BASIC interface.

3) It's totally realtime and nonblocking (check out my response to comicIDIOT)

4) No, it doesn't. That's something that a bunch of people suggested, but I don't yet know how I'd do that.
woah..

that pong demo is awsome..

Very Happy
Another question Kerm. Is it very difficult to code for at this point? You said that the CalcNet was less that a Kilo, but how much code is in the pong, and is it difficult to take advantage of?
adept wrote:
Another question Kerm. Is it very difficult to code for at this point? You said that the CalcNet was less that a Kilo, but how much code is in the pong, and is it difficult to take advantage of?
The pong game is 1.46KB, so the game itself is only about 400-500 bytes total. The protocol makes it extremely easy to do very easy things, and only moderately difficult to do fancy stuff. Most importantly, the link layer is completely hidden from the programmer, so you don't have to worry about anything other than Cn3_Setup, Cn3_Setdown, and putting stuff into the SendBuf and looking for things in the RecBuf.
So you wrote a library! Assembly programming is to abstract for me, so don't get me wrong, like I'm going to be a developer. 1.46 K is a lot for a pong game. Of course, I reckon you haven't optimized the code at this point. Question: What do you mean layers? I thought calculators could only complete a task at a time? how many registers aren't used in the link layers (how much other code can you do at a time)?
Nono, it's 1.46K including the CALCnet2 library, and I don't think that's unreasonable given the amount of archive on today's calculators. With Doors CS 7, you don't even have to worry about the fact that it's archived or a DCS program; you just run it.

Layers: Check out the OSI model of networking:


CALCnet2.2 handles the bottom two layers, plus part of the next two layers. It's up to programs to handle the upper four layers. CALCnet2.2 can run at the same time as the user program through something called interrupts. As their name suggests, 110 times a second the main program running gets paused, its registers are saved, and CALCnet2.2 checks for new data to receive and sends any data pending in its buffers, then restores the registers and lets the program continue. Needless to say, this leaves fewer clock cycles available for the main program. Grayscale is usually implemented on graphing calculators with an interrupt as well.
Oh. So the library is most of that space. I thought the game was 1.46. That really isn't too bad considering the features this pong game offers. Anyway, the program won't run as fast with the networking, but will network. So that's great. It's just like Ethernet networking in layers, just less layers. Sounds like a solid plan!
adept wrote:
Oh. So the library is most of that space. I thought the game was 1.46. That really isn't too bad considering the features this pong game offers. Anyway, the program won't run as fast with the networking, but will network. So that's great. It's just like Ethernet networking in layers, just less layers. Sounds like a solid plan!
That's exactly right. If I either make Cn2.2 a shared library (an ALE, an Appended Library Extension) or build it back into Doors CS, then each Cn2.2-enabled program will lose about 1K of size. Smile And precisely, it's like Ethernet but fewer layers. You catch on quick. Wink
*bump* Looks like broadcasting is a success! Good Idea The intro to NetPong is successfully able to broadcast a network probe request and receive responses. I have three hardware calculators, a TI-83+, a TI-84+, and a TI-84+SE in a CALCnet2.2 network, and each is able to broadcast to other calculators to request their acknowledgment; even without the happiness of checksumming, within about a second each of the calculators finds the other two!

Now to write some actual n-calculator code. Smile
Very Happy Dooo iiittt! I don't guess I mind too much if its only asm, its still very epic Very Happy

/me thinks wolfenstine multiplayer >Very Happy
_player1537 wrote:
Very Happy Dooo iiittt! I don't guess I mind too much if its only asm, its still very epic Very Happy

/me thinks wolfenstine multiplayer >Very Happy
Haha, a multiplayer shooter would be super-epic. This part of the coding should be relatively easy. I need to add the ability to press a number key to select the current calculator's screen position, then allow you to press Start on calculator 0 to broadcast a start packet to all calculators. Bouncing will be pretty much the same as for the two-calculator demo, except that calculator zero will transmit nothing on its left edge, calculator N=n will transmit nothing on its right edge, and calculators 0<n<N will transmit on both left and right edges.
Maybe you could optimize DCS in terms of size, and perhaps toss it in? Smile
I'm not sure how external libs work for DCS...

This is so awesome! Smile You're really going to cause quite a storm soon when this gets released! Very Happy Probably toss in a Mario game for the lols Razz (And for those gullible ones on ticalc.org)

Oh, and you still haven't answered my questions from before. Razz
Alberthro, I lost your posts in the midst of the giant topic; would you mind reiterating? And yeah, ideally I could either optimize about 500 bytes out (how is another question, since I already optimized out everything I could find) or cut out some old unused feature that no one knows or cares about.

I do indeed hope to cause a storm when this is released? I'm planning on doing some cross-site publicity after my three-calc pong video, probably.
Here's a game situation. 4 swords zelda. All the calcs send their movement data to the main calc, it calculates damage and such, and sends their new positions and new areas. Or, they could all do it on their own Razz
willrandship wrote:
Here's a game situation. 4 swords zelda. All the calcs send their movement data to the main calc, it calculates damage and such, and sends their new positions and new areas. Or, they could all do it on their own Razz
Either one of those would work! Those some like some fun applications that I want to try or sdee tried in the near future, including a chat program and an FTP program.
This project is really promising. Now if only we could connect our calc to a server for online gaming Very Happy , although I wonder if it would even be possible on a TI-83/84 Plus (maybe on a TI-Nspire?), not to mention we would still need to be near a computer or maybe a Wi-fi router or something...
hmm, we could make a multi-player FPS game
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 3 of 4
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement