=====================
Reference Manual
================
-version 2.0.18
+version 2.0.21
==============
© and notes
-o\ *file[.o]* Direct object code output to the specified file.
+/~oall Turn all optimisations on/off
-+o\ *0-9* Enable specific optimisation
-~o\ *0-9* Disable specific optimisation
++o\ *0-10*/*p* Enable specific optimisation
+~o\ *0-10*/*p* Disable specific optimisation
`0: Absolute long adddresses to word (on by default)`
`9: Convert adda.w/l #x,Dy to lea x(Dy),Dy`
- 'p: Enforce PC relative'
+ `p: Force PC-Relative mode (alternative: o10)`
-p Produce an executable (**.prg**) output file.
-ps Produce an executable (**.prg**) output file with symbols.
-px Produce an executable (**.prg**) output file with extended symbols.
**~** Tilde: bitwise not (l's complement).
**^^defined** *symbol* True if symbol has a value.
**^^referenced** *symbol* True if symbol has been referenced.
-**^^streq** *stringl*,*string2* True if the strings are equal.
+**^^streq** *stringl*, *string2* True if the strings are equal.
**^^macdef** *macroName* True if the macro is defined.
**^^abscount** Returns the size of current .abs section
**^^filesize** *string_filename* Returns the file size of supplied filename
The following sections list warnings, errors and fatal errors in alphabetical
order, along with a short description of what may have caused the problem.
-.. [3] If you come across an internal error, we would appreciate it if you would contact Atari Technical Support and let us know about the problem.
+.. [3] If you come across an internal error, we would appreciate it if you would contact the rmac development team and let us know about the problem.
`Warnings`_
'''''''''''
**unknown symbol following ^^**
- You followed a ^^ with something other than one of the names defined, ref-
- erenced or streq.
+ You followed a ^^ with something other than one of the names defined, referenced
+ or streq.
**unsupported 68020 addressing mode**
- The assembler saw a 68020-type addressing mode. RMAC does not assem-
- ble code for the 68020 or 68010.
+ The assembler saw a 68020-type addressing mode. RMAC does not assemble
+ code for the 68020 or 68010.
**unterminated string**
//
// Add an entry to the BSD symbol table
//
+// From stab.def (https://sites.uclouvain.be/SystInfo/usr/include/bits/stab.def.html):
+/*
+_________________________________________________
+| 00 - 1F are not dbx stab symbols |
+| In most cases, the low bit is the EXTernal bit|
+
+| 00 UNDEF | 02 ABS | 04 TEXT | 06 DATA |
+| 01 |EXT | 03 |EXT | 05 |EXT | 07 |EXT |
+
+| 08 BSS | 0A INDR | 0C FN_SEQ | 0E WEAKA |
+| 09 |EXT | 0B | 0D WEAKU | 0F WEAKT |
+
+| 10 WEAKD | 12 COMM | 14 SETA | 16 SETT |
+| 11 WEAKB | 13 | 15 | 17 |
+
+| 18 SETD | 1A SETB | 1C SETV | 1E WARNING|
+| 19 | 1B | 1D | 1F FN |
+*/
uint8_t * AddBSDSymEntry(uint8_t * buf, SYM * sym, int globflag)
{
chptr = buf; // Point to buffer for depositing longs
" o7: clr.l Dx to moveq #0,Dx (off)\n"
" o8: adda.w/l #x,Dy to addq.w/l #x,Dy (off)\n"
" o9: adda.w/l #x,Dy to lea x(Dy),Dy (off)\n"
- " op: Enforce PC relative (off)\n"
+ " op: Enforce PC relative (alternative: o10) (off)\n"
" ~o[value] Turn a specific optimisation off\n"
" +oall Turn all optimisations on\n"
" ~oall Turn all optimisations off\n"