Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

French Luser news

13 views
Skip to first unread message

Salle Arobase

unread,
Jul 4, 2003, 8:34:52 AM7/4/03
to
Hello, gang!

I have finally finished the 3-month long work session.

However, I do not know if I will be able to continue sending you nice little
"mini-articles": I have no work in sight at the moment.

Maybe you remember that I was searching an American University to host all
my CP/M files.

Well, as a thread to documenting CP/M-86 Plus, I have retyped everything
ever written by Digital Research, or published about, Concurrent CP/M
Version 3.1.

Total = more than 1.500 pages of WordStar text.

Is anybody out there
who has a good idea ?

Volume in drive C is IBMCLOWN
Directory of C:\WS

C: SID86 WS4 : TYPA86 WS4 : CCPMSG2 WS4 : ICCPMC WS4 : RBGRAF WS4
C: CCPMSG1 WS4 : CCPMSG3 WS4 : CCPMSG9 WS4 : CCPMSG4 WS4 : CCPMSG5 WS4
C: CCPMSG6 WS4 : CCPMSG7 WS4 : CCPMSG8 WS4 : CCPMSG10 WS4 : CCPMSG11 WS4
C: CCPMSGA WS4 : CCPMSGB WS4 : LIST32 WS4 : CCPMSG0 WS4 : LIST31 WS4
C: LIST33 WS4 : LIST51 WS4 : LIST52 WS4 : LIST53 WS4 : LIST54 WS4
C: LIST55 WS4 : LIST56 WS4 : LIST58 WS4 : LIST57 WS4 : LIST59 WS4
C: LIST510 WS4 : LIST101 WS4 : LIST511 WS4 : CCPMPRG0 WS4 : CCPMPRG1 WS4
C: CCPMPRG2 WS4 : CCPMPRG4 WS4 : CCPMPRG5 WS4 : CCPMPRG3 WS4 : CCPMPRGA WS4
C: CCPMPRGC WS4 : CCPMPRGB WS4 : CCPMPRGD WS4 : CCPMPRGG WS4 : CCPMPRGE WS4
C: CCPMPRG6 WS4 : CCPMUGC WS4 : CCPMUGD WS4 : CCPMUGG WS4 : CCPMUGB WS4
C: CCPMUGA WS4 : CCPMUG4 WS4 : CCPMUG3 WS4 : CCPMUG2 WS4 : CCPMUG1 WS4
C: CCPMUG0 WS4 : ICCPM1 WS4 : CBASIC2 WS4 : CB80GG WS4 : CB80PG WS4
C: CB80RM WS4 : CB80ED2 WS4 : ICCPM4 WS4 : ICCPM5 WS4 : ICCPM6 WS4
C: ICCPM13 WS4 : ICCPM9 WS4 : ICCPM8 WS4 : ICCPM12 WS4 : ICCPM7 WS4
C: ICCPM3 WS4 : ICCPM2 WS4 : ICCPM10 WS4 : ICCPM11 WS4 : ICCPM0 WS4
C: ICCPMB WS4 : ICCPMG WS4 : ICCPMI WS4 : ICCPMD WS4 : ICCPMA WS4
120 File(s) 3 470 945 bytes
90 873 856 bytes free


Yours Sincerely,
"French Luser"

Axel Berger

unread,
Jul 4, 2003, 4:28:00 PM7/4/03
to
*Salle Arobase* wrote on Fri, 03-07-04 14:34:

>120 File(s) 3 470 945 bytes

I don't know what Wordstar's overhead is, but I believe nearly zero. If
so and if you really did what you say, then you have just about
manually typed the complete Holy Bible - the German translation is
about 4 MB in size.

Salle Arobase

unread,
Jul 5, 2003, 11:53:11 AM7/5/03
to

> >120 File(s) 3 470 945 bytes

This is just the WS4 files on the MS-DOS portable that I use to retype stuff
(despite being only 6-MHz, I prefer its keyboard to those currently
available for IBM Clowns).

There is no CP/M Plus files, no CP/M-86 Plus files, no GSX files, and all
the stuff that I collected during 15 years on my beloved Epson QX-10...

Seriously, when will I finally find a University interested in hosting all
this stuff on a Web server? (And not loose its backup copy, like the Oakland
Software Repository!!! What a shame, for an American University!!! As far as
I know, today, only a Bresilian University has this stuff available online.)

Yours Sincerely,
"French Luser"

Dosius

unread,
Jul 5, 2003, 12:14:10 PM7/5/03
to
Axel_...@b.maus.de (Axel Berger) wrote in message news:<200307042...@b.maus.de>...

I think WS's overhead is zilch (it uses the high-order bit for format
information). Yeah. The entire New Testament in English (Laurence
Tomson version of 1576) is 1.1 MB. I don't know about the OT as I
don't have a copy, but 4 MB for the whole Bible sounds about right.
Yes, typing up *that* much info about CP/M is quite a feat.

If nothing else, I can try to set up a site on some free space
provider; when I'm online I can look up my IP (*sigh* it's dynamic)
and perhaps let you FTP me the files, and I'd upload them (probably
converted to straight text or to HTML). (I run RH Linux 8.0) Tripod
is perhaps good for that.

-uso.

Herbert R Johnson

unread,
Jul 5, 2003, 11:15:01 AM7/5/03
to
In article <be3ocf$k4v$1...@news-reader1.wanadoo.fr>,
"Salle Arobase" <salle....@ville-rochefort.fr> wrote:
*>Hello, gang!
*>
*>I have finally finished the 3-month long work session.
*>
*>However, I do not know if I will be able to continue sending you nice little
*>"mini-articles": I have no work in sight at the moment.
*>
*>Maybe you remember that I was searching an American University to host all
*>my CP/M files.
*>
*>Well, as a thread to documenting CP/M-86 Plus, I have retyped everything
*>ever written by Digital Research, or published about, Concurrent CP/M
*>Version 3.1. Total = more than 1.500 pages of WordStar text.
*>
*>Is anybody out there who has a good idea ?
*>
*>[omitted: directory of files referenced above]
*>
*>Yours Sincerely,
*>"French Luser"

Mr. Roche, the "French Luser", has asked for good ideas regarding his
situation. I have a good idea but to understand his problem from
his point of view requires a bit of a review.

When Mr. Roche refers above to "sending nice mini-articles", he
means that he is of the habit of posting his text directly to comp.os.cpm.
He has a theory that the ONLY way to preserve and archive his work is
to post it in a Usenet newsgroup where it will be archived and read
by many systems.

I mention this because another part of his theory is that only University-
based Web archives of old software will endure for many years. This
explains his reference to a "University host".

However, his theories are incorrect and harmful. Posting documents to a
newsgroup like comp.os.cpm is a misuse of the newsgroup, and a waste
of resources. Almost all correspondents in this newsgroup avoid posting
programs and documents for that reason. Newsgroups that are intended
for distribution of documents and files are specifically identified
for such uses.

Roche is also wrong about the
long-term (years) value of University Web sites as software archives -
and he should KNOW that! Roche himself posted here a response from
Oakland University's (in Washington state, USA) who hosted the "OAK"
software archives for several years. They said they would no longer do so.
In 2003, American universities simply can't afford to provide free archival
services, due to the poor economy.

Now, to respond to Mr. Roche's request for a "good idea".
For some reason Mr. Roche seems to ignore that there are PRIVATELY
supported archives of CP/M material, which have survived changes in
"ownership" and hosting. He should use those as archives for his work.
In turn, many people who personally download and archive that material
will provide Mr. Roche with as much permanence for his efforts as one
could expect under the circumstances. There are a few such archives,
a Google search will find them easily enough, and he can discuss with
them their terms of uploading and use.

Mr. Roche could otherwise create his own Web site, or distribute CD-ROM's,
but the above suggestion is at no cost to him and that is hard to beat.

I apologies to my colleagues for calling this out here in the newsgroup.
There are several reasons to do so. 1) Mr. Roche does not make use
of private email - at best he uses it erratically, to send (but not
recieve) messages. So he can't be contacted privately. 2) I'd like to
discourage him from sending his megabytes of files through comp.os.cpm
(for obvious reasons). 3) I'd like to discourage OTHERS from doing the
same with the excuse of something like "he does it and no one complains".
4) His work should find a better home than a newsgroup archive. 5)
Maybe his colleagues and friends here in the newsgroup can "encourage"
him to find that better home.

I think many agree his work is of good merit and should be preserved and
distributed: but in a more reasonable fashion than his past methods.
There are archives and Web sites where his work can be distributed
and archived without misusing a newgroup, and not delayed in distribution
while waiting for a benevolent "American University" to host it.

Herb Johnson
hjohnson AAT njcc DOTT com
--
Herbert R. Johnson http://njcc.com/~hjohnson
hjoh...@spam.com <--change "spam" to "njcc"
voice 609-771-1503, New Jersey USA
amateur astronomer and telescope tinkerer
sales of Apple Macs & accessories, Plus to PowerMac
S-100 & 8-inch drive docs & parts as "Dr. S-100"

Ross Simpson

unread,
Jul 5, 2003, 6:46:13 PM7/5/03
to
"Herbert R Johnson" <hjoh...@njcc.com> wrote in message...

<snip!>

> Now, to respond to Mr. Roche's request for a "good idea".
> For some reason Mr. Roche seems to ignore that there are PRIVATELY
> supported archives of CP/M material, which have survived changes in
> "ownership" and hosting. He should use those as archives for his work.
> In turn, many people who personally download and archive that material
> will provide Mr. Roche with as much permanence for his efforts as one
> could expect under the circumstances. There are a few such archives,
> a Google search will find them easily enough, and he can discuss with
> them their terms of uploading and use.

CP/M webpages also have a place in the google directory:
http://directory.google.com/Top/Computers/Software/Operating_Systems/CPM/

> Mr. Roche could otherwise create his own Web site, or distribute CD-ROM's,
> but the above suggestion is at no cost to him and that is hard to beat.

So called 'FREE' webpages are a joke nowadays. GeoCites (I think it's
called)
maybe the best, but unless your using a really good web browser like Arachne
you'll get tons on Pop-ups appearing. There is supposed to be a way of
stopping that (but it may depend on your ISP).

