Skip to content
forked from ghaerr/elks

Embeddable Linux Kernel Subset With Aswan Nuances - Linux for WonderSwan

License

Notifications You must be signed in to change notification settings

asiekierka/elkswan

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6,748 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

What is elkswan?

elkswan is a WonderSwan-targeted experimental fork of ELKS, which is an early fork of the Linux OS for systems based on the Intel IA16 architecture.

elkswan stands for Embedded Linux Kernel Subset With Aswan Nuances, with Aswan being the name of the original WonderSwan system-on-chip.

Motivation

As of writing, there were two actively maintained forks of ELKS, all on friendly relations with each other:

  • ghaerr's ELKS, which primarily aims to support PCs (IBM, PC-98) and SBCs;
  • Mellvik's TLVC, which gives up portability and BIOS compatibility for greater performance;

elkswan came into being as upstream ELKS does not wish to increase its code complexity to support even more niche platforms like 16-bit x86 palmtops, PDAs or game consoles; in effect, it is a fork for exploring compatibility and providing releases with these devices in mind, potentially leading to compatibility and functionality improvements upstream where doing so does not create a significant maintenance burden.

elkswan is also not a hard fork; I will try my best to periodically rebase it on top of upstream, at least whenever I'm actively hacking on the project.

Targets

WonderSwan

Requirements:

  • WonderSwan Color or SwanCrystal console. The original ("mono") WonderSwan is not supported!
  • One of the following devices:
WonderWitch nileswan Generic flashcart
Process RAM ~2.5 x 64 KiB 16 x 64 KiB + 768 KiB Depends
Maximum ROMFS size ~320 KiB 732 KiB (WIP) Up to 704 KiB (WIP)
Real-Time Clock WIP WIP
FAT support
USB serial port WIP

Notes:

  • Fields marked "WIP" refer to current functionality that may be improved or expanded in the future.
  • An emulator without special configuration counts as a "generic flashcart".
  • On nileswan, the 768 KiB is only used for code segments, and is shared between all processes.

Potential future targets

This serves merely as a list of devices that could be neat to port elkswan to; it does not signal active development.

  • Casio Pocket Viewer - still inexpensive V30MZ-based PDA family,
  • Psion Series 3/3a/3c/3mx - somewhat expensive V30-based PDA family,
  • Atari Portfolio - rather expensive 80C88 PDA,
  • HP 95LX/100LX/200LX - nearly unobtainable 80186-compatible PDA.

Downloads

TODO.

How to build

Full build instructions are here.

Wiki

Help on how to use ELKS, as well as technical tutorials, are available on our Wiki.

Documentation

More information is in the Documentation folder: Index of ELKS Documentation.

Resources

Other projects and resources interesting to ELKS and our programming community:

  • 8086 toolchain A full C toolchain running on the host desktop and ELKS itself, featuring C compiler, the as86 assembler, ld86 linker, make and a complete C library..
  • blink16 A visual 8086 emulator and debugger capable of booting the ELKS kernel for symbolic debugging, as well as an emulator for ELKS executables.
  • Size Optimization Tricks A great article from Justine Tunney's blog showing how big things can be done without bloat.
  • gcc-ia16 TK Chia's gcc compiler targeted for 8086, maintained and used for the ELKS kernel and all its applications.

More information

Questions? Problems? Patches? Open an issue on the elkswan GitHub project!

About

Embeddable Linux Kernel Subset With Aswan Nuances - Linux for WonderSwan

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Languages

  • C 76.4%
  • Roff 6.4%
  • Assembly 5.8%
  • TeX 4.0%
  • Makefile 3.5%
  • Shell 1.9%
  • Other 2.0%