Skip to content
Snippets Groups Projects
README 2.44 KiB
Newer Older
Scott Duensing's avatar
Scott Duensing committed
 _____ ____  ____   __      _ _
|  ___|___ \| ___| / /_    | | |_   ___ __ ___        _ __ ___   ___  ___
| |_    __) |___ \| '_ \   | | \ \ / / '_ ` _ \ _____| '_ ` _ \ / _ \/ __|
|  _|  / __/ ___) | (_) |  | | |\ V /| | | | | |_____| | | | | | (_) \__ \
|_|   |_____|____/ \___/   |_|_| \_/ |_| |_| |_|     |_| |_| |_|\___/|___/


This repository is my work using llvm-mos with the Foenix F256 line of
computers.  It's a somewhat random collection of things helpful to me and
will hopefully grow into something helpful to others.

    -- Scott Duensing (scott@kangaroopunch.com)


REQUIREMENTS
============

I use Linux Mint Cinnamon as my development environment.  Any Ubuntu derivative
should work as well - even under WSL.


INSTALLING
==========

At a minimum, you should run the following:

  ./build-llvm-mos.sh all
  ./build-merlin.sh
  ./update-defines.sh
Scott Duensing's avatar
Scott Duensing committed
  ./build-tools.sh
Scott Duensing's avatar
Scott Duensing committed


SCRIPTS
=======

build-aesprite.sh - Downloads and builds the latest Aesprite.

build-tools.sh - Builds the included header and image conversion tools.
Scott Duensing's avatar
Scott Duensing committed

build-llvm-mos.sh - Builds the latest llvm-mos toolchain.

build-merlin.sh - Builds the Merlin32 assembler.

get-foenixmgr.sh - Downloads the latest FoenixMgr and dependencies.

pgz-thunk.py - Inspects contents of PGZ files.

start-quartus.sh - Runs Intel's Quartus tool (must install manually).

update-defines.sh - Updates the Merlin sample code and builds C headers.

update-ide-firmware.sh - Packages the latest firmware and copies it to the IDE.


HEADER TOOL
===========

The included header tool allows you to add a KUP, PGX, or PGZ program header to
a raw binary generated by llvm-mos or Merlin.  Look at the examples for samples.


IMAGE CONVERTER
===============

The image converter loads images of various formats and attempts to convert them
into a format usable by TinyVicky.  It's not very smart.  Images need to be the
proper size for your intended use and have 256 or fewer colors.  The result of
the conversion will be a "clut" file with the color lookup table in it as well
as an "indexed" file of the pixels in your image mapped to the color table.

The image converter can also take a bitmap and slice it into 8x8, 16x16, 24x24,
or 32x32 chunks for use as sprite data.

Scott Duensing's avatar
Scott Duensing committed
EXAMPLES
========

The included example code is always in a state of flux.  This code is what I'm
using as I work on this repo.  If you find something you think is broken, it
probably really is.  I'm happy to help and answer questions on the Foenix
Discord server.