Commit Graph

514 Commits

Author SHA1 Message Date
Oliver Schmidt
25ebdca045 Use standard types. 2018-07-19 15:35:03 +02:00
Oliver Schmidt
59d86f7638 Reduced the advertised TCP window size to the MSS. 2018-06-10 14:47:42 +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
989c35e168 Just append the 65-suffix to all cc65/IP65 apps. 2018-02-23 16:52:45 +01:00
Oliver Schmidt
d4f7569278 Removed last KPR_* constants. 2018-02-23 16:41:33 +01:00
Oliver Schmidt
c89a2ae1ba Adjusted include file extension to ca65 practice. 2018-02-23 16:36:05 +01:00
Oliver Schmidt
b84527c8a3 Removed last KIPPER leftover. 2018-02-23 16:33:21 +01:00
Oliver Schmidt
3c88dec698 Removed unused stuff. 2018-02-23 15:53:03 +01:00
Oliver Schmidt
e3077a46a5 Normalized language. 2018-02-22 22:40:52 +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
a07e889d7b Added HttpFileServer65.
HttpFileServer65 is inspired by "HFS ~ Http File Server" (http://www.rejetto.com/hfs/). It features an intuitive mapping of local disks and directories to HTTP paths. This allows to not only navigate to some file but to directly enter some file URL. This is especially usefull for downloads via wget, curl or alike.

However, in contrast to HFS it doesn't allow file uploads, only file downloads. On targets with complete DIO support it additionally allows disk image downloads.

Note: The Atari build currently fails as there's so far no getdevicedir() in the Atari C library.
2018-02-20 00:18:48 +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
Oliver Schmidt
dfc8e167be Merge pull request #7 from groessler/something_to_pull
test program for C implementation of timer_seconds
2018-02-05 21:24:28 +00: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
58d3721058 Merge pull request #6 from groessler/something_to_pull
Use CC65 runtime for Atari and C64 timer functions
2018-02-04 14:34:41 +00:00
Christian Groessler
afada39f9a Use CC65 runtime for Atari and C64 timer functions
This is just for the "C" interface of IP65. clk_timer.s replaces
atr_timer.s (on Atari) and is new for the C64 (there wasn't an
implementation for the "C" interface before).
2018-02-02 20:34:59 +01:00
Oliver Schmidt
673e2da011 Added C interface to HTTPD functions. 2017-12-07 23:03:04 +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
85b311ab27 Introduced atr_timer.s
The C library allows us manage de-initializations via atext() so we can avoid the explict timer_exit call necessary in atrtimer.s (used for assembler programs).
2017-11-15 20:13:52 +01:00
Oliver Schmidt
d21fc5bf40 Fixed code style. 2017-11-15 19:45:08 +01:00
Oliver Schmidt
9f652e7c21 Changed HTTP response Server field to something more generic. 2017-11-15 19:24:50 +01:00
Oliver Schmidt
d2d5edca44 Export httpd_send_response.
The HTTP callback is explicitly allowed to send the HTTP response on its own and set the carry to signal that. Therefore it seems reasonable to export httpd_send_response to allow the HTTP callback to make use of the given infrastructure to send the HTTP response.
2017-11-15 19:24:50 +01:00
Oliver Schmidt
4faf0cbeae Minor style adjustment. 2017-11-15 19:24:49 +01:00
Christian Groessler
4103a54c38 adapt peer.c to Unix 2017-11-15 16:08:24 +01:00
Oliver Schmidt
a64e08786c Enable lowercase display on the Apple II.
Given that Telnet65's 80 column display requires an enhanced Apple //e anyway it seems reasonable to have the C applications benefit from building for that target too.
2017-11-10 12:01:30 +01:00
Oliver Schmidt
3034150a6e Minor output beautification. 2017-11-10 11:53:27 +01:00
Oliver Schmidt
393e27922b Added first C application :-)
The date application isn't of much actual use. But it shows
- how easy to use the IP65 C API is
- the power of combining IP65 with the C library
  (going from SNTP time format to a date string in two lines of code)
2017-11-09 22:13:42 +01:00
Oliver Schmidt
a40942075d Removed VIC20 application build.
I don't have plans to support VIC20 applications.
2017-11-09 22:10:11 +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
5427dee30d Added C interface to SNTP function. 2017-11-09 21:48:08 +01:00
Oliver Schmidt
2045754236 Made error constants actually usable from C code. 2017-11-09 21:46:40 +01:00
Oliver Schmidt
2119b2c267 Have Git ignore the Windows peer program artifacts. 2017-11-08 21:01:24 +01:00
Oliver Schmidt
e6684904cf Made tcp_listen return the client IP address.
Together with the recent change to provide the inbound data buffer address and length to the TCP callback function as C parameters this change allows the TCP API to get along without any global variable :-)
2017-11-08 20:59:06 +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
c6efcebf97 Added C interface to timer handling. 2017-11-05 23:16:34 +01:00
Oliver Schmidt
3c9ab2eb5f Added C interface to abort key control. 2017-11-05 22:55:55 +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
23ae6c155b Adjusted comment to (surprising) reality. 2017-10-29 00:08:33 +02:00