Commit Graph

68 Commits

Author SHA1 Message Date
Bobbi Webber-Manners 95615458aa Rebased on latest IP65. Needs latest CC65 to build. 2022-09-14 13:02:41 -04:00
Oliver Schmidt a25ed5051f Set disk tool variables to defaults.
If the user fails to set the disk tool variable(s) he now doesn't get syntactically wrong commands but rather file-not-founds. Maybe he even chooses to drop tool(s) into the current directory or add the disk tool path(s) to the PATH variable...
2019-07-15 12:28:27 +02:00
Oliver Schmidt 0fb3869716 Added support for the upcoming 'Dracarys' ATARI PBI device.
See https://atariage.com/forums/topic/287376-preannouncement-dragon-cart-ii/
2019-05-08 17:23:00 +02:00
Oliver Schmidt 4577c2ab19 Removed Ethernet driver I/O base.
So far the base address of the Ethernet chip was a general property of all Ethernet drivers. It served two purposes:
1. Allowing to use a single Ethernet driver for a certain Ethernet chip, no matter what machine was connected to the chip.
2. Allowing use an Ethernet card in all Apple II slots.

However, we now use customized Ethernet drivers for the individual machines so 1.) isn't relevant anymore. In fact one wants to omit the overhead of a runtime-adjustable base address where it isn't needed.

So only the Apple II slots are left. But this should rather be a driver-internal approach then. We should just hand the driver the slot number the user wants to use and have the driver do its thing.

Independently from the aspect if the driver parameter is a base address or a slot number the parameter handling was changed too. For asm programs there was so far a specific init function to be called prior to the main init function if it was desired to chnage the parameter default. This was done to keep the main init function backward compatible. But now that the parameter (now the slot number) is only used on the Apple II anyhow it seems reasonable to drop the specific init function again and just provide the parameter to the main init function. All C64-only user code can stay as-is. Only Apple II user code needs to by adjusted. Please note that this change only affects asm programs, C programs always used a single init function with the Apple II slot number as parameter.
2019-05-02 14:44:24 +02:00
Oliver Schmidt 43d7d33c31 Removed support for W5100 on the C64.
Now that we have per-target combo driver wrappers we can remove the W5100 support from the C64. There isn't any actual (known) W5100-based solution for the C64.
2019-04-29 16:41:27 +02:00
Oliver Schmidt 3ff1771d4b Added files necessary to build disk images. 2018-07-20 19:12:51 +02:00
Oliver Schmidt 9a21f96863 Adjusted to cc65 2.17 which generates AppleSingle files. 2018-03-08 16:12:23 +01:00
Oliver Schmidt 0f6cbffe83 Removed the (defunct) include file dependencies. 2018-02-23 16:59:31 +01:00
Oliver Schmidt c89a2ae1ba Adjusted include file extension to ca65 practice. 2018-02-23 16:36:05 +01:00
Oliver Schmidt 7090fb5bdd Allow C programs to set the Apple II slot number. 2018-02-22 22:33:47 +01:00
Oliver Schmidt 5a1c3fda7e Added timer test to Makefile. 2018-02-06 13:06:05 +01:00
Oliver Schmidt b81b3538bb Renamed clk_timer*.* to timer*.*
The test uses whatever timer implementation is present in the IP65 library.
2018-02-06 12:53:27 +01:00
Oliver Schmidt edbe1edcaf Removed superfluous directive. 2018-02-06 12:50:44 +01:00
Christian Groessler 1b19f15b6a test program for C implementation of timer_seconds
Makefile changes are missing.
2018-02-05 18:10:07 +01:00
Oliver Schmidt b973526d7e Replaced HTTP response zero-termination with explicit length.
If we want to be able to send application/octet-stream we can't rely on the HTTP response to not contain a zero byte.
2017-12-07 22:57:40 +01:00
Oliver Schmidt d282290cf0 Removed HTTP output post processing completely.
I don't see the use case for inserting HTTP variables as-is into the HTTP output.
2017-12-07 21:39:25 +01:00
Oliver Schmidt 7ef7414fef Don't rely on dir2atr to fix ATARI DOS filenames. 2017-11-28 10:04:05 +01:00
Oliver Schmidt cbb93d96fa Add a C interface for atarixl target.
Just some Makefile tweaks were needed...
2017-11-27 23:22:47 +01:00
Oliver Schmidt d21fc5bf40 Fixed code style. 2017-11-15 19:45:08 +01:00
Christian Groessler 4103a54c38 adapt peer.c to Unix 2017-11-15 16:08:24 +01:00
Oliver Schmidt a75082ca88 Removed VIC20 programs from default recipe.
I don't have plans to support C programs on the VIC20. So now that there are C test programs the simplest solution is to not (try to) build VIC20 test programs as part of the default recipe.
2017-11-09 22:08:57 +01:00
Oliver Schmidt e1bf89d1a8 Use parameters for TCP C callback.
In contrast to the multiple UDP callbacks there's only one TCP callback so it easy to provide a wrapper for the C callback that pushes C parameters on the stack.
2017-11-07 23:05:05 +01:00
Oliver Schmidt 7af0dcd1fa Moved ip65_process directly to data processing.
Now that we process incoming data from the main loop - and use 'buf' both for incoming and outgoing data we should of course make sure that we never trash the incoming data with outgoing data.
2017-11-07 22:57:15 +01:00
Oliver Schmidt d059cf858a Don't try to get new data while still processing previous data. 2017-11-06 23:40:05 +01:00
Oliver Schmidt 9a8ba804bc Added C interface to TCP functions. 2017-11-06 23:36:44 +01:00
Oliver Schmidt c4f5c7dbfc Made C program more robust.
The C test program may serve as copy & paste templates so it should make clear that ip65_process() is supposed to be called pretty regularly. Additionally it isn't supposed to be called recursively meaning that recv callbacks need to return quickly and defer longer processing.
2017-11-06 23:23:00 +01:00
Oliver Schmidt 6680772b04 Introduced C interface to IP65.
The IP5 usage of ld65 segments and zeropage variables was made compatible with cc65 C programs already a while ago. This commit is the next logical step which is to introduce the actual C interface to IP65.

