[Date Prev][Date Next][Subject Prev][Subject Next][
Date Index][
Subject Index]
Re: NotaBene DOS 3 question
- Subject: Re: NotaBene DOS 3 question
- From: Wally Bass wbass@xxxxxxxx
- Date: Thu, 17 Jan 2008 20:04:45 -0800
At 09:18 AM 1/16/08 -0800, Harry Binswanger wrote:
Wally Bass Wrote:
I've been looking back at NB 3.0 for DOS (exe dated 5/25/90), and I'm
wondering ...
Interesting questions, but why, other than historical curiosity, would you
want to use NB 3.0 for DOS? Xy 4 is decidedly superior, works on any files
that NB would have produced, and is, I think, free. At least it's abandonware.
Well, on freeware/abandonware: there are many points of view, but I don't
think it's abandonware. As far as I know, NB bought the rights to the code,
and since NB 8 still does word processing and also XPL, I'm sure that much
of the original code is still in use in NB 8. They don't give NB 8 away, so
why would one assume that the code has been abandoned?
True, NB seems to envision their "value-add" in their "scholarly writing"
add-ons. And also true, NB's almost secretive approach as to how their
add-ons interface with the XyWrite code makes the NB product much less the
hacker's delight that XyWrite once was. I suppose that one could therefore
infer that NB isn't trying to compete in the same market as XyWrite, but
that's a little weak as an argument that they've abandoned the copyrights
that they own.
I also am aware that TGRP made XY3+ 3.58B NW and 4.018 XY4DOS available as
readily available downloads (bless their hearts), but I think that was much
more in the spirit of providing updates for licensed users without
burdening TGRP with an update administration problem, than it was in the
spirit of a providing a freebe for the world at large.
On why XY3+ or NB3 over XY4: I actually use only XY3+ 3.57, so moving to
either NB3 or XY4 would require some effort. My XY3+ is heavily
personalized to what I do, which isn't much like what anyone else does that
I know of. For example, I have an XPL module that is bound to Ctrl-X, and
which reads a second key and then does something depending on the key. So
in my environment, a lot of things are done with sequences, like "Ctrl-X,
Ctrl-S", many of which match the keyboard sequences used in Emacs and/or
Luguru's Epsilon). I don't use any mappings that involves two "shift" keys
(Ctrl, Alt, or Shift) being down at the same time.
I use XY as an editor, not a word processor -- if I turn on my printer
twice in one year for other than turbotax, it would be unusual. A lot of my
XY personalization centers around being able to make mass changes to many
files at once, which might be either code or text, but are often not files
which I created originally. A common technique in my activities is to make
the changes in an automated way, but to make them as redline markups (by
having XPL macros add MDDN and MDIN tags to the text) , so that I can then
review them with PEV (to see if I got the changes right) before actually
committing them.
As it turns out, XY (and most other programs that allow heavy keyboard
remapping, such as Epsilon) interfaces with the keyboard by INTERCEPTING
INT 9 (keyboard interrupt), rather than by getting the keystrokes by
CALLING the BIOS (INT 16h) -- it does so because much info is lost in the
BIOS's handling of the keyboard, and, for example, things like Ctrl-Shift-A
are not descernable using INT 16h. But virtually no program which
intercepts INT 9, including XY, does so correctly -- the correct procedure
for intercepting INT 9 changed in going from the PCXT to the PCAT, most of
the books describing keyboard intercepts had been written by then, and few
noticed that the correct procedure was different (and much more complex)
for the PCAT (and later). With the second release of the PCAT BIOS, IBM
provided the INT 15h function 4Fh alternative to INT 9, which does work
correctly, but few programs use it. The problems with intercepting INT 9 on
PCAT's and later are timing dependent.
Anyway, this situation once caused me a lot of trouble on a particular
laptop that I owned. So I wrote a small assembler module, which I still
normally use lieu of EDITOR.EXE. It loads EDITOR (without starting it),
patches it a bit in memory to interface with code in my assembler module
so as to use INT 15h fcn 4Fh rather than INT 9, does a couple other things,
and then invokes EDITOR. But the patches that my module makes are tuned to
absolute locations in XY3+ 3.57, so I would have to do some work to tune my
module for use with any other XY version.
I was just beginning to consider doing that . I am also hoping to update my
code so that it will make XY do a processor halt instruction and go into a
wait state, rather than doing a spin loop, when waiting for a keystroke.
This would make XY a much friendlier player in multitasking environments
like Windows or Linux, since it would only use as much CPU as it actually
needs. It would also make high powered machines running XY run considerably
cooler (and save battery on laptops). Tame does some of the same kind of
thing, but I think it takes Tame a while to figure out each time that XY
has gone into a keyboard spin loop.
So that is why I was looking at other XY/NB versions. In so doing, I'm
counting the licenses that I have and thought that I would formulate a plan
accordingly. (I have licenses for each of XY2+, NB3, XY3, XY3+, XY3+ NW,
XY4, and NB 8 but I don't have an infinite number of any -- for products
where I have more than one license, my licenses were typically obtained
long ago at fire sales -- as software retailers went out of business, or
on places like ebay),
Wally Bass