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

back to the BASICS

69 views
Skip to first unread message

Tom Truex

unread,
Dec 20, 1997, 3:00:00 AM12/20/97
to

Hi Ron,
>>===============================================================
>> EDITORIAL: WEB TV and the stupidification of computers
>>===============================================================

>>software. Those machines even booted up
>>with a simplified version of BASIC when you flipped up the ON
>>switch. And from the beginning of the PC, up until the
>>introduction of Windows 95, you always got a version of the
>>BASIC programming language packaged with the operating system. Even
>>through
>>the choir of complaints about Windows 95 when it
>>first came out, I never heard anyone else mention the absence of
>>BASIC. If
>>you bought a computer recently, did YOU notice that BASIC was missing?
.....

> Look again. I bet QBASIC is included with Win '95. It's in my NT 4.0
>installation; it's also part of OS/2. The same (Q)BASIC that's part of
>my DOS 5.0.

Thanks for the input. That article has been floating about for months
and you are the first and only person who called me on this. I did
check again for Qbasic. Still not there (except the directory where I
put it myself from my old machine) :-)

But it occurred to me that it may depend on the exact ship date,
version, and vendor package with the Win '95 package. However, when
all else fails I post a message to alt.folklore.computer to see if any
of those geniuses know if Windows 95 ever included any flavor of BASIC.

Regards,
Tom

BTW, that article was originally published in oNline Christian eMagazine
and later printed in Computer Underground Digest. If you have any
interest in a free subscription to the former publication, you can send
email to sle...@k-line.org (all lower case) with the subject SUBSCRIBE
EMAG.

This article was posted from <A HREF="http://www.slurp.net/">Slurp Net</A>.

William Hamblen

unread,
Dec 20, 1997, 3:00:00 AM12/20/97
to

On Sat, 20 Dec 1997 02:20:10 GMT, tom....@k-line.org (Tom Truex)
wrote:

>But it occurred to me that it may depend on the exact ship date,
>version, and vendor package with the Win '95 package. However, when
>all else fails I post a message to alt.folklore.computer to see if any
>of those geniuses know if Windows 95 ever included any flavor of BASIC.

If you have the Windows 95 CD-ROM, you will find a directory on it
labeled OLDMSDOS that contains MS-DOS 6.22 versions of utilities
including QBASIC and an install script. If your vendor omits the
CD-ROM from his package then shame on him.

Scott Brown

unread,
Dec 21, 1997, 3:00:00 AM12/21/97
to

On Sat, 20 Dec 1997 02:20:10 GMT, tom....@k-line.org (Tom Truex)
wrote:

>Thanks for the input. That article has been floating about for months


>and you are the first and only person who called me on this. I did
>check again for Qbasic. Still not there (except the directory where I
>put it myself from my old machine) :-)

QBasic is on my win95 osr2 CD, in /other/oldmsdos. This is a "new PC"
win95/plus(!) disc packaged with a Micron box. AFAIK it's not part of
any normal install, you have to go find it by hand if you want it.

Not that it matters to me anymore. I learned Quick Basic, which was
back when GWBasic was still contemporary...QBasic is a step backwards,
although I find all PC-esque BASICs a poor substitute for a good C
compiler these days (or a bad C compiler, for that matter).

-Scott
-Scott

Bob

unread,
Dec 21, 1997, 3:00:00 AM12/21/97
to

s...@xmission.removethis.com (Scott Brown) wrote:

> I learned Quick Basic, which was
>back when GWBasic was still contemporary...QBasic is a step backwards,

Yes, QBasic is a very underpowered subset of the Quick Basic language.
Unless one practiced a little discipline the result could be pure
spaghetti , but it sure was easy to code. I admit that I am still
using some of the programs I wrote in those days even now, and if I
want to make some changes I'll probably fire up Quick Basic and do a
fast edit and compile rather than a translation.

Don't even mention GWBasic; it was evil incarnate. If you have never
sat through 10 minutes of garbage collection you can have something to
be thankful for in this life.

Bob

Alexander Bostrom

unread,
Dec 21, 1997, 3:00:00 AM12/21/97
to

Bob skrev i meddelandet <349ce2ec....@news.ma.ultranet.com>...

>Don't even mention GWBasic; it was evil incarnate. If you have never
>sat through 10 minutes of garbage collection you can have something to
>be thankful for in this life.

Huh? Did GWBasic have non-trivial GC? I used it a bit on an old computer
but it never froze like if it was GCing. Hmmm...maybe it doesn't get that
bad with only 640kb RAM, or maybe I just thought it had crashed and reset
the dang thing.

Or did you mean collecting garbage in the spagetti code?

>
>Bob

William Hamblen

unread,
Dec 21, 1997, 3:00:00 AM12/21/97
to

On Sun, 21 Dec 1997 12:09:13 +0100, "Alexander Bostrom"
<d96...@R-U-HUMAN.nada.kth.se> wrote:

>Huh? Did GWBasic have non-trivial GC? I used it a bit on an old computer
>but it never froze like if it was GCing. Hmmm...maybe it doesn't get that
>bad with only 640kb RAM, or maybe I just thought it had crashed and reset
>the dang thing.
>
>Or did you mean collecting garbage in the spagetti code?

Microsoft 8080 BASIC would think to itself every once in a while,
sometimes for a very long time, as it did garbage collection on string
space. I think the 8086 version had a different garbage collection
scheme because I don't recall it ever doing the same thing. In any
case, I remember GW-BASIC only using 64K for programs and 64K for
variables.

George Gray

unread,
Dec 21, 1997, 3:00:00 AM12/21/97
to

If I understand correctly, GW-Basic used 64K TOTAL-code AND variables. I
maybe wrong, but I distinctly remember seeing GW-Basic running, swiftly, on
a PC with 16k ram. I saw it at a local computer store when they first came
out. It had a cassette drive connected to it. The disk version may have
allowed for more (disk buffer, I would think) but the ROM version only
allowed 64k total. BTW, I think IBM pc's today still ship with Basic in ROM
(that, tho, may have ended when the Microsoft-IBM licensing arrangement
ended...)

Pete Fenelon

unread,
Dec 22, 1997, 3:00:00 AM12/22/97
to

William Hamblen (William...@nashville.com) wrote:
: On Sun, 21 Dec 1997 12:09:13 +0100, "Alexander Bostrom"

: <d96...@R-U-HUMAN.nada.kth.se> wrote:
:
: >Huh? Did GWBasic have non-trivial GC? I used it a bit on an old computer
: >but it never froze like if it was GCing. Hmmm...maybe it doesn't get that
: >bad with only 640kb RAM, or maybe I just thought it had crashed and reset
: >the dang thing.
: >
: >Or did you mean collecting garbage in the spagetti code?
:
: Microsoft 8080 BASIC would think to itself every once in a while,

: sometimes for a very long time, as it did garbage collection on string
: space. I think the 8086 version had a different garbage collection
: scheme because I don't recall it ever doing the same thing. In any
: case, I remember GW-BASIC only using 64K for programs and 64K for
: variables.

From somewhere in the back of my mind, X=FRE("") buried somewhere in the
idle loop of interactive programs comes to mind.

pete
--
Pete Fenelon, 3 Beckside Gardens, Melrosegate, York, YO1 3TX.
pete.f...@zetnet.co.uk http://www.users.zetnet.co.uk/petef

Bob

unread,
Dec 22, 1997, 3:00:00 AM12/22/97
to

pete.f...@zetnet.co.uk (Pete Fenelon) wrote:

>From somewhere in the back of my mind, X=FRE("") buried somewhere in the
>idle loop of interactive programs comes to mind.

You hit the nail right on the head there Pete. I used that command to
display the free space remaining as I stepped through my program to
figure out what was going on. I had included a primative word
processor and as each letter was added to a string it would abandon
the entire length of the old string so that the available bytes shrank
at an ever increasing rate. When it reached 640K it sat back and
quite slowly went about reclaiming the space, taking enough time for a
short nap. Was I using an AT or an XT at the time? Too many years
ago to remember.

I'm not quite sure which of the other posters is right but I think
that GWBasic gave you 640K for the program and the data. A bit more
generous than my first computer, a TI99 with 8K for program and 8K for
variables, but still a little tight if you were trying to do anything
significant. Quick Basic has the 640K limitation for each parcel but
you can divide the sucker into as many modules as you want and link
them together to form one mother of a program.

Bob


Bob

unread,
Dec 22, 1997, 3:00:00 AM12/22/97
to

Please excuse my typing errors in the previous post. 640K was the
total memory area in those old IBM machines. 64K was the usable area
for programs and variables to play around in. Sometimes the fingers
work faster than the brain, and 25 year old single-malt scotch adds a
little to the confusion.

Bob

Matthew Crosby

unread,
Dec 22, 1997, 3:00:00 AM12/22/97
to

In article <67kp5c$7...@world1.bawave.com>,

George Gray <Georg...@AOL.COM> wrote:
>If I understand correctly, GW-Basic used 64K TOTAL-code AND variables. I
^^^^^^^^^

>maybe wrong, but I distinctly remember seeing GW-Basic running, swiftly, on
>a PC with 16k ram. I saw it at a local computer store when they first came
>out. It had a cassette drive connected to it. The disk version may have
>allowed for more (disk buffer, I would think) but the ROM version only
>allowed 64k total. BTW, I think IBM pc's today still ship with Basic in ROM
>(that, tho, may have ended when the Microsoft-IBM licensing arrangement
>ended...)

Hold on...was it GW-Basic or MS Basic? The true blue PCs had basic in the
roms, but I thought gw-basic (as opposed to straight basic) was the romless
version that was disk only that MS came up for the clones. Am I wrong?

--
Matthew Crosby cro...@cs.colorado.edu
Disclaimer: It was in another country, and besides, the wench is dead.

Ian Stirling

unread,
Dec 22, 1997, 3:00:00 AM12/22/97
to

Bob <bo...@ma.ultranet.com> wrote:
: Please excuse my typing errors in the previous post. 640K was the

: total memory area in those old IBM machines. 64K was the usable area

Wasn't it 1Mb, with the top of ram being limited by where the BIOS
started searching for adaptor ROM's?

I seem to recall that an apricot PC-alike 286/16 ran some software
significantly faster than my 386/20 PC, solely because it could
use 720K of RAM. nethack, IIRC 3+ (it's been a while, probably
got the version number wrong.)

You know you've been playing nethack too long when you get bored
with your pet demon (sigh, forgotten the name, it gets 6 attacks)
wielding stormbringer, speeded up, after you drag your kitten over
a poly trap :)

: for programs and variables to play around in. Sometimes the fingers


: work faster than the brain, and 25 year old single-malt scotch adds a
: little to the confusion.

: Bob

--
Ian Stirling. Designing a linux PDA, see http://www.mauve.demon.co.uk/
----- ******* If replying by email, check notices in header ******* -----
Among a man's many good possessions, A good command of speech has no equal.


Andy Whitehouse

unread,
Dec 23, 1997, 3:00:00 AM12/23/97
to


Bob <bo...@ma.ultranet.com> wrote in article
<349ce2ec....@news.ma.ultranet.com>...


> s...@xmission.removethis.com (Scott Brown) wrote:
>
> > I learned Quick Basic, which was
> >back when GWBasic was still contemporary...QBasic is a step backwards,
>
> Yes, QBasic is a very underpowered subset of the Quick Basic language.

The following QuickBasic keywords are not supported in QBasic:

ALIAS EVENT LOCAL SETMEM
BYVAL $INCLUDE SADD SIGNAL
CDECL Int86 Interrupt UEVENT
COMMAND$ Int86X InterruptX

Seems to be a reasonably complete implementation to me.


Andy.


J. Chris Hausler

unread,
Dec 23, 1997, 3:00:00 AM12/23/97
to

Bob <bo...@ma.ultranet.com> writes:

>Please excuse my typing errors in the previous post. 640K was the
>total memory area in those old IBM machines. 64K was the usable area
>for programs and variables to play around in. Sometimes the fingers
>work faster than the brain, and 25 year old single-malt scotch adds a
>little to the confusion.

I always thought it helped you clear away the "noise" and cobwebs
so the "truth" became evident :-)

Chris

George Gray

unread,
Dec 23, 1997, 3:00:00 AM12/23/97
to

>Sometimes the fingers
>work faster than the brain, and 25 year old single-malt scotch adds a
>little to the confusion.
>
>Bob

Bob,
I understand...I <hick> have <up> the zame <ugghhhh> problem!!!!


Merry Christmas All!

David J Firth

unread,
Dec 24, 1997, 3:00:00 AM12/24/97
to

>>maybe wrong, but I distinctly remember seeing GW-Basic running, swiftly, on
>>a PC with 16k ram. I saw it at a local computer store when they first came
>>out. It had a cassette drive connected to it. The disk version may have
>>allowed for more (disk buffer, I would think) but the ROM version
only
>>allowed 64k total. BTW, I think IBM pc's today still ship with Basic
in ROM
>>(that, tho, may have ended when the Microsoft-IBM licensing
arrangement
>>ended...)

The IBM PC had a version of BASIC in ROM. This cassette-only BASIC
would run on small memory machines. Only the first ones had the
cassette port, BTW. BASICA and GWBASIC were disk-based and essentially
twins. The BASIC & BASICA versions were for IBM (at first because my
Tandy 1100FD came with MSDOS v3.3 in ROM and BASIC/BASICA on disk) and
GW was for everyone else. At least in the beginning, there weren't any
performance differences in the two except that I think the IBM BASICA
looked for the ROM and wouldn't run on a clone. I might not remember
that correctly.

