F256K

From C256 Foenix Wiki
Revision as of 16:54, 25 June 2023 by HaydenKale (talk | contribs)
Jump to navigation Jump to search

The F256K is a 65xx-based system. It's an encased form factor with a built-in keyboard. It includes the following features:

  • 512K of Shared System & Video RAM
  • 256k of flash
  • 256k of cartridge ram/rom
  • TinyVICKY Graphic Chip (CFP9599)
  • Port for connecting FNX4N4S, which can be used to connect Atari-Style Joysticks or NES/SNES gamepads
  • 1x IEC Port to interface to Commodore Drives
  • SID sound chip

It shares many similarities to the F256JR and programs can in many cases run straightforwardly on both.

The 'K' in the name comes from the fact that it has an integrated keyboard, unrelated to the amount of memory available in the system. The base system has 512K of system memory; with expansion cartridge brings it up to 768K.

A common variety of the F256K uses the 6502 CPU. That said, the 65816 CPU can also be installed.

F256k Secondpass.6-819x1024.png

Ports and connectors

The back of the unit looks like this:

F256k rear connectors.PNG

  • Power Switch is a toggle-style switch to turn the unit off and on.
  • Reset Button reboots the system, with values in RAM persisting. If RAM has been modified using the debug interface, it stays modified.
  • Power Jack is for plugging in A/C power. Use, for example, a +12V or +9V with 2.5mm Barrel connector.
  • USB Debug is for connection to a debug host computer, debugging F256K as a target, for example using a mini USB to USB A cable.
  • PS/2 can be used for connecting external keyboard and/or mouse.
  • FNX4N4S Adapter provides connections to gamepads (e.g., SNES-style game controller) through the FNX4N4S adapter.
  • IEC provides connectivity to Commodore-compatible devices that use serial interface
  • DVI is for connecting a display.
  • RS-232 provides a standard RS-232 serial interface.
  • Headphones is a standard 3.5mm headphone jack.
  • Audio Line Out provides stereo audio output.

Switches

The bottom of the unit looks like this:

F256k dip switches.jpg

There are eight DIP switches, with different interpretations depending on whether a kernel is present on the system. If a kernel is present on the system, as the unit is shipped with, these switches are:

  • [8] - On: Enable GAMMA correction
  • [7] - Graphics resolution controls
  • [6] - Not used
  • [5] - Not used
  • [4] - On: Feather Board installed (ESP8266)
  • [3] - On: Enable SLIP Base Networking
  • [2] - Reserved
  • [1] - On: Enable Boot from RAM, off means it will boot from a pre-installed kernel in the first 48K of memory.

If a kernel is not present on the system, these switches can be used as desired:

  • [8] - On: Enable GAMMA correction
  • [7] - USER2
  • [6] - USER1
  • [5] - USER0
  • [4] - BOOT Mode3
  • [3] - BOOT Mode2
  • [2] - BOOT Mode1
  • [1] - BOOT Mode0

Boot

To start the machine, ensure A/C power is plugged in and flip the power switch. The exact boot behavior depends on the "Boot from RAM" DIP switch on the bottom.

If the DIP1 "Boot from RAM" switch is off and a kernel is used, the kernel will search the 48K of memory for a pre-loaded kernel binary.

If the DIP1 "Boot from RAM" switch is on, then control is transferred to the reset vector entrypoint located at offset $FFFC.

Switching DIP1 to 'on' is useful for developer convenience and testing code. For those using the machine outside of a development-style environment, it's more likely the switch will be 'off'.

Note: the "Boot from RAM" and "Boot from flash" options in uploader tools such as FoenixMgr or F256 Uploader are unrelated to the "Boot from RAM" DIP switch. The DIP swtich tells the kernel to search the first 48K of RAM for a pre-loaded kernel binary; those tools send a soft reset signal to reset to an entrypoint either in RAM or Flash memory respectively.

Keyboard

The built-in keyboard is a matrix keyboard controlled by two WDC VIA (Versatile Interface Adapter) controllers.

  • Restore key is controlled by NMI signal.
  • Right arrow and down arrow are controlled by VIA0.
  • Rest of the keys are all controlled by VIA1.

For a more complete reference, see the manual.

F256k ResizedPicture-scaled.jpg

Manual

For a technical reference, use this manual: https://github.com/pweingar/F256Manual

Although the manual is F256Jr-centric, it's suitable for F256K development owing to the similarity of the two units. It describes common aspects between F256Jr and F256K, with some sections highlighting F256K functionality that differs.

Kernels

There are three kernels for the F256K.

Tools