X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=libpcsxcore%2Fpsxbios.c;h=924996a31615748b16bce9439f0711a01211e6a7;hp=b13874ea7476ef1ef3d8b9bc7f850ab86eccc156;hb=ba11675ca958088f3c5c1e60a5d437f0c1683514;hpb=324cec89343c216ad232fbcaf50faed6e528beef diff --git a/libpcsxcore/psxbios.c b/libpcsxcore/psxbios.c index b13874ea..924996a3 100644 --- a/libpcsxcore/psxbios.c +++ b/libpcsxcore/psxbios.c @@ -369,6 +369,33 @@ void psxBios_putc(void) // 0x09, 0x3B pc0 = ra; } +void psxBios_todigit(void) // 0x0a +{ + int c = a0; +#ifdef PSXBIOS_LOG + PSXBIOS_LOG("psxBios_%s\n", biosA0n[0x0a]); +#endif + c &= 0xFF; + if (c >= 0x30 && c < 0x3A) { + c -= 0x30; + } + else if (c > 0x60 && c < 0x7B) { + c -= 0x20; + } + else if (c > 0x40 && c < 0x5B) { + c = c - 0x41 + 10; + } + else if (c >= 0x80) { + c = -1; + } + else + { + c = 0x0098967F; + } + v0 = c; + pc0 = ra; +} + void psxBios_abs() { // 0x0e if ((s32)a0 < 0) v0 = -(s32)a0; else v0 = a0; @@ -2432,7 +2459,7 @@ void psxBiosInit() { //biosA0[0x07] = psxBios_sys_a0_07; biosA0[0x08] = psxBios_getc; biosA0[0x09] = psxBios_putc; - //biosA0[0x0a] = psxBios_todigit; + biosA0[0x0a] = psxBios_todigit; //biosA0[0x0b] = psxBios_atof; //biosA0[0x0c] = psxBios_strtoul; //biosA0[0x0d] = psxBios_strtol;