******************************** * * ******************************** * *``````````````````````````````* * REQUIRED.MAC * *- -* * MACROS USED FOR CORE UTILS * * AND LIBRARY ROUTINES. NOTE * * THAT THE LIBRARIES DO NOT * * USE THESE MACROS, BUT MAY * * USE THE ROUTINES. THESE ARE * * MERELY PROVIDED FOR THE SAKE * * OF CONVENIENCE. * *,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* * *``````````````````````````````* * _ISLIT: DETERMINES WHETHER A * * PARAM IS LITERAL OR * * NOT, AND CHANGES * * APPROPRIATELY. FOR * * MACRO USE ONLY. * *,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* * _ISLIT MAC IF #=]1 ; IF ]1 IS A LITERAL LDA ]1/$100 ; GET HI PHA LDA ]1 ; GET LO PHA ELSE ; ]1 IS ADDRESS LDA ]1+1 ; SO GET HIGH VAL FROM ADDR PHA LDA ]1 ; THEN LO VAL PHA FIN <<< * *``````````````````````````````* * _ISSTR: DETERMINES WHETHER A * * PARAM IS A STRING OR * * NOT, AND CHANGES * * APPROPRIATELY. FOR * * MACRO USE ONLY. * *,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* * _ISSTR MAC IF "=]1 ; IF ]1 IS A STRING * ** STORE STRING AT TEMP ADDRESS, THEN ** PUSH TEMP ADDRESS * JMP STRCONT ]STRTMP STR ]1 STRCONT LDY #0 LDA ]STRTMP STA PARLEN STA PARAM ]STRLP1 INY LDA ]STRTMP,Y STA PARAM,Y CPY PARLEN BNE ]STRLP1 * LDA #>PARAM ; GET HI PHA LDA #