> I apologies to my colleagues for calling this out here in the newsgroup.
> There are several reasons to do so. 1) Mr. Roche does not make use
> of private email - at best he uses it erratically, to send (but not
> recieve) messages. So he can't be contacted privately. 2) I'd like to
> discourage him from sending his megabytes of files through comp.os.cpm
> (for obvious reasons). 3) I'd like to discourage OTHERS from doing the
> same with the excuse of something like "he does it and no one complains".
> 4) His work should find a better home than a newsgroup archive. 5)
> Maybe his colleagues and friends here in the newsgroup can "encourage"
> him to find that better home.

Okay for this thread he has used a dummy e-mail, but he does have an e-mail
that he can be reached on, where have you been Herbert?! :-)
Here it is: French 'dot' Hideout 'at' Gmx 'dot' De
(substitute the 'dots' & 'at' for their symbols).

> I think many agree his work is of good merit and should be preserved and
> distributed: but in a more reasonable fashion than his past methods.
> There are archives and Web sites where his work can be distributed
> and archived without misusing a newgroup, and not delayed in distribution
> while waiting for a benevolent "American University" to host it.

Ditto.

Cheers,
Ross.

Axel Berger

unread,
Jul 6, 2003, 9:43:00 AM7/6/03
to
*Ross Simpson* wrote on Sun, 03-07-06 00:46:

> So called 'FREE' webpages are a joke nowadays.
> [...] you'll get tons on Pop-ups appearing.

Every decent email provider (Arcor, Compuserve) throws about 10 MB or
something of webspace into the bargain, which for the purposes of CP/M
is ample. I have never yet got round to using mine, but as far as I
know it is free of spammer junk.

Albert Stuurman

unread,
Jul 16, 2003, 5:02:26 PM7/16/03
to
Wow quite impressive must have taken some hours.
Why not publish it yourself on a free hosting site?
Why use Wordstar format? Would you loose too much information in plain
ascii? Or maybe convert it to RTF format.
Greetings,
Albert.


"Salle Arobase" <salle....@ville-rochefort.fr> schreef in bericht
news:be3ocf$k4v$1...@news-reader1.wanadoo.fr...

Salle Arobase

unread,
Jul 19, 2003, 9:10:55 AM7/19/03
to
> Or if HTML is an option, grab a copy of ws2html:
>
> <ftp://ftp.demon.co.uk/pub/ibmpc/dos/apps/editors/ws2html.zip>
>
> Just over 50K so not a huge download!
>
> Pete

Pete,

Many thanks for your post!

I don't know if you were lurking the comp.os.cpm Newsgroup
back then, but I asked several times if there was a WS4 to
HTML converter.

I wrote to the author of the above WS2HTML program.
He said that it is a "standard C" program, but wants to
keep the source code. I told him about the C compilers
available under CP/M-86.

One interesting programming project would be a WS4
to HTML converter written in CBASIC Compiler v2.0
so it would run the same under CP/M 2.2, CP/M-86,
and MS-DOS...

Meanwhile, I am searching for a volunteer to test if his
program translates correctly WS4 files. To begin, one
could test the PRINT.TST file released on every WS4
distribution (even on the MS-DOS version), then I could
provide one of my WS4 file (tell me what interest you).

Is anybody out there?

Yours Sincerely,
"French Luser"

Salle Arobase

unread,
Jul 19, 2003, 10:02:56 AM7/19/03
to
Ok. Since this thread seems to be dying, maybe it is time to try to get
a conclusion.

Many thanks to all those who answered, and particularly to Herb Johnson.

> He has a theory that the ONLY way to preserve and archive his work is
> to post it in a Usenet newsgroup where it will be archived and read
> by many systems.

No, I just post them to the comp.os.cpm Newsgroup because this is the last
place on Earth interested in CP/M. I wrote articles for the Journal of the
CP/M User Group (UK), but did you read them? This way, all the remaining
persons still using CP/M know what is happening and, since I prefer BASIC,
my programs are usually only one or two pages long (and portable to CP/M 2.2
and MS-DOS). When dealing with assembly language programs, I publish the H86
file, so everybody can try them (I have retyped many HEX files from books,
so I know it is a good universal medium).

> I mention this because another part of his theory is that only University-
> based Web archives of old software will endure for many years. This
> explains his reference to a "University host".

I think that CP/M can be interesting only in an educational view. Remember
that Gary Kildall was a teacher of computer science who wrote CP/M only to
be able to run PL/M on a 8080 development system. But Intel stopped the
project when CP/M was finished, before the 8080 version of the PL/M compiler
was started. That's why we only find its FORTRAN source for Mainframes. (300
KB was a little bit too much for an Intellec-8 back then!)

Also, most of the early CP/M stuff were Theses made in a American
University. For instance, an early version of the source code of EBASIC can
still be gotten right now. If it had not been a Thesis, it would have been
lost a long time ago.

Finally, all those early programs, which were made by one student or person
are interesting in their own. They are small enough that you can understand
them, yet reliable (after 30 years). When did you find the last bug in ASM
v2.0 ? (Me, I know 2 or 3 things that could be improved in it...)

Also, I am alone. In a University, there are many students available, who
could be given tasks as part of their grades.

> In 2003, American universities simply can't afford to provide free
> archival services, due to the poor economy.

Personally, I still think that the USA is the richest country on Earth.

In my humble opinion, it is not for economic reasons, it is only
because they lack interest (too many things to entertain them)
and will (who would consider normal to retype 1,500 pages of
technical documentation of an old real-time, muti-user, multi-tasking
Operating System, even if it still run, today, on every IBM Clown existing?
All that in less than 64 KB? Which Computer Science department would be
interest in such a misere? Maybe IF it was 64 TeraBytes?).

Also, as far as I know, California is in the USA, no? Is not CP/M a part of
their history? Would there be something nicknamed MicroShit if a Computer
Science teacher had not made CP/M ? (When I wrote to the University of
Washington, I had to make them a History course. Sometimes, I wonder if I am
a programmer or an historian...)

> For some reason Mr. Roche seems to ignore that there are PRIVATELY
> supported archives of CP/M material, which have survived changes in
> "ownership" and hosting. He should use those as archives for his work.

Yes, but I think that there are not enough of them. That's why I have been
searching for years for Web sites dealing with CP/M in Australia and Japan.
Also, remember that I don't have much time to deal with all those Web sites.
It would be simpler if I had an English-speaking secretary. Unfortunately, I
know nobody who can help me locally (it is me who translate what this
Cybercafe receive: the manager and his helpers don't speak English).

> Mr. Roche could otherwise create his own Web site

The big problem is my lack of time and money.

> 4) His work should find a better home than a newsgroup archive.

I can agree with that!...

> 5) Maybe his colleagues and friends here in the newsgroup can
> "encourage" him to find that better home.

I have enough courage, thanks. The problem is that I am living at the wrong
time in the bad place. The nearest local University is not interested in
such a technical stuff, especially since it is all written in English. The
local technical school is not interested in hiring me to teach programming,
if I don't teach C++. Local companies only want Web managers. When I tell
them that I am (among other things) disassembling a 30 KB hard disk
formatting program, they are wide-eyed. They have never seen an assembly
language program.

Well, the situation seems quite desperate, doesn't it?

(In France, we have a joke: "Apply plan B." when we encounter difficulties.
Of course, there is no plan B. It means: "Help yourself, and maybe God will
help you.")

Yours Sincerely,
"French Luser"

Ross Simpson

unread,
Jul 19, 2003, 7:48:05 PM7/19/03
to

"Salle Arobase" <salle....@ville-rochefort.fr> wrote in message...

> Ok. Since this thread seems to be dying, maybe it is time to try to get
> a conclusion.

> Many thanks to all those who answered, and particularly to Herb Johnson.

> > He has a theory that the ONLY way to preserve and archive his work is
> > to post it in a Usenet newsgroup where it will be archived and read
> > by many systems.

> No, I just post them to the comp.os.cpm Newsgroup because this is the last
> place on Earth interested in CP/M. I wrote articles for the Journal of the
> CP/M User Group (UK), but did you read them? This way, all the remaining
> persons still using CP/M know what is happening and, since I prefer BASIC,
> my programs are usually only one or two pages long (and portable to CP/M
2.2
> and MS-DOS). When dealing with assembly language programs, I publish the
H86
> file, so everybody can try them (I have retyped many HEX files from books,
> so I know it is a good universal medium).

I'd think alt.folklore.computers might express some interest towards your
comments! :-)

Turbo Pascal can be portable to CP/M 2.2 or MS-DOS too! :-)

Richest?

> In my humble opinion, it is not for economic reasons, it is only
> because they lack interest (too many things to entertain them)
> and will (who would consider normal to retype 1,500 pages of
> technical documentation of an old real-time, muti-user, multi-tasking
> Operating System, even if it still run, today, on every IBM Clown
existing?
> All that in less than 64 KB? Which Computer Science department would be
> interest in such a misere? Maybe IF it was 64 TeraBytes?).

> Also, as far as I know, California is in the USA, no? Is not CP/M a part
of
> their history? Would there be something nicknamed MicroShit if a Computer
> Science teacher had not made CP/M ? (When I wrote to the University of
> Washington, I had to make them a History course. Sometimes, I wonder if I
am
> a programmer or an historian...)

What's wrong with being both a programmer or historian?

Cheers,
Ross.


Salle Arobase

unread,
Jul 22, 2003, 8:02:31 AM7/22/03
to
> (...) alas I no longer have the ICL Quattro to run it.

Aaarrgghhh!!!

Myself, I have been trying to find one ICL Quattro
for several months...

If you ever see one, take it and warn me!

(Yes, I have MeSsy-DOS on one of my IBM PC portable,
but not Windows or Internet Explorer... So, how can I
see an HTML file?)

Yours Sincerely,
"French Luser"

Salle Arobase

unread,
Jul 22, 2003, 8:07:10 AM7/22/03
to
> > (...) Sometimes, I wonder if I am

> > a programmer or an historian...)
>
> What's wrong with being both a programmer or historian?

Well, since most American Old Timers lurking this
Newsgroup are electronicians, I have thought that
a more precise description of what I do would be
"microcomputer software archeologist", since
I spend so much time inside the internals of 8-bit
programs (and now 8086 programs) 30-years old.

Yours Sincerely,
"French Luser"

Ross Simpson

unread,
Jul 22, 2003, 8:49:32 AM7/22/03
to
"Salle Arobase" <salle....@ville-rochefort.fr> wrote in message...