The 64K issue is easy to explain -- that's the size of a segment in the
Intel 8088/86 memory scheme. BASIC was limited to 64K because back then
(1) everyone thought 64K was a ton of memory [still is depending on
your task and if you know what you are doing] and (2) a 64K limit meant
that a bunch of multiple segment management was not necessary.

64K of code was a whopper of a BASICA program. Most people didn't write
them that big since they got hairy to troubleshoot by that size. The
data space was the usual way to run low on memory. Big arrays ate up
space quickly.

I still enjoy a romp in the BASIC occasionally. I must be getting old
:)


David J Firth

unread,
Dec 24, 1997, 3:00:00 AM12/24/97
to

>Microsoft 8080 BASIC would think to itself every once in a while,
>sometimes for a very long time, as it did garbage collection on string
>space. I think the 8086 version had a different garbage collection
>scheme because I don't recall it ever doing the same thing.

The MS implementation of N82 BASIC for my NEC PC8201A (8085 CPU) and
the Tandy TRS80 Model 100 MS BASIC implentations (two different BASICs
though they share a lot of similarities) don't seem to do the "sit and
think". Maybe MS cleaned up the design by 1984/85. I suspect that these
implementations may have been the last offical pass through the 8080
code or a rewrite given the unusual nature of these laptops. Anyone
know?

Mike Habicher

unread,
Dec 24, 1997, 3:00:00 AM12/24/97
to

Matthew Crosby wrote:
>
> In article <67kp5c$7...@world1.bawave.com>,
> George Gray <Georg...@AOL.COM> wrote:
> >If I understand correctly, GW-Basic used 64K TOTAL-code AND variables. I
> ^^^^^^^^^
> >maybe wrong, but I distinctly remember seeing GW-Basic running, swiftly, on
> >a PC with 16k ram. I saw it at a local computer store when they first came
> >out. It had a cassette drive connected to it. The disk version may have
> >allowed for more (disk buffer, I would think) but the ROM version only
> >allowed 64k total. BTW, I think IBM pc's today still ship with Basic in ROM
> >(that, tho, may have ended when the Microsoft-IBM licensing arrangement
> >ended...)
>
> Hold on...was it GW-Basic or MS Basic? The true blue PCs had basic in the
> roms, but I thought gw-basic (as opposed to straight basic) was the romless
> version that was disk only that MS came up for the clones. Am I wrong?

True blue IBM-PCs had, IIRC, something innocently
called "BASIC" in ROM... or possibly C-BASIC, where
the C stood for "cassette". No DOS, no discs, right?
You could activate it by calling INT 18h or something.

BASICA was IBM's extension to the ROM BASIC under
DOS; it had disc support, but would only run on
IBM machines because it made use of the BASIC routines
in the system's ROM.

GW-BASIC was Microsoft's "non-proprietary" <wince>
answer to the above. And though it has been MANY
years since I've used it, I believe that it was limited
to 64K of RAM for everything: code, data, stack.
[While I'm at it, does ANYONE know what the hell
the "MOTOR" keyword did? GW-BASIC accepted it,
but as far as I could tell, it didn't do anything.]

QBasic shipped with DOS 5.0 and could access 160K
(!) of code, data, and stack. It was CONSIDERABLY
faster than GW.

QuickBASIC [which RULES, BTW], could make use of
the full 640K of RAM, though each module could
only contain 64K of code--so large programs were
invariably broken down into multiple .BAS files.
I don't remember exactly how it handled data, though
the /AH command-line parameter told the interpreter
and the compiler to stick arrays [of any type except
variable-length strings] into "high" memory; here,
high memory was anything outside of the current
data segment. ;) [Hey, this was a development
system that would compile 5,000 lines/minute on my
286! :) ] This applied only to arrays, though;
simple types were stored in DS.

The MS BASIC PDS 7.x on the other hand, allowed
far data; I never used it though, so I don't
recall if it could make general use of E/XMS or
anything like that.

I've since graduated to VC++ and I haven't
actually used any of the above systems in YEARS,
so don't take what I say as gospel. :)

Seasons Greetings!
--Mike. :)

Alexander Bostrom

unread,
Dec 24, 1997, 3:00:00 AM12/24/97
to

>The IBM PC had a version of BASIC in ROM. This cassette-only BASIC
>would run on small memory machines. Only the first ones had the
>cassette port, BTW. BASICA and GWBASIC were disk-based and essentially
>twins. The BASIC & BASICA versions were for IBM (at first because my
>Tandy 1100FD came with MSDOS v3.3 in ROM and BASIC/BASICA on disk) and
>GW was for everyone else. At least in the beginning, there weren't any
>performance differences in the two except that I think the IBM BASICA
>looked for the ROM and wouldn't run on a clone. I might not remember
>that correctly.


Nah, I remember running BASICA on an Ericsson "portable" PC clone. It was
great, it didn't even do 80-colun mode! ;-/


Kerry Lee High Jr

unread,
Dec 24, 1997, 3:00:00 AM12/24/97
to

Mike Habicher <mhab...@uNwOaStPeArMloo.ca> wrote:
: True blue IBM-PCs had, IIRC, something innocently

