I wrote: > Microchip [could] permanently solve the problem by adding the > "standard" '$' and '%' radix specifiers to MPASM's vocabulary. and Andy Kunz replied: > What are "$" and "%" standards in? What do they mean? All the > assemblers I've used either have C notation 0xc0 or the "real" > standard that caught this guy, 0c0h. Andy: Many assemblers (not all, though; note that I put "standard" in quotes) use the "$" prefix for hexadecimal numbers and "%" for binary. In those assemblers, the following are all equivalent: LDA $AA LDA %10101010 LDA 170 The advantage here is that numbers so prefixed are COMPLETELY unambiguous. With what you call the "real" standard ("0C0H"), ambiguity is easy to achieve. Here's something that I think may convince you that that "real" standard is evil: Consider the instruction "MOVLW 00000001B". With MPASM's default radix set to decimal, the above instruction is, of course, equivalent to "MOVLW 1". HOWEVER, if the default radix is set to hexadecimal, the SAME line has a totally DIFERENT meaning; the assembler is forced to interpret it as equivalent to "MOVLW 0x1B"! > $ would then be context sensitive, because it's the standard to > denote "current PC" as in "goto $-1" Yeah, but only if you chose to use the "$" symbol for that purpose. The "$" choice isn't necessarily "the standard"... The older assemblers from Microchip used "!", and many other assemblers use "*" (and they seem to handle the "context-sensitive" nature of that use pretty easily). MPASM doesn't leave MANY characters unused, but there are a few (like "?", for example) that could easily have been used instead of "$" to denote "current PC". -Andy === Andrew Warren - fastfwd@ix.netcom.com === Fast Forward Engineering - Vista, California === === Custodian of the PICLIST Fund -- For more info, see: === http://www.geocities.com/SiliconValley/2499/fund.html