Various little a.out output-related bugfixes.
[m68k-assembler.git] / README
bloba23f5e5e215ba5e66c26d5b3c41f7dbd5f22e1fe
2 The goal of this assembler is to eventually not be simply an M68K
3 assembler, but to be relatively easily retargetable.  Also, this
4 assembler should be callable from other CL applications, as well as
5 executable as a stand-alone program.
8 Things to add in the grammar/parser/lexer:
10 Support for ' (single ASCII character?) -- only because the
11         book I have says it's part of Motorola's standard.  Should it
12         behave like double-quotes or what?
13 Support for floats (once FPU instructions are supported).
14 Line continuations with "\".
15 Literate input.
18 Things to add in the assembler:
20 Verify that BSS contains only zeros.
21 Checking ranges of types, signed indices, etc.
22         Also, type checking information stored in the symbol table.
23 Output listings (with cycle counts, et cetera).
24 Add better PC-relative stuff (.+6 or *+42 notation f.ex).
25 Support for later chips in the m68k line, and enabling/disabling
26         allowance of their added instructions.
27 Change lookup tables so that on load, they get converted to hash
28         tables or whatever's appropriate.
29 Nifty local labels a-la GNU as or similar.  (0f, 1b, etc)
30 CL-style macros?  (that would be cool!)
31 Debugger info.
32 Output in object formats other than A.OUT.
33 Optimizations/data flow analysis.
36 THINGS TO DO BEFORE RELEASE
38 - remove debugging output.
39 - add a decent warning/error display and logging system.
40 - compile list of known issues, try to resolve.
41 - start converting improvised list structure into real structures or
42   objects.
43 - put together a basic automated test suite.
44   (once object format has settled down, start a set of regression files,
45    with sane output verified by hand.)
46 - skim all XXXs.
47 - once a better warning system is in place, allow routines like
48 MODIFIER-BITS to guess the size of underspecified operations, and warn
49 about them at suitable warning levels.
50 - test with sourcer68 output of various files.
51 - Things to test about relocation:
52         are 8-bit indirect displacements being relocated correctly?
53         verify all possible relocation combinations.    
54 - Update dependencies in ASDF file so that it compiles without warnings.
58 KNOWN ISSUES
60 - macro parameters are broken.  At least, <foo> style ones are still
61   broken.  [assembler]
62 - no checking of vconstraints yet. [codegen]
63 - DC.B should handle strings properly (right now it will probably only
64   write out the last byte). [assembler]
65 - Unfinished pseudo-ops:
66         EQUR
67         DCB
68         END
69         IFxx
70 - branch-displacement-bits will behave badly in some unusual situations.
71 - data segment relocations are unsupported.
74 KNOWN MAJOR INCOMPATIBILITIES WITH DEVPAC
76 These are things which aren't likely to change soon.
78 Macros:
80 - we don't support < or > embedded in macro parameters which are
81   already wrapped in < and >.  (eg: "<foo>>>>2>" => "foo>>2") [lexer]
84 ENHANCEMENTS FROM DEVPAC
86 - We support EXTERN/GLOBAL as synonyms for XREF/XDEF,
87   respectively.  Also ALIGN as a simple version of CNOP.