OK a bug in dcs's CALCnet interupt routine. The on key power save feature thing is broken. It corrupts registers. after some searching the conclusion was made that a stretch of code simalar to what is in this post is being used and its causing a im 1 interrupt to be triggered corrupting the values in the shadow registers which at the time of the im 1 interupt being called is the user registers.

you said you had tried to tackle this a few times. my thoughts were just to do code like this


; assuming you have already exx \ ex af,af' 'D
push af
 push hl
  push bc
   push de
    push ix
    ex af,af'
    im 1   
    </ some power down magic here>
    </ un do all that register juggling>


alternatively couldn't you just mask out the calcnet sections of the interrupt, power down the screen, and then halt waiting for a on interrupt to trigger. We do have that option iirc
So the problem there is that that halt will only be reached after another nested CALCnet interrupt fires and completes. I have some ideas that will still let it use TI's interrupt to handle the poweroff and return safely to itself that I'll be trying out. Thanks for continuing to push me to solve this; I'm also looking into DirectUSB issues.
well for that particular issue with the interrupt calling it self you should be handling the on key action first, that should make it so that on a return from power down you just restore the stack, acknowledge the interrupt and ret. which skips over the rest of the routines from running. I mean its definitely not the sanest way to go about doing it but it would work.

As for using im 1 to handle the power down just be sure to mask out the linking stuff Razz wouldn't want that kinda crash on your hands lol
Oooh, I'd better double-check that. I got [ON] handling inside the CALCnet interrupt working perfectly, with no double-off bouncing and what looks like no crashes, but I'd better check that it properly ignores incoming link activity.
good luck ^^ that's something that I have no idea how to check Razz but I know would be an issue as im 1 handles silent linking and all that fun garbage Razz (and yeah that 53 byte or so interrupt stub was written well...the on portion just looked convulted and needed some fixin xD)
Well, it looks pretty solid to me, but there's still a bit of weirdness inside of Obliterate. Would you be so kind as to test my current build?
*bump* At the Obliterate main menu and in CALCnet Chat, the power-off works properly, but in an Obliterate game or at the NetPong main menu, no dice. :/ Also, it seems that at least in NetPong, there's a bit of freeziness associated with the power-off feature. The investigation continues while I also try to work on USB connection/reconnection issues.
For the on key thing you were toying with the idea of allowing the user to define his own routine right?

Why not just put a byte flag check and a call to some predefined place in ram where the user can put his routine?
geekboy1011 wrote:
For the on key thing you were toying with the idea of allowing the user to define his own routine right?

Why not just put a byte flag check and a call to some predefined place in ram where the user can put his routine?
Yeah, I could certainly do that. I presume that would be particularly helpful for your particular application? Wink
Actually what would be helpful is a built in way to chain into the CALCnet interrupt Razz presumable the same way ^^

And for both I am sure the code would be smaller. And probably faster
As we were discussing on IRC earlier, I think I'd like if the programmer could either let the interrupt do its own thing when [ON] is pressed or hand control to the program to handle the event. However, there's a distinct possibility this could be problematic for existing programs. My current focus is just getting something stable that works for all cases, then worry about expanding it.
Actually if you know of a byte of ram that is free you could do like the CALCnet interrupt debug setup. This way it wont interfere with other programs and it will also be seamlessly accessible. and your right that train of thought can be added on later after something is working. I will try to take a look tonight if i feel up for it. If not there is always HCWP tommorow Very Happy
I'll admit it wasn't a smooth ride. Getting gCn to work on my TI-84+SE was the hardest thing I've done all week.

It started with libusb not detecting my TI-84+SE. Why? I have no idea. However, Windows installed its own drivers for me, and it seemed to work. That is, until gcnclient kept on randomly crashing.

I tried installing TiLP drivers, downloading different versions of libusb, and doing all sorts of nonsense in a desperate attempt to get Chat working.

Finally, I found this wonderful guide: http://www.libusb.org/wiki/libusb-win32

The rest of this post will be my step-by-step instructions to getting gCn to work (as I too will be redoing this so I can help you guys out more). Enjoy!

1. Download this .zip file: http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/

