nedoPC.org

Community for electronics hobbyists, established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 06 Oct 2024 22:15



Reply to topic  [ 2 posts ] 
Кросс-ассемблер ZMAC v1.33 
Author Message
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23357
Location: Silicon Valley
Reply with quote
http://nedopc.org/nedopc/sprinter/download/zmac133.zip (131Kb)

Новая версия ZMAC v1.33 с добавлениями от Vasil Ivanov

Code:
2005-03-30  Vasil Ivanov from http://forum.nedopc.org

   * Version 1.33 -- changes were done directly in generated zmac.c

   * All messages stderr now go to stdout to be able to redirect everything to 1 file

   * Fixed issue in new function doincbin() that caused "phase error".

2005-02-25  Vasil Ivanov from http://forum.nedopc.org

   * Version 1.32 -- changes were done directly in generated zmac.c

   * Put all labels starting with @ to file .tbl

   * Added directive INCBIN to include binary file

   * Note: Quotation is not needed for include and incbin

   * Note: This assembler doesn't know undocumented instructions

2005-02-?? Vasil Ivanov from http://forum.nedopc.org

   * Version 1.31 -- changes were done directly in generated zmac.c

   * Some changes from above (sources were lost)

2000-07-02  Mark RISON  <mrison@hotmail.com>

   * Version 1.3.

   * Improve man page (including portability fixes by Tim).

   * From Matthew, Tim and Russell: compiler warning avoidance.

2000-06-25  Mark RISON  <mrison@hotmail.com>

   * Version 1.3b4.

   * Allow benign EQU redefinition.

   * Cut down on warnings in pass 1.

   * Find and (hopefully!) fix nasty bug in error recovery in arglists.

   * Allow JP HL/IX/IY syntax.  A warning is issued.

   * Revamp man page.

   * From Tim Mann: resolve r/r conflict for parentheses in expressions.

2000-06-18  Mark RISON  <mrison@hotmail.com>

   * Version 1.3b3.

   * BeOS now supported (just treat as a Un*x variant!).

   * Upgrade to bison 1.28 so alloca () no longer a problem.

   * Document the operator zoo.

   * Allow normal parentheses in expressions.
     (FIXME: is there a way to tell bison the r/r conflict is OK?)

   * From Tim Mann: sort out operator precedence; make it C-like.

2000-05-25  Mark RISON  <mrison@hotmail.com>

   * Version 1.3b2.

   * Fix error handling fix (with Tim's help!).

   * From Tim Mann: add relationals and synonyms for NOT, MOD, SHL, SHR.

2000-03-18  Mark RISON  <mrison@hotmail.com>

   * Version 1.3b1.

   * Fix error handling.

   * Allow a leading colon or no special character at all
   to introduce a label.

   * Allow $ and # to introduce hex constants.

   * Allow COND and ENDC as synoyms for IF and ENDIF.

   * More ANSI C pedantry.

   * From Tim Mann: remove the nasty and buggy hack to allow AND,
   OR and XOR to be used as binary operators and do it properly.

   * From Tim Mann: fix bug which prevented & from being used as
   a binary operator when it was allowed to introduce a hex constant.

   * From Matthew Phillips: try filename as given before trying
   to add a '.z' extension.

2000-02-27  Mark RISON  <mrison@hotmail.com>

   * Version 1.2.

   * Stop trying to add an extension to INCLUDEd files
   (this stupid idea was a misfeature introduced in 1.1.1.1).
   Instead, define canonical form, which is automatically
   decanonicalised according to the local OS requirements
   (see the man page for more details).

   * Add support for RISC OS.

   * Increase the maximum number of IFs to 1024.

   * Issue warning when SLL is used.

   * Further ANSI C-ify.
     (FIXME: anyone know how to convince bison not to use alloca ()?)

   * Tweak command-line error reporting.

   * Remove legacy non-ANSI C garbage.

   * From Matthew Phillips: add support for outputting AMSDOS header.

   * From Matthew Phillips: add support for RISC OS DDE throwback.

2000-02-11  Russell Marks  <russell.marks@dtn.ntl.com>

   * zmac.1: updated man page.

   * zmac.y: changed `-O' warning output to look more like gcc
   (`foo.z:N: warning: wibble' rather than `foo.z:N: wibble
   warning').

   * zmac.y: changed to use my old getoptn() getopt clone instead of
   `real' getopt(), as I know Mark likes his portability :-) (and it
   probably wouldn't work on DOS otherwise, which even I would like
   it to...).

   * zmac.y: merged in changes (relative to 1.1) from my current
   zmac. These were:

   * zmac.y: minor changes to avoid egcs/gcc `ambiguous else'
   warnings.

   * zmac.y: changes from Chris Smith [slightly changed to fit zmac
   1.1.1.x]. `-o' now specifies output file; `-x' specifies listing
   file (`-x -' does the same as the old `-o' option); the
   undocumented `sll' opcode is now allowed; "Cannot open foo file"
   errors now give the filename; a `.z' extension is only added to
   source filename if it has no extension; args are now parsed with
   getopt().

   * Makefile: fix missing dependencies for zmac.

1999-10-03  Mark RISON  <mrison@hotmail.com>

   * Version 1.1.1.2.

   * Fix bug in nested ELSEs.

   * Pad .bin file when multiple ORGs are used.

   * `-O' option invokes optimisation suggester
     for JP, RLC/RRC/RL/RR/SLA A and LD A, 0.

   * Reinstate 0x02, 0x0a, 0x12 and 0x1a as valid 8080 opcodes.

   * Add zmac.c to .zip file (for those who don't have yacc/bison).

   * Make makefile no longer depend on GNU make implicit rules.

1999-07-18  Mark RISON  <mrison@hotmail.com>

   * Version 1.1.1.1 (nee 1.1.1).

   * Extend symbol significance from 15 to 40 chars.
     A warning is issued regarding truncated symbols.

   * Make continuous listing be the default.

   * Add ELSE to IF/ENDIF construct.

   * Allow INCLUDE filename to be delimited by " or '.

   * Allow labels to be defined using .name (as well as name:).

   * Allow ADD/SBC/ADD s syntax (implicit "A, ").
     A warning is issued.

   * Issue warning for SUB/AND/XOR/OR/CP A, s syntax (explicit "A, ").

   * Issue warning for CMP and JMP opcodes, and V and NV condition codes.

   * Catch division by zero in expressions.

   * Allow hex constants to be specified using a leading '&'.
     (FIXME: what's all this testing of nextchar () against '$' for?)

   * Add DB, DEFM and TEXT as synonyms for DEFB.

   * Add DS and RMEM as synonyms for DEFS.

   * Add DW as synonym for DEFW.

   * Add READ as synonym for INCLUDE.

   * Allow strings to be specified using " too.

   * Allow AND, OR and XOR to be used as binary operators.
     (FIXME: a bit of a nasty hack; can it be done more cleanly?)

   * Make file handing consistent for source and INCLUDE:
     for both, try to open with ".z" first, then with no extension.

1998-12-15  Russell Marks  <rus@lifeson>

   * Version 1.1.

   * Added support for --help and --version.

   * zmac.1: mentioned `title' pseudo-op.

   * Converted revision history from zmac.y into Emacs change log
   format (roughly).

   * Now outputs errors more like a C compiler (one per line,
   prefixed with filename and line-in-file), useful for `M-x compile'
   in Emacs. New `-S' option makes it show the error-causing line
   like it used to.

   * Made it output current file for error reports.

   * Added `void' to prototypes for funcs with no args.

   * Removed unnecessary `char *ctime()' and `fflush(stderr)'.

   * Made it support filenames longer than 14 chars!

1998-02-26  Russell Marks  <rus@lifeson>

   * Version 1.0 (for the sake of argument).

   * Made usage message say what the program is. :-)

1998-02-12  Russell Marks  <rus@lifeson>

   * Added verbose inline errors in listing and made the original
   terse one-letter ones available via new `-t' option.

   * Added `-c' option to produce continuous listing (no page breaks
   or page headers).

   * Corrected plurals in listing so you don't get things like "1
   symbols" any more.

   * Added `-z' option to output 8080-compatible code only - i.e., to
   flag Z80-specific ops as errors.

1998-02-11  Russell Marks  <rus@lifeson>

   * Fixed LIST-without-args segfault.

   * Allowed decimal constants to be up to 65535 (rather than up to
   32767 before; I checked and there was no reason for the previous
   exception for decimal even on systems with 16-bit ints).

   * Removed the `-d' debug option.

   * Removed the `-t' option. It did everything as normal *except*
   for not reporting errors. I can't imagine any valid reason for
   wanting that.

   * Made exit status 1 if there were errors in the assembly.

   * Fixed `equ' bug - it now detects forward refs to `equ's with
   forward refs and flags them as errors (because of course you'd
   need three passes to resolve them). The fix is pretty
   nasty-looking but it was really the only way I could see to do it.
   Some assemblers (e.g. Hisoft's GENS4) don't allow forward refs in
   `equ's at all, so count yourselves lucky! :-)

   * Changed symbol table listing so it fits in 80 columns.

   * Fixed `if' to not depend on internals of yacc parser (which
   appear to have changed, anyway).

   * Added support for normal `rst' format (0, 8, 10h, 18h...; still
   allows the previous 0, 1, 2, 3...).

   * Made default output binary (as .bin), added `-h' to get .hex.

   * ANSIfied the thing (painful!) and cleaned up a little.

