• Please review our updated Terms and Rules here

First computer vrs first REAL computers/Turbo Pascal

tezza

Veteran Member
Joined
Oct 1, 2007
Messages
4,731
Location
New Zealand
I listened to Sunday's podcast yesterday. LOL, great topic first computer vrs first real computer.

I was lucky in mine was one in the same. My 1981 Dick Smith System 80 was a TRS-80 model 1 clone, had a usable keyboard and was expandable enough. After I got to know my way around the machine I upgraded to 48k, purchased a Stringy Floppy drive for it plus a C-ITOH printer like the one here. It used to shake the house! This allowed me to at least write and store documents and keep accounts. Next it was disk capability, a homebrew RS-232 and modem (300 baud of course). Fortunately the System 80 was less prone to the card-edge/spontaneous reboot problems of the early TRS-80 Model 1s, and with some pretty sophisticated DOS's by then appearing for "the '80s" it made a pretty capable "serious" 8-bit computer. I wrote my Masterate thesis on it.

However, by then (1985) I had spent 3x the amount of money I had outlaid on the basic unit on the peripherals! It worked out well though as I earned more than the value of the computer and accessories analysing statistics for a private agricultural consultant I knew. I was a lot cheaper than the mainframe services he had used in the past.

The System 80 wasn't really retired until around 1987 when I got my first XT clone athough by then I was using an NEC PC-8201a for notetaking.

And Turbo Pascal Earl. I remember that well. I wrote one of my teaching programs in Turbo Pascal around 1989 on a 286. It was a kind of Adventure-type authoring system but tailored to present field diagnostic scenarios to students training to become agricultural consultants. It was inspired by Scott Adams games but anyway I digress...The point is it taught me Pascal and yes, I agree...great data structures, list linking etc. Sadly it was the last bit of serious programming I did. I did enjoy it.

Tez
 
I agree, the idea of a first vs REAL computer really made sense to me. The mention of Turbo Pascal, brought it home to me that my view of my first REAL computer is very much governed by my ability to program it effectively.

The first computer I remember playing with was my father's ZX81 in about 1982. I distinctly remember typing in a game in Basic to bomb the skyscrapers. My parents recognized my interest and bought me a 16K Mattel Aquarius in 1983. It was great to have my own computer and I enjoyed learning Basic and printing on my little thermal printer, similar to the ZX81 printer that Carrington mentioned, where the print did indeed rapidly fade. I was then on to a Commodore 128. Wow, this machine had loads of memory, a floppy disk drive and a more expressive Basic. You could do so much with it that I felt excited on reading the manual, but a little intimidated (I was only 9 or 10 in '87/'88).

After a while of programming in Basic, I decided that I wanted to do some proper programming. I had heard much about 'C' from my Auntie, so I bought Super C (C128) and this is where the distinction between first and REAL computer is really pivotal. This was an ok compiler, but was just non-standard enough, for this 11 year old, to cause real confusion when working with the K&R book. Pointers are often a stumbling block for new C programmers, and like many others I struggled to get the finer nuances of their use. This was further complicated by the compiler's non-standard use of pointers such as "File fp;" instead of "File *fp;" to define file pointers. I grappled with this for a few years with varying amounts of success. All together though this did leave me a bit frustrated.

After a brief period with a Sperry 286, I finally got the computer I consider my first REAL computer: a '386 built by my father for Christmas 1993. I'm sure of the date as I still have the backups containing this README at C:\

Code:
MERRY CHRISTMAS LAWRENCE JON        1993

I HAVE FORMATTED THIS DRIVE AS A SINGLE LOGICAL DRIVE USING THE ENTIRE DISK

LOVE MUM AND DAD

I could now do REAL programming. I had Turbo C, which was a good standard C compiler with great documentation, libraries, tools and compilation times. Now I could really express myself and get things done. I absolutely loved this period of my life. I was creating little apps and utilities, sharing code with my friends and having a great time.

Looking back, If I had chosen a more suitable language for me and the C128, such as assembler, Pascal, maybe even forth, my experience may have been different. I may well have considered the C128 as my first REAL computer. As it turned out though, I have stuck with C to this day and love using it for the right tasks.

So, I guess for all of us our view of this will come down to what we wanted to be able to do with our computer. Was it for games, applications, tinkering, or in my case programming. 1993 was a great year for me and I have never looked back.
 
Last edited:
Great question!