> > > (...) Sometimes, I wonder if I am

Well the 8086 ain't quite 30 years ol' yet! :-) I believe most of the
American Old Timer lurkers (which might have a degree in electronics) also
lurk alt.folklore.computers, so they could be called historians too :-) An
archeologist could be best described for yourself, as there is a great deal
of collecting & searching for documents. And I'm just some guy who does some
programming on the side, plus showing interest into computer history.

Cheers,
Ross.


Salle Arobase

unread,
Jul 22, 2003, 9:16:28 AM7/22/03
to
> An
> archeologist could be best described for yourself, as there is a great
deal
> of collecting & searching for documents.

Indeed.

It is incredibly hard to find some of those old technical doc,
and I don't even speak of the source code of some programs...

(By the way, Ross, when are you launching your Web site
dealing with Turbo Pascal and CP/M-86?)

Yours Sincerely,
"French Luser"

Ross Simpson

unread,
Jul 22, 2003, 9:10:40 AM7/22/03
to
"Ross Simpson" <Hi_Mr_...@nowhere.com.au> wrote in message...

Incidently, I forgot to mention that Uni's are 'stiff upper lips' in terms
of providing space for anything of historical value. Give's me something to
complain about! :-(

It's a bit different from an Unix users perspective, because they've waited
a while for their favourite OS to become available.

I don't know how long it will take them to realise, that they have been
abusing us for too long!


Ross.


Ross Simpson

unread,
Jul 22, 2003, 9:34:43 AM7/22/03
to
"Salle Arobase" <salle....@ville-rochefort.fr> wrote in message...

> > An archeologist could be best described for yourself, as there


> > a great deal of collecting & searching for documents.

> Indeed.

> It is incredibly hard to find some of those old technical doc,
> and I don't even speak of the source code of some programs...

> (By the way, Ross, when are you launching your Web site
> dealing with Turbo Pascal and CP/M-86?)

Sadly, I kinda back flipped at that idea before it got off the ground. I
just felt that most (if not all) of the software I was writing could be
posted to the CP/M-86 software repository, since it was in a sense a game or
video demo. Then I was just worrying about having the time to update that
site, if it did get off. However, there definitely was some benefit with
Turbo Pascal 3 & access to lower-level programming, since I got quite a few
programs which were written mostly in 5.5, 6 & 7 onto it. The SWAG archives
also helped since a bit of the stuff there used it's own routines (without
using routines from the Turbo Pascal libraries - which later versions
supported).

Cheers,
Ross.


Richard Plinston

unread,
Jul 22, 2003, 3:45:34 PM7/22/03
to
Salle Arobase wrote:

> Myself, I have been trying to find one ICL Quattro
> for several months...

I have several here, but you won't want to pay the shipping.

> (Yes, I have MeSsy-DOS on one of my IBM PC portable,
> but not Windows or Internet Explorer... So, how can I
> see an HTML file?)

There are several ways, from text mode viewers and DOSLynx browser to
graphical browers such as Arachne and Minuet.

Salle Arobase

unread,
Jul 25, 2003, 6:44:02 AM7/25/03
to
> > (Yes, I have MeSsy-DOS on one of my IBM PC portable,
> > but not Windows or Internet Explorer... So, how can I
> > see an HTML file?)
>
> Look for Intrados (search for ntrdos14.zip) which IME makes a
> pretty good job of rendering text-based HTML. No graphics, but
> you wouldn't be lurking in this group if that's what you wanted!

Many thanks for the info. I will have a try this week-end.
Besides my 6 MHz portable and my old 286 12 MHz with CP/M-86 Plus,
I can also use another IBM Clown.

> And I doubt that your WS4 files have many embedded graphics ;-)

Well, you would be surprised what I can do on my 1983
Epson QX-10 and my laser printer...

But that is because

1) the Epson QX-10 has above average graphics for a
CP/M system (640x480x8 colors)

2) while working on my GSX-80 laser printer driver,
I wrote a BASIC program that generates WS4 files
that produces graphics on my Canon LBP-8 A2
laser printer... (because this printer accepts
commands either in 8-bits, or in 7-bits format,
so WS4 just sees a character file that it sends
to the laser printer, which produces graphics!)
(Note also that this printer is equipped with a
Motorola 68000 24-32 bits CPU with 1.5 MB
or RAM, so is more powerful than my poor
Z-80 at 4 MHz...)

Yours Sincerely,
"French Luser"

Ross Simpson

unread,
Jul 25, 2003, 7:34:16 AM7/25/03
to
"Salle Arobase" <salle....@ville-rochefort.fr> wrote in message...

> > > (Yes, I have MeSsy-DOS on one of my IBM PC portable,


> > > but not Windows or Internet Explorer... So, how can I
> > > see an HTML file?)

> > Look for Intrados (search for ntrdos14.zip) which IME makes a
> > pretty good job of rendering text-based HTML. No graphics, but
> > you wouldn't be lurking in this group if that's what you wanted!

> Many thanks for the info. I will have a try this week-end.
> Besides my 6 MHz portable and my old 286 12 MHz with CP/M-86 Plus,
> I can also use another IBM Clown.

Just wonderning if by any chance you were a demo programmer at one stage Mr.
Roche?

> > And I doubt that your WS4 files have many embedded graphics ;-)

> Well, you would be surprised what I can do on my 1983
> Epson QX-10 and my laser printer...

Oh yeah. That's one good thing about Centronic connectors, which made any
ol' computer compatable, until an USB (Utterly Stinks Because...) came
along! ;-)

> But that is because

> 1) the Epson QX-10 has above average graphics for a
> CP/M system (640x480x8 colors)

For my ol' Amstrad to printout graphics, it would need an Epson compatable
printer.

> 2) while working on my GSX-80 laser printer driver,
> I wrote a BASIC program that generates WS4 files
> that produces graphics on my Canon LBP-8 A2
> laser printer... (because this printer accepts
> commands either in 8-bits, or in 7-bits format,
> so WS4 just sees a character file that it sends
> to the laser printer, which produces graphics!)
> (Note also that this printer is equipped with a
> Motorola 68000 24-32 bits CPU with 1.5 MB
> or RAM, so is more powerful than my poor
> Z-80 at 4 MHz...)

Heh! Would the hardware (inside the printer) be used from the signals the
Epson computer sends to it?

Cheers,
Ross.


Salle Arobase

unread,
Jul 25, 2003, 9:24:44 AM7/25/03
to
Hello, Ross!

> Just wonderning if by any chance you were a demo programmer at one stage?

What do you mean by "a demo programmer"?

I was thinking that it was meaning: "a programmer making graphics demo".

> > Well, you would be surprised what I can do on my 1983
> > Epson QX-10 and my laser printer...
>
> Oh yeah. That's one good thing about Centronic connectors

I do not see the relation with the connector.

One of my laser printers has a parallel connector; the other one has a
serial connector. Both produces the same output.

> > 1) the Epson QX-10 has above average graphics for a
> > CP/M system (640x480x8 colors)
>
> For my ol' Amstrad to printout graphics, it would need an Epson compatable
> printer.

Sorry, Ross, I was meaning the screen resolution...
not the printer! (Under CP/M, something called GSX
is available, for which a driver for an Hewlett-Packard
graphics plotter exists: the HP 7470A. Its resolution
is then (if I remember well) 3.000x10.000 pixels...)

> Heh! Would the hardware (inside the printer) be used from the signals the
> Epson computer sends to it?

The Canon laser printer is a computer which does actions based on what it
receives on one of its connectors. It does not care if it is a Z-80
computer, or an IBM Clown.

Yours Sincerely,
"French Luser"

Ross Simpson

unread,
Jul 25, 2003, 6:47:55 PM7/25/03
to
"Salle Arobase" <salle....@ville-rochefort.fr> wrote in message...

Hello Mr Roche,

> > Just wonderning if by any chance you were a demo programmer at one
> > stage?

> What do you mean by "a demo programmer"?

> I was thinking that it was meaning: "a programmer making graphics demo".

Yes, I was thinking that the chances would be slim, but yeah I was asking in
terms of a programmer who was involved in programming demo's, the kind which
seemly look impossible to do on a machine.

> > > Well, you would be surprised what I can do on my 1983
> > > Epson QX-10 and my laser printer...

> > Oh yeah. That's one good thing about Centronic connectors

> I do not see the relation with the connector.

It's a bit complicated to explain, but since Windows & IBMs have developed
so much, the printer has had a change in terms of the connector it uses.
Centronics is still perhaps the most common in printer connections since
they have been going for a long time (there probably still are printers made
with this - but the numbers are reducing). There are also Serial Port
printers too. However, I've only ever seen one & naturally the connection (a
25-pin female connector) don't look centronic.

> One of my laser printers has a parallel connector; the other one has a
> serial connector. Both produces the same output.

Yes, parallel is perhaps the modern term for something with a centronic
connector (unless I'm highly mistaken).

> > > 1) the Epson QX-10 has above average graphics for a
> > > CP/M system (640x480x8 colors)

> > For my ol' Amstrad to printout graphics, it would need an Epson
> > compatable printer.

> Sorry, Ross, I was meaning the screen resolution...
> not the printer! (Under CP/M, something called GSX
> is available, for which a driver for an Hewlett-Packard
> graphics plotter exists: the HP 7470A. Its resolution
> is then (if I remember well) 3.000x10.000 pixels...)

Oops! We have GSX on the Amstrad too, but I'm not sure if the Epson
compatable rules apply with GSX & printing the graphics out.

So, in your case the resolution of GSX doesn't fully support the resolution
of the Epson QX-10.

> > Heh! Would the hardware (inside the printer) be used from the signals
> > the Epson computer sends to it?

> The Canon laser printer is a computer which does actions based on what it
> receives on one of its connectors. It does not care if it is a Z-80
> computer, or an IBM Clown.

Oh okay! :-) It's nice to hear the printer isn't dictating the terms with
your computer.

Cheers,
Ross.


Salle Arobase

unread,
Jul 26, 2003, 8:18:52 AM7/26/03
to
> > I was thinking that it was meaning: "a programmer making graphics demo".
>
> Yes, I was thinking that the chances would be slim, but yeah I was asking
in
> terms of a programmer who was involved in programming demo's, the kind
which
> seemly look impossible to do on a machine.

