If you just want a list of syscalls the most comprehensive is
SimLo's original. I created the fxdoc repository to share notes with Yatis, but we didn't do as much reverse-engineering as I imagined so unfortunately there's little to be found there. We spend more time on device drivers than syscalls because we both run our own kernels on the fx-CG and don't use OS-provided functionality anymore.
If you want to study them for yourself, the method is fairly simple; if you disassemble at 0x80020070, you get this syscall execution code:
Code: 80020070: d202 mov.l 0x80673c90, r2
80020072: 4008 shll2 r0
80020074: 002e mov.l @(r0,r2), r0
80020076: 402b jmp @r0
80020078: 0009 nop
This gives you the address of the syscall table, which here is 0x80673c90 (Graph 90+E OS 3.40).
Every entry is a pointer; here are the first 16 ones :
Code: 0x80673c90: 8002c548 8002c550 8002c55e 8002c5a2 ...H ...P ...^ ....
0x80673ca0: 8002c64a 8002c7b0 8002c7c0 8002c7fa ...J .... .... ....
0x80673cb0: 8002c834 8002c84c 8002c8a4 8002c8e6 ...4 ...L .... ....
0x80673cc0: 8002c918 8002c98a 8002c992 8002c99a .... .... .... ....
You can disassemble them; a few point to data. Once you find addresses that don't point to valid memory you can conclude that you've found the end of the table. This is the info that my tool gives:
Code: Syscall information:
Syscall table address (0x8002007c) : 0x80673c90
Entries that point to valid memory : 0x1f68
First seemingly invalid entry : 0x01010000
Syscall entries outside ROM:
(none)
WikiPrizm is fairly up-to-date, not because it's very active but rather because the OS almost never changes. When I tried to make a collection of all hardware-related resources I ended up only finding a couple of pages that I believe are not up-to-date, and none of them are about syscalls.
Everything that you can find documented as far back as 2011 you can pretty safely trust still works. If there's one thing that never changes, it's the syscall tables; on the black-and-white models they date back about 15 years with no major change...
Disassembling is pretty easy, unwinding the technical stack is probably more challenging. Device drivers are not very difficult to work with all things considered, because they only go a few function calls deep before touching hardware registers, which exposes the role of the routines. However, working with functions well hidden inside the OS can be horrendous ; GetKey() for instance is a practical nightmare IMO.