A6: M68k operating system
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
alexis e442d0e267 Bootloader changes for ca1 6 months ago
0-DOCS Evict newlib 7 months ago
0-ISSUES Migrate tracker 8 months ago
a_runtime Build the kernel -fpic 7 months ago
bootloader Bootloader changes for ca1 6 months ago
dll_kernel kinfo: fix bad m68000 stack frame adjustment 7 months ago
dll_ld Make DLLEXPORT work 7 months ago
dll_system Let the bootloader have its own linker script... 7 months ago
exe_a6 Let the bootloader have its own linker script... 7 months ago
gendrv a6boot: smallify more 7 months ago
subprojects Update picolibc - fixes address error 7 months ago
superfs_icm68k Split out KERNEL.DLL 8 months ago
toolchain Quieter build 7 months ago
.gitignore Initial port to Meson - needs doc update 8 months ago
.gitmodules Initial import of picolibc 7 months ago
README.md Evict newlib 7 months ago
blblast.py a6boot: add quick upload tool 7 months ago
build.sh Make it optional to adjust your elves 8 months ago
meson.build a6boot: lots more shrinkifying 7 months ago
meson_cross.txt Adjust flags 7 months ago
meson_options.txt a6boot: don't build by default 7 months ago


A6 — operating system for embedded M68k systems

(work in progress, most of these are lies until those things are actually built)

A6 (originally a shortening of AVL68KOS / AVL's 68K OS) is an operating system for use in embedded M68k computers. Some characteristics:

  • Supported CPUs currently include: 68010 (There is preliminary 68000 support but it is untested. In the future, newer ones will also probably work.)

  • Preemptive multitasking

  • IO using device files, a la *n?x

  • Memory protection support

    (No support is planned for full MMUs — this is a deliberate design choice. However, future ports to more modern 68ks may understand how to turn their MMUs into MPUs).

  • Loadable kernel modules

  • Applications load from ELF files, with dynamic linking/relocation


There is more documentation on compiling here. The tl;dr is: you need a m68k gcc toolchain called m68k-elf-* on your path, then build using meson. A helper script to run all the meson commands is at ./build.sh.


The documentation takes the form of Markdown files located in this source tree; it can be viewed here.

Issues are managed in Gitea now, but the old issue tracker has issues that were closed prior to this migration.

Intellectual property is bullshit. This is everyone's code. Because it includes picolibc, you'll have to dump the big pile of IP crap from here into documentation you bundle with a binary build.