The problem is that I don't see how one could make a living of making
graphics demo program... I write demo programs in the sense that I
NEED to test if something that I programmed really works.

> It's a bit complicated to explain, but since Windows & IBMs have developed
> so much, the printer has had a change in terms of the connector it uses.
> Centronics is still perhaps the most common in printer connections since
> they have been going for a long time (there probably still are printers
made
> with this - but the numbers are reducing). There are also Serial Port
> printers too. However, I've only ever seen one & naturally the connection
(a
> 25-pin female connector) don't look centronic.

As far as I know, the connectors have never changed...
What has changed is that, the IBM Clown hadware being
so awful and limited, the then-available connectors
have been used for things for which they had not
been designed (for example, plugging a mouse).
As a result, if I am not wrong, the IBM Clowns printer
bus now allows to RECEIVE (!!!) stuff through them.
(Since there are so many electronicians lurking this
Newsgroup, they should know better than me.)

> > Sorry, Ross, I was meaning the screen resolution...
> > not the printer! (Under CP/M, something called GSX
> > is available, for which a driver for an Hewlett-Packard
> > graphics plotter exists: the HP 7470A. Its resolution
> > is then (if I remember well) 3.000x10.000 pixels...)
>
> Oops! We have GSX on the Amstrad too, but I'm not sure if the Epson
> compatable rules apply with GSX & printing the graphics out.

Waow! We really seem not to be tuned on the same channel, today!
I am afraid that you are mistaking the SCREEN resolution and
the PRINTER resolution when you speak about "Epson compatible".

You can perfectly mix GSX calls and Epson calls in a program.

I have used GSX-80 on one Amstrad PCW8256: there is a screen
driver, the Epson FX-80 printer drivers works, and I also tested
the Hewlett-Packard HP7470A graphics plotter, which worked
perfectly as usual (printing a graph in 4 colors).

> So, in your case the resolution of GSX doesn't fully support the
resolution
> of the Epson QX-10.

GSX has no resolution itself. Its role is only to translate graphics
commands
from one "device" (screen, printer, plotter, camera, metafile) to another
"device". Re-read the previous answer. (The screen resolution was
720x256 versus the plotter resolution of 3.000x10.000...)

Waow! What have you smoked today, Ross?

Yours Sincerely,
"French Luser"

Salle Arobase

unread,
Jul 26, 2003, 8:24:35 AM7/26/03
to
Hello, Pete!

I had a quick look last night.

At first sight, I found 4 problems:

1) Not one single tabulation was displayed...
Since there are so much tables in doc files,
this is a big problem!

2) All " characters were translated
and DISPLAYED on screen as &#34;

3) One blank line was added under any line
"underlined" using several dashes ("-").

4) One blank line was added after each line
of assembly language program.

The first problem is the most serious one.
(I can edit manually the other problems.)

Comments, anybody?

(This test was performed using WS2HTML
then INTRADOS on the WS4 PRINT.TST
file, then one WS4 file, under MeSsy-DOS.)

Yours Sincerely,
"French Luser"

Ross Simpson

unread,
Jul 26, 2003, 9:17:53 AM7/26/03
to
"Salle Arobase" <salle....@ville-rochefort.fr> wrote in message...

> > > I was thinking that it was meaning: "a programmer making graphics
> > > demo".

> > Yes, I was thinking that the chances would be slim, but yeah I was
> > asking in terms of a programmer who was involved in programming
> > demo's, the kind which seemly look impossible to do on a machine.

> The problem is that I don't see how one could make a living of making
> graphics demo program... I write demo programs in the sense that I
> NEED to test if something that I programmed really works.

Yeah, writing demos is certainally no way of making a living. I just seem to
recall seeing a lot of French Public Domain programs which were written
around the time when commercial software houses were stearning away from the
8bit Amstrad's. As far as demo programming goes (in terms of making money
from it) came with some of European software houses which made games which
really pushed the outer limits on an Amstrad (well in some departments).

> > It's a bit complicated to explain, but since Windows & IBMs have
> > developed so much, the printer has had a change in terms of the
> > connector it uses. Centronics is still perhaps the most common
> > in printer connections since they have been going for a long time
> > (there probably still are printers made with this - but the numbers
> > are reducing). There are also Serial Port printers too. However,
> > I've only ever seen one & naturally the connection (a 25-pin female
> > connector) don't look centronic.

> As far as I know, the connectors have never changed...
> What has changed is that, the IBM Clown hadware being
> so awful and limited, the then-available connectors
> have been used for things for which they had not
> been designed (for example, plugging a mouse).
> As a result, if I am not wrong, the IBM Clowns printer
> bus now allows to RECEIVE (!!!) stuff through them.
> (Since there are so many electronicians lurking this
> Newsgroup, they should know better than me.)

Yes, funnily enough my Amstrad's printer port can be used to recieve stuff
as well. It's described in the Amstrad's FAQ as a way of being able to send
programs from your IBM Clown to the Amstrad & visa versa! :-)

Someone here has actually made a cable which connects from your IBM clowns
USB port & allows a parallel port printer cable to be connected to it. But
they cost a bit of money. Someone should be able to make one which connects
the USB printer to the parallel port cable as well (all things should being
equal).

> > > Sorry, Ross, I was meaning the screen resolution...
> > > not the printer! (Under CP/M, something called GSX
> > > is available, for which a driver for an Hewlett-Packard
> > > graphics plotter exists: the HP 7470A. Its resolution
> > > is then (if I remember well) 3.000x10.000 pixels...)

> > Oops! We have GSX on the Amstrad too, but I'm not sure if the Epson
> > compatable rules apply with GSX & printing the graphics out.

> Waow! We really seem not to be tuned on the same channel, today!
> I am afraid that you are mistaking the SCREEN resolution and
> the PRINTER resolution when you speak about "Epson compatible".

Oh okay, so 3.000x10x000 pixels is good thing then?

> You can perfectly mix GSX calls and Epson calls in a program.

Oh yeah! Heh! :-)

> I have used GSX-80 on one Amstrad PCW8256: there is a screen
> driver, the Epson FX-80 printer drivers works, and I also tested
> the Hewlett-Packard HP7470A graphics plotter, which worked
> perfectly as usual (printing a graph in 4 colors).

Whenever I encounter an old Plotter up for sale, they usually seem to be
quite expensive. They must be cheap when compared to when they first brought
them (perhaps a couple of thousand). They usually go for just under a $1000
(second hand) around these neck of the woods.

> > So, in your case the resolution of GSX doesn't fully support the
> > resolution of the Epson QX-10.

> GSX has no resolution itself. Its role is only to translate graphics
> commands from one "device" (screen, printer, plotter, camera, metafile)
> to another "device". Re-read the previous answer. (The screen
> resolution was 720x256 versus the plotter resolution of 3.000x10.000...)

That plotter resolution sounded tiny in comparison to the screen image which
the Epson QX-10 has. Obviously, it doesn't work like that then?

On ya standard IBM clown, you get this JPEG which is a huge file (based on
the size the digital camera takes out - so the more megapixels it supports,
the more detail in the photo & the larger it gets). My little computer only
has a 2Mb video card, compared to a 512Mb Video card in your standard
computers of today. So when you try to print a standard photo, the stupid
software needs to print the picture out the size that the shot was taken &
if it cannot fit onto the page it doesn't get printed.

Naturally I assumed the worse when I read about this 3.000x10.000 vs 720x256
resolution (I thought it was a case of the computer being too powerful for
the printer).

> Waow! What have you smoked today, Ross?

Whatever's in the Melbourne air!

Cheers,
Ross.


Salle Arobase

unread,
Aug 1, 2003, 7:57:56 AM8/1/03
to
> > 1) Not one single tabulation was displayed...
>
> Is this a problem with Ws2html or with Intrados?

I don't know. One would have to have access to
a Web browser, to see which one does not convert
tabulations correctly.

> I don't have a copy of WS4 print.tst -- perhaps you could email a
> copy to me (and also one of your WS4 files with the tabulation
> that is causing the main problem)? Check the x-reply-to: header
> for my email address.

Unfortunately, all I got was: "pete at nntp-hosting-host"...