: called "BASIC" in ROM... or possibly C-BASIC, where
: the C stood for "cassette". No DOS, no discs, right?
: You could activate it by calling INT 18h or something.
[snip!]
: [While I'm at it, does ANYONE know what the hell

: the "MOTOR" keyword did? GW-BASIC accepted it,
: but as far as I could tell, it didn't do anything.]
I believe MOTOR goes back to Cassette basic. it controled the cassette motor.


Kirk Is

unread,
Dec 24, 1997, 3:00:00 AM12/24/97
to

Why the "GW" in "GW-BASIC"?

--
Kirk Israel - kis...@cs.tufts.edu - http://www.alienbill.com
"The only intuitive user interface is a nipple"

Jim DeVries

unread,
Dec 24, 1997, 3:00:00 AM12/24/97
to

Mike Habicher <mhab...@uNwOaStPeArMloo.ca> wrote:
<snip>

>[While I'm at it, does ANYONE know what the hell
>the "MOTOR" keyword did? GW-BASIC accepted it,
>but as far as I could tell, it didn't do anything.]

I'm pretty sure it was at least supposed to generate Int 15h functions
0 (Cassette Motor On) and 1 (Cassette Motor Off). According to my source
these functions were supported on PcJr, PC, and Phoenix PC Bios only.

--

Jim DeVries
<jdev...@gate.net>
'65 Monza - '94 Saturn SL2

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
"If all mankind minus one, were of one opinion, and only one person were
of a contrary opinion, mankind would be no more justified in silencing
that one person, than he, if he had the power, would be justified in
silencing mankind."

John Stuart Mill, from 'On Liberty'

Robert Billing

unread,
Dec 24, 1997, 3:00:00 AM12/24/97
to

In article <34A0B265...@uNwOaStPeArMloo.ca>
mhab...@uNwOaStPeArMloo.ca "Mike Habicher" writes:

> [While I'm at it, does ANYONE know what the hell
> the "MOTOR" keyword did? GW-BASIC accepted it,

I have come across a reference to a machine on which it controlled a
relay which could be used to start an external cassette drive. The
relay contacts were connected to the PAUSE socket (usually 2.5mm jack)
on the cassette deck.

--
I am Robert Billing, Christian, inventor, traveller, cook and animal
lover, I live near 0:46W 51:22N. http://www.tnglwood.demon.co.uk/
"Bother," said Pooh, "Eeyore, ready two photon torpedoes and lock
phasers on the Heffalump, Piglet, meet me in transporter room three"

jsa...@freenet.edmonton.ab.ca

unread,
Dec 24, 1997, 3:00:00 AM12/24/97
to

On Sun, 21 Dec 1997 12:09:13 +0100, "Alexander Bostrom"
<d96...@R-U-HUMAN.nada.kth.se> wrote:

>Huh? Did GWBasic have non-trivial GC? I used it a bit on an old computer
>but it never froze like if it was GCing. Hmmm...maybe it doesn't get that
>bad with only 640kb RAM, or maybe I just thought it had crashed and reset
>the dang thing.

Yes, GW-Basic (or BASICA) did indeed have non-trivial garbage collection.
This applied, however, only to string variables. All variables in a BASIC
program are global and persistent, so garbage collection is only required
for strings because their _length_ can change. If a program does a lot of
string manipulation, then it indeed will freeze for GC, but not every
program will get to the point that this will happen.

John Savard

CVWD

unread,
Dec 24, 1997, 3:00:00 AM12/24/97
to

In article <67ptiq$6...@dfw-ixnews10.ix.netcom.com>, djf...@ix.netcom.com(David
J Firth) writes:

>The IBM PC had a version of BASIC in ROM. This cassette-only BASIC would run
>on small memory machines. Only the first ones had the cassette port, BTW.

I've still got the diagnostic boot cassette for my first IBM PC (and the tech
manual with the schematics). I have never had occasion to use either one, but
you never know.


CVWD

unread,
Dec 24, 1997, 3:00:00 AM12/24/97
to

In article <34A0B265...@uNwOaStPeArMloo.ca>, Mike Habicher
<mhab...@uNwOaStPeArMloo.ca> writes:

>GW-BASIC was Microsoft's "non-proprietary" <wince> answer to the above. And
>though it has been MANY years since I've used it, I believe that it was

>limited to 64K of RAM for everything: code, data, stack. [While I'm at it,


>does ANYONE know what the hell the "MOTOR" keyword did? GW-BASIC accepted

>it, but as far as I could tell, it didn't do anything.]

It starts the cassette drive.

Rick Hawkins

unread,
Dec 24, 1997, 3:00:00 AM12/24/97
to

In article <67pu07$h...@dfw-ixnews8.ix.netcom.com>,

the model100/nec/olivetti, like many other 8 bit machines (trs80, pet,
appleII+) used version 2 of MS Basic-80. GW (Gee-Whiz!) Basic was pretty
much version 5 of Basic-80.

Basic 80 came in three forms: base, extended, and disk. The basic on
the original pc was base, while basicA was the disk version. Generally,
disk basic used what was already available in ROM.

rick

--
R E HAWKINS
rhaw...@iastate.edu

These opinions will not be those of ISU until they pay my retainer.

Charlie Gibbs

unread,
Dec 24, 1997, 3:00:00 AM12/24/97
to

In article <67rdnd$tfe$3...@news.sas.ab.ca> jsa...@freenet.edmonton.ab.ca
(jsavard) writes:

>On Sun, 21 Dec 1997 12:09:13 +0100, "Alexander Bostrom"
><d96...@R-U-HUMAN.nada.kth.se> wrote:
>
>>Huh? Did GWBasic have non-trivial GC? I used it a bit on an old

>>computerbut it never froze like if it was GCing. Hmmm...maybe it


>>doesn't get that bad with only 640kb RAM, or maybe I just thought
>>it had crashed and reset the dang thing.
>
>Yes, GW-Basic (or BASICA) did indeed have non-trivial garbage
>collection. This applied, however, only to string variables.
>All variables in a BASIC program are global and persistent, so
>garbage collection is only required for strings because their
>_length_ can change. If a program does a lot of string manipulation,
>then it indeed will freeze for GC, but not every program will get
>to the point that this will happen.

I encountered this one time in MBASIC-80 on my IMSAI, when I wrote
a sort program. I thought my program had gone into an endless loop
until I fiddled with things like TRON and discovered the awful truth.

I still keep a copy of GW-BASIC around, and use it whenever I need
a quick one-shot program. It's much simpler to use than QuirkBASIC;
Microsoft hadn't started putting all sorts of temperamental "features"
into it yet. We have a lot of customer sites that we dial into with
PC-Anywhere. GW-BASIC works just fine in such a situation. This
is more than you can say for QuirkBASIC; you can't do things like
saving or exiting without using those damned menus, and for some
reason PC-Anywhere can't handle them, so you're screwed until you
get someone on the other end to complete the menu entry for you
(or you re-boot the machine, which PC-Anywhere _can_ do - just pray
that PC-Anywhere is restarted by AUTOEXEC.BAT).

BTW for the fellow who asked what the GW in GW-BASIC stands for,
I heard it was "Gee Whiz".

--
cgi...@sky.bus.com (Charlie Gibbs)
Remove the first period after the "at" sign to reply.


Gene Wirchenko

unread,
Dec 24, 1997, 3:00:00 AM12/24/97
to

jsa...@freenet.edmonton.ab.ca () wrote:

>On Sun, 21 Dec 1997 12:09:13 +0100, "Alexander Bostrom"
><d96...@R-U-HUMAN.nada.kth.se> wrote:
>
>>Huh? Did GWBasic have non-trivial GC? I used it a bit on an old computer
>>but it never froze like if it was GCing. Hmmm...maybe it doesn't get that
>>bad with only 640kb RAM, or maybe I just thought it had crashed and reset
>>the dang thing.
>
>Yes, GW-Basic (or BASICA) did indeed have non-trivial garbage collection.
>This applied, however, only to string variables. All variables in a BASIC
>program are global and persistent, so garbage collection is only required
>for strings because their _length_ can change. If a program does a lot of
>string manipulation, then it indeed will freeze for GC, but not every
>program will get to the point that this will happen.

Not quite. Arrays can be deallocated as well. I think it was
the erase statement.

Sincerely,

Gene Wirchenko

C Pronunciation Guide:
y=x++; "wye equals ex plus plus semicolon"
x=x++; "ex equals ex doublecross semicolon"

William Hamblen

unread,
Dec 24, 1997, 3:00:00 AM12/24/97
to

On 24 Dec 1997 13:30:51 GMT, kis...@allegro.cs.tufts.edu (Kirk Is)
wrote:

>Why the "GW" in "GW-BASIC"?

Gee-Whiz. Honest. It referred to all those nifty graphics and sound
functions that Microsoft 8080 BASIC doesn't have, but Radio Shack
Color Computer BASIC and IBM BASIC have.

Gene Wirchenko

unread,
Dec 24, 1997, 3:00:00 AM12/24/97
to

kis...@allegro.cs.tufts.edu (Kirk Is) wrote:

>Why the "GW" in "GW-BASIC"?

From what I've heard: "Gee Whiz!"

Steven Read

unread,
Dec 25, 1997, 3:00:00 AM12/25/97
to

>Mike Habicher wrote --

>
>> [While I'm at it, does ANYONE know what the hell
>> the "MOTOR" keyword did? GW-BASIC accepted it,
>> but as far as I could tell, it didn't do anything.]

From: Microsoft GW-Basic Language Features for the iAPX 88/86

Level 1 GW-BASIC Statement Extensions/ MOTOR

1.14.0 The MOTOR Statement

Function:

The MOTOR statement turns the Cassette Motor on or off.

Format:

MOTOR [state]

WHERE:

state is a boolean value indicating On or Off.


Example:

MOTOR 1 Turn motor on.
MOTOR 0 Turn motor off.
MOTOR Turn motor back on (toggles mode).

There you go,

Steve

David Fenyes

unread,
Dec 25, 1997, 3:00:00 AM12/25/97
to

pete.f...@zetnet.co.uk (Pete Fenelon) writes:

>
> From somewhere in the back of my mind, X=FRE("") buried somewhere in the
> idle loop of interactive programs comes to mind.
>

That would return the amount of free memory (in bytes) in the variable
X. BTW, there was also a garbage collection bug in the OSI version of
Microft's 6502 basic, and the challengers with BASIC in ROM would
often hang when running string-intensive programs.

--
David Fenyes University of Texas Medical School
da...@msrad71.med.uth.tmc.edu Dept. of Radiology

Scott Brown

unread,
Dec 25, 1997, 3:00:00 AM12/25/97
to

On 25 Dec 1997 05:07:59 GMT, dpes...@u.washington.edu (D. Peschel)
wrote:

>In article <67r2qb$4jd$1...@news3.tufts.edu>,


>Kirk Is <kis...@allegro.cs.tufts.edu> wrote:
>
>>Why the "GW" in "GW-BASIC"?
>

>Someone already mentioned that it might stand for "Gee Whiz". Myself, I like
>the theory that it stands for "Gates, William". There may be some other
>explanation involving ROT-13.

I recall reading somewhere that it's for "Graphics and Windows" or
some such nonsense.

-Scott

Nick Spalding

unread,
Dec 25, 1997, 3:00:00 AM12/25/97
to

David Fenyes wrote:

> That would return the amount of free memory (in bytes) in the variable
> X. BTW, there was also a garbage collection bug in the OSI version of
> Microft's 6502 basic, and the challengers with BASIC in ROM would
> often hang when running string-intensive programs.

The point was that FRE also forced garbage collection so that
performing it regularly prevented the string space fragmentation
getting out of hand to the point that garbage collection took forever.
--
Nick Spalding

Alan Barclay

unread,
Dec 25, 1997, 3:00:00 AM12/25/97
to

In article <34a29fc4....@news.xmission.com>,

Back in the early 80's, I was running on a system that could boot
to CP/M or MS-DOS (Not IBM compatable). I had a choice of three
different Microsoft Basic's.

M-Basic
G-Basic
GW-Basic

M-Basic had no graphic functionality at all. G-Basic had some, but not
all of the features of GW-Basic, while GW-Basic was esentially the same
as distributed for IBM comptables.

Dave Garland

unread,
Dec 26, 1997, 3:00:00 AM12/26/97
to

kis...@allegro.cs.tufts.edu (Kirk Is) wrote:

>Why the "GW" in "GW-BASIC"?

Gates
William

Charles Richmond

unread,
Dec 26, 1997, 3:00:00 AM12/26/97
to Rick Hawkins

Rick Hawkins wrote:
>
> [snip...] [snip...] [snip...]

>
> the model100/nec/olivetti, like many other 8 bit machines (trs80, pet,
> appleII+) used version 2 of MS Basic-80. GW (Gee-Whiz!) Basic was pretty
> much version 5 of Basic-80.
>
> Basic 80 came in three forms: base, extended, and disk. The basic on
> the original pc was base, while basicA was the disk version. Generally,
> disk basic used what was already available in ROM.
>
BASICA was *not* entirely disk BASIC. Because of contractual commitments to
Microsoft, IBM *had* to keep at least *part* of the BASICA interpreter in ROM.
This meant that you could *not* copy the executable (BASICA.EXE or BASICA.COM
or whatever it was) to an IBM clone machine and run it. The clone would *not*
have the ROM needed to execute the BASICA interpreter.

This meant that Billy could sell a copy of GW-BASIC to the owner of the clone
because he could *not* use a pirated copy of BASICA. (Yeah, I know...he could
use a pirated copy of GW-BASIC.)

Also I think that I have *some* insight into the string area garbage
collection (GC). (Someone *please* correct me if I go off into the weeds.)

A string variable in Microsoft BASIC consisted of a hunk of memory containing
a length for the string and a pointer to where the characters were stored in
the string area. Stings in the string area were atomic--i.e., they were
*never* changed. If you built a new string an assigned it to a variable, the
new string was created in free memory from the string area. The old string of
characters in the string area would be left in tact.

Only *one* copy of a string was stored in the string area. If two string
variables had the exact same characters, their pointers would point to the
*same* string in the string area. Eventually some of the strings of characters
in the string area would have *no* string variables pointing to them. During
garbage collection, these strings of characters were removed, the remaining
strings were compacted to leave the free memory as one block, and *all* the
pointers in the string variables adjusted to point to the new location of
their characters in the string area. GC would be caused by the inablility to
allocated enough memory from the string area to support the current
operation--or by being forced by a call to FRE("").

I assume that the reason the older BASIC's would "sit and think" during GC and
the newer BASIC's do *not* "sit and think"--must be that the newer BASIC's do
incremental garbage collection. That is, every time an operation occurs on
character variables that would effect the string area, unused character string
memory would be recovered *immediately*. This way GC time is spread out across
the entire run time of the program, and *no* noticable delay would occur.

--
+-------------------------------------------------------------+
| Charles and Francis Richmond <rich...@plano.net> |
+-------------------------------------------------------------+

John Bayko

unread,
Dec 26, 1997, 3:00:00 AM12/26/97
to

In article <34A0B265...@uNwOaStPeArMloo.ca>,
Mike Habicher <mhab...@uNwOaStPeArMloo.ca> wrote:
[...]

>[While I'm at it, does ANYONE know what the hell
>the "MOTOR" keyword did? GW-BASIC accepted it,
>but as far as I could tell, it didn't do anything.]

The syntax of GW-BASIC was taken almost entirely from Color Basic
for the TRS-80 Color Computer. MOTOR ON/OFF controlled the cassette
recorder remote switch (the on/off switch on cassette recorder
microphones), and AUDIO ON/OFF would play the sound from the cassette
over the TV speaker. The idea was to use the computer for interactive
teaching programs, to synchronize the tape with the contents of the
screen.
That was state of the art multimedia in 1981!

--
John Bayko (Tau).
ba...@cs.uregina.ca
http://www.cs.uregina.ca/~bayko

John W Hall

unread,
Dec 26, 1997, 3:00:00 AM12/26/97
to

dave.g...@wizinfo.com (Dave Garland) wrote:

I read that it's "Gee Whiz"

--
John Hall - Digital Magic <Digita...@cadvision.com>
"Any sufficiently advanced technology is indistinguishable from magic" (Arthur C. Clarke)

Sam Seiber

unread,
Dec 26, 1997, 3:00:00 AM12/26/97
to

Charles Richmond wrote:

<snip>


> A string variable in Microsoft BASIC consisted of a hunk of memory containing
> a length for the string and a pointer to where the characters were stored in
> the string area. Stings in the string area were atomic--i.e., they were
> *never* changed. If you built a new string an assigned it to a variable, the
> new string was created in free memory from the string area. The old string of
> characters in the string area would be left in tact.

<snip>

Also, IIRC, a line that contained something like:
A$="This is a line of data"
The string pointer pointed to the text within the
source code, saving string memory. If you did
something like:
A$="This string"+B$
Then it had to paste the two together and store them
in the string space. Simple assignments saved space
and were not part of garbage collection.

Sam Seiber

Rick Hawkins

unread,
Dec 26, 1997, 3:00:00 AM12/26/97
to

In article <34A35754...@plano.net>,
Charles Richmond <richmond@plano-dot-net> wrote:
>Rick Hawkins wrote:

>> Basic 80 came in three forms: base, extended, and disk. The basic on
>> the original pc was base, while basicA was the disk version. Generally,
>> disk basic used what was already available in ROM.

>BASICA was *not* entirely disk BASIC.

Correct. It used what was already available in ROM (extended BASIC)

> Because of contractual commitments to
>Microsoft, IBM *had* to keep at least *part* of the BASICA interpreter in ROM.
>This meant that you could *not* copy the executable (BASICA.EXE or BASICA.COM
>or whatever it was) to an IBM clone machine and run it. The clone would *not*
>have the ROM needed to execute the BASICA interpreter.

I'm not sure about this being due to "contractual committments." Most
other machines of the era did the same thing: extended BASIC in ROM,
then load in the rest of disk basic, which used the ROM code (apple,
pet, radio shack . . .)

>This meant that Billy could sell a copy of GW-BASIC to the owner of the clone
>because he could *not* use a pirated copy of BASICA. (Yeah, I know...he could
>use a pirated copy of GW-BASIC.)

That ends up a side effect, but he would have been perfectly happy to
sell them ROM rights jsut like he did to everyone else. However, I'm
not aware of anyone having done this: it was probably easier just to
deal with GWBASIC.

Also, BASIC in ROM was necessary when the IBM PC first came out. It was
designed to run without disks, and could be purchased with just 16k (the
first model had 4 banks of 16k each on the motherboard, and from 1 to 4
could be full when purchased). I'm not aware of any diskless clones.
Given the disk, and a "full" 64k, there was room in ram for the full
basic, and no need to spend more to include it in ROM.

Rick Hawkins

unread,
Dec 26, 1997, 3:00:00 AM12/26/97
to

In article <67v0fk$bv8$1...@sue.cc.uregina.ca>,

John Bayko <ba...@borealis.cs.uregina.ca> wrote:
>In article <34A0B265...@uNwOaStPeArMloo.ca>,
> Mike Habicher <mhab...@uNwOaStPeArMloo.ca> wrote:
>[...]
>>[While I'm at it, does ANYONE know what the hell
>>the "MOTOR" keyword did? GW-BASIC accepted it,
>>but as far as I could tell, it didn't do anything.]
>
> The syntax of GW-BASIC was taken almost entirely from Color Basic
>for the TRS-80 Color Computer.

This is just a *little* bit to strong. The general syntax is BASIC-80, 5.0,
disk version.

> MOTOR ON/OFF controlled the cassette
>recorder remote switch (the on/off switch on cassette recorder
>microphones),

This was hardly new in that color basic.

George Gray

unread,
Dec 26, 1997, 3:00:00 AM12/26/97
to

Steven Read wrote in message <34a3635a...@news.linkny.com>...
>>Mike Habicher wrote --


>>
>>> [While I'm at it, does ANYONE know what the hell
>>> the "MOTOR" keyword did? GW-BASIC accepted it,
>>> but as far as I could tell, it didn't do anything.]
>

MOTOR was a ROM-Basic holdover. Since GW-Basic was basically the same as
the ROM-based version for non-IBM machines, all of the keywords and tokens
were left intact. MOTOR actually controlled the relay (on the the
motherboard) that controlled the MIC on/off switch that was common on most
cheapy cassette recorders. Early versions of GW-Basic would generate an
error if you tried to use, this was fixed in later versions. Supposedly,
there were one or two other keywords that were left in but were useless, but
I do not know what they were. (I think "LISTEN" was one, but again, not
sure.)

Also, GW purportedly stood for Gee-Whiz but I rather like the 'Gates,
William' that someone in this thread has already suggested.

One other observation...I, too, have noticed that certain bugs were
prevelant in most incarnations of Microsoft Basic. I seem to remember that
Extended TRS-80 Color Computer Basic shared the same rounding errors as it's
cousin the TRS-80 Model 3 and in the Challenger. They also supplied the
Basic that shipped with the Mattell Aquarious and, it too, had the rounding
error. Perhaps they simply recompiled the same code using different
cross-compilers....

Nick S Bensema

unread,
Dec 27, 1997, 3:00:00 AM12/27/97
to

In article <67v0fk$bv8$1...@sue.cc.uregina.ca>,
John Bayko <ba...@borealis.cs.uregina.ca> wrote:
>
> The syntax of GW-BASIC was taken almost entirely from Color Basic
>for the TRS-80 Color Computer. MOTOR ON/OFF controlled the cassette

>recorder remote switch (the on/off switch on cassette recorder
>microphones), and AUDIO ON/OFF would play the sound from the cassette
>over the TV speaker. The idea was to use the computer for interactive
>teaching programs, to synchronize the tape with the contents of the
>screen.
> That was state of the art multimedia in 1981!

The Atari did that with POKEs in commercially-distributed foreign language
courses, some of which I'd REALLY like to have again.

There was a cartridge that would read data from the cassette while playing
audio, meaning that single cartridge could teach you anything provided you
had the tapes for it. I think it was called the Dorsett system, and I have
a few tapes for it still, though I doubt a complete set of anything.
(They came in sets of about four tapes). I also don't have the cartridge,
or a cassette player, though I do have an Atari XE game system which is
compatible with most of the cartridges.

These tapes would even be able to issue commands that would stop the motor
and issue a multiple-choice question.

--
Nick Bensema <ni...@primenet.com> 98-KUPD Red Card #710563 UIN: 2135445
~~~~ ~~~~~~~ ~~~~~~~~~~~~~~~~~~~~ Prepare ship for ludicruos speed!

http://www.climatefacts.org/ - Everyone but the bad boys have to behave.

Bob

unread,
Dec 27, 1997, 3:00:00 AM12/27/97
to

"Andy Whitehouse" <awhit...@spambucket.ndsuk.com> wrote:

> The following QuickBasic keywords are not supported in QBasic:
>
> ALIAS EVENT LOCAL SETMEM
> BYVAL $INCLUDE SADD SIGNAL
> CDECL Int86 Interrupt UEVENT
> COMMAND$ Int86X InterruptX
>
>Seems to be a reasonably complete implementation to me.

1) The loss of $INCLUDE is by itself a pretty large sacrifice if you
need to do more than write a few simple lines of code. I still have
some killer Library files to tack onto my programs.

2) QBasic doesn't let you compile; you have to run your stuff in the
QBasic environment. My opinion, but I'd rather have an .EXE than a
BAS file when I'm finished; I can give it to people who don't even
have Basic on their machine. Someone else pointed out that Win95
doesn't include it anymore, so this feature is even more important
now.

Bob

Lisa or Jeff

unread,
Dec 27, 1997, 3:00:00 AM12/27/97
to

Why did M/S take out QBASIC from Windows 95 DOS? I had hoped to share
some simple programs, assuming most people had the QBASIC on their
machine nowadays. (Programs might need user customizing, so I couldn't
send out an .EXE without a lot of trouble.)

John Rollins

unread,
Dec 27, 1997, 3:00:00 AM12/27/97
to

In article <681vhl$8...@world1.bawave.com>, "George Gray"

<Georg...@AOL.COM> wrote:
> MOTOR was a ROM-Basic holdover. Since GW-Basic was basically the same as
> the ROM-based version for non-IBM machines, all of the keywords and tokens
> were left intact. MOTOR actually controlled the relay (on the the
> motherboard) that controlled the MIC on/off switch that was common on most
> cheapy cassette recorders. Early versions of GW-Basic would generate an
> error if you tried to use, this was fixed in later versions. Supposedly,
> there were one or two other keywords that were left in but were useless, but
> I do not know what they were. (I think "LISTEN" was one, but again, not
> sure.)
Does anyone have a pinout of the cassette port on the PC? Maybe I'm just a
crazy computer nerd(or collector? I have almost 30 computers now from the
tiny Epson PX-8 and Newton 120 to a huge IBM Series/1 in three racks), but
I think it would be fun to try using a cassette recorder as a disk drive
replacement. How much will they hold? Maybe someone could also post the
TI-99 cassette port pinout so I can use the cable I already have(with a
small adapter)?
TIA

-JR http://members.tripod.com/~jrollins/index.html
http://www.geocities.com/Area51/Lair/1681/

John Bayko

unread,
Dec 27, 1997, 3:00:00 AM12/27/97
to

In article <6813gd$30s$1...@news.iastate.edu>,

Rick Hawkins <rhaw...@iastate.edu> wrote:
>In article <67v0fk$bv8$1...@sue.cc.uregina.ca>,
>John Bayko <ba...@borealis.cs.uregina.ca> wrote:
[...]

>> The syntax of GW-BASIC was taken almost entirely from Color Basic
>>for the TRS-80 Color Computer.
>
>This is just a *little* bit to strong. The general syntax is BASIC-80, 5.0,
>disk version.

Microsoft Basics didn't have graphics commands before the TRS-80
Color Computer - the GW-BASIC graphics commands were taken pretty much
directly from Color Basic. I believe pretty much all other Color Basic
statements showed up in GW-BASIC, except very specific ones dealing
with the CoCo's graphics hardware.

Ralph Wade Phillips

unread,
Dec 27, 1997, 3:00:00 AM12/27/97
to

Hi, Charlie!

Charlie Gibbs <cgi...@sky.bus.com> wrote in article
<1977.297T2...@sky.bus.com>...


> In article <67rdnd$tfe$3...@news.sas.ab.ca> jsa...@freenet.edmonton.ab.ca
> (jsavard) writes:
>

(stuff deleted)

> I still keep a copy of GW-BASIC around, and use it whenever I need
> a quick one-shot program. It's much simpler to use than QuirkBASIC;
> Microsoft hadn't started putting all sorts of temperamental "features"
> into it yet. We have a lot of customer sites that we dial into with
> PC-Anywhere. GW-BASIC works just fine in such a situation. This
> is more than you can say for QuirkBASIC; you can't do things like
> saving or exiting without using those damned menus, and for some
> reason PC-Anywhere can't handle them, so you're screwed until you
> get someone on the other end to complete the menu entry for you
> (or you re-boot the machine, which PC-Anywhere _can_ do - just pray
> that PC-Anywhere is restarted by AUTOEXEC.BAT).

Why not set PC-Anywhere up for one of the extended keyboard controls?
Mode 3 works for me ... PC/Anywhere for DOS v5.x, anywho.

>
> BTW for the fellow who asked what the GW in GW-BASIC stands for,
> I heard it was "Gee Whiz".

That be what we were told by DEC when GW-BASIC for the Rainbow 100 first
came out ..

RwP


Bob

unread,
Dec 28, 1997, 3:00:00 AM12/28/97
to

rexs...@ptld.uswest.net (John Rollins) wrote:
>Does anyone have a pinout of the cassette port on the PC? Maybe I'm just a
>crazy computer nerd(or collector? I have almost 30 computers now from the
>tiny Epson PX-8 and Newton 120 to a huge IBM Series/1 in three racks), but
>I think it would be fun to try using a cassette recorder as a disk drive
>replacement. How much will they hold? Maybe someone could also post the
>TI-99 cassette port pinout so I can use the cable I already have(with a
>small adapter)?

Well, I'd have to get out a shovel to find my old TI99 and all the
documentation from the landfill, but remember that the 16K it
contained reserved 8K for program and 8K for data, and a good sized
program could still take five minutes of tape time to load. It sounds
like a fun project to go at just for the hell of it but I doubt if,
say, Doom on cassette would be a big seller :).

Bob
-------------------------------------------------------------------------------------------------------
Once you have pulled the pin Mr. Grenade is no longer your friend.

Peter Lindgren

unread,
Dec 28, 1997, 3:00:00 AM12/28/97
to

Bob wrote:
[snip]

> program could still take five minutes of tape time to load. It sounds
> like a fun project to go at just for the hell of it but I doubt if,
> say, Doom on cassette would be a big seller :).

Ahem, anyone who remember the autumn -95 thread regarding
Windoze 95 on ZX Spectrum (cassette media of course)???
Fill me in, please!

/Peter
--
Peter Lindgren Bachelor of Computer Engineering
Norrsken Konsult, Mölndal, Sweden +46 - (0)31 27 17 09
norrsken...@vaxjo.mail.telia.com +46 - (0)70 545 95 50

The Bakers

unread,
Dec 28, 1997, 3:00:00 AM12/28/97
to

John Rollins wrote:

> Does anyone have a pinout of the cassette port on the PC? Maybe I'm just a
> crazy computer nerd(or collector?

From my genuine "IBM Personal Computer Hardware Reference Library - Technical
Reference" on the IBM PC (Revised Edition, 4-83):

Page 1-31 (System Unit):

Cassette Interface Connector Specifications

V
3 1
5 4
2

...as viewed looking at connector from "outside" on rear of PC...

Pin 1 Motor Control Common from Relay
Pin 2 Ground
Pin 3 Motor Control N.O. from Relay
Pin 4 Data In [From Earphone Jack]
pin 5 Data Out [To Mic or Aux Jack....there's a group of 4 header pins
on the
motherboard which use a jumper block to select
the output
level]

M. Baker
mba...@monmouth.com


Benjamin Robinson

unread,
Dec 28, 1997, 3:00:00 AM12/28/97
to

In "Re: back to the BASICS," Sam wrote:

>My cleverest BASIC (for getting power out of a
>machine) has to be Sinclair Spectrum BASIC. AFAIK it never needs to
>collect garbage, when it adds a variable it moves the entire contents
>of memory (48K, with a Z80) up to fit. As the variable space shrinks
>and grows it moves it all back down again.

This reminds me of a neat trick one could do with Atari BASIC. You could
interrupt a program, change the source code, and then continue from where
you left off. With most other BASICs, that I'm aware of, you couldn't do
this because when your source code expanded, it would overwrite your
variables. I'm not sure how Atari implemented its BASIC, but code and data
were organized so that they would not interefere with one another.

(On the other hand, Atari BASIC didn't support string arrays. Nobody's
perfect...)
--
Benjamin Robinson bj...@freenet.tlh.fl.us
This message may or may not contain sarcastic content; your burden to decide
Your spam has become tiresome. Add 1 to username to reply by e-mail
"He had a lot to say. He had a lot of nothing to say." - Tool

Tony Duell

unread,
Dec 28, 1997, 3:00:00 AM12/28/97
to

The Bakers (mba...@monmouth.com) wrote:
: From my genuine "IBM Personal Computer Hardware Reference Library - Technical

: Reference" on the IBM PC (Revised Edition, 4-83):

: Page 1-31 (System Unit):

: Cassette Interface Connector Specifications

: V
: 3 1
: 5 4
: 2

: ...as viewed looking at connector from "outside" on rear of PC...

: Pin 1 Motor Control Common from Relay
: Pin 2 Ground
: Pin 3 Motor Control N.O. from Relay
: Pin 4 Data In [From Earphone Jack]
: pin 5 Data Out [To Mic or Aux Jack....there's a group of 4 header pins
: on the
: motherboard which use a jumper block to select
: the output
: level]

I thought that pinout looked familiar, and it is... I've just looked in
my Tandy Colour Computer Techref, and the pinout of the cassette
connector on that machine (and all other TRS-80s) is the same. I think a
Tandy cassette cable would work fine on a PC as well. Now all I have to d
is get out one of my PCs and try it.


: M. Baker

-tony


Bob

unread,
Dec 29, 1997, 3:00:00 AM12/29/97
to

bj...@freenet.tlh.fl.us (Benjamin Robinson) wrote:

>This reminds me of a neat trick one could do with Atari BASIC. You could
>interrupt a program, change the source code, and then continue from where
>you left off. With most other BASICs, that I'm aware of, you couldn't do
>this because when your source code expanded, it would overwrite your
>variables. I'm not sure how Atari implemented its BASIC, but code and data
>were organized so that they would not interefere with one another.

If I recall correctly the program was stored from the bottom of the
memory working up and the data was stored from the top end working
down. If the two met you would get an out of memory error but that
was the scheme that gave you that ability.

Maybe. The Basic built into the old HP9845s must have done the same
thing and I may have caught it in the documentation on that beast; you
could stop and edit to your hearts content and still CONTinue the
program.

Bob


anborg

unread,
Dec 29, 1997, 3:00:00 AM12/29/97
to

> <topic-drift>
>
> What did the "GW" in "GW Basic" stand for?
>
I thought that everyone knew that it stood for Great Western.

Best regards,

Art Borg

Nick Spalding

unread,
Dec 29, 1997, 3:00:00 AM12/29/97
to

Benjamin Robinson wrote:

> This reminds me of a neat trick one could do with Atari BASIC. You could
> interrupt a program, change the source code, and then continue from where
> you left off. With most other BASICs, that I'm aware of, you couldn't do
> this because when your source code expanded, it would overwrite your
> variables. I'm not sure how Atari implemented its BASIC, but code and data
> were organized so that they would not interefere with one another.

Quickbasic does that, and its VB successors - even qbasic does it.
They none of them like you changing for loop variables or dim
statements and the like - for those you get a warning that if you do
that you will have to restart.
--
Nick Spalding

Max F Lang

unread,
Dec 29, 1997, 3:00:00 AM12/29/97
to

Matthew Crosby wrote:
>
> In article <67kp5c$7...@world1.bawave.com>,
> George Gray <Georg...@AOL.COM> wrote:
> >If I understand correctly, GW-Basic used 64K TOTAL-code AND variables. I
> ^^^^^^^^^

> Hold on...was it GW-Basic or MS Basic? The true blue PCs had basic in the
> roms, but I thought gw-basic (as opposed to straight basic) was the romless
> version that was disk only that MS came up for the clones. Am I wrong?

Well, right idea, wrong words. BASIC.com and BASICA.com were the
versions included with TrueBlue PC's and needed the ROM-BASIC to run.
Running it on a clone just locked up the system. GW-Basic ran on any PC,
including an IBM system. But to complicate the terminology, Compaq
included with their version of DOS versions of BASIC/BASICA, and they
did -not- need the ROM-BASIC, and they could also run on any PC,
including non=Compaqs. Compaq DOS sure looked like PC DOS most times.
Both GW-Basic and the Compaq BASIC/BASICA run nicely under dosemu...
--
/\/\ax |_ang, ...persuing cutting-edge research into the
budding Unix guru. burgeoning field of Linux-induced insomnia!
-x-x-x-Micro$loth or Linux: Hey, it's your computer!-x-x-x-

Rick Hawkins

unread,
Dec 29, 1997, 3:00:00 AM12/29/97
to

In article <683lm1$i6m$1...@sue.cc.uregina.ca>,

John Bayko <ba...@borealis.cs.uregina.ca> wrote:
>In article <6813gd$30s$1...@news.iastate.edu>,
> Rick Hawkins <rhaw...@iastate.edu> wrote:
>>In article <67v0fk$bv8$1...@sue.cc.uregina.ca>,
>>John Bayko <ba...@borealis.cs.uregina.ca> wrote:
>[...]
>>> The syntax of GW-BASIC was taken almost entirely from Color Basic
>>>for the TRS-80 Color Computer.
>>
>>This is just a *little* bit to strong. The general syntax is BASIC-80, 5.0,
>>disk version.

> Microsoft Basics didn't have graphics commands before the TRS-80
>Color Computer - the GW-BASIC graphics commands were taken pretty much
>directly from Color Basic. I believe pretty much all other Color Basic
>statements showed up in GW-BASIC, except very specific ones dealing
>with the CoCo's graphics hardware.

???

There was no standardized set, but just off the cuff, compucolor
(bizzare implementation in which damn near every control function was
through the PLOT command, including actual graphics), trs80
model 1 (pset/(uh, i forget how to turn it off)), applesoft (commands
for the hires graphics that needed machine calls from integer basic)
. . .

The specific commands for the graphics may have originated in the coco,
but I don't think that there's any other syntax in basica or gwbasic
that was not present in version 5 of basic 80 (which I became all to
familiar with many years ago :). For that matter, i think that there's
only a couple of syntax changes from 4.51 to 5.0. I'm probably going to
get this wrong, as I never used version 4.x, and haven't worried about
this for 5 years, but the bit i can recall is that there's a different
usage of commas in formatted printing, a difference in whether or not
the first pass of for/next is executed, and introduction of while/wend.

Rick Hawkins

unread,
Dec 29, 1997, 3:00:00 AM12/29/97
to

In article <34a791cf...@news.iol.ie>,

and mbasic 5. It had both MERGE and CHAIN commands, which could be used
to swap in code, or to transfer to another program, passing the
variables along.

Charles Richmond

unread,
Dec 29, 1997, 3:00:00 AM12/29/97
to

Benjamin Robinson wrote:
> This reminds me of a neat trick one could do with Atari BASIC. You could
> interrupt a program, change the source code, and then continue from where
> you left off. With most other BASICs, that I'm aware of, you couldn't do
> this because when your source code expanded, it would overwrite your
> variables. I'm not sure how Atari implemented its BASIC, but code and data
> were organized so that they would not interefere with one another.
>
It seems like this should work with BASICA and GW-BASIC, because they used one
64k segment for the program and another 64k segment for the data. So expanding
the source could *not* destroy the data segment (at least if the segments were
set up to be disjoint, and I think they always were.) In fact, when I took a
course that included BASIC programming years ago, one of the selling points
for BASIC was that you could stop the running program, change values of
variables, and then continue the program.

--
+----------------------------------------------------------+


| Charles and Francis Richmond <rich...@plano.net> |

+----------------------------------------------------------+

Gene Wirchenko

unread,
Dec 29, 1997, 3:00:00 AM12/29/97
to

rhaw...@iastate.edu (Rick Hawkins) wrote:

>In article <683lm1$i6m$1...@sue.cc.uregina.ca>,
>John Bayko <ba...@borealis.cs.uregina.ca> wrote:
>>In article <6813gd$30s$1...@news.iastate.edu>,
>> Rick Hawkins <rhaw...@iastate.edu> wrote:
>>>In article <67v0fk$bv8$1...@sue.cc.uregina.ca>,
>>>John Bayko <ba...@borealis.cs.uregina.ca> wrote:
>>[...]
>>>> The syntax of GW-BASIC was taken almost entirely from Color Basic
>>>>for the TRS-80 Color Computer.
>>>
>>>This is just a *little* bit to strong. The general syntax is BASIC-80, 5.0,
>>>disk version.
>
>> Microsoft Basics didn't have graphics commands before the TRS-80
>>Color Computer - the GW-BASIC graphics commands were taken pretty much
>>directly from Color Basic. I believe pretty much all other Color Basic
>>statements showed up in GW-BASIC, except very specific ones dealing
>>with the CoCo's graphics hardware.
>
>???
>
>There was no standardized set, but just off the cuff, compucolor
>(bizzare implementation in which damn near every control function was
>through the PLOT command, including actual graphics), trs80
>model 1 (pset/(uh, i forget how to turn it off)), applesoft (commands
>for the hires graphics that needed machine calls from integer basic)
>. . .

Uh, we're talking Microsoft BASIC here. I don't know about
Compucolor, but Applesoft wasn't a Microsoft BASIC.

While "pset" was used in some dialects, in TRS-80 Model I Level
II BASIC (tape and disk), it was
set(expr1,expr2)
Turning off a pixel was with
reset(expr1,expr2)

>The specific commands for the graphics may have originated in the coco,

Some, probably, but the was a Level III BASIC for the TRS-80
Model I. It had a number of graphics commands. These or a derivative
made it to IBM PC BASIC.

>but I don't think that there's any other syntax in basica or gwbasic
>that was not present in version 5 of basic 80 (which I became all to
>familiar with many years ago :). For that matter, i think that there's

Some functions.

>only a couple of syntax changes from 4.51 to 5.0. I'm probably going to

Yes, but there were semantic changes. tab() started with column
0 in 4 and with 1 in 5. Float to integer conversion truncated in 4
and rounded in 5. This latter flies against convention. The big
noticeable change was that crunching was no longer legal. e.g.
10PRINTA
was legal in 4, but not in 5.

>get this wrong, as I never used version 4.x, and haven't worried about
>this for 5 years, but the bit i can recall is that there's a different
>usage of commas in formatted printing, a difference in whether or not
>the first pass of for/next is executed, and introduction of while/wend.

That's about it.

Sincerely,

Gene Wirchenko

C Pronunciation Guide:
y=x++; "wye equals ex plus plus semicolon"
x=x++; "ex equals ex doublecross semicolon"

Jim DeVries

unread,
Dec 29, 1997, 3:00:00 AM12/29/97
to

bj...@freenet.tlh.fl.us (Benjamin Robinson) wrote:
<snip>

>This reminds me of a neat trick one could do with Atari BASIC. You could
>interrupt a program, change the source code, and then continue from where
>you left off. With most other BASICs, that I'm aware of, you couldn't do
>this because when your source code expanded, it would overwrite your
>variables. I'm not sure how Atari implemented its BASIC, but code and data
>were organized so that they would not interefere with one another.

I remember while running the resident basic on my VIC-20 a running program could
print the text of a new line and with some POKEing around it would be accepted
as just that, a new line in the running program. Now THAT's versatility!


--

Jim DeVries
<jdev...@gate.net>
'65 Monza - '94 Saturn SL2

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
"If all mankind minus one, were of one opinion, and only one person were of a contrary
opinion, mankind would be no more justified in silencing that one person, than he, if
he had the power, would be justified in silencing mankind."

John Stuart Mill, from 'On Liberty'

Carl R. Friend

unread,
Dec 29, 1997, 3:00:00 AM12/29/97
to

Gene Wirchenko, in article nr. <34a7eec2...@news.vip.net>,
wrote:

>
> Uh, we're talking Microsoft BASIC here. I don't know about
> Compucolor, but Applesoft wasn't a Microsoft BASIC.

Compucolor, aka Intecolor, aka ISC (AFAIR), were most certainly
not Microsoft implementatons. They bear a copyright of "Charles
Muench" who was one of the co-founders of ISC (Intellegent Systems
Corporation).

--
______________________________________________________________________
| | |
| Carl Richard Friend (UNIX Sysadmin) | West Boylston |
| Minicomputer Collector / Enthusiast | Massachusetts, USA |
| mailto:carl....@stoneweb.com | |
| http://www.ultranet.com/~engelbrt/carl/museum | ICBM: N42:22 W71:47 |
|________________________________________________|_____________________|

George Gray

unread,
Dec 29, 1997, 3:00:00 AM12/29/97
to

Gene Wirchenko wrote in message <34a7eec2...@news.vip.net>...


>rhaw...@iastate.edu (Rick Hawkins) wrote:
>>There was no standardized set, but just off the cuff, compucolor
>>(bizzare implementation in which damn near every control function was
>>through the PLOT command, including actual graphics), trs80
>>model 1 (pset/(uh, i forget how to turn it off)), applesoft (commands
>>for the hires graphics that needed machine calls from integer basic)
>>. . .
>

> Uh, we're talking Microsoft BASIC here. I don't know about
>Compucolor, but Applesoft wasn't a Microsoft BASIC.

--------------------------------------------
-----
You are wrong, my friend! Apple INTEGER basic was NOT Microsoft, but
Microsoft, did, in fact, write Applesoft-hence the SOFT in the name. If you
look into the Applesoft code, you can find the copyright message buried in
there.

> While "pset" was used in some dialects, in TRS-80 Model I Level
>II BASIC (tape and disk), it was
> set(expr1,expr2)
>Turning off a pixel was with
> reset(expr1,expr2)
>
>>The specific commands for the graphics may have originated in the coco,
>
> Some, probably, but the was a Level III BASIC for the TRS-80
>Model I. It had a number of graphics commands. These or a derivative
>made it to IBM PC BASIC.

Again, you are not quite right. Extended Color Basic for TRS-80 Color
Computer WAS the first implementation of a Microsoft Basic that contained a
standard keyword set. Just about ALL of the Extended Color Basic keywords
made it into GW-Basic and it's derivative (including the 'official' IBM
version.) The infamous MOTOR ON/MOTOR OFF statements were also included in
the CoCo version (and do, in fact, go waaaaay back to Level II Basic.) The
Basic that shipped with the Mattell Aquarious as well as a few other home
PC's built AFTER the CoCo contained the SAME keyword set. Only the Extended
Disk Basic keywords changed.

I remember taking some of my CoCo Basic code and using on the IBM with
little or no change...unheard of then! Imagine, a 'standard' as far
'standards' went, back then.

Lisa or Jeff

unread,
Dec 30, 1997, 3:00:00 AM12/30/97
to

> Just to take up some bandwidth, the contents:
>
> [.] GRAPHICS.PRO MEMMAKER.EXE QBASIC.HLP
> [..] HELP.COM MEMMAKER.HLP REPLACE.EXE

Thanks for your note. My new machine came pre-equipped with Win95,
and the help for that says very little about DOS or what's on the
CD. Since Win95 is already on the machine, I didn't think there'd
be stuff on CD that wasn't on the hard drive or that I'd need.

I do a lot of stuff in DOS mode, so those things are useful to me.

(I never could figure out how to make a Win95 RAMdrive, so I can
set one up.)

Matt Ackeret

unread,
Dec 30, 1997, 3:00:00 AM12/30/97
to

In article <688hit$84v$1...@news.iastate.edu>,

Rick Hawkins <rhaw...@iastate.edu> wrote:
>applesoft (commands
>for the hires graphics that needed machine calls from integer basic)

What does this mean? On this GS I'm typing on right now, integer BASIC
isn't loaded [I'd have to hook up my 5.25" drives and find a DOS 3.3 System
Master to do that], but I can go into AppleSoft and make graphics calls
just fine. On a ][+ or later, you almost certainly *don't* have Integer
loaded most of the time.

I don't know what 'standards' people are talking about, but AppleSoft has
HCOLOR
HPLOT A,B [to C,D]
HLIN
VLIN
and probably more I can't remember.
--
mat...@area.com

Gene Wirchenko

unread,
Dec 30, 1997, 3:00:00 AM12/30/97
to

"George Gray" <Georg...@AOL.COM> wrote:

>
>Gene Wirchenko wrote in message <34a7eec2...@news.vip.net>...
>>rhaw...@iastate.edu (Rick Hawkins) wrote:
>>>There was no standardized set, but just off the cuff, compucolor
>>>(bizzare implementation in which damn near every control function was
>>>through the PLOT command, including actual graphics), trs80

>>>model 1 (pset/(uh, i forget how to turn it off)), applesoft (commands


>>>for the hires graphics that needed machine calls from integer basic)

>>>. . .
>>
>> Uh, we're talking Microsoft BASIC here. I don't know about
>>Compucolor, but Applesoft wasn't a Microsoft BASIC.
> --------------------------------------------
>-----
>You are wrong, my friend! Apple INTEGER basic was NOT Microsoft, but
>Microsoft, did, in fact, write Applesoft-hence the SOFT in the name. If you
>look into the Applesoft code, you can find the copyright message buried in
>there.

Ah, well, I wasn't an Apple user. What I meant was that it
wasn't what was commonly called Microsoft BASIC which was quite
standardized.

>> While "pset" was used in some dialects, in TRS-80 Model I Level
>>II BASIC (tape and disk), it was
>> set(expr1,expr2)
>>Turning off a pixel was with
>> reset(expr1,expr2)
>>
>>>The specific commands for the graphics may have originated in the coco,
>>
>> Some, probably, but the was a Level III BASIC for the TRS-80
>>Model I. It had a number of graphics commands. These or a derivative
>>made it to IBM PC BASIC.
>Again, you are not quite right. Extended Color Basic for TRS-80 Color
>Computer WAS the first implementation of a Microsoft Basic that contained a
>standard keyword set. Just about ALL of the Extended Color Basic keywords

No, MBASIC 4 was much earlier. Level III also predated the Color
Computer. At one point, Microsoft had some sort of system in place
where they could generate a BASIC for a Z-80 system quite easily.

Expanded graphics capabilities required additions to the
language, but the base was already there.

>made it into GW-Basic and it's derivative (including the 'official' IBM
>version.) The infamous MOTOR ON/MOTOR OFF statements were also included in
>the CoCo version (and do, in fact, go waaaaay back to Level II Basic.) The

