summaryrefslogtreecommitdiff
path: root/MODIFIED
blob: 15e4d872d4eb98547e399e738a791bc839f98d0a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
This is a modified version of NASM, modified and released by H. Peter
Anvin <hpa@zytor.com>; it is not the original form released by the
NASM authors.  However, as of 0.98p6 I have agreed to release the
official 0.98 version, so this is now an "official pre-release".

For release 0.98p6:

* Took officially over coordination of the 0.98 release; so drop
  the p3.x notation. Skipped p4 and p5 to avoid confusion with John
  Fine's J4 and J5 releases.
* Update the documentation; however, it still doesn't include
  documentation for the various new instructions.  I somehow wonder if
  it makes sense to have an instruction set reference in the assembler
  manual when Intel et al have PDF versions of their manuals online.
* Recognize "idt" or "centaur" for the -p option to ndisasm.
* Changed error messages back to stderr where they belong, but add an
  -E option to redirect them elsewhere (the DOS shell cannot redirect
  stderr.)
* -M option to generate Makefile dependencies (based on code from Alex
  Verstak.)
* %undef preprocessor directive, and -u option, that undefines a
  single-line macro.
* OS/2 Makefile (Mkfiles/Makefile.os2) for Borland under OS/2; from
  Chuck Crayne.
* Various minor bugfixes (reported by):
  - Dangling %s in preproc.c (Martin Junker)
* THERE ARE KNOWN BUGS IN SSE AND THE OTHER KATMAI INSTRUCTIONS.  I am
  on a trip and didn't bring the Katmai instruction reference, so I
  can't work on them right now.
* Updated the License file per agreement with Simon and Jules to
  include a GPL distribution clause.

For release 0.98p3.7:

* (Hopefully) fixed the canned Makefiles to include the outrdf2 and
  zoutieee modules.
* Renamed changes.asm to changed.asm.

For release 0.98p3.6:

* Fixed a bunch of instructions that were added in 0.98p3.5 which had
  memory operands, and the address-size prefix was missing from the
  instruction pattern.

For release 0.98p3.5:

* Merged in changes from John S. Fine's 0.98-J5 release.  John's based
  0.98-J5 on my 0.98p3.3 release; this merges the changes.
* Expanded the instructions flag field to a long so we can fit more
  flags; mark SSE (KNI) and AMD or Katmai-specific instructions as
  such.
* Fix the "PRIV" flag on a bunch of instructions, and create new
  "PROT" flag for protected-mode-only instructions (orthogonal to if
  the instruction is privileged!) and new "SMM" flag for SMM-only
  instructions.
* Added AMD-only SYSCALL and SYSRET instructions.
* Make SSE actually work, and add new Katmai MMX instructions.
* Added a -p (preferred vendor) option to ndisasm so that it can
  distinguish e.g. Cyrix opcodes also used in SSE.  For example:

	ndisasm -p cyrix aliased.bin
	00000000  670F514310        paddsiw mm0,[ebx+0x10]
	00000005  670F514320        paddsiw mm0,[ebx+0x20]
	ndisasm -p intel aliased.bin
	00000000  670F514310        sqrtps xmm0,[ebx+0x10]
	00000005  670F514320        sqrtps xmm0,[ebx+0x20]
* Added a bunch of Cyrix-specific instructions.

For release 0.98p3.4:

* Made at least an attempt to modify all the additional Makefiles (in
  the Mkfiles directory).  I can't test it, but this was the best I
  could do.
* DOS DJGPP+"Opus Make" Makefile from John S. Fine.
* changes.asm changes from John S. Fine.


For release 0.98p3.3:

* Patch from Conan Brink to allow nesting of %rep directives.
* If we're going to allow INT01 as an alias for INT1/ICEBP (one of
  Jules 0.98p3 changes), then we should allow INT03 as an alias for INT3
  as well.
* Updated changes.asm to include the latest changes.
* Tried to clean up the <CR>s that had snuck in from a DOS/Windows
  environment into my Unix environment, and try to make sure than
  DOS/Windows users get them back.
* We would silently generate broken tools if insns.dat wasn't sorted
  properly.  Change insns.pl so that the order doesn't matter.
* Fix bug in insns.pl (introduced by me) which would cause conditional
  instructions to have an extra "cc" in disassembly, e.g. "jnz"
  disassembled as "jccnz".


For release 0.98p3.2:

* Merged in John S. Fine's changes from his 0.98-J4 prerelease; see
  http://www.csoft.net/cz/johnfine/
* Changed previous "spotless" Makefile target (appropriate for distribution)
  to "distclean", and added "cleaner" target which is same as "clean"
  except deletes files generated by Perl scripts; "spotless" is union.
* Removed BASIC programs from distribution.  Get a Perl interpreter
  instead (see below.)
* Calling this "pre-release 3.2" rather than "p3-hpa2" because of
  John's contributions.
* Actually link in the IEEE output format (zoutieee.c); fix a bunch of
  compiler warnings in that file.  Note I don't know what IEEE output
  is supposed to look like, so these changes were made "blind".


For release 0.98p3-hpa:

* Merged nasm098p3.zip with nasm-0.97.tar.gz to create a fully
  buildable version for Unix systems (Makefile.in updates, etc.)
* Changed insns.pl to create the instruction tables in nasm.h and
  names.c, so that a new instruction can be added by adding it *only*
  to insns.dat.
* Added the following new instructions: SYSENTER, SYSEXIT, FXSAVE,
  FXRSTOR, UD1, UD2 (the latter two are two opcodes that Intel
  guarantee will never be used; one of them is documented as UD2 in
  Intel documentation, the other one just as "Undefined Opcode" --
  calling it UD1 seemed to make sense.)
* MAX_SYMBOL was defined to be 9, but LOADALL286 and LOADALL386 are 10
  characters long.  Now MAX_SYMBOL is derived from insns.dat.
* A note on the BASIC programs included: forget them.  insns.bas is
  already out of date.  Get yourself a Perl interpreter for your
  platform of choice at:

	http://www.cpan.org/ports/index.html