The first physical computer I had to use was a Research Machines 380Z (http://en.wikipedia.org/wiki/Research_Machines_380Z) at school in 1980. These things seemed to have leeched their way into a huge number of high schools in the UK (I keep running into people that remember them fondly), but have zero presence outside the UK. And as at most schools, there was just the one unit, which had to be timeshared amongst the entire computer studies class. There was quite a black market trading "time at the console" in return for lunch tickets, sweets, do-your-homework-for-you and so on!

The really neat feature of the RM380Z, for it's time, was the bitmapped/vector graphics capability - once trusted as "senior" class members, we got plenty of console-time playing Lunar Lander in glorious high-res monochrome graphics (oops, I mean plenty of time completing educational programming project work). The school also had a CBM PET of course, but we didn't pay it much attention. Around that time, I did also muck about with a friends personal ZX80 (yeah, he actually *owned* a computer - WOW).

My emotionally first computer was another I didn't own - at my first job working for a software house in 1983, we used British-designed and manufacturered IMP-68 computers with dumb ASCII terminals. The IMP-68 was an odd beast: an S100 bus 8-slot backplane with a custom 8MHz 68K CPU board, custom memory boards, a Cromemco (remember them?) C3 floppy controller, a dAVID Konan Junior MFM disk controller, and a 6Mb, 12Mb or trully massive 20Mb hard-disk drive - running a UNIX V6 clone (Idris) that didn't require memory-translation hardware (unlike AT&T UNIX). Idris could take advantage of an MMU but it was optional. The IMP-68s could also run a ported AT&T UNIX v7, thanks to work done by Uniplus.

More wierdness, the custom MMU boards that slotted into the 4MHz backplane were connected to the CPU board by a dedicated 8MHz ribbon-cable: a "local bus" some 10 years before the PC world went "local bus" crazy.

Mind you, there were risks - the internal unshielded power-supply unit included a *house-brick-size* pair of eletrolytic capacitors. Considering that tiny 0.5" capacitors can be decidedly harmful to humans, these suckers could have turned you into a humanburger if you weren't *very* careful with your fingers and screwdriver! They even *looked* threatening.

Eventually, when the company had no further use for the IMP-68s, a colleague and I took ownership of the two (mostly) surviving units, managed to find another unused one in London. I flew across the water to London to salvage components from it, and carried them back in my luggage - including a 20Mb 5.25-inch full-height disk drive which airport security took an immediate dislike to - a hermetically sealed large metal box with elecronic components on the base - they thought it was a bomb! After a considerable amount of time haggling, and eventually borrowing a mains-to-molex power cable from another passenger, I managed to demonstrate it flashing it's LEDs to the security personnel, at which point they lost interest in it - either their bomb-identification procedures weren't too clever, or I had bored them into submission :). Any way, by this time the airport gate for my flight home had closed, ouch! Fortunately, I managed to persuade one of the airline personnel who just happened to be wandering past to let me onto the flight, but I had to travel out to the plane on the last of the baggage cars, sitting on top of my suitcase full of computer parts with the wind blowing in my hair.

End of the story - we managed to get two units into fully-working condition using the components I had brought back.

PostScript - around 1990, we were asked by the British Museum if we could donate one to their collection, as the very first British-designed and British-manufactured UNIX system. I don't know if it is still in their collection...

As you may imagine, after all that shenannigans, I still have a place in my heart for the slightly wacky IMP-68.
 
As far as a "real" computer for programming, I had exposure to programming in a couple of classes when I was in college. One was a computer hardware class in 1976 where we were learning the inner workings of an HP 3000 mini-computer and had to write machine level code to test the machine. There was no display, keyboard or storage. We entered the program, one-step at a time into the front panel using the switches, once the program was entered, we hit the run switch. As the program ran, the front panel lights blinked and the only indication of whether the program ran successfully or not was whether we got a return code of 0 displayed on the front panel. I came away from this class knowing how to fix a computer but wondering what computers were even good for. Next, I had a class on RPGII programming using punched cards and a remote time share mainframe. We'd put the puched cards in a hopper then wait 20 minutes for the computer to spit out the results on the printer. It was very painstaking and not very interactive.