IP65 for C programs shares the the ip65.lib / ip65_tcp.lib with IP65 for assembler programs. However the various libraries from the 'drivers' are not reused. Instead there's exactly one library for every target named ip65_<target>.lib. Those libraries contain only functions used by ip65.lib / ip65_tcp.lib.

TODOs:

- Introduce c64_timer.s and atr_timer.s.
- Add a C interface to the rest of the IP65 functionality (especially TCP).
2017-11-05 14:28:49 +01:00
Oliver Schmidt 32a66c5d7c Moved httpd.slotscan to ip65test.dsk and dropped ip65demo.dsk.
Now that with Telnet65 there is a "real" application there's no point anymore in the
ip65demo.dsk. Therefore httpd.slotscan is now part of the ordinary ip65test.dsk.
2017-11-04 00:40:35 +01:00
Oliver Schmidt b6a6a2f66f Renamed 'tcp' to 'math' as the name 'tcp' will be needed soon. 2017-11-04 00:25:09 +01:00
Oliver Schmidt ce98f5d738 Removed obsolete test. 2017-10-28 23:01:28 +02:00
Christian Groessler 244df7212e test/vt100.s: add comments and a line with "line drawing" characters 2017-10-11 23:41:16 +02:00
Christian Groessler 411b945972 Fix Atari linker config file in "apps" and "test" directories. 2017-10-02 08:05:39 +02:00
Oliver Schmidt 579b6f3334 Added VT100 test.
Re-added VT100 test that was created for KIPPERTERM development. Not very usefully as-is but a good template for any offline VT100 rendering test/debugging.

