Beginning of move to structures from lists.
[m68k-assembler.git] / README
blob13b47439b0a3ddcb15a7ad40bdf90a04451deef4
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 CL-style macros?  (that would be cool!)
21 Checking ranges of types, signed indices, etc.
22         Also, type checking information stored in the symbol table.
23 Verify that BSS contains only zeros.
24 Support for later chips in the m68k line, and enabling/disabling
25         allowance of their added instructions.
26 Nifty local labels a-la GNU as or similar.  (0f, 1b, etc)
27 Optimizations/data flow analysis.
28 Output listings (with cycle counts, et cetera).
29 Debugger info.
30 Output in object formats other than A.OUT.
31 Change lookup tables so that on load, they get converted to hash
32         tables or whatever's appropriate.
35 Things to add in the linker:
37 [see st-linker/]
38 uh, the whole linker. ;-)
39 Atari ST bootfloppy target.
40 Atari ST PRG target.
41 linker scripts.
42 Optimizing linker ideas (see Levine's Linkers and Loaders).
45 THINGS TO DO BEFORE RELEASE
47 - remove debugging output.
48 - add a decent warning/error display and logging system.
49 - compile list of known issues, try to resolve.
50 - start converting improvised list structure into real structures or
51   objects.
52 - put together a basic automated test suite.
53 - skim all XXXs.
56 KNOWN ISSUES
58 - macro parameters are broken.  At least, <foo> style ones are still
59   broken.  [assembler]
60 - ADDQ/SUBQ are broken with immediate value #8. [codegen]
61 - no checking of vconstraints yet. [codegen]
62 - DC.B should handle strings properly (right now it will probably only
63   write out the last byte). [assembler]
64 - Unfinished pseudo-ops:
65         EQUR
66         DCB
67         END
68         IFxx
71 KNOWN MAJOR INCOMPATIBILITIES WITH DEVPAC
73 These are things which aren't likely to change soon.
75 Macros:
77 - we don't support < or > embedded in macro parameters which are
78   already wrapped in < and >.  (eg: "<foo>>>>2>" => "foo>>2") [lexer]
81 ENHANCEMENTS FROM DEVPAC
83 - We support EXTERN/GLOBAL as synonyms for XREF/XDEF,
84   respectively.  Also ALIGN as a simple version of CNOP.