about summary refs log tree commit diff stats
path: root/baremetal
diff options
context:
space:
mode:
Diffstat (limited to 'baremetal')
-rw-r--r--baremetal/ex1.subx23
1 files changed, 23 insertions, 0 deletions
diff --git a/baremetal/ex1.subx b/baremetal/ex1.subx
new file mode 100644
index 00000000..196b4104
--- /dev/null
+++ b/baremetal/ex1.subx
@@ -0,0 +1,23 @@
+# The simplest possible program: just an infinite loop.
+# All is well if your computer clears screen and hangs without restarting.
+# On an emulator the window may get bigger to accomodate the higher-resolution
+# graphics mode.
+#
+# To convert to a disk image, first prepare a realistically sized disk image:
+#   dd if=/dev/zero of=disk.img count=20160          # 512-byte sectors, so 10MB
+# Load the program on the disk image:
+#   ./translate_subx_baremetal baremetal/ex1.subx    # emits a.bin
+#   apps/hex < baremetal/boot.hex  > boot.bin
+#   cat boot.bin a.bin > disk.bin
+#   dd if=disk.bin of=disk.img conv=notrunc
+# To run:
+#   qemu-system-i386 disk.img
+# Or:
+#   bochs -f baremetal/boot.bochsrc  # boot.bochsrc loads disk.img
+
+== code
+
+$loop:
+e9/jump $loop/disp32
+
+# vim:ft=subx