Commit graph

29 commits

Author SHA1 Message Date
Oliver Schmidt
91beb8670f Added SLIP support to retro platforms.
The cc65 tool chain comes with V.24 drivers so it seems reasonable to use the existing Contiki SLIP driver to implement network access via SLIP as alternative to Ethernet.

Some notes:
- The Ethernet configuration was simplified in order to allow share it with SLIP.
- The Contiki SLIP driver presumes an interrupt driven serial receiver to write into the SLIP buffer. However the cc65 V.24 drivers aren't up to that. Therefore the main loops were extended to pull received data from the V.24 buffers and push it into the SLIP buffer.
- As far as I understand the serial sender is supposed to block until the data is sent. Therefore a loop calls the non-blocking V.24 driver until the data is sent.

On all platforms there's only one V.24 driver available. Therefore V.24 drivers are always loaded statically.

On the Apple][ the mouse driver is now loaded statically - independently from SLIP vs. Ethernet. After all there's only one mouse driver available. However there's a major benefit with SLIP: Here all drivers are loaded statically. Therefore the dynamic module loader isn't necessary at all. And without the loader the heap manager isn't necessary at all. This allows for a reduction in code size roughly compensating for the size of the SLIP buffer.
2017-02-15 23:43:28 +01:00
Oliver Schmidt
ae0c5f0dd0 Make use of new cl65 option --print-target-path.
The new cl65 option --print-target-path allows to get rid of CC65_HOME altogether.
2016-06-03 13:30:25 +02:00
Oliver Schmidt
2827b2d800 Rearrange Apple II language card usage.
The code of etimer.o has become to large to fit into $D000-$D400. So other object file have been chosen.
2015-06-28 22:12:44 +02:00
Oliver Schmidt
da536cb07c Removed superfluous AppleCommander parameters. 2015-02-21 17:16:08 +01:00
Oliver Schmidt
a24865de72 Add somewhat more support to use different mouse drivers.
- The default mouse driver is now always named 'contiki.mou'.
- Alternative mouse drivers are present in the disk images.
- Users can select their mouse driver by renaming the files.
2014-01-17 23:45:59 +01:00
Oliver Schmidt
2d7d1b123d Added 6502 driver for WIZnet W5100 in MACRAW mode. 2013-11-09 23:15:20 +01:00
Oliver Schmidt
79bb5ea73f Removed some more old RCS tags from the Contiki source tree. 2013-06-13 15:54:26 +02:00
Oliver Schmidt
65ad87422f Finetuned Language Card usage.
Both the source code and the cc65 compiler have changed. So it made sense to review which object files are to be compiled for placement in the Language Card.
2013-03-06 14:57:24 +01:00
Oliver Schmidt
010d495e03 loader.system is now official part of the cc65 Apple II support. 2013-02-17 00:30:55 +01:00
Oliver Schmidt
98060c1eab Moved from last cc65 release (2.13.3) to recent cc65 snapshot (2.13.9).
Relevant cc65 changes...

General:
- The compiler generates "extended" dependency info (like gcc) so there's no need for postprocessing whatsoever :-)
- The linker is very pernickety regarding the ordering of cmdline options so a custom linker rule is necessary :-(

Apple2:
- The various memory usage scenarios aren't specified anymore via separate linker configs but via defines overriding default values in the builtin linker config.

Atari:
- The builtin linker config allows to override the start addr so there no more need for a custom linker config.
- The C library comes with POSIX directory access. So there's no more need for for a custom coding.

CBM:
- The C library comes with POSIX directory access. So there's no more need for for a custom coding.
2013-02-14 15:42:43 +01:00
oliverschmidt
9e9eb4b55c There's no point in pulling in cfs-posix-dir.c if the POSIX functions it depends on are dummies anyway. 2010-10-23 08:17:45 +00:00
oliverschmidt
cd24e920b6 Made cfs-based webserver example compatible with 8.3 file systems. 2010-09-28 20:40:52 +00:00
oliverschmidt
8eeeef17d1 Made cfs-based webserver example compatible with 8.3 file systems. 2010-09-28 19:36:16 +00:00
oliverschmidt
b2fe3db298 Just name the binary always 'contiki'. 2010-09-28 19:23:30 +00:00
oliverschmidt
6e5e560e33 Up to now *all* Contiki apps for the Apple2 were built for maximal RAM - which means that they can't return to OS level but must reboot on exit. However many apps can get along well with 1kB less memory - which allows them to exit to the OS.
Therefore now the default is 1kB less memory - and apps actually needing maximal RAM can get it by adding WITH_REBOOT to their DEFINES.
2010-09-08 22:50:56 +00:00
oliverschmidt
bf3ec8c452 Reverting to the "old" plain uip_buf allows the Apple2 to revert to the previous memory layout. 2010-05-08 07:26:20 +00:00
oliverschmidt
62ca797fad The recent change turning uip_buf from an array to a pointer increases the code generated by cc65 significantly :-(
This change modifies the set of modules placed in the Apple2 Language Card to again make maximum use of that memory without overflow.
2010-05-07 21:02:35 +00:00
oliverschmidt
50be40768b Removed closing of stdin, stdout (and stderr on the Apple2). It was introduced in order to maximize the number of available file handles for the webserver. However none of the target machine DOSes allows to open a single file several times diminishing the intended effect very much. One the other hand not being able to "just printf() something" causes trouble over and again - i.e. hello-world seemingly not working...after all a typical case of german over-enigneering ;-) 2010-02-10 07:43:25 +00:00
oliverschmidt
3826b8c0c4 Use only the base name of projects as program file name. 2010-01-31 18:21:41 +00:00
oliverschmidt
953d3ce7a0 Now that we have at least two examples working on the cc65 targets it is preferable to not name the program files all 'contiki'. 2010-01-31 09:34:12 +00:00
oliverschmidt
882e4692c7 cc65 2.13. allows to define all necessary paths through the single env var CC65_HOME. 2010-01-27 22:37:15 +00:00
oliverschmidt
caaa790add cc65 2.13. comes with secondary linker configs. The 'apple2enh-reboot.cfg' is more or less what was previously engineered as part of Contiki for the Apple2 - now moved into the cc65 distro. 2009-10-18 10:06:44 +00:00
oliverschmidt
2ede893aa6 The feature set of gnumake is really frightening: This time I discovered 'target-specific variable values'... 2008-05-26 11:26:57 +00:00
oliverschmidt
f74503c23c Replace non-fully-functional hack with the new gnumake variable CONTIKI_PROJECT. 2008-05-26 10:13:32 +00:00
oliverschmidt
a78a7dedbc Added make target 'disk' for creating a .dsk disk image using AppleCommander. 2008-05-22 22:21:43 +00:00
oliverschmidt
85edbc01db Starting with the cc65-snapshot-2.11.9.20080316 the Apple2 C-library supports placing code in the Apple2 Language Card by choosing the code segment 'HIGHCODE'. By default the memory area 0xD400 - 0xE000 is used for HIGHCODE. If the application doesn't need the ProDOS 8 QUIT code then the memory area used for HIGHCODE may be extended to 0xD000 - 0xE000.
Contiki now leverages that feature to place process.o, etimer.o and uip_arp.o in HIGHCODE. These files were carefully chosen as:
- they are necessary for all Ethernet apps
- their size doesn't depend on configuration macros
- they fill the available space nicely (with a little reserve for changes in the source or the compiler)
2008-03-24 22:49:00 +00:00
oliverschmidt
852d2c0283 Introduced very lightweight pfs implementation based on Apple ProDOS.
ProDOS requires for each opened file a user-supplied page-aligned 1024 byte i/o buffer. This makes the generic POSIX file i/o library contained in the cc65 C-library quite heavyweight.

In contrast the lightweight pfs implementation uses the uIP packet buffer as ProDOS i/o buffer. Therefore:
- Only one file may be open at any time.
- That file may not be open while the uIP packet buffer is used by uIP. The open()/read()/close() sequence should be completed before Contiki event scheduling or inside handling a single Contiki event.
- The uIP packet buffer must be large enough to hold the ProDOS I/O buffer. Depending on the position of the uIP buffer in memory this means between 1024 and 1024 + 256 bytes. Therefore in an Ethernet environment setting the MTU_SIZE to at least 1266 is safe (So the default of 1500 is just fine).
2008-01-01 18:49:50 +00:00
oliverschmidt
fe023c6d3e Introduced very lightweight log implementation not depending on any file I/O library. 2007-12-21 00:43:57 +00:00
oliverschmidt
00101cc177 Added support for the cc65 target 'apple2enh' (Enhanced Apple //e). 2007-01-03 10:29:17 +00:00