Meanwhile, I have sent several files (including one about
the internals of 1984's WS 2000) to Ross Simpson.

So, try to find my e-mail address (which was published
several times) or get in touch with Ross (Melbourne,
Australia).

I also found a WS to HTML and RTF converter written
in Pascal (unfortunately, Turbo Pascal 7). I am starting
to wonder if I am not going to write a converter in
BASIC (so it will be portable).

Yours Sincerely,
"French Luser"


Richard Plinston

unread,
Aug 1, 2003, 4:56:00 PM8/1/03
to
Salle Arobase wrote:

> I don't know. One would have to have access to
> a Web browser, to see which one does not convert
> tabulations correctly.

In HTML renderings all white space including tab, cr, lf, blanks, are shown
as a single space character.

In order to show columar data it is necessary to create a <table>, or
perhaps specify <pre> preformatted data, but tab still doesn't do anything.


Ross Simpson

unread,
Aug 1, 2003, 5:41:01 PM8/1/03
to
"Salle Arobase" <salle....@ville-rochefort.fr> wrote in message...

<snip!>

> Meanwhile, I have sent several files (including one about
> the internals of 1984's WS 2000) to Ross Simpson.

Can those be open in Wordstar 3.3?

> So, try to find my e-mail address (which was published
> several times) or get in touch with Ross (Melbourne,
> Australia).

> I also found a WS to HTML and RTF converter written
> in Pascal (unfortunately, Turbo Pascal 7). I am starting
> to wonder if I am not going to write a converter in
> BASIC (so it will be portable).

BTW, does anyone have a formula for working out the coversion of Octal
numbers to Decimal?

Cheers,
Ross.


Michael J. Mahon

unread,
Aug 1, 2003, 9:11:31 PM8/1/03
to
Ross Simpson asked:

<snip>

>BTW, does anyone have a formula for working out the coversion of Octal
>numbers to Decimal?

Start with the high order digit. Multiply it by 8 and add the next digit.
Rinse and repeat. ;-)

-michael

Check out amazing quality 8-bit Apple sound on my
Home page: http://members.aol.com/MJMahon/

Ross Simpson

unread,
Aug 1, 2003, 9:54:42 PM8/1/03
to
"Michael J. Mahon" <mjm...@aol.com> wrote in message...

> <snip>

> >BTW, does anyone have a formula for working out the coversion of Octal
> >numbers to Decimal?

> Start with the high order digit. Multiply it by 8 and add the next digit.

Okay, but how about numbers like 100 octal? Can numbers like these work with
that formula?
It just seems to work with smaller numbers, for example 11 octal would be 9.

Cheers,
Ross.


Michael C Finn

unread,
Aug 1, 2003, 10:48:38 PM8/1/03
to

"Ross Simpson" <Hi_Mr_...@nowhere.com.au> wrote in
message
news:3f2b1a80$0$15136$afc3...@news.optusnet.com.au...

Octal uses the digits 0 through 7 and the placeholders are
powers of 8.

1234 Octal = 1*8^3 + 2*8^2 + 3*8 +4 = 668 decimal

If you are working within octal arithmetic, there is an
algorithm that may be used to convert the base 8 number to
base 10. You divide the number in base 8 by the base 8
representation of 10 dec repeatedly, keeping track of the
remainders and converting the remainders to base 10..

1234 Oct / 12 Oct = 102 Oct + Remainder of 10 Oct and 10 Oct
= 8 Dec
102 Oct / 12 Oct = 6 Oct + Remainder of 6 Oct which is 6 Dec
6 Oct / 12 Oct = 0 + Remainder 6 Oct which is 6 DEC

Now just read back the DEC remainders 668

This same algorithm works for converting other bases as
well. For example to convert 78 Dec to binary, repeatedly
divide by two and keep track of the remainders.

78 / 2 = 39 + Remainder 0
39 / 2 = 19 + Remainder 1
19 / 2 = 9 +Remainder 1
9 / 2 = 4 + Remainder 1
4 / 2 = 2 + Remainder 0
2 / 2 = 1 + Remainder 0
1 / 2 = 0 + Remainder 1

Read up the list of remainders to get the binary
representation

78 = 1001110 bin

Ross Simpson

unread,
Aug 1, 2003, 11:15:50 PM8/1/03
to
"Michael C Finn" <mike...@worldnet.att.net> wrote in message...

<snip>

> 78 = 1001110 bin

Thanks all,
Ross.


Michael J. Mahon

unread,
Aug 2, 2003, 3:31:12 AM8/2/03
to
Ross Simpson replied:

Don't forget the "rinse and repeat" part. ;-)

It works fine for any length number, and is much easier than an
algorithm based on division.

I should have been more explicit. The nested expansion is:

100 octal = ((1 * 8)+0)*8+0 = 64 decimal

You keep multiplying and adding until all the digits are used.

This high-order-to-low-order method works for any base.
The multiplier is the source base and the arithmetic is
done in the desired result base (10 in this case).

This is also why the "double-dabble" method works for converting
binary to decimal: Start with the high order "1", if there is another
lower-order digit, double it and add the next digit. Continue doubling
and adding 0 or 1 until all binary digits are exhausted and the result
is the decimal equivalent. This algorithm is easy enough to do in
your head--no need for tables or pencil and paper--at least until
the number of bits gets big. ;-)

Ross Simpson

unread,
Aug 2, 2003, 6:22:51 AM8/2/03
to
"Michael J. Mahon" <mjm...@aol.com> wrote in message...

<snip>

> >> >BTW, does anyone have a formula for working out the coversion of Octal
> >> >numbers to Decimal?

> >> Start with the high order digit. Multiply it by 8 and add the next
> >> digit.

> >Okay, but how about numbers like 100 octal? Can numbers like these work
> >with that formula?
> >It just seems to work with smaller numbers, for example 11 octal would be
> >9.

> Don't forget the "rinse and repeat" part. ;-)

Oh okay, I thought you were kidding with that statement.

> It works fine for any length number, and is much easier than an
> algorithm based on division.


> I should have been more explicit. The nested expansion is:

> 100 octal = ((1 * 8)+0)*8+0 = 64 decimal

Oh, okay. Yes, that cute. Perhaps this will give Mr. Roche some idea towards
converting those Octal numbers to decimal & hexidecimal.

> You keep multiplying and adding until all the digits are used.

> This high-order-to-low-order method works for any base.
> The multiplier is the source base and the arithmetic is
> done in the desired result base (10 in this case).

> This is also why the "double-dabble" method works for converting
> binary to decimal: Start with the high order "1", if there is another
> lower-order digit, double it and add the next digit. Continue doubling
> and adding 0 or 1 until all binary digits are exhausted and the result
> is the decimal equivalent. This algorithm is easy enough to do in
> your head--no need for tables or pencil and paper--at least until
> the number of bits gets big. ;-)

The best way I know of converting a binary to decimal, is to write the
binary number down & label in the reverse order like this:

8 4 2 1
- - - -
1 1 1 1

which is 15, of course! :-)

Cheers,
Ross.


Salle Arobase

unread,
Aug 2, 2003, 12:42:51 PM8/2/03
to
> BTW, does anyone have a formula for working out the coversion of Octal
> numbers to Decimal?

Hello, Ross!

I think that you want to convert octal values given in a text
describing WordStar internal commands. (This indicates
that the text was written by an old C language programmer.
As far as I know only C programmers still use Octal.
This must show how old C and Unix are, since they never
heard that a little company named IBM standardized
on a few things named "byte" and "hexadecimal"
when they introduced their S/360 many, many years
ago...) (By the way, you will notice that one IBM
Mainframe Operating System was named "CP/67",
and that Gary Kildall, the Computer Science teacher
who created CP/M, had one IBM Mainframe at his
disposal at the Naval Postgraduate School of
Monterey, California... Maybe it was a coincidence?)

If I were you, I would write them (the octal values) down
on a paper, then start... Good Old BASIC!

I know that you are a Turbo Pascal fan.

In case you do not know, in BASIC, there are 2 modes:
calculator mode, and program mode.

In calculator mode, you can type any formula
you want interactively, and see their result...
Thing that you cannot do, of course, with your
favorite compiler...

For example, to display the hex value of octal
value 123, you would type: "? hex$ (&O123)"
("?" is a shorthand for "PRINT").

Else, of course, in program mode, you could
do a 10-liner displaying all the octal values
with their decimal and hexadecimal values.

Hope it helps.

Yours Sincerely,
"French Luser"

Salle Arobase

unread,
Aug 2, 2003, 12:47:07 PM8/2/03
to
> I also found a WS to HTML and RTF converter written
> in Pascal (unfortunately, Turbo Pascal 7). I am starting
> to wonder if I am not going to write a converter in
> BASIC (so it will be portable).

Unfortunately, back home, the WSCONEN program
displayed: "Requires Windows 32 Bit".

So, only WS2HTML runs on my MS-DOS computer.

I am thinking more and more about writing a WS4-to-HTML
converter program in BASIC (so it will be portable).

Yours Sincerely,
"French Luser"

Salle Arobase

unread,
Aug 2, 2003, 12:51:49 PM8/2/03
to
> In HTML renderings all white space including tab, cr, lf, blanks, are
shown
> as a single space character.
>
> In order to show columar data it is necessary to create a <table>, or
> perhaps specify <pre> preformatted data, but tab still doesn't do
anything.

Thanks, Richard!

I went to the public library of my city. They had 2 books
about HTML. The big problem is that they disagree.

The first one mentioned <LISTING> and <PLAINTEXT>
tags which, as their names imply, would be exactly what
we need...

(For the record, what we want is to display ASM files,
and WS4 files containing tables made with tabs.)

Unfortunately, the second book did not mention them.
After some search, I found <PRE> and <TT> which
still seem to deal with ASCII text.

We will have to test. Maybe this week-end.

Yours Sincerely,
"French Luser"

Charles Richmond

unread,
Aug 2, 2003, 3:55:42 PM8/2/03
to
To convert the number from octal to decimal this way, you are
using Horner's evaluation rule. Look at the octal number 3443
as a polynomial expression as follows:

3 * x**3 + 4 * x**2 + 4 * x + 3

This polynomial is really the definition of a "place system"
for numbers. The digit that is N digits from the right of
the number, has as multiplier, the base of the number system
raised to the (N-1) power.

To evaluate it using Horner's rule with x = 8:

3 * 8 = 24 + 4 = 28 * 8 = 224 + 4 = 228 * 8 = 1824 + 3 = 1827


(To evaluate 3443 hexidecimal, just use 16 instead of 8, etc.)


To convert 100 octal you have:

1 * 8 = 8 + 0 = 8 * 8 = 64 + 0 = 64

Question: "Why do programmers confuse Holloween and Christmas???"


Answer: "Because 31 Oct is equal to 25 Dec."


--
+----------------------------------------------------------------+
| Charles and Francis Richmond richmond at plano dot net |
+----------------------------------------------------------------+

Charles Richmond

unread,
Aug 2, 2003, 4:01:09 PM8/2/03
to
Ross Simpson wrote:
>
> [snip...] [snip...] [snip...]

>
> The best way I know of converting a binary to decimal, is to write the
> binary number down & label in the reverse order like this:
>
> 8 4 2 1
> - - - -
> 1 1 1 1
>
> which is 15, of course! :-)
>
This may be the best way of binary -> decimal conversion for
a person with pencil and paper...but for a computer:

1 * 2 = 2 + 1 = 3 * 2 = 6 + 1 = 7 * 2 = 14 + 1 = 15

might be easier to code. The beauty of Horner's evaluation
is that it minimizes the multiplies, unless you have a table
of powers of the base value (2 in this case). Even with a table,
you will be multiplying by numbers like 8 and 16...but with
the Horner's evaluation, every multiply would be by 2 and could
be coded as a shift.

Since the Z80 has *no* multiply instruction, minimizing the
multiplies would seem a good idea...

Richard Brady

unread,
Aug 2, 2003, 10:25:57 PM8/2/03
to

Charles Richmond wrote:

> Ross Simpson wrote:
>
>> [snip...] [snip...] [snip...]
>>
>>The best way I know of converting a binary to decimal, is to write the
>>binary number down & label in the reverse order like this:
>>
>>8 4 2 1
>>- - - -
>>1 1 1 1
>>
>>which is 15, of course! :-)
>>
>>
> This may be the best way of binary -> decimal conversion for
> a person with pencil and paper...but for a computer:
>
> 1 * 2 = 2 + 1 = 3 * 2 = 6 + 1 = 7 * 2 = 14 + 1 = 15
>
> might be easier to code. The beauty of Horner's evaluation
> is that it minimizes the multiplies, unless you have a table
> of powers of the base value (2 in this case). Even with a table,
> you will be multiplying by numbers like 8 and 16...but with
> the Horner's evaluation, every multiply would be by 2 and could
> be coded as a shift.
>
> Since the Z80 has *no* multiply instruction, minimizing the
> multiplies would seem a good idea...

But does it have a shift left?


>
> --
> +----------------------------------------------------------------+
> | Charles and Francis Richmond richmond at plano dot net |
> +----------------------------------------------------------------+
>

Richard Brady

Michael J. Mahon

unread,
Aug 3, 2003, 4:49:19 AM8/3/03
to
Richard Brady asked:

>Charles Richmond wrote:
>
>> Ross Simpson wrote:
>>
>>> [snip...] [snip...] [snip...]
>>>
>>>The best way I know of converting a binary to decimal, is to write the
>>>binary number down & label in the reverse order like this:
>>>
>>>8 4 2 1
>>>- - - -
>>>1 1 1 1
>>>
>>>which is 15, of course! :-)
>>>
>>>
>> This may be the best way of binary -> decimal conversion for
>> a person with pencil and paper...but for a computer:
>>
>> 1 * 2 = 2 + 1 = 3 * 2 = 6 + 1 = 7 * 2 = 14 + 1 = 15
>>
>> might be easier to code. The beauty of Horner's evaluation
>> is that it minimizes the multiplies, unless you have a table
>> of powers of the base value (2 in this case). Even with a table,
>> you will be multiplying by numbers like 8 and 16...but with
>> the Horner's evaluation, every multiply would be by 2 and could
>> be coded as a shift.
>>
>> Since the Z80 has *no* multiply instruction, minimizing the
>> multiplies would seem a good idea...
>
>But does it have a shift left?

All but _very_ strange computers have a shift left capability.

Note that if this (Horner's) power series algorithm is used on
a binary computer, to convert binary numbers, the algorithm
is equivalent to left-shifting in the number, MSB first.

But the algorithm is independent of the value of the bases.
If the arithmetic is done (mentally) in decimal, then it is
a very fast and simple binary-to-decimal conversion. Though
overkill for just a few bits, it comes into it's own with 6- to
12-bit numbers. (Fewer bits and the power addition is
trivial, and more than 12 bits makes mental doubling a
bit (!) slower.)

Axel Berger

unread,
Aug 3, 2003, 4:38:00 AM8/3/03
to
*Salle Arobase* wrote on Sat, 03-08-02 18:51:

>The first one mentioned <LISTING> and <PLAINTEXT>
>tags which, as their names imply, would be exactly what
>we need...
>
>Unfortunately, the second book did not mention them.
>After some search, I found <PRE> and <TT> which
>still seem to deal with ASCII text.

I've never used HTML myself yet, but then I'm rich, I have a book.
<PLAINTEXT> and <TT> just deal with fixed width fonts, not with your
spaces and lines. <LISTING> was never standardized and thus ought to be
avoided, <PRE>(-formatted) is part of the 4.0 standard and ought to do
just what you want.

Lee Hart

unread,
Aug 9, 2003, 11:46:03 AM8/9/03
to
Axel Berger wrote:
> I've never used HTML myself yet, but then I'm rich, I have a book.
> <PLAINTEXT> and <TT> just deal with fixed width fonts, not with your
> spaces and lines. <LISTING> was never standardized and thus ought to be
> avoided, <PRE>(-formatted) is part of the 4.0 standard and ought to do
> just what you want.

I've been retyping some of Tom Pittman's early Tiny BASIC books in HTML.
I've used <PRE>...</PRE> for the BASIC program examples in the text, but
it still has problems. For example, BASIC programs are full of the '<'
and '>' symbols, so they all have to replaced with '&lt;' and '&gt;'.

First, this is a big nuisance to type. Second, this means I can't
include a BASIC program listing in a form that will RUN if you cut it
out of the HTML page and paste it into your BASIC interpreter.

What I'd like is a way to have a single file that a) you can display
from a web page so it looks pretty much like the original book or
article, and b) if there are program examples in text, you can
cut-and-paste them into the program and actually run them, without major
re-editing.

It doesn't appear that HTML has any provisions to have a block of plain
ASCII text that it will display as-is, without also trying to interpret
it as HTML commands.
--
Lee A. Hart Ring the bells that still can ring
814 8th Ave. N. Forget your perfect offering
Sartell, MN 56377 USA There is a crack in everything
leeahart_at_earthlink.net That's how the light gets in - Leonard Cohen


Michael J. Mahon

unread,
Aug 9, 2003, 3:05:38 PM8/9/03
to
Lee Hart wrote:

>I've been retyping some of Tom Pittman's early Tiny BASIC books in HTML.

>I've used ... for the BASIC program examples in the text, butit still has


>problems. For example, BASIC programs are full of the '<'and '>' symbols, so

>they all have to replaced with '<' and '>'.First, this is a big nuisance to
>type. Second, this means I can'tinclude a BASIC program listing in a form
>that will RUN if you cut itout of the HTML page and paste it into your BASIC
>interpreter.What I'd like is a way to have a single file that a) you can
>displayfrom a web page so it looks pretty much like the original book
>orarticle, and b) if there are program examples in text, you cancut-and-paste


>them into the program and actually run them, without majorre-editing.It
>doesn't appear that HTML has any provisions to have a block of plainASCII
>text that it will display as-is, without also trying to interpretit as HTML
>commands.

I don't observe this problem in MSIE.

Although > needs to be expressed as &gt; to be displayed properly
on an HTML-rendered page, if you copy a portion of the rendered
text and paste it to a _text_ file, the symbols are pasted as they
are rendered (>) not as they appear in HTML (&gt;).

(Of course, there are software tools which will do the conversion
in either direction--maybe handy for you on the entry end. ;-)

Michael J. Mahon

unread,
Aug 9, 2003, 3:13:03 PM8/9/03
to
I wrote(!):

>I don't observe this problem in MSIE.
>

>Although > needs to be expressed as > to be displayed properly


>on an HTML-rendered page, if you copy a portion of the rendered
>text and paste it to a _text_ file, the symbols are pasted as they

>are rendered (>) not as they appear in HTML (>).

Interesting--my newsreader has dutifully rendered the HTML
representations of > as ">"--making this harder to understand
than it might have been. ;-)

The intended HTML version is a string consisting of ampersand-
g-t-semicolon. (Now, if _that_ gets converted, sombody's got
some 'splainin' to do. ;-)

Dosius

unread,
Aug 9, 2003, 10:19:32 PM8/9/03
to
Lee Hart <leea...@earthlink.net> wrote in message news:<3F352E...@earthlink.net>...

> Axel Berger wrote:
> > I've never used HTML myself yet, but then I'm rich, I have a book.
> > <PLAINTEXT> and <TT> just deal with fixed width fonts, not with your
> > spaces and lines. <LISTING> was never standardized and thus ought to be
> > avoided, <PRE>(-formatted) is part of the 4.0 standard and ought to do
> > just what you want.
>
> I've been retyping some of Tom Pittman's early Tiny BASIC books in HTML.
> I've used <PRE>...</PRE> for the BASIC program examples in the text, but
> it still has problems. For example, BASIC programs are full of the '<'
> and '>' symbols, so they all have to replaced with '&lt;' and '&gt;'.
>
> First, this is a big nuisance to type. Second, this means I can't
> include a BASIC program listing in a form that will RUN if you cut it
> out of the HTML page and paste it into your BASIC interpreter.

>
> What I'd like is a way to have a single file that a) you can display
> from a web page so it looks pretty much like the original book or
> article, and b) if there are program examples in text, you can
> cut-and-paste them into the program and actually run them, without major
> re-editing.
>
> It doesn't appear that HTML has any provisions to have a block of plain
> ASCII text that it will display as-is, without also trying to interpret
> it as HTML commands.

It's deprecated even in HTML 2, but try <XMP>...</XMP>

-uso.

bud

unread,
Aug 10, 2003, 3:14:07 AM8/10/03
to

'Lo Lee:

Group: comp.os.cpm Date: Sat, Aug 9, 2003, 3:46pm (CDT+5) From:
leea...@earthlink.net (Lee Hart)

script:

>I've been retyping some of Tom Pittman's
>early Tiny BASIC books in HTML.
>

<snip>


>
>It doesn't appear that HTML has any
>provisions to have a block of plain
>ASCII text that it will display as-is,
>without also trying to interpret it as
>HTML commands.

Why don't you just use </html> before the listing, and turn it back on
after?

salaam,
dowcom

--
http://community.webtv.net/dowcom/DOWCOMSAMSTRADGUIDE

DOShead Credo:
a) Try it! It might work.
b) GOTO a).

Paul R. Santa-Maria

unread,
Aug 10, 2003, 8:08:14 AM8/10/03
to leea...@earthlink.net
Lee Hart wrote:
> I've been retyping some of Tom Pittman's early Tiny BASIC books in HTML.

Before you get too far please see
http://www.sbuniv.edu/~tpittman/IttyBitty/

--
Paul
Monroe, Michigan USA

Paul R. Santa-Maria

unread,
Aug 10, 2003, 8:09:36 AM8/10/03
to leea...@earthlink.net
Lee Hart wrote:
> I've been retyping some of Tom Pittman's early Tiny BASIC books in HTML.

Before you get too far please see

Amardeep S Chana

unread,
Aug 10, 2003, 3:24:44 PM8/10/03
to

"Paul R. Santa-Maria" <pau...@buckeye-express.com> wrote in message
news:3F363600...@buckeye-express.com...

Read the page more carefully... Lee is behind that effort!


Salle Arobase

unread,
Aug 19, 2003, 10:08:08 AM8/19/03
to
BYTESTAT.TXT by Emmanuel ROCHE
------------

A solution in search of a problem...

Since last time, I have been busy working on the WS4 to HTML
converter. I had a lot to learn about the internals of WS4 and
HTML. Since the main problem was how to display properly WS4
tables, I was surprised to see how difficult it is with HTML.
There are hundreds of Web pages dealing with this subject alone.

