added -s option to override start address

This commit is contained in:
Egan Ford 2017-04-01 19:59:47 -06:00
parent 8b19f6a011
commit 66f63c53d7
5 changed files with 13 additions and 9 deletions

View File

@ -59,7 +59,7 @@ Windows/MinGW:
### Usage/Examples
```
usage: c2d [-vh?]
c2d [-m] input[.mon],[load_address] output.dsk
c2d [-m] [-s start address override] input[.mon],[load_address] output.dsk
-h|? this help
-m jump to monitor after booting
@ -85,7 +85,7 @@ Examples:
### The Ugly Stuff
c2d, Code to Disk, Version 0.2, Sun Apr 2 00:59:38 UTC 2017
c2d, Code to Disk, Version 0.3, Sat Apr 1 19:57:16 MDT 2017
(c) 2012,2017 All Rights Reserved, Egan Ford (egan@sense.net)

BIN
bin/c2d

Binary file not shown.

Binary file not shown.

16
c2d.c
View File

@ -1,6 +1,6 @@
/*
c2d, Code to Disk, Version 0.2, Sun Apr 2 00:59:38 UTC 2017
c2d, Code to Disk, Version 0.3, Sat Apr 1 19:57:16 MDT 2017
(c) 2012,2017 All Rights Reserved, Egan Ford (egan@sense.net)
@ -53,7 +53,7 @@ Bugs:
#include <sys/stat.h>
#include "c2d.h"
#define VERSION "Version 0.2"
#define VERSION "Version 0.3"
#define INFILE argv[argc-2]
#define OUTFILE argv[argc-1]
#define BINARY 0
@ -65,13 +65,13 @@ char *getext(char *filename);
int main(int argc, char **argv)
{
FILE *ifp, *ofp;
int c, j, k, start, inputtype, warm = 0, filesize = 0;
int c, j, k, start, start_override = 0, inputtype, warm = 0, filesize = 0;
struct stat st;
char *filetypes[] = {"BINARY","MONITOR"};
char *ext, filename[256], load_address[10];
opterr = 1;
while((c = getopt(argc, argv, "vmh?")) != -1)
while((c = getopt(argc, argv, "vmh?s:")) != -1)
switch(c) {
case 'm':
warm = 1;
@ -80,6 +80,9 @@ int main(int argc, char **argv)
fprintf(stderr,"\n%s\n\n",VERSION);
return 1;
break;
case 's': // override rate for -1/-2 only
start_override = (int)strtol(optarg, (char **)NULL, 16);
break;
case 'h': // help
case '?':
usage();
@ -140,8 +143,6 @@ int main(int argc, char **argv)
filesize |= b << 8;
}
printf("debug: %x %x\n\n",start,start&0xFF);
//check for errors
fread(&blank.track[1].sector[0].byte[start & 0xFF], filesize, 1, ifp);
}
@ -187,6 +188,9 @@ printf("debug: %x %x\n\n",start,start&0xFF);
if(warm)
start = 0xFF69;
if(start_override)
start = start_override;
blank.track[0].sector[1].byte[0x3B] = 0x4C;
blank.track[0].sector[1].byte[0x3C] = start & 0xFF;
blank.track[0].sector[1].byte[0x3D] = start >> 8;

2
c2d.h
View File

@ -13,7 +13,7 @@ typedef struct d {
const char *usagetext="\n\
usage: c2d [-vh?]\n\
c2d [-m] input[.mon],[load_address] output.dsk\n\
c2d [-m] [-s start address override] input[.mon],[load_address] output.dsk\n\
\n\
-h|? this help\n\
-m jump to monitor after booting\n\