Hacker News new | past | comments | ask | show | jobs | submit login
World of Commodore 2016 (tpug.ca)
68 points by doener on Nov 12, 2016 | hide | past | favorite | 40 comments



"We have listened to the feedback and this year for the first time we are expanding WoC to a full two days!"

It's been a long time since I thought I'd see the day when Commodore conferences were getting bigger over time.

The crowd looks pretty old (not to say I'm young), and I think it's likely that this will be like classic cars. It'll come and go, as a phenomenon (or, at least, the era of what makes something "classic" will shift forward). But, it's fun while it lasts. I'd really like to make it to an 8 bit computer show one of these days.


The C64 is amazing. I'm looking forward to being an old coot who goes to these get-togethers.

I started up Vice the other day and had a fun time playing some of the old games I had reviewed with a 5 out of 5 score in the past. I played Star Post with my 7-year-old son sitting next to me, absolutely riveted as the game accelerated. Then we played Panther, Skramble, Space Worm, Air Traffic Controller. Captain Fizz Meets The Blaster Trons. Thought about some Force 7, but I get pretty freaked out by the music and tension even as an adult, so we gave it a pass. All really great games, some available on other platforms too. For the hardware side, be sure to check out the Retro Battlestations[0] subreddit.

[0] https://www.reddit.com/r/retrobattlestations/


I'm already subbed to all of the subreddits about Commodore and retro computing. But, good tip for anyone who might not know there's such a thriving scene still hanging in there. The old machines are fun in ways that modern things can't replicate. Sure, we can do so much more today, with so much less effort...but a single human being can hold all of the Commodore 64 in their head (by that, I mean, it's possible for someone to understand every component, and if really ambitious reproduce all of it, or some components of it, from scratch...and a few people have, in FPGAs, among other things).

I have a real C64 (along with a MSSIAH cartridge to make a nice synth), but rarely have the time or space to tinker with it.


I dug up an "old" link to a presentation on the history of CPU design the other day, and part of it comes to mind now.

He talked about how back in the early days ram and cpu was pretty much equal in clock. Thus if you could fit your program in ram, you could calculate how fast your program would run based on how many instructions you used to do things.

These days the cpu is many multiples fasters than ram, and thus cache misses is these days what disk access was back then. And because of how the cpu is now multiple cores, pipelines, and multiple tiers of cache, you can't simply sit down and step through the code to look for instruction bottle necks.

Never mind the layers upon layers of libs and whatsnot sitting between your program and the hardware.

Even games consoles are like this now, as they have turned into multimedia gateways. The last generation of consoles that came close was perhaps the PS2 and Gamecube (the Xbox was more a stripped down PC than a games console, and likely started the trend leading us to the present day).


> back in the early days ram and cpu was pretty much equal in clock

Not "pretty much". On most early system they were clocked exactly the same. That includes things like the C64 and th Amiga, where there was no cache on the basic models (on Amiga models with 68020 or above there was some cache).

On the C64 in particular, timing things to the clock cycle was essential for some demo effects. E.g. if you used a hardware sprite, it'd "cost" the CPU access to RAM for two clock cycles per scanline that you had to account for if you wanted certain effects to work, for example.


> He talked about how back in the early days ram and cpu was pretty much equal in clock. Thus if you could fit your program in ram, you could calculate how fast your program would run based on how many instructions you used to do things.

That's exactly how I started programming, as a child, on a Z80 based system.


The "hold all of the <machine> in their head" is what I'm missing today. I wish there was something more modern along those lines my kid could grow into--essentially a C64 with HDMI. [edit] And a SD card slot!


There's Maximite, which is VGA: http://geoffg.net/maximite.html


Let's be honest, 6502 assembly is way better than x86 assembly, any day of the week.


Could you explain why? I have quite a bit of experience with Z80 and x86 (16bit) assembly. I remember that I've tried to learn 6502 many years ago but lost interest after a while. I remember that 6502 didn't feel superior to me then, quite opposite.


