News:

Let's find out together what makes a PIC Tick!

Main Menu

ASM error with 3.7.5.5 and ST7565 include.

Started by broderic, Apr 23, 2021, 07:07 AM

Previous topic - Next topic

broderic

Hello.
I downloaded for the moment the trial version, some old codes run properly, but the enclosed one gives me an assembler error (see enclosed) at the end of the compilation.
I guess related to display mnemonics and ST7565 includes (?).

Thank you for any kind suggestion.

Regards

broderic

Hello.

The errors disappeared if I comment the lines below (GLCD@CLS, GLCD@CURS,Print) and I replace them with the instructions with double underscore (__GLCD_CLS_,...), as below, in the "GLCD_ST7565R_SPI.inc".

Not clear to me the reason for this necessary change, but it seems to work.
I don't know if I loose some functionality.

Thank you for your attention.
Regards



Asm-
'GLCD@CLS                                        ' Cls - clear the screen and the memory image
__GLCD_CLS_
Endasm-
    GoTo ClsRedirect                 
    '------------------------------------------------
Asm-
'GLCD@CUR
__GLCD_CURSOR_                                       ' Cursor ypos, xpos - Position the cursor on graphic LCD
Endasm-
    $ifdef COM_REVERSE
        WREG = WREG + REVOFFSET        ' add 4 pixel offset for reverse scan to xpos vlue in WREG
    $endif
    xpos = WREG                                     ' WREG = XPOS
    ypos = GEN                                      ' GEN = YPOS (Line)           
    GoTo CursorRedirect                 

    '-----------------------------------------------
Asm-
'Print                                           ' Print or Print at ypos, xpos
__PRINT_
Endasm-


top204

#2
Quite a few years ago, I had to start changing the names of the 8-bit compiler's library routines because the newer assembler applications have problems recognising the '@' character in label and symbol and variable names etc, and for the next assembler version, I will need to re-write the code generator for the compiler altogether because it does not recognise them at all. However, to bring the brand new devices into the compiler, there is no choice.

The new assembler for the new devices is based upon the GCC assembler, because the original MpasmWin assembler no longer supports them, so the next upgrades to the compiler will use the existing assembler program for the current devices and the new assembler for the newer devices. This means backward compatability is kept for the user who enjoy reading the assembler code the compiler produces.

The name changes have been discussed and explained quite a lot over the years on the forums. But the problem with forums is that, overtime, the information dissapears. And unless a user has a thread name that is relevant to the thread's contents, a search will not find it either.

broderic

Thank you very much, Les, for your kind explanation.

Regards.