I got it working :).

However, It doesn't look like macro files can be listed - from the system utilities manual: The .MACRO directive produces the entries in the library directory (macro names). LIBR does not maintain a directory listing file for macro libraries; you can print the ASCII input file to list the macros in the library.

I did a bunch more reading and figured out that the issue was around inconsistent/improper use of the leading dot. Interestingly, no diagnostic I could find was helpful in tracking this down. Y'alls tips and hints were much more useful.

So, here's how it went down (don't use a leading dot for user-defined macros, but if you do use them, use them everywhere):

.type et2.mac
    .TITLE  ETTYIN
    .MCALL    .TTYOUT,TIN

START:    MOV    #BUFFER,R1
    CLR    R2
INLOOP:    TIN    (R1)+
    INC    R2
    CMPB    #12,R0
    BNE    INLOOP
    MOV    #BUFFER,R1
OUTLOOP:.TTYOUT    (R1)+
    DEC    R2
    BEQ    START
    BR    OUTLOOP
BUFFER:    .BLKW    64.
    .END    START
.

.type tin.mac
.MACRO    TIN    CHAR
    EMT    ^O340
    BCS    .-2.
.IF NB <CHAR>
.IF DIF <CHAR>,R0
    MOVB    R0,CHAR
.ENDC
.ENDC
.ENDM

.lib/mac/c tin tin

.macro et2/list/cross+tin.mlb/lib

.link et2

.run et2
THIS IS A TEST
THIS IS A TEST
^C

.

I really appreciate y'alls assistance.

Thanks,

Will

On 2/5/16 12:19 PM, Timothe Litt wrote:
Try the obvious:

lib/mac/list tin.mlb

I don't remember exactly, but I think there's a /detail or /names or
/list=names that will list the macro names in the library.

That will at least determine if MAC *should* find the macro.

On 05-Feb-16 13:05, Will Senn wrote:

On 2/5/16 10:20 AM, Paul Koning wrote:
On Feb 5, 2016, at 10:48 AM, Will Senn <[email protected]> wrote:

All,

A couple of questions:

...
lib/mac/c tin tin
macro et2/list/cross+tin.mlb/lib
?MACRO-E-Errors detected:  2
DK:ET2,DK:ET2/C=DK:ET2,DK:TIN.SML
Try putting the macro library earlier in the command line.  I believe
MACRO processes command arguments as it encounters them, so here
you're asking it to assemble ET2 before you've given it the macro
library it needs to understand the .MCALL.

     paul

I tried the command with the filespecs switched with the same result:
.macro tin.MLB/lib+et2/list/cross
?MACRO-E-Errors detected:  2
DK:TIN,DK:ET2/C=DK:TIN.MLB/M,DK:ET2

And then I ran it via run macro:
.run macro
*ET2.OBJ,ET2.LST,ET2.LST=TIN.MLB/M,ET2
?MACRO-E-Errors detected:  2
ET2.OBJ,ET2.LST,ET2.LST=TIN.MLB/M,ET2
*

And then I edited the macro file to include a LIBRARY directive:
     .TITLE  ETTYIN
     .LIBRARY /TIN.MLB/
     .MCALL    .TTYOUT,.TIN

START:    MOV    #BUFFER,R1
     CLR    R2
INLOOP:    .TIN    (R1)+
     INC    R2
     CMPB    #12,R0
     BNE    INLOOP
     MOV    #BUFFER,R1
OUTLOOP:.TTYOUT    (R1)+
     DEC    R2
     BEQ    START
     BR    OUTLOOP
BUFFER:    .BLKW    64.
     .END    START

and recompiled:
.macro et2/list/cross
?MACRO-E-Errors detected:  2
DK:ET2,DK:ET2/C=DK:ET2

It looks to me like it is finding the file, but not "seeing" the macro
definition?

Thanks,

Will

_______________________________________________
Simh mailing list
[email protected]
http://mailman.trailing-edge.com/mailman/listinfo/simh



_______________________________________________
Simh mailing list
[email protected]
http://mailman.trailing-edge.com/mailman/listinfo/simh

_______________________________________________
Simh mailing list
[email protected]
http://mailman.trailing-edge.com/mailman/listinfo/simh

Reply via email to