UZ80 is a freeware Z80 assembler that aims to be both small and fast while still providing valuable services such as macro instructions and conditional assembly. Internally, it departs from full two-pass methods and relies instead on assembling as much code as possible during the first pass and writing down the lines making references to still unseen symbols; these lines will be assembled when all symbols are known.
20180326-1155: third public release. Escape sequences look for errors. Added synonyms SUB/AND/XOR/OR/CP A,PARAM for SUB/AND/XOR/OR/CP PARAM. The UZ80 Win32 binary is no longer packed. 20180322-1930: second public release. Added instructions OUTD and OUTI (synonyms of OTD and OTI) and fixed inconsistencies when using a macro with fewer parameters than defined.
pire que du cobol son truc j'arrive même pas à faire un EQU...
EDIT: ah j'ai trouvé, faut mettre des espaces autour du =
Attention aussi aux nombreuses limitations, si le source est un peu gros, ça pète vite en "manque de mémoire" car tout est claqué dans des minuscules tableaux statiques...
20180408-1440: fourth public release. Buffers are now dynamically allocated and reallocated, "out of memory" should happen only when no more memory can be allocated. Several fixes in error handling: word overflow no longer labels itself as "byte out of range"; error messages during final calculations are shown only once; opcodes relying on small constants (BIT, IM and RST) perform consistent range checks.
20180426-1030: sixth public release. Added synonyms LD BC/DE/HL,BC/DE/HL for LD C/E/L,C/E/L+LD B/D/H,B/D/H. Fixed illegal commands LD XL,L/H/(IX) and similar being accepted. INCLUDE swaps '/' and '\' when required.
20180808-0946: eighth public release. Added "[" and "]" as indirect addressing symbols: LD A,[HL] is equivalent to LD A,(HL). Bugfixes: added dummy instructions "list" and "nolist" to ease compatibility; command line parameter "-vv" returns the right exit code rather than always 1, and "-oX" without source doesn't crash any longer; source line "label:opcode" defines the label and assembles the opcode rather than handling it as a very long label without any opcodes.
20180910-1020: minor patch fixing a bug in DEFB ("a"+1 was rejected despite the equivalent 1+"a" being valid and accepted) and making command line options case-insensitive.
20181025-1445: minor patch accepting the lines "label=expression", "label= expression" and "label =expression" as valid synonyms of "label = expression" rather than handling them as a very long label or rejecting them as improper labels or opcodes.
20181104-1105: minor patch fixing a bug that raised errors in lines that had more than one parameter whereby the first one included a symbol not yet defined, but the second one didn't, and 256 symbols had already been defined.
20190731-2140 -- UZ80 is now GPL. Upgraded GCC to 5.1.0. 20190210-1150 -- minor source cleanup setting apart PSEUDO and OPCODE; RST accepts 0-7 as well as 0-56, in the same fashion JP (HL/IX/IY) could also be written JP HL/IX/IY; changed IN 0,(C) and OUT (C),0 into IN (C) and OUT (C) because whether the byte sent by OUT is 0 or 255 depends on the Z80 CMOS/NMOS type. 20181130-2030 -- minor patch fixing a bug where HY was a synonym of XH rather than YH, adding further synonyms HIX, HIY, LIX and LIY for XH, YH, XL and YL respectively, and restoring optional AS80 compatibility with command line parameter "-$" to emulate the bugs "IX-1-1" = "IX-0" (rather than "IX-2") and "lbl db $-lbl,$-lbl,$-lbl" = "lbl db 0,0,0" (rather than "lbl db 0,1,2").
20190928-1055 -- ninth public release. Added command line parameter -Ipath to define an optional INCLUDE path; fixed bugs in the handling of expressions within brackets and commas within quotes, and in INCLUDE with very long command line paths; made a couple of errors slightly more explicit. Code cleanup: source is 50k, binary is 32k.
20200103-1105 -- tenth public release. Added AS80-compatible shortcuts LD BC/DE/HL/IX/IY,BC/DE/HL/IX/IY (i.e. LD HL,BC generates LD H,B + LD L,C) and extended the behavior of INCBIN to handle negative parameters as relative to the end of the file (i.e. INCBIN "FILE",-10,8 seeks the ten last bytes of the file, reads eight and ignores the last two) rather than to its beginning. 20191010-1925 -- minor patch adding two optional parameters to INCBIN to define the file offset and length. 20191003-2020 -- minor patch adding the pseudo instruction INCBIN, identical in syntax to INCLUDE, but taking the specified file as binary data rather than as source code.
20200331-1155 -- minor patch simplifying operand priority calculation and macro local labels and making some errors more explicit again, such as ORG telling apart between "undefined symbol" and "invalid expression".
Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 1 invité
Vous ne pouvez pas publier de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas insérer de pièces jointes dans ce forum