projects
/
h316.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
*** empty log message ***
[h316.git]
/
pc-tools
/
ldc
/
ldc.c
diff --git
a/pc-tools/ldc/ldc.c
b/pc-tools/ldc/ldc.c
index 7d67a28bf2a215e0bed2dd5622f902a38cf11118..81fd9e1d1048e43358238d90ba52bb05adfb17db 100644
(file)
--- a/
pc-tools/ldc/ldc.c
+++ b/
pc-tools/ldc/ldc.c
@@
-32,6
+32,9
@@
int inputfd;
int ignore = 0;
int dosplit = 0;
int splitnum = 0;
int ignore = 0;
int dosplit = 0;
int splitnum = 0;
+int silent = 0;
+int read_pos = -5;
+int block_pos= -5;
/********************************************************/
/********************************************************/
@@
-90,7
+93,7
@@
void errf (char *format, ...)
void say (char *string)
{
void say (char *string)
{
- printf ("%s\n", string);
+
if (!silent)
printf ("%s\n", string);
}
void sayf (char *format, ...)
}
void sayf (char *format, ...)
@@
-213,7
+216,8
@@
datablock *get_block()
if (tapemode)
tapestart ();
do {
if (tapemode)
tapestart ();
do {
- ret = read (inputfd, buffer, 1);
+ read_pos+=ret=read (inputfd, buffer, 1);
+
#ifdef HARDCORE_DEBUG
msgf ("READ : (hex)%02x (bin)%s (dec)%3i (oct)%3o",
buffer[0], bin2str (buffer[0], 8), buffer[0], buffer[0]);
#ifdef HARDCORE_DEBUG
msgf ("READ : (hex)%02x (bin)%s (dec)%3i (oct)%3o",
buffer[0], bin2str (buffer[0], 8), buffer[0], buffer[0]);
@@
-233,7
+237,8
@@
datablock *get_block()
}
} while (*buffer != (unsigned char) CHAR_START);
}
} while (*buffer != (unsigned char) CHAR_START);
-
+
+ block_pos=read_pos;
msg ("get_block(): Blockstart erkannt");
// blk_data = (hw16 *) malloc (MAX_BLOCK_SIZE * sizeof (hw16));
msg ("get_block(): Blockstart erkannt");
// blk_data = (hw16 *) malloc (MAX_BLOCK_SIZE * sizeof (hw16));
@@
-245,6
+250,7
@@
datablock *get_block()
do {
complete = 0;
ret = read (inputfd, buffer + round, 1);
do {
complete = 0;
ret = read (inputfd, buffer + round, 1);
+ read_pos+=ret;
#ifdef HARDCORE_DEBUG
static int lochzahl = 0;
char *bin = bin2str (buffer[round], 8);
#ifdef HARDCORE_DEBUG
static int lochzahl = 0;
char *bin = bin2str (buffer[round], 8);
@@
-301,12
+307,13
@@
datablock *get_block()
if (checksum_error (blk_data, blk_size)) {
if (checksum_error (blk_data, blk_size)) {
- err ("get_block(): Checksummenfehler");
+ errf ("get_block(): Checksum error!\nBlock start: %i (0x%x), read address %i (0x%x).",
+ block_pos,block_pos,read_pos,read_pos);
#ifdef CHECKSUM_DUMP
dump_data (buffer, 3);
#ifdef CHECKSUM_DUMP
dump_data (buffer, 3);
- read (inputfd, buffer, 3);
+ read
_pos+=read
(inputfd, buffer, 3);
dump_data (buffer, 3);
#endif
dump_data (buffer, 3);
#endif
@@
-348,16
+355,19
@@
int main (int argc, char **args)
//msgf ("Action %c, Arg dazu:%s", action, parm);
switch (action) {
case 'I':
//msgf ("Action %c, Arg dazu:%s", action, parm);
switch (action) {
case 'I':
- ignore
++
;
+ ignore
=1
;
break;
case 't':
break;
case 't':
- tapemode
++
;
+ tapemode
=1
;
break;
case 'S':
break;
case 'S':
- splitnum
++
;
+ splitnum
=1
;
case 's':
case 's':
- dosplit
++
;
+ dosplit
=1
;
break;
break;
+ case 'l':
+ silent=1;
+ break;
default:
say ("Usage:\n");
sayf ("%s [-t] [-S] [-n] [-I] [filename]", args[0]);
default:
say ("Usage:\n");
sayf ("%s [-t] [-S] [-n] [-I] [filename]", args[0]);
@@
-366,6
+376,7
@@
int main (int argc, char **args)
sayf (" -S Split library tape into separate numbered files");
sayf (" -s same as -S but no numbering");
sayf (" -I Ignore errors");
sayf (" -S Split library tape into separate numbered files");
sayf (" -s same as -S but no numbering");
sayf (" -I Ignore errors");
+ sayf (" -l be silent");
sayf ("");
exit (1);
break;
sayf ("");
exit (1);
break;
@@
-402,6
+413,9
@@
int main (int argc, char **args)
}
datablock *akt_block;
}
datablock *akt_block;
+ /* Initialize read position */
+ read_pos=0;
+
while (1) {
msg ("********************************************************");
msgf ("Block no. %5i", blk_no++);
while (1) {
msg ("********************************************************");
msgf ("Block no. %5i", blk_no++);