6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Tue Jul 02, 2024 12:01 am

All times are UTC




Post new topic Reply to topic  [ 49 posts ]  Go to page Previous  1, 2, 3, 4  Next
Author Message
PostPosted: Sat Oct 19, 2019 5:43 pm 
Offline

Joined: Thu Jan 21, 2016 7:33 pm
Posts: 270
Location: Placerville, CA
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.

Top
 Profile  
Reply with quote  
PostPosted: Sat Oct 19, 2019 5:54 pm 
Offline
User avatar

Joined: Thu May 14, 2015 9:20 pm
Posts: 155
Location: UK
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


Top
 Profile  
Reply with quote  
PostPosted: Sun Oct 20, 2019 12:46 am 
Offline

Joined: Mon May 21, 2018 8:09 pm
Posts: 1462
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.


Top
 Profile  
Reply with quote  
PostPosted: Sun Oct 20, 2019 1:37 am 
Offline

Joined: Thu Jan 21, 2016 7:33 pm
Posts: 270
Location: Placerville, CA
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.)


Top
 Profile  
Reply with quote  
PostPosted: Sun Oct 20, 2019 6:43 am 
Offline

Joined: Tue Jul 24, 2012 2:27 am
Posts: 672
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 :) )

_________________
WFDis Interactive 6502 Disassembler
AcheronVM: A Reconfigurable 16-bit Virtual CPU for the 6502 Microprocessor


Top
 Profile  
Reply with quote  
PostPosted: Sun Oct 20, 2019 3:34 pm 
Offline

Joined: Wed Oct 09, 2019 12:14 am
Posts: 25
Location: Northern Virginia
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


Top
 Profile  
Reply with quote  
PostPosted: Sun Oct 20, 2019 3:39 pm 
Offline
User avatar

Joined: Wed Feb 14, 2018 2:33 pm
Posts: 1438
Location: Scotland
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/


Top
 Profile  
Reply with quote  
PostPosted: Sun Oct 20, 2019 7:34 pm 
Offline

Joined: Tue Nov 10, 2015 5:46 am
Posts: 217
Location: Kent, UK
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.


Top
 Profile  
Reply with quote  
PostPosted: Sun Oct 20, 2019 7:42 pm 
Offline
User avatar

Joined: Wed Feb 14, 2018 2:33 pm
Posts: 1438
Location: Scotland
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/


Top
 Profile  
Reply with quote  
PostPosted: Sun Oct 20, 2019 8:01 pm 
Offline

Joined: Wed Nov 18, 2015 8:36 am
Posts: 102
Location: UK
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.


Top
 Profile  
Reply with quote  
PostPosted: Sun Oct 20, 2019 8:06 pm 
Offline

Joined: Tue Nov 10, 2015 5:46 am
Posts: 217
Location: Kent, UK
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!


Top
 Profile  
Reply with quote  
PostPosted: Sun Oct 20, 2019 8:37 pm 
Offline

Joined: Tue Nov 10, 2015 5:46 am
Posts: 217
Location: Kent, UK
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.


Top
 Profile  
Reply with quote  
PostPosted: Sun Oct 20, 2019 8:55 pm 
Offline

Joined: Wed Nov 18, 2015 8:36 am
Posts: 102
Location: UK
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!


Top
 Profile  
Reply with quote  
PostPosted: Mon Oct 21, 2019 1:48 pm 
Offline
User avatar

Joined: Wed Aug 17, 2005 12:07 am
Posts: 1215
Location: Soddy-Daisy, TN USA
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.


Top
 Profile  
Reply with quote  
PostPosted: Tue Oct 22, 2019 6:03 pm 
Offline

Joined: Sat Dec 30, 2017 3:19 pm
Posts: 116
Location: Detroit, Michigan, USA
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.


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 49 posts ]  Go to page Previous  1, 2, 3, 4  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 9 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to: