339
|
1 The following includes the various changes in each release of LWTOOLS.
|
|
2
|
|
3 Each item is prefixed by a flag in []. The flags mean:
|
|
4
|
|
5 [*] Project structure or other "meta" change
|
|
6 [!] critical bug fix - code generation error, etc.
|
|
7 [+] new feature
|
|
8 [-] feature removed
|
|
9 [b] minor bugfix
|
|
10 [ ] general improvement
|
|
11
|
|
12 Also, the software affected may follow in [].
|
|
13
|
|
14 Version 3.0
|
|
15
|
|
16 [*] Completely new architecture
|
|
17 [b] Fixed bug that caused segfault on pass 2 if bad expression [LWASM]
|
|
18
|
|
19 Version 2.5
|
|
20
|
|
21 [!] Fixed error in the fix for invalid operands included in 2.4 [LWASM]
|
|
22 [b] Fixed bug with "include" directive operand parsing [LWASM]
|
|
23 [b] Fixed additional parsing errors with pseudo ops [LWASM]
|
|
24 [b] Fixed parsing error with various conditional nesting situations [LWASM]
|
|
25 [+] Added includebin directive to include the literal contents of a binary
|
|
26 file at the current assembly address. [LWASM]
|
|
27 [+] Added || and && as boolean or and boolean and respectively [LWASM]
|
|
28 [+] Added COPY, COPY-, IMP, EXP, TFRP, TFRM, TFRS, TFRR as alternatives to
|
|
29 the TFM instruction variations for compatibility with other assemblers
|
|
30 [LWASM]
|
|
31 [+] Added --6809/-9 switch to cause 6309 instructions to be rejected; also
|
|
32 included --6309/-3 switch to force default allow of 6309 instructions
|
|
33 [LWASM]
|
|
34 [+] ALIGN now takes an optional padding value (ALIGN align,pad) to specify
|
|
35 the byte value that will be used for padding if needed [LWASM]
|
|
36 [+] Added OS9 module target along with the OS9, MOD, and EMOD pseudo ops
|
|
37 to allow building OS9 modules [LWASM]
|
|
38 [+] Added pragma "dollarlocal"/"nodollarlocal" and "dollarnotlocal"/
|
|
39 "nodollarnotlocal" to control whether $ localizes a symbol [LWASM]
|
|
40 [ ] Fixed a few cosmetic issues with error reporting
|
|
41
|
|
42 Version 2.4
|
|
43
|
|
44 [!] Fixed off by one relocation offest for base page external references
|
|
45 generated by lwasm [LWASM]
|
|
46 [b] Fixed segfault in "extern" pseudo op and allowed a symbol list as the
|
|
47 operand just like "export" [LWASM]
|
|
48 [b] Fixed lack of error when there are extraneous characters at the end
|
|
49 of the operand. This did not cause incorrect code generation for correct
|
|
50 code but would silently generate incorrect code for some easy errors
|
|
51 [+] 8 bit immediate operands can now be external references [LWASM]
|
|
52
|
|
53 Version 2.3
|
|
54
|
|
55 [*] added support for compiling using MinGW and added portions of gnulib
|
|
56 to support argp, among other things. Yah! A Windows build!
|
|
57 [+] added library search path (-L) and library specification (-l) to LWLINK
|
|
58 [+] added ability to specify section base addresses on the command line to
|
|
59 LWLINK (they get prepended to the built in link script)
|
|
60 [+] added ability to output a "linkmap" to lwlink (--map, -m)
|
|
61 [+] added LWEX0 (LWOS simple binary) target to LWLINK
|
|
62 [+] added ability to extract files in LWAR
|
|
63 [+] added ability to "replace" members in LWAR
|
|
64 [+] added support for "sym=expr" in the opcode field; this will define a
|
|
65 global symbol (non-section) if it resolves to a constant
|
|
66 [+] added operator ~ as a prefix operator for a 1s complement in LWASM
|
|
67 [+] allow exporting multiple symbols (export sym,sym,sym...)
|
|
68 [+] allow extern references in base page addresing mode, possibly buggy
|
|
69 still (LWASM)
|
|
70 [+] handle 8 bit external references, possibly buggy still (LWLINK)
|
|
71 [+] arranged for unused members of library files (archives) to be ignored
|
|
72 during linking to keep the final size of the binary down (LWLINK)
|
|
73 [b] arranged for output files for lwasm/lwlink to be removed if the assembly
|
|
74 or linking fails
|
|
75 [b] fixed incorrect handling of library search path which caused only the
|
|
76 last directory to ever matter
|
|
77 [ ] DECB output of LWLINK now collapses contiguous output blocks into single
|
|
78 single blocks in the output file; this eliminates the explosion of
|
|
79 preambles that previously occurred
|
|
80 [ ] LWLINK now displays *all* undefined symbols and references instead of
|
|
81 bailing out after the first one
|
|
82
|
|
83 Version 2.2
|
|
84
|
|
85 [*] created LWAR to manage library/archive files
|
|
86 [+] cescapes pragma to allow C-style string escapes in FCC, FCS, and FCN
|
|
87 [+] .area alias for SECTION
|
|
88 [+] .globl alias for EXPORT; also accept name of symbol as operand
|
|
89 [+] various compatibility directive aliases for FCB, FDB, FQB, RMB, FCC,
|
|
90 FCS, and FCN
|
|
91 [+] accept "*" has a prefix for base page addressing mode
|
|
92 [+] sections named "bss" or ".bss" in any case are now assumed to be
|
|
93 BSS sections. The "!bss" flag can be used to remove that assumption.
|
|
94 [+] ignore lines starting with # to permit C pre-processor output to be used
|
|
95 as input to lwasm
|
|
96 [+] allow "0x" and "0X" as prefixes to identify hexadecimal numbers
|
|
97 [+] added support for a simple library/archive file format to LWLINK
|
|
98 [b] actually show assembly errors when no list requested
|
|
99 [b] pragma and --pragma now actually take multiple pragmas as documented
|
|
100
|
|
101 Version 2.1
|
|
102
|
|
103 [*] merged LWLINK (1.0) and LWASM to create LWTOOLS
|
|
104 [+] [LWASM] pragmas can be specified on the command line
|
|
105 [+] [LWASM] undefextern pragma added (undefined symbols treated as external)
|
|
106 [+] documentation
|
|
107 [b] [LWASM] made pragmas case insensitive
|
|
108 [b] [LWASM] made EXTERN symbols never be part of a section in symbol table
|
|
109
|
|
110
|
|
111 LWASM Version 2.0
|
|
112
|
|
113 [*] major rewrite of the entire assembler
|
|
114 [+] object file support
|
|
115
|
|
116
|
|
117 LWLINK Version 1.0
|
|
118
|
|
119 [*] initial released version
|