From ea46d05aed0343c20d8fdfaa0e67d54d51e8e2a0 Mon Sep 17 00:00:00 2001 From: "John Wilbert M. Villamor" Date: Fri, 22 Nov 2019 09:11:12 +0800 Subject: Added long awaited CD-ROM library and loads of fixes, see changelog for details --- libpsn00b/include/psxapi.h | 58 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 40 insertions(+), 18 deletions(-) (limited to 'libpsn00b/include/psxapi.h') diff --git a/libpsn00b/include/psxapi.h b/libpsn00b/include/psxapi.h index 9abcd0c..0953dc3 100644 --- a/libpsn00b/include/psxapi.h +++ b/libpsn00b/include/psxapi.h @@ -1,23 +1,38 @@ #ifndef __PSXAPI__ #define __PSXAPI__ -#define DescHW 0xf0000000 -#define DescSW 0xf4000000 - -#define HwCARD (DescHW|0x11) -#define HwCARD_1 (DescHW|0x12) -#define HwCARD_0 (DescHW|0x13) -#define SwCARD (DescHW|0x02) - -#define EvSpIOE 0x0004 -#define EvSpERROR 0x8000 -#define EvSpTIMOUT 0x0100 -#define EvSpNEW 0x0200 - -#define EvMdINTR 0x1000 -#define EvMdNOINTR 0x2000 - -typedef struct { // Device control block +#define DescHW 0xf0000000 +#define DescSW 0xf4000000 + +#define HwCARD (DescHW|0x11) +#define HwCARD_1 (DescHW|0x12) +#define HwCARD_0 (DescHW|0x13) +#define SwCARD (DescHW|0x02) + +#define EvSpIOE 0x0004 +#define EvSpERROR 0x8000 +#define EvSpTIMOUT 0x0100 +#define EvSpNEW 0x0200 + +#define EvMdINTR 0x1000 +#define EvMdNOINTR 0x2000 + +// Root counter (timer) definitions +#define DescRC 0xf2000000 + +#define RCntCNT0 (DescRC|0x00) +#define RCntCNT1 (DescRC|0x01) +#define RCntCNT2 (DescRC|0x02) +#define RCntCNT3 (DescRC|0x03) + +#define RCntMdINTR 0x1000 // Turns on IRQ +#define RCntMdNOINTR 0x2000 // Polling mode +#define RCntMdSC 0x0001 // IRQ when counter target +#define RCntMdSP 0x0000 +#define RCntMdFR 0x0000 +#define RCntMdGATE 0x0010 + +typedef struct { // Device control block char *name; int flags; int ssize; @@ -121,6 +136,7 @@ int chdir(const char *path); int AddDev(DCB *dcb); int DelDev(const char *name); void ListDev(void); +void AddDummyTty(void); void EnterCriticalSection(void); void ExitCriticalSection(void); @@ -151,8 +167,14 @@ int _card_read(int chan, int sector, unsigned char *buf); int _card_write(int chan, int sector, unsigned char *buf); void _new_card(void); +// Timers +int SetRCnt(int spec, unsigned short target, int mode); +int GetRCnt(int spec); +int StartRCnt(int spec); +int StopRCnt(int spec); +int ResetRCnt(int spec); -// Interrupt acknowledge control +// BIOS IRQ acknowledge control void ChangeClearPAD(int mode); void ChangeClearRCnt(int t, int m); -- cgit v1.2.3