The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: norman@oclsc.org (Norman Wilson)
To: tuhs@tuhs.org
Subject: Re: [TUHS] Disassemblers
Date: Sat, 19 Jun 2021 21:15:53 -0400 (EDT)	[thread overview]
Message-ID: <20210620011553.E7D7F640CC6@lignose.oclsc.org> (raw)

Rob Pike:

  Although upon reflection, I think what I did was fix 'adb' and call it
  'db'. Haven't had my coffee yet this morning.

====

I don't think so.  I did quite a lot of work on adb during my
time at the Labs.  I remember clearly that it still used all
the Bournegol macros when I started; I doubt Rob would have
left that there.  (It was Rob who translated the shell
back to C, I believe.)

I got into adb because it still used ptrace and everyone else
seemed scared to touch the code to convert it to use /proc.
So I fixed that, and fixed sdb too, and finally removed
the ptrace call from the kernel.  I remember celebrating
by expunging ptrace from the UNIX Room copy of the V8
manual.  ptrace happened to occupt two facing pages, which
I glued together.

I did a lot more hacking on adb after that, ranging from
little stuff like making # a synonym for 0x in input
(so that adb's output could be picked up from the screen
and re-used as input, a principle established firmly and
correctly by Rob!) to a major restructuring to isolate
machine-dependent pieces like instruction decoding and
word formats, so that it was simpler not only to make
adb work on a new processor architecture but even to make
a sort of cross-adb that could, say, correctly interpret
a PDP-11 core image on a VAX.  (This actually mattered;
by the time I arrived Research had no PDP-11s running
general-purpose UNIX, but did have LSI-11s acting as
Datakit controllers and a standalone power-backed-up
LSI-11 that decoded the time signal from WWVB.)

I was never really happy about the restructuring; it did
more or less what I wanted but it wasn't really graceful.
And cross-adb needed a distinct binary for each target.
I had thoughts of trying to make a meta-language to
describe the target's data formats (simple except for
floating point) and how to print its instructions
(messier, but I remember being inspired by the clever
table-driven code in an disassembler Ken wrote for,
I think it was, the NS32000), so that one could load
a table from a file at startup; never had the time or
the courage to carry through on it.

Norman Wilson
Toronto ON

             reply	other threads:[~2021-06-20  1:50 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-20  1:15 Norman Wilson [this message]
  -- strict thread matches above, loose matches on Subject: below --
2021-06-19 17:57 Noel Chiappa
2021-06-19 18:40 ` Clem Cole
2021-06-19 15:04 Henry Bent
2021-06-19 15:54 ` Clem Cole
2021-06-19 16:33   ` Henry Bent
2021-06-19 16:59     ` Clem Cole
2021-06-19 20:44       ` Richard Salz
2021-06-19 21:49         ` Rob Pike
2021-06-19 21:50           ` Rob Pike
2021-06-19 22:55             ` Clem Cole
2021-06-19 23:14               ` Larry McVoy
2021-06-20  1:41             ` Brantley Coile
2021-07-02  1:36       ` scj
2021-07-02 16:56         ` Paul Winalski
2021-07-02 17:45           ` Paul Winalski
2021-07-02 18:07           ` John P. Linderman

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=20210620011553.E7D7F640CC6@lignose.oclsc.org \
    --to=norman@oclsc.org \
    --cc=tuhs@tuhs.org \
    /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).