Initial version of sortdir for ProDOS-8 (port from GNO/ME on the GS)

This commit is contained in:
Bobbi Webber-Manners 2020-05-22 17:01:18 -04:00
parent e5dc33d005
commit 737c6c31ec
3 changed files with 2146 additions and 0 deletions

29
Makefile Normal file
View File

@ -0,0 +1,29 @@
######################################################################
# Makefile for Sortdir, using cc65
# Bobbi, 2020
# GPL v3+
######################################################################
# Adjust these to match your site installation
CC65DIR = ~/Personal/Development/cc65
CC65BINDIR = $(CC65DIR)/bin
CC65LIBDIR = $(CC65DIR)/lib
CC65INCDIR = $(CC65DIR)/include
CA65INCDIR = $(CC65DIR)/asminc
APPLECMDR = ~/Personal/Historic\ Computing/Micros/Apple2/AppleCommander-1.3.5.jar
all: sortdir.system\#ff0000
clean:
rm -f *.s *.o *.map sortdir
sortdir.o: sortdir.c
$(CC65BINDIR)/cc65 -I $(CC65INCDIR) -t apple2enh -D A2E -o sortdir.s sortdir.c
$(CC65BINDIR)/ca65 -I $(CA65INCDIR) -t apple2enh sortdir.s
sortdir.system\#ff0000: sortdir.o
$(CC65BINDIR)/ld65 -m sortdir.map -o sortdir.system\#ff0000 -C apple2enh-system.cfg sortdir.o $(CC65LIBDIR)/apple2enh.lib
#sortdir.bin: sortdir.o
# $(CC65BINDIR)/ld65 -m sortdir.map -o sortdir.bin -C apple2enh.cfg -D __HIMEM__=0xbf00 sortdir.o $(CC65LIBDIR)/apple2enh.lib

40
apple2enh-system.cfg Normal file
View File

@ -0,0 +1,40 @@
# Configuration for ProDOS 8 system programs (without the header)
SYMBOLS {
__STACKSIZE__: type = weak, value = $0800; # 2k stack
__LCADDR__: type = weak, value = $D400; # Behind quit code
__LCSIZE__: type = weak, value = $0C00; # Rest of bank two
}
MEMORY {
ZP: file = "", define = yes, start = $0080, size = $001A;
MAIN: file = %O, start = $2000, size = $BF00 - $2000;
BSS: file = "", start = __ONCE_RUN__, size = $BF00 - __STACKSIZE__ - __ONCE_RUN__;
LC: file = "", define = yes, start = __LCADDR__, size = __LCSIZE__;
}
SEGMENTS {
ZEROPAGE: load = ZP, type = zp;
STARTUP: load = MAIN, type = ro;
LOWCODE: load = MAIN, type = ro, optional = yes;
CODE: load = MAIN, type = ro;
RODATA: load = MAIN, type = ro;
DATA: load = MAIN, type = rw;
INIT: load = MAIN, type = rw;
ONCE: load = MAIN, type = ro, define = yes;
LC: load = MAIN, run = LC, type = ro, optional = yes;
BSS: load = BSS, type = bss, define = yes;
}
FEATURES {
CONDES: type = constructor,
label = __CONSTRUCTOR_TABLE__,
count = __CONSTRUCTOR_COUNT__,
segment = ONCE;
CONDES: type = destructor,
label = __DESTRUCTOR_TABLE__,
count = __DESTRUCTOR_COUNT__,
segment = RODATA;
CONDES: type = interruptor,
label = __INTERRUPTOR_TABLE__,
count = __INTERRUPTOR_COUNT__,
segment = RODATA,
import = __CALLIRQ__;
}

2077
sortdir.c Normal file

File diff suppressed because it is too large Load Diff