~vdupras/tumbleforth

d6e8e3cb92bc06000463c09ae1b0b2b6203b1fc4 — Virgil Dupras 10 months ago f9ca86b
01-duskcc: make code links more specific
M 01-duskcc/01-buckleup.md => 01-duskcc/01-buckleup.md +2 -2
@@ 32,7 32,7 @@ compiled and then ran?
    }

*Code in this article is also available in
[Tumble Forth's git repository][src].*
[Tumble Forth's git repository][gitrepo].*

So, you know that you can save this to `buckleup.c`, then run `cc -o buckleup
buckleup.c` and then run the resulting `./buckleup` executable, which will exit


@@ 212,7 212,7 @@ we'll talk later.

[collapseos]: http://collapseos.org
[duskos]: http://duskos.org
[src]: https://git.sr.ht/~vdupras/tumbleforth
[gitrepo]: https://git.sr.ht/~vdupras/tumbleforth
[elf]: https://en.wikipedia.org/wiki/Executable_and_Linkable_Format
[ccall]: https://en.wikipedia.org/wiki/X86_calling_conventions#System_V_AMD64_ABI
[nasm]: https://www.nasm.us/

M 01-duskcc/02-baremetal.md => 01-duskcc/02-baremetal.md +2 -2
@@ 70,7 70,7 @@ Enough babbling, let’s flex our fingers and get going.
## Hello World

*Code in this article is also available in
[Tumble Forth's git repository][src].*
[Tumble Forth's git repository][gitrepo].*

We’re going to print “Hello World!” on a bare metal PC using BIOS functions
through a boot sector we’ll assemble using NASM. The listing is so simple that


@@ 247,7 247,7 @@ world of Forth, which OSdev doesn’t cover.

[^16]: Although I’d be happy if it did!

[src]: https://git.sr.ht/~vdupras/tumbleforth
[gitrepo]: https://git.sr.ht/~vdupras/tumbleforth
[prev]: 01-buckleup.html
[nextup]: 03-onesector.html
[qemu]: https://www.qemu.org/

M 01-duskcc/03-onesector.md => 01-duskcc/03-onesector.md +3 -2
@@ 59,7 59,7 @@ have to worry about CHS addressing for now as we will always read from cylinder

*We’re about to start talking about code. Up until now, all code was inlined in
the articles, but it’s becoming too voluminous for this. The code associated
with this article is available in [Tumble Forth's git repository][src] which
with this article is available in [Tumble Forth's git repository][gitrepo] which
you should use in order to follow along.*

We have a source? We have a destination? Then we know what to do, let’s write


@@ 147,7 147,8 @@ number would need to be 0xaa55 to have the intended effect.
[^6]: You think that’s complicated? Just wait until you try to get in protected
mode!

[src]: https://git.sr.ht/~vdupras/tumbleforth
[gitrepo]: https://git.sr.ht/~vdupras/tumbleforth
[src]: https://git.sr.ht/~vdupras/tumbleforth/tree/master/item/01-duskcc/03-onesector
[prev]: 02-baremetal.html
[nextup]: 04-wordsshell.html
[sectorforth]: https://github.com/cesarblum/sectorforth

M 01-duskcc/04-wordsshell.md => 01-duskcc/04-wordsshell.md +1 -1
@@ 161,7 161,7 @@ prefer that order. More on this later.
[^6]: With the contents having been loaded from the bootloader.
[^7]: "jb” means “jump if dest operand is below source operand”.

[src]: https://git.sr.ht/~vdupras/tumbleforth
[src]: https://git.sr.ht/~vdupras/tumbleforth/tree/master/item/01-duskcc/04-wordsshell
[prev]: 03-onesector.html
[nextup]: 05-dolookup.html
[basic]: https://en.wikipedia.org/wiki/BASIC_interpreter

M 01-duskcc/05-dolookup.md => 01-duskcc/05-dolookup.md +1 -1
@@ 190,7 190,7 @@ centered around colors!
word “user” really doesn’t convey how intensely the creativity of the person at
the keyboard is being solicited. You’re like Tank in the Matrix!

[src]: https://git.sr.ht/~vdupras/tumbleforth
[src]: https://git.sr.ht/~vdupras/tumbleforth/tree/master/item/01-duskcc/05-dolookup
[prev]: 04-wordsshell.html
[nextup]: 06-taletwostacks.html
[ll]: https://en.wikipedia.org/wiki/Linked_list

M 01-duskcc/06-taletwostacks.md => 01-duskcc/06-taletwostacks.md +1 -1
@@ 280,7 280,7 @@ personal convention.
used.
[^11]: In Forth speak, the “!” symbol means “store”.

[src]: https://git.sr.ht/~vdupras/tumbleforth
[src]: https://git.sr.ht/~vdupras/tumbleforth/tree/master/item/01-duskcc/06-taletwostacks
[prev]: 05-dolookup.html
[nextup]: 07-babywalk.html
[ccall]: https://en.wikipedia.org/wiki/X86_calling_conventions

M 01-duskcc/07-babywalk.md => 01-duskcc/07-babywalk.md +1 -1
@@ 183,7 183,7 @@ unfinished, and thus broken. With no `ret` to stop the call chain, calling the
broken word will result in executing uninitialized memory, which means
“fireworks!”. Our baby Forth isn’t mistake-friendly!

[src]: https://git.sr.ht/~vdupras/tumbleforth
[src]: https://git.sr.ht/~vdupras/tumbleforth/tree/master/item/01-duskcc/07-babywalk
[prev]: 06-taletwostacks.html
[nextup]: 08-immediate.html
[brad]: https://www.bradrodriguez.com/papers/moving1.htm

M 01-duskcc/08-immediate.md => 01-duskcc/08-immediate.md +1 -1
@@ 213,7 213,7 @@ to your will!
[^9]: and I’d be very happy if you were! Let me know if you’re stuck at some
point.

[src]: https://git.sr.ht/~vdupras/tumbleforth
[src]: https://git.sr.ht/~vdupras/tumbleforth/tree/master/item/01-duskcc/08-immediate
[prev]: 07-babywalk.html
[nextup]: 09-dusktillc.html
[starting]: https://www.forth.com/starting-forth/

M 01-duskcc/09-dusktillc.md => 01-duskcc/09-dusktillc.md +1 -1
@@ 321,7 321,7 @@ operands. For example, `“add [esi], [eax]”` is impossible. Therefore, one of
the operands is always “direct”. `reg` is the one.
[^5]: Let’s ignore the imm8 optimization for now.

[src]: https://git.sr.ht/~vdupras/tumbleforth
[src]: https://git.sr.ht/~vdupras/tumbleforth/tree/master/item/01-duskcc/09-dusktillc
[prev]: 08-immediate.html
[nextup]: 10-beast.html
[dusk]: http://duskos.org/

M 01-duskcc/11-eye.md => 01-duskcc/11-eye.md +1 -1
@@ 231,6 231,6 @@ generation, using an Abstract Syntax Tree representation of the code in between.
We don't (DuskCC doesn't either). We generate code directly as we parse. It
comes with a few drawbacks, but results in a much simpler code.

[src]: https://git.sr.ht/~vdupras/tumbleforth
[src]: https://git.sr.ht/~vdupras/tumbleforth/tree/master/item/01-duskcc/11-eye
[prev]: 10-beast.html
[str]: https://git.sr.ht/~vdupras/duskos/tree/master/item/fs/doc/lib/str.txt