\relax \@writefile{toc}{\contentsline {chapter}{\numberline {1}Introduction}{1}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \newlabel{1@xvr}{{}{1}} \newlabel{1@vr}{{}{1}} \newlabel{2@xvr}{{}{2}} \newlabel{2@vr}{{}{2}} \@writefile{toc}{\contentsline {chapter}{\numberline {2}The programmer's model of the 68000 microprocessor\xspace }{3}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \@writefile{toc}{\contentsline {section}{\numberline {2.1}The registers in the 68000}{3}} \newlabel{sec:registers}{{2.1}{3}} \newlabel{3@xvr}{{}{3}} \newlabel{3@vr}{{}{3}} \@writefile{lof}{\contentsline {figure}{\numberline {2.1}{\ignorespaces Registers in the 68000. PC is program counter. A7 is the stack pointer. All registers are 32 bits wide, except for the status register which is 16 bits wide.}}{4}} \newlabel{fig:registers}{{2.1}{4}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.1.1}Data registers}{4}} \newlabel{sec:dataRegisters}{{2.1.1}{4}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.1.2}Accumulators}{4}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.1.3}Address registers}{4}} \newlabel{sec:addressRegisters}{{2.1.3}{4}} \newlabel{4@xvr}{{}{5}} \newlabel{4@vr}{{}{5}} \newlabel{5@xvr}{{}{5}} \newlabel{5@vr}{{}{5}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.1.4}Special registers: the program counter and the stack pointer}{5}} \newlabel{sec:pcAndSp}{{2.1.4}{5}} \newlabel{6@xvr}{{}{5}} \newlabel{6@vr}{{}{5}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.1.5}Flags in the status registers}{5}} \newlabel{sec:statusReg}{{2.1.5}{5}} \newlabel{7@xvr}{{}{5}} \newlabel{7@vr}{{}{5}} \@writefile{lot}{\contentsline {table}{\numberline {2.1}{\ignorespaces The five flags in the status register in the \acro {CPU}\xspace .}}{6}} \newlabel{tab:statusFlags}{{2.1}{6}} \newlabel{sec:overflow}{{2.1.5}{6}} \@writefile{toc}{\contentsline {paragraph}{Overflow: }{6}} \newlabel{sec:carry}{{2.1.5}{7}} \@writefile{toc}{\contentsline {paragraph}{Carry: }{7}} \newlabel{8@xvr}{{}{7}} \newlabel{8@vr}{{}{7}} \@writefile{toc}{\contentsline {section}{\numberline {2.2}Memory}{7}} \newlabel{sec:memory}{{2.2}{7}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.2.1}The memory map of the 68000 system in the laboratory}{8}} \newlabel{9@xvr}{{}{8}} \newlabel{9@vr}{{}{8}} \@writefile{lof}{\contentsline {figure}{\numberline {2.2}{\ignorespaces A memory map of the \acro {FLIGHT-68K}\xspace microprocessor\xspace board. M means megabytes; K means kilobytes. $1\@mathrm {M}= 2^{20}$; $1\@mathrm {K}= 2^{10}$.}}{8}} \newlabel{fig:memmap}{{2.2}{8}} \newlabel{10@xvr}{{}{8}} \newlabel{10@vr}{{}{8}} \newlabel{11@xvr}{{}{9}} \newlabel{11@vr}{{}{9}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.2.2}The way data is stored in memory}{9}} \newlabel{sec:bigendian}{{2.2.2}{9}} \newlabel{12@xvr}{{}{9}} \newlabel{12@vr}{{}{9}} \@writefile{lot}{\contentsline {table}{\numberline {2.2}{\ignorespaces A comparison of storing the number 6789abcd$_{16}$ at the memory address 8000 in a big-endian and a little-endian architecture. All numbers are in hexadecimal.}}{10}} \newlabel{tab:bigEndian}{{2.2}{10}} \citation{horvath} \citation{leventhal} \citation{flight} \@writefile{toc}{\contentsline {chapter}{\numberline {3}68000 Assembly language}{11}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \@writefile{toc}{\contentsline {section}{\numberline {3.1}The framework of an assembly language program}{11}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.1.1}Labels, opcodes, operands and comments}{11}} \newlabel{sec:spacing}{{3.1.1}{11}} \@writefile{toc}{\contentsline {subsubsection}{Size of operands and data}{12}} \newlabel{sec:suffix}{{3.1.1}{12}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.1.2}Comments in programs}{12}} \newlabel{sec:comments}{{3.1.2}{12}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.1.3}Integer numbers in programs}{13}} \newlabel{sec:constants}{{3.1.3}{13}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.1.4}Assembler directives: \inst {org}, \inst {dc}, \inst {ds} and \inst {end}}{13}} \@writefile{toc}{\contentsline {subsubsection}{The \inst {org} directive}{14}} \newlabel{sec:org}{{3.1.4}{14}} \@writefile{toc}{\contentsline {subsubsection}{The \inst {dc}, \inst {ds} directives}{14}} \newlabel{sec:dcDs}{{3.1.4}{14}} \newlabel{13@xvr}{{}{14}} \newlabel{13@vr}{{}{14}} \@writefile{toc}{\contentsline {subsubsection}{The \inst {end} directive}{14}} \newlabel{sec:end}{{3.1.4}{14}} \newlabel{14@xvr}{{}{14}} \newlabel{14@vr}{{}{14}} \citation{flight} \citation{horvath} \citation{antonakos} \citation{motoProgRef} \citation{motoProgRef} \@writefile{toc}{\contentsline {subsubsection}{Equates}{15}} \newlabel{sec:equates}{{3.1.4}{15}} \newlabel{15@xvr}{{}{15}} \newlabel{15@vr}{{}{15}} \@writefile{toc}{\contentsline {section}{\numberline {3.2}Addressing modes}{15}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.2.1}Register direct addressing modes}{15}} \citation{horvath} \citation{antonakos} \citation{flight} \@writefile{toc}{\contentsline {subsection}{\numberline {3.2.2}Absolute addressing mode}{16}} \newlabel{16@xvr}{{}{16}} \newlabel{16@vr}{{}{16}} \citation{flight} \citation{horvath} \@writefile{toc}{\contentsline {subsection}{\numberline {3.2.3}Immediate addressing mode}{17}} \newlabel{sec:immediate}{{3.2.3}{17}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.2.4}Address register indirect mode}{17}} \newlabel{sec:ari}{{3.2.4}{17}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.2.5}Address register indirect with postincrement mode}{18}} \newlabel{sec:postinc}{{3.2.5}{18}} \newlabel{17@xvr}{{}{18}} \newlabel{17@vr}{{}{18}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.2.6}Address register indirect with predecrement mode}{18}} \newlabel{sec:predec}{{3.2.6}{18}} \newlabel{18@xvr}{{}{18}} \newlabel{18@vr}{{}{18}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.2.7}Address register indirect with displacement addressing mode}{18}} \newlabel{sec:ariWDisp}{{3.2.7}{18}} \citation{flight} \citation{horvath} \citation{antonakos} \newlabel{19@xvr}{{}{19}} \newlabel{19@vr}{{}{19}} \newlabel{20@xvr}{{}{19}} \newlabel{20@vr}{{}{19}} \newlabel{21@xvr}{{}{19}} \newlabel{21@vr}{{}{19}} \newlabel{22@xvr}{{}{19}} \newlabel{22@vr}{{}{19}} \newlabel{23@xvr}{{}{19}} \newlabel{23@vr}{{}{19}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.2.8}Address register indirect with index addressing mode}{19}} \newlabel{sec:ariWithIndex}{{3.2.8}{19}} \citation{horvath} \citation{antonakos} \newlabel{24@xvr}{{}{20}} \newlabel{24@vr}{{}{20}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.2.9}Tables in MC68000 assembly language}{20}} \newlabel{sec:table}{{3.2.9}{20}} \newlabel{25@xvr}{{}{20}} \newlabel{25@vr}{{}{20}} \newlabel{26@xvr}{{}{21}} \newlabel{26@vr}{{}{21}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.2.10}Summary of 68000 addressing modes}{21}} \@writefile{lot}{\contentsline {table}{\numberline {3.1}{\ignorespaces Examples of each addressing mode.}}{21}} \newlabel{tab:addrReg}{{3.1}{21}} \@writefile{toc}{\contentsline {section}{\numberline {3.3}Some assembly language instructions}{22}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.3.1}Loops and decisions: the \texttt {B$_\@mathtt {CC}$} instructions}{22}} \newlabel{sec:loops}{{3.3.1}{22}} \@writefile{toc}{\contentsline {subsubsection}{Unconditional loops: the \inst {bra} instruction}{22}} \newlabel{sec:bra}{{3.3.1}{22}} \@writefile{toc}{\contentsline {subsubsection}{Conditional loops: the \inst {bra} instruction}{22}} \newlabel{sec:conditional loops}{{3.3.1}{22}} \newlabel{27@xvr}{{}{22}} \newlabel{27@vr}{{}{22}} \@writefile{toc}{\contentsline {subsubsection}{The \texttt {cmp} instruction}{22}} \newlabel{sec:cmp}{{3.3.1}{22}} \@writefile{lot}{\contentsline {table}{\numberline {3.2}{\ignorespaces The simple tests of status register flags.}}{23}} \newlabel{tab:simpleTests}{{3.2}{23}} \@writefile{lot}{\contentsline {table}{\numberline {3.3}{\ignorespaces The number comparison tests.}}{23}} \newlabel{tab:comparisonTests}{{3.3}{23}} \newlabel{28@xvr}{{}{23}} \newlabel{28@vr}{{}{23}} \@writefile{toc}{\contentsline {subsubsection}{Simple tests of the flags}{23}} \newlabel{sec:bccSimple}{{3.3.1}{23}} \newlabel{29@xvr}{{}{23}} \newlabel{29@vr}{{}{23}} \@writefile{toc}{\contentsline {subsubsection}{Testing the result of comparisons}{23}} \newlabel{sec:bccCompare}{{3.3.1}{23}} \newlabel{30@xvr}{{}{23}} \newlabel{30@vr}{{}{23}} \newlabel{31@xvr}{{}{23}} \newlabel{31@vr}{{}{23}} \citation{horvath} \citation{antonakos} \@writefile{lot}{\contentsline {table}{\numberline {3.4}{\ignorespaces All the \Bcc instructions (all tests).}}{24}} \newlabel{tab:allTests}{{3.4}{24}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.3.2}Loops: the \texttt {dbf} instruction}{24}} \newlabel{sec:dbf}{{3.3.2}{24}} \citation{flight} \@writefile{toc}{\contentsline {subsection}{\numberline {3.3.3}What if you find an instruction you do not know?}{25}} \@writefile{toc}{\contentsline {section}{\numberline {3.4}Subroutines}{25}} \newlabel{sec:subroutines}{{3.4}{25}} \@writefile{lof}{\contentsline {figure}{\numberline {3.1}{\ignorespaces Executing a subroutine}}{25}} \newlabel{fig:coathanger}{{3.1}{25}} \newlabel{32@xvr}{{}{25}} \newlabel{32@vr}{{}{25}} \@writefile{lof}{\contentsline {figure}{\numberline {3.2}{\ignorespaces Executing nested subroutines}}{26}} \newlabel{fig:nested}{{3.2}{26}} \newlabel{33@xvr}{{}{26}} \newlabel{33@vr}{{}{26}} \@writefile{toc}{\contentsline {section}{\numberline {3.5}The stack}{26}} \newlabel{sec:stack}{{3.5}{26}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.5.1}The push operation}{27}} \newlabel{sec:push}{{3.5.1}{27}} \@writefile{toc}{\contentsline {subsubsection}{An example of a push operation}{27}} \newlabel{34@xvr}{{}{27}} \newlabel{34@vr}{{}{27}} \@writefile{lof}{\contentsline {figure}{\numberline {3.3}{\ignorespaces Before and after pushing 12345678\ensuremath {_{16}}\xspace onto the stack.}}{28}} \newlabel{fig:push}{{3.3}{28}} \newlabel{35@xvr}{{}{28}} \newlabel{35@vr}{{}{28}} \@writefile{toc}{\contentsline {subsubsection}{Using the \inst {movem} instruction to push many registers onto the stack}{28}} \newlabel{36@xvr}{{}{28}} \newlabel{36@vr}{{}{28}} \newlabel{37@xvr}{{}{29}} \newlabel{37@vr}{{}{29}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.5.2}The pop operation}{29}} \newlabel{sec:pop}{{3.5.2}{29}} \@writefile{toc}{\contentsline {subsubsection}{An example of a pop operation}{29}} \newlabel{38@xvr}{{}{29}} \newlabel{38@vr}{{}{29}} \newlabel{39@xvr}{{}{29}} \newlabel{39@vr}{{}{29}} \@writefile{toc}{\contentsline {subsubsection}{Using the \inst {movem} instruction to pop the stack into many registers}{29}} \@writefile{lof}{\contentsline {figure}{\numberline {3.4}{\ignorespaces Before and after popping the stack into the D0 register.}}{30}} \newlabel{fig:pop}{{3.4}{30}} \@writefile{toc}{\contentsline {section}{\numberline {3.6}Preserving registers: transparency}{30}} \newlabel{sec:transparency}{{3.6}{30}} \newlabel{40@xvr}{{}{31}} \newlabel{40@vr}{{}{31}} \@writefile{toc}{\contentsline {section}{\numberline {3.7}Subroutine calls, parameters and return values}{31}} \newlabel{sec:parameters}{{3.7}{31}} \newlabel{41@xvr}{{}{31}} \newlabel{41@vr}{{}{31}} \newlabel{42@xvr}{{}{31}} \newlabel{42@vr}{{}{31}} \@writefile{toc}{\contentsline {section}{\numberline {3.8}Subroutine calls and the stack}{31}} \newlabel{sec:subStack}{{3.8}{31}} \newlabel{43@xvr}{{}{32}} \newlabel{43@vr}{{}{32}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.8.1}The \texttt {bsr} and \texttt {jsr} instructions}{32}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.8.2}The \texttt {rts} instruction}{32}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.8.3}The subroutine must leave the stack as it found it}{33}} \@writefile{toc}{\contentsline {section}{\numberline {3.9}An example showing a subroutine call}{33}} \newlabel{sec:subCall}{{3.9}{33}} \@writefile{lof}{\contentsline {figure}{\numberline {3.5}{\ignorespaces The stack before and after the call to subroutine \texttt {sub1}.}}{33}} \newlabel{fig:stackCall}{{3.5}{33}} \newlabel{44@xvr}{{}{33}} \newlabel{44@vr}{{}{33}} \@writefile{toc}{\contentsline {section}{\numberline {3.10}The include file \texttt {flight.i}: using macros}{34}} \newlabel{sec:macros}{{3.10}{34}} \citation{horvath} \citation{antonakos} \newlabel{45@xvr}{{}{35}} \newlabel{45@vr}{{}{35}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.10.1}The \texttt {Init} macro}{35}} \newlabel{sec:initMacro}{{3.10.1}{35}} \newlabel{46@xvr}{{}{35}} \newlabel{46@vr}{{}{35}} \newlabel{47@xvr}{{}{35}} \newlabel{47@vr}{{}{35}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.10.2}The \texttt {Delay} macro}{36}} \newlabel{sec:delayMacro}{{3.10.2}{36}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.10.3}The \texttt {WriteSs} macro}{36}} \newlabel{sec:writeSsMacro}{{3.10.3}{36}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.10.4}The \texttt {Transl} macro}{36}} \newlabel{sec:translMacro}{{3.10.4}{36}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.10.5}The \texttt {ShowNum} macro}{37}} \newlabel{sec:showNumMacro}{{3.10.5}{37}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.10.6}The \texttt {WNKeyPr} macro}{37}} \newlabel{sec:wNKeyPrMacro}{{3.10.6}{37}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.10.7}The \texttt {WKeyPr} macro}{37}} \newlabel{sec:wKeyPrMacro}{{3.10.7}{37}} \newlabel{48@xvr}{{}{37}} \newlabel{48@vr}{{}{37}} \@writefile{toc}{\contentsline {section}{\numberline {3.11}The \texttt {trap} instruction and monitor routines}{37}} \newlabel{sec:trap}{{3.11}{37}} \newlabel{49@xvr}{{}{37}} \newlabel{49@vr}{{}{37}} \@writefile{toc}{\contentsline {chapter}{\numberline {4}Input and output}{39}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \newlabel{sec:i/o}{{4}{39}} \newlabel{sec:switches(a6)}{{4}{40}} \@writefile{toc}{\contentsline {section}{\numberline {4.1}I/O ports and the 68230 parallel interface/\penalty \z@ {}timer chip}{40}} \newlabel{sec:ioports}{{4.1}{40}} \newlabel{50@xvr}{{}{40}} \newlabel{50@vr}{{}{40}} \newlabel{51@xvr}{{}{40}} \newlabel{51@vr}{{}{40}} \newlabel{52@xvr}{{}{40}} \newlabel{52@vr}{{}{40}} \newlabel{53@xvr}{{}{40}} \newlabel{53@vr}{{}{40}} \newlabel{54@xvr}{{}{41}} \newlabel{54@vr}{{}{41}} \newlabel{55@xvr}{{}{41}} \newlabel{55@vr}{{}{41}} \newlabel{56@xvr}{{}{41}} \newlabel{56@vr}{{}{41}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.1.1}The interface card}{41}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.1.2}The 68230 parallel interface/\penalty \z@ {}timer chip}{41}} \newlabel{sec:68230}{{4.1.2}{41}} \citation{moto68230} \newlabel{57@xvr}{{}{42}} \newlabel{57@vr}{{}{42}} \newlabel{58@xvr}{{}{42}} \newlabel{58@vr}{{}{42}} \@writefile{lot}{\contentsline {table}{\numberline {4.1}{\ignorespaces The port addresses in the 68230 \acro {PI\Slash {}{}T}\xspace and their names}}{42}} \newlabel{tab:portAddr}{{4.1}{42}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.1.3}Register addresses in the 68230 \acro {PI\Slash {}{}T}\xspace on the \acro {FLIGHT-68K}\xspace }{42}} \newlabel{59@xvr}{{}{42}} \newlabel{59@vr}{{}{42}} \@writefile{toc}{\contentsline {paragraph}{The \acro {PI\Slash {}{}T}\xspace has many modes:}{42}} \newlabel{sec:submode1x}{{4.1.3}{42}} \@writefile{toc}{\contentsline {paragraph}{Submode 1X}{42}} \@writefile{lot}{\contentsline {table}{\numberline {4.2}{\ignorespaces The addresses of registers in the 68230 \acro {PI\Slash {}{}T}\xspace on the \acro {FLIGHT-68K}\xspace . All addresses and offsets are in hexadecimal.}}{43}} \newlabel{tab:registerAddr}{{4.2}{43}} \citation{moto68230} \newlabel{60@xvr}{{}{44}} \newlabel{60@vr}{{}{44}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.1.4}Initialising the \acro {PI\Slash {}{}T}\xspace for bit \IO }{44}} \newlabel{sec:initPitForBitIO}{{4.1.4}{44}} \newlabel{61@xvr}{{}{44}} \newlabel{61@vr}{{}{44}} \@writefile{lot}{\contentsline {table}{\numberline {4.3}{\ignorespaces The values to be written into individual bits of the port\nobreakspace {}A control register (\inst {PACR}) and the port\nobreakspace {}B control register (\inst {PBDR}) to put these ports into submode\nobreakspace {}1X.}}{44}} \newlabel{tab:submode1x}{{4.3}{44}} \@writefile{toc}{\contentsline {paragraph}{What does it all mean?}{45}} \newlabel{62@xvr}{{}{45}} \newlabel{62@vr}{{}{45}} \@writefile{toc}{\contentsline {subsubsection}{Choosing inputs and outputs: the data direction registers}{45}} \newlabel{sec:ddr}{{4.1.4}{45}} \@writefile{toc}{\contentsline {subsubsection}{Initialising the \acro {PI\Slash {}{}T}\xspace for bit \IO : a summary}{46}} \newlabel{63@xvr}{{}{46}} \newlabel{63@vr}{{}{46}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.1.5}How the interface card is connected to the parallel chip}{46}} \@writefile{lof}{\contentsline {figure}{\numberline {4.1}{\ignorespaces The two settings for the jumper on the interface board}}{46}} \newlabel{fig:jump}{{4.1}{46}} \@writefile{toc}{\contentsline {section}{\numberline {4.2}The keypad}{47}} \@writefile{lof}{\contentsline {figure}{\numberline {4.2}{\ignorespaces The connection of the keypad to the 68230 parallel interface/\penalty \z@ {}timer chip}}{47}} \newlabel{fig:keypad}{{4.2}{47}} \newlabel{64@xvr}{{}{47}} \newlabel{64@vr}{{}{47}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.2.1}Scanning the keypad}{48}} \@writefile{toc}{\contentsline {subsubsection}{The method}{48}} \newlabel{sec:readKeyExplain}{{4.2.1}{48}} \newlabel{65@xvr}{{}{48}} \newlabel{65@vr}{{}{48}} \newlabel{pag:readkey}{{4.2.1}{49}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.2.2}Debouncing the keys}{50}} \newlabel{sec:debouncing}{{4.2.2}{50}} \newlabel{66@xvr}{{}{50}} \newlabel{66@vr}{{}{50}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.2.3}How to detect if any key has been pressed}{51}} \newlabel{sec:keyPressed}{{4.2.3}{51}} \newlabel{qes:rowtest}{{4.4}{51}} \@writefile{toc}{\contentsline {chapter}{\numberline {A}Editing, assembling, downloading and running}{52}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \newlabel{sec:genProc}{{A}{52}} \@writefile{toc}{\contentsline {section}{\numberline {A.1}The program design}{52}} \@writefile{toc}{\contentsline {section}{\numberline {A.2}The general procedure for editing, assembling, downloading and running an assembly language program}{52}} \newlabel{67@xvr}{{}{53}} \newlabel{67@vr}{{}{53}} \@writefile{toc}{\contentsline {section}{\numberline {A.3}Editing the program}{53}} \newlabel{sec:editing}{{A.3}{53}} \newlabel{68@xvr}{{}{53}} \newlabel{68@vr}{{}{53}} \@writefile{toc}{\contentsline {section}{\numberline {A.4}Assembling the program}{54}} \newlabel{sec:assembling}{{A.4}{54}} \@writefile{toc}{\contentsline {section}{\numberline {A.5}Downloading your program}{54}} \newlabel{sec:downloading}{{A.5}{54}} \newlabel{pag:monitor}{{3}{55}} \newlabel{69@xvr}{{}{55}} \newlabel{69@vr}{{}{55}} \@writefile{toc}{\contentsline {section}{\numberline {A.6}Running the program}{55}} \citation{livadas} \@writefile{toc}{\contentsline {chapter}{\numberline {B}Using the {\sffamily sim68k}\xspace simulator and {\sffamily asm68k}\xspace assembler at home}{57}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \newlabel{chp:sim}{{B}{57}} \@writefile{toc}{\contentsline {section}{\numberline {B.1}What is a simulator?}{57}} \@writefile{toc}{\contentsline {section}{\numberline {B.2}The {\sffamily sim68k}\xspace simulator}{57}} \@writefile{toc}{\contentsline {subsection}{\numberline {B.2.1}The Simulator}{58}} \@writefile{toc}{\contentsline {subsection}{\numberline {B.2.2}The Memory Map of the \acro {ECB}\xspace (and {\sffamily sim68k}\xspace )}{58}} \@writefile{toc}{\contentsline {subsection}{\numberline {B.2.3}{\sffamily sim68k}\xspace firmware commands}{58}} \@writefile{toc}{\contentsline {subsection}{\numberline {B.2.4}Getting started}{59}} \@writefile{toc}{\contentsline {subsection}{\numberline {B.2.5}List of firmware commands}{59}} \newlabel{70@xvr}{{}{59}} \newlabel{70@vr}{{}{59}} \@writefile{toc}{\contentsline {subsection}{\numberline {B.2.6}Monitor software interrupts}{59}} \@writefile{lot}{\contentsline {table}{\numberline {B.1}{\ignorespaces A list of commands recognised by {\sffamily sim68k}\xspace . These are compatible with the Motorola Tutor firmware commands.}}{60}} \newlabel{tab:commands}{{B.1}{60}} \@writefile{toc}{\contentsline {subsection}{\numberline {B.2.7}Use the correct simulator and assembler}{61}} \@writefile{toc}{\contentsline {section}{\numberline {B.3}Using {\sffamily asm68k}\xspace }{61}} \@writefile{toc}{\contentsline {section}{\numberline {B.4}A Tutorial example using {\sffamily asm68k}\xspace and {\sffamily sim68k}\xspace }{62}} \newlabel{sec:simTut}{{B.4}{62}} \newlabel{itm:seeMem}{{8}{63}} \@writefile{toc}{\contentsline {section}{\numberline {B.5}How to obtain the simulator {\sffamily sim68k}\xspace and assembler {\sffamily asm68k}\xspace }{63}} \newlabel{sec:simkObtain}{{B.5}{63}} \bibstyle{is-alpha} \bibdata{mc68k} \bibcite{antonakos}{Ant93} \bibcite{flight}{{Fli}88} \bibcite{horvath}{Hor92} \bibcite{leventhal}{LHKC86} \bibcite{livadas}{LW93} \bibcite{moto68230}{Mot83} \bibcite{motoProgRef}{Mot92} \@writefile{toc}{\contentsline {chapter}{References}{65}} \@writefile{toc}{\contentsline {chapter}{Index}{66}} \newlabel{LastPage}{{}{70}}