9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
* DEC pmax support in vl (W/O broken attachments)
@ 1996-11-03 18:37 Tad
  0 siblings, 0 replies; 2+ messages in thread
From: Tad @ 1996-11-03 18:37 UTC (permalink / raw)


In message <199611031831.NAA25084@mcp.csh.rit.edu>, you said:
;------- =_aaaaaaaaaa0
;Content-Type: text/plain; charset="us-ascii"
;Content-ID: <21904.847045875.1@elwood-low.csh.rit.edu>
;
;    Looks like I screwed up the attachments.  This is attempt number 2.
;
;
;    I'm working on porting plan9 to the DEC pmax.  The pmax is a little
;    endian based mips port.  Step one was to make the plan9 mips toolset outpu
;t
;    little endian code.  The following 3 diffs patch vl(1) to make bootable
;    pmax code.
;
;    -Tad

Ok, the attachments are still a bit broken.  I thought the '.'s in the first
column were screwing my mailer up, so I doubled them... guess what, that
doesn't seem to have been the problem.  So just do this little sed(1)ism on
the diffs:    's/^\.\.$/\./'

-Tad
	    




^ permalink raw reply	[flat|nested] 2+ messages in thread

* DEC pmax support in vl (W/O broken attachments)
@ 1996-11-03 18:31 Tad
  0 siblings, 0 replies; 2+ messages in thread
From: Tad @ 1996-11-03 18:31 UTC (permalink / raw)


------- =_aaaaaaaaaa0
Content-Type: text/plain; charset="us-ascii"
Content-ID: <21904.847045875.1@elwood-low.csh.rit.edu>

    Looks like I screwed up the attachments.  This is attempt number 2.


    I'm working on porting plan9 to the DEC pmax.  The pmax is a little
    endian based mips port.  Step one was to make the plan9 mips toolset output
    little endian code.  The following 3 diffs patch vl(1) to make bootable
    pmax code.

    -Tad


------- =_aaaaaaaaaa0
Content-Type: text/plain; charset="us-ascii"
Content-ID: <21904.847045875.2@elwood-low.csh.rit.edu>
Content-Description:  "vl/asm.c.diff" 

373a
wput(short s)
{

	WPUT(s);
}

void
..
350a
	case 6:
		 /* struct filehdr */
		wput(0x162);			/* f_magic (MIPSELMAGIC) */
		wput(3);			/* f_nscns */
		lput(time(0));			/* f_timdat */
		lput(0); 			/* f_symptr */
		lput(0);			/* f_nsyms */
		wput(56);			/* f_opthdr */
		wput(7);			/* f_flags */
		 /* struct aouthdr */
		wput(0407);			/* magic (OMAGIC) */
		wput(0x300);			/* vstamp */
		lput(rnd(textsize,INITRND));	/* tsize */
		lput(rnd(datsize,INITRND));	/* dsize */
		lput(rnd(bsssize,INITRND));	/* bsize */
		lput(entryvalue());		/* entry */
		lput(INITTEXT);			/* text_start */
		lput(INITDAT);			/* data_start */
		lput(rnd(INITDAT+datsize,
			 INITRND));		/* bss_start */
		lput(~0L);			/* gp reg mask */
		lput(0L);			/* cprmask[0] */
		lput(~0L);			/* cprmask[1] */
		lput(0L);			/* cprmask[2] */
		lput(0L);			/* cprmask[3] */
		lput(~0L);			/* gp value */
		 /* section header: text */
		strnput(".text", 8);		/* s_name: text segment */
		lput(INITTEXT);			/* s_paddr: phys addr */
		lput(INITTEXT);			/* s_vaddr: virt addr */
		lput(rnd(textsize,INITRND));	/* s_size: section size */
		lput(rnd(HEADR,INITRND));	/* s_scnptr: filep offset */
		lput(0L);			/* s_relptr: filep to reloc */
		lput(0L);			/* s_lnnoptr: unused */
		wput(0);			/* s_nreloc */
		wput(0);			/* s_nlnno: unused */
		lput(0x20);			/* s_flags: TEXT */
		 /* section header: data */
		strnput(".data", 8);		/* s_name: data segment */
		lput(INITDAT);			/* s_paddr: phys addr */
		lput(INITDAT);			/* s_vaddr: virt addr */
		lput(rnd(datsize,INITRND));	/* s_size: section size */
		lput(rnd(HEADR,INITRND)
		     +rnd(textsize,INITRND));	/* s_scnptr: filep offset */
		lput(0L);			/* s_relptr: filep to reloc */
		lput(0L);			/* s_lnnoptr: unused */
		wput(0);			/* s_nreloc */
		wput(0);			/* s_nlnno: unused */
		lput(0x40);			/* s_flags: DATA */
		 /* section header: bss */
		strnput(".bss", 8);		/* s_name: bss segment */
		lput(rnd(INITDAT+
		     datsize,INITRND));		/* s_paddr: phys addr */
		lput(rnd(INITDAT+
		     datsize,INITRND));		/* s_vaddr: virt addr */
		lput(rnd(bsssize,INITRND));	/* s_size: section size */
		lput(0L);			/* s_scnptr: filep to section */
		lput(0L);			/* s_relptr: filep to reloc */
		lput(0L);			/* s_lnnoptr: unused */
		wput(0);			/* s_nreloc */
		wput(0);			/* s_nlnno: unused */
		lput(0x80);			/* s_flags: BSS */
