This is the https://wiki.osdev.org/Bare_Bones tutorial, in the Cowgol language. It represents the capabilities of the language and its toolchain as of commit ec33ae1. It consists of two main files:
boot.cow
: A small program that prints a Hello World message two different ways. Take a look at this program to see how Cowgol differs from C.archgrub386.coh
A Cowgol header file. It describes a linker that turns Cowgol object files into GRUB multiboot images that can be loaded by GRUB or programs compatible with it, like QEMU.
- A Linux environment.
- Cowgol and all of its dependencies.
- QEMU, if you want to run the final image in an emulator.
These instructions should be accurate as of commit ec33ae1.
- Clone Cowgol and this repository so that they sit side-by-side in the same directory.
- Add
archgrub386.coh
to the directorycowgol/src/cowlink
. - In
cowgol/src/cowlink
, there should be a file namedbuild.py
. Make it recognizearchgrub386.coh
. I leave the exact method up to you, so that you get familiar with the Cowgol toolchain. - Build Cowgol.
- Go back to
cowgol_bare_bones
. Runmake
to compile, assemble, and linkboot.cow
. - Run
make run
to launch the final project in QEMU.
This project is derivative of two sources, The OSDev Wiki and the Cowgol compiler. It only makes sense to release it under the same terms as the Cowgol compiler itself.