TODO revision 677833bc953b6cb418c701facbdcf4aa18d6c44e
8efcf516f2b6514879fff8d034be55b6d64ff830strikerNASM TODO list
8843b75d1c70af3da9a7306c4aede3b3e9346deajwoolley==============
9f7325ecad575cf77ab76b01beaaf339a63490b5trawickThis, like the AUTHORS file, is intended for easy readability by both human
9f7325ecad575cf77ab76b01beaaf339a63490b5trawickand machine, thus the format.
8565f742f1ee3d514b2d48a1f2a5af5d7437c3b9trawick V: version you should expect it by
8565f742f1ee3d514b2d48a1f2a5af5d7437c3b9trawick R: responsible person or - if unassigned
8565f742f1ee3d514b2d48a1f2a5af5d7437c3b9trawick C: % complete
8843b75d1c70af3da9a7306c4aede3b3e9346deajwoolley D: description
8843b75d1c70af3da9a7306c4aede3b3e9346deajwoolley D: maybe on multiple lines
8843b75d1c70af3da9a7306c4aede3b3e9346deajwoolleyAnything that doesn't start with /^[FVRCD]:/ should be ignored.
dcecfbe7e63603d0fb95e4811e015039e9401990stoddard F:-line triggers new entry.
dcecfbe7e63603d0fb95e4811e015039e9401990stoddard Empty V,R,C assume: V: ?, R: -, C: 0%
0c7592379b55b7736dd70d2d87f53af9a2347614jerenkrantz=============
4844d314b0b6e55a309621b84c1786446c5fb418ianhF: i18n via gettext
127c81d6b2c9ba8932273c2e1b13e3ea3d673b07trawickF: Convert shallow code model to deep code model
127c81d6b2c9ba8932273c2e1b13e3ea3d673b07trawickD: Tired of messing between lots of unrelated files (especially .c/.h stuff)
127c81d6b2c9ba8932273c2e1b13e3ea3d673b07trawickF: Automated dependency generation for Makefile
59d01b9ed1de043745262e49bb44bde7095c4723jwoolleyD: Current looks awful and will break if anything changes.
59d01b9ed1de043745262e49bb44bde7095c4723jwoolleyF: Move output modules out*.c to output/ subdir
e6e65585927961caf45d4e9e932bb1f4e9e89ca1jerenkrantz== THESE ARE FROM old NASM's Wishlist
e6e65585927961caf45d4e9e932bb1f4e9e89ca1jerenkrantz== THEY NEED SEVERE REVISING (seems they weren't updated for a couple of years or so)
b068b71651c802cc4e0b835495ad0e41c65e1174trawickF: Check misc/ide.cfg into RCS as Watcom IDE enhancement thingy
34a1e566d4af2735c87e2d3e6ac5e505855518aawroweD: (nop@dlc.fi)
34a1e566d4af2735c87e2d3e6ac5e505855518aawroweF: Package the Linux Assembler HOWTO
34a1e566d4af2735c87e2d3e6ac5e505855518aawroweF: 3DNow!, SSE and other extensions need documenting
34a1e566d4af2735c87e2d3e6ac5e505855518aawroweD: hpa: Does it really make sense to have a whole instruction set
34a1e566d4af2735c87e2d3e6ac5e505855518aawroweD: reference packaged with the assembler?
34a1e566d4af2735c87e2d3e6ac5e505855518aawroweF: prototypes of lrotate don't match in test/*. Fix.
34a1e566d4af2735c87e2d3e6ac5e505855518aawroweF: Build djgpp binaries for 0.98 onwards. Look into PMODE/W as a stub
34a1e566d4af2735c87e2d3e6ac5e505855518aawroweD: it might be a lot better than CWSDPMI. It's in PMW133.ZIP.
34a1e566d4af2735c87e2d3e6ac5e505855518aawroweF: %undef operator that goes along with %define
dd39efc1f7ed97cf526aefa24359f0be2ac5c3f4trawickF: Fix `%error' giving error messages twice.
f53367106769f90696d9c1f0ffcf9fbb4db883c2jerenkrantzD: Not especially important, as changes planned for 1.1x below will make
f53367106769f90696d9c1f0ffcf9fbb4db883c2jerenkrantzD: the preprocessor be only called once.
9a940e8e90f9b163737e23bbf72a3f2c67a39220brianpF: Sort out problems with OBJ
9a940e8e90f9b163737e23bbf72a3f2c67a39220brianpD: * TLINK32 doesn't seem to like SEGDEF32 et al. So for that, we
8496c88debb9962575dac2b1ef9b81984d7bd759brianpD: should avoid xxx32 records wherever we can.
8496c88debb9962575dac2b1ef9b81984d7bd759brianpD: * However, didn't we change _to_ using xxx32 at some stage? Try
8496c88debb9962575dac2b1ef9b81984d7bd759brianpD: to remember why and when.
8496c88debb9962575dac2b1ef9b81984d7bd759brianpD: * Apparently Delphi's linker has trouble with two or more
7c8747b339a5e47ea8301907051a9974d15b23b7brianpD: globals being defined inside a PUBDEF32. Don't even know if it
7c8747b339a5e47ea8301907051a9974d15b23b7brianpD: _can_ cope with a PUBDEF16.
98f81eac9530d487f05013cda9df99755bb59689trawickD: * Might need extra flags. *sigh*
0b493ad526b8bbc2ff21ce19510fc32238abb816jwoolleyF: Symbol table output may possibly be useful.
0b493ad526b8bbc2ff21ce19510fc32238abb816jwoolleyD: Ken Martwick (kenm@efn.org) wants the following format:
0b493ad526b8bbc2ff21ce19510fc32238abb816jwoolleyD: labelname type offset(hex) repetition count
1376737cb6afa24d3e12f3a223318fe1bd71bb1fsliveD: Possibly include xref addresses after repetition count?
1376737cb6afa24d3e12f3a223318fe1bd71bb1fsliveF: ELF fixes
ec1719a5748717f67dcd279bb64bd0da424ae450jerenkrantzD: There are various other bugs in outelf.c that make certain kinds
ec1719a5748717f67dcd279bb64bd0da424ae450jerenkrantzD: of relocation not work. See zbrown.asm. Looks like we may have to do
ec1719a5748717f67dcd279bb64bd0da424ae450jerenkrantzD: a major rewrite of parts of it. Compare some NASM code output with
dea9ded7417a8328f8fce5d57eca9d7af5500520trawickD: equivalent GAS code output. Look at the ELF spec. Generally fix things.
3f0220bf6e864d982a10348c9cc269bfe798d65eaaronF: ELF fixes
3f0220bf6e864d982a10348c9cc269bfe798d65eaaronD: NASM is currently using a kludge in ELF that involves defining
3f0220bf6e864d982a10348c9cc269bfe798d65eaaronD: a symbol at a zero absolute offset. This isn't needed, as the
75d133afee2e3636b07366fd62102b13b67b1b1djerenkrantzD: documented solution to the problem that this solves is to use
75d133afee2e3636b07366fd62102b13b67b1b1djerenkrantzD: SHN_UNDEF.
2ae7ad6f58b7e3188ed4bd375a8930808529ba71jwoolleyF: Debug information, in all formats it can be usefully done in.
2ae7ad6f58b7e3188ed4bd375a8930808529ba71jwoolleyD: * including line-number record support.
2ae7ad6f58b7e3188ed4bd375a8930808529ba71jwoolleyD: * "George C. Lindauer" <gclind01@starbase.spd.louisville.edu>
5b30f835d627766b024500189c35bb55e686e890brianpD: wants to have some say in how this goes through.
5b30f835d627766b024500189c35bb55e686e890brianpD: * Andrew Crabtree <andrewc@rosemail.rose.hp.com> wants to help out.
d45481dadf7f1f0ffd95b38b1c5b0ea6b2d57888jerenkrantzF: Think about a line-continuation character.
0c7592379b55b7736dd70d2d87f53af9a2347614jerenkrantzF: Consider allowing declaration of two labels on the same line,
0c7592379b55b7736dd70d2d87f53af9a2347614jerenkrantzD: syntax 'label1[:] label2[:] ... instruction'.
6d62bc22f8f22a43e66e2e4d8860a5a144316b1astoddardD: Need to investigate feasibility.
6d62bc22f8f22a43e66e2e4d8860a5a144316b1astoddardF: Quoting of quotes by doubling them, in string and char constants.
71eda8b1c14e4d0adb2f294f22299587cd3d74a9strikerF: Two-operand syntax for SEGMENT/SECTION macro to avoid warnings
922c0ad0014590bb10d13674012683eef44c0bbarederpjD: of ignored section parameters on reissue of __SECT__.
922c0ad0014590bb10d13674012683eef44c0bbarederpjD: Or maybe skip the warning if the given parameters are identical to
922c0ad0014590bb10d13674012683eef44c0bbarederpjD: what was actually stored. Investigate.
aec964227053fab7e59deb26709b94726ce67224rederpjF: Apparently we are not missing a PSRAQ instruction, because it
8ffd5c9693162130d35be41953f0dd3bba18edf7rederpjD: doesn't exist. Check that it doesn't exist as an undocumented
aec964227053fab7e59deb26709b94726ce67224rederpjD: instruction, or something stupid like that.
1e27f530f81c6058d1a11944ae1e2da45977fc7bjerenkrantzF: Any assembled form starting 0x80 can also start 0x82.
469549ac22c6f7b9ecdd9df2565925563e4df84djwoolleyD: ndisasm should know this. New special code in instruction encodings, probably.
469549ac22c6f7b9ecdd9df2565925563e4df84djwoolleyF: Pointing an EQU at an external symbol now generates an error.
7a9f3bef545b0bbc93c2ed758119b0d2e2647c31trawickD: There may be a better way of handling this; we should look into it.
7a9f3bef545b0bbc93c2ed758119b0d2e2647c31trawickD: Ideally, the label mechanism should be changed to cope with one
7a9f3bef545b0bbc93c2ed758119b0d2e2647c31trawickD: label being declared relative to another - that may work, but could be
0be05c658c7e6e5a05fd2d4068d8ac0f030d4752jwoolleyD: a pain to implement (or is it? it may be easy enough that you just
0be05c658c7e6e5a05fd2d4068d8ac0f030d4752jwoolleyD: need to declare a new offset in the same segment...) This should be done
223b367115aefc20f1c32fe2d4e2bfcc4bfe108fjwoolleyD: before v1.0 is released. There is a comment regarding this in labels.c,
223b367115aefc20f1c32fe2d4e2bfcc4bfe108fjwoolleyD: towards the end of the file, which discusses ways of fixing this.
223b367115aefc20f1c32fe2d4e2bfcc4bfe108fjwoolleyF: nested %rep used to cause a panic.
639cf068707865a81ad2c610e72d57b043d20dd6wroweD: Now a more informative error message is produced. This problem whould
639cf068707865a81ad2c610e72d57b043d20dd6wroweD: be fixed before v1.0.
639cf068707865a81ad2c610e72d57b043d20dd6wroweD: See comment in switch() statement block for PP_REP in do_directive()
639cf068707865a81ad2c610e72d57b043d20dd6wroweD: in preproc.c (line 1585, or thereabouts)
f3f0c2a5f6009d06350341219d1f38a1644708bcbrianpF: Contribution
f3f0c2a5f6009d06350341219d1f38a1644708bcbrianpD: zgraeme.tar contains improved hash table routines
33b095d35c5dac22358ce63c32635ab59ce7cb25aaronD: contributed by Graeme Defty <graeme@HK.Super.NET> for use in the
33b095d35c5dac22358ce63c32635ab59ce7cb25aaronD: label manager.
33b095d35c5dac22358ce63c32635ab59ce7cb25aaronF: Contribution
33b095d35c5dac22358ce63c32635ab59ce7cb25aaronD: zsyntax.zip contains a syntax-highlighting mode for
100e6f5dec61d108494565f8f3bfa894afadc33ajerenkrantzD: NASM, for use with the Aurora text editor (??).
100e6f5dec61d108494565f8f3bfa894afadc33ajerenkrantzF: Contribution
100e6f5dec61d108494565f8f3bfa894afadc33ajerenkrantzD: zvim.zip contains a syntax-highlighting mode for NASM, for use with vim.
5d5d5ca04c57c7ab865924f4648e8f80de27adfebrianpF: Contribution
4f3ec2ec53c7ca5ca308d85e2e0beb933a2fd0f9aaronD: Bennett's (<KendallB@scitechsoft.com>) alternative syntax stuff,
4f3ec2ec53c7ca5ca308d85e2e0beb933a2fd0f9aaronD: providing an alternative syntax mode for NASM which allows a macro
4f3ec2ec53c7ca5ca308d85e2e0beb933a2fd0f9aaronD: set to be written that allows the same source files to be
4f3ec2ec53c7ca5ca308d85e2e0beb933a2fd0f9aaronD: assembled with NASM and TASM.
3c0c3ae288166a8736593093c636768702abf263aaronR: Kendall Bennett
b8a843847aae3d9a1838fb8f1de84cd66212f48atrawickF: Add the UD2 instruction.
c8411888a54dd5dbfd8a5d337ebf0e911a789063trawickF: Add the four instructions documented in 24368901.pdf (Intel's own document).
28caffb98f18c0b9562ac20870f7ab91f3d9a01fjerenkrantzF: Some means of avoiding MOV memoffs,EAX which apparently the
28caffb98f18c0b9562ac20870f7ab91f3d9a01fjerenkrantzD: Pentium pairing detector thinks modifies EAX. Similar means of
d757628a07145aa711ba75b4e7c7c01a33133ca1jerenkrantzD: choosing instruction encodings where necessary.
1585c2979d749ee71edb6a1d57bc9ff6db12a426jerenkrantzF: The example of ..@ makes it clear that a ..@ label isn't just
1585c2979d749ee71edb6a1d57bc9ff6db12a426jerenkrantzD: local, but doesn't make it clear that it isn't just global either.
6bdb2c094666367615890147775bb18761216c8dminfrinF: hpa wants an evaluator operator for ceil(log2(x)).
6bdb2c094666367615890147775bb18761216c8dminfrinF: Extra reloc types in ELF
c069757188a3cd9ab19b05169b005a824b60b6fcaaronD: R_386_16 type 20, PC16 is 21, 8 is 22, PC8 is 23.
c069757188a3cd9ab19b05169b005a824b60b6fcaaronD: Add support for the 16s at least.
c069757188a3cd9ab19b05169b005a824b60b6fcaaronF: Lazy section creation or selective section output
c069757188a3cd9ab19b05169b005a824b60b6fcaaronD: in COFF/win32 at least and probably other formats: don't bother to emit a section
11ce97701b22d795fd1a5ec3769a3367bc220921wroweD: if it contains no data. Particularly the default auto-created
11ce97701b22d795fd1a5ec3769a3367bc220921wroweD: section. We believe zero-length sections crash at least WLINK (in win32).
11ce97701b22d795fd1a5ec3769a3367bc220921wroweF: Make the flags field in `struct itemplate' in insns.h a long instead of an int.
e45d7d4ca98387c2898f8302bafb31e3b4f5a5d8jwoolleyF: Implement %ifref to check whether a single-line macro has ever been expanded since (last re) definition. Or maybe not. We'll see.
239ab9d14d3851c2efc1312b3b42c838073533f4jerenkrantzF: add pointer to \k{insLEAVE} and \k{insENTER} in chapters about mixed-language programming.
239ab9d14d3851c2efc1312b3b42c838073533f4jerenkrantzF: Some equivalent to TASM's GLOBAL directive
239ab9d14d3851c2efc1312b3b42c838073533f4jerenkrantzD: ie something which defines a symbol as external if it doesn't end up being defined
c5fb76caa5498c60b991fcba8dfbf3c229f0f4d5rbbD: but defines it as public if it does end up being defined.
c5fb76caa5498c60b991fcba8dfbf3c229f0f4d5rbbF: Documentation doesn't explain about C++ name mangling.
c5fb76caa5498c60b991fcba8dfbf3c229f0f4d5rbbF: see if BITS can be made to do anything sensible in obj (eg set the default new-segment property to Use32).
b9cf7102006ac2ccfebcb78174585986ff127ba9jwoolleyF: OBJ: coalesce consecutive offset and segment fixups for the same location into full-32bit-pointer fixups.
b9cf7102006ac2ccfebcb78174585986ff127ba9jwoolleyD: This is apparently necessary because some twazzock in the PowerBASIC development
2b13bc45632d72cdf50ac42149e4fc8bc0d05bf2stoddardD: team didn't design to support the OMF spec the way the rest of the
2b13bc45632d72cdf50ac42149e4fc8bc0d05bf2stoddardD: world sees it.
2b13bc45632d72cdf50ac42149e4fc8bc0d05bf2stoddardF: Allow % to be separated from the rest of a preproc directive, for alternative directive indentation styles.
2b13bc45632d72cdf50ac42149e4fc8bc0d05bf2stoddardF: __DATE__, __TIME__, and text variants of __NASM_MAJOR__ and __NASM_MINOR__.
2b13bc45632d72cdf50ac42149e4fc8bc0d05bf2stoddardF: Warn on TIMES combined with multi-line macros.
b584ec31a47334b1253f4a5ad73f023336ab2f28jwoolleyD: TIMES gets applied to first line only - should bring to users' attention.
b584ec31a47334b1253f4a5ad73f023336ab2f28jwoolleyF: Re-work the evaluator, again, with a per-object-format fixup
b584ec31a47334b1253f4a5ad73f023336ab2f28jwoolleyD: routine, so as to be able to cope with section offsets "really"
b584ec31a47334b1253f4a5ad73f023336ab2f28jwoolleyD: being pure numbers; should be able to allow at _least_ the two
7ac88dc1ac207b9a434fd76c0406651d68018d69rederpjD: common idioms
7ac88dc1ac207b9a434fd76c0406651d68018d69rederpjD: TIMES 510-$ DB 0 ; bootsector
52617e76a53b1d90da027a5311790e1ccef8f60ftrawickD: MOV AX,(PROG_END-100H)/16 ; .COM TSR
52617e76a53b1d90da027a5311790e1ccef8f60ftrawickD: Would need to call the fixup throughout the evaluator, and the
f905b21d99b264dbf26acc30b430ebe92838cdcejerenkrantzD: fixup would have to be allowed to return UNKNOWN on pass one if it
d157b208942316e96c34fa8b2222ed4cc2e56783trawickD: had to. (_Always_ returning UNKNOWN on pass one, though a lovely
d157b208942316e96c34fa8b2222ed4cc2e56783trawickD: clean design, breaks the first of the above examples.)
dc903d97a896d4e414efb1cb49f22ce00a49f070trawickF: Preprocessor identifier concatenation?
dc903d97a896d4e414efb1cb49f22ce00a49f070trawickF: Arbitrary section names in `bin'.
dc903d97a896d4e414efb1cb49f22ce00a49f070trawickD: Is this necessary? Is it even desirable?
dc903d97a896d4e414efb1cb49f22ce00a49f070trawickD: hpa: Desirable, yes. Necessary? Probably not, but there are definitely cases where it becomes quite useful.
15405e91bb3fad5a80f7abe828a00b44a3a65bf8jerenkrantzF: Ability to read from a pipe.
15405e91bb3fad5a80f7abe828a00b44a3a65bf8jerenkrantzD: Obviously not useful under dos, so memory problems with storing
f905b21d99b264dbf26acc30b430ebe92838cdcejerenkrantzD: entire input file aren't a problem either.
f905b21d99b264dbf26acc30b430ebe92838cdcejerenkrantzF: File caching under DOS/32 bit...
0e2340134f2336b98c92d7f157fb65d0a6f477d4stoddardD: maybe even implement discardable buffers that get thrown away
431d6106eaf796cc8dfa8cb0db2b180dd93ed6dftrawickD: when we get a NULL returned from malloc(). Only really useful under
b3edf21d591bfd0e64bbec0dda73c0e41d7ecdb6wroweD: DOS. Think about it.
b3edf21d591bfd0e64bbec0dda73c0e41d7ecdb6wroweF: possibly spool out the pre-processed stuff to a file, to avoid having to re-process it.
b3edf21d591bfd0e64bbec0dda73c0e41d7ecdb6wroweD: Possible problems with preprocessor values not known on pass 1? Have a look...
5d238058bc748dfa13ff21890ae4a58481e3be89jerenkrantzF: Or maybe we can spool out a pre-parsed version...?
5d238058bc748dfa13ff21890ae4a58481e3be89jerenkrantzD: Need to investigate feasibility. Does the results from the parser
9282327b0ffe8981d39835130dfb334af192b508jerenkrantzD: change from pass 1 to pass 2? Would it be feasible to alter it so that
9282327b0ffe8981d39835130dfb334af192b508jerenkrantzD: the parser returns an invariant result, and this is then processed
9282327b0ffe8981d39835130dfb334af192b508jerenkrantzD: afterwards to resolve label references, etc?
8fcaadcb287f361bb304d53a69d508500840fafcjerenkrantzF: Subsection support?
8fcaadcb287f361bb304d53a69d508500840fafcjerenkrantzF: A good ALIGN mechanism, similar to GAS's.
8af88bd6958b80c224e964892b8237720b13ab1ajerenkrantzD: GAS pads out space by means of the following (32-bit) instructions:
8af88bd6958b80c224e964892b8237720b13ab1ajerenkrantzD: 8DB42600000000 lea esi,[esi+0x0]
8af88bd6958b80c224e964892b8237720b13ab1ajerenkrantzD: 8DB600000000 lea esi,[esi+0x0]
8af88bd6958b80c224e964892b8237720b13ab1ajerenkrantzD: 8D742600 lea esi,[esi+0x0]
25b812bcab8b61981e288996b991e0ab4d224b92jerenkrantzD: 8D7600 lea esi,[esi+0x0]
25b812bcab8b61981e288996b991e0ab4d224b92jerenkrantzD: 8D36 lea esi,[esi]
87f0329e30de94828e08d53a99ea23cda86a9fccjerenkrantzD: It uses up to two of these instructions to do up to 14-byte pads;
87f0329e30de94828e08d53a99ea23cda86a9fccjerenkrantzD: when more than 14 bytes are needed, it issues a (short) jump to
0396e75f271f51be57be778655e32ba8d64d240bwroweD: the end of the padded section and then NOPs the rest. Come up with
0396e75f271f51be57be778655e32ba8d64d240bwroweD: a similar scheme for 16 bit mode, and also come up with a way to
0396e75f271f51be57be778655e32ba8d64d240bwroweD: use it - internal to the assembler, so that programs using ALIGN
9438d70ce91fa99ec828a2828f0fd45542cd9c4fwroweD: don't knock over preprocess-only mode.
0396e75f271f51be57be778655e32ba8d64d240bwroweD: Also re-work the macro form so that when given one argument in a
dc10f7a2f87d4cd7cdd16dc248b165122b4ac62btrawickD: code section it calls this feature.
dc10f7a2f87d4cd7cdd16dc248b165122b4ac62btrawickR: Panos Minos
431d6106eaf796cc8dfa8cb0db2b180dd93ed6dftrawickF: Possibly a means whereby FP constants can be specified as immediate operands to non-FP instructions.
431d6106eaf796cc8dfa8cb0db2b180dd93ed6dftrawickD: * Possible syntax: MOV EAX,FLOAT 1.2 to get a single-precision FP
390489eb69fe15943ddf67adcc832ca8de125cd9jerenkrantzD: constant. Then maybe MOV EAX,HI_FLOAT 1.2 and MOV EAX,LO_FLOAT
390489eb69fe15943ddf67adcc832ca8de125cd9jerenkrantzD: 1.2 to get the two halves of a double-precision one. Best to
390489eb69fe15943ddf67adcc832ca8de125cd9jerenkrantzD: ignore extended-precision in case it bites.
390489eb69fe15943ddf67adcc832ca8de125cd9jerenkrantzD: * Alternatively, maybe MOV EAX,FLOAT(4,0-4,1.2) to get bytes 0-4
a1e8b54f269a8f2388590174174509546e886e60stoddardD: (ie 0-3) of a 4-byte constant. Then HI_FLOAT is FLOAT(8,4-8,x)
a1e8b54f269a8f2388590174174509546e886e60stoddardD: and LO_FLOAT is FLOAT(8,0-4,x). But this version allows two-byte
a1e8b54f269a8f2388590174174509546e886e60stoddardD: chunks, one-byte chunks, even stranger chunks, and pieces of
3eb95d6629bb326ae90e5eec693b7e628951751brbbD: ten-byte reals to be bandied around as well.
109d280c3fcf810e573fc1af5e141ad525c45811bjhF: A UNION macro might be quite cool
109d280c3fcf810e573fc1af5e141ad525c45811bjhD: now that ABSOLUTE is sane enough to be able to handle it.
61d2cd001754548e90364aa3a7e76863616544b0minfrinF: An equivalent to gcc's ## stringify operator, plus string concatenation
61d2cd001754548e90364aa3a7e76863616544b0minfrinD: somehow implemented without undue ugliness, so as
61d2cd001754548e90364aa3a7e76863616544b0minfrinD: to be able to do `%include "/my/path/%1"' in a macro, or something
61d2cd001754548e90364aa3a7e76863616544b0minfrinD: similar...
9a3bbca61e24c13d8b496116ac759117136c6bf4aaronF: Actually _do_ something with the processor, privileged and
9a3bbca61e24c13d8b496116ac759117136c6bf4aaronD: undocumented flags in the instruction table. When this happens,
9a3bbca61e24c13d8b496116ac759117136c6bf4aaronD: consider allowing PMULHRW to map to either of the Cyrix or AMD
9a3bbca61e24c13d8b496116ac759117136c6bf4aaronD: versions?
64c351fd973428b5bb4c28e983fa86875ea4e60fdougmD: hpa: The -p option to ndisasm now uses this to some extent.
64c351fd973428b5bb4c28e983fa86875ea4e60fdougmF: Maybe NEC V20/V30 instructions? ?
0506359f47150991eaaae37ca07f94117a9aa63dtrawickD: hpa: What are they? Should be trivial to implement.
0506359f47150991eaaae37ca07f94117a9aa63dtrawickF: Yet more object formats.
0506359f47150991eaaae37ca07f94117a9aa63dtrawickD: * Possibly direct support for .EXE files?
9d3fdc3bb8077a46851080e17ef9f16c83720c8ftrawickF: Symbol map in binary format. Format-specific options...
219472ea2d5f1563509321d8b8a91b116792bf7adougmF: REDESIGN: Think about EQU dependency, and about start-point specification in OBJ. Possibly re-think directive support.
c048b545f06921f53ceb830b30f99aed7b369d95dougmF: Think about a wrapper program like gcc?
c048b545f06921f53ceb830b30f99aed7b369d95dougmD: Possibly invent a _patch_ for gcc so that it can take .asm files on the command line?
621bd763d2e4d32f19013ac8b76b375b5a01851fdougmD: If a wrapper happens, think about adding an option to cause the
621bd763d2e4d32f19013ac8b76b375b5a01851fdougmD: resulting executable file to be executed immediately, thus
621bd763d2e4d32f19013ac8b76b375b5a01851fdougmD: allowing NASM source files to have #!... (probably silly)
0ea12b5dcb3d1d399f9bff6f56fb445d80205f9dstrikerF: Multi-platform support?
0ea12b5dcb3d1d399f9bff6f56fb445d80205f9dstrikerD: If so: definitely Alpha; possibly Java byte code;
e93624301705e3dc68992e3b488a764389eb8b98trawickD: probably ARM/StrongARM; maybe Sparc; maybe Mips; maybe
e93624301705e3dc68992e3b488a764389eb8b98trawickD: Vax. Perhaps Z80 and 6502, just for a laugh?
cba0728e3535ee87e89cdb3cb54ce91eda18f6ccaaronF: Consider a 'verbose' option that prints information about the resulting object file onto stdout.
a45de374fb215f294eb1369d4406ac79d6596ee1brianpF: Line numbers in the .lst file don't match the line numbers in the input.
a45de374fb215f294eb1369d4406ac79d6596ee1brianpD: They probably should, rather than the current matching of the post-preprocessor line numbers.