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