aboutsummaryrefslogtreecommitdiff
path: root/libpsn00b/include
diff options
context:
space:
mode:
authorJohn Wilbert M. Villamor <lameguy64@gmail.com>2019-08-17 14:44:29 +0800
committerJohn Wilbert M. Villamor <lameguy64@gmail.com>2019-08-17 14:44:29 +0800
commit82a441e7bd3a5103330c7d5ca7f9df470953e586 (patch)
treea8a933aa9f03767c6cebc5e11380c37931eae5cd /libpsn00b/include
parente7f9e08937f9d556793c1e0ff0a08856a3897b41 (diff)
downloadpsn00bsdk-82a441e7bd3a5103330c7d5ca7f9df470953e586.tar.gz
Added childexec example, added BIOS memory card functions, changed PAD function names, runtime library now 0.13b
Diffstat (limited to 'libpsn00b/include')
-rw-r--r--libpsn00b/include/psxapi.h49
-rw-r--r--libpsn00b/include/psxgpu.h9
-rw-r--r--libpsn00b/include/stdio.h8
3 files changed, 53 insertions, 13 deletions
diff --git a/libpsn00b/include/psxapi.h b/libpsn00b/include/psxapi.h
index f5a3c07..d25e620 100644
--- a/libpsn00b/include/psxapi.h
+++ b/libpsn00b/include/psxapi.h
@@ -1,6 +1,22 @@
#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
char *name;
int flags;
@@ -97,8 +113,10 @@ struct DIRENTRY *nextfile(struct DIRENTRY *entry);
int erase(const char *name);
int chdir(const char *path);
-#define delete( p ) erase( p )
-#define cd( p ) chdir( p ) // For compatibility
+//#define delete( p ) erase( p ) // May conflict with delete operator in C++
+#define cd( p ) chdir( p ) // For compatibility
+
+// BIOS device functions
int AddDev(DCB *dcb);
int DelDev(const char *name);
@@ -107,15 +125,34 @@ void ListDev(void);
void EnterCriticalSection(void);
void ExitCriticalSection(void);
+// BIOS CD functions
void _InitCd(void);
void _96_init(void);
void _96_remove(void);
// BIOS pad functions
-void _InitPad(char *buff1, int len1, char *buff2, int len2);
-void _StartPad(void);
-void _StopPad(void);
-
+void InitPAD(char *buff1, int len1, char *buff2, int len2);
+void StartPAD(void);
+void StopPAD(void);
+
+// BIOS memory card functions
+void InitCARD(int pad_enable);
+void StartCARD(void);
+void StopCARD(void);
+void _bu_init(void);
+
+int _card_load(int chan);
+int _card_info(int chan);
+int _card_status(int chan);
+int _card_wait(int chan);
+int _card_clear(int chan);
+int _card_chan(void);
+int _card_read(int chan, int sector, unsigned char *buf);
+int _card_write(int chan, int sector, unsigned char *buf);
+void _new_card(void);
+
+
+// Interrupt acknowledge control
void ChangeClearPAD(int mode);
void ChangeClearRCnt(int t, int m);
diff --git a/libpsn00b/include/psxgpu.h b/libpsn00b/include/psxgpu.h
index 2415c83..d6c68cf 100644
--- a/libpsn00b/include/psxgpu.h
+++ b/libpsn00b/include/psxgpu.h
@@ -31,13 +31,8 @@
// Primitive macros
-#define setDrawTPage( p, tp, abr, x, y ) \
- ( (p)->code[0] = getTPage( tp, abr, x, y ), \
- setlen( p, 1 ), setcode( p, 0xe1 ) )
-
-/* ORIGINAL */
-#define setDrawTPageVal( p, tp ) \
- ( (p)->code[0] = tp, \
+#define setDrawTPage( p, dfe, dtd, tpage ) \
+ ( (p)->code[0] = tpage|(dfe<<10)|(dtd<<9), \
setlen( p, 1 ), setcode( p, 0xe1 ) )
/*#define setVram2Vram( p ) ( setlen( p, 8 ), setcode( p, 0x80 ), \
diff --git a/libpsn00b/include/stdio.h b/libpsn00b/include/stdio.h
index 81249de..cf1909d 100644
--- a/libpsn00b/include/stdio.h
+++ b/libpsn00b/include/stdio.h
@@ -7,6 +7,14 @@
#define NULL 0
#endif
+#ifndef true
+#define true 1
+#endif
+
+#ifndef false
+#define false 0
+#endif
+
// BIOS seek modes
#ifndef SEEK_SET
#define SEEK_SET 0