summaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
authorXavi Del Campo <xavi.dcr@tutanota.com>2020-03-08 17:23:03 +0100
committerXavi Del Campo <xavi.dcr@tutanota.com>2020-03-08 22:33:58 +0100
commit68e21103e09c7a59292485ab805683760b86e6ba (patch)
tree92c33d6211eeae35600525e2520a138503e8281d /src/main.c
parent96b0c9d692fd4b41d41e13cdcd8fc773b3976dde (diff)
downloadopensend-68e21103e09c7a59292485ab805683760b86e6ba.tar.gz
Implemented message protocol, not tested yet
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c118
1 files changed, 0 insertions, 118 deletions
diff --git a/src/main.c b/src/main.c
index 8c958b5..b14ffb5 100644
--- a/src/main.c
+++ b/src/main.c
@@ -7,124 +7,6 @@
int main(void)
{
SystemInit();
-
reception_loop();
-
- for (;;)
- ;
-
-#if 0
- {
- uint32_t initPC_Address;
- uint32_t RAMDest_Address;
- uint32_t ExeSize = 0;
- uint32_t i;
- void (*exeAddress)(void);
-
- GfxSetGlobalLuminance(0);
-
- SerialInit();
-
- /* Read PSX-EXE header (32 bytes will be enough). */
-
- SerialSetState(SERIAL_STATE_READING_HEADER);
-
- SerialRead(inBuffer, 32);
-
- /* Get initial program counter address from PSX-EXE header. */
-
- initPC_Address = (inBuffer[0x10] | (inBuffer[0x11] << 8) | (inBuffer[0x12] << 16) | (inBuffer[0x13] << 24) );
-
- SerialSetPCAddress(initPC_Address);
-
- /* dprintf("initPC_Address = 0x%08X\n", initPC_Address); */
-
- /* Get destination address in RAM from PSX-EXE header. */
-
- RAMDest_Address = (inBuffer[0x18] | (inBuffer[0x19] << 8) | (inBuffer[0x1A] << 16) | (inBuffer[0x1B] << 24) );
-
- SerialSetRAMDestAddress(RAMDest_Address);
-
- /* dprintf("RAMDest_Address = 0x%08X\n", RAMDest_Address); */
-
- /* We have received all data correctly. Send ACK. */
-
- memset(inBuffer, 0, SystemGetBufferSize());
-
- SerialSetState(SERIAL_STATE_WRITING_ACK);
-
- SerialWrite(ACK_BYTE_STRING, sizeof(uint8_t)); /* Write ACK */
-
- /* Get PSX-EXE size, without header, in hexadecimal, little-endian format; */
-
- SerialSetState(SERIAL_STATE_READING_EXE_SIZE);
-
- SerialRead(inBuffer, sizeof(uint32_t) );
-
- for (i = 0; i < sizeof(uint32_t); i++)
- {
- ExeSize |= inBuffer[i] << (i << 3); /* (i << 3) == (i * 8) */
- }
-
- SerialSetExeSize(ExeSize);
-
- /* DEBUG_PRINT_VAR(ExeSize); */
-
- SerialSetState(SERIAL_STATE_CLEANING_MEMORY);
-
- exeAddress = (void*)initPC_Address;
-
- /* Clean memory where EXE data will be loaded, just in case... */
-
- memset((void*)RAMDest_Address, 0, (uint32_t)((uint32_t)(&_start) - (uint32_t)(RAMDest_Address) ) );
-
- SerialSetState(SERIAL_STATE_WRITING_ACK);
-
- /* We have received PSX-EXE size (without header) correctly. Send ACK. */
-
- SerialWrite(ACK_BYTE_STRING, sizeof(uint8_t)); /* Write ACK */
-
- SerialSetState(SERIAL_STATE_READING_EXE_DATA);
-
- while (GfxIsGPUBusy() == true);
-
- for (i = 0; i < ExeSize; i += EXE_DATA_PACKET_SIZE)
- {
- uint32_t bytes_to_read;
-
- /* Read actual EXE data into proper RAM address. */
-
- if ( (i + EXE_DATA_PACKET_SIZE) >= ExeSize)
- {
- bytes_to_read = ExeSize - i;
- }
- else
- {
- bytes_to_read = EXE_DATA_PACKET_SIZE;
- }
-
- SerialRead((uint8_t*)RAMDest_Address + i, bytes_to_read);
-
- SerialSetExeBytesReceived(bytes_to_read);
-
- SerialWrite(ACK_BYTE_STRING, sizeof(uint8_t)); /* Write ACK */
- }
-
- SetVBlankHandler(&ISR_SystemDefaultVBlank);
-
- /* Make a pretty animation before exeting OpenSend application. */
-
- EndAnimation();
-
- PSX_DeInit();
-
- /* PSX-EXE has been successfully loaded into RAM. Run executable! */
-
- /* dprintf("Entering exe...\n"); */
-
- exeAddress();
- }
-#endif
-
return 0;
}