summaryrefslogtreecommitdiff
path: root/src/libultra_code_O2/__osContRamRead.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libultra_code_O2/__osContRamRead.c')
-rw-r--r--src/libultra_code_O2/__osContRamRead.c63
1 files changed, 0 insertions, 63 deletions
diff --git a/src/libultra_code_O2/__osContRamRead.c b/src/libultra_code_O2/__osContRamRead.c
deleted file mode 100644
index 97d5db651..000000000
--- a/src/libultra_code_O2/__osContRamRead.c
+++ /dev/null
@@ -1,63 +0,0 @@
-#include "global.h"
-
-#define BLOCKSIZE 32
-
-s32 __osPfsLastChannel = -1;
-
-s32 __osContRamRead(OSMesgQueue* ctrlrqueue, s32 channel, u16 addr, u8* data) {
- s32 ret;
- s32 i;
- u8* bufptr;
- s32 retryCount = 2;
-
- __osSiGetAccess();
- do {
- bufptr = (u8*)&gPifMempakBuf;
-
- if ((__osContLastPoll != 2) || (__osPfsLastChannel != channel)) {
- __osContLastPoll = 2;
- __osPfsLastChannel = channel;
- // clang-format off
- for (i = 0; i < channel; i++) { *bufptr++ = 0; }
- // clang-format on
- gPifMempakBuf.status = 1;
- ((__OSContRamHeader*)bufptr)->unk_00 = 0xFF;
- ((__OSContRamHeader*)bufptr)->txsize = 3;
- ((__OSContRamHeader*)bufptr)->rxsize = 0x21;
- ((__OSContRamHeader*)bufptr)->poll = CONT_CMD_READ_MEMPACK; // read mempak; send byte 0
- ((__OSContRamHeader*)bufptr)->datacrc = 0xFF; // read mempak; send byte 0
- // Received bytes are 6-26 inclusive
- bufptr[sizeof(__OSContRamHeader)] = CONT_CMD_END; // End of commands
- } else {
- bufptr += channel;
- }
-
- ((__OSContRamHeader*)bufptr)->hi = addr >> 3; // send byte 1
- ((__OSContRamHeader*)bufptr)->lo = (s8)(__osContAddressCrc(addr) | (addr << 5)); // send byte 2
- __osSiRawStartDma(OS_WRITE, &gPifMempakBuf);
- osRecvMesg(ctrlrqueue, NULL, OS_MESG_BLOCK);
- __osSiRawStartDma(OS_READ, &gPifMempakBuf);
- osRecvMesg(ctrlrqueue, NULL, OS_MESG_BLOCK);
-
- ret = (((__OSContRamHeader*)bufptr)->rxsize & 0xC0) >> 4;
- if (!ret) {
- if (((__OSContRamHeader*)bufptr)->datacrc != __osContDataCrc(bufptr + 6)) {
- ret = __osPfsGetStatus(ctrlrqueue, channel);
- if (ret) {
- break;
- }
- ret = 4; // Retry
- } else {
- bcopy(bufptr + 6, data, BLOCKSIZE);
- }
- } else {
- ret = 1; // Error
- }
- if (ret != 4) {
- break;
- }
- } while (0 <= retryCount--);
- __osSiRelAccess();
-
- return ret;
-}