It's extremely simple. It's too simple for modern use, given that it doesn't have 16 or 32 bit instructions and lack mul/div etc., and doesn't have a decent sized stack, but for a small system like the C64 the simplicity was great - it was easy to learn, and for things like demo programming it's easy enough that you can quickly learn to remember how many cycles each instruction + addressing mode takes.


If someone where to build a machine like that I think the 8080 (or at least the z80, which is still manufacturered) would probably be the best choice. The Intel 8080 is very clean and well thought out compared to the 6502. (try writting an emulator or assembler for both)


The fanbase may be old, but there is no reason not to like the C64. I'm not even 30 yet but the C64 was crucial for developing my interest in computers and software (see my other top level post). It's a great machine through and through. The hardware and software are simple and more tangible compared to modern systems. I think every child should be introduced to old hardware/software like C64+BASIC!


> The crowd looks pretty old

Oh man, don't say that! When I first got into C64 nostalgia, you had the older camp that was still staying productive on the 64, and us twenty-somethings nostalgic for the computer and games we grew up with.

Now we've got kids of our own, grey hairs and yellowed machines. At least my son got a kick out of playing Ultima V with me.


I'm in the older camp, I think. My dad brought home a C64 when it was pretty new; maybe it'd been on the market for a year or so, maybe less. So, I was a first generation user, and it was my computer all through middle school and some of high school (a C128D that I found at a yard sale replaced the 64 after a few years, and the 64 got turned into a dedicated BBS host running Color 64). An Amiga replaced the C128D when I was in 11th grade, after I'd been saving up for literally years.

So, I say they look pretty old with acknowledgement that it means I'm getting up there, too. I don't mean to demean or dismiss the folks at that conference. It's totally my kinda scene, and I'm sure I'd have a great time talking to any one of them.


Good to see the Vampire will be making an appearance, though I'm guessing no new announcements about upcoming releases.

For anyone out of the loop with Commodore stuff, the Vampire is an FPGA-based accelerator for classic Amigas. This is a decent introductory video:

https://m.youtube.com/watch?v=8S3B8a8N83k


Given how much they seem to stuff onto that FPGA, it strikes me more like they are effectively replacing the internals rather than accelerating it.


Yeah, eventually I see it becoming its own standalone board, but it's nice that it's allowing Amiga users to make use of their existing hardware (peripherals, etc...).

Also, no announcements I know of have indicated this is on the cards, but I'd also be interested to see if it becomes a more general-purpose 68k accelerator, there may be users of other 68k-based machines that would be interested in a clip-on accelerator. Not for any practical reason, just for fun. I think it'd be funny to see a Mega Drive run homebrew faster than a PlayStation. ;-)


There's already work happening on a version of Vampire for the Atari ST.

But I'd prefer they just come out with a standalone board with the Apollo core on one FPGA + a bunch of configurable soft peripherals on another. Then people could configure it out how they wanted and put it in their own case.


I'm only 29 and have memorable experiences playing with my father's C64. I consider myself lucky that he introduced me to C64+BASIC at an early age. I will never forget it.

I think our family already owned a Gateway 2000 PC (66/90MHz, Win 95) by then, but I actually liked the C64 more. Second favorite was the Atari 1040ST, the PC came last.

The C64 is a crucial element that got me into programming/CPUs/Hardware. I went from BASIC to QBasic, then to VisualBasic 3, then 5. After that I got my own PC my father bought me Visual Basic 6, students edition. In retrospective, this has to be the best investment of 120DM (Deutsche Mark) ever made. It fueled my interest even more. I was finally able to write my own 'real' Windows programs. I suddenly had access to everything, from DFU dialups, window managment, Browsers (ActiveX!). It even introduced me to 2D/3D graphics because you can use DirectX/DirectDraw directly. All thanks to the Windows API and Visual Basic.

It took a long time until I finally got into Linux and C++, but I never regret that I was introduced to BASIC first, and was taught that GOTO is not evil.

PS: If you have kids and want to introduce them to programming, give them access to Blitz BASIC!


