Getting Started: Difference between revisions

From F256 Foenix
Jump to navigationJump to search
(Highlighting free to use space in ZP in Italic.)
Line 123: Line 123:
| $0001|| -|| I/O Control Register || 1
| $0001|| -|| I/O Control Register || 1
|-
|-
| $0002|| $0007|| Free Zero Page Addresses || 6
| $0002|| $0007|| ''Free Zero Page Addresses'' || 6
|-
|-
| $0008|| $000F|| MMU Control Addresses || 8
| $0008|| $000F|| MMU Control Addresses || 8
|-
|-
| $0010|| $002F|| Free Zero Page Addresses || 32
| $0010|| $002F|| ''Free Zero Page Addresses'' || 32
|-
|-
| $0030|| $003F|| Used Zero Page Addresses for (xx),Y Addressing || 16
| $0030|| $003F|| Used Zero Page Addresses for (xx),Y Addressing || 16
Line 133: Line 133:
| $0040|| $0041 || Current Address on screen of start of line || 2
| $0040|| $0041 || Current Address on screen of start of line || 2
|-
|-
| $0042|| $004F|| Avaliable Zero Page Addresses || 14
| $0042|| $004F|| ''Avaliable Zero Page Addresses'' || 14
|-
|-
| $0050|| $00AF|| Number / Floating Point Stack for 16 numbers || 96  
| $0050|| $00AF|| Number / Floating Point Stack for 16 numbers || 96  
|-
|-
| $00B0||$00EF|| Available Zero Page || 64
| $00B0||$00EF|| ''Available Zero Page'' || 64
|-
|-
| $00F0|| $00FF|| Kernel Arguments in Zero Page || 16
| $00F0|| $00FF|| Kernel Arguments in Zero Page || 16

Revision as of 13:23, 14 January 2024

Getting Powered Up

Powering your F256K

The F256K is powered via a standard 2.5mm DC Connector, which takes a centre-positive 12V 2A capable Power Supply.