There was no motor command in Level II BASIC. (You could out to
port 255. I forget which bit controlled the tape drive motor, but I
think it was bit 0. Set was on, reset was off.)

>Basic that shipped with the Mattell Aquarious as well as a few other home
>PC's built AFTER the CoCo contained the SAME keyword set. Only the Extended
>Disk Basic keywords changed.

I bet if you look at MBASIC, you'll see most or all of those.

>I remember taking some of my CoCo Basic code and using on the IBM with
>little or no change...unheard of then! Imagine, a 'standard' as far
>'standards' went, back then.

TRS-80 BASIC was based on MBASIC 4. Commodore BASIC was as well
though it had rather different disk and error handling. Applesoft was
a different creature.

bma...@iglou.com

unread,
Dec 30, 1997, 3:00:00 AM12/30/97
to

On 1997-12-29 bo...@ma.ultranet.com(Bob) said:
>>This reminds me of a neat trick one could do with Atari BASIC.
>>You could interrupt a program, change the source code, and then
>>continue from where you left off. With most other BASICs, that
>>I'm aware of, you couldn't do this because when your source code
>>expanded, it would overwrite your variables. I'm not sure how
>>Atari implemented its BASIC, but code and data were organized so
>that they would not interefere with one another.

In the Timex Sinclair 1000 (ZX81), the save command would save the program,
variables, and even screen contents. If you used SAVE inside a program,
when you loaded the tape it would continue from the instruction after
the SAVE.


