Jump to content
Sign in to follow this  
Dani

Simplest Computers

Recommended Posts

Much like koalas, apparently my brain is smooth and the technical ability of the X16 and other 8-Bit computers from the 80's go way over my head.  I'm just curious if anybody has heard of a more simple computer that somebody like me could get into learning how computers work so that when the X16 comes out I have a sort of foundation to help make the learning curve easier.  I guess even if not a computer maybe some suggestions for starting points could be nice.  I've tried playing around in BASIC on TheC64 and I quickly realized that my brain and the computer interpret logic very differently lol.

Share this post


Link to post
Share on other sites

You may want to cut back on the Eucalyptus, while you're at it. 😉

It's hard to get simpler than the X16 and have that simplicity make programming for it easier. What you get is something like the Atari 2600 which is so simple doing even the most basic things becomes incredibly challenging. I think the X16 hits a real sweet spot for being simple enough to understand holistically, but capable enough to make it easy to develop for with minimal frustration.

But I do agree that Ben Eater's videos are a great way to understand how the 65C02 works on a basic hardware level and what a minimal computer looks like with just the bare minimum components doing what is needed to function. I tried to model my own Assembly Tutorial videos on Ben's approach to the hardware and gently guide people into Assembly development for the X16, building it up piece by piece.

Edited by SlithyMatt
  • Like 1

Share this post


Link to post
Share on other sites

Some of the books available back in the day for teaching BASIC to beginners have been scanned and put online. That includes the user guides for the PET and VIC-20 and 64, but also books by third parties.

The user's guides can be found at http://www.zimmers.net/anonftp/pub/cbm/manuals/ and one of the better third party books can be found at https://archive.org/details/Compute_s_Programming_the_Commodore_64_The_Definitive_Guide

  • Like 1

Share this post


Link to post
Share on other sites

All of those things are really good tips! Thanks everybody.  I will need to look into these further!

Share this post


Link to post
Share on other sites

When you say "how they work", can you program already, say in Java or C#, but want to get down to the nitty gritty of the internals ? or that you are starting programming from scratch ?

If so, I would suggest either the Ben Eater series on the 6502 or possibly a PIC16F84 based kit - like say Velleman K8048. Both are programmed in Assembler which is (almost) as low as you can go - one is a microprocessor, the other a microcontroller, but they operate at the same very basic levels and will give you an idea what's going on 'under the hood'.

For starting programming, on retro machines you might want to have a look at the Vic20 user guide - you can use an emulator, that costs nothing. It's not that the Vic is a particularly powerful machine, more that it has a very beginner friendly "try these" manual.

Share this post


Link to post
Share on other sites

If you are looking at how to program at a near hardware level (assembler), maybe a model machine might be best suited. The systems of my youth are no longer maintained but something along the lines of "Little Man Computer" exists which was apparently the equivalent in the english speaking world:

https://en.wikipedia.org/wiki/Little_man_computer

Otherwise I think kelli217 above had some good pointers.

Share this post


Link to post
Share on other sites
19 minutes ago, TomXP411 said:

I’m one of my early programming classes, we used a programming language called KAREL. It was specifically designed to be simple to use and was targeted at learning to program, rather than writing useful code. 
 

https://en.m.wikipedia.org/wiki/Karel_(programming_language)
 

 

I never heard of Karel before clicking on that link, and it looks a lot like Logo, which was my initial introduction to programming many, many years ago on the Apple II. We started out doing very similar turtle commands to turn and move forward and backward, and put the pen up and down to draw pictures.

Share this post


Link to post
Share on other sites
2 hours ago, paulscottrobson said:

When you say "how they work", can you program already, say in Java or C#, but want to get down to the nitty gritty of the internals ? or that you are starting programming from scratch ?

If so, I would suggest either the Ben Eater series on the 6502 or possibly a PIC16F84 based kit - like say Velleman K8048. Both are programmed in Assembler which is (almost) as low as you can go - one is a microprocessor, the other a microcontroller, but they operate at the same very basic levels and will give you an idea what's going on 'under the hood'.

For starting programming, on retro machines you might want to have a look at the Vic20 user guide - you can use an emulator, that costs nothing. It's not that the Vic is a particularly powerful machine, more that it has a very beginner friendly "try these" manual.

I've done a bit of programming on a very basic level before.  I mostly meant the nitty gritty of the internals.  It seems like all of you are super knowledgeable about pokes and peeks with specific memory addresses or telling the chips to do very specific things and I feel like I missed that class in school lol.  I can understand the concept of loops, functions, variables, and such with programming, but figuring out how to tell that to the chips directly and remember it all with hex or pokes makes my brain explode.

Share this post


Link to post
Share on other sites
1 minute ago, Dani said:

figuring out how to tell that to the chips directly and remember it all with hex or pokes makes my brain explode.

Memorizing those addresses is not a good use of your brainpower. I have relied on setting up constants to handle this, so then I only have to remember names of registers and use mask constants for singling out bits. Plus, doing this kind of programming means that you really need to have things like the VERA guide handy. Another good strategy is to roll common operations into macros so that doing them looks a lot more like calling a function in a high-level language then just manually copying, pasting and tweaking the same snippet of assembly over and over. Doing things like this requires putting some concerted effort in at the beginning (or just borrowing from the many open source examples from this community), but that pays off in greatly simplifying development.

  • Like 2

Share this post


Link to post
Share on other sites
8 minutes ago, SlithyMatt said:

Memorizing those addresses is not a good use of your brainpower. I have relied on setting up constants to handle this, so then I only have to remember names of registers and use mask constants for singling out bits. Plus, doing this kind of programming means that you really need to have things like the VERA guide handy. Another good strategy is to roll common operations into macros so that doing them looks a lot more like calling a function in a high-level language then just manually copying, pasting and tweaking the same snippet of assembly over and over. Doing things like this requires putting some concerted effort in at the beginning (or just borrowing from the many open source examples from this community), but that pays off in greatly simplifying development.

Ohhh that makes a lot of sense to me.  I guess I was looking at things the wrong way then.  I was watching videos like from 8-bit show and tell and just figured if Robin knew to just poke and peek stuff, or manually editing hex values in TMP to do what he needed that it must be how everybody else was doing stuff too.  I never thought to build a "library" of code of sorts to refer back to based on what I needed at the time.  

Edited by Dani
  • Like 2

Share this post


Link to post
Share on other sites
1 hour ago, SlithyMatt said:

We started out doing very similar turtle commands to turn and move forward and backward

Yay turtle..

turtle.jpg

(taken from a friendly reddit post)

Edited by Falken
  • Like 1

Share this post


Link to post
Share on other sites
2 hours ago, SlithyMatt said:

I never heard of Karel before clicking on that link, and it looks a lot like Logo, which was my initial introduction to programming many, many years ago on the Apple II. We started out doing very similar turtle commands to turn and move forward and backward, and put the pen up and down to draw pictures.

Yes, the concepts are similar. KAREL was designed explicitly as a teach tool, and LOGO is a little more complete... I seem to recall we did most of our KAREL exercises on paper and didn't actually run programs on a computer until halfway through the class. Hence the super light syntax and the grid - all things to make it easier to simulate on paper, rather than requiring a compuiter. 

 

 

Edited by TomXP411
  • Like 1

Share this post


Link to post
Share on other sites
3 hours ago, Dani said:

I've done a bit of programming on a very basic level before.  I mostly meant the nitty gritty of the internals.  It seems like all of you are super knowledgeable about pokes and peeks with specific memory addresses or telling the chips to do very specific things and I feel like I missed that class in school lol.  I can understand the concept of loops, functions, variables, and such with programming, but figuring out how to tell that to the chips directly and remember it all with hex or pokes makes my brain explode.

Definitely the microcontroller - an assembler one not a 'C' one, or something like the Ben Eater 6502, where you are working at the parts level, no libraries, no high level languages in the way. Also do some basic digital electronics if you haven't done any of that.

They don't always teach the internals nowadays :(

Once you've got a handle on how processors work, you can design your own very simple processor out of logic gates .... that's about as low as you can go.

  • Like 1

Share this post


Link to post
Share on other sites
2 minutes ago, paulscottrobson said:

Definitely the microcontroller - an assembler one not a 'C' one, or something like the Ben Eater 6502, where you are working at the parts level, no libraries, no high level languages in the way. Also do some basic digital electronics if you haven't done any of that.

They don't always teach the internals nowadays 😞

Once you've got a handle on how processors work, you can design your own very simple processor out of logic gates .... that's about as low as you can go.

This is sort of the direction I was looking for.  Something that kind of bridges the gap between languages and the hardware.

Share this post


Link to post
Share on other sites
22 minutes ago, Dani said:

This is sort of the direction I was looking for.  Something that kind of bridges the gap between languages and the hardware.

The problem is nowadays they try to make it easier by writing the code in 'C' - maybe an Arduino might be a good place to start, but it's not really assembler. But there's a lot of training/example/tutorials for it, maybe have a look there first ? There's plenty of Arduino tutorials involving electronics and switching things with the Arduino and plenty of starter sets. It may not be quite what you want. It might be a place to start ?

 

 

Share this post


Link to post
Share on other sites

Something akin to this would be nice nowadays:
https://en.wikipedia.org/wiki/NDR-Klein-Computer
 

A complete kit to build it, a book and an accompanying TV-series. Ben Eaters site reminds me a lot of this. Some enthusiasts are pursuing it again nowadays as it had become easier to have PCBs made and thereby improve on the design. But the info is not so neatly packaged and you'd have to get all the components yourself (and it's in german). But you could make it with different hardware configs "from a simple 8-bit single-board computer based on a Zilog Z80A processor to a 32-bit system equipped with a Motorola 68020 CPU".

P.S: just found out there was even a 1-Bit computer in that vein:
(in german:)
http://wdr-1-bit-computer.talentraspel.de/

Like with the Commander X16 there was an emulator for that for the C64 and DOS 😄

Based on this CPU:
https://en.wikipedia.org/wiki/Motorola_MC14500B

  • Like 1

Share this post


Link to post
Share on other sites

I’m reading the book Ben Eater read to learn: Digital Computer Electronics, by Malvino and Brown. If you want to understand how the machine works, how the hardware is structured, it’s an interesting read.

Then, you may want to learn 6502 assembler (something I wanted to do since I was a kid). I’m not there yet, but besides Matt’s excellent videos, and the infamous Commodore book, you have things like this:

https://www.atariarchives.org/mlb/introduction.php

or this:

https://skilldrick.github.io/easy6502/

Hope it helps.

Edited by Dmian
  • Thanks 1

Share this post


Link to post
Share on other sites

Thanks for the input everybody! This gives me a lot to go on for learning how the actual hardware works(:

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...

Important Information

Please review our Terms of Use