Additionally the disk images were renamed to distinguish them from the disk images created in the apps directory.
2017-05-19 00:17:38 +02:00
Oliver Schmidt 860be3357e Adjusted to commit 3d5dd29988 2017-05-18 23:23:03 +02:00
Oliver Schmidt 09a98a6372 Adjusted test to recent change.
c9b309eff4 changed tftp_filename from zeropage to absolute.
2017-05-02 20:36:58 +02:00
Oliver Schmidt 39975cab33 Switched from DOS3.3 to ProDOS for IP65demo.dsk
With ProDOS 2.4.1 there's now a nice universal ProDOS - and testing/showcasing compatibility with 'Uther II Drive' requires ProDOS...
2016-10-16 23:51:53 +02:00
Oliver Schmidt f878fa8709 Adjusted to recent cc65 linker config changes. 2016-03-30 16:06:45 +02:00
Oliver Schmidt ac653f55bd Removed W5100 demo code.
The W5100 demo programs are now available at https://github.com/oliverschmidt/uthernet
2016-02-13 18:34:38 +01:00
Oliver Schmidt cd0506d862 Added support for the ATARI 8-bit with Dragon Cart.
The actual ATARI-specific code is "inspired" by the IP65 variant published in http://atariage.com/forums/topic/211161-dragoncart-software/?p=2734494. The timer routines are modeled after the ones for the VIC20.
2015-08-28 15:19:52 +02:00
Oliver Schmidt 3abe99c7a2 Set server IP address to "usual" default. 2015-08-11 16:45:15 +02:00
Oliver Schmidt ce033dab99 Just some minor cleanup. 2015-08-11 15:19:59 +02:00
Oliver Schmidt 2ec63af2e5 Added a C-only W5100 TCP driver. 2015-08-11 14:21:56 +02:00
Oliver Schmidt 9ac791e975 Do not use a power of two as test packet size as other values give more interesting results. 2015-08-11 14:18:52 +02:00
Oliver Schmidt cf4d6b1fb8 Added W5100 TCP driver.
The W5100 TCP driver is intentionally very similiar to the UDP driver. It comes with its own test program (again similiar to the UDP test program) and an extension to the communication peer program to support the test program.
2015-08-02 17:23:26 +02:00
Oliver Schmidt 24a5bcea85 Made W5100 UDP driver directly callable from C. 2015-08-02 17:08:12 +02:00
Oliver Schmidt c9af38790a Added context to W5100 UDP driver.
In order to ease exploring the W5100 UDP driver a simple test program using it was added. Additionally a communication peer program was introduced. The latter builds as-is for Windows using i.e. the VC++ command line 'cl w5100_peer.c'.
2015-08-01 18:57:58 +02:00
Oliver Schmidt ae98e5c01d Removed cfg_get_configuration_ptr.
cfg_get_configuration_ptr was introduced for NB64 - which is out of scope for this IP65.
2015-07-08 16:20:47 +02:00
Oliver Schmidt e451b74b07 Made use of recent changes for the web server demo.
The Apple 2 web server now uses the "combo" library and optionally uses a2_set_slot to scan all slots for the Ethernet card. Combining both with DHCP allows for complete auto configuration.
2015-07-08 15:51:59 +02:00
Oliver Schmidt 439e436f91 Exit web server on initialization failure.
As we use the web server for IP65 demo it makes sense to have it behave somewhat more consistent.
2015-07-08 15:44:48 +02:00
Oliver Schmidt 8279ef4d63 Introduced IP65 "combo" libraries.
Up to now every IP65 library contained exactly one Ethernet driver. In scenarios without strict memory limitations I might however be benefitial to have an IP65 library containing all Ethernet drivers available for a given target.

The Ethernet hardware detection that was already present before is used in this scenario to try to initialize one Ethernet driver after the other until one succeeds. If all drivers fail to initialize the user gets informed as usual.

The WIZ811MJ driver was primarily introduced for orthogonality reasons. There are however at least two W5100-based prototypes for the C64 so it makes at least some sense. The name was chosen as sort of placeholder for "something containing a W5100 chip".
2015-07-08 10:13:08 +02:00