Bill Marcum

THIS IS WHAT ALL YOUR INVISIBLE WHITE RABBIT FRIENDS WARNED YOU ABOUT.

Net-Tamer V 1.09.2 - Test Drive

Rick Hawkins

unread,
Dec 30, 1997, 3:00:00 AM12/30/97
to

In article <34a7eec2...@news.vip.net>,
Gene Wirchenko <ge...@vip.net> wrote:

> Uh, we're talking Microsoft BASIC here. I don't know about
>Compucolor, but Applesoft wasn't a Microsoft BASIC.

Beg Pardon? I believe it even had a microsoft copyright that displayed.
It had a different precision FP (9? instead of 6/12), but it was
microsoft. The original integer basic, however, was not.


> While "pset" was used in some dialects, in TRS-80 Model I Level
>II BASIC (tape and disk), it was
> set(expr1,expr2)
>Turning off a pixel was with
> reset(expr1,expr2)

It's been a while :) maybe i'm thinking of the 102 . . .

>>The specific commands for the graphics may have originated in the coco,

> Some, probably, but the was a Level III BASIC for the TRS-80
>Model I. It had a number of graphics commands. These or a derivative
>made it to IBM PC BASIC.

Level 3? I don't recall that. But then, I returned my model I when I
found that it couldn't count. The fp was so bad that 3^4 was 81.001,
and for i=-1 to 1, step .1 missed 0 . . .

