diff --git a/out/IridisAlphaTheory.pdf b/out/IridisAlphaTheory.pdf index badafc7d..768d556f 100644 Binary files a/out/IridisAlphaTheory.pdf and b/out/IridisAlphaTheory.pdf differ diff --git a/src/disassembly.tex b/src/disassembly.tex index 62697f23..46e3e894 100644 --- a/src/disassembly.tex +++ b/src/disassembly.tex @@ -1,4 +1,5 @@ \chapter{Some Disassembly Required} +\label{sec:disassembly} \lstset{style=6502Style} We've reached the point where the game has started to execute. We just saw a snippet of code that turned off the @@ -210,7 +211,7 @@ \chapter{Some Disassembly Required} STA $0318 ;Non-Maskable Interrupt%\index{Interrupt}% \end{lstlisting} -\subsection{Important Concept Number One: High Bytes and Low Bytes} +\section{Important Concept Number One: High Bytes and Low Bytes} On the face of it these four instructions are doing something very simple. They are storing the value \$40 at address \$0319 and the value \$00 at \$0318. What they are actually doing is storing the address \$4000 in a place where the C64's 6502 CPU will be expected to look in a moment's time and take that as a command @@ -258,7 +259,7 @@ \subsection{Important Concept Number One: High Bytes and Low Bytes} you otherwise, but hopefully when we look at the use it is put to here you may begin to get a flavor of its utility. Let's do that by looking at our second important concept. -\subsection{Important Concept Number Two: Interrupts} +\section{Important Concept Number Two: Interrupts} \begin{lstlisting}[caption=It's an interrupt\index{interrupt}. And it's non-maskable.,escapechar=\%] LDA #$40 STA $0319 ;Non-Maskable Interrupt%\index{Interrupt}% diff --git a/src/mif.tex b/src/mif.tex index 719eadfa..8688f174 100644 --- a/src/mif.tex +++ b/src/mif.tex @@ -109,7 +109,7 @@ \chapter{Made in France} } \end{figure} -\subsubsection{Main Loop} +\section{Main Loop} The code for MIF comes in at a relatively light 900 or so lines of 6502 assembler. The main loop of the game is primarily concerned with detecting key presses to enter into the DNA mini-game (see @@ -190,7 +190,7 @@ \subsubsection{Main Loop} JMP $EA31 \end{lstlisting} -\subsubsection{A Target Explodes} +\section{A Target Explodes} One point of interest in this mini-game is the explosion when you finally overcome the frustrating controls and manage to strike the target with your snake. \begin{figure}[H] diff --git a/src/preface.tex b/src/preface.tex index 52221014..9f467b76 100644 --- a/src/preface.tex +++ b/src/preface.tex @@ -14,7 +14,7 @@ \chapter*{About This Book} reverse-engineering process in the opening chapters because I think it is an interesting exercise in and of it self to go from a binary blob to a set of fully commented source code that provides insight to the inner workings of the game. \hyperref[sec:archaeo]{\textcolor{blue}{A Little Archaeology}} describes how we extract the game binary from the cassette -tape it was originally distributed. \hyperref[sec:dis]{\textcolor{blue}{Some Disassembly Required}} shows you how to go from +tape it was originally distributed. \hyperref[sec:disassembly]{\textcolor{blue}{Some Disassembly Required}} shows you how to go from a very long list of bytes to a full source code listing. Hopefully you are here because you enjoy this kind of gory detail too. If you are just interested in learning about the mechanics of the game itself you can flick straight to \hyperref[sec:first16]{\textcolor{blue}{The First 16 Milliseconds}},