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<[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
_______________________________________________
Simh mailing list
[email protected]
http://mailman.trailing-edge.com/mailman/listinfo/simh
--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: [email protected] || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol
_______________________________________________
Simh mailing list
[email protected]
http://mailman.trailing-edge.com/mailman/listinfo/simh