> Yes, but there were semantic changes. tab() started with column
>0 in 4 and with 1 in 5. Float to integer conversion truncated in 4
>and rounded in 5. This latter flies against convention. The big
>noticeable change was that crunching was no longer legal. e.g.
> 10PRINTA
>was legal in 4, but not in 5.

This sets a couple of dusty neurons firing (ach-oo!)

Rick Hawkins

unread,
Dec 30, 1997, 3:00:00 AM12/30/97
to

In article <34a92f43...@news.vip.net>,

Gene Wirchenko <ge...@vip.net> wrote:
>"George Gray" <Georg...@AOL.COM> wrote:

>>
>>Gene Wirchenko wrote in message <34a7eec2...@news.vip.net>...
>>>rhaw...@iastate.edu (Rick Hawkins) wrote:

>>> Some, probably, but the was a Level III BASIC for the TRS-80
>>>Model I. It had a number of graphics commands. These or a derivative
>>>made it to IBM PC BASIC.

>>Again, you are not quite right. Extended Color Basic for TRS-80 Color
>>Computer WAS the first implementation of a Microsoft Basic that contained a
>>standard keyword set. Just about ALL of the Extended Color Basic keywords

> No, MBASIC 4 was much earlier. Level III also predated the Color
>Computer. At one point, Microsoft had some sort of system in place
>where they could generate a BASIC for a Z-80 system quite easily.


one of the things that I threw away, years ago, was their product
catalog, which specified exactly what you had to do to get a custom
BASIC. But I think it used 8080, not z80, as the base. And the 6800
and 6502 versions were apparently derivatives/crosscompiles of basic-80.


>>Basic that shipped with the Mattell Aquarious as well as a few other home
>>PC's built AFTER the CoCo contained the SAME keyword set. Only the Extended
>>Disk Basic keywords changed.
>
> I bet if you look at MBASIC, you'll see most or all of those.
>
>>I remember taking some of my CoCo Basic code and using on the IBM with
>>little or no change...unheard of then! Imagine, a 'standard' as far
>>'standards' went, back then.

> TRS-80 BASIC was based on MBASIC 4. Commodore BASIC was as well
>though it had rather different disk and error handling. Applesoft was
>a different creature.

version 4? weren't they all variants of version 2? It seems to me that
they were lacking the random file access of versions 4 & 5, and had a
significantly different syntax for opening files.

rick

Rick Hawkins

unread,
Dec 30, 1997, 3:00:00 AM12/30/97
to

In article <689ms2$isp$1...@nixon.area.com>,

Matt Ackeret <mat...@area.com> wrote:
>In article <688hit$84v$1...@news.iastate.edu>,
>Rick Hawkins <rhaw...@iastate.edu> wrote:
>>applesoft (commands
>>for the hires graphics that needed machine calls from integer basic)

>What does this mean? On this GS I'm typing on right now, integer BASIC


>isn't loaded [I'd have to hook up my 5.25" drives and find a DOS 3.3 System
>Master to do that], but I can go into AppleSoft and make graphics calls
>just fine. On a ][+ or later, you almost certainly *don't* have Integer
>loaded most of the time.

In integer basic, to get the hires routines (and floating point), you
loaded them from tape, then used CALL to get at them. Wait a minute, I
think that's only real early models. I think they made it into an extra
ROM before most were sold.

>I don't know what 'standards' people are talking about, but AppleSoft has
>HCOLOR
>HPLOT A,B [to C,D]
>HLIN
>VLIN
>and probably more I can't remember.

Yep. But in integer, these weren't available. You needed the machine
calls.

Ralph Wade Phillips

unread,
Dec 30, 1997, 3:00:00 AM12/30/97
to

Hi, Gene!


Gene Wirchenko <ge...@vip.net> wrote in article


<34a7eec2...@news.vip.net>...
> rhaw...@iastate.edu (Rick Hawkins) wrote:
>

> >In article <683lm1$i6m$1...@sue.cc.uregina.ca>,
> >John Bayko <ba...@borealis.cs.uregina.ca> wrote:

> >>In article <6813gd$30s$1...@news.iastate.edu>,


> >> Rick Hawkins <rhaw...@iastate.edu> wrote:
> >>>In article <67v0fk$bv8$1...@sue.cc.uregina.ca>,
> >>>John Bayko <ba...@borealis.cs.uregina.ca> wrote:
> >>[...]
> >>>> The syntax of GW-BASIC was taken almost entirely from Color Basic
> >>>>for the TRS-80 Color Computer.
> >>>
> >>>This is just a *little* bit to strong. The general syntax is
BASIC-80, 5.0,
> >>>disk version.
> >
> >> Microsoft Basics didn't have graphics commands before the TRS-80
> >>Color Computer - the GW-BASIC graphics commands were taken pretty much
> >>directly from Color Basic. I believe pretty much all other Color Basic
> >>statements showed up in GW-BASIC, except very specific ones dealing
> >>with the CoCo's graphics hardware.
> >
> >???
> >

> >There was no standardized set, but just off the cuff, compucolor
> >(bizzare implementation in which damn near every control function was
> >through the PLOT command, including actual graphics), trs80

> >model 1 (pset/(uh, i forget how to turn it off)), applesoft (commands


> >for the hires graphics that needed machine calls from integer basic)

> >. . .


>
> Uh, we're talking Microsoft BASIC here. I don't know about
> Compucolor, but Applesoft wasn't a Microsoft BASIC.

You MIGHT want to double-check that there copyright - Microsoft owns it!

That's AppleSoft alright - Apple's Integer BASIC was written by the WOZ,
but AppleSoft was written by Microsoft (hence the "SOFT" portion .. <B-) )

CompuColor's big BASIC was also written by Microsoft.

(the rest deleted to please my news server ... )

RwP

Ralph Wade Phillips

unread,
Dec 30, 1997, 3:00:00 AM12/30/97
to

Hi there!

Matt Ackeret <mat...@area.com> wrote in article
<689ms2$isp$1...@nixon.area.com>...
> In article <688hit$84v$1...@news.iastate.edu>,


> Rick Hawkins <rhaw...@iastate.edu> wrote:
> >applesoft (commands
> >for the hires graphics that needed machine calls from integer basic)
>

> What does this mean? On this GS I'm typing on right now, integer BASIC
> isn't loaded [I'd have to hook up my 5.25" drives and find a DOS 3.3
System
> Master to do that], but I can go into AppleSoft and make graphics calls
> just fine. On a ][+ or later, you almost certainly *don't* have Integer
> loaded most of the time.

True. What Rick SAID, and what he MEANT, was that those same hires
graphics calls had to be done as machine language calls in Integer BASIC,
but were BASIC commands in AppleSoft.

RwP


Gene Wirchenko

unread,
Dec 31, 1997, 3:00:00 AM12/31/97
to

rhaw...@iastate.edu (Rick Hawkins) wrote:

>In article <34a92f43...@news.vip.net>,
>Gene Wirchenko <ge...@vip.net> wrote:
>>"George Gray" <Georg...@AOL.COM> wrote:
>
>>>

>>>Gene Wirchenko wrote in message <34a7eec2...@news.vip.net>...


>>>>rhaw...@iastate.edu (Rick Hawkins) wrote:
>
>>>> Some, probably, but the was a Level III BASIC for the TRS-80
>>>>Model I. It had a number of graphics commands. These or a derivative
>>>>made it to IBM PC BASIC.
>>>Again, you are not quite right. Extended Color Basic for TRS-80 Color
>>>Computer WAS the first implementation of a Microsoft Basic that contained a
>>>standard keyword set. Just about ALL of the Extended Color Basic keywords
>
>> No, MBASIC 4 was much earlier. Level III also predated the Color
>>Computer. At one point, Microsoft had some sort of system in place
>>where they could generate a BASIC for a Z-80 system quite easily.
>
>
>one of the things that I threw away, years ago, was their product
>catalog, which specified exactly what you had to do to get a custom
>BASIC. But I think it used 8080, not z80, as the base. And the 6800
>and 6502 versions were apparently derivatives/crosscompiles of basic-80.

I wasn't sure if the base was Z-80 or 8080. By the time I was
using the 8080 family, Z-80 was the chip of choice.

>>>Basic that shipped with the Mattell Aquarious as well as a few other home
>>>PC's built AFTER the CoCo contained the SAME keyword set. Only the Extended
>>>Disk Basic keywords changed.
>>
>> I bet if you look at MBASIC, you'll see most or all of those.
>>
>>>I remember taking some of my CoCo Basic code and using on the IBM with
>>>little or no change...unheard of then! Imagine, a 'standard' as far
>>>'standards' went, back then.
>
>> TRS-80 BASIC was based on MBASIC 4. Commodore BASIC was as well
>>though it had rather different disk and error handling. Applesoft was
>>a different creature.
>
>version 4? weren't they all variants of version 2? It seems to me that
>they were lacking the random file access of versions 4 & 5, and had a
>significantly different syntax for opening files.

Microsoft BASIC version 4.
^^^^^^^^^

Commodore had their own version numbers for their BASIC. 2 and 4
of theirs are the ones I know about. Commodore BASIC 2 was
cassette-based and 4 was disk-based.

Gene Wirchenko

unread,
Dec 31, 1997, 3:00:00 AM12/31/97
to

rhaw...@iastate.edu (Rick Hawkins) wrote:

>In article <34a7eec2...@news.vip.net>,
>Gene Wirchenko <ge...@vip.net> wrote:
[snip]

>> Some, probably, but the was a Level III BASIC for the TRS-80
>>Model I. It had a number of graphics commands. These or a derivative
>>made it to IBM PC BASIC.
>

>Level 3? I don't recall that. But then, I returned my model I when I
>found that it couldn't count. The fp was so bad that 3^4 was 81.001,
>and for i=-1 to 1, step .1 missed 0 . . .

Level III was a product from Microsoft that added functions to
Level II tape BASIC. It was not widely known.

That was your error in using FP. As .1 can't be represented
exactly internally, you have round-off errors. It would have been
better to code as
for ib=-10 to 10
i=ib/10

[snip]

Gene Wirchenko

unread,
Dec 31, 1997, 3:00:00 AM12/31/97
to

luc...@null.net (Luc Van der Veken) wrote:

>On Mon, 29 Dec 1997 20:15:38 GMT, ge...@vip.net (Gene Wirchenko) told
>the world, or rather subsection alt.folklore.computers of it, that:


>
>> While "pset" was used in some dialects, in TRS-80 Model I Level
>> II BASIC (tape and disk), it was
>> set(expr1,expr2)
>> Turning off a pixel was with
>> reset(expr1,expr2)
>

>Correct - except that this wasn't really graphics (compared to GWBasic
>and the like).
>These instructions wouldn't set/reset a pixel, but a block of pixels
>(1/6 of a character, if I remember correctly).

