*** empty log message ***
[h316.git] / docs / manual / assembler.tex
1 \chapter{DAP-16 Assembler}
2
3 \section{Quelltextformat}
4 Das meiste Kopfzerbrechen, das mir die Benutzung des Assemblers beschert hat, rührte
5 daher, daß ich das Quelltextformat nicht komplett begriffen hatte.\\
6 Deswegen möchte ich hier die beiden zulässigen Formate genau beschreiben.
7 \subsection{Festformat}
8
9 Alles stammt von der Lochkarte ab. Das ist ein immer wieder wichtiger Merksatz.\\
10 Im Festformat besteht jede Zeile aus exakt 72 (?) Zeichen, gefolgt von einem \verb:<LF>:
11 (ASCII 10) Zeichen.
12 Ein dem \verb:<LF>: vorangestelltes \verb:<CR>: wird geduldet, ist aber unnötig.
13 Dabei gilt die folgende Zeileneinteilung:\\
14 \begin{center}
15 \begin{tabular}{r|p{4em}|p{0.1cm}|l|l|l|l }
16 Position: & 1-4 & & 6-10 & & 12-30 & 30-72 \\ \hline
17 Aufgabe: & Marke & & Befehl & & Argumente & Kommentar \\
18 \end{tabular}
19 \end{center}
20 \vspace{1em}
21 Beispiel:
22 \begin{verbatim}
23 STRT LDA OP1 DIES IST EINE ASSEMBLERZEILE
24 \end{verbatim}
25
26 \subsection{Tabulatorformat}
27 Das Tabulatorformat wurde eingeführt, um bei Benutzung von Lochstreifen nicht immer jede Zeile
28 komplett vollschreiben bzw. mit Leerzeichen auffüllen zu müssen. Als Tabulatorzeichen wird der
29 Backslash (\verb:\:) benutzt. Mit dem Backslash kann man zum nächsten Feld springen, sich also
30 die Leerzeichen und die Zählerei sparen. Allerdings sieht eine auf dem ASR geschriebene Codezeile
31 im Tabulatorformat nicht sehr übersichtlich aus.\\
32 Hier das Beispiel von oben im Tabulatorformat:
33 \begin{verbatim}
34 STRT\LDA\OP1\DIES IST EINE ASSEMBLERZEILE
35 \end{verbatim}
36 Wenn Felder leer bleiben sollen, z.B. das Markenfeld am Anfang, muß trotzdem der entsprechende
37 Backslash eingefügt werden:
38 \begin{verbatim}
39 \ICA\\ZEILE OHNE MARKE UND OPERAND
40 \end{verbatim}
41
42 \subsection{Quelltexte aus dem PC}
43 Wenn man DAP-16-Quelltext auf dem PC schreibt, bietet es sich an, echte \verb:<TAB>:-Zeichen zu
44 benutzen und diese dann kurz vor der Benutzung automatisiert in Backslashes umzuwandeln.\\
45 Wichtig ist auch, daß der Assembler (der FORTRAN IV Compiler auch!)
46 alle Eingangsdaten als 7 bit ASCII plus gesetztem achtem Bit erwartet.
47 Andere Zeichen werden ignoriert!!\\
48 Dafür braucht man ein kleines Filterprogramm.
49
50 \section{Assemblieren}
51 \begin{enumerate}
52 \item Assembler in den Kernspeicher laden.
53 \item A-Register mit Einstellungen füllen.
54 \item Quelltext in Lochstreifenleser einlegen.
55 \item \verb:START: am Computer drücken, warten.
56 \item nach dem ersten Durchlauf Band wieder einlegen, wieder \verb:START: drücken.
57 \end{enumerate}
58 \vspace{0.5cm}
59 Einstellungen im A-Register:
60 \begin{verbatim}
61 Bit 1: Immer setzen für 2-pass-Assemblierung
62
63 Auswahl der Quelle für den Quelltext:
64 Bit 2: Teletype
65 Bit 3: Lochstreifenleser
66
67 Auswahl des Ziels für Objektdaten:
68 Bit 7: Teletype
69 Bit 8: Locher
70 Bit 11: Keinen Objektcode ausgeben
71
72 Auswahl des Ziels für das Listing:
73 Bit 12: Teletype
74 Bit 13: Locher
75 Bit 15: Zeilendrucker
76 Bit 16: Kein Listing
77 \end{verbatim}