Difference between revisions of "F256K"

From C256 Foenix Wiki
Jump to navigation Jump to search
(Keyboard)
Line 70: Line 70:
  
 
Note: the "Boot from RAM" and "Boot from flash" options in uploader tools such as [https://github.com/pweingar/FoenixMgr FoenixMgr] or [https://github.com/clandrew/F256Uploader 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.
 
Note: the "Boot from RAM" and "Boot from flash" options in uploader tools such as [https://github.com/pweingar/FoenixMgr FoenixMgr] or [https://github.com/clandrew/F256Uploader 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.
 +
 +
= Memory =
 +
The F256K has a 16-bit address space, $0000 through $FFFF, visible to its CPU. In other words, the address space is 64KB in size. While other units such as the TinyVicky graphics unit can access memory beyond that, the CPU itself has a 16-bit address space.
 +
 +
Programs can control what physical memory this address space maps to. They do this through ''memory lookup tables'', or ''MLUT''s for short. Up to four MLUTs can be set up at a time, and programs choose which one is active at any given time.
 +
 +
The address space is divided up into eight equal-sized ''banks''. Note that each bank is $2000 in size; on other platforms, the term ''bank'' may be used differently. Here, each bank is 8KB, or $2000. Programs choose which bank of CPU address space maps to. Programs can map a bank to any of RAM, flash or expansion memory.
  
 
= Keyboard =
 
= Keyboard =

Revision as of 18:22, 25 June 2023

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.

Memory

The F256K has a 16-bit address space, $0000 through $FFFF, visible to its CPU. In other words, the address space is 64KB in size. While other units such as the TinyVicky graphics unit can access memory beyond that, the CPU itself has a 16-bit address space.

Programs can control what physical memory this address space maps to. They do this through memory lookup tables, or MLUTs for short. Up to four MLUTs can be set up at a time, and programs choose which one is active at any given time.

The address space is divided up into eight equal-sized banks. Note that each bank is $2000 in size; on other platforms, the term bank may be used differently. Here, each bank is 8KB, or $2000. Programs choose which bank of CPU address space maps to. Programs can map a bank to any of RAM, flash or expansion memory.

Keyboard

The built-in keyboard does not operate by PS/2 controller, it's a matrix keyboard controlled by two WDC VIA (Versatile Interface Adapter) controllers and the CPU's NMI signal.

There are two ways for programs to interact with the keyboard:

  • Using the kernel, where the exact mechanism depends on the kernel involved
  • Directly with the device, using memory mappings.

For more information on interacting directly with the keyboard device, see F256K Keyboard.

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