Please don't redefine the language. "pixel" comes from "picture
element". A block of monitor dots can also be considered a pixel and
WAS. Yes, it's low res. Yes, it was 1/6 of a char.

>The character set had some (2^6 ?) extended characters that formed all
>possible combinations of these pixel blocks, and the set/reset
>instructions just put the right ascii character onscreen.

Yes, 128 to 191.

>You could display graphics using chr$ or string variables much faster
>than using set.

With static displays, yes. It was often quicker to use set/reset
when graphing.

>The model IV had the same characters, but because of a smaller
>character cell (8 scanlines instead of 9 I think) the lower 2 blocks
>were slightly smaller than the other 4.

Yuck!

Gene Wirchenko

unread,
Dec 31, 1997, 3:00:00 AM12/31/97
to

luc...@null.net (Luc Van der Veken) wrote:

>On Tue, 30 Dec 1997 19:43:59 GMT, bma...@iglou.com told the world, or


>rather subsection alt.folklore.computers of it, that:
>

>> In the Timex Sinclair 1000 (ZX81), the save command would save the program,
>> variables, and even screen contents. If you used SAVE inside a program,
>> when you loaded the tape it would continue from the instruction after
>> the SAVE.
>

>I seem to remember this 'feature' (without the screen save) from
>another system too. Could it have been TRS-80 model I? Or plain
>BASIC-80 on 8080 CP/M systems?

TRS-80 Model I: no.
CP/M BASIC-80: almost certainly no.
These two BASICs would have been very similar.

>It's also possible that I'm mixing this up with a MERGE statement,
>which also continued with the next statement as it found it after the
>merge (used it to load overlays there).

IIRC, it was the CHAIN statement with the MERGE option that did
this. MERGE was also a statement and was comparable to LOAD i.e.
execution did not continue.

William Hamblen

unread,
Jan 1, 1998, 3:00:00 AM1/1/98
to

On Mon, 29 Dec 1997 20:15:38 GMT, ge...@vip.net (Gene Wirchenko)
wrote:

> Uh, we're talking Microsoft BASIC here. I don't know about
>Compucolor, but Applesoft wasn't a Microsoft BASIC.

Most of Applesoft BASIC was Microsoft 6502 BASIC. Applesoft was a
punning reference to Microsoft.

The graphics and sound commands in Radio Shack Color Computer BASIC
are essentially the same in as IBM ROM BASIC. That is no surprise
because both came from the same shop. Radio Shack Disk Extended BASIC
is clearly related to Altair Disk BASIC. Microsoft wrote a 6800 BASIC
for the Altair 680. A company called GRT, originally GRT Record
Pressing, that was in the country-western record business decided to
get into the software business and issued some programs, including
Microsoft 8K BASIC for the SWTPC 6800. Their software effort was a
complete flop and GRT itself went out of business later. My copy of
Microsoft 6800 BASIC credits Paul Allen as the author. Microsoft
BASIC tended to do cute things to save a little memory. Like jumping
to the second byte of an instruction.

J. Chris Hausler

unread,
Jan 1, 1998, 3:00:00 AM1/1/98
to

William Hamblen <William...@nashville.com> writes:

>The graphics and sound commands in Radio Shack Color Computer BASIC
>are essentially the same in as IBM ROM BASIC. That is no surprise
>because both came from the same shop. Radio Shack Disk Extended BASIC
>is clearly related to Altair Disk BASIC. Microsoft wrote a 6800 BASIC
>for the Altair 680. A company called GRT, originally GRT Record
>Pressing, that was in the country-western record business decided to
>get into the software business and issued some programs, including
>Microsoft 8K BASIC for the SWTPC 6800. Their software effort was a
>complete flop and GRT itself went out of business later. My copy of
>Microsoft 6800 BASIC credits Paul Allen as the author. Microsoft

Of course, you could be talking about something I somehow missed
but the only 6800 Basic published on a record I ever came
across was Robert Uiterwyk's 4K 6800 Basic which Interface Age
Magazine included in their May 1977 issue as their first "Floppy ROM".
The record manufacturer was Eva-Tone Soundsheets of Deerfield, Ill.
which normally used their flexible record technology to produce
short "music samplers". They were not the instigators of the Floppy
ROM however, it was the magazine which just used Eva-Tone's technology.
Chris

William Hamblen

unread,
Jan 2, 1998, 3:00:00 AM1/2/98
to

On Thu, 1 Jan 98 17:14:01 -0500, J. Chris Hausler
<jcha...@delphi.com> wrote:

>Of course, you could be talking about something I somehow missed
>but the only 6800 Basic published on a record I ever came
>across was Robert Uiterwyk's 4K 6800 Basic which Interface Age
>Magazine included in their May 1977 issue as their first "Floppy ROM".
>The record manufacturer was Eva-Tone Soundsheets of Deerfield, Ill.
>which normally used their flexible record technology to produce
>short "music samplers". They were not the instigators of the Floppy
>ROM however, it was the magazine which just used Eva-Tone's technology.
>Chris

I'm not surprised you missed it, because it wasn't out long. Format
was KC Standard Phillips Compact Cassette.

Gene Wirchenko

unread,
Jan 2, 1998, 3:00:00 AM1/2/98
to

Charles Richmond <rich...@plano.net> wrote:

>Benjamin Robinson wrote:
>> This reminds me of a neat trick one could do with Atari BASIC. You could
>> interrupt a program, change the source code, and then continue from where
>> you left off. With most other BASICs, that I'm aware of, you couldn't do
>> this because when your source code expanded, it would overwrite your
>> variables. I'm not sure how Atari implemented its BASIC, but code and data
>> were organized so that they would not interefere with one another.
>>

>It seems like this should work with BASICA and GW-BASIC, because they used one
>64k segment for the program and another 64k segment for the data. So expanding

No, they used one segment for both.

>the source could *not* destroy the data segment (at least if the segments were
>set up to be disjoint, and I think they always were.) In fact, when I took a
>course that included BASIC programming years ago, one of the selling points
>for BASIC was that you could stop the running program, change values of
>variables, and then continue the program.

Change variable values, yes, but changing the program is
something else.

Simon Slavin

unread,
Jan 2, 1998, 3:00:00 AM1/2/98
to

In article <34a99b41...@news.vip.net>,
ge...@vip.net (Gene Wirchenko) wrote:

> That was your error in using FP. As .1 can't be represented
> exactly internally, you have round-off errors. It would have been
> better to code as
> for ib=-10 to 10
> i=ib/10

It's one thing to get a slightly non-zero value in the loop but
to still have the loop take 21 steps. It's quite another for
the original command (FOR I = -.1 TO .1 STEP .01) to have only
20 steps, which is what Rick implied was happening.

Simon.
--
Simon Slavin -- Computer Contractor. | Excessive quoting from Shakespeare:
http://www.hearsay.demon.co.uk | gag me with a folio.
Check email address for spam-guard. | -- scl...@ernie.bgsu.edu (Susan Clerc)
Junk email not welcome at this site. | I receive about 2.5 junk emails a day.

J. Chris Hausler

unread,
Jan 3, 1998, 3:00:00 AM1/3/98
to

William Hamblen <William...@nashville.com> writes:

>>across was Robert Uiterwyk's 4K 6800 Basic which Interface Age
>>Magazine included in their May 1977 issue as their first "Floppy ROM".
>>The record manufacturer was Eva-Tone Soundsheets of Deerfield, Ill.
>>which normally used their flexible record technology to produce
>>short "music samplers". They were not the instigators of the Floppy
>>ROM however, it was the magazine which just used Eva-Tone's technology.
>>Chris
>
>I'm not surprised you missed it, because it wasn't out long. Format
>was KC Standard Phillips Compact Cassette.

The original post implied that it was released as a record
(one of those black disks with groves cut in them :-) There
were quite a few programs released as audio cassettes. For the
6800 world, most of these used the KC standard. I have a number
of different basics in this form, including multi-user basics.
The one I mentioned above was the only one I've ever seen released
as a "phonograph record".

Michael Kircher

unread,
Jan 3, 1998, 3:00:00 AM1/3/98
to

ge...@vip.net (Gene Wirchenko) writes:

> Microsoft BASIC version 4.
> ^^^^^^^^^
>
> Commodore had their own version numbers for their BASIC. 2 and 4
> of theirs are the ones I know about. Commodore BASIC 2 was
> cassette-based and 4 was disk-based.

BASIC 1.x was released with the PET.

BASIC 2.0 was built into VIC 20 and C 64 series.

BASIC 4.0 was an enhanced version, that featured easier access to
disc drives. It was released with the 600 and 700 series.

BASIC 3.5 added graphics commands, released with the C 16, C 116, +4
series. It really should have been called Ver. 4.5.

BASIC 7.0 was released with the C 128.

They were all ROM-based.

Greetings,

Michael

Gene Wirchenko

unread,
Jan 3, 1998, 3:00:00 AM1/3/98
to

Michael Kircher <kir...@jupiter.ph-cip.uni-koeln.de> wrote:

>ge...@vip.net (Gene Wirchenko) writes:
>
>> Microsoft BASIC version 4.
>> ^^^^^^^^^
>>
>> Commodore had their own version numbers for their BASIC. 2 and 4
>> of theirs are the ones I know about. Commodore BASIC 2 was
>> cassette-based and 4 was disk-based.

"cassette-based" and "disk-based" refer to their emphasis.

>BASIC 1.x was released with the PET.
>
>BASIC 2.0 was built into VIC 20 and C 64 series.

It was around before then. 4 was around before then, too.

>BASIC 4.0 was an enhanced version, that featured easier access to
>disc drives. It was released with the 600 and 700 series.
>
>BASIC 3.5 added graphics commands, released with the C 16, C 116, +4
>series. It really should have been called Ver. 4.5.
>
>BASIC 7.0 was released with the C 128.
>
>They were all ROM-based.

They were all STORED in ROM.

Chris Hedley

unread,
Jan 5, 1998, 3:00:00 AM1/5/98
to

In article <683lm1$i6m$1...@sue.cc.uregina.ca>,

ba...@borealis.cs.uregina.ca (John Bayko) writes:
> Microsoft Basics didn't have graphics commands before the TRS-80
> Color Computer - the GW-BASIC graphics commands were taken pretty much
> directly from Color Basic. I believe pretty much all other Color Basic
> statements showed up in GW-BASIC, except very specific ones dealing
> with the CoCo's graphics hardware.

Talking of the version of BASIC used on the Tandy Colo(u)r, the Dragon 32/64
also used the same version (we'll not get into the debate as to whether or
not it was a copy of the Tandy, it's been overdone and I've not yet seen
anyone agree on it!) but, in the case of the latter, apparently the disc-
based system offered an entirely different version of BASIC. Anybody know
anything about it? I remember reading some vague articles back when the
machine was in vogue (must be about 16 or 17 years ago now) but never had
a chance to try it out owing to the exhorbitant price of the disc hardware,
which was in the region of 3 times the price of the main system unit IIRC!
This add-on opened up a number of avenues leading to various different OS'
being available, again IIRC things like Flex and OS/9, as well as a
proprietary OS, all with their own BASICs and other interesting stuff.
Anybody remember anything about them? Anybody out there actually USED them?
Perhaps I should take another look at the emulator, to see if there's been
updates so that it'll handle the disc system. Whether the copyrights of
any of the software I've mentioned have been rescinded to allow general
distribution is anyone's guess, though.

I also seem to remember talk of a Dragon 128, which appeared after the
rights to the company name had been sold at least half a dozen times, but
other than comments about the thing's existance, I know very little about
it or any BASIC it might have supported.

Chris.

Chris Hedley

unread,
Jan 5, 1998, 3:00:00 AM1/5/98
to

In article <34A7F438...@plano.net>,

Charles Richmond <rich...@plano.net> writes:
> course that included BASIC programming years ago, one of the selling points
> for BASIC was that you could stop the running program, change values of
> variables, and then continue the program.

