Now that the CBM PFS supports file removal (and a file seek stub) it is possible to have the Telnet server leverage the IDE64 support of the CBM PFS.
Note: Using the CBM PFS for the Telnet server does _not_ reduce the code size since the POSIX I/O functions are additionally still linked in because the POSIX directory functions internally use the POSIX I/O functions. And that's the very reason why the CBM PFS is _not_ activated for the C128 Telnet server: The CBM PFS for the C128 doesn't bring IDE64 support but is supposed to be used to reduce code size - but this isn't possible for the Telnet server.
So far 80 column display was an attribute of a cc65 platform. Now each cc65 application can ask for 80 column display by defining WITH_80COL. Of course this is ignored by platforms incapable of 80 column display.
I see three types of application:
* Applications not benefitting from 80 column at all and in fact looking better with 40 column display. These are now using 40 column display. Examples: ethconfig, ipconfig
* Applications taking advantage of 80 column display if it is available without drawbacks. These stay as they were. Examples: Telnet server, web server, wget
* Applications needing 80 column display so urgently that it is likely desirable even if the display becomes harder to read. These come now in both flavors allowing the user to choose. Examples: IRC, web browser
Note: This change doesn't actually introduce any 80 column display with drawbacks. This if left to a subsequent change.
In order to have the wget command make some sense the write command should be present too.
- On the Apple][ reduction of the MTU seems to gain just enough RAM to have the (rather heavy-weight) full-blown C library file I/O working.
- On the C128 there's way too little RAM so there's no wget command but only the file commands.
- On the CBMs a dummy lseek() was necessary to have the read command link.
make TARGET=mytarget DEFINES=MYLOG, MYSIZE=100, MYTRACE
The build system does however _NOT_ take care to rebuild things if the DEFINES change so most likely a 'make clean' is advisable. To ease usage the DEFINES may be saved individually per target with the goal 'savedefines' similiar to savinf the target.
The 6502-based target leverage the DEFINES mechanism by introducing so-called 'high level config macros' which allow to configure Contiki per target AND per project.
Most of the time there's exactly one reasonable set of high level config macros for every combination of target and project. Therefore it makes sense to place them into CVS.
Therefore I introduced the make variable CONTIKI_PROJECT. Now a typical project Makefile starts with:
CONTIKI_PROJECT = hello-world
all: $(CONTIKI_PROJECT)