Fork of https://github.com/vinz6751/FoenixMCP with updates from Stefany for the newest A2560K models.
Go to file
Peter Weingartner 5210dbaab4 Issue #37
Updated CLI so that it sets the console settings to its liking on getting control, but turns echo back on the console before giving control to a program. Also cleaned up how the COMMAND setting is handled so it should work when a program quits as well.
2022-05-19 20:47:35 -04:00
.vscode Initial text driver work for VICKY III 2021-09-11 22:05:36 -04:00
build Issue #37 2022-05-19 20:47:35 -04:00
C256Mgr Improved DIR formatting 2022-04-24 13:48:51 -04:00
docs Manual Update 2022-05-16 16:17:20 -04:00
samples PGZ Loader 2021-10-04 18:14:45 -04:00
src Issue #37 2022-05-19 20:47:35 -04:00
utilities/srecpgz Minor changes and Sound Test Work 2022-01-02 18:21:13 -05:00
vbcc Made flashable 2022-04-13 15:05:01 -04:00
.gitignore Merge branch 'main' into a2560k 2021-12-10 20:32:37 -05:00
c256.ini Made flashable 2022-04-13 15:05:01 -04:00
C256Mgr.zip Foenix/MCP Booting on A2560K '040 2021-11-30 13:52:29 -05:00
deref.bat Initial text driver work for VICKY III 2021-09-11 22:05:36 -04:00
Doxyfile TRAP fix, start of new text driver 2022-03-04 15:53:20 -05:00
dump.bat Initial text driver work for VICKY III 2021-09-11 22:05:36 -04:00
FEATURES.md Quick Documentation Update 2022-03-26 13:10:11 -04:00
flash.bat Initial text driver work for VICKY III 2021-09-11 22:05:36 -04:00
LICENSE Documentation 2021-08-30 10:30:02 -04:00
lookup.bat Initial text driver work for VICKY III 2021-09-11 22:05:36 -04:00
README.md Makefile Rework 2021-11-27 20:03:00 -05:00
revision.bat Initial text driver work for VICKY III 2021-09-11 22:05:36 -04:00
run256.bat Initial text driver work for VICKY III 2021-09-11 22:05:36 -04:00
runsrec.bat Initial text driver work for VICKY III 2021-09-11 22:05:36 -04:00
upload.bat Initial text driver work for VICKY III 2021-09-11 22:05:36 -04:00
uploadsrec.bat Initial text driver work for VICKY III 2021-09-11 22:05:36 -04:00

Foenix/MCP

A portable kernel for the Foenix series of computers.

Overview

The purpose of this project is to provide a simple kernel for the Foenix series of retro-style computers. Emphasis is placed upon the word "simple." This operating system will be more related to MS-DOS or CP/M than to Unix or Linux. The main purposes of this kernel are:

  • Boot the Foenix computer to a reasonably usable state.
  • Provide access to files on IDE hard drives, SD cards, and floppy disk (when the computer supports floppies).
  • Provide an environment for loading and running binary programs from media.
  • Provide access to those devices which are tedious to access at the lowest level (e.g. storage media, keyboard, text mode screen).
  • Provide a common programmatic interface for all the computers in the line.
  • Be broadly portable across the different processors the Foenix computers support (at the time of this writing, this includes the 65816, and the 68000 series).

Foenix Computers Supported

[Flesh this out as we get there. Intention is to support the FMX, U, U+, A2560K, A2560X, A2560U (68000 and 65816), and GenX.]

Building

Please refer to processor specific building instructions that will be included. For the 65816 and 68000 computers, the project will be built using the VBCC compiler.

Building for the M68000 CPU Family

Building this project requires the VBCC compiler and the MAKE utility. Using your command line, go into the src directory and type:

export VBCC = <use-your-projects-dir>/FoenixMCP/vbcc
make all

to build the kernel.

To remove binaries and intermediate files:

make clean

Build Options

There are three option variables that can be set in the makefile:

  • UNIT: This specifies which Foenix model is the targetted machine for the build. There are currently two options:
    1. UNIT=a2560u, this covers both the A2560U and A2560U+. It sets the CPU to be the M68000.
    2. UNIT=a2560k, this covers the A2560K and sets the CPU to M68040.
  • MEMORY: This species where in memory Foenix/MCP will run. There are two values here:
    1. MEMORY=ram: This specifies that the MCP will run from RAM.
    2. MEMORY=flash: This specifies that the MCP will be programmed to flash memory.
  • KBD_POLLED: As a temporary feature, if this option variable is defined, it will specify to the kernel that polled I/O is to be used for keyboard access instead of interrupt driven I/O.

Examples:

make all UNIT=a2560u MEMORY=ram

Builds an SREC file suitable for loading into RAM of the A2560U/U+.

make all UNIT=a2560k MEMORY=flash

Builds a binary file suitable for programming the flash of the A2560K.

License

Most of the source code for this kernel is made available under the open source BSD 3-Clause License (see LICENSE). However, the kernel also includes portions of other projects, which are covered under their licenses. In particular, the kernel currently uses the FatFS embedded file system, which is covered under separate license. Please see the src/fatfs directory for license details.

Features

See the features list for the features intended for this kernel and the status of implementation.

//END-OF-LINE