Process (An,Dn) as 0(An,Dn) Wild optimizations? (e.g. MOVE.W #0,D0 -> CLR.W D0) (also CMP #0 -> TST, CLR.L Dn -> MOVEQ #0,Dn and maybe MOVE #0,An -> SUB An,An -- Kevin Kofler also LSL #1 -> ADD -- trazom) (MOVE.L #16,D0 -> MOVE.W #16,D0 -> MOVEQ #16,D0) ??? (NOTE by Kevin Kofler: Paul Froissart's suggestion of a MOVEF instruction - see below - is a better idea). Anyway while working on the above I came up with a little wish list for A68k: 4) A jump/branch-conditional assembler op. 68000 branch (Bcc) instructions can only branch to a location +/- 32K away. What I would like to see in A68k are opcodes (i.e. JBxx) which would insert the necessary code to do a long jump if the target of the branch was greater than 32k away. This is only required for 68000 code of course since 68020's and up support 32 bit displacement. An example, JBEQ target ; branch if equal to target ; where target is a long ; way away the assembler would produce code equivalent to: BNE skip JMP target skip: ; next instruction I hope I have given you some ideas and I look forward to your next release of A68k. Cheers, Paul Gittings A GOTO directive to continue the assembly at a certain point. Add a movef pseudo-instruction : - movef #x,dn means if -128<=x<=127 then translate as moveq #x,dn otherwise translate it as move.w #x,dn (this can be done with a macro but the # has to be removed and EQU constants are not supported, only SET constants, possibly improve SET by supporting EQUs and make a SETIMM command which does not do anything if the command doesn't start with a #, and which SETs the variable otherwise, just like a SET without the #) Improve local labelling : - allow \_nxt_