It seems that the origin of this difficulty is the lack of
backward compatibility. Instead of starting from an ASR-33 TTY
with its 72 columns of (monospaced) characters, "the powers that
are on the Internet" started with the number of pixels displayed
on the screen. So, when you want to display something under
HTML, you are obliged to say how many pixels to use...

Of course, since most stuff does not fit on a single "page", you
need to add "elevators" on the right side, and a border around
your text, all taking some more pixels from the screen. As a
result, most text I have read so far counsel to assume that,
instead of 640 pixels wide, the lowest resolution for a screen
should be 600 pixels...

Well, this will make for interesting stuff when CP/M computers
will have a Browser, since most of them had not 640 pixels. Back
then, in the prehistoric dark ages, we used to think in term of
the number of characters displayed... and most CP/M computers
used to be able to display 80 characters (for example, to use
WordStar), but rarely had 640 pixels (use CP/M on an Apple IIe,
and you will understand).

One day that I was thinking about this strange asking of 64
columns only (even in the 21th Century), it came to me that we
usually think in decimal. And we often use percentages, and
values less than 100. For instance, in France phone numbers
have 10 numbers, which are written as 01.23.45.67.89 (this could
be a valid phone number). You never pronounce the "hundred".
Only values less than 100, which are more often used. So, I
asked myself: "Would it be possible to display 100 things on a
64 columns line?"

I noticed that 64 is slightly more than 50. The problem being
that, to display 100 things on 50 columns, you would need one
character displaying 2 symbols... that already exist (as a
character) but one with only one representation... Now, it so
happens that, in French, semicolon is "deux points" (two dots)
and, of course, period is "point (final)" ((ending) dot). So,
here I had my 2 characters, one displaying one symbol, the other
displaying two times the same symbol.

(As you can see, I think a lot, and sometimes (most of the
times?) to things that are "obvious" to anybody else. Me, I
spend my time asking: "Why... this or that?" I seem to never
have grown up.)

I jumped to my computer, and produced the following histogram,
which should be self-explanatory:

run"percent
0|
1|.
2|:
3|:.
4|::
5|::.
6|:::
7|:::.
8|::::
9|::::.
10|:::::
Break in 50
Ok

So, we are now able to display percentages on a 64-columns line.
The program which produced the above follows:

list
10 REM PERCENT.BAS by Emmanuel ROCHE
20 :
30 FOR i = 0 TO 100
40 GOSUB 90
50 IF i MOD 21 = 20 THEN WHILE INKEY$ = "" : WEND
60 NEXT i
70 END
80 :
90 ' Percent
100 PRINT USING "###" ; i ;
110 PRINT "|" ;
120 ' 0 = even
130 ' 1 = odd
140 IF i MOD 2 = 0 THEN PRINT STRING$ (i/2, ":") ELSE PRINT
STRING$ ((i-1)/2, ":") "."
150 RETURN

Now, it so happens that, while working on the WS4 to HTML
converter, I was wondering which were the more often used
characters in a file? Difficult question, since characters are
coded using bytes with 256 values, and most files usually hold
thousands of characters... Counting them by hand would be quite
a chore!

Now, it so happens that, recently, I wrote a "general-purpose
filter program in BASIC". Instead of acting upon the occurrence
of each of the 256 possible values of a byte, a simple variation
of this program, counting the number of times a particular byte
value was found inside a file, would solve this problem...

But, there are still some problems on the way. How do you prove
that such a program works accurately? Everything in a computer
(including files and bytes) are powers of 2, and we think in
decimal (and want the results displayed in percentages!)

The only solution was to create some test files. I re-used the
MAKEASCF.BAS program that was mentioned in the FILTER.TXT file.
To be sure that the file really contains the wanted values, the
only solution is to inspect it with a DUMP program.

Ok
dir *.bin
ASCII .BIN ZEROES .BIN ZEREOF .BIN SUITEA .BIN

Ok
run"dumpfile

DUMPFILE: Enter filename.ext: ? ascii.bin

