psx-sdk-rs
psx-sdk-rs copied to clipboard
Where is libbios located?
Looking at the little sample application, it uses bios calls to display stuff. Then looking at the Makefile, it's clear it requires libbios, but I cannot find it in this project. Where is it?
That's a good question, I haven't looked at this in a while and I can't recall how I linked everything together. I suppose I simply reused the code I used to link my C programs, which is in my psx-hardware-tests. At any rate it's very simple code, it's just a bunch of "trampoline" function to call into the BIOS itself. The code itself is here: https://github.com/simias/psx-hardware-tests/tree/master/runtime and the BIOS routines are generated from bios-vectors.in
using generate-bios-vectors.awk
. The generated file looks like this:
.set mips1
.set noreorder
.set noat
.set nomacro
.text
.section .text.bios_printf
.global bios_printf
.type bios_printf, function
bios_printf:
j 0xa0
li $t1, 0x3f
.section .text.bios_flush_cache
.global bios_flush_cache
.type bios_flush_cache, function
bios_flush_cache:
j 0xa0
li $t1, 0x44
.section .text.bios_gpu_sync
.global bios_gpu_sync
.type bios_gpu_sync, function
bios_gpu_sync:
j 0xa0
li $t1, 0x4e
.section .text.bios_gpu_command_word
.global bios_gpu_command_word
.type bios_gpu_command_word, function
bios_gpu_command_word:
j 0xa0
li $t1, 0x49
.section .text.bios_gpu_command_word_and_params
.global bios_gpu_command_word_and_params
.type bios_gpu_command_word_and_params, function
bios_gpu_command_word_and_params:
j 0xa0
li $t1, 0x4a
.section .text.bios_gpu_gp1_command_word
.global bios_gpu_gp1_command_word
.type bios_gpu_gp1_command_word, function
bios_gpu_gp1_command_word:
j 0xa0
li $t1, 0x48
.section .text.bios_gpu_get_status
.global bios_gpu_get_status
.type bios_gpu_get_status, function
bios_gpu_get_status:
j 0xa0
li $t1, 0x4d
.section .text.bios_kernel_redirect
.global bios_kernel_redirect
.type bios_kernel_redirect, function
bios_kernel_redirect:
j 0xc0
li $t1, 0x1b