Commit Graph

381 Commits

Author SHA1 Message Date
Oliver Schmidt
56e8a19b2f Made W5100 UDP driver directly callable from C. 2015-08-02 17:08:12 +02:00
Oliver Schmidt
23e622ef8d 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
45955e3e6d 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
1019985e8d 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
40ed729b08 Added option to set ethernet slot on the Apple 2. 2015-07-08 15:46:28 +02:00
Oliver Schmidt
e1e0aedba4 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
dfd4158a96 Allow fixup to be repeated.
There are scenarios in which it is beneficial to search for an Etherne chip at several i/o locations. To do so the chip initialization is performed at several i/o locations until it succeeds. In order to allow for that operation model the i/o location fixup needs to be repeatable.

Note: This won't work with the RR-Net because the fixup bits overlap with the chip i/o bits.
2015-07-08 15:42:42 +02:00
Oliver Schmidt
0b3e0c2173 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
Oliver Schmidt
3219d97e4c Allow to build some rudimentary demo disk.
The HTTPD program seems to be the only one somewhat useful for demo purposes. So I added the option to build a "IP65demo" disk containing it for all supported Ethernet devices - currently for the Apple2 only.
2015-04-13 22:42:11 +02:00
Oliver Schmidt
8a903a5cdf Added some linefeeds to clean up console output. 2015-04-13 22:38:55 +02:00
Oliver Schmidt
56dbac78ef Remove received packet(s) to allow to send one.
Behave just like the CS8900A driver: Both the CS8900A and the LAN91C96 dynamically share a buffer for received packets and packets to be send. If the chip is exposed to a network with a lot of broadcasts the shared buffer might fill quicker with received packets than the 6502 reads them (via polling). So we might need to drop some received packets in order to be able to send anything at all.
2015-04-13 21:09:15 +02:00
Oliver Schmidt
bed14eb3d3 Export dns_hostname_is_dotted_quad.
Of course one can just always call dns_resolve after dns_set_hostname. But an application might i.e. present a different user feedback depending on the fact if a name resolution is necessary at all. So given that DNS name resolution is already a two phase action it just seems natural to allow an application to read the already exsisting variable.
2015-04-13 21:01:59 +02:00
Oliver Schmidt
97d17d9c47 Removed superfluous AppleCommander parameters. 2015-02-21 17:18:14 +01:00
Oliver Schmidt
e150df86e2 Adjusted inline doc to actual implementation. 2015-02-16 22:35:29 +01:00
Oliver Schmidt
ea8be71805 Reduced size of typical binary.
The pretty small check_for_abort_key is used by DHCP and DNS which means it is used by about every IP65 program. The pretty large get_filtered_input on the other hand is very seldom used so it makes sense to put the latter in a separate module to keep it from ending up in binaries unused.
2015-02-16 22:29:22 +01:00
Oliver Schmidt
2e765dbc64 Added LC2UC conversion for the Apple ][ and replaced column-setting-hack with printing a carriage return. 2015-02-16 17:50:26 +01:00
Oliver Schmidt
2c5b73f07e Improved random number generator on the Apple 2. 2015-02-16 17:48:48 +01:00
Oliver Schmidt
6d5e21ab45 Removed unused imports. 2015-02-16 17:47:26 +01:00
Oliver Schmidt
6178e51148 Fixed hardware detection.
The previous chip detection was inspired by the old IP65 driver code. For some reason it didn't work as expected. The new code is simpler and based on this statement in the chip datasheet: "The upper byte always reads as 33h and can be used to help determine the I/O location of the LAN91C96."
2014-07-12 11:27:01 +02:00
Oliver Schmidt
a0bd7e819a Replaced custom zeropage variables with cc65 default zeropage variables. 2014-07-07 20:56:21 +02:00
Oliver Schmidt
4c0ae26c19 1. Replaced IP65 Ethernet drivers with Contiki drivers.
* CS8900A
The Contiki driver allows to adjust the chip base addr at runtime (which  allows to support different slots in the Apple II) and removes received frames from the chip if there's no room to send frames.

* LAN91C96
The Contiki driver was used by IP65 more or less unchanged in the first place.

* W5100
The Contiki driver allows to adjust the chip base addr at runtime (which  allows to support different slots in the Apple II) and stays clear from the W5100 hybrid mode. It presumes a fully functional W5100 register auto-increment and pre-calculates necessary W5100 frame buffer wrap-arounds and thus achieves the maximal 6502 <-> W5100 transfer speed.
2014-06-13 00:00:53 +02:00
Oliver Schmidt
f5c634bf59 Don't crash intentionally ;-)
I have no idea why this BRK was put there in the first place. At least nowadays it's pretty common to see IP packets that IP65 doesn't understand / need to understand. Just think of IGMP packets. We certainly don't want to crash on receiving those!
2014-06-12 21:31:05 +02:00
Oliver Schmidt
09cf63e533 Updated contributors. 2014-04-28 18:57:13 +02:00
Oliver Schmidt
c95574cff8 Removed libnet experiment. 2014-04-28 18:54:43 +02:00
Oliver Schmidt
c4804c4eee Improved file name consistency. 2014-04-28 18:50:02 +02:00
Oliver Schmidt
dbf6fe00a0 Removed custom linker config files. 2014-04-28 18:41:54 +02:00
Oliver Schmidt
3659c49430 Fixed recently introduced addressing mode bugs. 2014-04-28 18:34:56 +02:00
Oliver Schmidt
09c718b74f Removed explicit copying of defaults.
It's the very purpose of the DATA segment to consolidate all items that potentially need to be copied from ROM to RAM. So there's no need to / point in doing that on a per-item-base.
2014-04-27 19:17:48 +02:00
Oliver Schmidt
3af8fadbef Removed several custom segments. 2014-04-27 18:59:58 +02:00
Oliver Schmidt
344383b1af Removed support for ROM/Cart API. 2014-04-27 18:51:16 +02:00
Oliver Schmidt
399aa47608 Removed address constants and HTTP_VARS segment. 2014-04-27 18:15:10 +02:00
Oliver Schmidt
ca5c0d5998 Removed file i/o dependencies from Web server. 2014-04-27 17:48:51 +02:00
Oliver Schmidt
b093d71261 Converted web server test from KIPPER Cart to "classic" IP65 program. 2014-04-27 17:47:07 +02:00
Oliver Schmidt
93c33c71c1 Added A2 and VIC20 binaries. 2014-04-27 14:52:31 +02:00
Oliver Schmidt
8f8c90feb9 Minor style cleanup. 2014-04-13 18:48:11 +02:00
Oliver Schmidt
636d340b5f Added A2 'timer_seconds' dummy.
The implementation just always returns 0 thus actually disabling timeouts.
2014-04-13 18:47:13 +02:00
Oliver Schmidt
bfcd653a00 Adjusted names in license text. 2014-04-13 18:36:04 +02:00
Oliver Schmidt
7399a60725 Added W5100 UDP driver.
This file isn't technically related to ip65. It uses the W5100 IP stack to implement UDP frame RX/TX. The code heavily optimized for size (in contrast to speed).
2014-02-27 22:00:07 +01:00
Oliver Schmidt
79028c849b Allow all test programs to run on the VIC20:
- Added exit_to_basic symbol.
- Aligned linker config with C64 linker config.
- Made switch to lower charset compatible.

Allow all test programs to run with LANceGS card.

Aligned C64 input file name.
2013-12-29 23:39:35 +01:00
Oliver Schmidt
4a695f97cc General source code cleanup.
- Tab chars were partially used with the unusual width of two blanks. I removed them altogether.
- Line endings were inconsistent even iniside individual files. I normalized them.
- I introduced a consistent coding style regarding comment indenting and blank line usage.
- I removed trailing spaces.
- I removed newlines following unnamed labels.
- ...
2013-12-27 14:57:56 +01:00
Oliver Schmidt
68e869617b Some more cleanup.
- Removed VT100 font belonging to NETBOOT65.
- Removed machine / cart specific tests.
- Have Makefiles ignore errors on the clean goal.
2013-12-27 14:48:16 +01:00
Oliver Schmidt
adfd056abd Simplified test program sources by using exe headers from cc65 libs. 2013-12-19 22:04:19 +01:00
Oliver Schmidt
7b5522ba27 Removed several files that seem to rather belong to NETBOO65. 2013-12-17 22:28:49 +01:00
Oliver Schmidt
0069b355d8 Keep Git status clean of build artifacts. 2013-12-15 22:51:48 +01:00
Oliver Schmidt
624ab62d25 Some test program cleanup.
- Simplify Makefile by allowing to use suffix '_tcp' to denote the requirement to link against TCP-capable IP65 lib.
- Remove 'test' or 'test_' prefix from test program names - every program in 'test' is a test program.
- Have some more test programs switch to lower case charset on the C64.
- I'm no Ruby guy so don't rely on Ruby for building disk images.
2013-12-15 22:50:01 +01:00
Oliver Schmidt
d431ff02ce Move A2 load address from $7FD to $800 to allow loading with A2 ProDOS. 2013-12-15 22:42:45 +01:00
Oliver Schmidt
5bcc178c2a Added text files from doc directory. 2013-12-14 00:27:32 +01:00
Oliver Schmidt
9197cd8ede Distilled IP65 out of NETBOOT65. 2013-12-13 22:24:03 +01:00
jonnosan
3d79a99023 now correct
git-svn-id: http://svn.code.sf.net/p/netboot65/code@333 93682198-c243-4bdb-bd91-e943c89aac3b
2013-04-13 11:33:54 +00:00
jonnosan
2dd9feee33 refactor to allow more granular allocation of zero page variables
git-svn-id: http://svn.code.sf.net/p/netboot65/code@332 93682198-c243-4bdb-bd91-e943c89aac3b
2013-04-12 09:28:49 +00:00