The C-64 was my introduction to computing and programming as well. My uncle, a newly minted engineer at the time, brought one to our house when I was about three years old and just left it. This was incredibly fortunate given how poor my family was at the time. Some of the first words I learned how to spell were LOAD and RUN thanks to the BASIC prompt.


wow it sounds like you've been really lucky!

Also: I'm now imagining a 3 year old, yelling 'Mama LOAD "*",8,1'


I often think of the Raspberry PI as the modern equivalent to the c64. Affordable, powerful, educational. It would be great to develop a specialized Raspberry PI BASIC in tribute to Blitz or QBASIC.


> "It would be great to develop a specialized Raspberry PI BASIC in tribute to Blitz or QBASIC."

You may find something you like here:

https://www.raspberrypi.org/blog/celebrating-50-years-of-bas...

Also, the following project is only loosely related to your post, but you might like to know about it too:

http://eluabrain.blogspot.co.uk/2011/11/brainz-brainz-braaaa...


It's too complex. The thing with machines like the C64, 8-bit Ataris and Apple IIs is that they were simple and easy to fully understand. Even the hardware of a Pi, with its multiple buses, protocols and embedded controllers running their own OSs, would require a degree in engineering to fully grasp. On the software side, there are multiple man-centuries invested.


I like this[0] on small Linux systems; easy to set up so you get that C64 feel in a modern setting.

[0] https://github.com/antirez/load81


How about this one: "RaspberryPi BASIC is an homage to the Commodore 64; a bare-metal operating system that boots directly to a BASIC prompt, similar to early computers."

https://github.com/steventroughtonsmith/rpi-basic


Not quite what you're after, but it might also be worth looking at Xojo, which is a kind of Visual Basic clone that also compiles apps for the Raspberry Pi. (Then if you catch the Xojo bug, it also compiles to iOS and desktop Windows/Mac/Linux.)

https://www.xojo.com


