nes-proj/cpu/6502
Oliver Schmidt fb5d0b7ef0 Made 80 column display a cc65 application attribute.
So far 80 column display was an attribute of a cc65 platform. Now each cc65 application can ask for 80 column display by defining WITH_80COL. Of course this is ignored by platforms incapable of 80 column display.

I see three types of application:

* Applications not benefitting from 80 column at all and in fact looking better with 40 column display. These are now using 40 column display. Examples: ethconfig, ipconfig

* Applications taking advantage of 80 column display if it is available without drawbacks. These stay as they were. Examples: Telnet server, web server, wget

* Applications needing 80 column display so urgently that it is likely desirable even if the display becomes harder to read. These come now in both flavors allowing the user to choose. Examples: IRC, web browser

Note: This change doesn't actually introduce any 80 column display with drawbacks. This if left to a subsequent change.
2015-10-30 12:42:58 +01:00
..
ctk Add somewhat more support to use different mouse drivers. 2014-01-17 23:45:59 +01:00
ethconfig Cleanup of the Contiki network layer configuration. Now using CONTIKI_WITH_IPV6, CONTIKI_WITH_IPV4, and CONTIKI_WITH_RIME in makefiles, and UIP_CONF_IPV6, UIP_CONF_IPV4, UIP_CONF_RIME in c code. Now only the stacks that are used are compiled (via makefile MODULES). Make IPv6 the default network stack. 2014-12-01 20:13:09 +01:00
ipconfig Fix DHCP client retries. 2015-06-21 14:25:52 +02:00
lib Integrates uip-nameserver API 2015-01-09 09:44:06 +01:00
net Allow fixup to be repeated. 2015-07-09 22:43:16 +02:00
sys Adjusted retro target clock to "new" DNS resolver. 2015-08-04 13:48:08 +02:00
6502def.h Adjusted retro target clock to "new" DNS resolver. 2015-08-04 13:48:08 +02:00
Makefile.6502 Cleanup of the Contiki network layer configuration. Now using CONTIKI_WITH_IPV6, CONTIKI_WITH_IPV4, and CONTIKI_WITH_RIME in makefiles, and UIP_CONF_IPV6, UIP_CONF_IPV4, UIP_CONF_RIME in c code. Now only the stacks that are used are compiled (via makefile MODULES). Make IPv6 the default network stack. 2014-12-01 20:13:09 +01:00
Makefile.customrules-6502 Removed (dysfunctional) dependency generation from cc65 .co file rule. 2015-06-21 16:39:12 +02:00
README.md Made 80 column display a cc65 application attribute. 2015-10-30 12:42:58 +01:00

6502

The cpu/6502/ directory is used for targeting 6502-based machines using the cc65 compiler http://cc65.github.io/cc65/.

The Contiki network configuration for 6502-based targets is loaded from a binary configuration file (by default named contiki.cfg). It has the following format:

  • Bytes 1 - 4: IP Address (HiByte first)
  • Bytes 5 - 8: Subnet Mask (HiByte first)
  • Bytes 9 - 12: Default Router (HiByte first)
  • Bytes 13 - 16: DNS Server (HiByte first)
  • Bytes 17 - 18: Ethernet card I/O address (LoByte first !)
  • Bytes 19 - xx: Ethernet card driver name (ASCII / PETSCII)

An online Contiki configuration file generator is available at two sites:

The build for 6502-based machines includes the 'disk' make goal which creates a bootable floppy disk image containing the project binary, a sample configuration file and the Ethernet card drivers.

The build for 6502-based machines supports so-called high-level configuration macros which allow to customize Contiki on a per-project basis. They are set in form of a comma-separated list as value of the make variable DEFINES on the make command line. The value of DEFINES can be saved with the 'savedefines' make goal. The values of the high-level configuration macros are not tracked by the build so a manual rebuild is necessary on any change. The following high-level configuration macros may be set:

  • MTU_SIZE

    • Default: 1500
    • Purpose: Set the Maximum Transfer Unit size.
  • CONNECTIONS

    • Default: 2
    • Purpose: Set the maximum number of concurrent TCP connections.
  • ETHERNET

    • Default: N/A
    • Purpose: Link Ethernet driver statically instead of loading it dynamically using the network configuration file.
  • WITH_LOGGING

    • Default: 0
    • Purpose: Have log_message() and UIP_LOG() write messages to the screen.
  • WITH_BOOST

    • Default: 0
    • Purpose: Significantly improve troughput on sending full sized packets by splitting them thus workarounding the "delayed acknowledge".
  • WITH_FORWARDING

    • Default: 0
    • Purpose: Enable support for the 'IP forwarding' packet driver.
  • WITH_CLIENT

    • Default: 0
    • Purpose: Enable support for outgoing TCP connections.
  • WITH_DNS

    • Default: 0
    • Purpose: Enable UDP support and initialize resolver process on startup.
  • WITH_80COL

    • Default: 0
    • Purpose: Enable 80 column screen.
  • WITH_GUI

    • Default: 0
    • Purpose: Initialize the CTK process on startup.
  • WITH_MOUSE

    • Default: 0
    • Purpose: Enable CTK mouse support and load a mouse driver.
  • WITH_ARGS

    • Default: 0
    • Purpose: Enable support for contiki_argc / contiki_argv.
  • WITH_PFS

    • Default: 0
    • Purpose: Implement the CFS interface with a Platform-specific File System instead of the POSIX file system.