Commit Graph

281 Commits

Author SHA1 Message Date
Oliver Schmidt
5f9fe0ad1e Just some minor code style adjustment. 2018-07-23 22:13:32 +02:00
Oliver Schmidt
ee0e11b41f Reduced Apple II binary file sizes.
The Apple II file I/O needs a $400 byte page-aligned buffer for every open file. The default implementation takes those buffers from the heap. However, if a program doesn't use the heap for anything else it is more efficient to place those buffers below the program at $800 by linking iobuf-0800.o and thus avoiding to link any heap code at all. If a program never opens more than one file at a time it can have its start address at $800 + 1 x $400 = $C00.
2018-07-23 14:55:56 +02:00
Oliver Schmidt
29c802c835 Adjusted parameter type to match header file. 2018-07-22 19:35:43 +02:00
Oliver Schmidt
fbdc712e06 Added LOADER.SYSTEM for the Apple II C programs.
It may be useful to be able to run the C programs right from the selector (without loading BASIC.SYSTEM first). Or maybe run them on boot by placing the LOADER.SYSTEM as first file in the root directory.
2018-07-22 16:08:21 +02:00
Oliver Schmidt
8e7454580f Have Date65 set the ProDOS date on the Apple II.
If there's RTC active then the user can at least have the current date set. However, if the machine runs for several days the user needs to re-run Date65.
2018-07-22 15:26:39 +02:00
Oliver Schmidt
3ff1771d4b Added files necessary to build disk images. 2018-07-20 19:12:51 +02:00
Oliver Schmidt
32d5b1e004 Added hack to make HFS65 build on Atari.
The resulting program is defunct!
2018-07-20 18:28:02 +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
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
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
Christian Groessler
411b945972 Fix Atari linker config file in "apps" and "test" directories. 2017-10-02 08:05:39 +02:00
Christian Groessler
0a546a7eef Add custom font for the Atari version, fix Atari keyboard input handling. 2017-09-01 22:36:35 +02:00
Oliver Schmidt
9f611c5c1e Allow Telnet65 to send ASCII code 0 - on the C64.
Lars informed me that $F142 by default produces ASCII code 0 via Ctrl-@. One just needs a way to distinguish it from the no-key-press.

This means that the further processing can be done in that same as on the Apple II - meaning to just replace in the VT100 keyboard translation table $00 with $FF as code for ignore-key.
2017-08-20 20:58:49 +02:00
Oliver Schmidt
39f83b7709 Allow Telnet65 to send ASCII code 0 - on the Apple II.
Chris made me aware that ASCII code 0 actually is a valid character (usually entered as Ctrl-Space or Ctrl-@) and that it is actually used (i.e. by EMACS).

The Apple II allows to natively enter the ASCII code 0 via Ctrl-@. However so far get_key_if_available returned 0 in accumulator to signal that no key was pressed. In order to allow the Apple II get_key_if_available to return the ASCII code 0 in the accumulator I changed it to use the carry flag to signal that no key was pressed.

Because get_key_if_available needs of course to behave the same on all targets I changed the other implementations to use the carry flag too.

Unfortunately I don't know enough about input capabilities of the C64 to decide on how to best get Telnet65 to send ASCII code 0 there.
2017-08-09 21:27:28 +02:00
Oliver Schmidt
deb972cd98 Bump version to 1.1 2017-06-05 20:54:43 +02:00
Oliver Schmidt
91bd4db939 Mark connection as closed on send error.
I would have expected that no matter what causes the TCP connection to be closed would be reported as a TCP call back with lenghth = -1. However there are scenarios where this isn't true. I.e. when the user aborts during a blocking TCP retransmit opration. I'm unsure if this behaviour is to be considered a bug or if this is by some design I don't understand.

So I opted to not change that behaviour but rather add an explicit check for tcp_send returning with an error indicating that the connection is closed. This way the users gets noticed on the closed connection at least on his next key press.
2017-06-05 18:21:59 +02:00
Oliver Schmidt
bcf581ed19 Normalize VT100 state on disconnect.
In order to avoid strange display effects on a potential next connection we normalize the character set and the display attributes on disconnect.
2017-06-05 17:41:41 +02:00
Oliver Schmidt
dd660e7159 Disable IP65 abort key during active connection.
It might be welcome to be able to abort DHCP, DNS and TCP connect operations. However while we're connected to the remote host we need full control over the keyboard. If TCP send operations don't work immediately the user will just have to wait until they do (or the timeout).
2017-06-05 17:24:26 +02:00
Oliver Schmidt
af4fb5a90b Allow Apple II slot setting.
The user can set the Apple II slot of his Ethernet card by patching the fourth byte of the binary.
2017-06-04 00:13:08 +02:00
Oliver Schmidt
357aed74cb Use VT100 for some welcome screen bautification. 2017-06-02 19:00:22 +02:00
Oliver Schmidt
29587a1ebe Avoid unnecessary timeout checks.
On the Apple II the timer_read function is actually a delay function. Therefore we want to avoid calling it if we're busy processing incoming data. Fortunately timer_read is only necessary to trigger a TCP keep alive message. But if we're busy processing incoming data then we for sure need no TCP keep alive. So we simply mark if we just processed incoming data and skip the timeout check.
2017-05-21 22:39:10 +02:00
Oliver Schmidt
3359061ce2 Added Telnet65 app.
The file telnet.s in the 'ip65' directory for sure wasn't belonging into a library as it contained a main loop. So I introduced an 'apps' directory for actual apps coming with IP65. The file telnet.s was moved to apps, renamed telnet65.s and heavily modified.

The file c64vt100.s was made up from several files taken from CaTer (www.opppf.de/Cater) and adjusted for the new use case. The was done before for KIPPERTERM. However this time I deliberately avoided unnecessary code reformatting to allow for as easy as possible integration of potential upcoming changes in CaTer.

The file a2vt100.s was copied from c64vt100.s and adjusted to the monochrome 80 column screen of the Apple //e. Again unnecessary code changes were avoided to allow to easily merge upcoming changes from c64vt100.s.

The files atrvt100.s and vic20vt100.s are for now just dummies to allow to successfully link Telnet65. Work for an actually functional Telnet65 would start with a copy of c64vt100.s (as it was done with a2vt100.s).
2017-05-19 00:12:42 +02:00