People said was incompatible, but for me the earlier versions were hubsmashers (meaning, they broke all USB capabilites of my laptop and I had to uninstall them to get them to work again)

2. Connect your TI-84+SE via >> DIRECT USB << to your computer.
Turn the calculator on. Make sure you note which port you connected it to, as you will have to use this port every time you wish to use gcnclient.

3. Inside the bin directory of that .zip file, you will find a program called Inf Wizard. Run it. After clicking Next, you should see something like this:

4. Select TI-84 Plus Silver Edition and click Next. Click Next on the next page, too; do NOT change anything in it.

5. Finally, Inf Wizard will ask you where to save the driver. Choose a place that you will remember.

6. You will now get a window that looks like this:


7. Now, disconnect your direct USB cable from the computer and reconnect it again.

8. Open the Windows Device Manager (Start > Devices and Printers) and find your calculator. It may be under Unspecified. Right click and choose Properties. Next, click on the Hardware tab, select TI-84 Plus Silver Edition, and click Properties again.

9. In the window that comes up, click Change Settings. A nearly identical window will come up, except:

You can now update your driver! So, click on the Driver tab, and click Update Driver.

10. You should now be presented with a window that gives you two options: Search for the driver automatically, or manually browse your computer. Click the 'manually browse' option.

11. Here's where those Inf Wizard generated files come in. Locate the place that you selected Inf Wizard to dump the created files:

12. Click next, and wait for the driver to finish installing.

13. You're done! To make sure the driver was installed correctly, run testlibusb-win.exe inside the bin/x86 (or whatever architecture you have) directory (in the .zip file you downloaded in step 1). You should get something like this:

And there you have it. The filter driver is FINALLY installed!

You can now use gcnclient. I can confirm this method works with Chat, however Gossamer has yet to prevail for me:

EDIT: It turned out it wasn't my fault. A simple restart of WebHub fixed the problem. So this method works for more than Chat!

Good luck and I hope to see you on IRCHub/WebHub soon!
Hey, i recently installed archlinux and wanted to get GCN working but it gives this:

sorunome-laptop% sudo ./gcnclient_ubuntu -d d -n WebHub -l Sorunome
[sudo] password for sorunome:
./gcnclient_ubuntu: error while loading shared libraries: libusb-0.1.so.4: cannot open shared object file: No such file or directory

Can someone please help me?
Techboy: Thanks for that awesome guide! I hope that helps other users, and that will also help me to improve the README/manual that comes with the gCn Client when Doors CS 7.2 rolls out.

Sorunome: You need to install libusb 0.1, as the error message suggests. Smile
I have every available libusb thingy installed

sorunome-laptop% sudo pacman -Ss libusb
core/libusb-compat 0.1.4-2 [Installiert]
    Library to enable user space application programs to communicate with USB devices
core/libusbx 1.0.14-1 [Installiert]
    Library that provides generic access to USB device
extra/libgusb 0.1.3-1 [Installiert]
    GLib wrapper around libusb1

EDIT: I mean that they all were already befored installed. Or is there some package out of the AUR?
I suspect you might need the lib32-libusb-compat library. See if that does the trick for you.

$ cd /usr/lib32/
$ ls libusb
$ su -c 'ln libusb-0.1.so.xxx libusb-0.1.so.4'
$ ls libusb
libusb-0.1.so.xxx   libusb-0.1.so.4

Replace xxx with whatever you have there. If you just have it ending in .so, that is fine as well.
in /usr/lib32 is nothing that is something like libusb* at all

EDIT: i tried getting lib32-libusb-compat out of the AUR but it requires lib32-libusb out of the AUR and that one only gives 404 links when trying to download (using cower)
Ok, got it now working by adding -y to pacman (thanks Tari!)
And i must say, it is so epic, even thought i already tried it out!
So, i got three ideas to make gossamer more awesome:
1st, add to the useragent textbased so that it is been recognized as a terminal-based browser (better displaying of some websites (like mine))
2nd, forms!
3rd, cookies (if only session)
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
» Goto page Previous  1, 2, 3, 4, 5, 6, 7, 8, 9  Next
» View previous topic :: View next topic  
Page 8 of 9
» 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