Conversation
|
Looks great! |
|
Example of what you can use this for: a PC->calculator screen mirroring tool! (like the reverse of the screen receiver mode) |
|
Hello, It appears to me that mode (r4) is never used and thus isn't a parameter. What do you think? I'd be interested to know why you added the parameter. By the way, your screen mirroring tool is really cool. Could I see the source code? |
I assumed that it was the same as the serial syscall, and Ghidra was showing one in the function call, but Ghidra gets it wrong sometimes so I can revert that if it doesn't take one. I haven't looked much at these syscalls or tested all of them, so some other others be wrong as well, but everything I've tried to use so far seems to work
Thanks, it's not really ready yet but this is what I have so far on the calculator side if you want to see the basic gist (no pun intended) of how it works: https://gist.github.com/Heath123/cae5040a9bd9f13c448324601ba01544 This version is a bit outdated has a bug where it always sends 0 for the keypress because it's trying to send the first byte of an int but that's easy to fix by changing the type to unsigned char I'll publish the PC side at some point, it's currently only working with Linux on X11 though If you're interested I'm also working on a tool to bypass the flash memory and push addins directly to the CG50's extended RAM then jump to them which should make testing a lot faster: |
|
I should probably add the Comm syscalls too (most of them are missing currently), they're slightly higher level I think so they might be easier to use |
That would make sense, but it appears that Comm_Close only passes the
That is great! I'm sure the people at Cemetech would love to use these when they're finished.
Yep, makes sense. |
This reverts commit 5ca762f.
These are direct equivalents to the serial syscalls, but communicate over USB bulk transfer instead (not protocol 7, just raw data).
I found these by decompiling the Comm syscalls in Ghidra, which makes it very obvious that these are direct equivalents, e.g.:

Not all of them are tested, but I have gotten basic two-way communication working with libusb. The usage on the calculator side looks something like:
This doesn't seem properly close the connection because I can't connect again after, so I still need to work that part out