Finally, in 1984, I got an IBM PC and a C compiler. I could now write my code, compile it and run it interactively which allowed me to write more advanced programs. I used an editor to write the code, save & exit, then invoke the compiler and linker, then run the program. No debugger so had to insert print statements in my code for debugging purposes. If there were errors, I had to open my editor again to modify my code. Later I got a little TSR called SideKick which allowed me to keep the editor (SideKick's Notepad) in memory so I didn't have to keep opening/closing the editor to be able to compile.

However, when I got Turbo Pascal and later Turbo C with their built-in IDEs that was when "real" programming was possible. Write code, compile it, run it and debug it all in a single unified environment. It was pretty awesome and made programming much less laborious and more interesting.
 
The first physical computer I had to use was a Research Machines 380Z (http://en.wikipedia.org/wiki/Research_Machines_380Z) at school in 1980. These things seemed to have leeched their way into a huge number of high schools in the UK (I keep running into people that remember them fondly), but have zero presence outside the UK. And as at most schools, there was just the one unit, which had to be timeshared amongst the entire computer studies class.

Your mention of the RM 380Z peaked my interest because I remember there was one of these in my Math's class. I never saw the machine being used though throughout all the time I was at school (1988-93). It just sat on a trolley, with its black cover over it. I often wondered, when day-dreaming in class, what it was for and who used it. I assumed at the time that it was a particularly powerful machine, only used for special purposes. But looking back it was probably just a case of the BBC micros being brought in on mass and there no longer being any use for it. At that time it was unlikely anyone would actually throw out a computer, so it just sat there gathering dust. I wonder how long it had sat there and how long it continued to sit.

Later I got a little TSR called SideKick which allowed me to keep the editor (SideKick's Notepad) in memory so I didn't have to keep opening/closing the editor to be able to compile.

However, when I got Turbo Pascal and later Turbo C with their built-in IDEs that was when "real" programming was possible. Write code, compile it, run it and debug it all in a single unified environment. It was pretty awesome and made programming much less laborious and more interesting.

My experience was the other way around. I had been enjoying the benefits of the Turbo C IDE before college. I loved the properly integrated debugger, profiler and documentation. I was also very fond of the yellow text on blue background and nearly always used this as the colour scheme for my DOS applications. In fact I'm quite tempted to switch vim to uses this colour scheme now.

When I got to college although we used the Turbo Pascal and Turbo C IDEs which I was familiar with, we also used COBOL, Clipper and Assembly. This involved separate editors, assemblers/compilers, linkers, etc. It felt like a real step backwards. However, shortly afterwards I was given SideKick and this combined with little batch files to automate the compilation process made life much quicker and more convenient. It was much like a poor man's IDE.
 
I like using Turbo Pascal, though on an 8bit system it's limited to CP/M and while it's very possible to link TP source code to <blah>, CP/M Users want generic code and the support groups would rather have executable code to load from BASIC instead of CP/M ".COM" files. The Pascal environment I'm using now (Hisoft Pascal) which works from Tape or Disk, has some nice machine specific features and even some good support for integrating M/C routines into the code, though the compiler itself appears to be based on Wirth's Pascal, in which consist of numerous differences and I've been playing around with other examples of code (which are acceptable in TP), that aren't supported in Hisoft Pascal which include:

* No Constant Array's
* No Byte variable type
* No String arrays.

Type defining is allowed, so I set up an Array 100 Characters in length. In Turbo Pascal you can setup a Type call it a string 100 Characters in length, if that length wasn't used, no problem. In HSP I can setup an array 100 call it a CHAR type, if my program does not use that many, there's a problem, so sending a string is possible, though one has to make sure it's a fixed length and that it's no smaller (sounds a bit like a BASIC Machine Code Loader and the DATA length isn't the exact length given in the loader). TP couldn't care less.
 
I like using Turbo Pascal, though on an 8bit system it's limited to CP/M and while it's very possible to link TP source code to <blah>, CP/M Users want generic code and the support groups would rather have executable code to load from BASIC instead of CP/M ".COM" files.

I'm not sure I understand what you mean; what isn't generic about the CP/M programs it produces? They should run on most CP/M 2.2 systems with little if any alteration, unless you are accessing machine specific functions, which would be the case regardless of the compiler that you used. I do agree though, it is a shame that Pascal isn't more portable or that TP wasn't available on more platforms. It would have been great to write the same code for lots of different machines and just alter the machine specific stuff each time. Oh well that leads us back to C, which is probably the only real choice when it comes to targeting lots of different 8-bit systems.
 
I'm not sure I understand what you mean; what isn't generic about the CP/M programs it produces? They should run on most CP/M 2.2 systems with little if any alteration, unless you are accessing machine specific functions, which would be the case regardless of the compiler that you used. I do agree though, it is a shame that Pascal isn't more portable or that TP wasn't available on more platforms. It would have been great to write the same code for lots of different machines and just alter the machine specific stuff each time. Oh well that leads us back to C, which is probably the only real choice when it comes to targeting lots of different 8-bit systems.

I simply mean I had to move away from CP/M because I was attracting the wrong audience by creating machine specifics. In some cases I've seen machine specific software being made for computers which only run CP/M or if you move away from the 8bit version and start making CP/M-86 based programs for instance, though for systems which have an alternative OS in ROM, the programs I've been doing tend to reflect that audience (even though my programs won't draw too much attention). I'm merely interested in making something which is a bit faster than Interpreted BASIC. :D
 
Back
Top