1987-02-05  Colin Kelley

   * Added 'cmp' as a synonym for 'cp', 'jmp' as a synonym for 'jp',
   and added tolerance of accumulator specification for arithmetic
   and logical instructions. (For example, 'or a,12' is now accepted,
   same as 'or 12'.)

1987-01-18  Colin Kelley

   * Added MIO code to emulate 'mfile' using malloc()'d memory. This
   was needed to get the code to work when compiled under MSC 4.0 on
   a PC, and it's probably faster anyway.

1986-10-02  Colin Kelley

   * Added some more typecasts to keep lint a little happier. Removed
   several unused variables. Changed most vars declared as char to
   int, since many of them were being compared with -1! I still don't
   know what's going on with est[][] being malloc'd and free'd
   everywhere...it looks pretty fishy...

1986-09-20  Colin Kelley

   * Converted to run on a Pyramid. This meant changing yylval to be
   a %union, and then putting in the appropriate typecasts where ints
   are pointers are used interchangeably. The current version still
   probably won't run on machines where
   sizeof(int) != sizeof(char *).
   Also changed emit() to use varargs, and got rid of the old
   style = in front of yacc action code.

1984-08-27  John Providenza

   * Added PHASE/DEPHASE commands.

1984-05-22  John Providenza

   * Added include files ala ormac.

1984-05-11  John Providenza

   * Added code to print unused labels out with the symbol table.
   Also sped up the macro processor by using stdio.

1983-06-07  John Providenza

   * Fixed bug in the ADD IX,... instruction.

1983-02-15  John Providenza

   * Fixed 'getlocal' to return better local labels. It used to crash
   after 6 invocations.

1982-03-15  John Providenza

   * Changed maximum number of characters in a label to 15 from 7.
   Note that 'putsymtab' uses this value inside of a quoted string,
   so we use 15.

   * Added underscore as a character type in the lex table 'numpart'
   (0x5F).

1982-03-08  John Providenza

   * Converted to run on Vax, updated syntax to conform better to the
   Zilog standard.

1978-04-??  Bruce Norskog

   * Initial version.

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


01 Apr 2005 21:33
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23357
Location: Silicon Valley
Reply with quote
Добавил исходники zmac в репу nedoPC SDK:

https://gitlab.com/nedopc/sdk/-/tree/master/zmac?ref_type=heads

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


12 Jul 2024 23:42
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 2 posts ] 

Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.