Your first programming experience?

Programming the 6502 microprocessor and its relatives in assembly and other languages.
User avatar
commodorejohn
Posts: 299
Joined: 21 Jan 2016
Location: Placerville, CA
Contact:

Re: Your first programming experience?

Post by commodorejohn »

Jeff_Birt wrote:
Over the last 30+ years I have learned many flavors of BASIC, different scripting languages, strange programming 'languages' for industrial controllers, ladder logic, C, C++, Forth, Java, Python, etc. It seems to me that the first language you learn is not as important as learning the concept of programming. Loops and conditionals might be expressed diffrently in diffent langauages but they are the same concept. If you learn the concepts you can move between languages much more readily.
This is very true - the more languages I run across, the more it becomes clear that the key is in grasping the fundamental concepts that they all approach in different ways, and developing the mental habits that allow you to construct well-organized mental models of your intended data and operations, break down complex tasks into smaller steps, efficiently and cleanly package those smaller steps into common routines, and translate them into the native operations of whatever language you're actually using.

Anyway, I wanted to learn about programming from the moment I learned what computers were; when my dad brought home a Mac IIcx in my eighth year on this earth, he was able to snag a samizdat copy of MacBASIC - the good one, the one actually designed for the Mac, which Microsoft had killed to protect their own Mac version of MS BASIC. I was thrilled by the prospect, and spent as much time as he'd let me trying to figure this stuff out (the first program that I can recall writing? A five-room choose-your-own-adventure game about dinosaurs. No points for guessing that it had no interactable objects and was implemented with a single INPUT statement and four IF...THEN PRINT clauses.) Unfortunately, since the project was killed before the Mac was even released, compatibility was a little iffy by the System 7 days, so a number of the examples in the book we got on MacBASIC didn't work properly, and around the time we upgraded to 7.5 either 32-bit compatibility issues or disk corruption killed it entirely.

After that, there was a pretty long period where I didn't really have any access to programming languages at all - my dad picked up one of those BBS archive CDs everybody was making in the mid-'90s that was supposed to have a bunch of development software on it, but nearly everything was for PC, Amiga, or Unix and the few Mac programs required unarchiver software that we didn't have and never managed to get. On the bright side, when my aunt and uncle bought us our first PC a few years down the line, I was able to start playing around with some of that stuff and got back into learning how to program. Mostly spent that time futzing around with various DOS BASICs, but later on I took a look into learning C; unfortunately, the only reference text I had was oriented around developing for Win16, which was a baffling mess. I got my paws on a limited version of Visual C++ for Win32, which was better, but C++ is hardly a beginner language in the best of circumstances, and Visual C++ is definitely not the best of circumstances, so I mostly stuck with Visual Basic at that time. Finally did get into C later on, when I got my own computer and broadband Internet at college and found some halfway-usable free tools, and found FreeBasic around that time as well. Those've been my mainstays for general purposes ever since, though I've taken an interest in plenty of others.

As far as object-oriented concepts go, I was initially introduced to C++, which was a gigantic, confusing mess on the language level, and in college I became acquainted with Java, which was a gigantic, confusing mess on the library level. I never did properly wrap my head around OOP until years later when I learned about Smalltalk - which, apart from never properly separating out the program from the operating environment and thus being mostly useless for general-purpose application development on any OS other than native Smalltalk, is still one of the nicest, cleanest, most sensible languages I've ever encountered.

Edit: haha, wow, that CD is finally up on archive.org, though it's a later edition than the one I had. Been trying to track that sucker down for years.
Last edited by commodorejohn on Sat Oct 19, 2019 6:10 pm, edited 1 time in total.
User avatar
1024MAK
Posts: 155
Joined: 14 May 2015
Location: UK

Re: Your first programming experience?

Post by 1024MAK »

My first experience is a bit vague. It would have been 1983 (probably). Certainly no later than 1983, because I chose computer studies as one of my subjects for my last two years of school.

