Older blog entries for jct (starting at number 4)

7 Dec 2000 (updated 7 Dec 2000 at 16:49 UTC) »

Finally! It looks like I may have fixed the emulator so that it will correctly run the OI29 software, in particular the GPCF stuff available through the 70-series SPEC pages. SPEC 71 is the one that was causing the most trouble, but it now appears to run correctly.

We found the problem yesterday, with the help of Roscoe and Paul from Flight Software. When we found the problem, though, it was late in the day so I left the fix for this morning. The fix turned out to be related to my earlier "fix", in which I realized that the intermediate addresses for the indirect addressing mode need to be expanded from 16 bits to 19 bits just like the final addresses are expanded.

When I added the code to expand these intermediate addresses, I made a real dumb mistake: I casted the 19-bit expanded address back down to an unsigned short, thus throwing away 3 bits of address. D'oh! Anyway, SPEC 71 no longer hoses the emulation, and I'm going to look at other places we expand address to see if I have any other address-truncation problems.

-=-
7 Dec 2000 (updated 7 Dec 2000 at 16:49 UTC) »

Spent the last couple of days tracking down a bug in the emulator; today I even had a couple of flight software guys helping me out. Their insight was invaluable. Without knowing how the low-level I/O routines work, I never would have figured it out. The problem turns out to be with the same addressing mode as the first I fixed. One of the AP101/S addressing modes with indexed, indirect, and its own flowchart to show how it works. This mode is so complicated that I might never get it completely right; maybe when we get the microcode listings I'll be able to do better.

-=-
5 Dec 2000 (updated 5 Dec 2000 at 09:51 UTC) »

Note to jules, who observed that Solaris users seem to dislike bash because it's not installed by default:

