Skip to content

Commit

Permalink
More Fixups
Browse files Browse the repository at this point in the history
  • Loading branch information
mwenge committed Jul 17, 2024
1 parent 53afaac commit 5483531
Show file tree
Hide file tree
Showing 4 changed files with 6 additions and 5 deletions.
Binary file modified out/IridisAlphaTheory.pdf
Binary file not shown.
5 changes: 3 additions & 2 deletions src/disassembly.tex
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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}%
Expand Down
4 changes: 2 additions & 2 deletions src/mif.tex
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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]
Expand Down
2 changes: 1 addition & 1 deletion src/preface.tex
Original file line number Diff line number Diff line change
Expand Up @@ -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}},
Expand Down

0 comments on commit 5483531

Please sign in to comment.