From 53d557a50f7daebcd4c83786885bc2ea0afbd1f3 Mon Sep 17 00:00:00 2001 From: Bobbi Webber-Manners Date: Wed, 27 May 2020 20:20:25 -0400 Subject: [PATCH] Auto-sizing of filelist[] array to fit available memory --- sortdir.c | 9 ++++++--- sortdir.po | Bin 143360 -> 143360 bytes 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/sortdir.c b/sortdir.c index 96bb212..1b1f8ca 100644 --- a/sortdir.c +++ b/sortdir.c @@ -3,7 +3,6 @@ * * Bobbi January-March 2020 * - * TODO: Aux memory support for ProDOS-8 * TODO: Enable free list functionality on ProDOS-8 * TODO: Get both ProDOS-8 and GNO versions to build from this source * TODO: Trimming unused directory blocks @@ -12,6 +11,7 @@ * v0.5 Initial alpha release on GitHub. Ported from GNO/ME version. * v0.51 Made buf[] and buf2[] dynamic. * v0.52 Support for aux memory. + * v0.53 Auto-sizing of filelist[] to fit available memory. */ //#pragma debug 9 @@ -1728,7 +1728,7 @@ void interactive(void) { doverbose = 1; - puts("S O R T D I R v0.52 alpha Use ^ to return to previous question"); + puts("S O R T D I R v0.53 alpha Use ^ to return to previous question"); q1: fputs("\nEnter path (e.g.: /H1) of starting directory> ", stdout); @@ -2063,10 +2063,13 @@ int main() { _heapadd((void*)0x0800, 0x1800); //printf("\nHeap: %u %u\n", _heapmemavail(), _heapmaxavail()); - 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); + //printf("\nHeap: %u %u\n", _heapmemavail(), _heapmaxavail()); + blk = (_heapmaxavail() - 1024) / sizeof(struct fileent); + printf("[%u]\n", blk); + filelist = (struct fileent*)malloc(sizeof(struct fileent) * blk); parseargs(); diff --git a/sortdir.po b/sortdir.po index 8ec740ec4cb4828878dc6eec7757c3f4f94016e3..4ad6431bad1973ac41d926c572948c03f6ebe9d9 100644 GIT binary patch delta 24494 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