EASy68K  
It is currently Thu Sep 19, 2019 5:09 am

All times are UTC




Post new topic Reply to topic  [ 5 posts ] 
Author Message
 Post subject: Nested macros
PostPosted: Sun Nov 27, 2005 1:35 am 
Offline

Joined: Tue Nov 15, 2005 7:58 am
Posts: 129
Location: Oregon, USA
Code:
*-----------------------------------------------------------
*
*   NOTE: This program isn't intended to be executed, just assembled
*         and the listing examined.
*
* Program Name  : NestedMacroTest.x68
* Written by    : gtippery
* Date Created  : 26-Nov-2005
* Description   : Nested macros are not correctly expanded.  The
*   ENDM of the nested macro apparently terminates the expansion
*   of the outer macro(s); also, the listing file has extraneous
*   lines at the end of each macro expansion, one per macro level.
*-----------------------------------------------------------

TASK   MACRO
   MOVE.B #\1,D0
   TRAP #15
   NOP   ;task
   ENDM

TimeTask   EQU   8   ;Centisecs since midnight to D1.L
CentiSec   MACRO
   TASK   TimeTask
   NOP   ;centisec
   ENDM

M3   macro
   CentiSec
   move.l   d1,d0
   NOP   ;m3
   endm

START   ORG   $1000

*   Each of the bits of AL code below should generate the same ML code,
*   except for the number of NOPs at the end of each.
         
   move.b   #TimeTask,D0   ;should have no NOP
   trap   #14

   task   TimeTask    ;should have one NOP

   CentiSec     ;should have two NOPs

   m3       ;should have three NOPs

   END   START


This is the .L68 file:
Code:
00001000 Starting Address
Assembler used: EASy68K Editor/Assembler v3.1 April 19, 2005
Created On: 11/26/05 5:29:16 PM

00000000                             1  *-----------------------------------------------------------
00000000                             2  *
00000000                             3  *   NOTE: This program isn't intended to be executed, just assembled
00000000                             4  *         and the listing examined.
00000000                             5  *
00000000                             6  * Program Name  : NestedMacroTest.x68
00000000                             7  * Written by    : gtippery
00000000                             8  * Date Created  : 26-Nov-2005
00000000                             9  * Description   : Nested macros are not correctly expanded.  The
00000000                            10  *   ENDM of the nested macro apparently terminates the expansion
00000000                            11  *   of the outer macro(s); also, the listing file has extraneous
00000000                            12  *   lines at the end of each macro expansion, one per macro level.
00000000                            13  *-----------------------------------------------------------
00000000                            14 
00000000                            15  TASK        MACRO
00000000                            16              MOVE.B #\1,D0
00000000                            17              TRAP #15
00000000                            18              NOP     ;task
00000000                            19              ENDM
00000000                            20 
00000000  =00000008                 21  TimeTask    EQU     8                       ;Centisecs since midnight to D1.L
00000000                            22  CentiSec    MACRO
00000000                            23              TASK    TimeTask
00000000                            24              NOP     ;centisec
00000000                            25              ENDM
00000000                            26 
00000000                            27  M3          macro
00000000                            28              CentiSec
00000000                            29              move.l  d1,d0
00000000                            30              NOP     ;m3
00000000                            31              endm
00000000                            32 
00001000                            33  START       ORG     $1000
00001000                            34 
00001000                            35  *           Each of the bits of AL code below should generate the same ML code,
00001000                            36  *           except for the number of NOPs at the end of each.
00001000                            37             
00001000  103C 0008                 38              move.b  #TimeTask,D0            ;should have no NOP
00001004  4E4E                      39              trap    #14
00001006                            40 
00001006                            41              task    TimeTask                ;should have one NOP
00001006  103C 0008                 41              MOVE.B #TIMETASK,D0
0000100A  4E4F                      41              TRAP #15
0000100C  4E71                      41              NOP     ;TASK
0000100E                            41              ENDM
0000100E                            42 
0000100E                            43              CentiSec                        ;should have two NOPs
0000100E                            43              TASK    TIMETASK
0000100E  103C 0008                 43              MOVE.B #TIMETASK,D0
00001012  4E4F                      43              TRAP #15
00001014  4E71                      43              NOP     ;TASK
00001016                            43              ENDM
00001016                            43              TASK    TIMETASK
00001016                            44 
00001016                            45              m3                              ;should have three NOPs
00001016                            45              CENTISEC
00001016                            45              TASK    TIMETASK
00001016  103C 0008                 45              MOVE.B #TIMETASK,D0
0000101A  4E4F                      45              TRAP #15
0000101C  4E71                      45              NOP     ;TASK
0000101E                            45              ENDM
0000101E                            45              TASK    TIMETASK
0000101E                            45              CENTISEC
0000101E                            46 
0000101E                            47              END     START

No errors detected
No warnings generated


SYMBOL TABLE INFORMATION
Symbol-name         Value
-------------------------
CENTISEC            2E
M3                  55
START               1000
TASK                0
TIMETASK            8


Top
 Profile  
 
 Post subject:
PostPosted: Mon Nov 28, 2005 3:18 am 
Offline
User avatar

Joined: Thu Dec 16, 2004 6:42 pm
Posts: 1102
Nested macros are not supported in the current version. I'll move this to the Wish List

There are all great ideas and points on the macro processing. I'll take a look at these issues the next time I'm working on the assembler.

_________________
Prof. Kelly


Top
 Profile  
 
 Post subject:
PostPosted: Sat Dec 03, 2005 1:53 am 
Offline
User avatar

Joined: Thu Dec 16, 2004 6:42 pm
Posts: 1102
Nested macros will work in the next beta realease.

_________________
Prof. Kelly


Top
 Profile  
 
 Post subject:
PostPosted: Thu Apr 27, 2006 3:26 pm 
Offline
User avatar

Joined: Thu Dec 16, 2004 6:42 pm
Posts: 1102
Added to v3.6 beta.

_________________
Prof. Kelly


Top
 Profile  
 
 Post subject:
PostPosted: Mon May 01, 2006 3:51 pm 
Offline

Joined: Tue Nov 15, 2005 7:58 am
Posts: 129
Location: Oregon, USA
:cheers:


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 5 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group