Talk:83Plus:Ports:3A

From WikiTI
Revision as of 18:28, 7 September 2006 by FloppusMaximus (Talk | contribs)

Jump to: navigation, search

Hi guys,

Does anyone have even the faintest clue what this port is about? I've been having some issues with usb8x working on my 84P Black and not working on my 84P Silver. One of the few differences between the two is that my 84P Black has boot version 1.02 (as opposed to 1.00). There's some USB code (in the 1.02 boot) that checks port 3A and branches depending on the value of bit 3, which is 1 on my 84P Silver and 0 on the Black. I'm trying to figure out if this is a software issue or a hardware issue. Any insights would make you a hero.

Also, does anyone have an 84P Black with boot other than 1.02 or 84P Silver with boot other than 1.00? If so, what is the value read from port 3A?

Thanks --Dan Englender 15:01, 7 September 2006 (PDT)

Someone with an 84P Silver calc with 1.02 boot just tested and the value of port 3A is 0 on his calculator as well. So either there's a hardware difference (which I'm guessing is the most likely explanation) which 1.02 was meant to handle, or the boot code does something differently on 1.02 which causes the different value on port 3A. Either way, I still have no idea what it means. --Dan Englender 15:20, 7 September 2006 (PDT)

The differences between boot 1.00 and 1.02 (I think this is all of them):

  • Boot 1.02 on the BE correctly reports the size of the archive (boot 1.00 reports that it has 1504k rather than 480k.)
  • Some page numbers used on the BE are changed from 7F to 3F.
  • At 6F:4C6E in boot 1.00, an OS has been validated, it's sent the 0006 packet to acknowledge it, and it's just about to boot the newly-loaded OS. It calls 592A (B_CALL 8105). In boot 1.02, it calls 5933 (B_CALL 810E). The only difference between these two routines is that the latter outputs 0 to port 4C.
  • At 7F:5B2F in boot 1.00, the boot code is getting ready to receive an OS, and it needs to decide whether to use DBUS or USB, so it polls port 4D. If bits 5 and 6 are both set, it B_CALLs 8108 followed by 810B. These two B_CALLs, located at 5B43, are NOPed out in boot 1.02.
  • Curiously, the battery checking routines are changed. In 1.02, they set bit 7 of port 3A when they start, and clear bit 7 when they finish.

I don't think any of these changes affect routines that are called by the OS, though (or any code that's run in a normal startup.) So I think you're probably looking at changed hardware. FloppusMaximus 18:28, 7 September 2006 (PDT)