But before we were let loose on any of the three available computers, we had to write a simple program on programming sheets. This was then sent off to be run as a batch on a computer in a university. Not surprisingly, nearly everyone’s programs failed and so instead of receiving a line printer printout showing the expected results, we just got a printout with an error message :-(

At school, we used BBC BASIC on two Acorn BBC B Micros, and BASIC on one Research Machines 380Z (it had a keyboard built like a tank, all metal enclosure painted black).

So I soon got the hang of BBC BASIC.

The school went through the basics of programming but as soon as I discovered procedures, I realised that these were so much better than GO SUBs. So used them extensively in my programs.

At home, my sister and I got a Sinclair ZX Spectrum 48k computer for Christmas 1983. So I was programming in BASIC on this as well. Despite the lack of procedures, I tried to form most of my programs into separate sections, that were called by GO SUB. I numbered these 1000, 1500, 2000, 2500 etc. So that I could easily find them. The first line of a procedure was a REM giving basic details of the routine.

The second from last line of the program was
9998 SAVE “programname” : GO TO 10
And the last line was often
9999 REM END

I never got into 6502 assembly language while at school. But I did try to get into Z80 assembly language at home. I got some books to help me, and an introduction to machine code programming package. But found that I was too easily distracted by playing games!

After school, I went to Technical College and did electronics as full time course for two years. As part of this we had a microprocessor class. In this class we used AIM-65 computers (ours were uncased), so I learned to code in 6502 assembly language.

My home computer was now an Atari 520 STFM. I found the supplied BASIC rather poor. So I got GFA BASIC. I loved this version of BASIC, especially the structured programming that was possible.

After Technical College I got a job in an industry where there we very few computers. The technology was mostly electro-mechanical. Very complicated electro-mechanical / relay systems (by this, I mean thousands of relays).

And by now as a result of having a wage and hence having some spare money. So I bought my first PC, my purchase was based on a magazine review and the computer reviewed included a modem. So I got a similar specification PC. That’s when I discovered the internet.

Around this time I also bought a Psion Series 3. This did not have BASIC, but instead had a BASIC like programming language called OPL. This was great, as it was procedure based :-) I could now write programs while commuting to work on the train :-)

I never did became a professional programmer like I imagined. Now at work I find myself using laptops or fixed rack mount PCs to analyse system status and fault log reports. And swapping PCB cards and modules that contain embedded computer systems.

We still have some relay based circuitry, and indeed yesterday while attempting some routine maintenance, we discovered a fault. This was traced to some degraded wiring. So we had to replace this and then perform a test of the level crossing that was affected.

But the money is good enough that I don’t need to do any overtime :D

Now, I as far as machine code / assembly language is concerned, I only write short routines. Just enough to do whatever I want to do. Be that on a 6502 system, a Z80 system, or on a microcontroller like a Microchip PIC or similar. Of course, the tools that are available on a PC make this a lot easier these days.

Mark
Chromatix
Posts: 1462
Joined: 21 May 2018

Re: Your first programming experience?

Post by Chromatix »

commodorejohn wrote:
Anyway, I wanted to learn about programming from the moment I learned what computers were; when my dad brought home a Mac IIcx in my eighth year on this earth, he was able to snag a samizdat copy of MacBASIC - the good one, the one actually designed for the Mac, which Microsoft had killed to protect their own Mac version of MS BASIC. I was thrilled by the prospect, and spent as much time as he'd let me trying to figure this stuff out (the first program that I can recall writing? A five-room choose-your-own-adventure game about dinosaurs. No points for guessing that it had no interactable objects and was implemented with a single INPUT statement and four IF...THEN PRINT clauses.) Unfortunately, since the project was killed before the Mac was even released, compatibility was a little iffy by the System 7 days, so a number of the examples in the book we got on MacBASIC didn't work properly, and around the time we upgraded to 7.5 either 32-bit compatibility issues or disk corruption killed it entirely.
May I draw your attention to BBC BASIC (68) for the Mac? That seems like it would have served you well.
User avatar
commodorejohn
Posts: 299
Joined: 21 Jan 2016
Location: Placerville, CA
Contact:

Re: Your first programming experience?

Post by commodorejohn »

