EEVblog Electronics Community Forum

Products => Computers => Vintage Computing => Topic started by: BrianHG on February 06, 2023, 03:32:16 am

Title: The birth of BASIC.
Post by: BrianHG on February 06, 2023, 03:32:16 am
Enjoy this piece of computing history...

https://www.youtube.com/watch?v=WYPNjSoDrqw (https://www.youtube.com/watch?v=WYPNjSoDrqw)
Title: Re: The birth of BASIC.
Post by: pcprogrammer on February 06, 2023, 08:14:52 am
Very interesting story. Being just a toddler in those years it passed by without notice. Always thought it was Gates who came up with it, but I guess it was him who brought it to the bigger public.

Dartmouth, not only BASIC but also the birth place of time sharing on a computer. Something I thought to be always there from the start on these big computing systems. Naive one could say, but it was not something addressed in history class  :)

But it does bring back memories of playing with some big Philips system in a schools computer club, with the teletypes rattling away. Noisy as hell, and now we prefer to have fan-less systems because fans are so loud  :-DD

My first BASIC experience was on a DAI (https://en.wikipedia.org/wiki/DAI_Personal_Computer (https://en.wikipedia.org/wiki/DAI_Personal_Computer)) at the same school, and next on a TRS-80 of my own.
Title: Re: The birth of BASIC.
Post by: DiTBho on February 06, 2023, 09:54:30 am
Yeah, Basic, I started programming on a weird Japanese Sharp home computer with Microsoft Basic in its rom.
I was a kid and I was excited I could play with "(soft) floating point", it was a great feature in the late 80s.

Big irons had it in hardware for extra money
        (arch, math-chip)=
                 {
                    {x86, { i8087, i80287, i80387, ... }},
                    {68k, { 68681, 68682, ... }},
                    {mips, { R2010, R3010, ... }},
                    ..
                 }
while small home computers and little MPUs like 8051(1) ... usually didn't have it, so it was implemented in software, and Microsoft was one of the best company providing it.

((1) e.g. Intel chip 8051, sold by Intel with Microsoft Basic on Mask-ROM with floating point software features)

GW-Basic was ... simple, great, but kind of *spaghetti-code prone*. I remember my habit to buy monthly magazines, because at that time they included "lists of code", so my habit to grab lines here and there to make my own programs. Kind of Open Source ancestor? Dunno, but it was my personal GitHub.

Then I migrated from GW-Basic on a home computer to Quick-Basic on a personal computer (386), which was good because the "upgrade" added a real operating system (with floppies instead of tapes) and procedures instead of "spaghetti-code go-to and go-sub".

Next move, from Quick-Basic to Pascal, and then from Pascal to C89 ...

Holy Cow, it's been a far long journey  :o :o :o
Title: Re: The birth of BASIC.
Post by: DiTBho on February 06, 2023, 10:01:44 am
If you buy a CASIO graphing calculator, even a modern one, you can still experience a GW-Basic-like experience with CASIO-basic  :o :o :o
Title: Re: The birth of BASIC.
Post by: HighVoltage on February 06, 2023, 10:14:07 am
I started BASIC on a Sharp PC-1600
This one had a Sharp mini floppy drive and an A4 plotter

With this setup, one was the king in the university in the mid 80s.

The PC-1600 also had a real serial port and I could send programs to a real PC (286) and also use the RS232 to control instruments.

I still have the PC-1600 and a few smaller models.
Title: Re: The birth of BASIC.
Post by: iMo on February 06, 2023, 10:25:51 am
I still have my PC-1251 in the drawer (~1983). Also a bigger sram chip I never soldered into it.. :)
Title: Re: The birth of BASIC.
Post by: pcprogrammer on February 06, 2023, 10:50:09 am
If you buy a CASIO graphing calculator, even a modern one, you can still experience a GW-Basic-like experience with CASIO-basic  :o :o :o

I had a Casio PB-100 for a while. Can't really remember if I got it before or after the DAI experience  :palm:

But my road in programming was BASIC, 8080 assembler, Z80 assembler, 6502 assembler, 8051 assembler, FORTH (8051), C/C++, ASP (HTML), basicscript, javascript, SQL, PHP, some python, verilog.

Now basically only use C and verilog, because I can get what I want to do done with just these.

 
Title: Re: The birth of BASIC.
Post by: DiTBho on February 06, 2023, 12:51:00 pm
I had a Casio PB-100 for a while. Can't really remember if I got it before or after the DAI experience  :palm:

