Topic : Problem with Macro's

Forum : Ride IDE

Original Post
Post Information Post
March 9, 2007 - 8:58am
Guest

Hi,

I tried posting this question under "Other families", but there seems to be no activity there.
Furthermore, this really is a general question regarding macro's.

I happened to use the MA-STC (MRKII), but this should be similar to other processors!

Here goes,

I'm trying to pass a text-string like this to a macro called "print" (listed below):

print    "Hi!!"      ; this works
print    "Hello"    ; this doesn't

For some reason it will only take text-strings 4 characters or shorter. Why is this?
Is there a way to pass longer strings to macro's in RIDE?

Is there an updated reference manual for the Starc core?
I have Rev 01/2000 and it seems like the documentation is incomplete regarding macro syntax.

Listing of print macro:

print MACRO textarg
    LOCAL    temptxt
    LOCAL    nextchar
    LOCAL    start

    jmp    start

temptxt: db    textarg, 13, 10, 0

start:
    mov    R4, #LOW(temptxt)        ; Lower 8bit of address
    mov    R5, #HIGH(temptxt)       ; Upper 6bit of address (2 top bits should be zero)
    and     R5, #00111111b            ; Set top 2 bits to zero
    mov    R3, #Text
    mov    R2, #0FFh                     ; In loop below R2 counts # of characters to send
nextchar:
    movc
    mov  @R3, R0      ; These two instructions

    inc    R3              ; could be replaced by "mov @R1+, R0" but R1 is reserved
    isnz   R4             ; R5 contains HIGH address byte and must be incremented
    inc    R5             ; whenever R4 (LOW address byte) wraps around to zero!
    inc    R2
    sz     R0
    jmp   nextchar

    mov   R0, #Text            ; R2 contains # of characters to send
    call    Send_RS232_datagram
ENDM

Regards,

Steinar

Replies
Post Information Post
+1
0
-1
March 9, 2007 - 10:43am
Guest

Hi Steinar,

The problem is within the MRK-II assembler only (it has been fixed for the other processors in 1999). The strings in macros used to be limited up to 4 characters. There is nomore limitation. We will send you a fix by email.

Francis

+1
0
-1
March 9, 2007 - 10:57am
Guest

Thank you Francis!

It seems that there are other discrepancies in the reference manual regarding macro's.
Do you also have an updated reference manual for the MRKII core?

Regards,

Steinar