* Newbie Roadmap?
@ 2005-06-27 18:20 Howard Owen
2005-06-28 21:41 ` Horst von Brand
2005-06-29 21:27 ` Jesper Juhl
0 siblings, 2 replies; 5+ messages in thread
From: Howard Owen @ 2005-06-27 18:20 UTC (permalink / raw)
To: LKML List
I've embarked on a project to write device drivers for an obscure and
rare ISA card. It's a modern version of the HP 82973 HP-IL interface
produced by Cristoph Klug. HP-IL was a bit-serial, dog-slow version of
HP-IB (IEEE-488) that was designed to work with the HP-41C family of
calculators, and later with the HP-71 and HP-85. The 41C calculators are
my hobby interest. I'd like to introduce myself, and ask for pointers
for a newbie device driver author.
A little about me. I've been working in IT since before it was called
that. I started out in 1985, so that's 20 years. I've been a systems
engineer, then a systems administrator, then a systems engineer again,
then a systems architect. Those titles had various meanings at various
times, but the common denominator has always been systems, systems and
systems. I have little academic background, learning most of what I know
on the job, on line and at conferences, symposia and training courses.
The first kernel architecture I learned about was VAX/VMS 4. I've delved
deeper into BSD and Linux than any other kernel architectures, but it
has been only as a bug chaser. I've needed to understand the Red Hat
version of the 2.4 kernel at my most recent job in order to be able to
triage bugs and suggest solutions. My C programming skills are fair. I
can read kernel code, and with the help of LXR, I can gain some
understanding of what is going on. I probably know just enough to be
dangerous slinging my own code around. 8)
What I've done so far: I've picked up and started reading "Linux Device
Drivers" both editions 2 and 3. I'm about half way through Love's "Linux
Kernel Development" I've gotten my device to work under DOSEMU with its
userland port access. (The existing software is DOS) Using DOSEMU, I've
watched the dialog between the software and the card, and also with
external devices. I've talked about the architecture with an interested
colleague and made some tentative choices on that front. I'm starting
out running Slack 10.1, so I'll probably tackle the 2.4 driver first.
At this juncture I'd like to start engaging with the wider community, to
make sure I'm not going too far astray. The current driver, once it's
finished, won't need wide distribution, since I'm sure there are fewer
than 100 boards in existence. But I'd like to write the driver as if it
were going to have a wide audience, both for the education in the
discipline of writing such things, and for the enjoyment of doing it the
right way.
If anyone has suggestions or pointers for a newbie with the above
background, I'd greatly appreciate hearing from you.
Thanks,
--
Howard Owen hbo@egbok.com "Even if you are on the right
EGBOK Consultants Linux Architect track, you'll get run over if you
fwd:50279 pstn:+1-650-218-2216 just sit there." - Will Rogers
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Newbie Roadmap?
2005-06-27 18:20 Newbie Roadmap? Howard Owen
@ 2005-06-28 21:41 ` Horst von Brand
2005-06-29 1:08 ` Howard Owen
2005-06-29 21:27 ` Jesper Juhl
1 sibling, 1 reply; 5+ messages in thread
From: Horst von Brand @ 2005-06-28 21:41 UTC (permalink / raw)
To: Howard Owen; +Cc: LKML List
Howard Owen <hbo@egbok.com> wrote:
> I've embarked on a project to write device drivers for an obscure and
> rare ISA card. It's a modern version of the HP 82973 HP-IL interface
> produced by Cristoph Klug. HP-IL was a bit-serial, dog-slow version of
> HP-IB (IEEE-488) that was designed to work with the HP-41C family of
> calculators, and later with the HP-71 and HP-85. The 41C calculators are
> my hobby interest. I'd like to introduce myself, and ask for pointers
> for a newbie device driver author.
As you say later you have stuff working in userland under DOSEMU (and the
"dog slow" part), I'd suggest a userspace driver. It is probably easier to
work with, and has the advantage that you can run it under the bog-standard
$DISTRO kernel with some care, no patching/reconfiguring/rebuilding to be
done.
[No, I'm just an old hand here; no expert of any sort. Good luck!]
--
Dr. Horst H. von Brand User #22616 counter.li.org
Departamento de Informatica Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria +56 32 654239
Casilla 110-V, Valparaiso, Chile Fax: +56 32 797513
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Newbie Roadmap?
2005-06-28 21:41 ` Horst von Brand
@ 2005-06-29 1:08 ` Howard Owen
0 siblings, 0 replies; 5+ messages in thread
From: Howard Owen @ 2005-06-29 1:08 UTC (permalink / raw)
To: Horst von Brand; +Cc: LKML List, Eric Smith
I originally sent this as a private reply to Horst, not having seen it
show up on the list. I can't resist tinkering, so this version is
slightly improved from the one I sent earlier. Sorry for the duplicate,
Horst.
Thanks so much for your reply!
If I needed the device to work for some practical purpose, I would agree
with your suggestion, and call the problem solved with a userland
driver. However, I'm interested in writing a proper driver mainly for
the fun and education of the effort. There is another hobbyist interest
that attracts me about the project. That will take a little explanation,
if you will indulge me.
The HP-41C won over a generation of engineers. It was a computing
system, rather than a mere programmable calculator. At about the same
time as the MITS, Altair and Apple 1 hobbyist microcomputers, HP came
out with this expandable machine. They also designed, and later released
the "dog-slow" HP-IL bit serial master/slave network. The fanatical
following of HP-41 enthiusiasts peaked in the US in the mid-to-late
1980s. Before then, they had built a culture of sharing that was not
unlike what emerged as the Berkeley branch of the "Open Source
Movement." The legacy of all this is a mountain of technical literature
and software. Hewlett Packard added greatly to the hoard by cutting
loose of most of the internal documentation on the HP-41C and its
peripherals under a "don't bother us" license.
Nowadays, there is still a community of engineers and similar folks who
like to play with HP-41Cs. These folks also have about 100 other HP
calculator models to play with, but the 41 seems to hang in there near
the top of people's lists. The culture partakes of the earlier sharing
culture that the original fans built. However, most of today's
participants are DOS or Windows users. For example, there are half a
dozen HP-41C emulators that run on PCs. All but one run on DOS/Windows
only. One of these is EMU41, by J. F. Garnier. This is a DOS application
that emulates the 41C at the microcode level. J. F. has also written
code to emulate the HP-IL loop, so his virtual calculator can have
virtual printers and disks attached to it. Another one of the old timers
of the HP-41 world, Cristoph Klug, has kept up correspondence with M.
Garnier. He decided to start raiding old HP-IL hardware for chips so he
could produce a new supply of the old HP-IL ISA card. This is the card
I'm interested in writing a driver for. Cristoph suggested to J. F. that
he modify EMU41 to allow it to talk to the real HP-IL board. J. F. did
this, and the result is a hardware/software combination that lets
virtual and real devices communicate over the HP-IL loop. It's pretty
cool. But J. F. and Cristoph are both old school. Neither of them have
expressed much interest in Linux. (One thing I hope to do is to tempt
them into paying more attention to Linux.)
I entered the picture a mere six weeks ago. I had been looking for a
software calculator to port to pdaXrom, a Linux OS for the Sharp Zaurus
clamshell PDA models. I ran across Nonpareil, the one and only HP-41C
emulator for Linux that I mentioned above. I successfully ported it in
an afternoon. (This is testament to the hard work of the pdaXrom crew
and to that of Eric Smith, the author of Nonpareil.) That got me
thinking about my old, long-lost HP-41CV. I ended up buying one on eBay
and the rest, as they say, is history. I was hooked by the idea of
wedding the HP-41C, which is the machine on which I first learned to
program, to Linux, which has been my favorite OS since 1992, and is
currently what gives me the resources to buy old calculator gear. The
idea of bringing together the earliest computer technology I had contact
with and the latest cutting edge was irresistible to me.
So I've been in discussions with Eric Smith about emulating HP-IL for
Nonpareil. Eric is an obscure CPU microcode wizard. (Obscure CPU, not
obscure wizard. 8) Nonpareil doesn't merely emulate the HP-41C, it also
emulates every HP calculator leading up to the 41C with varying degrees
of success. Eric is a guy who could produce working emulations of disks
and printers, if I could talk him into it. And given a reasonable device
interface, he could talk to real hardware too.
So that's my intention: to provide Eric with a reasonable driver for the
"HP-41C peripheral virtualization project," and to learn about 2.4 and
2.6 character mode drivers while I'm at it. Longer term, I want to
design and implement a USB interface to the HP-IL IC. That way I could
talk to my HP-41C from my Zaurus running pdaXrom, and then I wouldn't
need Nonpareil 8). (Although I'd still probably want access to the
virtual HP-IL driven coke machine Eric will undoubtedly write.)
Thanks again for your note!
Best regards,
Howard
On Tue, 2005-06-28 at 17:41 -0400, Horst von Brand wrote:
> Howard Owen <hbo@egbok.com> wrote:
> > I've embarked on a project to write device drivers for an obscure and
> > rare ISA card. It's a modern version of the HP 82973 HP-IL interface
> > produced by Cristoph Klug. HP-IL was a bit-serial, dog-slow version of
> > HP-IB (IEEE-488) that was designed to work with the HP-41C family of
> > calculators, and later with the HP-71 and HP-85. The 41C calculators are
> > my hobby interest. I'd like to introduce myself, and ask for pointers
> > for a newbie device driver author.
>
> As you say later you have stuff working in userland under DOSEMU (and the
> "dog slow" part), I'd suggest a userspace driver. It is probably easier to
> work with, and has the advantage that you can run it under the bog-standard
> $DISTRO kernel with some care, no patching/reconfiguring/rebuilding to be
> done.
>
> [No, I'm just an old hand here; no expert of any sort. Good luck!]
--
Howard Owen hbo@egbok.com "Even if you are on the right
EGBOK Consultants Linux Architect track, you'll get run over if you
fwd:50279 pstn:+1-650-218-2216 just sit there." - Will Rogers
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Newbie Roadmap?
2005-06-27 18:20 Newbie Roadmap? Howard Owen
2005-06-28 21:41 ` Horst von Brand
@ 2005-06-29 21:27 ` Jesper Juhl
2005-06-30 4:39 ` Howard Owen
1 sibling, 1 reply; 5+ messages in thread
From: Jesper Juhl @ 2005-06-29 21:27 UTC (permalink / raw)
To: Howard Owen; +Cc: LKML List
On 6/27/05, Howard Owen <hbo@egbok.com> wrote:
> I've embarked on a project to write device drivers for an obscure and
> rare ISA card. It's a modern version of the HP 82973 HP-IL interface
> produced by Cristoph Klug. HP-IL was a bit-serial, dog-slow version of
> HP-IB (IEEE-488) that was designed to work with the HP-41C family of
> calculators, and later with the HP-71 and HP-85. The 41C calculators are
> my hobby interest. I'd like to introduce myself, and ask for pointers
> for a newbie device driver author.
>
[...]
>
> What I've done so far: I've picked up and started reading "Linux Device
> Drivers" both editions 2 and 3. I'm about half way through Love's "Linux
> Kernel Development"
Good choice of books.
[...]
> I'm starting
> out running Slack 10.1, so I'll probably tackle the 2.4 driver first.
>
Slackware runs just fine with a 2.6 kernel. I've been running 2.5.x
and 2.6.x kernels on Slack for ages and I'm currently running
2.6.13-rc1 with Slackware-current.
[...]
> If anyone has suggestions or pointers for a newbie with the above
> background, I'd greatly appreciate hearing from you.
>
You probably already know this, but since you ask I'll point out the obvious :-)
Some good documents to read :
Documentation/CodingStyle
Documentation/SubmittingDrivers
Documentation/SubmittingPatches
And this I find to be a good website for new kernel hackers :
http://kernelnewbies.org/
--
Jesper Juhl <jesper.juhl@gmail.com>
Don't top-post http://www.catb.org/~esr/jargon/html/T/top-post.html
Plain text mails only, please http://www.expita.com/nomime.html
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Newbie Roadmap?
2005-06-29 21:27 ` Jesper Juhl
@ 2005-06-30 4:39 ` Howard Owen
0 siblings, 0 replies; 5+ messages in thread
From: Howard Owen @ 2005-06-30 4:39 UTC (permalink / raw)
To: Jesper Juhl; +Cc: LKML List
On Wed, 2005-06-29 at 23:27 +0200, Jesper Juhl wrote:
> >
> > What I've done so far: I've picked up and started reading "Linux Device
> > Drivers" both editions 2 and 3. I'm about half way through Love's "Linux
> > Kernel Development"
>
> Good choice of books.
>
Thanks for that feedback. They seemed like good choices, but I couldn't
be sure.
> [...]
> > I'm starting
> > out running Slack 10.1, so I'll probably tackle the 2.4 driver first.
> >
> Slackware runs just fine with a 2.6 kernel. I've been running 2.5.x
> and 2.6.x kernels on Slack for ages and I'm currently running
> 2.6.13-rc1 with Slackware-current.
I had planned to switch to the 2.6.x kernel after doing the 2.4 work.
Something tells me there will be a lot of documentation about porting a
driver from 2.4 to 2.6, and somewhat less in the other direction. 8)
> And this I find to be a good website for new kernel hackers :
> http://kernelnewbies.org/
Thanks for that pointer. Although for someone pushing 50, the picture of
the nursing penguin is a little incongruous. 8)
--
Howard Owen hbo@egbok.com "Even if you are on the right
EGBOK Consultants Linux Architect track, you'll get run over if you
fwd:50279 pstn:+1-650-218-2216 just sit there." - Will Rogers
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2005-06-30 4:40 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-06-27 18:20 Newbie Roadmap? Howard Owen
2005-06-28 21:41 ` Horst von Brand
2005-06-29 1:08 ` Howard Owen
2005-06-29 21:27 ` Jesper Juhl
2005-06-30 4:39 ` Howard Owen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®