0000: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F ................
0010: 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F ................
0020: 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F !"#$%&'()*+,-./
0030: 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 0123456789:;<=>?
0040: 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F @ABCDEFGHIJKLMNO
0050: 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F PQRSTUVWXYZ[\]^_
0060: 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F `abcdefghijklmno
0070: 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F pqrstuvwxyz{|}~.
0080: 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F ................
0090: 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F ................
00A0: A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF ................
00B0: B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF ................
00C0: C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF ................
00D0: D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF ................
00E0: E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF ................
00F0: F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF ................

Ok

I know what will complain those people (probably using a 2-GHz
computers) asking that I use 64 columns: the above dump is 71
columns wide... Well, would it not be time enough to upgrade to
an ASR-33 TTY, you guys? At least, you could print those dumps
on a 30-years old Teletype. What use is Windows and 2-GHz
computers, if they are not able to display 80 columns of text on
17" screens?

So, this was the usual 256 values of a byte, with its
corresponding USASCII characters. Now, let us see what our
program diplaying the percentages of usage of byte values in a
file produces:

run"bytestat

BYTESTAT: Enter filename.typ : ? ascii.bin

Percentages of bytes usage inside file ASCII.BIN.

% | .0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
--+------------------------------------------------
0.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
3.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
4.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
5.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
6.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
7.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
8.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
9.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
B.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
C.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
D.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
E.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
F.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Do you want a histogram? (y/N) n

Ok

Big surprise! We have just seen that there is one occurrence of
each byte value in the file, yet the program says that each one
occurs "zero percent"! The reason is that we think in decimal
(or hundred), and the file holds 256 bytes holding the 256
possible values of a byte. And, 1/256=0.003 percent. Since the
program only display percentages (it is assuming that no single
value will occur 100% of the time in all the bytes, so it only
uses 2 digits to display the percentages) and the value is
0.003, it only displays a "00" (which is automatically shrinked
down to "0").

Well... This seems a reasonable explanation. Could we test the
case that must never occurs, when all the bytes have the same
values? Sure, we modify the line of MAKEASCF so that, instead of
writing the value of the loop index into the file, it writes a
00h byte 256 times. One more DUMP to be sure that the file
really contains them. See below.

Just one remark about the use of "0." and ".0". This goes back
to the ANSI text (1967?) defining the ASCII character set. For
some unknow reasons, it was displayed vertically. I had a
slight problem (at the beginning, since I started programming
using EBCDIC on IBM Mainframes. I was a COBOL programmer)
understanding what were the axes of the ASCII table. Since then
(many, many years ago...), I have used this way of indicating
which are the "high order axis" and the "low order axis". This
works nicely when displaying only 2-digits max values. When
displaying only single digit values (or characters), I hope that
the reader will understand that the table is positioned
horizontally.

(The carriage of the printwheel of my TTY runs horizontally, not
vertically. ASCII was standardised based on the TTY, which was a
best-seller, the standard I/O device for more than 20 years. A
whole generation learned to use computers using one. Screens (or
"glass TTYs") were quite a revolution when they were introduced.
In fact, the first CP/M system had no screen (hence the names of
the "virtual devices" of CP/M 2.2: CON, PUN, RDR, LST, and NUL,
which was a wheel inside the TTY generating a standard answer
message of 40 characters (a string of 00h if not set), as I
explained several times.))

run"dumpfile

DUMPFILE: Enter filename.ext: ? zeroes.bin

0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

Ok
run"bytestat

BYTESTAT: Enter filename.typ : ? zeroes.bin

Percentages of bytes usage inside file ZEROES.BIN.

% | .0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
--+------------------------------------------------
0.| %100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
3.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
4.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
5.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
6.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
7.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
8.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
9.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
B.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
C.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
D.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
E.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
F.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Do you want a histogram? (y/N) y

00|::::::::::::::::::::::::::::::::::::::::::::::::::

Ok

The program worked correctly. It is not designed to display
values appearing more than 99%, so an overflow occurred, which
produced the "%100" displayed above. All the other 256 byte
values are not used, so count for "zero percent". Finally, we
takes this opportunity to test the output of the histogram.
When we move the cursor at the end of the line, the word
processor indicates "Column 54". Since there are 50
"semicolons", the 2-digits hex value at left and a border (and
the cursor), we are correct in getting 54 columns. (We could
even have preceded the histogram with a space or a tab
(8+54=63)...)

Now, let us see what happens when testing the contents of a file
filled with only 2 values: 00h and 1Ah (zero and eof):

run"dumpfile

DUMPFILE: Enter filename.ext: ? zereof.bin

0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0080: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0090: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00A0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00B0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00C0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00D0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00E0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00F0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................

Ok
run"bytestat

BYTESTAT: Enter filename.typ : ? zereof.bin

Percentages of bytes usage inside file ZEREOF.BIN.

% | .0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
--+------------------------------------------------
0.| 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1.| 0 0 0 0 0 0 0 0 0 0 50 0 0 0 0 0
2.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
3.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
4.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
5.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
6.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
7.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
8.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
9.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
B.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
C.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
D.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
E.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
F.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Do you want a histogram? (y/N) y

00|:::::::::::::::::::::::::
1A|:::::::::::::::::::::::::

Ok

It works. 00h is used 50% of the time. 1Ah is used 50% of the
time. The remaining 254 values are used 0% of the time.

Let us finish with a more difficult case. We start with a line
of zeroes, then one "1", then two "2", then three "3", etc. See
the following DUMP to see the internals of the file.

run"dumpfile

DUMPFILE: Enter filename.ext: ? suitea.bin

0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0010: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0020: 02 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0030: 03 03 03 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0040: 04 04 04 04 00 00 00 00 00 00 00 00 00 00 00 00 ................
0050: 05 05 05 05 05 00 00 00 00 00 00 00 00 00 00 00 ................
0060: 06 06 06 06 06 06 00 00 00 00 00 00 00 00 00 00 ................
0070: 07 07 07 07 07 07 07 00 00 00 00 00 00 00 00 00 ................
0080: 08 08 08 08 08 08 08 08 00 00 00 00 00 00 00 00 ................
0090: 09 09 09 09 09 09 09 09 09 00 00 00 00 00 00 00 ................
00A0: 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 00 00 00 00 00 00 ................
00B0: 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 00 00 00 00 00 ................
00C0: 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 00 00 00 00 ................
00D0: 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 00 00 00 ................
00E0: 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 00 00 ................
00F0: 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 00 ................

Ok
run"bytestat

BYTESTAT: Enter filename.typ : ? suitea.bin

Percentages of bytes usage inside file SUITEA.BIN.

% | .0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
--+------------------------------------------------
0.| 53 0 1 1 2 2 2 3 3 4 4 4 5 5 5 6
1.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
3.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
4.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
5.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
6.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
7.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
8.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
9.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
B.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
C.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
D.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
E.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
F.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Do you want a histogram? (y/N) y

00|::::::::::::::::::::::::::.
01|
02|.
03|.
04|:
05|:
06|:
07|:.
08|:.
09|::
0A|::
0B|::
0C|::.
0D|::.
0E|::.
0F|:::

Ok

As can be seen (I hope), the program produces correct values.
Now that we have some confidence in the program, let us see what
it displays when computing the percentage of use of bytes inside
WS4 files.

run"bytestat

BYTESTAT: Enter filename.typ : ? printtst.ws4

Percentages of bytes usage inside file PRINTTST.WS4.

% | .0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
--+------------------------------------------------
0.| 0 0 1 0 0 0 0 0 0 0 3 0 0 2 0 0
1.| 0 0 0 0 0 0 0 0 0 0 1 1 3 0 0 0
2.| 21 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
3.| 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
4.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
5.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
6.| 0 4 1 3 1 4 1 0 2 4 0 0 2 1 3 3
7.| 2 0 3 1 4 1 0 1 0 0 0 0 0 0 0 0
8.| 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
9.| 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0
A.| 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
B.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
C.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
D.| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
E.| 0 0 0 0 1 2 0 0 0 0 0 0 0 0 1 0
F.| 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0

Do you want a histogram? (y/N) n

Ok

Big surprise! 21% of usage by 20h (that is to say: "space"). One
char out of five in a WS4 file is a space... We must, for sure,
treat "spaces" before any other characters when scanning a file!

Another surprise is that none of the uppercase letters (41h to
5Ah) make it, despite so much sentences starting with a A or a
T. Instead, notice the percentage of use of lowercase letters
(61h to 7Ah), and particularly "a" (4%), "e" (4%), "i" (4%) and
"t" (4%). This time, we find "a" and "t", but not in the case we
were expecting.

This above table provides a fascinating view inside the
internals of WordStar 4. But I won't bore you with the details.

Since writing this program (you will find a summary of the
listing below. The missing lines are just repetitions of the
enclosing patterns), I have been wondering what other uses it
could be applied to? If you have any idea, let us know.

list
10 REM BYTESTAT.BAS by Emmanuel ROCHE
20 :
30 PRINT
40 INPUT "BYTESTAT: Enter filename.typ : " ; file$
50 PRINT
60 nofile$ = FIND$ (file$)
70 IF nofile$ = "" THEN PRINT CHR$ (7) "File not found." : PRINT : END
80 OPTION BASE 0
90 DIM t (&HFF)
100 tot = 0
110 OPEN "R", 1, file$, 1
120 FIELD #1, 1 AS byte$
130 :
140 GET #1
150 IF EOF (1) THEN GOTO 230
160 byte = ASC (byte$)
170 hini = INT (byte / 16)
180 loni = byte - hini * 16
190 GOSUB 510
200 tot = tot + 1
210 GOTO 140 ' Main Loop
220 :
230 PRINT "Percentages of bytes usage inside file " UPPER$ (file$) "."
240 PRINT
250 PRINT "% | .0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F"
260 PRINT "--+------------------------------------------------"
270 FOR i = 0 TO &HF
280 PRINT HEX$ (i) ".|" ;
290 FOR j = 0 TO &HF
300 PRINT " " USING "##" ; (t (i * 16 + j) ) * 100 / tot ;
310 NEXT j
320 PRINT
330 NEXT i
340 PRINT
350 :
360 z$ = "" : PRINT "Do you want a histogram? (y/N) " ;
370 z$ = INPUT$ (1)
380 z$ = UPPER$ (z$)
390 IF z$ <> "Y" THEN PRINT : GOTO 480
400 :
410 PRINT : PRINT
420 FOR k = 0 TO &HFF
430 IF t (k) < 1 THEN GOTO 460
440 PRINT RIGHT$ ("0" + HEX$ (k), 2) "|" ;
450 IF t (k) * 100 / tot MOD 2 = 0 THEN PRINT STRING$
( (t (k) * 100 / tot) / 2, ":") ELSE PRINT STRING$
( (t (k) * 100 / tot - 1) / 2, ":") "."
460 NEXT k
470 :
480 PRINT
490 END
500 :
510 ' High Nibble: 0 1 2 3 4 5 6 7
520 ON hini+1 GOSUB 600, 680, 760, 840, 920, 1000, 1080, 1160
530 IF hini > 7 THEN hini2 = hini - 7 ELSE RETURN
540 ' High Nibble: 8 9 A B C D E F
550 ON hini2 GOSUB 1240, 1320, 1400, 1480, 1560, 1640, 1720, 1800
560 RETURN
570 '
580 ' High Nibble: 0
590 ' Low Nibble: 0 1 2 3 4 5 6 7
600 ON loni+1 GOSUB 1870, 1910, 1950, 1990, 2030, 2070, 2110, 2150
610 IF loni > 7 THEN loni2 = loni - 7 ELSE RETURN
620 ' Low Nibble: 8 9 A B C D E F
630 ON loni2 GOSUB 2190, 2230, 2270, 2310, 2350, 2390, 2430, 2470
640 RETURN

1770 '
1780 ' High Nibble: F
1790 ' Low Nibble: 0 1 2 3 4 5 6 7
1800 ON loni+1 GOSUB 11470, 11510, 11550, 11590, 11630, 11670, 11710, 11750
1810 IF loni > 7 THEN loni2 = loni - 7 ELSE RETURN
1820 ' Low Nibble: 8 9 A B C D E F
1830 ON loni2 GOSUB 11790, 11830, 11870, 11910, 11950, 11990, 12030, 12070
1840 RETURN
1850 '
1860 ' 00
1870 T (&H0) = T (&H0) + 1
1880 RETURN

12050 '
12060 ' FF
12070 T (&HFF) = T (&HFF) + 1
12080 RETURN
Ok

system

A>That's all, Folks!


Yours Sincerely,
"French Luser"


EOF


Roger Ivie

unread,
Aug 21, 2003, 4:02:00 PM8/21/03
to
Dude, you're making the problem much more complicated than it needs to
be. I've done WS to HTML before and even made a WS to RTF converter
so I could do windows help files in WordStar 4. The file format isn't
complicated.

- You don't have to worry about tabs. WS replaces them with
spaces when you type them in document mode.

- WS marks the end of each word by setting bit 7. On printable
characters with bit 7 set, just clear bit 7 and send them
out.

- A carriage return with bit 7 set is a soft return inserted by
WS to wrap a line. Toss 'em. Or, better yet, output a CR/LF
to the HTML file to break up the HTML lines.

- Toss linefeeds, whether or not they have bit 7 set.

- Carriage returns without bit 7 are hard returns. They mark
the end of a paragraph. Write <P> to the HTML file.

- ^B does bolding. When you see one, increment a counter. If the
counter is odd, write <B> to the HTML file. If it's even, write
</B>.

- ^U does underlining. When you see one, increment a counter. If the
counter is odd, write <U> to the HTML file. If it's even, write
</U>.

- ^A does italics. When you see one, increment a counter. If the counter
is odd, write <I> to the HTML file. If it's even, write </I>.

- ^D does double-strike. When you see one, increment a counter. If it's
odd, write <B> to the HTML file. If it's even, write </B>.

- Toss other control characters.

- Replace & with &amp;

- Replace > with &gt;

- Replace < with &lt;

If you need to keep the formatting (for your tables), you'll need to
take a different approach. Toss a <PRE> at the beginning of the file.
Don't generate <P> for hard returns. Make certain you put out a CR/LF
for both hard and soft returns. Don't forget </PRE> at the end.

--
Roger Ivie
ri...@ridgenet.net

Salle Arobase

unread,
Aug 22, 2003, 6:31:45 AM8/22/03
to
Hello, Roger!

At least someone interested in WS4 and HTML!

Many, many thanks for your information.

Today, I was coming to this cybercafe to post
a BASIC program converting WS4 files to ASCII.

If there is no problem, I should do the WS4 to HTML
file converter this week-end.

So, next week, I should normally report on my work.

By the way, what programming language did
you use for your converters? The author of
WS2HTML used "standard" C.

(There is also a WSCONEN doing RTF, too.)

Yours Sincerely,
"French Luser"

Roger Ivie

unread,
Aug 23, 2003, 9:25:28 PM8/23/03
to
"Salle Arobase" <salle....@ville-rochefort.fr> wrote in message news:<bi4qun$hh4$1...@news-reader3.wanadoo.fr>...

>
> By the way, what programming language did
> you use for your converters? The author of
> WS2HTML used "standard" C.

Watcom C under Windows.
--
Roger Ivie
ri...@ridgenet.net

Fritz G. Chwolka

unread,
Aug 24, 2003, 4:01:57 PM8/24/03
to
On Sun, 24 Aug 2003 01:25:28 UTC, ri...@ridgenet.net (Roger Ivie)
wrote:

> "Salle Arobase" <salle....@ville-rochefort.fr> wrote in message news:<bi4qun$hh4$1...@news-reader3.wanadoo.fr>...
> >
> > By the way, what programming language did
> > you use for your converters? The author of
> > WS2HTML used "standard" C.
>
> Watcom C under Windows.

better will be Watcom C under OS/2

or Watcom C uner LINUX in an Windows behind fences....(Win4lin)


--
Greetings

Fritz Chwolka
>collecting old computers just for fun<
< at www.alterechner.de >


Stench Slobberwart

unread,
Aug 25, 2003, 12:24:17 AM8/25/03
to
"Fritz G. Chwolka" wrote:

> On Sun, 24 Aug 2003 01:25:28 UTC, ri...@ridgenet.net (Roger Ivie)
> wrote:
> > Watcom C under Windows.
>
> better will be Watcom C under OS/2
>
> or Watcom C uner LINUX in an Windows behind fences....(Win4lin)

Well, these days it would be Open Watcom under whatever. This was
several years ago.

--
Roger Ivie
ri...@ridgenet.net

0 new messages