> Bob, when Jerry brought this up the first thing that came to mind is
> yacc/lex. I've been away from UNIX for several years. Can you give me a
> pointer to the generic C code? I'm sure I can track it down but if you have
> a preference (you mentioned GPASM), I'd appreciate it.
>
> I'm not committing to this but I want to revisit the subject. I wasn't
> considering a `code converter', rather a `syntax modifier'. Consider an
> example where BIT2 is moved to BIT1 in register UBits. Then the Z flag is
> tested and a jump to Label1 occurs if False. Otherwise, the register Data is
> compared to the literal Limit and a jump to Label2 occurs if Data is above
> or equal to Limit. This provides a good idea of both the differences in
> syntax and the overall compatibility of MPASM and CVASM.
>
> A `code converter' would do the following:
>
> MPASM: CVASM:
> ------------------------------------------------------------------
> Data EQU 0x20 Data = 20h
> UBits EQU 0x21 UBITS = 21h
> BIT1 EQU 1 BIT1 = UBits.1
> BIT2 EQU 2 BIT2 = UBits.2
> Limit EQU B'01010101' Limit = 01010101b
>
>
> BTFSS UBits,BIT2 MOVB BIT1,BIT2
> BCF UBits,BIT1
> BTFSC UBits,BIT2
> BSF UBits,BIT1
> BTFSS STATUS,Z SZ
> GOTO Label1 JMP Label1
> MOVLW Limit CJAE Data,#Limit,Label2
> SUBWF Data,W
> BTFSC STATUS,C
> GOTO Label2
>
> A `syntax modifier' would do the following:
>
> MPASM: CVASM Compatible:
> ------------------------------------------------------------------
> Data EQU 0x20 Data EQU 20h
> UBits EQU 0x21 UBits EQU 21h
> BIT1 EQU 1 BIT1 EQU 1
> BIT2 EQU 2 BIT2 EQU 2
> Limit EQU B'01010101' Limit EQU 01010101b
>
> BTFSS UBits,BIT2 BTFSS UBits,BIT2
> BCF UBits,BIT1 BCF UBits,BIT1
> BTFSC UBits,BIT2 BTFSC UBits,BIT2
> BSF UBits,BIT1 BSF UBits,BIT1
> BTFSS STATUS,Z BTFSS STATUS,2
> GOTO Label1 GOTO Label1
> MOVLW Limit MOVLW Limit
> SUBWF Data,W SUBWF Data,W
> BTFSC STATUS,C BTFSC STATUS,0
> GOTO Label2 GOTO Label2
>
> Even a `syntax modifier' would still be a challenge as you have to deal
> with MPASM's directives and conditionals as well as the macros, radix, etc.
> Normally, converting from MPASM to CVASM is fairly easy for most example
> code from Microchip and the public domain.
>
> - Tom
>
> At 03:31 PM 5/14/99 -0400, Bob Drzyzgula wrote:
> >Although the inclusion of macro/conditional capability inside
> >CVASM would be the best solution -- then you could use
> >the macros for the Paralax mnemonics as well -- perhaps a
> >good start on a translator utility might be had by
> >using the yacc/lex parsing engine in gpasm...? Just a
> >thought.
> >
> >--Bob
> >============================================================
> >Bob Drzyzgula It's not a problem
> >
RemoveMEbobspam_OUT
KILLspamdrzyzgula.org until something bad happens
> >============================================================
>
>