PSX BIOS
Jump to navigation
Jump to search
PSX Kernel
It should be noted this is for scph-1001, and not every psx bios will resemble this exactly. theoretically, all bios should work similarly though.
000000a0: Bios call A 000000b0: Bios call B 000000c0: Bios call C 00000500: C(0x09) SysInitKernelVariables 00000540: C(0x1c) AdjustA0Table 00000598: SysInitKernelVariables 000005c4: Bios A 000005e0: Bios B 00000600: Bios C 00000620: Bios Get IRQ CAUSE 00000630: Bios Get IRQ SR 00000640: Bios Get IRQ SR r4 00000650: Bios Syscall0 0000065c: B(0x56) GetC0Table 00000668: B(0x57) GetB0Table 00000c80: C(0x06) ExceptionHandler 00000ea0: Bios Get IRQ CAUSE & EPC 00000eb0: C(0x07) InstallExceptionHandlers 00000f20: B(0x19) HookEntryInt 00000f2c: B(0x18) ResetEntryInt 00000f40: B(0x17) ReturnFromException 00001018: BIOS_0x1018-0x102c 00001030: alloc_kernel_memory_sub 0000113c: C(0x08) SysInitMemory 00001174: B(0x00) alloc_kernel_memory 00001408: B(0x01) free_kernel_memory 00001420: C(0x02) SysEnqIntRP 00001444: C(0x03) SysDeqIntRP 00001508: C(0x00) EnqueueTimerAndVblankIrqs 000015d8: C(0x0a) ChangeClearRCnt 000015f8: B(0x02) init_timer 000016ac: B(0x03) get_timer 000016e4: B(0x04) enable_timer_irq 00001728: B(0x05) disable_timer_irq 0000175c: B(0x06) restart_timer 00001b20: C(0x01) EnqueueSyscallHandler 00001b44: B(0x07) DeliverEvent 00001c5c: B(0x20) UnDeliverEvent 00001d00: C(0x04) get_free_EvCB_slot 00001d8c: B(0x08) OpenEvent 00001e1c: B(0x09) CloseEvent 00001e44: B(0x0a) WaitEvent 00001ec8: B(0x0b) TestEvent 00001f10: B(0x0c) EnableEvent 00001f4c: B(0x0d) DisableEvent 00001f88: C(0x05) get_free_TCB_slot 00002018: B(0x0e) OpenTh 000020a8: B(0x0f) CloseTh 000020d4: B(0x10) ChangeTh 00002724: C(0x0c) InitDefInt 0000278c: C(0x0d) SetIrqAutoAck 000027c0: C(0x12) InstallDevices 00002870: C(0x1b) KernelRedirect an input of p1 = 1 on the ps2 causes a system error :D 00002909: C(0x13) FlushStdInOutPut 00002958: A(0x00) open also B(0x32) 00002a64: A(0x01) lseek also B(0x33) 00002b28: A(0x02) read also B(0x34) 00002c94: A(0x03) write also B(0x35) 00002e00: A(0x04) close also B(0x36) 00002e98: B(0x55) _get_error 00002eec: B(0x54) _get_errno 00002efc: A(0x05) ioctl also B(0x37) 00002fc8: C(0x19) _ioabort 00003000: A(0x06) exit also B(0x38) 0000346c: A(0x07) isatty also B(0x39) 000034b4: C(0x17) _circgetc 0000352c: C(0x18) _circputc 000035a4: C(0x0e) ReturnZero Also C(0x0f), C(0x10), C(0x11), C(0x14). with dev bios, would actually be C(0x0e) dev_sio_init, C(0x0f) dev_sio_open, C(0x10) dev_sio_in_out, C(0x11) dev_sio_ioctl, C(0x14) SystemError 000035ac: B(0x40) cd 00003678: B(0x59) testdevice 00003744: B(0x45) erase 00003810: B(0x46) undelete 000038d8: B(0x41) format 000039a4: B(0x42) firstfile2 00003a70: B(0x43) nextfile 00003aac: B(0x44) rename 00003c2c: B(0x47) AddDrv 00003ce0: B(0x48) DelDrv 00003dac: B(0x49) PrintInstalledDevices 00003e5c: C(0x1a) set_card_find_mode 00003e68: C(0x1D) get_card_find_mode 00003e80: C(0x16) _cdevscan 00003f04: C(0x15) _cdevinput 00003ff0: A(0x0a) getchar also B(0x3c) 00004024: A(0x08) getc also B(0x3a) 0000406c: A(0x3c) putchar also B(0x3d) 000040c8: B(0x12) InitPAD2 00004134: A(0x09) putc also B(0x3b) 00004164: A(0x3d) gets also B(0x3e) 00004304: A(0x3e) puts also B(0x3f) 000043d0: B(0x5b) ChangeClearPAD 00004b90: B(0x13) StartPAD2 00004c10: B(0x14) StopPAD2 00004c70: B(0x4b) StartCARD2 00004cf4: B(0x4c) StopCARD2 00004d3c: B(0x50) _new_card 00005da8: B(0x4a) InitCARD2 00005e30: B(0x58) _card_chan 00005e50: B(0x4f) _card_read 00005f04: B(0x4e) _card_write 00005fb8: B(0x4d) _card_info_subfunc 0000605c: B(0x5c) _card_status 00006070: B(0x5d) _card_wait 0000609c: B(0x15) PAD_init2 000061c4: B(0x16) PAD_dr 000065e0: B(0x51) Krom2RawAdd 00006670: B(0x53) Krom2Offset <- subfunction of Krom2RawAdd 00006a50: B(0x52) SystemError 00006a60: B(0c5a) SystemError 00006ba0: C(0x0b) SystemError 00006bb0: B(0x1a) SystemError 00006bc0: B(0x1b) SystemError 00006bd0: B(0x1c) SystemError 00006be0: B(0x1d) SystemError 00006bf0: B(0x1e) SystemError 00006c00: B(0x1f) SystemError 00006c10: B(0x21) SystemError 00006c20: B(0x22) SystemError 00006c30: B(0x23) SystemError 00006c40: B(0x2a) SystemError 00006c50: B(0x2b) SystemError