Interesting...though I'm curious how well-integrated that is with the Mac Toolbox. The nifty thing about MacBASIC was that it had all the proper hooks for creating full-fledged Mac programs (whereas the MS version was really just the standard text-oriented MS BASIC running in a window.)
White Flame
Posts: 704
Joined: 24 Jul 2012

Re: Your first programming experience?

Post by White Flame »

When I was a kid, we got a VIC-20 and its user manual introduced me to programming. I had used other machines, but never knew anything about the actual programming side until then. (and it still took quite a while :) )
DerpymanMT
Posts: 25
Joined: 09 Oct 2019
Location: Northern Virginia

Re: Your first programming experience?

Post by DerpymanMT »

I’m a high schooler now, but back in I think 2014, when I was in the 6th grade I was introduced to a somewhat slow but easy to understand “language” I use the term language loosely because it was more like code blocks.. it was called Scratch, and I was for kids, their website is still up... but my true programming experience was in 2017 when I started using C# for unity, my parents bought me online classes and I did them ( Until unity deleted my stuff...) I am hoping that in the future I can program games and such for old and new consoles! Right now I am learning 6502 asm so I could use it with the W65C02S! I learned BASIC in 2018... So yeah that’s my programming story!
I and my Daisy Bell
User avatar
drogon
Posts: 1671
Joined: 14 Feb 2018
Location: Scotland
Contact:

Re: Your first programming experience?

Post by drogon »

DerpymanMT wrote:
I’m a high schooler now, but back in I think 2014, when I was in the 6th grade I was introduced to a somewhat slow but easy to understand “language” I use the term language loosely because it was more like code blocks.. it was called Scratch, ...
Scratch is very much in-use for younger people - mostly in the Raspberry Pi community. It's written in smalltalk so we may not see it on a 6502 platform. The progression (again, in the Pi community and the schools that have adopted them) is to them move onto Python. "Python is the new Basic" ...

-Gordon
--
Gordon Henderson.
See my Ruby 6502 and 65816 SBC projects here: https://projects.drogon.net/ruby/
sark02
Posts: 241
Joined: 10 Nov 2015

Re: Your first programming experience?

Post by sark02 »

