This is the changes file, that explains what has changed over the revisions: current revision "2.0" 1.0 - Original 1.1 - Changed a lot of for( ... < ...) into for( ... != ...) Corrected a hilarious bug in err_undefs. (Missing { }). How did NASM65 ever work without those ?? Added noisy tokenizer for TOS version. (Nat!/1991) -- INBETWEEN -- 1.0:- Patch for bug that was intermittently corrected in 1.1 (Nat!/1991) ^-----{ NOTE! -- INBETWEEN -- 1.1 - Improved int_suckin a bit. Also directive_suckin. 1.2 - Deimproved some code, made it MSDOS portable. Heavy optimization work did strangely enough not pay off anywhere (don't ask me why) on paper it looked quite substantial. Streamlined I/O further, fixed some bugs in support programs. Now forward branches that go over the top give at least a hint, where the branch might have been (doesn't work well with macros includes and the like). 2.0 Argh! This is already v2.0, a few additions I needed to incorporate to 'effortlessly' assemble FTOE (my own gigantic game (har har)) unfortunately forced a major redesign in the object module structure. .DS now creates holes in the binary instead of just dropping zeroes. For Display lists and other stuff which should lie on page boundaries an -a option has been added. (Sorry no GC yet -> 3.0). Some code has been de-inlined to get the assembler to a targeted < 50K. More bugfixes than I hoped would be neccessary (probably added quite a lot with this version). A selection: Numerous bugs and improvements in support programs more_space -- only worked for two segments clean_labels -- did not clean labels Made the assembler much more usable by countless bug fixes and improvements. FOR A REAL RELEASE, VERSION WILL BE SET BACK TO 1.0 1.0 UNIX portability apparently achieved. Looks good right now. --------------------------------------------------------------------------- START OF "REAL USEFUL" CHANGES.TXT --------------------------------------------------------------------------- Start: NASM65 v1.3 NLINK65 v1.1 NLIB65 v1.0 --------------------------------------------------------------------------- 10.Nov.1991: stepped up NLINK65 v1.1 to v1.2 NLINK65 fixed sizetab[] for 65C02 codes, moved it from WORKER.C to LINK.C Allows definition of _BOOT_INIT via -x command line switch Writes now correct number of bootsectors Current: NASM65 v1.3 NLINK65 v1.2 NLIB65 v1.0 --------------------------------------------------------------------------- 23.Nov.1991: added REPT to the list of directives. added NASM as an (unused) enveloping program. No bug fixes! (looks good right now). Improved makefiles and the like NASM65 v1.4 NLINK65 v1.2 NLIB65 v1.0 --------------------------------------------------------------------------- 29.Dez.1991: recompiled with PURE-C, beautified it up a bit source code wise NASM65 v1.5 NLINK65 v1.3 NLIB65 v1.1 --------------------------------------------------------------------------- 16.Jan.1992: Added ARGV support via PCVSTART.O, made AMIGA compatibilty changes thanx to dinadan@mcshh.hanse.de NASM65 v1.6 Fixed a typing error in code.h for PHILOSOPHICAL NLINK65 v1.4 code. Fixed filename extension memory clobber bug NLIB65 v1.2 Object files made prettier a bit. Dinadan fixed two DISASM65 v1.7 bugs (one each) in XTRCTBIN & CHKFFFF. Fixed one bug XTRCTBIN v1.1 in MD_SUCK (for 680[234]0 machinery) DEMAC65 v1.4 XTRCTBIN now (hopefully) converts Atari binaries into CHKFFFF v1.1 C64 & AppleII binaries. UNIX portablity achieved yet once again (har har). Cut filenames in error messages. Added C64 and AppleII to disassembler. --------------------------------------------------------------------------- 18.Sep.1992: Fixed 'date' bug in "changes.txt" for last rev. (har) Fixed two really atrocious bugs. Fixed one lame (but TOUGH to trace down) nfree() bug. To remain compatible with some bogus 32-bit NASM65 v2.0 compilers, I needed to incorporate a change in the NLINK65 v2.0 filestructure. This means that the object files go NLIB65 v2.0 downwards incompatible from now on!! This also gave DISASM65 v1.8 me the chance to increase the identifier length in XTRCTBIN v1.2 the object table to 32 characters. You PASCAL- DEMAC65 v1.5 like coders, can now write (and link) CHKFFFF v1.2 THIS_VARIABLE_COUNTS_MICE .byte 2 CRLF155 v1.7 THIS_VARIABLE_COUNTS_SHEEP .byte 234 (It should be possible, that) old objects can be extracted from libraries, but old objects can not be added. Due to an error in the library code, libraries generated on INTEL (BIGENDIAN) machinery were never compatible. This has been fixed. Unfortunately for those users downward compatibility has been lost! Made a full hearted attempt at providing PC compatibility. Since that system sucks even more than previously suspected, I can't make any guarantees about stability. As soon as the PC goes to 32-bit, this should work just dandy. My once beautiful source has been now littered with 'huge' pointers, ridiculous casts and other kludgey stuff. Again to the port to MSDOS. Everything seems to work except the damned linker. TC3.0 couldn't deal with huge pointers correctly and TC2.0 (I dunno) code chokes somewhere, sometime unpredictably. I think this is fixed now with the nfree() fix.