From a6b7f2bab5ef7203ec29f8d22098fec7d81a00f7 Mon Sep 17 00:00:00 2001 From: Bobbi Webber-Manners Date: Tue, 26 May 2020 00:44:32 -0400 Subject: [PATCH] Turned on aux memory support --- sortdir.c | 10 +++++----- sortdir.po | Bin 143360 -> 143360 bytes 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/sortdir.c b/sortdir.c index b4a1a9b..96bb212 100644 --- a/sortdir.c +++ b/sortdir.c @@ -38,7 +38,7 @@ #define CHECK /* Perform additional integrity checking */ #define SORT /* Enable sorting code */ #undef FREELIST /* Checking of free list */ -#undef AUXMEM /* Auxiliary memory support on //e and up */ +#define AUXMEM /* Auxiliary memory support on //e and up */ #define NLEVELS 4 /* Number of nested sorts permitted */ @@ -47,7 +47,7 @@ typedef unsigned int uint; typedef unsigned long ulong; #define NMLEN 15 /* Length of filename */ -#define MAXFILES 200 /* Max files per directory */ +#define MAXFILES 220 /* Max files per directory */ /* * ProDOS directory header @@ -182,7 +182,7 @@ static char sortopts[NLEVELS+1] = ""; /* -s:abc list of sort options */ static char caseopts[2] = ""; /* -c:x case conversion option */ static char fixopts[2] = ""; /* -f:x fix mode option */ static char dateopts[2] = ""; /* -d:x date conversion option */ -static struct fileent filelist[MAXFILES]; /* Used for qsort() */ +static struct fileent *filelist; /* Used for qsort() */ // Allocated dynamically in main() static char *buf; /* General purpose scratch buffer */ @@ -1267,7 +1267,7 @@ int readdir(uint device, uint blocknum) { #endif ++numfiles; if (numfiles == MAXFILES) { - err(NONFATAL, "Too many files!"); + err(NONFATAL, "Too many files!\n"); return 1; } if (errcount == errsbeforeent) { @@ -2063,7 +2063,7 @@ int main() { _heapadd((void*)0x0800, 0x1800); //printf("\nHeap: %u %u\n", _heapmemavail(), _heapmaxavail()); - //filelist = (struct fileent*)malloc(sizeof(struct fileent) * MAXFILES); + filelist = (struct fileent*)malloc(sizeof(struct fileent) * MAXFILES); buf = (char*)malloc(sizeof(char) * BLKSZ); buf2 = (char*)malloc(sizeof(char) * BLKSZ); dirblkbuf = (char*)malloc(sizeof(char) * BLKSZ); diff --git a/sortdir.po b/sortdir.po index 0df1b7207cde1d86f145ace211c9118a000c3045..8ec740ec4cb4828878dc6eec7757c3f4f94016e3 100644 GIT binary patch delta 24526 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