The first year of my O Level Computer Studies course (winter '83) we used CECIL http://www.obelisk.me.uk/cesil.

It's assembly like, used to teach fundamentals. We used to write programs on paper entry forms and they would be sent to a local college for execution. The next week we'd get the results back.
User avatar
drogon
Posts: 1671
Joined: 14 Feb 2018
Location: Scotland
Contact:

Re: Your first programming experience?

Post by drogon »

sark02 wrote:
The first year of my O Level Computer Studies course (winter '83) we used CECIL http://www.obelisk.me.uk/cesil.

It's assembly like, used to teach fundamentals. We used to write programs on paper entry forms and they would be sent to a local college for execution. The next week we'd get the results back.
In '83? That's well into the Apple II/BBC Micro era ...

I did write a CESIL interpreter recently - in BASIC: https://projects.drogon.net/cesil-contr ... pberry-pi/ and I have consildered a 6502 version, along with the other one that was semi popular - LMC (Little Man Computer). https://projects.drogon.net/lmc/

All good fun!

-Gordon
--
Gordon Henderson.
See my Ruby 6502 and 65816 SBC projects here: https://projects.drogon.net/ruby/
dolomiah
Posts: 102
Joined: 18 Nov 2015
Location: UK
Contact:

Re: Your first programming experience?

Post by dolomiah »

So wonderfully nostalgic to read about people's experience with getting in to programming and coincidentally today I recorded a short video about BASIC vs Machine Code on my Oric-1.

As for my experience, I remember a school assembly in late 1982 or early 1983 where the science teacher got some of the older kids to bring in their home computers - one had a ZX81 and the other a Spectrum. As soon as I saw these I really knew I needed to get a computer, but my family were very poor so it took a while before my dad took me in to the city centre to buy one. We only had £80 but to cut a long story short, a store was selling an Oric-1.

I took it home and started to learn BASIC because I couldn't afford software and anyway the Oric was not that popular and the major stores didn't usually stock much for it. When I started to learn machine code, I even had to write my own assembler in Oric BASIC because I didn't have money for one!

From the Oric I went on to an Atari 800XL around late 1985 and what a marvellous machine it was - really powerful graphics chip for the time. Lucky that it also had a 6502 which meant I could continue my assembly programming experience.

After the Atari, I went on to an Amiga 500 in 1988. I was disappointed with the bundled BASIC as it was so slow, so took to 68k programming which I loved because the 68k had such a nice CPU programming model. At the same time in college I was learning Pascal which was my first experience of a compiled high level language.

I kept my Amiga through university and even did my final year project on it - but by then I had been programming in C for 3 years. After university I did a few years of embedded systems programming in C and then C++ which is when I actually properly understood the practical use of object orientation (at uni it just seemed pointless - real world complexity is when it showed the value to me). In fact I started doing more OO design than coding and by the late 90s I joined a large consulting and systems integration company as an OO consultant.

However I still kept my programming hand in, so learned Java and then C# as part of professional development, despite not being a software developer since the late 90s (from OO designer I went on to solution and enterprise architecture).

As I don't get to do any programming at work, my own hobby homebrew 6502 has kept me fascinated with code and especially coding in assembly. In fact I have written much larger assembler programs now than I did back when I was a teenager, and having written a BASIC interpreter of my own design from scratch, I have also been writing much more complicated assembler programs than back in the day.

And the computer that started it all off for me I still own and it works well! That dear Oric has been with me since before I was 13 years old and is as much of an heirloom as any piece of furniture or jewellery that others may prize.
sark02
Posts: 241
Joined: 10 Nov 2015

Re: Your first programming experience?

Post by sark02 »

drogon wrote:
sark02 wrote:
The first year of my O Level Computer Studies course (winter '83) we used CECIL http://www.obelisk.me.uk/cesil.It's assembly like, used to teach fundamentals. We used to write programs on paper entry forms and they would be sent to a local college for execution. The next week we'd get the results back.
In '83? That's well into the Apple II/BBC Micro era ...
Yes it was. I had a ZX Spectrum and was programming in Z80 by then, so having to write programs on paper and send them off was strange. My school had a Commodore PET (the one with the square keys) with a modem connected to the local poly, that only sixth formers could use. The art department had a BBC Micro, and I wrote a little utility in BBC BASIC that allowed students to sign-up for access to some piece of equipment that I can't recall. Maybe a light box? But the Computer Studies class, at least in the first year, didn't have access to anything. In the O Level 2nd year we had to go to the local technical college to use their PCs and, I think, do some BASIC.
Quote:
I did write a CESIL interpreter recently - in BASIC: https://projects.drogon.net/cesil-contr ... pberry-pi/ and I have consildered a 6502 version, along with the other one that was semi popular - LMC (Little Man Computer). https://projects.drogon.net/lmc/
I honestly thought it unlikely that I'd bump into someone who'd come across CESIL... you're a mad man. Good stuff!
sark02
Posts: 241
Joined: 10 Nov 2015

Re: Your first programming experience?

Post by sark02 »

dolomiah wrote:
We only had £80 but to cut a long story short, a store was selling an Oric-1.
The Oric-1 was a great little machine. It had BASIC commands like PING, SHOOT, EXPLODE that played those sounds. Someone might see an Oric-1 in Curry's and write a BASIC program to wait for a keypress and then play those sounds in a loop... with the TV volume turned right up... to give someone a real fright. Someone might do that... but that someone would not be me, officer.

It's name also reminded everyone of Orac, from Blake's 7... not a coincidence, I'm sure.
Quote:
At the same time in college I was learning Pascal which was my first experience of a compiled high level language.
Pascal was the first year teaching language at my university - a common intro to structured programming, I guess. 'C' came in the 2nd year of Computer Science. When I was young I had access to a bunch of computer magazines, and I remember seeing fragments of 'C' with strange syntax that I couldn't decipher. I remember the satisfaction of finally learning 'C' and understanding what all those strange sequences of characters finally meant!

I envy your Amiga 500. Coming from Jay Miner, the man behind the Atari 800XL, it was the natural next step, but outside my price range so I settled for an Atari ST.
Quote:
After university I did a few years of embedded systems programming in C and then C++ which is when I actually properly understood the practical use of object orientation (at uni it just seemed pointless - real world complexity is when it showed the value to me).
Me, too. My first practical C++ was at an Ethernet switch company, and we used class hierarchies to model switch ports of varying types and functionalities. Nothing that couldn't be done in 'C', but it was more elegantly expressed in C++. Being an embedded system, we had strict rules on which parts of C++ we were allowed to use (no templates, no exceptions... just class hierarchies), and these rules were enforced in code reviews. It was a good, albeit fairly remedial, C++ experience.
dolomiah
Posts: 102
Joined: 18 Nov 2015
Location: UK
Contact:

Re: Your first programming experience?

Post by dolomiah »

Ha, yes sark02 seems that like Gordon we have experienced the 1980s UK education system! As you will know, the government of the time made a big educational push for computer literacy hence the amazing BBC Microcomputer (which I never did get to own back in the day).

Yes I was lucky to have an Amiga in 1988 - got one when they went down from £500 to £400. Atari ST was a good machine but didn't have the equivalent custom chips of the Amiga which the great (and sadly, late) Jay Miner helped to create.

I remember the early C++ compilers for our embedded systems (SCADA devices) were actually just pre-processors that would translate C++ to C and then get the regular C compiler to build the object code.

And I also remember writing CESIL that had to be sent to the local university to be run and even writing a CESIL interpreter on the RM380z - great times!
User avatar
cbmeeks
Posts: 1254
Joined: 17 Aug 2005
Location: Soddy-Daisy, TN USA
Contact:

Re: Your first programming experience?

Post by cbmeeks »

DerpymanMT wrote:
I’m a high schooler now, but back in I think 2014, when I was in the 6th grade I was introduced to a somewhat slow but easy to understand “language” I use the term language loosely because it was more like code blocks.. it was called Scratch, ...
I remember seeing Scratch for the first time when my son was taking some programming classes. They quickly moved to Python too. Scratch was pretty good for what it was.
drogon wrote:
"Python is the new Basic"
I've said the same thing. Python is a good language for beginners. It's a little sad, however. I like Python (and the name is cool) but I think BASIC is an easier language to learn. Too bad BASIC didn't catch on with web development as Python and Ruby. Not that it couldn't be done. If we had a BASIC interpreter/compiler like we have for JavaScript that is included in every browser...well, that would be awesome.
sark02 wrote:
The first year of my O Level Computer Studies course (winter '83) we used CECIL
Hey! A language named after me! (my first name is Cecil). I even saw a store in Switzerland named "Cecil" too. So maybe the name is catching on....LMAO

sark02 wrote:
I envy your Amiga 500. Coming from Jay Miner, the man behind the Atari 800XL, it was the natural next step, but outside my price range so I settled for an Atari ST.
Hey, the Atari ST is a great computer! I think the biggest issue with the ST is that too many people compare it to the Amiga. I love the Amiga (the Amiga 500 was the first computer I bought myself with money I earned). But the ST can stand on it's own.
Cat; the other white meat.
jmthompson
Posts: 127
Joined: 30 Dec 2017
Location: Detroit, Michigan, USA
Contact:

Re: Your first programming experience?

Post by jmthompson »

For me it was 1982 (age 9) on a Commodore PET in my 4th grade classroom. I didn't know anything at first, but I had recently watched TRON at a friend's house on video disc (remember those?) so I tried typing out a bunch of the commands Flynn used in the movie. Obviously that didn't work. :) Later the teacher gave me some print outs of some BASIC programs to try out, so I typed those in, and quickly taught myself BASIC.

Not too long after this I talked my grandparents into buying me a TI-99/4A for home. I have fond memories of typing in programs from listings in Family Computing magazine. I programmed the hell out of that thing and even wrote up a simple video game called "Shoot-a-Man". Very basic, in more ways than one. :)

Later on I graduated to an Apple IIe, and finally a IIgs around '87. I spent most of my teenage years writing shareware and freeware for the IIgs (all in assembly, of course!) I didn't learn any other high level languages until I started college in 1990, where I learned Pascal, COBOL (ugh), and finally C.
Post Reply