Author Topic: More USB Information?  (Read 3186 times)

0 Members and 1 Guest are viewing this topic.

Offline ralphdspam

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 841
  • Rating: +38/-1
  • My name is actually Matt.
    • View Profile
More USB Information?
« on: November 02, 2011, 05:09:35 pm »
Hello, all!

Recently, I have gained more interest in the TI-84 Plus SE's USB port.  Unfortunately, information on the ports seems sparse and incomplete.
I have taken a look at http://wikiti.brandonw.net/index.php?title=Category:83Plus:Ports:By_Address and http://wikiti.brandonw.net/index.php?title=83Plus:OS:84_Plus_USB_Information, but I have no idea where to start.

The USB port seems very complex in contrast to port $00.  Can anyone provide sample test routines for the USB interface?  More specifically, I am interested in using the calculator as a device (as opposed to a host).
« Last Edit: November 02, 2011, 05:09:46 pm by ralphdspam »
ld a, 0
ld a, a

Offline thepenguin77

  • z80 Assembly Master
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1594
  • Rating: +823/-5
  • The game in my avatar is bit.ly/p0zPWu
    • View Profile
Re: More USB Information?
« Reply #1 on: November 02, 2011, 05:44:06 pm »
USB. There's not much information because we don't have much information. When you enter the world of USB, regular asm is gone forever. You now enter the world of randomness without reason. There is no debugging, there is no 100% information, you start to involve hardware failures, and stuff can just not work for no reason at all.

Now that that's out of the way, if you're going to do anything serious with USB, you honestly have to start disassembling the OS to see how they do it. To do this, you're going to want to get IDA somehow and then start looking at page 6F as well as page 75. The OS is useful because they actually knew what they were doing, we can only hope to copy them.

For code, the OS is by far the best resource you have. After that, you can start looking at USB8X as well as my Blue2 program I'm going to attach. There's no reason to show you routines here because they are massive and many.

Finally, for the ports, wikiTI was recently updated by Floppus and myself, there's brandonW's notes on USB ports, and finally there's my large text document which I will also attach.

USB isn't impossible, but it is definitely not easy. You will want some kind of on-screen feedback system to report what happens as it happens. I honestly don't care if you copy my console system from Blue2 because it works marvelously. I'll also attach my program that deletes the Certificate of another calculator via usb>silverlink>I/O port. It has some good routines on data sending.

Lastly, yes, you really need to disassemble the OS. Floppus Maximus, Dan E, BrandonW, and I are some of the few people I know of that have done serious USB port work, and we all have OS disassemblies. (If I missed any, tell me)
zStart v1.3.013 9-20-2013 
All of my utilities
TI-Connect Help
You can build a statue out of either 1'x1' blocks or 12'x12' blocks. The 1'x1' blocks will take a lot longer, but the final product is worth it.
       -Runer112

Offline ralphdspam

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 841
  • Rating: +38/-1
  • My name is actually Matt.
    • View Profile
Re: More USB Information?
« Reply #2 on: November 02, 2011, 06:19:58 pm »
Thanks for the quick response!

Do I have to personally dissassemble the OS, or is there already a good commented one?  (If I have to, it might take me three to four months. :P)

EDIT Quick question: Are the memory addresses memory-mapped I/O or just the OS's RAM?
« Last Edit: November 02, 2011, 06:30:28 pm by ralphdspam »
ld a, 0
ld a, a

Offline thepenguin77

  • z80 Assembly Master
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1594
  • Rating: +823/-5
  • The game in my avatar is bit.ly/p0zPWu
    • View Profile
Re: More USB Information?
« Reply #3 on: November 03, 2011, 03:21:22 pm »
Those addresses are just stuff the OS uses. You can completely disregard them.

You can certainly use someone else's disassembly, and that's not a bad idea.
zStart v1.3.013 9-20-2013 
All of my utilities
TI-Connect Help
You can build a statue out of either 1'x1' blocks or 12'x12' blocks. The 1'x1' blocks will take a lot longer, but the final product is worth it.
       -Runer112

Offline Quigibo

  • The Executioner
  • CoT Emeritus
  • LV11 Super Veteran (Next: 3000)
  • *
  • Posts: 2031
  • Rating: +1075/-24
  • I wish real life had a "Save" and "Load" button...
    • View Profile
Re: More USB Information?
« Reply #4 on: November 04, 2011, 02:17:06 am »
Brandonw has a semi-commented full disassembly on his website, but I'm not supposed to share the link.  Its not too hard to find it if you know where to look ;)
___Axe_Parser___
Today the calculator, tomorrow the world!

Offline AngelFish

  • Is this my custom title?
  • Administrator
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3242
  • Rating: +270/-27
  • I'm a Fishbot
    • View Profile
Re: More USB Information?
« Reply #5 on: November 04, 2011, 05:02:34 am »
USB. There's not much information because we don't have much information. When you enter the world of USB, regular asm is gone forever. You now enter the world of randomness without reason. There is no debugging, there is no 100% information, you start to involve hardware failures, and stuff can just not work for no reason at all.

+1 for dramatic and completely justified statement.

Also, I think DrDnar spent some time with USB, but I could be wrong.
∂²Ψ    -(2m(V(x)-E)Ψ
---  = -------------
∂x²        ℏ²Ψ