···12121313This is not intended to make fun of the mentally ill, disabled or otherwise incapacitated. This is not an endorsement of any of Davis' political views. This is intended to glorify and preserve his life's work that so few can currently really grasp the scope of.
14141515-If for some reason you are having issues downloading the TempleOS ISO, I have uploaded my copy of it [here](https://cdn.xeiaso.net/file/christine-static/blog/TOS_Distro.ISO). Here is its SHA512 sum:
1515+If for some reason you are having issues downloading the TempleOS ISO, I have uploaded my copy of it [here](https://cdn.xeiaso.net/file/christine-static/TOS_Distro.ISO). Here is its SHA512 sum:
16161717```
18187a382d802039c58fb14aab7940ee2e4efb57d132d0cff58878c38111d065a235562b27767de4382e222208285f3edab172f29dba76cb70c37f116d9521e54c45 TOS_Distro.ISO
···40404141TempleOS is a 64 bit OS, so pick the type `Other` and the version `Other/Unknown (64-bit)`. Name your VM whatever you want:
42424343-
4343+
44444545Then press Continue.
46464747[TempleOS requires 512 MB of ram to boot](https://github.com/Xe/TempleOS/blob/master/ReadMe.TXT#L11), so let's be safe and give it 2 gigs:
48484949-
4949+
50505151Then press Continue.
52525353It will ask if you want to create a new hard disk. You do, so click Create:
54545555-
5555+
56565757We want a VirtualBox virtual hard drive, so click Continue:
58585959-
5959+
60606161Performance of the virtual hard disk is irrelevant for our usecases, so a dynamically expanding virtual hard disk is okay here. If you feel better choosing a fixed size allocation, that's okay too. Click Continue:
62626363-
6363+
64646565The ISO this OS comes from is 20 MB. So the default hard disk size of 2 GB is way more than enough. Click Continue:
66666767-
6767+
68686969Now the VM "hardware" is set up.
7070···72727373TempleOS actually includes an installer on the live CD. Power up your hardware and stick the CD into it, then click Start:
74747575-
7575+
76767777Within a few seconds, the VM compiles the compiler, kernel and userland and then dumps you to this screen, which should look conceptually familiar:
78787979-
7979+
80808181We would like to install on the hard drive, so press `y`:
82828383-
8383+
84848585We're using VirtualBox, so press `y` again (if you aren't, be prepared to enter the IRQ's of your hard drive/s and CD drive/s):
86868787-
8787+
88888989Press any key and wait for the freeze to happen.
90909191The installer will take over from here, copying the source code of the OS, Compiler and userland as well as compiling a bootstrap kernel:
92929393-
9393+
94949595After a few seconds, it will ask you if you want to reboot. You do, so press `y` one final time:
96969797-
9797+
98989999Make sure to remove the TempleOS live CD from your hardware or it will be booted instead of the new OS.
100100···102102103103The [TempleOS Bootloader](https://github.com/Xe/TempleOS/blob/1dd8859b7803355f41d75222d01ed42d5dda057f/Adam/Opt/Boot/BootMHDIns.HC#L69) presents a helpful menu to let you choose if you want to boot from a copy of the old boot record (preserved at install time), drive C or drive D. Press 1:
104104105105-
105105+
106106107107The first boot requires the dictionary to be uncompressed as well as other housekeeping chores, so let it do its thing:
108108109109-
109109+
110110111111Once it is done, you will see if the option to take the tour. I highly suggest going through this tour, but that is beyond the scope of this article, so we'll assume you pressed `n`:
112112113113-
113113+
114114115115### Using the Compiler
116116117117-
117117+
118118119119The "shell" is itself an interface to the HolyC (similar to C) compiler. There is no difference between a "shell" REPL and a HolyC repl. This is stupidly powerful:
120120121121-
121121+
122122123123```
124124"Hello, world\n";
···128128129129Open a new file with `Ed("HelloWorld.HC");` (the semicolon is important):
130130131131-
131131+
132132133133-
133133+
134134135135Now press Alt-Shift-a to kill autocomplete:
136136137137-
137137+
138138139139Click the `X` in the upper right-hand corner to close the other shell window:
140140141141-
141141+
142142143143Finally press drag the right side of the window to maximize the editor pane:
144144145145-
145145+
146146147147Let's put the hello word example into the program and press `F5` to run it:
148148149149-
149149+
150150151151Neat! Close that shell window that just popped up. Let's put this hello world code into a function:
152152···160160161161Now press `F5` again:
162162163163-
163163+
164164165165Let's disassemble it:
166166···172172Uf("HelloWorld");
173173```
174174175175-
175175+
176176177177The `Uf` function also works with anything else, including things like the editor:
178178···180180Uf("Ed");
181181```
182182183183-
183183+
184184185185All of the red underscored things that look like links actually are links to the source code of functions. While the HolyC compiler builds things, it internally keeps a sourcemap (much like webapp sourcemaps or how gcc relates errors at runtime to lines of code for the developer) of all of the functions it compiles. Let's look at the definition of `Free()`:
186186187187-
187187+
188188189189And from here you can dig deeper into the kernel source code.
190190