I should have been more clear. I was inconsistent in my use of the dot. If I had used it everywhere, it would have been fine, to Timothe's point about it being a symbol. I didn't, so instead of fixing it in that direction, I chose the recommended path of not using dot for user-defined symbols.

You're right that the macro expansion didn't show anything because the symbol was undefined. I'll have to try the other list options later. I was able to get my textbook example (pascal like macros) working, so I'm good for the time being.

By the way, other than it's reliance on macros for I/O in the first 7 chapters, the book, "The Digital Way: Macro-11 Assembly Language Programming (PDP-11", by J. F. Peters, III, is pretty awesome. it covers PDP-11 architecture and includes information on how to work with assembly language using RT11, RSTS, and RSX-11 tools.

At the end of the day, my issues are a bit of pilot error combined with a huge helping of ignorance about the underlying systems that is only slowly being overcome. One day, I'm using RT11 (cuz it's simpler, generally), the next I'm using RSX-11 cuz it's got more software), slowly, it's all beginning to make sense ( which is slightly ironic, because really, I'm only trying to learn the PDP-11 well enough to understand Unix internals :), talk about the long way 'round, but fun, if sometimes a bit exasperating! ).

Thanks,

Will

On 2/5/16 3:59 PM, Johnny Billquist wrote:
He provided the listing in the original post.
He had one error on .MCALL line, and one on the .TIN line

U on .MCALL, and UQ on .TIN, if I remember right.

I also find it extremely strange that it would not be possible to start a user defined macro with '.', but if it works without, that's a strong indication that the dot was the problem.

Or else Will was not actually using a dot, but only something that looked like one, or something else funny...?

As for listing the macro expansions in the list file, that can be interesting, but if the symbol is considered undefined, you're not going to see anything more.

    Johnny

On 2016-02-05 22:41, Timothe Litt wrote:
Too many loose ends to declare victory.

The RT-11 librarian doesn't have a list command for macros; they were
second class citizens.  It's available on other DEC OS's librians, so I
must have crossed a memory.

Names with a '.'  or '$' are reserved to DEC.  But I don't think this
should impact how the search is conducted.  I'm pretty sure I had
private libraries with .foo names (legal, as I was in DEC :-)

In .FOO, '.' is part of the symbol name.

See
http://bitsavers.informatik.uni-stuttgart.de/www.computer.museum.uq.edu.au/RT-11/AA-5075A-TC%20PDP-11%20MACRO-11%20Language%20Reference%20Manual.pdf
Page 3-6; also chapter 7, section 7.8.

http://bitsavers.trailing-edge.com/pdf/dec/pdp11/rt11/v5.6_Aug91/AA-PDU0A-TC_RT-11_Commands_Manual_Aug91.pdf

describes the DCL:
e.g. EXECUTE MYLIB/LIBRARY+C.MAC/LIST/OBJECT

I don't suppose that you got it trouble for explicitly specifying .MLB?
That would be strange. But DCL for RT11 came after I stopped using RT11.

You didn't provide the .LST file, which is where the real error should
turn up.
Also,  .list MD, MC and ME will often shed some light on these sorts of
issues.  (Of these, ME is the only one not defaulted on)



On 05-Feb-16 16:05, Will Senn wrote:
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<will.s...@gmail.com>  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
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh


_______________________________________________
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh



_______________________________________________
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh



_______________________________________________
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh




_______________________________________________
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Reply via email to