atari email archive

a collection of messages sent at Atari from 1983 to 1992.

New MACXX and Linkm

(1 / 2)


	Warning Warning Danger Danger

I just released a new version of MAC65,MAC69,MAC11,MACRO and LINKM. These
have been tested extensively but as any programmer knows, sometimes a bug
or 2 can sneak through. Most of the changes were put in to help the AMAC
user's to convert to MAC65 (further changes forthcoming). But in case your
intrested this is what's different:

	MAC65, MAC69, MAC11 and LINKM have new unary operators:

	^^glbexp - use the upper 8 bits of the "glbexp"
		   equivalent to <glbexp>&0FF00/100
	^Vglbexp - use the lower 8 bits of the "glbexp"
		   equivalent to <glbexp>&0FF
	^~glbexp - switch the bytes around (no equivalent)
	glbexp1\glbexp2 - modulo expression 1 by expression 2
		           (not too sure about it if exp2 is negative)
	glbexp1{glbexp2 - shift expression 1 left expression 2 bits
	glbexp1}glbexp2 - shift expression 1 right expression 2 bits

The term "glbexp" is any legal assembler expression which may contain
any combination of local and global symbols and/or other "glbexp"'s.

The minor changes to RT-11 MACRO include .RADIX 16 and it displays
assembly errors at the terminal as MAC65 does.

	ds

More about MAC65, MAC69, MAC11

(2 / 2)


	WARNING WARNING   DANGER DANGER

Once again I've released another version of MACxx (6.1) and LINKM (6.7).
They shouldn't mess up but.....

The addition to MAC65 and MAC69 is the .ENABL GBL directive that causes
ALL undefined symbols to automatically be declared global. This is handy
when you break your program in pieces and don't want to be bothered with
.GLOBL'ng everything. The disadvantage is that real undefined symbols
won't be detected until after you've linked your files.

MAC65 has also had added the .ENABL MOS directive that changes the
address mode syntax to be the MOS TECHNOLOGY standard format (AMAC
format). Note that if the MOS is .ENABL'd then the other formats are
flagged with an error. All illegal address modes in either format will
now be flagged with a "Q" error instead of the all encompassing "A"
error. Also "P" errors are not likely to occur anymore because I put
in forward reference handling. I.E.

      .DSABL MOS	      .ENABL MOS
      ----------	      -----------
	LDA #addr	==>	LDA #addr	;no change
	LDA I,addr	==>	LDA #addr	;immediate mode
	LDA addr	==>	LDA addr	;abs or zpage
	LDA Z,addr	==>	LDA addr	;abs or zpage
	LDA A,addr	==>	LDA addr	;abs or zpage
	ASL		==>	ASL		;accum mode no change
	CLC		==>	CLC		;implied mode no change
	LDA NX,addr	==>	LDA (addr,X)	;indexed by X indirect
	LDA @addr(X)	==>	LDA (addr,X)	;indexed by X indirect
	LDA NY,addr	==>	LDA (addr),Y	;indirect indexed by Y
	LDA ZX,addr	==>	LDA addr,X	;abs or zpage indexed by X
	LDA X,addr	==>	LDA addr,X	;abs or zpage indexed by X
	LDA AX,addr	==>	LDA addr,X	;abs or zpage indexed by X
	LDA AY,addr	==>	LDA addr,Y	;abs or zpage indexed by Y
	BCC addr	==>	BCC addr	;relative no change
	JMP N,addr	==>	JMP (addr)	;indirect
	JMP @addr	==>	JMP (addr)	;indirect
	LDA N,addr	==>	LDA (addr)	;zpage indirect (MAC65C only)
	LDX ZY,addr	==>	LDA addr,Y	;abs or zpage indexed by Y

dms
Message 1 of 2

Sep 23, 1983