You made me curious and something like that already exists (who would've thought!).

RetroPie [1] comes with the VICE [2] emulator.

[1] https://retropie.org.uk

[2] http://vice-emu.sourceforge.net/


BASIC did enough damage to programmers. It's good that it's dead. Don't bring it back.

People mistake BASIC's simplicity with a feature. It's an atrocious language, it encourages the worst sorts of programming, and it's so feeble that doing anything useful in it is painful at best and discouraging at worst.

On the C64 with limited memory BASIC was a lot better than nothing, but today, given the vast wealth of documentation, of videos that explain fundamental concepts, there's no need for something as dumbed down and useless as BASIC.

Lua, Python, Node.js, Ruby, anything modern on the Pi is a vastly better learning experience because not only can you pick up the basics, but you can apply that to real-world problems, possibly even get a job, and carry on learning.

With BASIC and hacking around in ignorance you're going to do everything wrong, and reversing all those bad habits is really tough to do. It takes years.

If you want to learn how to program the C64, stick to assembly. This used to be a dark art back in the 1980s, reference material was thin, examples scarce, but now there's an enormous wealth of that you can pick apart and learn from.


BASIC on an 8-bit computer is a bit closer to the underlying hardware than C and it's a worthy educational experience. You have to be clever to work with all global variables and subroutines instead of functions and you'll have to invent your own stack to express recursion.


In old 8-bit Basic it was, many times, a kind of battle between interpreter and assembly. I would write things in Basic, then see if it was fast enough. If it was not it usually was pretty obvious where the issue was; if the code was complex I would rewrite it to a version that more or less would convert to assembly naturally and then test again. You would have to lose basic pretty quickly especially for games, so in the end (of the 80s basically) I started straight in assembly. And that is what I missed and found again now in limited resource embedded chip programming; doing almost all the actual work in your head and on paper instead of trial and error everything.


> BASIC on an 8-bit computer is a bit closer to the underlying hardware than C ...

Well, that's wrong. There's nothing about BASIC that has anything to do with hardware. If anything it made the computer feel like a rubber mallet when inside that hardware was some real power, if only you had the knowledge to unlock it. I always felt cheated, that no matter how well I knew BASIC my programs would be stupidly slow compared to someone who knew assembly.

C wasn't an option on something like the C64 since there was no C compiler. It was BASIC or, if you were bold, hand-written machine code. The tools were very primitive, very expensive, or both.

BASIC is junk. Get rid of it. Teach proper programming. If you really need to squeeze a lot out of your hardware, and on the C64 you absolutely need to, then it's assembly or machine language.


The point is not being fast, but easy. BASIC has GOTO and GOSUB, IFs (which take the place of conditional jumps), no stack (that you can use yourself), no named functions (except branchless one liners) and a meager set of primitive types which are handier than the 6502 registers. Ever tried floating point on a 6502? Even with the routines in ROM, it was all pain and suffering.

I am sorry you had such a bad experience with BASIC, but, for teaching the very basics of programming, it was a useful tool. In order to teach assembly you'd need a text editor, an assembler and a floppy disk. BASIC came up when you powered your machine on.

I used Aztec C on the Apple II and, while it was painfully slow, it was a reasonable C for the time and, IIRC, it had a C64 version.


To be specific, I'm talking about today and how BASIC is an anachronism, not unlike making your own natural pigments just to learn how to paint.

BASIC was nothing but bullshit, it taught me nothing other than computers are obnoxious and difficult to use. I spent several years "learning" how to program in BASIC, later QuickBASIC, and the stuff I cranked out was atrociously bad. The only excuse I have is that I was coding like they did in the magazines I bought, their code was a disaster as well, and I had no way of knowing there was a better way.

It was only when I switched to Pascal (via TurboPascal) that I realized how to program. At that point things started to make sense, and no longer was I feeling like a third class citizen: Programs in TurboPascal would run very quickly compared to BASIC. They were compiled. While the performance wasn't on par with C, it wasn't nearly as hard to get right as C was.

I wouldn't recommend Pascal today, but there's other languages that are as good or better.

Today there's absolutely no reason to teach BASIC as an introduction to programming. You're only going to hurt people.


Would you have realized how Pascal is better without struggling with BASIC first?


Would you have realized how C is better without struggling with machine opcodes first? Would you have realized how x86 is better without struggling with a 6502 first? Would you have realized how DRAM is better than struggling with drum memory first?

You can start anywhere if you like what you see and feel motivated to learn more.


No, BASIC didn't do any damage to anyone, ever. You are so wrong here that I can't even express it. Your suggestions on the other hand are way off and may do even more damage than any BASIC dialect could.

Lua, Python, Node.js, Ruby and Assembly are the _worst_ languages you can teach a beginner. They are too complex, they behave weird and there are not enough constraints.

Even Processing/Arduino is better. It has to be as simple as possible.

I still suggest a BASIC dialect for beginners. People should really give Blitz BASIC a try, it's like BASIC on crack. It's super easy to render 2D and even 3D graphics and it has classes too (yes you read that right). I used it once, well over 10 years ago and it was unbelievably easy to handle, you can learn it on the fly. I think I was 15 years old at that time and I've never implemented a game more quickly.


I can teach beginners any language and present it in terms they can absorb, even C, even assembly, even C++. With those it's a longer road to walk before the student can be productive, but it's possible if they're patient and willing to follow.

Ruby is one of the easiest languages to teach because it's very forgiving and it's really easy to navigate the documentation. In a single day people with no programming background can go from not being sure how to start to reading in things from a text file and producing useful output. Given a few weeks they can be interfacing with a database and making web pages.

You cannot do that with the sort of BASIC you got on the C64. Someone with enough patience and audacity could surely make a web server in BASIC for the C64, but it's such a ludicrous project that it would only serve as a proof of concept, not a useful tool.

Nothing you learn BASIC will ever help you. It's all garbage. You're viewing this through the rosy lens of history. At the time it was the best we had, we made do, we did great things with it, but now there's far better tools.

People can and do make furniture with hand-powered tools, but let's be honest. As much as power tools are more complicated and more dangerous, it's not hard for people to learn how to use them, and if they do they'll be far more productive.





Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: