%& latex
\documentstyle{article}
\def\undertext#1{$\underline{\smash{\hbox{#1}}}$}
\def\mainheading#1{\undertext{\bf{#1}}}
\def\abbr{{\em abbr.\ }}
\def\see {{\em See\/}\ }
\font\bigtenbf=cmr10 scaled\magstep2
\hoffset = -1cm	
\voffset = -4cm				% use +1cm for the vax	
\vsize = 26cm
\pagegoal = 25cm
\parindent = 0mm				% disable paragraph indenting
\parskip = 3pt plus2pt minus.5pt		% paragraph break
\def\abbr{{\em abbr.}\ }
\def\see {{\em See\/}\ }
\def\mod{{\thinspace\rm mod\thinspace}}

\title{Dictionary of the Amiga}
\author{Sean A. Irvine}
\date{14 August 1993}
\textwidth 160mm
\textheight 260mm

\begin{document}
\def\aB{Amiga BASIC }
\def\acf{ANSI C function }
\def\scf{SAS C function }
\def\ANSIcs{ANSI control sequence}
\def\Appendix#1#2{\centerline{\undertext{\sl Appendix {#1} -- {#2}}}}
\tolerance=10000
\hbadness=4000


\Appendix 1 {Recommended Key Actions}
\begin{tabular}{ll}
$<$AMIGA$> <$CURDOWN$>$&simulate mouse movement, in the down direction\\
$<$AMIGA$> <$CURLEFT$>$&simulate mouse movement, in the left direction\\
$<$AMIGA$> <$CURRIGHT$>$&simulate mouse movement, in the right direction\\
$<$AMIGA$> <$CURUP$>$&simulate mouse movement, in the up direction\\
$<$LAMIGA$> <$LALT$>$&simulate a press of the left mouse button\\
$<$RAMIGA$> <$RALT$>$&simulate a press of the right mouse button\\
\\
$<$LAMIGA$> <$N$>$&bring the Workbench screen to the front\\
$<$LAMIGA$> <$M$>$&push the Workbench screen to the back\\
$<$LAMIGA$> <$B$>$&give a positive response to an automatic requester\\
$<$LAMIGA$> <$V$>$&give a negative response to an automatic requester\\
\\
$<$LAMIGA$> <$I$>$&select a small piece to the right of the cursor\\
$<$LAMIGA$> <$J$>$&select a small piece to the left of the cursor\\
$<$LAMIGA$> <$O$>$&select a medium piece to the right of the cursor\\
$<$LAMIGA$> <$K$>$&select a medium piece to the left of the cursor\\
$<$LAMIGA$> <$P$>$&select a large piece to the right of the cursor\\
$<$LAMIGA$> <$L$>$&select a large piece to the left of the cursor\\
\\
$<$RAMIGA$> <$X$>$&cut function\\
$<$RAMIGA$> <$C$>$&copy function\\
$<$RAMIGA$> <$V$>$&paste function (this is sometimes $<$RAMIGA$> <$I$>$)\\
$<$RAMIGA$> <$Z$>$&undo function\\
\\
$<$RAMIGA$> <$I$>$&select/unselect italics\\
$<$RAMIGA$> <$B$>$&select/unselect bold\\
$<$RAMIGA$> <$U$>$&select/unselect underline\\
$<$RAMIGA$> <$P$>$&reset to plain characters\\
\\
$<$RAMIGA$> <$O$>$&open operation\\
$<$RAMIGA$> <$S$>$&save operation (this is sometimes $<$RAMIGA$> <$W$>$)\\
$<$RAMIGA$> <$Q$>$&quit operation
\end{tabular}
\newpage
\Appendix 2 {680x0 Exception Vector Allocation}
\begin{tabular}{lll}
{\em Number}&{\em Relative Address}&{\em Function}\\
\hline
0&0&Reset: Initial supervisor stack pointer\\
1&4&Reset: Initial PC (program counter)\\
2&8&Bus error\\
3&C&Address error\\
4&10&Illegal instruction\\
5&14&Division by zero\\
6&18&CHECK instruction\\
7&1C&TRAPV instruction\\
8&20&Priviledge violation\\
9&24&Trace exception\\
10&28&Unimplemented instruction (1010)\\
11&2C&Unimplemented instruction (1111)\\
12-23&30-56&Unassigned, reserved for future use\\
24&60&Spurious interrupt\\
25&64&Level 1 interrupt auto-vector\\
26&68&Level 2 interrupt auto-vector\\
27&6C&Level 3 interrupt auto-vector\\
28&70&Level 4 interrupt auto-vector\\
29&74&Level 5 interrupt auto-vector\\
30&78&Level 6 interrupt auto-vector\\
31&7C&Level 7 interrupt auto-vector\\
32&80&TRAP \&0 instruction\\
$\vdots$&$\vdots$&$\vdots$\\
47&BC&TRAP \&F instruction\\
48-63&C0-FC&Unassigned, reserved for future use\\
64-255&100-3FC&User interrupt vectors
\end{tabular}
\newpage
\Appendix 3 {Special Key Report Sequences}
\begin{tabular}{lll}
{\em Key}&{\em Unshifted sends}&{\em Shifted sends}\\
\hline
$<$F1$>$&$<$CSI$> <$0$> <$\~\ $>$&$<$CSI$> <$1$> <$0$> <$\~\ $>$\\
$<$F2$>$&$<$CSI$> <$1$> <$\~\ $>$&$<$CSI$> <$1$> <$1$> <$\~\ $>$\\
$<$F3$>$&$<$CSI$> <$2$> <$\~\ $>$&$<$CSI$> <$1$> <$2$> <$\~\ $>$\\
$<$F4$>$&$<$CSI$> <$3$> <$\~\ $>$&$<$CSI$> <$1$> <$3$> <$\~\ $>$\\
$<$F5$>$&$<$CSI$> <$4$> <$\~\ $>$&$<$CSI$> <$1$> <$4$> <$\~\ $>$\\
$<$F6$>$&$<$CSI$> <$5$> <$\~\ $>$&$<$CSI$> <$1$> <$5$> <$\~\ $>$\\
$<$F7$>$&$<$CSI$> <$6$> <$\~\ $>$&$<$CSI$> <$1$> <$6$> <$\~\ $>$\\
$<$F8$>$&$<$CSI$> <$7$> <$\~\ $>$&$<$CSI$> <$1$> <$7$> <$\~\ $>$\\
$<$F9$>$&$<$CSI$> <$8$> <$\~\ $>$&$<$CSI$> <$1$> <$8$> <$\~\ $>$\\
$<$F10$>$&$<$CSI$> <$9$> <$\~\ $>$&$<$CSI$> <$1$> <$9$> <$\~\ $>$\\
$<$HELP$>$&$<$CSI$> <$?$> <$\~\ $>$&$<$CSI$> <$?$> <$~$>$\\
$<$CUP$>$&$<$CSI$> <$A$>$&$<$CSI$> <$T$>$\\
$<$CDOWN$>$&$<$CSI$> <$B$>$&$<$CSI$> <$S$>$\\
$<$CLEFT$>$&$<$CSI$> <$D$>$&$<$CSI$> <$ $> <$A$>$\\
$<$CRIGHT$>$&$<$CSI$> <$C$>$&$<$CSI$> <$ $> <$@$>$
\end{tabular}
\newpage
\Appendix 4 {Raw Input Event Types}
\begin{tabular}{ll}
{\em Request Number}&{\em Description}\\
\hline
0&No operation - used internally\\
1&RAW keyboard input\\
2&RAW mouse input - Intution only passes select button\\
3&Event - sent when window is activated\\
4&Pointer position\\
5&(not used)\\
6&Timer\\
7&Gadget pressed\\
8&Gadget released\\
9&Requester activity\\
10&Menu numbers\\
11&Close gadget\\
12&Window resized\\
13&Window refreshed\\
14&Preferences changed\\
15&Disk removed\\
16&Disk inserted
\end{tabular}
\newpage
\Appendix 5 {Input Event Qualifiers}
\begin{tabular}{lll}
{\em Bit}&{\em Mask}&{\em Activator}\\
\hline
0&0001&Left shift key\\
1&0002&Right shift key\\
2&0004&Caps lock key\\
3&0008&Control key\\
4&0010&Left Alt key\\
5&0020&Right Alt key\\
6&0040&Left Amiga key\\
7&0080&Right Amiga key\\
8&0100&Numeric keypad\\
9&0200&Repeat\\
10&0400&Interrupt (not currently used)\\
11&0800&Multi-broadcast (this window, or all windows)\\
12&1000&Left mouse button\\
13&2000&Right mouse button\\
14&4000&Middle mouse button (not normally available)\\
15&8000&Relative mouse (indicates relative mouse coordinates)
\end{tabular}
\newpage
\Appendix 6 {ROM Default (USA0) and USA1 Console Key Mapping}
\begin{tabular}{llll}
{\em Raw Code}&{\em Legend}&{\em Unshifted}&{\em Shifted}\\
\hline
00&`\~\ &` (grave accent)&\~\ \ (tilde)\\
01&1!&1&!\\
02&2@&2&@\\
03&3\#&3&\#\\
04&4\$&4&\$\\
05&5\%&5&\%\\
06&6\^{ }&6&\^{ }\\
07&7\&&7&\&\\
08&8*&8&*\\
09&9(&9&(\\
0A&0)&0&)\\
0B&-\_&- (hyphen)&\_ (underscore)\\
0C&=$+$&=&$+$\\
0D&$\backslash$$|$&$\backslash$&$|$\\
0E&--- undefined ---\\
0F&0&0&0 (numeric pad)\\
10&Q&q&Q\\
11&W&w&W\\
12&E&e&E\\
13&R&r&R\\
14&T&t&T\\
15&Y&y&Y\\
16&U&u&U\\
17&I&i&I\\
18&O&o&O\\
19&P&p&P\\
1A&$[\{$&$[$&$\{$\\
1B&$]\}$&$]$&$\}$\\
1C&--- undefined ---\\
1D&1&1&1 (numeric pad)\\
1E&2&2&2 (numeric pad)\\
1F&3&3&3 (numeric pad)\\
20&A&a&A\\
21&S&s&S\\
22&D&d&D\\
23&F&f&F\\
24&G&g&G\\
25&H&h&H\\
26&J&j&J\\
27&K&k&K\\
28&L&l&L\\
29&;:&;&:\\
2A&'\ {\tt "}&'&{\tt "}\\
2B&--- not on US keyboards ---\\
2C&--- undefined ---\\
2D&4&4&4 (numeric pad)\\
2E&5&5&5 (numeric pad)\\
2F&6&6&6 (numeric pad)\\
30&--- not on US keyboards ---\\
31&Z&z&Z\\
32&X&x&X\\
33&C&c&C\\
34&V&v&V\\
35&B&b&B\\
36&N&n&N\\
37&M&m&M\\
38&,$<$&, (comma)&$<$\\
39&.$>$&. (period)&$>$
\end{tabular}
\newpage
\begin{tabular}{llll}
40&space&0x20&0x20\\
41&bk space&0x08&0x08\\
42&tab&0x09&0x09\\
43&Enter&0x0D&0x0D (numeric pad)\\
44&return&0x0D&0x0D\\
45&Esc&0x1B&0x1B\\
46&Del&0x7F&0x7F\\
47&--- undefined ---\\
48&--- undefined ---\\
49&--- undefined ---\\
4A&-&-&- (numeric pad)\\
4B&--- undefined ---\\
4C&cursor up&$<$CSI$> <$A$>$&$<$CSI$> <$T$>$\\
4D&cursor down&$<$CSI$> <$B$>$&$<$CSI$> <$S$>$\\
4E&cursor right&$<$CSI$> <$C$>$&$<$CSI$> <$\ $> <$A$>$\\
4F&cursor left&$<$CSI$> <$D$>$&$<$CSI$> <$\ $> <$@$>$\\
50&$<$F1$>$&$<$CSI$> <$0$> <$\~\ $>$&$<$CSI$> <$1$> <$0$> <$\~\ $>$\\
51&$<$F2$>$&$<$CSI$> <$1$> <$\~\ $>$&$<$CSI$> <$1$> <$1$> <$\~\ $>$\\
52&$<$F3$>$&$<$CSI$> <$2$> <$\~\ $>$&$<$CSI$> <$1$> <$2$> <$\~\ $>$\\
53&$<$F4$>$&$<$CSI$> <$3$> <$\~\ $>$&$<$CSI$> <$1$> <$3$> <$\~\ $>$\\
54&$<$F5$>$&$<$CSI$> <$4$> <$\~\ $>$&$<$CSI$> <$1$> <$4$> <$\~\ $>$\\
55&$<$F6$>$&$<$CSI$> <$5$> <$\~\ $>$&$<$CSI$> <$1$> <$5$> <$\~\ $>$\\
56&$<$F7$>$&$<$CSI$> <$6$> <$\~\ $>$&$<$CSI$> <$1$> <$6$> <$\~\ $>$\\
57&$<$F8$>$&$<$CSI$> <$7$> <$\~\ $>$&$<$CSI$> <$1$> <$7$> <$\~\ $>$\\
58&$<$F9$>$&$<$CSI$> <$8$> <$\~\ $>$&$<$CSI$> <$1$> <$8$> <$\~\ $>$\\
59&$<$F10$>$&$<$CSI$> <$9$> <$\~\ $>$&$<$CSI$> <$1$> <$9$> <$\~\ $>$\\
5A&(&(&( (usa1 numeric pad)\\
5B&)&)&) (usa1 numeric pad)\\
5C&/&/&/ (usa1 numeric pad)\\
5D&$*$&$*$&$*$ (usa1 numeric pad)\\
5E&$+$&$+$&$+$ (usa1 numeric pad)\\
5F&$<$HELP$>$&$<$CSI$> <$?$> <$\~\ $>$&$<$CSI$> <$?$> <$\~\ $>$\\
60&left shift\\
61&right shift\\
62&Caps Lock\\
63&Ctrl\\
64&left Alt\\
65&right Alt\\
66&left {\em A}\\
67&right {\em A}\\
68&left mouse button\\
69&right mouse button\\
6A&middle mouse button\\
6B&--- undefined ---\\
6C&--- undefined ---\\
6D&--- undefined ---\\
6E&--- undefined ---\\
6F&--- undefined ---\\
70-7F&--- undefined ---\\
80-F8&up transition (0x80 $+$ above keycode)\\
F9&last keycode was bad (resynchronize here)\\
FA&keyboard buffer overflow\\
FB&--- undefined ---\\
FC&keyboard selftest failed\\
FD&delimit keys pressed at power-up\\
FE&power-up stream end\\
FF&mouse movement event, no button pressed
\end{tabular}

Note:

``undefined'' indicates that the current keyboard design should not generate this number. SetKeyMap requires that entries are made for these values however.
\newpage
\Appendix 7 {Phoneme Translation Table}
\begin{tabular}{llllllll}
{\em IPA}&{\em ARPABET1}&{\em ARPABET2}&{\em Example}&{\em IPA}&{\em ARPABET1}&{\em ARPABET2}&{\em Example}\\
\hline
i&i&IY&b{\bf ee}t, {\bf ea}t&p&p&P&{\bf p}ut\\
I&I&IH&b{\bf i}t, {\bf i}n&t&t&T&{\bf t}oy\\
e&e&EY&b{\bf a}y, {\bf a}id&k&k&K&{\bf C}ommodore\\
›A&AH&b{\bf u}t, {\bf u}p&h&h&/H&{\bf h}ole\\
&c&AO&b{\bf a}ll, {\bf a}wl&f&f&F&{\bf f}ed\\
o&o&OW&b{\bf oa}t, {\bf ow}n&›ab M&EM&{not supported}\\
l&l&L&{\bf l}ong&   syl n&N&EN&{not supported}\\
m&m&M&{\bf m}en&     &F&DX&pi{\bf t}y (tongue flap)\\
n&n&N&{\bf n}o&Q&Q&kitt{\bf -}en (glottal stop)\\
h&G&NX&si{\bf ng}&&&QX&paus{\bf e} (silent vowel)
\end{tabular}
\newpage
\Appendix 8 {Printer Control Sequences}
\begin{tabular}{llll}
Code&Name&Escape Sequence&Function\\
\hline
0&aRIS&ESCc&Hard reset\\
1&aRIN&ESC\#1&Initialize to defaults\\
2&aIND&ESCD&True linefeed\\
3&aNEL&ESCE&Return linefeed\\
4&aRI&ESCM&Reverse linefeed\\
5&aSGR0&ESC[0m&Normal character set\\
6&aSGR3&ESC[3m&Italics on\\
7&aSGR23&ESC[23m&Italics off\\
8&aSGR4&ESC[4m&Underline on\\
9&aSGR24&ESC[24m&Underline off\\
10&aSGR1&ESC[1m&Boldface on\\
11&aSGR22&ESC[22m&Boldface off\\
12&aSFC&SGR30--39&Set foreground colour\\
13&aSBC&SGR40--49&Set background colour\\
14&aSHORP0&ESC[0w&Normal pitch\\
15&aSHORP2&ESC[2w&Elite on\\
16&aSHORP1&ESC[1w&Elite off\\
17&aSHORP4&ESC[4w&Condensed fine on\\
18&aSHORP3&ESC[3w&Condensed fine off\\
19&aSHORP6&ESC[6w&Enlarged on\\
20&aSHORP5&ESC[5w&Enlarged off\\
21&aDEN6&ESC[6{\tt "}z&Shadow print on\\
22&aDEN5&ESC[5{\tt "}z&Shadow print off\\
23&aDEN4&ESC[4{\tt "}z&Doublestrike on\\
24&aDEN3&ESC[3{\tt "}z&Doublestrike off\\
25&aDEN2&ESC[2{\tt "}z&Near-letter-quality on\\
26&aDEN1&ESC[1{\tt "}z&Near-letter-quality off\\
27&aSUS2&ESC[2v&Superscript on\\
28&aSUS1&ESC[1v&Superscript off\\
29&aSUS4&ESC[4v&Subscript on\\
30&aSUS3&ESC[3v&Subscript off\\
31&aSUS0&ESC[0v&Normalize the line\\
32&aPLU&ESCL&Partial line up\\
33&aPLD&ESCK&Partial line down\\
34&aFNT0&ESC(B&US character set\\
35&aFNT1&ESC(R&French character set\\
36&aFNT2&ESC(K&German character set\\
37&aFNT3&ESC(A&UK character set\\
38&aFNT4&ESC(E&Danish I character set\\
39&aFNT5&ESC(H&Swedish character set\\
40&aFNT6&ESC(Y&Italian character set\\
41&aFNT7&ESC(Z&Spanish character set\\
42&aFNT8&ESC(J&Japanese character set\\
43&aFNT9&ESC(6&Norwegian character set\\
44&aFNT10&ESC(C&Danish II character set\\
45&aPROP2&ESC[2p&Proportional on
\end{tabular}
\newpage
\begin{tabular}{llll}
Code&Name&Escape Sequence&Function\\
\hline
46&aPROP1&ESC[1p&Proportional off\\
47&aPROP0&ESC[0p&Proportional clear\\
48&aTSS&ESC[$N$ E&Set proportional offset\\
49&aJFY5&ESC[5 F&Automatic left justify\\
50&aJFY7&ESC[7 F&Automatic right justify\\
51&aJFY6&ESC[6 F&Automatic full justify\\
52&aJFY0&ESC[0 F&Automatic justify off\\
53&aJFY3&ESC[3 F&Letter space (justify)\\
54&aJFY1&ESC[1 F&Word fill (automatic centre)\\
55&aVERP0&ESC[0z&1/8{\tt "} line spacing\\
56&aVERP1&ESC[1z&1/6{\tt "} line spacing\\
57&aSLPP&ESC[$N$t&Set form length\\
58&aPERF&ESC[$N$q&Perforation skip\\
59&aPERF0&ESC[0q&Perforation skip off\\
60&aLMS&ESC\#9&Left margin set\\
61&aRMS&ESC\#0&Right margin set\\
62&aTMS&ESC\#8&Top margin set\\
63&aBMS&ESC\#2&Bottom margin set\\
64&aSTBM&ESC[$N$;$N$r&Top and bottom margins\\
65&aSLRM&ESC[$N$;$N$s&Left and right margins\\
66&aCAM&ESC\#3&Clear all margins\\
67&aHTS&ESCH&Horizontal tabulation set\\
68&aVTS&ESCJ&Vertical tabulation set\\
69&aTBC0&ESC[0g&Clear horizontal tab\\
70&aTBC3&ESC[3g&Clear all horizontal tabs\\
71&aTBC1&ESC[1g&Clear vertical tab\\
72&aTBC4&ESC[4g&Clear all vertical tabs\\
73&aTBCALL&ESC\#4&Clear all vertical and horizontal tabs\\
74&aTBSALL&ESC\#5&Set default tabs\\
75&aEXTEND&ESC[$N${\tt "}x&Extended commands\\
76&aRAW&ESC[$N${\tt "}r&Next $N$ characters are raw
\end{tabular}
\newpage
\Appendix 9 {Bit Fields of the io\_Status Field of IOExtSer}
\begin{tabular}{llll}
{\em Bit}&{\em Active}&{\em Symbol}&{\em Function}\\
\hline
0&-&Reserved\\
1&-&Reserved\\
2&high&(RI)&parallel ``select'' on the A1000. On the A500 \&\\
&&&A2000, ``select'' is also connected to the\\
&&&serial port's ``Ring Indicator.''\\
3&low&(DSR)&data set ready\\
4&low&(CTS)&clear to send\\
5&low&(CD)&carrier detect\\
6&low&(RTS)&ready to send\\
7&low&(DTR)&data terminal ready\\
8&high&read overrun\\
9&high&break sent\\
10&high&break recieved\\
11&high&transmit X-OFFed\\
12&high&recieve X-OFFed\\
13&-&Reserved\\
14&-&Reserved\\
15&-&Reserved
\end{tabular}
\newpage
\Appendix 9 {C access command mode options}
\begin{tabular}{ll}
{\em Code}&{\em Meaning}\\
\hline
0&check if file exists\\
1&check if file is executable\\
2&check if file is writeable\\
3&check if file is writeable and executable\\
4&check if file is readable\\
5&check if file is readable and executable\\
6&check if file is readable and writeable\\
7&check if file is readable, writeable and executable
\end{tabular}
\newpage
\Appendix {10}{UNIX C error codes}
\begin{tabular}{lll}
{\em Symbol}&{\em Code}&{\em Meaning}\\
\hline
EOSERR&-1&Operating system error\\
EPERM&01&User is not owner\\
ENOENT&02&No such file or directory\\
ESRCH&03&No such process\\
EINTR&04&Interrupted system call\\
EIO&05&I/O error\\
ENXIO&06&No such device or address\\
E2BIG&07&Argument list is too long\\
ENOEXEC&08&Executive format error\\
EBADF&09&Bad file number\\
ECHILD&10&No child process\\
EAGAIN&11&No more processes allowed\\
ENOMEM&12&No memory available\\
EACCESS&13&Access denied\\
EFAULT&14&Bad address\\
ENOTBLK&15&Bulk device required\\
EBUSY&16&Resource is busy\\
EEXIST&17&File already exists\\
EXDEV&18&Cross-device link\\
ENODEV&19&No such device\\
ENOTDIR&20&Is not a directory\\
EISDIR&21&Is a directory\\
EINVAL&22&Invalid argument\\
ENFILE&23&No more files (system)\\
EMFILE&24&No more files (process)\\
ENOTTY&25&Not a terminal\\
ETXTBSY&26&Text file is busy\\
EFBIG&27&File is too large\\
ENOSPC&28&No space left\\
ESPIPE&29&Seek issued to pipe\\
EROFS&30&Read-only file system\\
EMLINK&31&Too many links\\
EPIPE&32&Broken pipe\\
EDOM&33&Math function argument error\\
ERANGE&34&Math function result is out of range
\end{tabular}
\newpage
\Appendix {11} {C file modes and allowable activities}
\begin{tabular}{lllllll}
{\em Mode}&{\em Create}&{\em Trunc}&{\em Read}&{\em Write}&{\em Apend}&{\em Translate}\\
\hline
r&N&N&Y&N&N&Default\\
w&Y&Y&N&Y&N&Default\\
a&Y&N&N&N&Y&Default\\
r$+$&N&N&Y&Y&N&Default\\
w$+$&Y&N&Y&Y&N&Default\\
a$+$&Y&N&Y&N&Y&Default\\
ra&N&N&Y&N&Y&Mode A\\
wa&Y&Y&N&Y&N&Mode A\\
aa&Y&N&N&N&Y&Mode A\\
ra$+$&N&N&Y&Y&N&Mode A\\
wa$+$&Y&N&Y&Y&N&Mode A\\
aa$+$&Y&N&Y&N&Y&Mode A\\
rb&N&N&Y&N&N&Mode B\\
wb&Y&Y&N&Y&N&Mode B\\
ab&Y&N&N&N&Y&Mode B\\
rb$+$&N&N&Y&Y&N&Mode B\\
wb$+$&Y&N&Y&Y&N&Mode B\\
ab$+$&Y&N&Y&N&Y&Mode B
\end{tabular}
\newpage
\Appendix {12}{st\_mode flags}

\begin{tabular}{ll}
{\em Symbol}&{\em Meaning}\\
\hline
S\_IFMT&type of file\\
S\_IFDIR&directory\\
S\_IFREG&regular file\\
S\_ISCRIPT&is a script\\
S\_IPURE&executable\\
S\_IARCHIVE&archive file\\
S\_IREAD&read permission\\
S\_IWRITE&write permission\\
S\_IEXECUTE&execute permission\\
S\_IDELETE&delete permission
\end{tabular}
\newpage
\Appendix {13} {Table of Constants}

This appendix list the logical names of many Amiga constants and their actual values. Of course, when programming you should normally ever only use the logical names. Most of the entries included here are detailed in the main listing. Binary numbers are prefixed by \%, hexadecimal numbers by 0x, all other numbers are decimal.

\begin{tabular}{lll}
{\em Logical Name}&{\em Value}&{\em Comments}\\
\hline
ABC&\%10000000\\
aBMS&63\\
ABNC&\%01000000\\
aCAM&66\\
ACCESS\_READ&$-2$\\
ACCESS\_WRITE&$-1$\\
ACTION\_COPY\_DIR&19\\
ACTION\_CREATE\_DIR&22\\
ACTION\_CURRENT\_VOLUME&7\\
ACTION\_DELETE\_OBJECT&16\\
ACTION\_DIE&5\\
ACTION\_DISK\_CHANGE&33\\
ACTION\_DISK\_INFO&25\\
ACTION\_DISK\_TYPE&32\\
ACTION\_EVENT&6\\
ACTION\_EXAMINE\_NEXT&24\\
ACTION\_EXAMINE\_OBJECT&23\\
ACTION\_FREE\_LOCK&15\\
ACTION\_GET\_BLOCK&2\\
ACTION\_INFO&26\\
ACTION\_INHIBIT&31\\
ACTION\_LOCATE\_OBJECT&8\\
ACTION\_NIL&0\\
ACTION\_PARENT&29\\
ACTION\_READ&`R'\\
ACTION\_RENAME\_DISK&9\\
ACTION\_RENAME\_OBJECT&17\\
ACTION\_SET\_COMMENT&28\\
ACTION\_SET\_MAP&4\\
ACTION\_SET\_PROTECT&21\\
ACTION\_TIMER&30\\
ACTION\_WAIT\_CHAR&20\\
ACTION\_WRITE&`W'\\
ACTIVATE&0x1000\\
ACTIVEWINDOW&0x00040000\\
ADALLOC\_MINPREC&$-128$\\
ADALLOC\_MAXPREC&127\\
ADCMD\_ALLOCATE&$2^5$&ADCMDF\_NOUNIT\\
ADCMDB\_NOUNIT&5\\
ADCMD\_FINISH&11&CMD\_NONSTD + 2\\
ADCMDF\_NOUNIT&$2^5$\\
ADCMD\_FREE&9&CMD\_NONSTD + 0\\
ADCMD\_LOCK&13&CMD\_NONSTD + 4\\
ADCMD\_PERVOL&12&CMD\_NONSTD + 3\\
ADCMD\_SETPREC&10&CMD\_NONSTD + 1\\
ADCMD\_WAITCYCLE&14&CMD\_NONSTD + 5\\
aDEN1&26\\
aDEN2&25\\
aDEN3&24\\
aDEN4&23\\
aDEN5&22\\
aDEN6&21
\end{tabular}
\newpage
\begin{tabular}{lll}
ADHARD\_CHANNELS&4\\
ADIOB\_NOWAIT&6\\
ADIOB\_PERVOL&4\\
ADIOB\_SYNCCYCLE&5\\
ADIOB\_WRITEMESSAGE&7\\
ADIOERR\_ALLOCFAILED&$-11$\\
ADIOERR\_CHANNELSTOLEN&$-12$\\
ADIOERR\_NOALLOCATION&$-10$\\
ADIOF\_NOWAIT&$2^6$\\
ADIOF\_PERVOL&$2^4$\\
ADIOF\_SYNCCYCLE&$2^5$\\
ADIOF\_WRITEMESSAGE&$2^7$\\
ADKB\_FAST&8\\
ADKB\_MFMPREC&12\\
ADKB\_MSBSYNC&9\\
ADKB\_PRECOMP0&13\\
ADKB\_PRECOMP1&14\\
ADKB\_SETCLR&15\\
ADKB\_UARTBRK&11\\
ADKB\_USE0P1&4\\
ADKB\_USE1P2&5\\
ADKB\_USE2P3&6\\
ADKB\_USE3PN&7\\
ADKB\_USE0V1&0\\
ADKB\_USE1V2&1\\
ADKB\_USE2V3&2\\
ADKB\_USE3VN&3\\
ADKB\_WORDSYNC&10\\
ADKF\_FAST&$2^8$\\
ADKF\_MFMPREC&$2^{12}$\\
ADKF\_MSBSYNC&$2^9$\\
ADKF\_PRE000NS&0\\
ADKF\_PRE140NS&ADKF\_PRECOMP0\\
ADKF\_PRE280NS&ADKF\_PRECOMP1\\
ADKF\_PRE560NS&\%0110000000000000&ADKF\_PRECOMP0$|$ADKF\_PRECOMP1\\
ADKF\_PRECOMP0&$2^{13}$\\
ADKF\_PRECOMP1&$2^{14}$\\
ADKF\_SETCLR&$2^{15}$\\
ADKF\_UARTBRK&$2^{11}$\\
ADKF\_USE0P1&$2^4$\\
ADKF\_USE1P2&$2^5$\\
ADKF\_USE2P3&$2^6$\\
ADKF\_USE3PN&$2^7$\\
ADKF\_USE0V1&$2^0$\\
ADKF\_USE1V2&$2^1$\\
ADKF\_USE2V3&$2^2$\\
ADKF\_USE3VN&$2^3$\\
ADKF\_WORDSYNC&$2^{10}$\\
ADNB\_STARTPROC&0\\
ADNF\_STARTPROC&1\\
aEXTEND&75\\
AFB\_68010&0\\
AFB\_68020&1\\
AFB\_68881&4\\
AFB\_DISK&1\\
AFB\_MEMORY&0\\
AFB\_RESERVED8&8\\
AFB\_RESERVED9&9\\
AFF\_68010&$2^0$\\
AFF\_68020&$2^1$\\
AFF\_68881&$2^4$\\
AFF\_DISK&2\\
AFF\_MEMORY&1
\end{tabular}
\newpage
\begin{tabular}{lll}
aFNT0&34\\
aFNT1&35\\
aFNT2&36\\
aFNT3&37\\
aFNT4&38\\
aFNT5&39\\
aFNT6&40\\
aFNT7&41\\
aFNT8&42\\
aFNT9&43\\
aFNT10&44\\
AG\_IOError&0x00060000\\
AG\_MakeLib&0x00020000\\
AG\_NoMemory&0x00010000\\
AG\_NoSignal&0x00070000\\
AG\_OpenDev&0x00040000\\
AG\_OpenLib&0x00030000\\
AG\_OpenRes&0x00050000\\
aHTS&67\\
aIND&2\\
aJFY0&52\\
aJFY1&54\\
aJFY3&53\\
aJFY5&49\\
aJFY6&51\\
aJFY7&50\\
ALERTLAYERSNOMEM&0x83010000\\
ALERT\_TYPE&0x80000000\\
aLMS&60\\
ALPHA\_P\_101&0x01\\
ALTKEYMAP&0x1000\\
ALTLEFT&0x0010&IEQUALIFIER\_LALT\\
ALTRIGHT&0x0020&IEQUALIFIER\_RALT\\
AMIGAKEYS&0xC0&AMIGALEFT$|$AMIGARIGHT\\
AMIGALEFT&0x0040&IEQUALIFIER\_LCOMMAND\\
AMIGARIGHT&0x0080&IEQUALIFIER\_RCOMMAND\\
AN\_AddSWGadget&0x8401000A\\
AN\_AsyncPkt&0x07000004\\
AN\_AudioDev&0x10000000\\
AN\_BadExpansionFree&0x0A000001\\
AN\_BadGadget&0x04000001\\
AN\_BadMessage&0x8400000D\\
AN\_BadOverlay&0x0700000C\\
AN\_BadSegList&0x08000001\\
AN\_BadState&0x8400000C\\
AN\_BaseChkSum&0x81000002\\
ANBC&\%00100000\\
AN\_BitMap&0x07000007\\
AN\_BltBitMap&0x8201000A\\
ANBNC&\%00010000\\
AN\_BogusExcpt&0x8100000A\\
AN\_BootError&0x30000001\\
AN\_BootStrap&0x30000000\\
AN\_CIARsrc&0x20000000\\
AN\_CListLib&0x06000000\\
AN\_ConsoleDev&0x11000000\\
AN\_CreatePort&0x84010002\\
AN\_DiskBlkSeq&0x07000006\\
AN\_DiskCopy&0x32000000\\
AN\_DiskRsrc&0x21000000\\
AN\_DOSLib&0x07000000\\
AN\_DRHasDisk&0x21000001\\
AN\_DRIntNoAct&0x21000002
\end{tabular}
\newpage
\begin{tabular}{lll}
aNEL&3\\
AN\_EndTask&0x07000002\\
AN\_ExcptVect&0x81000001\\
AN\_ExecLib&0x01000000\\
AN\_ExpansionLib&0x0A000000\\
ANFRACSIZE&6\\
AN\_FreeTwice&0x81000009\\
AN\_FreeVec&0x07000005\\
AN\_GadgetType&0x84000001\\
AN\_GamePortDev&0x12000000\\
AN\_GfxNoLCM&0x82011234\\
AN\_GfxNoMem&0x82010000\\
AN\_GraphicsLib&0x02000000\\
AN\_IconLib&0x09000000\\
ANIMHALF&0x0020\\
AN\_InitAPtr&0x81000007\\
AN\_IntrMem&0x81000006\\
AN\_Intuition&0x04000000\\
AN\_ItemAlloc&0x04010003\\
AN\_ItemBoxTop&0x84000006\\
AN\_KeyboardDev&0x13000000\\
AN\_KeyFree&0x07000008\\
AN\_LayersLib&0x03000000\\
AN\_LayersNoMem&0x83010000\\
AN\_LibChkSum&0x81000003\\
AN\_LibMem&0x81000004\\
AN\_LongFrame&0x82010006\\
AN\_MakeVPort&0x82010030\\
AN\_MathLib&0x05000000\\
AN\_MemCorrupt&0x81000005\\
AN\_MiscRsrc&0x22000000\\
AN\_NoConsole&0x8400000F\\
AN\_OpenScreen&0x84010007\\
AN\_OpenScrnRast&0x84010008\\
AN\_OpenWindow&0x8401000B\\
AN\_PlaneAlloc&0x84010005\\
AN\_QPktFail&0x07000003\\
AN\_RAMLib&0x08000000\\
AN\_RegionMemory&0x8201000B\\
AN\_SemCorrupt&0x81000008\\
AN\_ShortFrame&0x82010007\\
AN\_StartMem&0x07010001\\
AN\_SubAlloc&0x04010004\\
AN\_SysScrnType&0x84000009\\
AN\_TDCalibSeek&0x14000001\\
AN\_TDDelay&0x14000002\\
AN\_TextTmpRas&0x02010009\\
AN\_TimerDev&0x15000000\\
AN\_TMBadReq&0x15000001\\
AN\_TMBadSupply&0x15000002\\
AN\_TrackdiskDev&0x14000000\\
AN\_WeirdEcho&0x8400000E\\
AN\_Workbench&0x31000000\\
AO\_AudioDev&0x00008010\\
AO\_BootStrap&0x00008030\\
AO\_CIARsrc&0x00008020\\
AO\_CListLib&0x00008006\\
AO\_ConsoleDev&0x00008011\\
AO\_DiskRsrc&0x00008021\\
AO\_DOSLib&0x00008007\\
AO\_ExecLib&0x00008001\\
AO\_ExpansionLib&0x0000800A\\
AO\_GamePortDev&0x00008012
\end{tabular}
\newpage
\begin{tabular}{lll}
AO\_GraphicsLib&0x00008002\\
AO\_IconLib&0x00008009\\
AO\_Intuition&0x00008004\\
AO\_KeyboardDec&0x00008013\\
AO\_LayersLib&0x00008003\\
AO\_MathLib&0x00008005\\
AO\_MiscRsrc&0x00008022\\
AO\_RAMLib&0x00008008\\
A\_OR\_B&\%11111100&ABC$|$ANBC€$|$ NABC$|$ABNC$|$ANBNC$|$NABNC\\
A\_OR\_C&\%11111010&ABC$|$NABC$|$ABNC$|$ANBC$|$NANBC$|$ANBNC\\
AO\_TimerDev&0x00008015\\
AO\_TrackDiskDev&0x00008014\\
AO\_Workbench&0x00008031\\
aPERF&58\\
aPERF0&59\\
aPLD&33\\
aPLU&32\\
aPROP0&47\\
aPROP1&46\\
aPROP2&45\\
AREAOUTLINE&0x08\\
aRI&4\\
aRIN&1\\
aRIS&0\\
aRMS&61\\
aSBC&13\\
aSFC&12\\
aSGR0&5\\
aSGR1&10\\
aSGR3&6\\
aSGR4&8\\
aSGR22&11\\
aSGR23&7\\
aSGR24&9\\
ASHIFTSHIFT&12\\
aSHORP0&14\\
aSHORP1&16\\
aSHORP2&15\\
aSHORP3&18\\
aSHORP4&17\\
aSHORP5&20\\
aSHORP6&19\\
aSLPP&57\\
aSLRM&65\\
ASPECT\_HORIZ&0x00\\
ASPECT\_VERT&0x01\\
aSTBM&64\\
aSUS0&31\\
aSUS1&28\\
aSUS2&27\\
aSUS3&30\\
aSUS4&29\\
aTBC0&69\\
aTBC1&71\\
aTBC3&70\\
aTBC4&72\\
aTBCALL&73\\
aTBSALL&74\\
AT\_DeadEnd&0x80000000\\
aTMS&62\\
A\_TO\_D&\%11110000&ABC$|$ANBC$|$ABNC$|$ANBNC\\
AT\_Recovery&0x00000000\\
aTSS&48
\end{tabular}
\newpage
\begin{tabular}{lll}
AUDIONAME&`audio.device'\\
AUL&0x4\\
AUTOBACKPEN&1\\
AUTODRAWMODE&1&JAM2\\
AUTOFRONTPEN&0\\
AUTOITEXTFONT&NULL\\
AUTOKNOB&0x0001\\
AUTOLEFTEDGE&6\\
AUTONEXTTEXT&NULL\\
AUTOTOPEDGE&3\\
aVERP0&55\\
aVERP1&56\\
aVTS&68\\
A\_XOR\_C&\%01011010&NABC$|$ABNC$|$NANBC$|$ANBNC\\
B2BOBBER&2\\
B2NORM&0\\
B2SWAP&1\\
BACKDROP&0x0100\\
BACKSAVED&0x0100\\
BAUD\_110&0x00\\
BAUD\_300&0x01\\
BAUD\_1200&0x02\\
BAUD\_2400&0x03\\
BAUD\_4800&0x04\\
BAUD\_9600&0x05\\
BAUD\_19200&0x06\\
BAUD\_MIDI&0x07\\
BC0B\_DEST&8\\
BC0B\_SRCA&11\\
BC0B\_SRCB&10\\
BC0B\_SRCC&9\\
BC0F\_DEST&0x100\\
BC0F\_SRCA&0x800\\
BC0F\_SRCB&0x400\\
BC0F\_SRCC&0x200\\
BC1F\_DESC&2\\
BDRAWN&0x0200\\
BEEPING&0x0020\\
BITCLR&0\\
BITSET&0x8000\\
BITSPERBYTE&8\\
BITSPERLONG&32\\
BLITMSG\_FAULT&4\\
BLITREVERSE&0x2\\
BOBISCOMP&0x0002\\
BOBNIX&0x0800\\
BOBSAWAY&0x0400\\
BOBUPDATE&0x0200\\
BOOLEXTEND&0x2000\\
BOOLGADGET&0x0001\\
BOOTSECTS&2\\
BORDERHIT&0\\
BORDERLESS&0x0800\\
BOTTOMBORDER&0x0080\\
BOTTOMHIT&2\\
BROTHER\_15XL&0x02\\
BSHIFTSHIFT&12\\
BUSERFLAGS&0x00FF\\
BWAITING&0x0100\\
BYTEMASK&0xFF\\
BYTESPERLONG&4
\end{tabular}
\newpage
\begin{tabular}{lll}
CBD\_CURRENTREADID&10&CMD\_NONSTD + 1\\
CBD\_CURRENTWRITEID&11&CMD\_NONSTD + 2\\
CBD\_POST&9&CMD\_NONSTD + 0\\
CBERR\_OBSOLETEID&1\\
CBM\_MPS1000&0x03\\
CD\_ASKDEFAULTKEYMAP&11&CMD\_NONSTD + 2\\
CD\_ASKKEYMAP&9&CMD\_NONSTD + 0\\
CDB\_CONFIGME&1\\
CDB\_SHUTUP&0\\
CDF\_CONFIGME&0x02\\
CDF\_SHUTUP&0x01\\
CD\_SETDEFAULTKEYMAP&12&CMD\_NONSTD + 3\\
CD\_SETKEYMAP&10&CMD\_NONSTD + 1\\
CHECKED&0x0100\\
CHECKIT&0x0001\\
CHECKWIDTH&19\\
CIAB\_COMCD&5\\
CIAB\_COMCTS&4\\
CIAB\_COMDSR&3\\
CIAB\_COMDTR&7\\
CIAB\_COMRTS&6\\
CIAB\_DSKCHANGE&2\\
CIAB\_DSKDIREC&1\\
CIAB\_DSKMOTOR&7\\
CIAB\_DSKPROT&3\\
CIAB\_DSKRDY&5\\
CIAB\_DSKSEL0&3\\
CIAB\_DSKSEL1&4\\
CIAB\_DSKSEL2&5\\
CIAB\_DSKSEL3&6\\
CIAB\_DSKSIDE&2\\
CIAB\_DSKSTEP&0\\
CIAB\_DSKTRACK0&4\\
CIAB\_GAMEPORT0&6\\
CIAB\_GAMEPORT1&7\\
CIAB\_LED&1\\
CIAB\_OVERLAY&0\\
CIAB\_PRTRBUSY&0\\
CIAB\_PRTRPOUT&1\\
CIAB\_PRTRSEL&2\\
CIAF\_COMCD&$2^5$\\
CIAF\_COMCTS&$2^4$\\
CIAF\_COMDSR&$2^3$\\
CIAF\_COMDTR&$2^7$\\
CIAF\_COMRTS&$2^6$\\
CIAF\_DSKCHANGE&$2^2$\\
CIAF\_DSKDIREC&$2^1$\\
CIAF\_DSKMOTOR&$2^7$\\
CIAF\_DSKPROT&$2^3$\\
CIAF\_DSKRDY&$2^5$\\
CIAF\_DSKSEL0&$2^3$\\
CIAF\_DSKSEL1&$2^4$\\
CIAF\_DSKSEL2&$2^5$\\
CIAF\_DSKSEL3&$2^6$\\
CIAF\_DSKSIDE&$2^2$\\
CIAF\_DSKSTEP&$2^0$\\
CIAF\_DSKTRACK0&$2^4$\\
CIAF\_GAMEPORT0&$2^6$\\
CIAF\_GAMEPORT1&$2^7$\\
CIAF\_LED&$2^1$\\
CIAF\_OVERLAY&$2^0$
\end{tabular}
\newpage
\begin{tabular}{lll}
CIAF\_PRTRBUSY&$2^0$\\
CIAF\_PRTRPOUT&$2^1$\\
CIAF\_PRTRSEL&$2^2$\\
CIACRAB\_INMODE&5\\
CIACRAB\_LOAD&4\\
CIACRAB\_OUTMODE&2\\
CIACRAB\_PBON&1\\
CIACRAB\_RUNMODE&3\\
CIACRAB\_SPMODE&6\\
CIACRAB\_START&0\\
CIACRAB\_TODIN&7\\
CIACRAF\_INMODE&$2^5$\\
CIACRAF\_LOAD&$2^4$\\
CIACRAF\_OUTMODE&$2^2$\\
CIACRAF\_PBON&$2^1$\\
CIACRAF\_RUNMODE&$2^3$\\
CIACRAF\_SPMODE&$2^6$\\
CIACRAF\_START&$2^0$\\
CIACRAF\_TODIN&$2^7$\\
CIACRBB\_ALARM&7\\
CIACRBB\_INMODE0&5\\
CIACRBB\_INMODE1&6\\
CIACRBB\_LOAD&4\\
CIACRBB\_OUTMODE&2\\
CIACRBB\_PBON&1\\
CIACRBB\_RUNMODE&3\\
CIACRBB\_START&0\\
CIACRBF\_ALARM&$2^7$\\
CIACRBF\_IN\_CNT&$2^5$&CIACRBF\_INMODE0\\
CIACRBF\_IN\_CNT\_TA&\%01100000&CIACRBF\_INMODE0$|$CIACRBF\_INMODE1\\
CIACRBF\_INMODE0&$2^5$\\
CIACRBF\_INMODE1&$2^6$\\
CIACRBF\_IN\_PHI2&0\\
CIACRBF\_IN\_TA&$2^6$&CIACRBF\_INMODE1\\
CIACRBF\_LOAD&$2^4$\\
CIACRBF\_OUTMODE&$2^2$\\
CIACRBF\_PBON&$2^1$\\
CIACRBF\_RUNMODE&$2^3$\\
CIACRBF\_START&$2^0$\\
CIAICRB\_ALRM&2\\
CIAICRB\_FLAG&4\\
CIAICRB\_IR&7\\
CIAICRB\_SETCLR&7\\
CIAICRB\_SP&3\\
CIAICRB\_TA&0\\
CIAICRB\_TB&1\\
CIAICRF\_ALRM&\%00000100&$2^{\rm CIAICRB\_ALRM}$\\
CIAICRF\_FLG&\%00010000&$2^{\rm CIAICRB\_FLG}$\\
CIAICRF\_IR&\%00100000&$2^{\rm CIAICRB\_IR}$\\
CIAICRF\_SETCLR&\%01000000&$2^{\rm CIAICRB\_SETCLR}$\\
CIAICRF\_SP&\%00001000&$2^{\rm CIAICRB\_SP}$\\
CIAICRF\_TA&\%00000001&$2^{\rm CIAICRB\_TA}$\\
CIAICRF\_TB&\%00000010&$2^{\rm CIAICRB\_TB}$\\
CLEANME&0x40&CLEANUP\\
CLEANUP&0x40\\
CLOSE&0x0080\\
CLOSEGADGET&3\\
CLOSEWINDOW&0x00000200
\end{tabular}
\newpage
\begin{tabular}{lll}
CMD\_CLEAR&5\\
CMD\_FLUSH&8\\
CMD\_INVALID&0\\
CMD\_NONSTD&9\\
CMD\_READ&2\\
CMD\_RESET&1\\
CMD\_START&7\\
CMD\_STOP&6\\
CMD\_UPDATE&4\\
CMD\_WRITE&3\\
COLORON&0x0200\\
COMMSEQ&0x0004\\
COMMWIDTH&27\\
COMPLEMENT&2\\
COPPER\_MOVE&0\\
COPPER\_WAIT&1\\
CPR\_NT\_LOF&0x8000\\
CPR\_NT\_SHT&0x4000\\
CPRNXTBUF&2\\
CR\_NEEDS\_NO\_CONCEALED\_RASTERS&1\\
CTC\_HCLRTAB&2\\
CTC\_HCLSTABSALL&5\\
CTC\_HSETTAB&0\\
CURSORDOWN&0x4D\\
CURSORLEFT&0x4F\\
CURSORRIGHT&0x4E\\
CURSORUP&0x4C\\
CUSTOM&0x40\\
CUSTOMBITMAP&0x0040\\
CUSTOM\_NAME&0x00\\
CUSTOMSCREEN&0x000F\\
DAC\_BINDTIME&0x20\\
DAC\_BOOTTIME&0x30\\
DAC\_BUSWIDTH&0xC0\\
DAC\_BYTEWIDE&0x40\\
DAC\_CONFIGTIME&0x10\\
DAC\_NEVER&0x00\\
DAC\_NIBBLEWIDE&0x00\\
DAC\_WORDWIDE&0x80\\
DBLPF&0x400\\
DBUFFER&0x04\\
DEADEND\_ALERT&0x80000000\\
DE\_BLKSPERTRACK&5\\
DEFERREFRESH&0x8000\\
DEFFREQ&22200\\
DEFMODE&0&NATURALF0\\
DEFPITCH&110\\
DEFRATE&150\\
DEFSEX&0&MALE\\
DEFVOL&64\\
DE\_INTERLEAVE&8\\
DE\_LOWCYL&9\\
DELTAMOVE&0x00100000\\
DE\_MEMBUFTYPE&12\\
DE\_NUMBUFFERS&11\\
DE\_NUMHEADS&3\\
DE\_PREFAC&7\\
DE\_RESERVEDBLKS&6\\
DE\_SECORG&2\\
DE\_SECPERBLK&4\\
DE\_SIZEBLOCK&1\\
DEST&0x100
\end{tabular}
\newpage
\begin{tabular}{lll}
DE\_TABLESIZE&0\\
DE\_UPPERCYL&10\\
DEV\_ABORTIO&$-36$\\
DEV\_BEGINIO&$-30$\\
DFH\_ID&0xF80\\
DFTCH\_MASK&0xFF\\
DIAB\_630&0x04\\
DIAB\_ADV\_D25&0x05\\
DIAB\_C\_150&0x06\\
DISKINSERTED&0x00008000\\
DISKNAME&`disk.resource'\\
DISKREMOVED&0x00010000\\
DIW\_HORIZ\_POS&0x7F\\
DIW\_VRTCL\_POS&0x1FF\\
DIW\_VRTCL\_POS\_SHIFT&7\\
DLT\_DEVICE&0\\
DLT\_DIRECTORY&1\\
DLT\_VOLUME&2\\
DMAB\_AUD0&0\\
DMAB\_AUD1&1\\
DMAB\_AUD2&2\\
DMAB\_AUD3&3\\
DMAB\_BLITHOG&10\\
DMAB\_BLITTER&6\\
DMAB\_BLTDONE&14\\
DMAB\_BLTNZERO&13\\
DMAB\_COPPER&7\\
DMAB\_DISK&4\\
DMAB\_MASTER&9\\
DMAB\_RASTER&8\\
DMAB\_SETCLR&15\\
DMAB\_SPRITE&5\\
DMAF\_ALL&0x01FF\\
DMAF\_AUD0&0x0001\\
DMAF\_AUD1&0x0002\\
DMAF\_AUD2&0x0004\\
DMAF\_AUD3&0x0008\\
DMAF\_AUDIO&0x000F\\
DMAF\_BLITHOG&0x0400\\
DMAF\_BLITTER&0x0040\\
DMAF\_BLTDONE&0x4000\\
DMAF\_BLTNZERO&0x2000\\
DMAF\_COPPER&0x0080\\
DMAF\_DISK&0x0010\\
DMAF\_MASTER&0x0200\\
DMAF\_RASTER&0x0100\\
DMAF\_SETCLR&0x8000\\
DMAF\_SPRITE&0x0020\\
DMODECOUNT&0x0002\\
DOSNAME&`dos.library'\\
DOWNBACKGADGET&1\\
DP\_2DFACSHIFT&4\\
DP\_2DINDEXMASK&0x0F\\
DPB\_DEAD&3\\
DPB\_MOD&0\\
DPF\_DEAD&0x08\\
DPF\_MOD&0x01\\
DRAFT&0x000\\
DRAGGADGET&4\\
DR\_ALLOCUNIT&$-6$&LIB\_BASE $-$ 0 $*$ LIB\_VECTSIZE
\end{tabular}
\newpage
\begin{tabular}{lll}
DRB\_ACTIVE&7\\
DRB\_ALLOC0&0\\
DRB\_ALLOC1&1\\
DRB\_ALLOC2&2\\
DRB\_ALLOC3&3\\
DRF\_ACTIVE&$2^7$\\
DRF\_ALLOC0&$2^0$\\
DRF\_ALLOC1&$2^1$\\
DRF\_ALLOC2&$2^2$\\
DRF\_ALLOC3&$2^3$\\
DR\_FREEUNIT&$-12$&LIB\_BASE $-$ 1 $*$ LIB\_VECTSIZE\\
DR\_GETUNIT&$-18$&LIB\_BASE $-$ 2 $*$ LIB\_VECTSIZE\\
DR\_GETUNITID&$-30$&LIB\_BASE $-$ 4 $*$ LIB\_VECTSIZE\\
DR\_GIVEUNIT&$-24$&LIB\_BASE $-$ 3 $*$ LIB\_VECTSIZE\\
DRIVE3\_5&1\\
DRIVE5\_25&2\\
DR\_LASTCOMM&$-24$&DR\_GIVEUNIT\\
DRT\_37422D2S&0x55555555\\
DRT\_AMIGA&0x00000000\\
DRT\_EMPTY&0xFFFFFFFF\\
DSKDMAOFF&0x4000\\
DSR\_CPR&6\\
DUALPF&0x400\\
E&2.718281828459045\\
ECIB\_INT2PEND&4\\
ECIB\_INT6PEND&5\\
ECIB\_INT7PEND&6\\
ECIB\_INTENA&1\\
ECIB\_INTERRUPTING&7\\
ECIB\_RESET&3\\
ECIF\_INT2PEND&$2^4$\\
ECIF\_INT6PEND&$2^5$\\
ECIF\_INT7PEND&$2^6$\\
ECIF\_INTENA&$2^1$\\
ECIF\_INTERRUPTING&$2^7$\\
ECIF\_RESET&$2^3$\\
E\_EXPANSIONBASE&0xE80000\\
E\_EXPANSIONSIZE&0x080000\\
E\_EXPANSIONSLOTS&8\\
EIGHT\_LPI&0x200\\
ELITE&0x400\\
E\_MEMORYBASE&0x200000\\
E\_MEMORYSIZE&0x800000\\
E\_MEMORYSLOTS&128\\
ENDGADGET&0x0004\\
EPSON&0x07\\
EPSON\_JX\_80&0x08\\
ERROR\_ACTION\_NOT\_KNOWN&209\\
ERROR\_BAD\_STREAM\_NAME&206\\
ERROR\_COMMENT\_TOO\_BIG&220\\
ERROR\_DELETE\_PROTECTED&222\\
ERROR\_DEVICE\_NOT\_MOUNTED&218\\
ERROR\_DIRECTORY\_NOT\_EMPTY&216\\
ERROR\_DIR\_NOT\_FOUND&204\\
ERROR\_DISK\_FULL&221\\
ERROR\_DISK\_NOT\_VALIDATED&213\\
ERROR\_DISK\_WRITE\_PROTECTED&214\\
ERROR\_FILE\_NOT\_OBJECT&121\\
ERROR\_INVALID\_COMPONENT\_NAME&210\\
ERROR\_INVALID\_LOCK&211\\
ERROR\_INVALID\_RESIDENT\_LIBRARY&122\\
ERROR\_LINE\_TOO\_LONG&120
\end{tabular}
\newpage
\begin{tabular}{lll}
ERROR\_NO\_DEFAULT\_DIR&201\\
ERROR\_NO\_DISK&226\\
ERROR\_NO\_FREE\_STORE&103\\
ERROR\_NO\_MORE\_ENTRIES&232\\
ERROR\_NOT\_A\_DOS\_DISK&225\\
ERROR\_OBJECT\_EXISTS&203\\
ERROR\_OBJECT\_IN\_USE&202\\
ERROR\_OBJECT\_NOT\_FOUND&205\\
ERROR\_OBJECT\_TOO\_LARGE&207\\
ERROR\_OBJECT\_WRONG\_TYPE&212\\
ERROR\_READ\_PROTECTED&224\\
ERROR\_RENAME\_ACROSS\_DEVICES&215\\
ERROR\_SEEK\_ERROR&219\\
ERROR\_TASK\_TABLE\_FULL&105\\
ERROR\_TOO\_MANY\_LEVELS&217\\
ERROR\_WRITE\_PROTECTED&223\\
ERTB\_CHAINEDCONFIG&3\\
ERTB\_DIAGINVALID&4\\
ERTB\_MEMLIST&5\\
ERTB\_MEMSPACE&7\\
ERTB\_NOSHUTUP&6\\
ERTF\_CHAINEDCONFIG&$2^3$\\
ERTF\_DIAGINVALID&$2^4$\\
ERTF\_MEMLIST&$2^5$\\
ERTF\_MEMSPACE&$2^7$\\
ERTF\_NOSHUTUP&$2^6$\\
ERT\_MEMBIT&0\\
ERT\_MEMMASK&0x07\\
ERT\_MEMSIZE&3\\
ERT\_NEWBOARD&0xC0\\
ERT\_TYPEBIT&6\\
ERT\_TYPEMASK&0xC0\\
ERT\_TYPESIZE&2\\
E\_SLOTMASK&0xFFFF\\
E\_SLOTSHIFT&16\\
E\_SLOTSIZE&0x10000\\
ETD\_CLEAR&\%1000000000000101&CMD\_CLEAR$|$TDF\_EXTCOM\\
ETD\_FORMAT&\%1000000000001011\\
ETD\_MOTOR&\%1000000000001001&TD\_MOTOR$|$TDF\_EXTCOM\\
ETD\_RAWREAD&\%1000000000010000&TD\_RAWREAD$|$TDF\_EXTCOM\\
ETD\_RAWWRITE&\%1000000000010001&TD\_RAWWRITE$|$TDF\_EXTCOM\\
ETD\_READ&\%1000000000000010&CMD\_READ$|$TDF\_EXTCOM\\
ETD\_SEEK&\%1000000000001010&TD\_SEEK$|$TDF\_EXTCOM\\
ETD\_UPDATE&\%1000000000000100&CMD\_UPDATE$|$TDF\_EXTCOM\\
ETD\_WRITE&\%1000000000000011&CMD\_WRITE$|$TDF\_EXTCOM\\
EVENTMAX&10\\
EXCLUSIVE\_LOCK&$-1$\\
EXECNAME&`exec.library'\\
EXPANSIONNAME&`expansion.library'\\
EXTRA\_HALFBRITE&0x80\\
FANFOLD&0x00\\
FCH\_ID&0xF00\\
FEMALE&1\\
FIBB\_ARCHIVE&4\\
FIBB\_DELETE&0\\
FIBB\_EXECUTE&1\\
FIBB\_READ&3\\
FIBB\_WRITE&2\\
FIBF\_ARCHIVE&$2^4$\\
FIBF\_DELETE&$2^0$\\
FIBF\_EXECUTE&$2^1$\\
FIBF\_READ&$2^3$\\
FIBF\_WRITE&$2^2$
\end{tabular}
\newpage
\begin{tabular}{lll}
FILENAME\_SIZE&30\\
FILL\_CARRYIN&0x4\\
FILL\_OR&0x8\\
FILL\_XOR&0x10\\
FINE&0x800\\
FOLLOWMOUSE&0x0008\\
FPB\_DESIGNED&6\\
FPB\_DISKFONT&1\\
FPB\_PROPORTIONAL&5\\
FPB\_REMOVED&7\\
FPB\_REVPATH&2\\
FPB\_ROMFONT&0\\
FPB\_TALLDOT&3\\
FPB\_WIDEDOT&4\\
FPF\_DESIGNED&$2^6$\\
FPF\_DISKFONT&$2^1$\\
FPF\_PROPORTIONAL&$2^5$\\
FPF\_REMOVED&$2^7$\\
FPF\_REVPATH&$2^2$\\
FPF\_ROMFONT&$2^0$\\
FPF\_TALLDOT&$2^3$\\
FPF\_WIDEDOT&$2^4$\\
FPHALF&0.5\\
FPONE&1.0\\
FPTEN&10.0\\
FPZERO&0.0\\
FREEHORIZ&0x0002\\
FREEVERT&0x0004\\
FRST\_DOT&0x01\\
FSB\_BOLD&1\\
FSB\_EXTENDED&3\\
FSB\_ITALIC&2\\
FSB\_UNDERLINED&0\\
FSF\_BOLD&$2^1$\\
FSF\_EXTENDED&$2^3$\\
FSF\_ITALIC&$2^2$\\
FSF\_UNDERLINED&$2^0$\\
FS\_NORMAL&0\\
GADGBACKFILL&0x0001\\
GADGDISABLED&0x0100\\
GADGET0002&0x0002\\
GADGETCOUNT&8\\
GADGETDOWN&0x00000020\\
GADGETSLOCK&2\\
GADGETTYPE&0xFC00\\
GADGETUP&0x00000040\\
GADGHBOX&0x0001\\
GADGHCOMP&0x0000\\
GADGHIGHBITS&0x0003\\
GADGHIMAGE&0x0002\\
GADGHNONE&0x0003\\
GADGIMAGE&0x0004\\
GADGIMMEDIATE&0x0002\\
GELGONE&0x0400\\
GENLOC&2\\
GENLOCK\_AUDIO&0x100\\
GENLOCK\_VIDEO&2\\
GIMMEZEROZERO&0x0400
\end{tabular}
\newpage
\begin{tabular}{lll}
GPCT\_ABSJOYSTICK&3\\
GPCT\_ALLOCATED&$-1$\\
GPCT\_MOUSE&1\\
GPCT\_NOCONTROLLER&0\\
GPCT\_RELJOYSTICK&2\\
GPD\_ASKCTYPE&10&CMD\_NONSTD + 1\\
GPD\_ASKTRIGGER&12&CMD\_NONSTD + 3\\
GPDERR\_SETCTYPE&1\\
GPD\_READEVENT&9&CMD\_NONSTD + 0\\
GPD\_SETCTYPE&11&CMD\_NONSTD + 2\\
GPD\_SETTRIGGER&13&CMD\_NONSTD + 4\\
GPTB\_DOWNKEYS&0\\
GPTB\_UPKEYS&1\\
GPTF\_DOWNKEYS&1\\
GPTF\_UPKEYS&2\\
GRELBOTTOM&0x0008\\
GRELHEIGHT&0x0040\\
GRELRIGHT&0X0010\\
GRELWIDTH&0X0020\\
GZZGADGET&0x2000\\
HAM&0x800\\
HIGHBOX&0x0080\\
HIGHCOMP&0x0040\\
HIGHFLAGS&0x00C0\\
HIGHIMAGE&0x0000\\
HIGHITEM&0x2000\\
HIGHNONE&0x00C0\\
HIRES&0x8000\\
HIRESGADGET&0\\
HIRESPICK&0x0000\\
HOLDNMODIFY&0x800\\
HP\_LASERJET&0x0B\\
HP\_LASERJET\_PLUS&0x0C\\
HSIZEBITS&6\\
HSIZEMASK&0x3F\\
IBASELOCK&5\\
ID\_DOS\_DISK&0x444F5300&`DOS\ '\\
ID\_KICKSTART\_DISK&0x4B49434B&`KICK'\\
ID\_NO\_DISK\_PRESENT&$-1$\\
ID\_NOT\_REALLY\_DOS&0x4E444F53&`NDOS'\\
ID\_UNREADABLE\_DISK&0x42414400&`BAD\ '\\
ID\_VALIDATED&82\\
ID\_VALIDATING&81\\
ID\_WRITE\_PROTECTED&80
\end{tabular}
\newpage
\begin{tabular}{lll}
IECLASS\_ACTIVEWINDOW&0x11\\
IECLASS\_CLOSEWINDOW&0x0B\\
IECLASS\_DISKINSERTED&0x10\\
IECLASS\_DISKREMOVED&0x0F\\
IECLASS\_EVENT&0x03\\
IECLASS\_GADGETDOWN&0x07\\
IECLASS\_GADGETUP&0x08\\
IECLASS\_INACTIVEWINDOW&0x12\\
IECLASS\_MAX&0x12\\
IECLASS\_MENULIST&0x0A\\
IECLASS\_NEWPREFS&0x0E\\
IECLASS\_NULL&0x00\\
IECLASS\_POINTERPOS&0x04\\
IECLASS\_RAWKEY&0x01\\
IECLASS\_RAWMOUSE&0x02\\
IECLASS\_REFRESHWINDOW&0x0D\\
IECLASS\_REQUESTER&0x09\\
IECLASS\_SIZEWINDOW&0x0C\\
IECLASS\_TIMER&0x06\\
IECODE\_ASCII\_DEL&0x7F\\
IECODE\_ASCII\_FIRST&0x20\\
IECODE\_ASCII\_LAST&0x7E\\
IECODE\_C0\_FIRST&0x00\\
IECODE\_C0\_LAST&0x1F\\
IECODE\_C1\_FIRST&0x80\\
IECODE\_C1\_LAST&0x9F\\
IECODE\_COMM\_CODE\_FIRST&0x78\\
IECODE\_COMM\_CODE\_LAST&0x77\\
IECODE\_KEY\_CODE\_FIRST&0x00\\
IECODE\_KEY\_CODE\_LAST&0x1F\\
IECODE\_LATIN1\_FIRST&0xA0\\
IECODE\_LATIN1\_LAST&0xFF\\
IECODE\_LBUTTON&0x68\\
IECODE\_MBUTTON&0x6A\\
IECODE\_NEWACTIVE&0x01\\
IECODE\_NOBUTTON&0xFF\\
IECODE\_RBUTTON&0x69\\
IECODE\_REQCLEAR&0x00\\
IECODE\_REQSET&0x01\\
IECODE\_UP\_PREFIX&0x80\\
IEQUALIFIERB\_CAPSLOCK&2\\
IEQUALIFIERB\_CONTROL&3\\
IEQUALIFIERB\_INTERRUPT&10\\
IEQUALIFIERB\_LALT&4\\
IEQUALIFIERB\_LCOMMAND&6\\
IEQUALIFIERB\_LEFTBUTTON&14\\
IEQUALIFIERB\_LSHIFT&0\\
IEQUALIFIERB\_MIDBUTTON&12\\
IEQUALIFIERB\_MULTIBROADCAST&11\\
IEQUALIFIERB\_NUMERICPAD&8\\
IEQUALIFIERB\_RALT&5\\
IEQUALIFIERB\_RBUTTON&13\\
IEQUALIFIERB\_RCOMMAND&7\\
IEQUALIFIERB\_RELATIVEMOUSE&15\\
IEQUALIFIERB\_REPEAT&9\\
IEQUALIFIERB\_RSHIFT&1
\end{tabular}
\newpage
\begin{tabular}{lll}
IEQUALIFIER\_CAPSLOCK&0x0004\\
IEQUALIFIER\_CONTROL&0x0008\\
IEQUALIFIER\_INTERRUPT&0x0400\\
IEQUALIFIER\_LALT&0x0010\\
IEQUALIFIER\_LCOMMAND&0x0040\\
IEQUALIFIER\_LEFTBUTTON&0x4000\\
IEQUALIFIER\_LSHIFT&0x0001\\
IEQUALIFIER\_MIDBUTTON&0x1000\\
IEQUALIFIER\_MULTIBROADCAST&0x0800\\
IEQUALIFIER\_NUMERICPAD&0x0100\\
IEQUALIFIER\_RALT&0x0020\\
IEQUALIFIER\_RBUTTON&0x2000\\
IEQUALIFIER\_RCOMMAND&0x0080\\
IEQUALIFIER\_RELATIVEMOUSE&0x8000\\
IEQUALIFIER\_REPEAT&0x0200\\
IEQUALIFIER\_RSHIFT&0x0002\\
IMAGE\_NEGATIVE&0x01\\
IMAGE\_POSITIVE&0x00\\
INACTIVEWINDOW&0x00080000\\
IND\_ADDHANDLER&9&CMD\_NONSTD + 0\\
IND\_REMHANDLER&10&CMD\_NONSTD + 1\\
IND\_SETMPORT&14&CMD\_NONSTD + 5\\
IND\_SETMTRIG&16&CMD\_NONSTD + 7\\
IND\_SETMTYPE&15&CMD\_NONSTD + 6\\
IND\_SETPERIOD&13&CMD\_NONSTD + 4\\
IND\_SETTHRESH&12&CMD\_NONSTD + 3\\
IND\_WRITEEVENT&11&CMD\_NONSTD + 2\\
INREQUEST&0x4000\\
INTB\_AUD0&7\\
INTB\_AUD1&8\\
INTB\_AUD2&9\\
INTB\_AUD3&10\\
INTB\_BLIT&6\\
INTB\_COPER&4\\
INTB\_DSKBLK&1\\
INTB\_DSKSYNC&12\\
INTB\_EXTER&13\\
INTB\_INTEN&14\\
INTB\_NMI&15\\
INTB\_PORTS&3\\
INTB\_RBF&11\\
INTB\_SETCLR&15\\
INTB\_SOFTINT&2\\
INTB\_TBE&0\\
INTB\_VERTB&5\\
INTEGERINT&0x0800\\
INTERLACE&4\\
INTF\_AUD0&$2^7$\\
INTF\_AUD1&$2^8$\\
INTF\_AUD2&$2^9$\\
INTF\_AUD3&$2^10$\\
INTF\_BLIT&$2^6$\\
INTF\_COPER&$2^4$\\
INTF\_DSKBLK&$2^1$\\
INTF\_DSKSYNC&$2^12$\\
INTF\_EXTER&$2^13$\\
INTF\_INTEN&$2^14$\\
INTF\_NMI&$2^15$\\
INTF\_PORTS&$2^3$\\
INTF\_RBF&$2^11$\\
INTF\_SETCLR&$2^15$
\end{tabular}
\newpage
\begin{tabular}{lll}
INTF\_SOFTINT&$2^2$\\
INTF\_TBE&$2^0$\\
INTF\_VERTB&$2^5$\\
INTUITICKS&0x00400000\\
INVERSVID&4\\
IOB\_QUICK&0\\
IOERR\_ABORTED&$-2$\\
IOERR\_BADLENGTH&$-4$\\
IOERR\_NOCMD&$-3$\\
IOERR\_OPENFAIL&$-1$\\
IOF\_QUICK&1\\
IOPARB\_ABORT&5\\
IOPARB\_ACTIVE&4\\
IOPARB\_QUEUED&6\\
IOPARF\_ABORT&$2^5$\\
IOPARF\_ACTIVE&$2^4$\\
IOPARF\_QUEUED&$2^6$\\
IOPTB\_PAPEROUT&1\\
IOPTB\_PBUSY&2\\
IOPTB\_PSEL&0\\
IOPTB\_RWDIR&3\\
IOPTF\_PAPEROUT&$2^1$\\
IOPTF\_PBUSY&$2^2$\\
IOPTF\_PSEL&$2^0$\\
IOPTF\_RWDIR&$2^3$\\
IOSERB\_ABORT&5\\
IOSERB\_ACTIVE&4\\
IOSERB\_BUFREAD&7\\
IOSERB\_QUEUED&6\\
IOSERF\_ABORT&$2^5$\\
IOSERF\_ACTIVE&$2^4$\\
IOSERF\_BUFREAD&$2^7$\\
IOSERF\_QUEUED&$2^6$\\
IOSTB\_OVERRUN&0\\
IOSTB\_READBREAK&2\\
IOSTB\_WROTEBREAK&1\\
IOSTB\_XOFFREAD&4\\
IOSTB\_XOFFWRITE&3\\
IOSTF\_OVERRUN&$2^0$\\
IOSTF\_READBREAK&$2^2$\\
IOSTF\_WROTEBREAK&$2^1$\\
IOSTF\_XOFFREAD&$2^4$\\
IOSTF\_XOFFWRITE&$2^3$\\
IOTDB\_INDEXSYNC&4\\
IOTDF\_INDEXSYNC&$2^4$\\
ISDRAWN&0x1000\\
ISGRTRX&4\\
ISGRTRY&8\\
ISLESSX&1\\
ISLESSY&2\\
ISTATELOCK&0\\
ITEMENABLED&0x0010\\
ITEMTEXT&0x0002\\
JAM1&0\\
JAM2&1\\
KBD\_ADDRESETHANDLER&11&CMD\_NONSTD + 2\\
KBD\_READEVENT&9&CMD\_NONSTD + 0\\
KBD\_READMATRIX&10&CMD\_NONSTD + 1\\
KBD\_REMRESETHANDLER&12&CMD\_NONSTD + 3\\
KBD\_RESETHANDLERDONE&13&CMD\_NONSTD + 4
\end{tabular}
\newpage
\begin{tabular}{lll}
KCB\_ALT&1\\
KCB\_CONTROL&2\\
KCB\_DEAD&5\\
KCB\_DOWNUP&3\\
KCB\_NOP&7\\
KCB\_SHIFT&0\\
KCB\_STRING&6\\
KCF\_ALT&0x02\\
KCF\_CONTROL&0x04\\
KCF\_DEAD&0x20\\
KCF\_DOWNUP&0x08\\
KCF\_NOP&0x80\\
KCF\_SHIFT&0x01\\
KCF\_STRING&0x40\\
KC\_NOQUAL&0\\
KC\_VANILLA&7\\
KEYCODE\_B&0x35\\
KEYCODE\_M&0x37\\
KEYCODE\_N&0x36\\
KEYCODE\_Q&0x10\\
KEYCODE\_V&0x34\\
KEYCODE\_X&0x32\\
KNOBHIT&0x0100\\
KNOBHMIN&6\\
KNOBVMIN&4\\
LACE&4\\
LACEWB&0x01\\
LAYERBACKDROP&0x40\\
LAYER\_CLIPRECTS\_LOST&0x100\\
LAYERINFOLOCK&1\\
LAYERREFRESH&0x80\\
LAYERROMLOCK&3\\
LAYERSIMPLE&1\\
LAYERSMART&2\\
LAYERSUPER&4\\
LAYERUPDATING&0x10\\
LEFTBORDER&0x0020\\
LEFTHIT&4\\
LETTER&0x100\\
LIB\_BASE&$-6$&$-$LIB\_VECTSIZE\\
LIB\_CLOSE&$-12$\\
LIB\_EXPUNGE&$-18$\\
LIB\_EXTFUNC&$-24$\\
LIBF\_CHANGED&2\\
LIBF\_DELEXP&8\\
LIBF\_SUMMING&1\\
LIBF\_SUMUSED&4\\
LIB\_NONSTD&$-30$&LIB\_USERDEF\\
LIB\_OPEN&$-6$\\
LIBRARY\_VERSION&33&may be different\\
LIB\_RESERVED&4\\
LIB\_USERDEF&$-30$&LIB\_BASE $-$ LIB\_RESERVED $*$ LIB\_VECTSIZE\\
LIB\_VECTSIZE&6\\
LINEMODE&0x1\\
LMN\_REGION&$-1$\\
LOG10&2.302585092994046\\
LONELYMESSAGE&0x80000000\\
LOWCHECKWIDTH&13\\
LOWCOMMWIDTH&16\\
LOWRESGADGET&1\\
LOWRESPICK&0x0001
\end{tabular}
\newpage
\begin{tabular}{lll}
MALE&0\\
M\_ASM&`$>1$'\\
M\_AWM&`?7'\\
MAXBODY&0xFFFF\\
MAXBYTESPERROW&128\\
MAXFONTNAME&32\\
MAXFONTPATH&256\\
MAXFREQ&28000\\
MAXINT&0x7FFFFFFF\\
MAXPITCH&320\\
MAXPOT&0xFFFF\\
MAXRATE&400\\
MAXTABS&80\\
MAXVOL&64\\
MEM\_BLOCKMASK&7\\
MEM\_BLOCKSIZE&8\\
MEMF\_CHIP&\%000000000000000010\\
MEMF\_CLEAR&\&010000000000000000\\
MEMF\_FAST&\%000000000000000100\\
MEMF\_LARGEST&\%100000000000000000\\
MEMF\_PUBLIC&\%000000000000000001\\
MENUCANCEL&0x0002\\
MENUDOWN&0x69&IECODE\_RBUTTON\\
MENUENABLED&0x0001\\
MENUHOT&0x0001\\
MENUNULL&$-1$\\
MENUPICK&0x00000100\\
MENUSTATE&0x8000\\
MENUTOGGLE&0x0008\\
MENUTOGGLED&0x4000\\
MENUUP&0xE9&IECODE\_RBUTTON$|$IECODE\_UP\_PREFIX\\
MENUVERIFY&0x00002000\\
MENUWAITING&0x0003\\
MIDRAWN&0x0100\\
MINFREQ&5000\\
MININT&0x80000000\\
MINPITCH&65\\
MINRATE&40\\
MINVOL&0\\
MISCNAME&`misc.resource'\\
M\_LNM&20\\
MODE\_640&0x8000\\
MODE\_NEWFILE&1006\\
MODE\_OLDFILE&1005\\
MOUSEBUTTONS&0x00000008\\
MOUSEMOVE&0x00000010\\
MR\_ALLOCMISCRESOURCE&$-6$&LIB\_BASE\\
MR\_FREEMISCRESOURCE&0&LIB\_BASE + LIB\_VECTSIZE\\
MR\_PARALLELBITS&3\\
MR\_PARALLELPORT&2\\
MR\_SERIALBITS&1\\
MR\_SERIALPORT&0\\
MTYPE\_CLOSEDOWN&5\\
MTYPE\_DISKCHANGE&3\\
MTYPE\_IOPROC&6\\
MTYPE\_PSTD&1\\
MTYPE\_TIMER&4\\
MTYPE\_TOOLEXIT&2\\
MUSTDRAW&0x0008\\
NABC&\%00001000\\
NABNC&\%00000100\\
NANBC&\%00000010\\
NANBNC&\%00000001
\end{tabular}
\newpage
\begin{tabular}{lll}
NATURALF0&0\\
ND\_CantAlloc&$-6$\\
ND\_Expunged&$-9$\\
ND\_FreqErr&$-25$\\
ND\_MakeBad&$-4$\\
ND\_ModeErr&$-24$\\
ND\_NoAudLib&$-3$\\
ND\_NoMem&$-2$\\
ND\_NoWrite&$-8$\\
ND\_PhonErr&$-20$\\
ND\_PitchErr&$-22$\\
ND\_RateErr&$-21$\\
ND\_SexErr&$-23$\\
ND\_Unimpl&$-7$\\
ND\_UnitErr&$-5$\\
ND\_VolErr&$-26$\\
NEWLAYERINFO\_CALLED&1\\
NEWPREFS&0x00004000\\
NEWSIZE&0x00000002\\
NOCAREREFRESH&0x00020000\\
NOCROSSFILL&0x20\\
NO\_ICON\_POSITION&0x80000000\\
NOISYREQ&0x0004\\
NOITEM&0x003F\\
NOMENU&0x001F\\
NOSUB&0x001F\\
NT\_BOOTNODE&16\\
NT\_DEVICE&3\\
NT\_FONT&12\\
NT\_FREEMSG&6\\
NT\_INTERRUPT&2\\
NT\_LIBRARY&9\\
NT\_MEMORY&10\\
NT\_MESSAGE&5\\
NT\_MSGPORT&4\\
NT\_PROCESS&13\\
N\_TRACTOR&0x20\\
NT\_REPLYMSG&7\\
NT\_RESOURCE&8\\
NTSC&1\\
NT\_SEMAPHORE&14\\
NT\_SIGNALSEM&16\\
NT\_SOFTINT&11\\
NT\_TASK&1\\
NT\_UNKNOWN&0\\
NULL&0\\
NUM\_EVENTS&4\\
NUMILOCKS&7\\
NUMMRTYPES&4\\
NUMSECS&11\\
NUMUNITS&4\\
OCTANT1&16\\
OCTANT2&0\\
OCTANT3&8\\
OCTANT4&20\\
OCTANT5&28\\
OCTANT6&12\\
OCTANT7&4\\
OCTANT8&24\\
OFFSET\_BEGINING&$-1$&OFFSET\_BEGINNING\\
OFFSET\_BEGINNING&$-1$\\
OFFSET\_CURRENT&0\\
OFFSET\_END&1
\end{tabular}
\newpage
\begin{tabular}{lll}
OKABORT&0x0004\\
OKCANCEL&0x0002&MENUCANCEL\\
OKIMATE\_20&0x09\\
OKOK&0x0001&MENUHOT\\
ONEDOT&0x2\\
ONE\_DOT&0x2\\
OTHER\_REFRESH&0x00C0\\
OUTSTEP&0x2000\\
OVERLAY&0x0004\\
OVFLAG&0x20\\
PA\_IGNORE&2\\
PAL&4\\
PARALLELNAME&`parallel.device'\\
PARALLEL\_PRINTER&0x00\\
PARB\_EOFMODE&1\\
PARB\_RAD\_BOOGIE&3\\
PARB\_SHARED&5\\
ParErr\_BufTooBig&2\\
ParErr\_DevBusy&1\\
ParErr\_InitErr&7\\
ParErr\_InvParam&3\\
ParErr\_LineErr&4\\
ParErr\_NotOpen&5\\
ParErr\_PortReset&6\\
PARF\_EOFMODE&$2^1$\\
PARF\_RAD\_BOOGIE&$2^3$\\
PARF\_SHARED&$2^5$\\
PA\_SIGNAL&0\\
PA\_SOFTINT&1\\
PDCMD\_QUERY&9&CMD\_NONSTD + 0\\
PDCMD\_SETPARAMS&10&CMD\_NONSTD + 1\\
PDERR\_BADDIMESNSION&4\\
PDERR\_BUFFERMEMORY&7\\
PDERR\_CANCEL&1\\
PDERR\_DIMENSIONOVFLOW&5\\
PDERR\_INTERNALMEMORY&6\\
PDERR\_INVERTHAM&3\\
PDERR\_NOTGRAPHICS&2\\
PF2PRI&0x40\\
PF\_ACTION&3\\
PFA\_FINE\_SCROLL&0xF\\
PFBA&0x40\\
PFB\_FINE\_SCROLL\_SHIFT&4\\
PF\_FINE\_SCROLL\_MASK&0xF\\
PI&3.141592653589793\\
PI2&1.570796326794896\\
PI4&0.785398163397448\\
PICA&0x000\\
PLNCNTMSK&0x7\\
PLNCNTSHFT&12\\
PMB\_ASM&21&M\_LNM + 1\\
PMB\_AWM&22&PMB\_ASM + 1\\
POINTERSIZE&36\\
POINTREL&0x0001\\
PPC\_4COLOR&0x4\\
PPC\_ADDITIVE&0x8\\
PPCB\_COLOR&1\\
PPCB\_GFX&0\\
PPC\_BGR&0xA\\
PPC\_BGRW&0xC\\
PPC\_BGR\_WB&0xB\\
PPC\_BW&1
\end{tabular}
\newpage
\begin{tabular}{lll}
PPC\_BWALPHA&0\\
PPC\_BWGFX&1\\
PPC\_COLORGFX&3\\
PPCF\_COLOR&2\\
PPCF\_GFX&1\\
PPC\_WB&0x9\\
PPC\_YMC&2\\
PRD\_DUMPRPORT&11&CMD\_NONSTD + 2\\
PRD\_PRTCOMMAND&10&CMD\_NONSTD + 1\\
PRD\_RAWWRITE&9&CMD\_NONSTD + 0\\
PREDRAWN&0x0002\\
PREF\_EXTBYTES&64\\
PRIMARY\_CLIP&0\\
PROPBORDERLESS&0x0008\\
PROPGADGET&0x0003\\
P\_STKSIZE&0x800\\
QUME\_LP\_20&0x0A\\
RAWKEY&0x00000400\\
RECOVERY\_ALERT&0x00000000\\
REFRESHBITS&0x00C0\\
REFRESHWINDOW&0x00000004\\
RELVERIFY&0x0001\\
REPORTMOUSE&0x0200\\
REQACTIVE&0x2000\\
REQCLEAR&0x00001000\\
REQGADGET&0x1000\\
REQOFFWINDOW&0x1000\\
REQSET&0x00000080\\
REQVERIFY&0x00008000\\
RESCOUNT&2\\
RETURN\_ERROR&10\\
RETURN\_FAIL&20\\
RETURN\_OK&0\\
RETURN\_WARN&5\\
RIGHTBORDER&0x0010\\
RIGHTHIT&8\\
RINGTRIGGER&0x0001\\
RMBTRAP&0x00010000\\
ROBOTICF0&1\\
ROMBOOT\_NAME&`romboot.library'\\
RPLOCK&6\\
RTC\_MATCHWORD&0x4AFC\\
RTF\_AUTOINIT&\%10000000\\
RTF\_COLDSTART&\%00000001\\
RTM\_WHEN&3\\
RTW\_COLDSTART&1\\
RTW\_NEVER&0\\
SAVEBACK&0x0002\\
SAVEBOB&0x0001\\
SAVEPRESERVE&0x1000\\
SBUF\_512&0x00\\
SBUF\_1024&0x01\\
SBUF\_2048&0x02\\
SBUF\_4096&0x03\\
SBUF\_8000&0x04\\
SBUF\_16000&0x05\\
SBUFSIZE\_BITS&0x0F\\
SCREENBEHIND&0x0080\\
SCREENQUIET&0x0100\\
SCREENTYPE&0x000F\\
SCRGADGET&0x4000
\end{tabular}
\newpage
\begin{tabular}{lll}
SDCMD\_BREAK&10&CMD\_NONSTD + 1\\
SDCMD\_QUERY&9&CMD\_NONSTD + 0\\
SDCMD\_SETPARAMS&11&CMD\_NONSTD + 2\\
SDRAGGADGET&7\\
SDRAGGING&0x0030\\
SDOWNBACK&0x0070\\
SDOWNBACKGADGET&6\\
SELECTDOWN&0x68&IECODE\_LBUTTON\\
SELECTED&0x0080\\
SELECTUP&0xE8&IECODE\_LBUTTON$|$IECODE\_UP\_PREFIX\\
SERB\_7WIRE&2\\
SERB\_EOFMODE&6\\
SERB\_PARTY\_ODD&1\\
SERB\_PARTY\_ON&0\\
SERB\_QUEUEDBRK&3\\
SERB\_RAD\_BOOGIE&4\\
SERB\_SHARED&5\\
SERB\_XDISABLED&7\\
SerErr\_BaudMismatch&2\\
SerErr\_BufErr&4\\
SerErr\_BufOverflow&12\\
SerErr\_DetectedBreak&15\\
SerErr\_DevBusy&1\\
SerErr\_InitErr&10\\
SerErr\_InvBaud&3\\
SerErr\_InvParam&5\\
SerErr\_LineErr&6\\
SerErr\_NoCTS&14\\
SerErr\_NoDSR&13\\
SerErr\_NotOpen&7\\
SerErr\_ParityErr&9\\
SerErr\_PortReset&8\\
SerErr\_TimeErr&11\\
SERF\_7WIRE&$2^2$\\
SERF\_EOFMODE&$2^6$\\
SERF\_PARTY\_ODD&$2^1$\\
SERF\_PARTY\_ON&$2^0$\\
SERF\_QUEUEDBRK&$2^3$\\
SERF\_RAD\_BOOGIE&$2^4$\\
SERF\_SHARED&$2^5$\\
SERF\_XDISABLED&$2^7$\\
SERIALNAME&`serial.device'\\
SERIAL\_PRINTER&0x01\\
SEXTB\_MARK&0\\
SEXTB\_MSPON&1\\
SEXTF\_MARK&1\\
SEXTF\_MSPON&2\\
SF\_ALERTWACK&0x2\\
SGR\_BLACK&30\\
SGR\_BLACKBG&40\\
SGR\_BLUE&34\\
SGR\_BLUEBG&44\\
SGR\_BOLD&1\\
SGR\_CLR0&30\\
SGR\_CLR0BG&40\\
SGR\_CLR1&31\\
SGR\_CLR1BG&41\\
SGR\_CLR2&32\\
SGR\_CLR2BG&42\\
SGR\_CLR3&33\\
SGR\_CLR3BG&43
\end{tabular}
\newpage
\begin{tabular}{lll}
SGR\_CLR4&34\\
SGR\_CLR4BG&44\\
SGR\_CLR5&35\\
SGR\_CLR5BG&45\\
SGR\_CLR6&36\\
SGR\_CLR6BG&46\\
SGR\_CLR7&37\\
SGR\_CLR7BG&47\\
SGR\_CYAN&36\\
SGR\_CYANBG&46\\
SGR\_DEFAULT&39\\
SGR\_DEFAULTBG&49\\
SGR\_GREEN&32\\
SGR\_GREENBG&42\\
SGR\_ITALIC&3\\
SGR\_MAGENTA&35\\
SGR\_MAGNETABG&45\\
SGR\_NEGATIVE&7\\
SGR\_PRIMARY&0\\
SGR\_RED&31\\
SGR\_REDBG&41\\
SGR\_UNDERSCORE&4\\
SGR\_WHITE&37\\
SGR\_WHITEBG&47\\
SGR\_YELLOW&33\\
SGR\_YELLOWBG&43\\
SHADE\_BW&0x00\\
SHADE\_COLOR&0x02\\
SHADE\_GREYSCALE&0x01\\
SHARED\_LOCK&$-2$\\
SHOWTITLE&0x0010\\
SHSHAKE\_NONE&2\\
SHSHAKE\_RTS&1\\
SHSHAKE\_XON&0\\
SIGB\_ABORT&0\\
SIGB\_BLIT&4\\
SIGB\_CHILD&1\\
SIGB\_DOS&8\\
SIGBREAKB\_CTRL\_C&12\\
SIGBREAKB\_CTRL\_D&13\\
SIGBREAKB\_CTRL\_E&14\\
SIGBREAKB\_CTRL\_F&15\\
SIGBREAKF\_CTRL\_C&$2^{12}$\\
SIGBREAKF\_CTRL\_D&$2^{13}$\\
SIGBREAKF\_CTRL\_E&$2^{14}$\\
SIGBREAKF\_CTRL\_F&$2^{15}$\\
SIGB\_SINGLE&4\\
SIGF\_ABORT&$2^0$\\
SIGF\_BLIT&$2^4$\\
SIGF\_CHILD&$2^1$\\
SIGF\_DOS&$2^8$\\
SIGF\_SINGLE&$2^4$\\
SIGNFLAG&0x40\\
SIH\_PRIMASK&0xF0\\
SIMPLE\_REFRESH&0x0040\\
SINGLE&0x80\\
SIX\_LPI&0x000\\
SIZEBOTTOM&0x0020\\
SIZEGADGET&2\\
SIZERIGHT&0x0010\\
SIZEVERIFY&0x00000001\\
SIZING&0x0010
\end{tabular}
\newpage
\begin{tabular}{lll}
SMART\_REFRESH&0x0000\\
SPARITY\_BITS&0xF0\\
SPARITY\_EVEN&1\\
SPARITY\_NONE&0\\
SPARITY\_ODD&2\\
SREAD\_BITS&0xF0\\
SPECIAL\_ASPECT&0x080\\
SPECIAL\_CENTER&0x040\\
SPECIAL\_DENSITY1&0x100\\
SPECIAL\_DENSITY2&0x200\\
SPECIAL\_DENSITY3&0x300\\
SPECIAL\_DENSITY4&0x400\\
SPECIAL\_DENSITYMASK&0xF00\\
SPECIAL\_FRACCOLS&0x010\\
SPECIAL\_FRACROWS&0x020\\
SPECIAL\_FULLCOLS&0x004\\
SPECIAL\_FULLROWS&0x008\\
SPECIAL\_MILCOLS&0x001\\
SPECIAL\_MILROWS&0x002\\
SPRITE\_ATTACHED&0x80\\
SPRITES&0x4000\\
SRCA&0x800\\
SRCB&0x400\\
SRCC&0x200\\
SSTOP\_BITS&0xF0\\
STDSCREENHEIGHT&$-1$\\
STRGADGET&0x0004\\
STRINGCENTER&0x0200\\
STRINGRIGHT&0x0400\\
SUD&0x10\\
SUL&0x8\\
SUPER\_BITMAP&0x0080\\
SUPER\_UNUSED&0xFCFC0000\\
SUPFRONT&0x0050\\
SUPFRONTGADGET&5\\
SUSERFLAGS&0x00FF\\
SWRITE\_BITS&0x0F\\
SYSGADGET&0x8000\\
SYSREQUEST&0x4000\\
TBC\_HCLRTAB&0\\
TBC\_HCLRTABSALL&3\\
TB\_EXCEPT&5\\
TB\_LAUNCH&7\\
TB\_PROCTIME&0\\
TB\_STACKCHK&4\\
TB\_SWITCH&6\\
TD\_ADDCHANGEINT&20&CMD\_NONSTD + 11\\
TDB\_ALLOW\_NOW\_3\_5&0\\
TD\_CHANGENUM&13&CMD\_NONSTD + 4\\
TD\_CHANGESTATE&14&CMD\_NONSTD + 5\\
TDERR\_BadDriveType&33\\
TDERR\_BadHdrSum&24\\
TDERR\_BadSecHdr&27\\
TDERR\_BadSecID&23\\
TDERR\_BadSecPreamble&22\\
TDERR\_BadSecSum&25\\
TDERR\_BadUnitNum&32\\
TDERR\_DiskChanged&29\\
TDERR\_DriveInUse&34\\
TDERR\_NoMem&31
\end{tabular}
\newpage
\begin{tabular}{lll}
TDERR\_NoSecHdr&21\\
TDERR\_NotSpecified&20\\
TDERR\_PostReset&35\\
TDERR\_SeekError&30\\
TDERR\_TooFewSecs&26\\
TDERR\_WriteProt&28\\
TDF\_ALLOW\_NOW\_3\_5&1\\
TDF\_EXTCOM&\%1000000000000000\\
TD\_FORMAT&11&CMD\_NONSTD + 2\\
TD\_GETDRIVETYPE&18&CMD\_NONSTD + 9\\
TD\_GETNUMTRACKS&19&CMD\_NONSTD + 10\\
TD\_LABELSIZE&16\\
TD\_LASTCOMM&22&CMD\_NONSTD + 13\\
TD\_MOTOR&9&CMD\_NONSTD + 0\\
TD\_NAME&`trackdisk.device'\\
TD\_PROTSTATUS&15&CMD\_NONSTD + 6\\
TD\_RAWREAD&16&CMD\_NONSTD + 7\\
TD\_RAWWRITE&17&CMD\_NONSTD + 8\\
TD\_REMCHANGEINT&21&CMD\_NONSTD + 12\\
TD\_REMOVE&12&CMD\_NONSTD + 3\\
TD\_SECSHIFT&9\\
TD\_SECTOR&512\\
TD\_SEEK&10&CMD\_NONSTD + 1\\
TF\_EXCEPT&$2^5$\\
TF\_LAUNCH&$2^7$\\
TF\_PROCTIME&$2^0$\\
TF\_STACKCHK&$2^4$\\
TF\_SWITCH&$2^6$\\
TICKS\_PER\_SECOND&50\\
TIMERNAME&`timer.device'\\
TOGGLESELECT&0x0100\\
TOPAZ\_EIGHTY&8\\
TOPAZ\_SIXTY&9\\
TOPBORDER&0x0040\\
TOPHIT&1\\
TOTALSLOTS&256\\
TR\_ADDREQUEST&9&CMD\_NONSTD + 0\\
TR\_GETSYSTIME&10&CMD\_NONSTD + 1\\
TR\_MakeBad&$-4$\\
TR\_NoMem&$-2$\\
TR\_NotUsed&$-1$\\
TR\_SETSYSTIME&11&CMD\_NONSTD + 2\\
TS\_ADDED&1\\
TS\_EXCEPT&5\\
TS\_INVALID&0\\
TS\_READY&3\\
TS\_REMOVED&6\\
TS\_RUN&2\\
TS\_WAIT&4\\
TWO\_PI&6.283185307179586\\
UNITF\_ACTIVE&1\\
UNITF\_INTASK&2\\
UNIT\_MICROHZ&0\\
UNIT\_VBLANK&1\\
UPFRONTGADGET&0\\
US\_LEGAL&0x10\\
US\_LETTER&0x00\\
VANILLAKEY&0x00200000\\
VIEWLOCK&4\\
VP\_HIDE&0x2000\\
VPOSRLOF&0x8000\\
VSIZEBITS&10&16 $-$ HSIZEBITS\\
VSIZEMASK&0x3FF
\end{tabular}
\newpage
\begin{tabular}{lll}
VSOVERFLOW&0x0800\\
VSPRITE&0x0001\\
WBDEVICE&6\\
WBDISK&1\\
WB\_DISKMAGIC&0xE310\\
WB\_DISKVERSION&1\\
WBDRAWER&2\\
WBENCHCLOSE&0x0002\\
WBENCHMESSAGE&0x00020000\\
WBENCHOPEN&0x0001\\
WBENCHSCREEN&0x0001\\
WBENCHWINDOW&0x02000000\\
WBGARBAGE&5\\
EBKICK&7\\
WBPROJECT&4\\
WBTOOL&3\\
WDOWNBACK&0x0060\\
WDRAGING&0x0020\\
WINDOWACTIVE&0x2000\\
WINDOWCLOSE&0x0008\\
WINDOWDEPTH&0x0004\\
WINDOWDRAG&0x0002\\
WINDOWREFRESH&0x01000000\\
WINDOWSIZING&0x0001\\
WINDOWTICKED&0x04000000\\
W\_TRACTOR&0x30\\
WUPFRONT&0x0040
\end{tabular}
\newpage
\Appendix {14} {C Operator Precedence Table}

In the table below operators with higher precedence are closer to the top of the chart. Operators in the same group have the same precedence. The associativity column shows the order of evaluation in the absence of parentheses.

\begin{tabular}{lll}
{\em Operation}&{\em Description}&{\em Associativity} \\
\hline
$()$&function call&left-to-right\\
$[]$&array indexing&left-to-right\\
$.$&structure or union member&left-to-right\\
$->$&structure or union member from pointer&left-to-right\\
\hline
$!$&logical negation&right-to-left\\
$\sim$&ones complement&right-to-left\\
$-$&unary mnius&right-to-left\\
$++$&increment&right-to-left\\
$--$&decrement&right-to-left\\
$\&$&address&right-to-left\\
$*$&indirection&right-to-left\\
$(type)$&type cast&right-to-left\\
$sizeof$&size in bytes&right-to-left\\
\hline
$*$&multiply&left-to-right\\
$/$&divide&left-to-right\\
$\%$&remainder (modulo)&left-to-right\\
\hline
$+$&add&left-to-right\\
$-$&subtract&left-to-right\\
\hline
$<<$&left shift&left-to-right\\
$>>$&right shift&left-to-right\\
\hline
$<$&less tahn&left-to-right\\
$<=$&less than or equal to&left-to-right\\
$>$&greater than&left-to-right\\
$>=$&greater than or equal to&left-to-right\\
\hline
$==$&equality test&left-to-right\\
$!=$&inequality test&left-to-right\\
\hline
$\&$&bitwise conjunction&left-to-right\\
\hline
\^{ }&bitwise exclusive-or&left-to-right\\
\hline
$|$&bitwise disjunction&left-to-right\\
\hline
$\&\&$&logical conjunction&left-to-right\\
\hline
$||$&logical disjunction&left-to-right\\
\hline
$?:$&conditional&right-to-left\\
\hline
$=$&assignment&right-to-left\\
$*=$&multiply assignment&right-to-left\\
$/=$&divide assignment&right-to-left\\
$\%=$&modulo assignment&right-to-left\\
$+=$&increment assignment&right-to-left\\
$-=$&decrement assignment&right-to-left\\
$<<=$&shift left assignment&right-to-left\\
$>>=$&shift right assignment&right-to-left\\
$\&=$&bitwise conjunction assignment&right-to-left\\
\^{ }$=$&bitwise exclusive-or assignment&right-to-left\\
$|=$&bitwise disjunction assignment&right-to-left\\
\hline
$,$&comma&left-to-right
\end{tabular}

\newpage
\Appendix {15} {Guru Alert Numbers}

It's usually too late once you see one of these messages but some programmers
may need the assistance of these numbers to troubleshoot programs.

\begin{verbatim}
                      02 01 0009 . 00009310
                       |  |   |         |
    Subsystem Number---+  |   |         |
    General Error Code----+   |         |
    Specific Error Code-------+         |
    Task Address------------------------+
\end{verbatim}

An alert number is divided into several parts. The section to the right of the
decimal point is simply the address in RAM of the task that was running when
the error occurred.

The left hand portion of the alert number is an encoded error number. There
are several fields with different meanings:

The first two digits tell which module of the operating system reported the
error (this is technically known as the 'alert object' or a Subsystem ID). In
the example above the alert object is 02, which tells me that the error was
reported by the Graphics library.

The first digit can be encoded in a funny way. The 'most significant bit' of
this digit says whether or not this alert is a 'dead-end'; that is, does the
system have a chance of recovering from the error or not. If the alert object
had been given as 82 instead of 02, then the alert would be a 'dead-end'.

In practice, this is a pretty narrow distinction. By the time you have gotten
to the Alert Box the system is in such dire straits that the only choices left
are to reboot, or to enter the system debugger. The 'dead-end' bit could
possibly cause some confusion if you aren't used to dealing in hexadecimal. If
the first digit of the alert object is ever greater than 7 (hexadecimal) then
subtract 8 from it. Thus if the first two digits were B1, then the alert is a
dead-end error reported by the Workbench (Subsystem ID code 31). (B minus 8
equals 3, for those of you without the required 16 fingers!)

The Subsystem ID codes are as follows:

\begin{verbatim}
Exec Library        01     Console Device      11
Graphics Library    02     GamePort Device     12
Layers Library      03     Keyboard Device     13
Intuition Library   04     TrackDisk Device    14
Math Library        05     Timer Device        15
CList Library       06     CIA Resource        20
DOS Library         07     Disk Resource       21
RAM Library         08     Misc Resource       22
Icon Library        09     BootStrap           30
Audio Device        10     Workbench           31
\end{verbatim}

The next two digits specify the general type of error which has occurred. For
many specialized types of errors this field is 00, instead of one of the
general error codes below. This field is often very useful, since the user can
easily tell such things as out-of-memory conditions, and missing libraries or
device drivers. In the example given above the general error code is 01, which
means the the Graphics Library was not able to find enough free memory to
allocate for some reason.

The general error codes are:

\begin{verbatim}
Insufficient memory   01    OpenDevice error    04
MakeLibrary error     02    OpenResource error  05
OpenLibrary error     03    I/O error           06
\end{verbatim}

The last four digits of the alert number give specific information about
exactly what error has occurred. The interpretation of the specific error code
depends on which subsystem we are talking about. Each subsystem reuses the
same values for the specific error code with different meanings. In our
example the specific error code is 0009. Since we are talking about an error
in the graphics library, we determine that the error is called `TextTmpRas'
which means that a call to the Text() routine (trying to draw characters on
the screen) ran out of memory when it tried to allocate memory for a TmpRas
(temporary raster work area) data structure.

If the error had been in a different subsystem (say the Intuition library)
then the same error code of 0009 would have had a completely different
interpretation (for Intuition it would mean that the Screen Type parameter to
an OpenScreen call was not a valid type).

There is one special case in dealing with Guru Meditation Numbers. Everything
that we have discussed so far has to do with alerts that are detected and
generated by the Amiga ROM Kernel. There is another case, which is when an
alert is caused by a 68000 processor exception (or `trap'). Whenever a CPU
trap occurs (for instance, an illegal opcode is executed) the Exec will
generally cause an alert. A program can intercept this trap processing, and
insert its own 'trap handler' to perform some other function, but usually
these traps end up causing an alert. When this happens, the left hand part of
the guru number will be a small value. The subsystem ID and the general error
code will both be zero. The specific error code will be the `trap number' of
the trap that occurred. The trap numbers are part of the 68000 chip, and are
not assigned by the ROM kernel like other error codes are.

The following is a list of all the possible CPU traps. A few of these will
never show up as an alert because they are always handled by the ROM Kernel.

\begin{verbatim}
Bus Error              02      Priviledge Violation   08
Address Error          03      Instruction Trace      09
Illegal Instruction    04      Line A Emulation       0A
Divide by Zero         05      Line F Emulation       0B

CHK instruction        06      TRAP 0 ... 15          20 ... 2F
TRAPV (Overflow)       07
\end{verbatim}

The following is a list of the specific error codes and a short comment about
their meaning. The descriptions are a slightly edited version of the
exec/alerts file, so they are very cryptic.

\begin{verbatim}
ExecLib        01000000
ExcptVect      81000001    CPU trap vector checksum
BaseChkSum     81000002    ExecBase checksum error
LibChkSum      81000003    library checksum failure
LibMem         81000004    no memory to make library
MemCorrupt     81000005    corrupted free memory list
IntrMem        81000006    no memory for interrupt servers
InitAPtr       81000007    InitStruct() of an APTR source
GraphicsLib    02000000
CopDisplay     82010001    copper display list, no memory
CopInstr       82010002    copper instruction list, no mem.
CopListOver    82000003    copper list too long
CopIListOver   82000004    copper intermediate list too long
CopListHead    82010005    copper list head, no memory
LongFrame      82010006    long frame, no memory
ShortFrame     82010007    short frame, no memory
FloodFill      82010008    flood fill, no memory
TextTmpRas     02010009    text, no memory for TmpRas
BltBitMap      8201000A    BltBitMap, no memory
LayersLib      03000000
Intuition      04000000
GadgetType     84000001    unknown gadet type
BadGadget      04000001    Recoverable form of GadgetType
CreatePort     84010002    create port, no memory
ItemAlloc      04010003    item plane alloc, no memory
SubAlloc       04010004    sub alloc, no memory
PlaneAlloc     84010005    plane alloc, no memory
ItemBoxTop     84000006    item box top < RelZero
OpenScreen     84010007    open screen, no memory
OpenScrnRast   84010008    OpenScreen's AllocRast, no mem.
SysScrnType    84000009    open sys screen, unknown type
AddSWGadget    8401000A    add SW gadgets, no memory
OpenWindow     8401000B    open window, no memory
BadState       8400000C    Bad State Return entering Int.
BadMessage     8400000D    Bad Message received by IDCMP
WeirdEcho      8400000E    Weird echo causing problem
NoConsole      8400000F    couldn't open the Console Device
MathLib        05000000
CListLib       06000000
DOS Library
DOSLib         07000000
StartMem       07010001    no memory at startup
EndTask        07000002    EndTask didn't
QPktFail       07000003    Qpkt failure
AsyncPkt       07000004    Unexpected packet received
FreeVec        07000005    Freevec failed
DiskBlkSeq     07000006    Disk block sequence error
BitMap         07000007    Bitmap corrupt
KeyFree        07000008    Key already free
BadChkSum      07000009    Invalid checksum
DiskError      0700000A    Disk Error
KeyRange       0700000B    Key out of range
BadOverlay     0700000C    Bad overlay
RAMLib         08000000
IconLib        09000000
AudioDev       10000000
ConsoleDev     11000000
GamePortDev    12000000
KeyboardDev    13000000
TrackDiskDev   14000000
TDCalibSeek    14000001    calibrate: seek error
TDDelay        14000002    delay: error on timer wait
TimerDev       15000000
TMBadReq       15000001    bad request
CIARsrc        20000000
DiskRsrc       21000000
DRHasDisk      21000001    get unit: alread has disk
DRIntNoAct     21000002    interrupt: no active unit
MiscRsrc       22000000
BootStrap      30000000
BootError      30000001    Boot code returned an error
Workbench      31000000
Help!!         48454C50    When the Guru gets confused (Help in Ascii)
\end{verbatim}

Enjoy, and may you never have to use this chart!
\newpage
\Appendix {16} {SCSI/IDE Pin Assignments}

{\bf SCSI table of connections for single ended pin assignments.}

\begin{tabular}{ll}
-DB(0) & 26\\
-DB(1) & 27\\
-DB(2) & 28\\
-DB(3) & 29\\
-DB(4) & 30\\
-DB(5) & 31\\
-DB(6) & 32\\
-DB(7) & 33\\
-DP(P) & 34\\
GROUND & 35\\
GROUND & 36\\
GROUND & 37\\
TERMPWR &38\\
GROUND & 39\\
GROUND & 40\\
-ATN &   41\\
GROUND & 42\\
-BSY &   43\\
-ACK &   44\\
-RST &   45\\
-MSG &   46\\
-SEL &   47\\
-C/D &   48\\
-REQ &   49\\
-I/O &   50
\end{tabular}

{\bf Notes:}

1. Pins 1--12 and 14--25 shall be connencted to ground. Pin 13 should be left
open. Some products designed prior to this standard connected this pin to
ground.

2. The minus sign next to the signal indicates active low.

{\bf SCSI twisted pair assignments}

\begin{tabular}{llll}
SHIELD GROUND & 1 &       26 &     GROUND\\
+DB(0) &   2 &  27 &     -DB(0)\\
+DB(1) &   3 &  28 &     -DB(1)\\
+DB(2) &   4 &  29 &     -DB(2)\\
+DB(3) &   5 &  30 &     -DB(3)\\
+DB(4) &   6 &  31 &     -DB(4)\\
+DB(5) &   7 &  32 &     -DB(5)\\
+DB(6) &   8 &  33 &     -DB(6)\\
+DB(7) &   9 &  34 &     -DB(7)\\
+DP(P) &   10 & 35 &     -DP(P)\\
DIFFSENS & 11 & 36 &     GROUND\\
GROUND &   12 & 37 &     GROUND\\
TERMPWR &  13 & 38 &     TERMPWR\\
GROUND &   14 & 39 &     GROUND\\
+ATN &     15 & 40 &     -ATN\\
GROUND &   16 & 41 &     GROUND\\
+BSY &     17 & 42 &     -BSY\\
+ACK &     18 & 43 &     -ACK\\
+RST &     19 & 44 &     -RST\\
+MSG &     20 & 45 &     -MSG\\
+SEL &     21 & 46 &     -SEL\\
+C/D &     22 & 47 &     -C/D\\
+REQ &     23 & 48 &     -REQ\\
+I/O &     24 & 49 &     -I/O\\
GROUND &   25 & 50 &     GROUND
\end{tabular}

{\bf Note:}

SHIELD GROUND is optional on some cables. Some shielded flat ribbon cable use
pin 1 as a connection to the shield.

{\bf IDE Connections}

From the A4000 manual, page B--13:

\begin{verbatim}
Internal AT IDE
Connector type: 40-pin male (motherboard)

 2                                     40
 o o o o o o o o o o o o o o o o o o o o
 o o o o o o o o o o o o o o o o o o o o
 1                                     39
\end{verbatim}

\begin{tabular}{lll}
   Pin  &    I/O & Signal\\
\hline
    1 & O & /RESET\\
    2 & - & Ground\\
    3 & I/O & Drive Data 7\\
    4 & I/O & Drive Data 8\\
    5 & I/O & Drive Data 6\\
    6 & I/O & Drive Data 9\\
    7 & I/O & Drive Data 5\\
    8 & I/O & Drive Data 10\\
    9 & I/O & Drive Data 4\\
   10 & I/O & Drive Data 11\\
   11 & I/O & Drive Data 3\\
   12 & I/O & Drive Data 12\\
   13 & I/O & Drive Data 2\\
   14 & I/O & Drive Data 13\\
   15 & I/O & Drive Data 1\\
   16 & I/O & Drive Data 14\\
   17 & I/O & Drive Data 0\\
   18 & I/O & Drive Data 15\\
   19 & - & Ground\\
   20 & - & N/C\\
   21 & - & N/C\\
   22 & - & Ground\\
   23 & O & /IOW (Write Strobe)\\
   24 & - & Ground\\
   25 & O & /IOR (Read Strobe)\\
   26 & - & Ground\\
   27 & I & IO\_CH\_RDY\\
   28 & - & N/C\\
   29 & - & N/C\\
   30 & - & Ground\\
   31 & I & Interrupt Request\\
   32 & - & N/C\\
   33 & O & DA1 (Address 1)\\
   34 & - & N/C\\
   35 & O & DA0 (Address 0)\\
   36 & O & DA2 (Address 2)\\
   37 & O & /IDE\_CS1\\
   38 & O & /IDE\_CS2\\
   39 & O & /ACTIVE (LED Driver)\\
   40 & - & Ground
\end{tabular}
\end{document}
\bye