..
132a
		case 6:
			OFFSET=rnd(HEADR,INITRND)
			       +rnd(HEADR+textsize,INITRND)
			       +rnd(datsize,INITRND);
			seek(cout, OFFSET, 0);
			break;
..
105a
	case 6:
		OFFSET = rnd(HEADR,INITRND)+rnd(textsize,INITRND);
		seek(cout, OFFSET, 0);
		break;
..
64c
	switch(HEADTYPE) {
	case 0:
	case 1:
	case 2:
	case 3:
	case 4:
	case 5:
		OFFSET = HEADR;
		break;
	case 6:
		OFFSET = rnd(HEADR,INITRND);
		break;
	}
..
27a
#define	WPUT(c)	{		if(endian == 'B') { 		    cbp[0] = (c)>>8;		    cbp[1] = (c);		} else { 		    cbp[0] = (c);		    cbp[1] = (c)>>8;		} 		cbp += 2;		cbc -= 2;		if(cbc <= 0)			cflush();	}

..
18,21c
		if(endian == 'B') { \
		    cbp[0] = (c)>>24;\
		    cbp[1] = (c)>>16;\
		    cbp[2] = (c)>>8;\
		    cbp[3] = (c);\
		} else { \
		    cbp[0] = (c);\
		    cbp[1] = (c)>>8;\
		    cbp[2] = (c)>>16;\
		    cbp[3] = (c)>>24;\
		} \
..
2a
extern char endian;


..

------- =_aaaaaaaaaa0
Content-Type: text/plain; charset="us-ascii"
Content-ID: <21904.847045875.3@elwood-low.csh.rit.edu>
Content-Description:  "vl/obj.c.diff" 

1220c
		c = find1(order, i+1);
..
1218a
	long order;

	if(endian == 'B') order = 0x01020304L;
	else order = 0x04030201L;

..
151a
	case 6:	/* boot for dec pmax */
		HEADR = 20L+56L+3*40L;
		if(INITTEXT == -1)
			INITTEXT = 0x80020000L;
		if(INITDAT == -1)
			INITDAT = 0;
		if(INITRND == -1)
			INITRND = 16;
		endian = 'L';
		break;
..
125c
	case 3:	/* boot for sgi 4k */
..
107c
	case 1:	/* boot for sgi 3k */
..
19a
 *	-H6 -T0x80030000 -R16 		is dec pmax boot coff executable
..
17c
 *	-H3 -T0x80020000 -R8		is bootp() format for sgi 4k
..
15c
 *	-H1 -T0x80020000 -R4		is bootp() format for sgi 3k
..
12a
char	endian		= 'B';

..

------- =_aaaaaaaaaa0
Content-Type: text/plain; charset="us-ascii"
Content-ID: <21904.847045875.4@elwood-low.csh.rit.edu>
Content-Description:  "vl/l.h" 

273a
void	wput(short);
..

------- =_aaaaaaaaaa0--




^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~1996-11-03 18:37 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1996-11-03 18:37 DEC pmax support in vl (W/O broken attachments) Tad
  -- strict thread matches above, loose matches on Subject: below --
1996-11-03 18:31 Tad

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).