Ah yes, I remember doing that to cheat at some games written in BASIC in
the early '80s. :)

Chris.

George Gray

unread,
Jan 5, 1998, 3:00:00 AM1/5/98
to

Michael Kircher wrote in message ...
>> Commodore had their own version numbers for their BASIC. ...


>BASIC 1.x was released with the PET.

.
.


.
>BASIC 7.0 was released with the C 128.
>
>They were all ROM-based.

They were STILL developed by Microsoft.

George Gray

unread,
Jan 5, 1998, 3:00:00 AM1/5/98
to

>>I don't know what 'standards' people are talking about, but AppleSoft has
The 'standards' we are referring to are a set of keywords that Microsoft
settled on instead of having to support different keyword sets for the
various versions of MS Basic at the time. An example of this would be the
PSET, PRESET, LINE and PLAY keywords. All except for PLAY (there were more)
handled graphics while PLAY handled sound. You could, with little or no
change, use the same source on different machines. For example, I wrote a
little shoot-em-game in TRS-80 Extended Color Basic and then implemented the
game on an early IBM XT clone with GW-BASIC. The source ran with only a
minor change to handle a difference in screen size. I believe the keyword
set was part of an international standard (like ANSI) that appeared in the
early '80s. I forget the name. Microsoft also released subsets that were
designed for less capable machines like the Tandy MC-10, the Mattell
Aquarious and some little computer that was made by Sony. (The Aquarious
was interesting in that it had a CP/M ROM cartridge, but no disk drives. I
think Mattell threw in the towel before the disks were released.) The
Coleco ADAM also used Microsoft Basic, but it was Applesoft compatible so it
did not include the 'standard' keyword set but used the 'HPLOT', 'HLIN' and
so on. (it had that unreliable and funky tape thingy too!)

That's my little history lesson for today...

Chris Hedley

unread,
Jan 5, 1998, 3:00:00 AM1/5/98
to

In article <34a56...@comnet.co.nz>,
gmi...@inca.co.nz (Gaven Miller) writes:
><topic-drift>
>
> What did the "GW" in "GW Basic" stand for?
>
></topic-drift>

This has already cropped up several times, but just in case you haven't
already spotted it, it reputedly stands for "Gee Whizz." That factlet
alone would be enough to stop me using it.

Chris.

Richard Drushel

unread,
Jan 6, 1998, 3:00:00 AM1/6/98
to

George Gray (Georg...@AOL.COM) spake unto the ether::

: The


: Coleco ADAM also used Microsoft Basic, but it was Applesoft compatible so it
: did not include the 'standard' keyword set but used the 'HPLOT', 'HLIN' and
: so on. (it had that unreliable and funky tape thingy too!)

No, the ADAM did *not* use Microsoft BASIC; Coleco SmartBASIC was
an Applesoft clone through and through. (It even pretended to implement
the FP and INT commands to switch between floating-point and integer
versions; SmartBASIC just changed the prompts to ] and > and did everything
in floating-point.)

The story of Coleco SmartBASIC is an interesting one. I have
interviewed some of the authors and have been planning (for almost a year
now...sigh) to write an article for my This Week With My Coleco ADAM series.

Personally, I wish SmartBASIC had used Microsoft BASIC file I/O
syntax instead of the dreadful PRINT CHR$(4) escape sequence business--
because the SmartBASIC programmers got it *wrong* and you couldn't have
more than one file open at once without crashing the system. (The EOS
operating system calls could handle it fine.) This bug had major
implications for ADAM software design, because it encouraged people to
write file I/O in machine code which was POKEd and CALLed (or else do raw
block I/O and bypass the filesystem entirely). Upgrading EOS or SmartBASIC
while maintaining backward compatibility with such software is an almost
impossible task.

: That's my little history lesson for today...

And mine :-)

*Rich*

--
Richard F. Drushel, Ph.D. | "Aplysia californica" is your taxonomic
Department of Biology, Slug Division | nomenclature. / A slug, by any other
Case Western Reserve University | name, is still a slug by nature.
Cleveland, Ohio 44106-7080 U.S.A. | -- apologies to Data, "Ode to Spot"

Dr. Peter Kittel

unread,
Jan 6, 1998, 3:00:00 AM1/6/98
to

In article <v9wbtxt...@jupiter.ph-cip.Uni-Koeln.DE> Michael Kircher <kir...@jupiter.ph-cip.uni-koeln.de> writes:
>ge...@vip.net (Gene Wirchenko) writes:
>
>> Microsoft BASIC version 4.
>> ^^^^^^^^^
>>
>> Commodore had their own version numbers for their BASIC. 2 and 4
>> of theirs are the ones I know about. Commodore BASIC 2 was
>> cassette-based and 4 was disk-based.
>
>BASIC 1.x was released with the PET.

There was a whole family of PETs. The 2001 and (CBM) 30xx came
with BASIC 1.x.

>BASIC 2.0 was built into VIC 20 and C 64 series.

And into the CBM 40xx and 8xxx.

>BASIC 4.0 was an enhanced version, that featured easier access to
>disc drives. It was released with the 600 and 700 series.
>
>BASIC 3.5 added graphics commands, released with the C 16, C 116, +4
>series. It really should have been called Ver. 4.5.
>

>BASIC 7.0 was released with the C 128.
>
>They were all ROM-based.

Correct.

--
Best Regards, Dr. Peter Kittel // http://www.pios.de of PIOS
Private Site in Frankfurt, Germany \X/ office: peterk @ pios.de
Still big newsfeed problems causing long delays.


Dr. Peter Kittel

unread,
Jan 6, 1998, 3:00:00 AM1/6/98
to

In article <34A35754...@plano.net> Charles Richmond <rich...@plano.net> writes:
>
>Also I think that I have *some* insight into the string area garbage
>collection (GC). (Someone *please* correct me if I go off into the weeds.)

I'll try to add a few cents. Let me first say that my experiences
below with MS Basics stem from the Commodore PET 2001 to CBM 8032
computers and their Basic versions.

>A string variable in Microsoft BASIC consisted of a hunk of memory containing
>a length for the string and a pointer to where the characters were stored in
>the string area.

Or to put it differently: In the memory area trailing the program text,
you found entries for real and integer variables together with their
contents, but for string variables you only found pointers (plus one
byte with the string length, so it was 255 chars maximum), while the
string contents was placed in the top of the free memory area, growing
down towards the program text and variable space.

> Strings in the string area were atomic--i.e., they were
>*never* changed. If you built a new string an assigned it to a variable, the
>new string was created in free memory from the string area. The old string of
>characters in the string area would be left in tact.

Yes.

>Only *one* copy of a string was stored in the string area. If two string
>variables had the exact same characters, their pointers would point to the
>*same* string in the string area.

Hmm, I'm not sure about this. What can be also mentioned is, if
you have some assignment in the program like A$="Text", the pointer
to the string data will point to this place in the program text, so
that this string does not appear in the string variable space.

> Eventually some of the strings of characters
>in the string area would have *no* string variables pointing to them. During
>garbage collection, these strings of characters were removed, the remaining
>strings were compacted to leave the free memory as one block, and *all* the
>pointers in the string variables adjusted to point to the new location of
>their characters in the string area. GC would be caused by the inablility to
>allocated enough memory from the string area to support the current
>operation--or by being forced by a call to FRE("").

Yes. Ok, on these Basic versions, it was FRE(0).

>I assume that the reason the older BASIC's would "sit and think" during GC and
>the newer BASIC's do *not* "sit and think"--must be that the newer BASIC's do
>incremental garbage collection.

No, they do it just a bit more intelligently, but also need some more
memory for this. I mentioned some details above to help in explanation:

To do GC in an old Basic (BASIC 1.x like found in PET 2001 and CBM 30xx),
the interpreter first had to sort all string pointers in the lower variable
area after their address value, so that it then could walk this list of
pointers down from top of memory to the end of string space. Looking
at the stored size of the string, it could find out which memory area
was unused and overwrite that. What took so much time was the sorting.
And as there was no space to store the sorted list of pointers (remember
GC had to take place in an out of memory condition), this was done on
the fly, scanning the whole variables list the square number of times
as strings were found in that list.

Newer Basic versions (from BASIC 2.0 up on those Commodore machines)
stored not only the string contents in that upper area, but also a
back pointer down into the variable list, where the according descriptor
was stored, plus again its size. When a string became invalid, that back
pointer was zeroed out and thus easily recognizable. So the GC only had
to do a single loop (not a squared, nested one) through the upper string
area, find invalid strings and move any string contents below that up,
of course while updating all those forward and backward pointers.

I did a rather ambitious text editor on the PET back then, which stored
the text as an array of line strings. In the old Basic versions, this
led to GC times of several minutes, under the newer ones, the cursor
just stumbled a bit for a blink of an eye. Yeah, the wonders of 8-bit,
1 MHz computing, where the Basic interpreter *was* the OS :-).

Bryce Utting

unread,
Jan 7, 1998, 3:00:00 AM1/7/98
to

Clinton Pierce (cpie...@cp500.fsic.ford.com) wrote:
>Doesn't this blow up after 10 repetitions?
>
> i=0/10
>
>Kinda looks like a divide by Zero to me...unless those old micros
>found a way to do that. :-)

IDNTIMWYTIM.


butting (divides by ten up to seven times a day)

--
Bryce Utting http://www.cs.waikato.ac.nz/~butting

the cross before me, the world behind me
no turning back


Alan Krueger

unread,
Jan 7, 1998, 3:00:00 AM1/7/98
to

In article <68u6i1$7b...@eccws1.dearborn.ford.com>,
Clinton Pierce <cpie...@cp500.fsic.ford.com> wrote:
> Gene Wirchenko <ge...@vip.net> wrote:
[...]

> > for ib=-10 to 10
> > i=ib/10
[...]

>
> Doesn't this blow up after 10 repetitions?
>
> i=0/10
>
> Kinda looks like a divide by Zero to me...unless those old micros
> found a way to do that. :-)

Look again. It's not division BY zero, but OF zero.

--
W. Alan Krueger | http://www.cs.umn.edu/~krueger/home.cgi
Graduate Student |------ Free Speech Wins! http://www.ciec.org/ ------
CSci Department | Support the anti-spam bill - http://www.cauce.org
U of Minnesota | Join the Coalition Against Unsolicited Commercial Email

Clinton Pierce

unread,
Jan 7, 1998, 3:00:00 AM1/7/98
to Alan Krueger

In article <68ulbp$a...@epx.cis.umn.edu>,

kru...@cs.umn.edu (Alan Krueger) writes:
>In article <68u6i1$7b...@eccws1.dearborn.ford.com>,
>Clinton Pierce <cpie...@cp500.fsic.ford.com> wrote:
>> Gene Wirchenko <ge...@vip.net> wrote:
>[...]
>> > for ib=-10 to 10
>> > i=ib/10
>[...]
>>
>> Doesn't this blow up after 10 repetitions?
>>
>> i=0/10
>>
>> Kinda looks like a divide by Zero to me...unless those old micros
>> found a way to do that. :-)
>
>Look again. It's not division BY zero, but OF zero.
>

Didja ever have one of those days? (It made an effective troll, though.)


Dyslexics of the world, untie!

Rod Pinna

unread,
Jan 8, 1998, 3:00:00 AM1/8/98
to

cbh@REMOVE_THIS.teabag.demon.co.uk (Chris Hedley) wrote:

>being available, again IIRC things like Flex and OS/9, as well as a
>proprietary OS, all with their own BASICs and other interesting stuff.
>Anybody remember anything about them? Anybody out there actually USED them?

I used OS-9, which was a real time commercial quality OS released by
Mircoware. It still lives today (or did recently at least) as OS-9000
for 68k CPUs. It has also been ported to Intel boxes. One of those
operating systems used for controller applications.

One thing that came with OS/9 was Basic-09. This allowed you to to
have functions and procedures, just like Pascal, and did away with the
line numbers.

And there was also Multi-Vue, which was a windowing add-on to OS-9
Level 2, which allowed you to use unlimited memory. The Tandy hardware
supported up to 512k (CoCo 3) but later people have got it up to 4M I
believe.

The proprietary OS was, I think, StarDos. Came with a hardware
expansion thing as well as software.

>Perhaps I should take another look at the emulator, to see if there's been
>updates so that it'll handle the disc system. Whether the copyrights of
>any of the software I've mentioned have been rescinded to allow general
>distribution is anyone's guess, though.

I doubt OS-9 has.


Rod Pinna
(rpi...@XcivilX.uwa.edu.au Remove the X for email)


Robert Billing

unread,
Jan 8, 1998, 3:00:00 AM1/8/98
to

In article <68u6i1$7b...@eccws1.dearborn.ford.com>
cpie...@cp500.fsic.ford.com "Clinton Pierce" writes:

> i=0/10
>
> Kinda looks like a divide by Zero to me...unless those old micros
> found a way to do that. :-)

Well, it looked more like a divide by ten to me, but I could be
wrong...

--
I am Robert Billing, Christian, inventor, traveller, cook and animal
lover, I live near 0:46W 51:22N. http://www.tnglwood.demon.co.uk/
"Bother," said Pooh, "Eeyore, ready two photon torpedoes and lock
phasers on the Heffalump, Piglet, meet me in transporter room three"

It is loading more messages.
0 new messages