Mark:
I think you totally missed my point. In any case, with regard to
emulating the 8250 bugs, the issue is not what you do when the
emulated code correctly sets loop-back mode, as HDOS does, but what
happens when software doesn't. I don't recall that the app-notes of
1978 covered this issue. I am sure that there is code from that day
that doesn't. I found it out the hard way, and I suspect that your
8250 code won't glitch out the same characters that those original
8250's did. No one probably emulates the exact behavior of an 8250.
And more to the point, it's not really necessary! Simplification is
okay. Like most (all?) emulator writers, you have made some
simplifying assumptions--just different ones. Optionally emulating an
8251 does not invalidate the integrity of an emulator--at least for
software which does not directly drive the UART. I think the goal is
to not get all OCD over these issues to the point where you don't ever
end up with anything useful. I believe the old expression is, "Shoot
the engineer and ship the product".
I stand by my original comment, that by emulating an 8251, one can
eliminate the newbie issue of requiring spaces. By additionally
emulating the 8250's, you can probably enable people to run the
applications that do drive the hardware directly. But you're never
going to emulate the hardware "exactly". I also agree that H-89's
didn't have 8251's for their consoles.
As for the issue with configured distribution disks. If memory
serves, I wrote much of the code. I understand it. In fact, it
brings to mind a rather funny H-8 story.
One day, Neil Beneditz was working on some hardware, and wanted some
latest software. As we were between releases, I just duplicated a
disk that I was using for development. He returned to my office a few
hours later very perplexed. He accused me of breaking his H-17, or at
least of causing it to squeak. He couldn't believe that software
could make drives squeak, but he was adamant that I had done so.
Being ever the curious type, I followed Neil back to his office where
he demonstrated that I had, in fact, made is drives squeak. I
chuckled a bit to myself, and assured that he was right, and that I
would rectify the situation, headed back to my office, and coded up a
new HDOS command called "oil". One could oil the disk drives, memory,
led's, bus?, ... I took it back to Neil and instructed him on it's
use. The more he oiled the drives, the less they squeaked. When you
oiled the H-8 front panel, it would display "Drip" or some such
nonsense, and make a dripping sound. I believe when you oiled the
bus, or perhaps memory, the system would crash as all H-8's would in
those days if you had a bad stack, or other serious programming
error. They typically would whine away with the horn blaring, the
front-panel blank, etc.
Neil happily accepted my new software, with the new command, only to
return to my office again--a few hours later. He sat on his haunches
on the end of one of my engineering benches looking at me out of the
corner of his eyes. It was now undeniable, I truly could control the
squeaking of his H-17. (I think Neil had designed the H-17. Plumber
may have designed the controller, maybe it was Neil and Larry
together.) This was even more troubling to him. How could I do this,
he demanded! I laughed, after all, the hardest part of the "oil"
application was making it reliably crash when he oiled the memory.
After toying with him for a while, I confessed.
As you may know, HDOS supported an application called TEST17. One of
the primary original purposes of TEST17 was to determine the maximum
reliable step rate that your actual drives supported. Though they
were specified at 30ms per track, some (mostly early) would do 6ms
reliably. (I think 30 is the correct number, it's been a long time.)
Decreasing the step time would dramatically improve the performance of
your system for anything close to disk intensive. (Gordon was a smart
guy.) I had given Neil a disk configured for fast step times. His
drives squeaked when they stepped that fast. Mine didn't. Every time
he oiled the drives with the command, I reduced the step rate, and
updated the data block on the diskette. (I believe it was on track
0. I'd have to check a listing. Perhaps at the end of the label.)
We all had a good laugh before it was over. Neil was a fun guy to
work with, and I occasionally still see his son at the local Radio
Shack.
I suspect much of this energy capturing every magnetic flux change
would be better spent in creating an image format that included at
least some rudimentary type of error checking. Once on a hard drive,
the binary images are fine, but downloading them in the form they are
is probably a larger engineering "error" than ignoring the sync
characters in a disk image.
Interestingly, from a historical perspective, the inability to make
engineering compromises cost Heath/Zenith severely in the market
place. Zenith purchased Heath because we had an engineer building an
MBASIC interpreter for the H11. At the time, nearly all business
software (think Peach Tree) was written in MBASIC. The theory was
that by creating an MBASIC interpreter for the H-11, our customers
would have a scalable hardware/software platform--much as DEC provided
to it's customers. H-8, floppy and cassette based. H-11, had bigger
floppies, tape backup available, even hard drives. Zenith thought it
was a neat plan--and it was. Unfortunately, HBASIC (as it was called)
never saw the light of day, because the responsible engineer would not
make any design compromises. An example was that even lines were
managed by B-Trees. In this engineer's mind, you must always be able
to insert another line between two lines without renumbering by
adopting a text book numbering scheme (123.2), etc. It was a neat
idea. And on big iron, probably would not have been a problem.
However, due to this, and other design decisions, HBASIC wouldn't not
even run on a PDP-11 with 128KB of RAM, much less one with an address
space closer to 56KB. (For the record, Gordon who was responsible for
Benton Harbor Basic was gone by this time, I carefully haven't
revealed the HBASIC engineer's name. My intention is not to criticize
him, but rather, to illustrate the point.) Eventually, the engineer
agreed to an overlaying scheme, albeit reluctantly, but the resulting
system ended up being too slow. I am sure it would have been the
world's best BASIC ever written, but it never saw the light of day.
Examining the issue from a different perspective, we had an
engineering manager once who decided that he was going to "help"
Microsoft fix MBASIC. He procured the NBS (? National Bureau of
Standards) test suites available for basic at the time. I believe
that I let him then use a batch processor that I had written for HDOS,
and we ran them. (Yet another product they wouold not let me
release.) Needless to say, (for any one familiar with MBASIC in those
days,) MBASIC failed miserably. He proudly told Microsoft we would
not take delivery until the issues were fixed. Microsoft responded
that if he didn't want to take delivery of MBASIC, that was his
problem. They weren't going to fix all of the issues that he had
found. As an aside, doing so would have probably broken many an
MBASIC program that already existed. Perhaps the manager was trying
to impress the Microsoft folks. If he was, it didn't work. Gordon's
BH Basic was probably way more conforming to the basic standard.
(Just consider the simple operation of opening a file.) It didn't
matter. MBASIC had become the standard--along with all of its flaws
and warts.
If all of these thoughts don't flow together, just step back and take
the satellite view.
> >
sebhc%2Bunsu...@googlegroups.com<
sebhc%252Buns...@googlegroups.com >