The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: jrvalverde@cnb.csic.es (Jose R. Valverde)
Subject: [TUHS] Introduction
Date: Wed, 25 Jun 2008 11:40:40 +0200	[thread overview]
Message-ID: <20080625114040.54124362@veda.cnb.uam.es> (raw)
In-Reply-To: <20080623181101.e862a3a2.lehmann@ans-netz.de>

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 3247 bytes --]

Oliver:

Right, it seems that I mistransliterated the code in a hurry or confusion. 

I notice that on prf.c *adx is a pointer to be assigned to s, whereas in
sys2.c uap->linkname is the pointer itself thas is assigned to u.u_dirp.l
So my initial transliteration was wrong as I was assigning *uap->linkname
instead of uap->linkname.

Reviewing the assembler you submitted I notice it looks almost like what you
wanted but for @rr2 instead of rr2 so it might have been the extra * I
wrongly added in front of the parenthesized & expression and the erroneously
placed parenthesis (which I also got wrong) the reason for not getting what 
you wanted.

If on prf.c you have in printf
	register unsigned int *adx;
	char *s;

	adx = &x1;
...
	s = (char *) * adx;
and was recoded on WEGA in printfv
	register unsigned *adx;
	register char *s;

	adx = x1;
...
	s = (char *)(*(long *)adx & 0x7F00FFFF);

then maybe the right code on sys.c would be a change from
	caddr_t u.u_dirp;		/* char *, from param.h user.h */
        register struct a {
                char    *target;
                char    *linkname;
        } *uap;
...
	u.u_dirp.l = (caddr_t) uap->linkname;
to
	caddr_t u.u_dirp.l;		/* char *, from param.h user.h */ 
	register struct a {
                char    *target;
                char    *linkname;
        } *uap;
...
	u.u_dirp.l = (caddr_t) ) ((long *) uap->linkname & 0x7F00FFFF);

Note also the difference in parenthesis usage with what you said you had
tried on http://pofo.de/P8000/problems.php
	u.u_dirp.l = (caddr_t)(((long)uap->linkname) & 0x7F00FFFF);

I fear that I was too tired when I wrote my previous posting and made two
many mistakes.

Anyway, the first step should be to check what prf.c generates as assembler 
at these & lines when compiled. If it matches the sample code you mention you
have in other places then it means the same device was used to generate it
(which I would guess is the case) and then it should be a matter of thinking
clearly of what is being assigned. I do believe the surviving trace in prf.c
is the key to understanding the problem assembly code.

				j

On Mon, 23 Jun 2008 18:11:01 +0200 Oliver Lehmann <lehmann at ans-netz.de>
wrote:
> Hi Jose,
> 
> Jose R. Valverde wrote:
> 
> > 
> > 	u.u_dirp.l = (caddr_t) (*((long *)(uap->linkname &0x7F00FFFF)))
> > 
> 
> leads to:
> 
> "sys2.c":305: operands of "&" have incompatible types 
> Error in file sys2.c: Error.  No assembly.
> 
> 
> I've changed it to:
> 	u.u_dirp.l = (caddr_t) (*((long *)((long)uap->linkname &0x7F00FFFF)));
> 
> and this produces:
> 
>         ldl     rr2,rr8(#4)
>         and     r2,#32512
>         ldl     rr4, at rr2
>         ldl     _u+78,rr4
> 
> not exactly the wanted code :(
> 
> Greetings, Oliver
> 
> -- 
>  Oliver Lehmann
>   http://www.pofo.de/
>   http://wishlist.ans-netz.de/


-- 
	These opinions are mine and only mine. Hey man, I saw them first!

			    José R. Valverde

	De nada sirve la Inteligencia Artificial cuando falta la Natural
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20080625/f57ad71e/attachment.sig>


  reply	other threads:[~2008-06-25  9:40 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-06-04 11:57 Jose R. Valverde
2008-06-04 15:11 ` Oliver Lehmann
2008-06-04 15:16   ` Oliver Lehmann
2008-06-05 15:07 ` Jose R. Valverde
2008-06-05 17:59   ` Oliver Lehmann
2008-06-05 15:17 ` Jose R. Valverde
2008-06-05 17:45   ` Oliver Lehmann
2008-06-23 14:18   ` Jose R. Valverde
2008-06-23 16:11     ` Oliver Lehmann
2008-06-25  9:40       ` Jose R. Valverde [this message]
2008-06-25 10:25       ` Jose R. Valverde
2008-06-26 14:52         ` Oliver Lehmann
2008-06-27 12:24           ` Jose R. Valverde
2008-06-29  8:25             ` Oliver Lehmann
2008-06-30  9:30               ` Jose R. Valverde
2008-06-30 17:34                 ` Oliver Lehmann
2008-07-01 14:21                   ` Jose R. Valverde
2008-07-01 18:35                     ` Oliver Lehmann
2008-07-03 10:12                       ` Jose R. Valverde
2008-07-06 16:14                         ` Oliver Lehmann
2008-07-07  9:25                           ` [TUHS] SysIII/PDP-11 on SIMH (was Re: Introduction) Jose R. Valverde
2008-07-07  9:32                           ` [TUHS] Introduction Jose R. Valverde
2008-07-07 14:45                             ` Oliver Lehmann
2008-06-06  9:58 ` Jose R. Valverde
  -- strict thread matches above, loose matches on Subject: below --
2008-06-03  4:18 Oliver Lehmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080625114040.54124362@veda.cnb.uam.es \
    --to=jrvalverde@cnb.csic.es \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).