tools/plus3boot: tools/plus3boot.c
+tools/raw2dsk: tools/raw2dsk.c
+
tools/raw2mgt: tools/raw2mgt.c
tools/bankld/sdldz80:
fuzix.ihx: target $(OBJS) platform-$(TARGET)/fuzix.lnk tools/bankld/sdldz80
$(CROSS_LD) -n -k $(LIBZ80) -f platform-$(TARGET)/fuzix.lnk
-fuzix.bin: fuzix.ihx tools/bihx tools/analysemap tools/memhogs tools/binman tools/bintomdv tools/binmunge tools/bin2sna tools/bin2z80 cpm-loader/cpmload.bin tools/flat2z80 tools/makejv3 tools/trslabel tools/visualize tools/raw2mgt tools/cartman tools/makedck tools/plus3boot
+fuzix.bin: fuzix.ihx tools/bihx tools/analysemap tools/memhogs tools/binman tools/bintomdv tools/binmunge tools/bin2sna tools/bin2z80 cpm-loader/cpmload.bin tools/flat2z80 tools/makejv3 tools/trslabel tools/visualize tools/raw2dsk tools/raw2mgt tools/cartman tools/makedck tools/plus3boot
-cp hogs.txt hogs.txt.old
tools/memhogs <fuzix.map |sort -nr >hogs.txt
head -5 hogs.txt
--- /dev/null
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+/* Turn a raw image into a DSK file
+
+ Our input is raw sector data single sided, our output is a 40 track
+ spectrum +3 image we hope
+
+ 9 sectors per track MFM, 40 tracks, single side (flippy)
+
+ We want this to work in the +3 with 3" drive - the 80 track and double
+ side options only came in later add on drives */
+
+int main(int argc, char *argv[])
+{
+ FILE *in, *out;
+ static unsigned char buf[512 * 9];
+ unsigned char *bp;
+ int track, sector;
+
+ strcpy(buf, "MV - CPCEMU Disk-File\r\nDisk-Info\r\n");
+ buf[0x30] = 40;
+ buf[0x31] = 1;
+ buf[0x32] = 0;
+ buf[0x33] = 13;
+
+ if (argc != 3) {
+ fprintf(stderr, "%s: source dest.\n", argv[0]);
+ exit(1);
+ }
+
+ in = fopen(argv[1], "r");
+ if (in == NULL) {
+ perror(argv[1]);
+ exit(1);
+ }
+ out = fopen(argv[2], "w");
+ if (out == NULL) {
+ perror(argv[2]);
+ exit(1);
+ }
+
+ /* Write the header */
+ if (fwrite(buf, 256, 1, out) != 1) {
+ perror(argv[2]);
+ exit(1);
+ }
+ for (track = 0; track < 40; track++) {
+ /* Generate the track header */
+ memset(buf, 0, 512);
+ strcpy(buf, "Track-Info\r\n");
+ buf[0x10] = track;
+ buf[0x11] = 0;
+ buf[0x14] = 2;
+ buf[0x15] = 9;
+ buf[0x16] = 0x4E;
+ buf[0x17] = 0xE5;
+ bp = buf + 0x18;
+ for (sector = 1; sector < 10; sector++) {
+ *bp++ = track;
+ *bp++ = 0;
+ *bp++ = sector;
+ *bp++ = 2;
+ *bp++ = 0;
+ *bp++ = 0;
+ *bp++ = 0;
+ *bp++ = 0;
+ }
+ if (fwrite(buf, 256, 1, out) != 1) {
+ perror(argv[2]);
+ exit(1);
+ }
+ if (fread(buf, 512, 9, in) != 9) {
+ perror(argv[1]);
+ exit(1);
+ }
+ if (fwrite(buf, 512, 9, out) != 9) {
+ perror(argv[2]);
+ exit(1);
+ }
+ }
+ if (fclose(in)) {
+ perror(argv[1]);
+ exit(1);
+ }
+ if (fclose(out)) {
+ perror(argv[2]);
+ exit(1);
+ }
+ exit(0);
+}