[Simh] Macro-11 Macro library question (RT11 running in SimH PDP11)

Johnny Billquist bqt at softjar.se
Sat Feb 6 08:29:41 EST 2016


Ah! I obviously didn't pay enough attention. Looking now at your 
original post, you did indeed define the macro without the dot, so 
obviously you would not find a macro that started with a dot.

Doh!

	Johnny

On 2016-02-05 23:38, Will Senn wrote:
> 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.senn at 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 at trailing-edge.com
>>>>>> http://mailman.trailing-edge.com/mailman/listinfo/simh
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Simh mailing list
>>>>> Simh at trailing-edge.com
>>>>> http://mailman.trailing-edge.com/mailman/listinfo/simh
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Simh mailing list
>>>> Simh at trailing-edge.com
>>>> http://mailman.trailing-edge.com/mailman/listinfo/simh
>>>
>>>
>>>
>>> _______________________________________________
>>> Simh mailing list
>>> Simh at trailing-edge.com
>>> http://mailman.trailing-edge.com/mailman/listinfo/simh
>>>
>>
>>
>
> _______________________________________________
> Simh mailing list
> Simh at trailing-edge.com
> http://mailman.trailing-edge.com/mailman/listinfo/simh

-- 
Johnny Billquist                  || "I'm on a bus
                                   ||  on a psychedelic trip
email: bqt at softjar.se             ||  Reading murder books
pdp is alive!                     ||  tryin' to stay hip" - B. Idol


More information about the Simh mailing list