I daily use my fx-9860GIII(1)(2018), but also an old fx-7500G (shell, 1989).
CASIO-Basic (https://en.wikipedia.org/wiki/Casio_BASIC) is great and well integrated on these calculators, and it's Ta simple, tokenized one, programming language.

"Tokenized" means that symbols and characters are used instead of words to symbolize commands. This minimizes the memory used in programs, used in every graphing calculators from Casio.

The commands featured are:
: This colon separates commands.
? Input Command. The calculator prompts for a value.
"prompt message"? Input Command with a prompt message.
◢ Output Command. The calculator stops and shows output. Continue the program by pressing EXE.
Goto n The Goto command, n is any number 0-9.
Lbl n The Label command, n is any number 0-9.
⇒ The Jump command. This is the basic If-Then-Else structure.
Isz and Dsz Increase and decrease a memory, by 1, respectively. This is akin to the For-Next loops.

Syntax:
test statement ⇒ do if test is true : skip to here if test is false
Isz var : do if var ≠ 0 : skip to here if var=0

... CASIO-Basic uses special symbols as keywords, you cannot map to ASCII chars (unicode, perhaps), so is there any Windows software that can convert a source file into a CASIO BASIC program and vice versa?

Sure! The FA123-FA124 kit! (serial cable + program) :D :D :D

(1) in the United States, the "fx-9860GIII" is named "fx-9750GIII", but it's the same unit.
Title: Re: The birth of BASIC.
Post by: cfbsoftware on February 06, 2023, 10:42:51 pm
I understand that BASIC can still used today for programming microcontrollers. A couple of systems I have heard of are BASICTools for ARM from Coridium:

https://www.coridium.us/coridium/shop/software/s01-basic (https://www.coridium.us/coridium/shop/software/s01-basic)

and as popularised in Practical Electronics and Silicon Chip magazines, MMBASIC on PIC32 microcontrollers :

https://micromite.org/micromites/ (https://micromite.org/micromites/)

Title: Re: The birth of BASIC.
Post by: themadhippy on February 06, 2023, 11:04:40 pm
Quote
and as popularised in Practical Electronics and Silicon Chip magazines, MMBASIC on PIC32 microcontrollers :
Also ported to the pi pico https://geoffg.net/picomite.html
Title: Re: The birth of BASIC.
Post by: rfclown on February 07, 2023, 01:39:28 am
Enjoy this piece of computing history...

I enjoyed that; thank you. Born in '61, my first program was in FORTRAN. Then BASIC on a TRS-80. Then hand assembling Z80 and poking it into memory via BASIC. Then tiny PASCAL. Then getting a proper Z80 assembler. (then college with a weird mix: JCL,PL1,COBOL,BASICs,8085/6800/68000 assembler...) Then QuickBASIC. Then QuickC. Then PIC and AVR assembler. Then gcc. Today it's either LabVIEW, gcc or scripting (sh or bat).

The video makes me want to get involved with a university where things are really happening. But I guess today connections and collaboration can happen virtually. Still... I have great memories of graduate research work at school.
Title: Re: The birth of BASIC.
Post by: gbaddeley on February 07, 2023, 09:54:56 am
My first BASIC program was written on mark sense cards for a Data General Supernova in 1977. Switched to AppleSoft BASIC on Apple 2 in 1978. My first employer had Honeywell 6680 mainframes which ran GECOS 3, a direct descendant of one of the earliest Timesharing systems. It had a Dartmouth BASIC compiler. I was in a team that managed the OS so we had the compiler source code, maybe 50k lines of assembler. Fun days.
Title: Re: The birth of BASIC.
Post by: floobydust on February 07, 2023, 09:42:52 pm
I disliked the video, they call it a compiler but I know BASIC as being interpreted. The RS-232 terminals I'd guess are text input, but the initial punch cards I'm not clear what was on them or being run during a batch job.
When did it become interpreted?

I remember BASIC has run-time array bounds checking, unlike C. So sadly I find BASIC superior to C in that very critical aspect.
I did a PC app using VB because others told me you can run circles around the C++ coders, it would be much faster to code. Turned out to be true.
All you have to do is keep the OOP decomposition in your head and code in decent modules and the language is perfectly decent.
I did see computing scientists shittalk BASIC because it is missing academic structure, but that was never its premise.
I also remember it was expensive, a cash cow on cassette lol.

I blame Bill Gates for killing the language, GWBASIC (https://en.wikipedia.org/wiki/GW-BASIC) it should have always been part of an OS. 40 years later, May 2020 Microsoft released the source code for GW-BASIC 1.0
Hurrah for nothing Microsoft and making Visual Studio a cloud-based turd. Just terrible.
Title: Re: The birth of BASIC.
Post by: Phil_G on February 07, 2023, 11:25:32 pm
Mine was Palo Alto Tiny BASIC on a kit-built Nascom-1 in 1978.  Two 2708 eproms. It was a while before I could afford enough memory to run BASIC, that needed not only a memory board but also a Nascom buffer board and backplane - all very expensive but I saved, built and learned a lot.  I'm retired now but I owe my career to that Nascom-1, which is probably whats driving my interest in retro-computing now!  :)
Title: Re: The birth of BASIC.
Post by: BrianHG on February 08, 2023, 03:23:41 am
My first experience with BASIC was on an Atari 800 back in 1982.

Eventually within a year, I managed to customize the 4x joystick ports from inputs to outputs and use them to connect 2 different phone lines together in my house, both on different area codes, so that when one received a call, my software would open the second line and forward the phone call so that at the time, I could save long distance call costs within the city.

I also managed call messaging and a home made scanning attachment to my printer head using a photocell and light to scan pictures into the Atari 800 via the ADC built into each joystick input.  Though super slow, I did manage a 16 shade grey scans of photos which roasted the 2-bit 4 shade of grey from a B&W camera video captures at the time.
Title: Re: The birth of BASIC.
Post by: IanB on February 08, 2023, 05:22:28 am
My first programming reference when I was learning about computers in the 70's was the original BASIC manual by Kemeny and Kurtz:

https://www.amazon.com/BASIC-Programming-John-G-Kemeny/dp/0471468304 (https://www.amazon.com/BASIC-Programming-John-G-Kemeny/dp/0471468304)

That brings back some nostalgia.
Title: Re: The birth of BASIC.
Post by: Phil_G on February 08, 2023, 04:59:32 pm
Donald Alcock's "Illustrating BASIC" was a popular reference, all hand-written & spiral-bound, very easy to digest - it was serialised in one of the early magazines too.  I still have my original copy though its not been off its shelf in 40 years!

Title: Re: The birth of BASIC.
Post by: BrianHG on February 08, 2023, 06:21:51 pm
Donald Alcock's "Illustrating BASIC" was a popular reference, all hand-written & spiral-bound, very easy to digest - it was serialised in one of the early magazines too.  I still have my original copy though its not been off its shelf in 40 years!
HQ version:
(https://www.eevblog.com/forum/vintage-computing/the-birth-of-basic/?action=dlattach;attach=1712258)
Title: Re: The birth of BASIC.
Post by: themadhippy on February 08, 2023, 06:36:05 pm
from the above
"the last statement must be end,no other statement but the last may say end"

im sure  ive  seen plenty of basic programs were end was half way down the listing and the last statement was return
Title: Re: The birth of BASIC.
Post by: IanB on February 08, 2023, 06:41:16 pm
im sure  ive  seen plenty of basic programs were end was half way down the listing and the last statement was return

"Last" in space, or "last" in execution sequence? Nothing will execute past the end statement once it is reached.
Title: Re: The birth of BASIC.
Post by: BrianHG on February 08, 2023, 06:56:39 pm
I guess you can also use 'stop'.
Though, then entering 'continue' could create some weird problems depending on the program listing.

Also, in later years with some Basic compilers, the command 'stop' was not allowed.
Title: Re: The birth of BASIC.
Post by: SL4P on February 10, 2023, 06:05:52 am
My first BASIC was on a PDP-11 on paper tape.
It grew over the years through MS-BASIC, CB/86, Windows, then Visual Basic and so on.

It was a fun ride with some COBOL, FORTRAN-77, and eventually settled with ac/C++
Title: Re: The birth of BASIC.
Post by: IanB on February 10, 2023, 07:23:19 am
My first BASIC was on a PDP-11 on paper tape.

Ah, yes. I remember using (wasting?) a lot of paper tape to spell out messages using the pattern of holes as a dot matrix.
Title: Re: The birth of BASIC.
Post by: Bud on February 13, 2023, 05:47:02 am
Sorry but I barely could watch only a bit of it, the video was so boring  :-//
Title: Re: The birth of BASIC.
Post by: SiliconWizard on February 13, 2023, 08:01:57 pm
For the nostalgic, all this "LET" greatness has been revived in Rust. Nice stuff eh! ;D
Title: Re: The birth of BASIC.
Post by: IanB on February 13, 2023, 08:06:34 pm
For the nostalgic, all this "LET" greatness has been revived in Rust. Nice stuff eh! ;D
I suspect COBOL had it first?
Title: Re: The birth of BASIC.
Post by: JPortici on February 14, 2023, 06:14:10 am
I understand that BASIC can still used today for programming microcontrollers. A couple of systems I have heard of are BASICTools for ARM from Coridium:

https://www.coridium.us/coridium/shop/software/s01-basic (https://www.coridium.us/coridium/shop/software/s01-basic)

and as popularised in Practical Electronics and Silicon Chip magazines, MMBASIC on PIC32 microcontrollers :

https://micromite.org/micromites/ (https://micromite.org/micromites/)

you have mikrobasic from mikroe, that's how they taught me in school (one year ASM, the year after mikrobasic, the year after mikroc, then GCC based compilers on windows became easy to install)
enjoy
Title: Re: The birth of BASIC.
Post by: mfro on February 14, 2023, 08:18:59 am
Haha. BASIC.

Brought a whole generation into coding/computing that probably wouldn't even got close to it otherwise.

This whole generation needed to be retrained later to get rid of their bad habits because all they were able to produce was unmaintainable Spaghetti.
Title: Re: The birth of BASIC.
Post by: floobydust on February 14, 2023, 10:31:07 am
Haha. BASIC.

Brought a whole generation into coding/computing that probably wouldn't even got close to it otherwise.

This whole generation needed to be retrained later to get rid of their bad habits because all they were able to produce was unmaintainable Spaghetti.

That it generated "spaghetti"- is this really true or myth regurgitated?
You can write disorganized, sloppy code in any programming language. As if C++ saved us from that.

For younger generations learning to program, I honestly feel sorry for them having to struggle with antique rubbish such as C. There is a need for a simple, no unexpected side-effects programming language so people can have fun learning to program, instead of head banging, and just get the job done.

Computing science making decent programming languages, is very much a failure. The academics bicker and put their ego first. They don't write large programs for a living and are generally caught up in fights over use of the semicolon for example.
Niklaus Wirth (https://en.wikipedia.org/wiki/Niklaus_Wirth) was great, his talks and languages as well- but who maintains a language, who "owns" it and can make changes is important. Lately it's ANSI committees.
Title: Re: The birth of BASIC.
Post by: granzeier on February 14, 2023, 12:37:57 pm
Bad code can be written in any language, and good code is also language independent. Even back in high school (mid-1970s) I discovered structured coding made things easier. I have written many good, well organized, programs in various dialects of BASIC. In the early 1990s, I was a database application programmer. We received data from clients on 9-track tapes, and I wrote utilities to convert from that EBCDIC (and others) to ASCII for our PC based databases. This was all done in Borland's TurboBASIC. That was a great language. While still in high school, I wrote a simulator for the Bell Labs' CardIAC computer - in the Time Share BASIC (TSB) on our HP-2000 computer.

I have also taught programming to hundreds of students. BASIC is much simpler to teach to beginners than other languages like C. "Why do I need to put a semi-colon at the end of my line?" "What is this double-equal (==) thing - what do you mean that I can define a variable when I just want to know if two things are equal?" Then there is the "best friend" of criminal hackers - buffer overflow. What kind of stupidity allows users to input any amount of key strokes? BASIC sets up a specific number of characters for an input buffer and that's it (you can still program around that if you want/need to.) In C the programmer has to put extra effort into preventing buffer overflow - and human nature being what it is, we are naturally lazy and often skip protecting our systems from those kinds of security leaks.

BASIC (especially in modern dialects) is a great language, which is easy to learn. Don't even try to say that it isn't a real language, or that it can't be used for real applications. BASIC has been used to write all sorts of "real" applications. DEC's Business BASIC was used throughout the 1960s and 1970s to write all of their business applications. HP's TSB ran their HP-2000 series in thousands of business, laboratory and educational settings. In the later 1970s, and 1980s hobbyists used BASIC (even tiny BASIC) to write, and play, music; to control lights and motors and other hardware; to read lab instruments, and control/adjust experiments; to control lighting, sound and other effects on stage; to run robotics in labs and manufacturing, and thousands of other applications. A huge amount of that BASIC coding was maintained, and even without too much trouble. Take a look at many of the numerous electronics and computing magazines from that era, and you will see thousands of examples, many of them in BASIC. There were even language (BASIC and other) interpreters, and compilers, written in BASIC.

As far as using BASIC on microcontrollers, BASCOM-AVR is a great (extremely powerful) language for the AVR series of chips. You can even get a demo, which is limited to 4K of code space (plenty of room for smaller applications) for free. I wrote an introductory text book for microcontrollers which used BASCOM-AVR. I had many great comments about the book and the ATtiny2313 kit included with it.
Title: Re: The birth of BASIC.
Post by: Phil_G on February 14, 2023, 12:46:40 pm
In the mid 80s BT was transitioning into PCs from various earlier systems, mostly standalone CP/M boxes but also Hinets and even Tontos, running essential services through some very obscure applications.
One of my ongoing jobs was format conversion  to PC apps, and an awful lot of it. External companies charged the earth for this service and as I'd done quite a bit of it anyway I was given the job.
Most systems had a serial print output which could be captured as ascii text and processed.  At the time I used BASIC like you would use awk, extracting, re-ordering, field parsing, sorting, converting...
these programs were quickly put together and would be used just once and only by me, so appearance and tidiness was much less important than function & flow. What mattered was minimising downtime and getting a system across asap.
For all its shortcomings BASIC was the ideal tool for the job, totally flexible with a quick turnaround.  At this point, before I get mugged I should say that I'm an assembler programmer since '78. BASIC has a place, it is and has been useful and its not right to jump on the 'lets trash basic' bandwagon, it deserves better  :)
[/soapbox]   ;D
Cheers
Phil
Title: Re: The birth of BASIC.
Post by: dave j on February 14, 2023, 02:33:09 pm
This whole generation needed to be retrained later to get rid of their bad habits because all they were able to produce was unmaintainable Spaghetti.

Not in the UK. We had BBC BASIC (https://en.wikipedia.org/wiki/BBC_BASIC) with its REPEAT/UNTIL loops and procedures/functions with local variables to introduce us to structured programming. Even those with lesser home computers still had exposure to it as it was used in almost all schools for teaching about computers.
Title: Re: The birth of BASIC.
Post by: BrianHG on February 14, 2023, 06:44:58 pm
Haha. BASIC.

Brought a whole generation into coding/computing that probably wouldn't even got close to it otherwise.

This whole generation needed to be retrained later to get rid of their bad habits because all they were able to produce was unmaintainable Spaghetti.
Yes, in the beginning as I was learning, I did generate spaghetti code.  However, this was because I was self taught and fooling around with other example programs and games.  The spaghetti nature quickly ends once you tackle a large project, say something with more than 10-20 functions, then you have no choice but to improve your structural skills.  Otherwise you will never get much further than that.

I don't think this was the worst approach to programming as it was the only way I could have begun and at the time, the line number system of the small 48k Atari computer instead of a full authentic text editor style entry did force a few quick fixes.  However, you also need to remember at the time that Atari basic was a 1-2k rom and the smaller computer only had 4kb ram.  Anything more capable than line numbering system would have required a computer worth thousands of dollars with thousands of dollars worth of tools and third party software to properly implement.

Once I got my Amiga 1000 where we had a few quality basic compilers where the line number system was ditched for a full ascii text editor, my capabilities grew with the new tools and the 2.5 megabytes available to me.
Title: Re: The birth of BASIC.
Post by: Phil_G on February 14, 2023, 08:58:07 pm
Not in the UK. We had BBC BASIC (https://en.wikipedia.org/wiki/BBC_BASIC) with its REPEAT/UNTIL loops
Even National's NIBL basic from 1976 had DO UNTIL  :-+

(big SC/MP fan...)
Title: Re: The birth of BASIC.
Post by: jonpaul on February 15, 2023, 02:09:17 am
1973..1975 MITS Altair 8800  first kit computer 8 bit Intel  8080 16k, 32k RAM

https://americanhistory.si.edu/collections/search/object/nmah_334396

OS from Bill Gates Micro Soft Basic!
Was in Albuquerque, met Ed Roberts, founder.

A walk down memory lane...

Jon

Title: Re: The birth of BASIC.
Post by: Phil_G on March 12, 2023, 04:56:51 pm
Theres a Donald Alcock on sale in the UK:
https://www.ebay.co.uk/itm/364146020882 (https://www.ebay.co.uk/itm/364146020882)
Title: Re: The birth of BASIC.
Post by: schmitt trigger on March 12, 2023, 07:52:11 pm
This book was gifted to me circa 1980.

The previous owner didn’t have much use for it, and used it as a support to drill PCBs.
What a sin to destroy a book!
Title: Re: The birth of BASIC.
Post by: schmitt trigger on March 12, 2023, 08:01:04 pm
We all have written some sort of spaghetti code during our learning process.

To claim one never did, is similar to saying that one never fell from a bicycle when one was learning to ride it.
Title: Re: The birth of BASIC.
Post by: pcprogrammer on March 12, 2023, 08:13:01 pm
I knew the book looked familiar  :-DD

Check what I found on my bookshelf, along with several other books about the TRS-80 and basic.
Title: Re: The birth of BASIC.
Post by: granzeier on March 14, 2023, 02:19:20 am
A nice Time article on the origins, and effects of, BASIC.

https://time.com/69316/basic/ (https://time.com/69316/basic/)