This type of power supply is quite common. Example 12V 2A capable power supply (#)

(#) This specific power supply has not been verified (by the author) for use with the F256K. Please update this page with verified options!

Powering your F256Jr

The F256Jr is supplied as a Mini-ITX form factor mainboard, with a standard 24 pin ATX power supply connector for power connectivity.

Since the F256Jr needs relatively little power, compared to a mini-ATX PC, a popular DC 12V 24pin Pico ATX PSU works well and is a compact solution.

Getting programs onto the F256

SD Card

Both the F256K and F256JR have an SD card slot. The device software to read the SD card is a bit touchy (it's inherited from the Commander X16 project) and doesn't work with all SD cards

  • Cards should support the V2 protocol (HC or XC); older cards that only support the V1 protocol (typically 2GB or less) won't work. By contrast, the kernels for the C256 machines generally only work with V1 cards. Note that, in both cases, this is a software limitation -- all of the Foenix machines are electrically capable of using both kinds of cards.
  • Cards *MUST* be formatted FAT32 -- **NOT: FAT, FAT12, FAT16, or exFAT**. Note that while MacOS will read a FAT32 formatted card, the included disk utility won't format FAT32. Windows 10/11 works fine, but make sure to force FAT32 (or use the command line: format /FS:FAT32 H:)
  • Some folks have had luck formatting cards with the Official SD Association formatter for Windows.

Demos Archive

Debug USB port

  • This is what most developers use as it's the most convenient. Connect the debug USB port to your PC or Mac
  • You can use:
    • FoenixMgr - works on Windows, Mac, Linux
      • A Python script to manage the Foenix series of retro style computers through their USB debug ports. This tool allows uploading files of various formats to system RAM, and displaying memory through various means.
    • FoenixIDE (Windows only)
      • Development and Debugging Suite for the C256 Foenix Family of Computers.

wget

If you have the wifi configured, you can use wget to pull programs and data right off the web!

SuperBASIC

The machine boots to SuperBASIC. SuperBASIC is inspired by BBC BASIC but offers quite a bit more.

To get started, you can type in a sample program at the command prompt:

10 for i=1 to 5
20 print "Hello world"
30 next
run

SuperBASIC is similar to CBM (Microsoft) BASIC but has some differences. For example, note in the sample above it's just next not next i.

The first 15 or so pages of the SuperBASIC Reference Manual are quite instructive.

SuperBASIC is actually much more powerful and supports structured programming (procedures, blocks etc.)

dir - Run this to display directory of SD card

Loading & running programs off of the SD card is similarly easy:

load "JrWordl.bas"
run

Similar to the C64, you can save time in loading programs from the dir listing by using your cursor keys to go up to the entry, typing load " (insert mode is active by default) etc. You can use CTRL+E to jump to the end of the line and use CTRL+K to delete any text from the cursor to the end of the line. Correctly place the closing " and hit ENTER.

CTRL+C acts as a "break" command and stops any running SuperBASIC program or LIST command.

Read built-in help/reference:

/help : But NOTE, this erases BASIC memory! Use Backspace key to go back in menus and to exit.

Explore the included demo SuperBASIC programs:

Program Notes Source
JrWordl.bas Wordle game, guess 5 letter word
mandel.bas Draws Mandlebrot set in graphics mode, takes between 2 and 3 hours @Mu0n
rpg-demo.bas UI sample that shows Zelda like RPG game. Control the character with an Atari-joystick connected to JoyPort1 @econtrerasd
Problematic_Code.bas Displays scrolling starfield
noelrl.bas Simple integer BASIC bench mark from Noel's retro lab. Completes < 3.5 seconds, compares very favourably to other retro systems! Youtube
dance.bas Animates sprite of dancer @Mu0n
luna.bas Displays simple scene
blink.bas Blinks drive access light @Mu0n
piano.bas Play some notes with the PSG @Mu0n

Memory Map under BASIC

Caption text
Initial Address End Address Description Bytes
$0000 - MMU Control Register 1
$0001 - I/O Control Register 1
$0002 $0007 Free Zero Page Addresses 6
$0008 $000F MMU Control Addresses 8
$0010 $002F Free Zero Page Addresses 32
$0030 $003F Used Zero Page Addresses for (xx),Y Addressing 16
$0040 $0041 Current Address on screen of start of line 2
$0042 $004F Avaliable Zero Page Addresses 14
$0050 $00AF Number / Floating Point Stack for 16 numbers 96
$00B0 $00EF Available Zero Page 64
$00F0 $00FF Kernel Arguments in Zero Page 16
$0100 $01FF Hardware Stack of 6502 256
$0200 $0228 Basic mini-Kernel memory 40
$0229 $03FF Also used by Sound Command in BASIC 470
$0400 $041F Control Storage first 8 bytes control syntax highlighting 32
$0420 $0814 Memory Storage 1012
$0814 $0FFF Available Low Memory 2028
$1000 $1FFF SuperBASIC Identifier Tables, allocated memory, string vars, stack 4kb
$2000 $77FF SuperBASIC Program Tokenized Code (grows Upward) 22kb
$7800 $7FFF Top 2k of SuperBASIC Program tokenize code or used for ML routines in low memory 2kb
$8000 $BFFF SUPERBASIC CODE 16kb
$C000 $DFFF I/O Memory Pages / Underlying Kernel Code (Selectable with I/O control Register) 8kb
$E000 $FFEF KERNEL CODE 8176
$FFF0 $FFFF Reset Vectors and NMI / IRQ / BRK Vectors 16
$01:0000 $02:2BFF Default Memory used by BASIC bitmap graphics 75kb
$02:2C00 $02:7FFF Available High Memory 21kb
$02:8000 $02:F000 Used for BASIC Cross Development w/PC or MAC 32k
$03:0000 $03:7FFF Used for Sprite Data in BASIC 32kb
$03:8000 $03:FFFF Unless not running from Flash, Used for ROM Images 32k
$04:0000 $07:DFFF Available High Memory 248kb
$07:E000 $07:FFFF Being considered to be Reserved for Environmental Variables 8Kb
$10:0000 $13:FFFF Cartridge Expansion Memory (addresable only by CPU) 256kb
$14:0000 $1F:FFFF Future Expansions? 768kb

More Resources

This Wiki

Explore all of the content of this Wiki, to expand your F256 series knowledge!

Discord

The Foenix Retro Systems Discord is the primary place to get questions answered.

Also, if you resolve your question, and you didn't find the answer here on the Wiki, please consider contributing to the Wiki, for the benefit of others with the same question!

Foenix Retro Systems Newletter

Read back issues here (also a great source for sample programs).

Issues starting at #4 cover the F256 line. Issues 1-3 cover the previous version of the hardware (C256), although there are still many salient points.