I discovered, much to my surprise, that bash is installed by default on Solaris 2.8. I was mucking around with my PATH the other day, and I took all the GNU stuff out (why, I don't remember), thinking that at my next login my shell would fall back to csh. But it didn't. I then discovered that bash resides in /usr/bin/bash. This was on a Sparc Ultra 10, right out of the box, default OS install, and still had that "new computer" smell.

Once I worked with a fellow who would have used bash as his shell, but the OS, via chsh(1), wouldn't allow it as a logon shell. He was a sharp guy, but he didn't try very hard to solve this one. It's pretty easy to make bash your default shell even on an uncooperative OS like Solaris using a bit of script like the following in your login script:

  export SHELL=/usr/local/bin/bash
  if [ -x $SHELL ]; then
    exec env SHELL=$SHELL $SHELL -login
  fi
The "env" in there is hanging around from when I used this snippet with csh. I changed the "if" syntax, but left the env. In ksh, I guess this would be simpler as "SHELL=$SHELL exec $SHELL -login".

I digress. To get back to the point, bash is available on newer Sun systems. Don't remember about less, but I do seem to remember gzip being on my new sun too. Even if bash weren't installed by default, what's the problem with building it? I've never had a problem with bash in six or seven years of use; "./configure; make" has always worked just fine for me.

-=-
4 Dec 2000 (updated 5 Dec 2000 at 08:52 UTC) »

My beloved Auburn Tigers played in the SEC championship game in Atlanta Saturday where they fell again to Florida. But just getting the chance to play there was quite an accomplishment for coach Tuberville in only his second year. We'll be expecting even bigger things over the next couple of years, Coach.

Next we play the Michigan Wolverines in the Florida Citrus bowl; I was in school at Auburn the last (and, I think, only) time we played Michigan. That was in the Sugar Bowl with Pat Dye's first SEC champion ship team, in his third year as coach. It was Bo Jackson's sophomore year, but the game hero was senior Al Del Greco, who kicked a field goal on the last play of the game to give Auburn a 9-7 win. (Yes, that's the same Al Del Greco who kicked the winning field goal for the Tennessee Titans yesterday against the Philadelphia Eagles in Philly.)

* * *

Why is it so hard to get a gcc/gdb combination that works correctly on Solaris 2.8? I spent nearly two days trying to get a compiler that will produce code and a debugger that will report correct line numbers.

I'm no rookie at this; I've been building gcc for as long as I remember, but I've never had this kind of trouble. I tried gcc versions 2.7, 2.80, 2.90, and 2.95 (minor versions omitted), and gdb 4.15, 4.16, 4.17, 4.18, and 5.0. I also tried building gcc with and without the GNU binutils, versions 2.9 and 2.10. What eventually worked for me was binutils 2.9, gcc 2.95, and gdb 4.18. I know I must have been doing something stupid, but I never figured out exactly what.

Just as troubling is the problem on IRIX. The commercial, proprietary debugger on that system, for which we pay a metric buttload of money, barely works. It can attach to the process and look through memory, but it can't single-step through code. What a useless piece of junk! Unfortunately, gdb won't work with pthreads programs on IRIX, so it can't help us on that platform.

* * *

We have problems running the emulator on the new OI29 software. Last week, I found and fixed an addressing-mode problem, but there's at least one other problem that keeps us from running SPEC 71, the new GPCF screen. I'll keep plugging at it, now that I've got my debugger up and running again.

* * *

The ODS release is overdue. I have most of the code functioning, but I haven't finished writing the new man page, or the release notes. I hope to have time before the end of the year.

-=-
3 Dec 2000 (updated 3 Dec 2000 at 04:25 UTC) »

Do not adjust your set. This is a Streaming Freedom video bulletin. The cable hack will last exactly sixty seconds; it cannot be traced. It cannot be stopped. And it is the only free voice left in this city.

So goes the tagline of a rogue journalist in the TV series Dark Angel. The character represents the voice of freedom (free as in "speech") in the struggle against a corrupt, dysfunctional society. It's an interesting parallel: his fiction and our reality in the OSS struggle against proprietary software. The resemblance is only skin deep, but compelling nevertheless.

* * *

I discovered Advogato some time ago, but have neglected to register until now. I have my own online diary software: some PHP3 code I threw together some time ago. My software is modeled after sites like everything.org and wiki-wiki-web in that it automatically generates hyerlinks between entries (a feature that might be cool to see here at Advogato). But my software is also immature, so I'm going to give Advogato a try.

I used to attempt keeping notes in a file in my home directory: kind of like a changelog with some simple formatting convetions. I used a small Emacs mode I wrote to help automate the editing. It worked very well until about five years ago when I started using linux. Until then I only had one account on one unix system, which made keeping track of my log file no problem at all - it was always there when I needed it in the same file in the same directory.

When I started using linux on my home PC, I used the same software to keep the same kind of log on my home system. At first, this worked: work-related notes on the system at work, personal notes on the personal system at home. Pretty quickly, though, the system broke down: I often think about work while I'm at home, and vice-versa. (Yeah, I'm not supposed to think about personal stuff on the clock, but the thoughts come unbidden. Try not to think about purple elephants, and you'll see what I mean.) My notes started to cross-pollinate between the two log files, and pretty soon it was hard to tell one from the other.

To make matters worse, I changed jobs to one that requires me to work on several different systems. And just last year, I bought a laptop, one more system to throw into the mix. My notes, thoughts, to-do items were now scattered across several files on several systems. I could still record my thoughts anytime I needed, but going back and finding them later became a real problem - often the entry I was seeking wasn't on the same system I was using, and then I had to go into hunt mode.

I suppose I'm probably preaching to the converted here: who hasn't had a similar problem? I thought my Palm organizer might help matters - it solved a similar problem I had keeping track of phone numbers. But great though the Palm is, it just isn't great at writing notes onto.

Now that the Internet is everywhere, it's clearly a great potential candidate to solve this kind of problem: put the the notes online. Store them in a database. Enable me to retrieve them, add new ones, edit old ones, etc., from any computer connected to the net.

I've been using my own PHP journal pages, but they're not as mature yet as the Advogato diary system. The Advogato system is obviously very simple, and not very feature-burdened, but sometimes less is more. I really like its ease of use. I like its fast-loading design. I like its clean, uncluttered look. Some new features would be nice, and who knows, maybe I'll take the Advogato code and add my own features. That is how the whole OSS thing works, right?

Stay tuned. More about ODS, exif-tools, and linux digital photography still to come.

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!