Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ClusterM/famicom-dumper.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com>2020-11-28 01:01:45 +0300
committerAlexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com>2020-11-28 01:01:45 +0300
commit31f5919539efcccafd17c0a05b3e7b18a5fe904d (patch)
tree655b32bbe3ad24b1362eb372ef8b713b1ed5434b
parentbd3e8800ded9be7326c2a5422c19487b36053a7a (diff)
Refactoring
-rw-r--r--comm.c13
-rw-r--r--comm.h4
-rw-r--r--defines.h4
-rw-r--r--dumper.c8
-rw-r--r--famicom-dumper.hex54
5 files changed, 42 insertions, 41 deletions
diff --git a/comm.c b/comm.c
index 1c39c21..50b349e 100644
--- a/comm.c
+++ b/comm.c
@@ -5,17 +5,16 @@
#include "usart.h"
#include "crc.h"
-static uint8_t comm_send_crc;
-static unsigned int comm_send_length;
-static unsigned int comm_send_pos;
+static uint8_t comm_send_crc; // CRC of outgoing packet with header
+static uint16_t comm_send_length; // size of outgoing data
+static uint16_t comm_send_pos; // how many data sent by app
-static int comm_recv_pos;
+volatile uint8_t recv_buffer[RECV_BUFFER_SIZE];
+static uint16_t comm_recv_pos; // how many bytes of packet received
static uint8_t comm_recv_crc;
static uint8_t comm_recv_error;
-
volatile uint8_t comm_recv_command;
-volatile unsigned int comm_recv_length;
-volatile uint8_t recv_buffer[RECV_BUFFER+8];
+volatile uint16_t comm_recv_length;
volatile uint8_t comm_recv_done;
static void comm_send_and_calc(uint8_t data)
diff --git a/comm.h b/comm.h
index a0804db..1636650 100644
--- a/comm.h
+++ b/comm.h
@@ -59,6 +59,6 @@ void comm_send_byte(uint8_t data);
void comm_proceed(uint8_t data);
extern volatile uint8_t comm_recv_command;
-extern volatile unsigned int comm_recv_length;
-extern volatile uint8_t recv_buffer[RECV_BUFFER+8];
+extern volatile uint16_t comm_recv_length;
+extern volatile uint8_t recv_buffer[RECV_BUFFER_SIZE];
extern volatile uint8_t comm_recv_done;
diff --git a/defines.h b/defines.h
index d1b667a..5089bd0 100644
--- a/defines.h
+++ b/defines.h
@@ -3,8 +3,8 @@
#define F_CPU 8000000UL
#define UART_BAUD 250000UL
-#define RECV_BUFFER 2048
-#define SEND_BUFFER 2048
+#define RECV_BUFFER_SIZE 2048
+#define SEND_BUFFER_SIZE 2048
#define PROTOCOL_VERSION 2
#define COOLBOY_GPIO_PORT B
diff --git a/dumper.c b/dumper.c
index 9340782..90326cd 100644
--- a/dumper.c
+++ b/dumper.c
@@ -913,10 +913,10 @@ int main (void)
case COMMAND_PRG_INIT:
comm_start(COMMAND_PRG_STARTED, 5);
comm_send_byte(PROTOCOL_VERSION);
- comm_send_byte(SEND_BUFFER & 0xFF);
- comm_send_byte((SEND_BUFFER >> 8) & 0xFF);
- comm_send_byte(RECV_BUFFER & 0xFF);
- comm_send_byte((RECV_BUFFER >> 8) & 0xFF);
+ comm_send_byte((SEND_BUFFER_SIZE - 4) & 0xFF);
+ comm_send_byte(((SEND_BUFFER_SIZE - 4) >> 8) & 0xFF);
+ comm_send_byte((RECV_BUFFER_SIZE - 4) & 0xFF);
+ comm_send_byte(((RECV_BUFFER_SIZE - 4) >> 8) & 0xFF);
break;
case COMMAND_PRG_READ_REQUEST:
diff --git a/famicom-dumper.hex b/famicom-dumper.hex
index a88c32b..b06123a 100644
--- a/famicom-dumper.hex
+++ b/famicom-dumper.hex
@@ -56,7 +56,7 @@
:10037000818540450187C047804641860182C04251
:10038000804341830041C1818180404011241FBED0
:10039000CFEFD0E1DEBFCDBF19E0A0E0B1E001C0FA
-:1003A0001D92A531B107E1F70E9434030C94820C31
+:1003A0001D92AD30B107E1F70E9434030C948F0C1D
:1003B0000C9400008BBB95BB95FD06C0809162003C
:1003C0008061809362000895809162008F7E8093A7
:1003D000620008950F931F938C01809162008E7FBD
@@ -124,8 +124,8 @@
:1007B000823209F42CC68332C0F5893009F437C17E
:1007C0008A3008F09FC0863009F498C1873009F458
:1007D00062C1853009F086CF80E065E070E00E945C
-:1007E000A90B82E00E94910B80E00E94910B88E0AF
-:1007F0000E94910B80E00E94910B88E00E94910B77
+:1007E000A90B82E00E94910B8CEF0E94910B87E095
+:1007F0000E94910B8CEF0E94910B87E00E94910B5D
:1008000071CF2F5F3F4F4F4F5F4F78CF6150704098
:1008100009F090CF20E030E040E050E0E0E06ECF23
:1008200020E030E040E050E069CF863209F4F5C3C3
@@ -243,7 +243,7 @@
:100F2000620080916200816080936200F7FCE6C2FB
:100F3000809162008260809362000115110509F4BE
:100F40005FC380E090E0EBBAF5BA22E02A95F1F7B2
-:100F500060B30E94710C015010400894E11CF11C18
+:100F500060B30E947E0C015010400894E11CF11C0B
:100F60000115110581F7182F092F80916200826009
:100F70008093620080E090E00E94DA0188E062E005
:100F800070E00E94A90B812F0E94910B802F0E947C
@@ -252,7 +252,7 @@
:100FB000F9A1EE2AFF2AC69AE114F10409F423C329
:100FC0002BA31AA2C32EDD242AA13BA1C22AD32A15
:100FD00000E010E0C6010E942002682FC8010E94B4
-:100FE000710C8C010894E108F1080894C11CD11C13
+:100FE0007E0C8C010894E108F1080894C11CD11C06
:100FF000E114F10479F7F82E80E090E00E94DA0124
:101000008CE062E070E00E94A90B8F2D0E94910B92
:10101000812F0E94910BC69865CB30910D012091D4
@@ -367,7 +367,7 @@
:1016E000ECB90196A11DB11D84179507A607B70790
:1016F00088F30895109206011092050110920B01D3
:101700001092080108951F93182F80910001612FF6
-:101710000E94690C80930001812F0E943B0B1F9156
+:101710000E94760C80930001812F0E943B0B1F9149
:1017200008950E94830B809103019091040101961A
:1017300090930401809303012091010130910201F3
:101740008217930709F00895809100010E943B0BD6
@@ -379,24 +379,26 @@
:1017A00080910801882321F0163411F01F910895CB
:1017B000109208018091050190910601892B21F476
:1017C0001092070110920B0180910701612F0E9476
-:1017D000690C282F80930701409105015091060163
-:1017E0004130510559F1423051050CF445C04230A9
-:1017F0005105D9F14330510559F1FA01349788E088
-:10180000E830F80708F04FC08091090190910A0173
-:10181000E817F90708F443C08091090190910A0183
-:10182000E817F90769F4222309F04AC081E08093A0
-:101830000B011092060110920501B8CF10930C0114
-:101840004F5F5F4F50930601409305011F9108952C
-:101850002091090130910A01912F80E0822B932B76
-:1018600090930A0180930901EBCF812F90E0909330
-:101870000A0180930901E4CF4115510509F0BDCF5C
-:101880001634F1F281E08093080182E060E070E0BC
-:101890000E94A90B4091050150910601D1CFE35F51
-:1018A000FE4F1083CDCF109206011092050181E00A
-:1018B0008093080184E060E070E00E94A90B76CF7D
-:1018C00081E08093080183E060E070E00E94A90B52
-:1018D000B0CF6827ECE8F0E0E60FF11DE4918E2F21
-:1018E0000895E62FF0E0E827F927F070EE0FFF1FCC
-:1018F000E457FE4F25913491892F992728273927BE
-:08190000C9010895F894FFCF1E
+:1017D000760C282F80930701409105015091060156
+:1017E0004130510509F43FC041305105B0F4163481
+:1017F00061F081E08093080182E060E070E00E9487
+:10180000A90B40910501509106014F5F5F4F509326
+:101810000601409305011F9108954230510561F181
+:1018200043305105B1F1FA01349788E0E030F80710
+:1018300008F046C08091090190910A01E817F90764
+:10184000D8F18091090190910A01E817F907E9F6AA
+:10185000222309F042C081E080930B01109206011F
+:1018600010920501A3CF10930C014F5F5F4F50936F
+:10187000060140930501CFCF812F90E090930A019C
+:10188000809309014F5F5F4F50930601409305011C
+:10189000C2CF2091090130910A01912F80E0822B63
+:1018A000932B90930A01809309014F5F5F4F5093F0
+:1018B000060140930501AFCFE35FFE4F1083A5CF34
+:1018C000109206011092050181E08093080184E0E6
+:1018D00060E070E00E94A90B69CF81E0809308016D
+:1018E00083E060E070E00E94A90BB8CF6827ECE8C5
+:1018F000F0E0E60FF11DE4918E2F0895E62FF0E061
+:10190000E827F927F070EE0FFF1FE457FE4F2591EF
+:101910003491892F992728273927C9010895F894E8
+:02192000FFCFF7
:00000001FF