10 ms·
Run CP/M on your C64 using emulation
- misterman0 7y agoWhen I was ten I got a vic 20. Do you know how old I was when I arranged my first beta testing session? I invited my brother to play a text based adventure game that drew on screen the scenery using nested if else statements. I programmed the first couple of scenes and asked him to play through them. He said it was a bit short but the idea was good. He was eight. I was still ten. I have two kids now. 9 and 12. They are brighter than me. They speak swedish and English almost fluently thx to yt and since I introduced computers early in their lives they aren't scared of anything. My son started his YT channel at the age of 8. Mostly in game footage. He uses down pretty cool sw to edit his clips. My daughter plays Roblox and act as everyone's go to for all questions revolving around that game. Both navigate windows or Android or macos like they have inherited their knowledge from me. My kids are brighter as hell. Not one has asked me about programming. I blame 8080. It's not accessible. Is it technically more advanced? Perhaps. But somewhere along the line we forgot about computing and children. Somewhere along the line we said it's no longer important for kids to learn programming. It's for adults.
- bcaa7f3a8bbc 7y ago> I blame 8080. It's not accessible. Is it technically more advanced? Perhaps. I think blaming 8080 is extremely inappropriate here, as it is historically inaccurate. Intel 8080 is a preliminary microprocessor (and usually even not considered a x86 processor at all), it was designed in the early 70s, it was very accessible. Arguably, it was the processor that created Altair 8800, which was the ancestor of the entire lines of home computers in the 80s. The original Microsoft BASIC interpreter also targeted Intel 8080 and Altair 8800, the BASIC interpreter would later be licensed to all the other home computer manufacturers including Commodore. The derivative of the Intel 8080, Zilog Z80, was used on Sinclair and MSX computers, particularly, ZX Spectrum is the British-equivalent of Commodore 64, and MSX is the Japanese equivalent (also made and sold in some European countries) and introduced a generation to programming. With the correct historical background in mind, you better to blame 8085, 8086 or 8088. It was those processors that established the x86 architecture and the IBM PC, leading us to desktop computing as we know it today. Long words short, 8080 gave us home computers. 8088 gave us desktop computers.
- misterman0 7y agoThx for straightening me out. Ok, so let's blame 8085, 8086 or 8088. Or, we (as in I) can blame no one and instead, only realize there's no blame to manage. Anyway, I regret that we killed 6502. I hope my kids will pick up programming anyway. I think later in life they will feel crippled if they didn't.
- bcaa7f3a8bbc 7y ago> Or, we (as in I) can blame no one and instead, only realize there's no blame to manage. I agree, I think the problem was not a particular microprocessor, but a greater cultural issue. At the end of home computer era, a PC has became someone's workbench, end users are not expected to learn and write programs anymore. There were bright sides, Xerox Alto, GUI, desktop publishing, multimedia, widely-available programs, no need to repeat those stories, we all know them. Meanwhile, accessibility to programming has largely been lost in this process. On second thought, it's not all black-and-white, some accessibility to programming still exists. On Unix-like systems, "python", "perl" is one command away, and even on Windows, JavaScript is one browser window away. If the next generation rewrites the computing history today, I wonder what tools/environment would be seen as the 21st century equivalent of 6502 and home computers. I'm sure it would have a dedicated chapter to Raspberry Pi and Arduino devboards at least.
- misterman0 7y ago>> even on Windows, JavaScript is one browser window away I have nothing but love for Bill Gates' software. I programmed my vic 20 using his BASIC. In my twenties I had no trouble picking up WINTEL + JS. But that's because I had already learnt what is computing. I had already realized what is a virtual machine and what is a "high-level language". When I try to explain to my kids the architecture that is today's computing I don't know where to start. Now I wish there where sprites. When I was ten I grasped the concept or sprites. There is a fair amount of cargo-culting in the following statement but I still believe in it: If we had maintained the 8-bit architecture and even 6502 as a "gateway drug", today, we would be much better off. Talent is hard to find, in my mind, because there is no longer a C64.
- ducttape12 7y agoI'm not sure where I'd recommend anyone (child or adult) start learning how to program. After BASIC disappeared, I always thought Javascript was a good starting place, but even that ecosystem has gotten crazy complex.
- wolco 7y agoTeach them C. Get the screen flashing.
- guiambros 7y agoPICO-8 [1] is a good way to introduce programming to kids in the way people learned in the early 80's. The retro and simplistic interface is a pleasure to work with, and Lua as a programming language is a nice bonus. My 7 yr-old and I just finished our interpretation of Pong. He needed help of course, but got the basic concepts of X-Y axis, variables, calculating ball movement, etc [1] https://www.lexaloffle.com/pico-8.php https://www.lexaloffle.com/pico-8.php
- icedchai 7y agoI wouldn't blame the 8080... The culture around early computers was very different. My earliest computers - TI 99/4A, Apple IIe, Amiga, etc - all shipped with BASIC manuals. Complain about BASIC as a language, but it had a ton of functionality built it and made these machines accessible to anyone. I, too, taught myself basic when I was very young...
- reaperducer 7y agoI think this is an important part of the puzzle. In 6502/6510/Z80 days, computers came with big books to tell you how to program them. Today they come with a leaflet, or less. People are expected to go out and find out how to program their computers, rather than have that information right in front of them.
- detaro 7y agoProgramming is extremely accessible. It's not as required any more, since you can find endless other things to do with your computer easily, so it's not as obvious an progression to try it.
- Torwald 7y agoHas nothing todo with a processor. It's all about what the cool stuff you _can_ do is. Minecraft, YouTube, Instagram, who needs BASIC? It's not about programming, it's about doing cool stuff. In 8bit era that meant programming. Even if you wanted to do grafx or sound you ended up programming the box. Nineteenseventies Unix or Plan9 are cool, you can program on them. The iPhone is cooler, you can do movies and stuff. Here is another vector: compared to the software you could buy back then, the things you could do in your spare time programming were more oftne than not cooler or at least comparably cool. To make a better version of any on single app that comes preinstalled with your Mac is not something you just do. So, why should anyone be interested in learning to program in the first place?
- foldingmoney 7y ago>Here is another vector: compared to the software you could buy back then, the things you could do in your spare time programming were more oftne than not cooler or at least comparably cool. To make a better version of any on single app that comes preinstalled with your Mac is not something you just do. IMO this is definitely the issue, rather than availability. If someone is too lazy to download some programming software then they're almost certainly too lazy to learn to program.
- hakfoo 7y agoI suspect it all has to do with the software distribution models. The C64 generation got a lot of software through things like 'enter it yourself magazines', which would often have programming information on the next page. It was an open invitation "hack and customize the game" which gets you onboarded to programming. You also had things like defeating crude copy protection as an incentive to learn how the machine worked. I got into computers a little later-- my first computer was a 386SX that was obsolete almost as soon as it came out of the box. With no modem, your software selections were limited to buying whatever pig-in-a-poke the local computer store had. When the supply of new exciting software that would run on it dried up, opening up GWBASIC was my route to getting more enjoyment out of the machine. Today, there's basically an infinite library of software easily available. The reaction to "I finished my game and want something new" won't be "let's change the delay loops so the aliens are faster" or "Can I write my own Dragon Quest clone", it's "pop open Steam/the App Store"
- DanBC 7y ago> My daughter plays Roblox and act as everyone's go to for all questions revolving around that game. Feel free to ignore this if she's not interested, but you could try... Show her the roblox development kit, and show her how to walk through the tutorials for setting up a basic obby (obstacle course), then when she's playing a game ask her fi there's something she thinks would be a cool idea, then show her how to implement just that tiny idea. Then get her to come up with an idea for a game, and a bunch of ideas for what happens in it and how it flows, and help her create it, and then polish it up a bit, and publish it so her friends can play it.
- projectramo 7y agoI tried to emulate CP/M on my C64 in 2015. I have typed in DIR and I’ll tell you if it worked when it completes execution.
- bcaa7f3a8bbc 7y agoI hope you've upgraded your C64 power supply so it won't kill the machine before "dir" even finishes its execution ;-)
- Torwald 7y agoThe correct way of running CP/M on a C64 is to make an hardware update to C128.
- pgrote 7y agoThe C128 was a great machine when it came out. Best of both worlds. True 80 columns and no hacks lol
- anyfoo 7y agoThe 80 column chip itself was not very good, though. It lacked a raster interrupt (meaning you'd have to poll) and was full of bugs: http://commodore64.se/wiki/index.php/Commodore_128_assembly_programming#80-column_mode http://commodore64.se/wiki/index.php/Commodore_128_assembly_...
- aj7 7y agoI always find these articles so weird. What’s next? Software to facilitate a 5 x 5 grid of people running Freiden calculators (a la Los Alamos)? I’m being snarky. In 1981 had access to a CPM system, and immediately bought a FORTRAN 4 compiler “Watfor” written at the Univ of Waterloo. A highly useful system. Wrote a program to design ring laser resonators. My first experience with “personal” computing.
- anyfoo 7y agoHe wasn't kidding when he said that the emulation is too slow to even properly register key presses in time. Booted in VirtualC64, tried to type in "dir", and it came out as "dr", and then took a pretty long time to tell me that "dr" isn't a thing. I then typed in "dir" slowly, and this time it worked, but took about a minute to type out the few directory lines... character by character. So, as the article suggests already, I'd really consider this to have been unusably slow even at that time. And then it suffers from the same problem as the actual Z80 CP/M cartridge, namely that the 1541 disk drive cannot read any disks that would contain CP/M stuff. But as a curiosity, that all makes this just more interesting.
- teh_klev 7y ago> Booted in VirtualC64 Perhaps and possibly an unfair comparison given that you're already running in an emulated C64?
- giovannibajo1 7y agoIt would be worrying if a PC can’t emulate a C64 much faster than the original system. And if the GP didn’t remove frame locking, the emulator ran at the same speed of a real C64
- anyfoo 7y agoNo, my computer, as most today, has plenty of power to emulate the C64 with cycle-accurate speed (at least close to), so it should be exactly the same performance as on a real C64. I even switched to unthrottled at times, which with my setup gives about what a ~9MHz C64 would be like. The real one is about 1MHz. Even that was very slow.
- teh_klev 7y agoFair enough, though I'd like to grab an actual C64 to see what the experience is really like with the C64's own hardware. But like all things here it's a hack, everyone's mileage may vary :)
- basicplus2 7y agoOr plug in the CP/M cartridge in the back and away you go..
- madengr 7y agoI have one of those Z80 CPM cartridges for my 64. It’s a massive thing. Have never tried it. Got it in a mound of C64 stuff that came with an SX64 on Craigslist.
- teh_klev 7y agoI hate to be the "BBC Model B" guy :) But anyway, back in the mid 80's I wrote a ton of dBase II code (using WordStar as my editor - I think it was v2), for my employer and at the time couldn't afford a full blown PC (I owned a BBC 'B') so he let me borrow a Torch Z80 co-processor which ran a variant of CP/M called CP/N. It worked like a treat. It used the Beeb's "Tube" interface that basically turned the BBC micro into an I/O device - not unlike the Commodore effort. John, now sadly gone from our mortal coil, was an official BBC/Acorn outlet, so we got to play with a lot of toys. I don't remember the mechanics of getting my code to and from the office CP/M PC's at the time; even under Torch CP/N I seem to remember that BBC drives weren't compatible with real CP/M/MS-DOS PC's - I think I may have transported my code through the medium of floppy disc and used a BBC Micro in the office to squirt my code to/from via serial cable and some XModem/Kermit type of affair, which was no biggy because we already moved data between DG mini's (John was also a Data General broker) to/from PC's anyway. This was all before the joy of ethernet, though we did have a bunch of machines that ran a thing called SageNet(?) which was a kind of network. It's a long time ago, my memories are fading now :) As a final tangent, we initially had a NEC PC8800 and a NEC Advanced Personal Computer - which were lovely bits of kit for their day. We eventually moved to a bunch of PC "clones" (one made by Ferranti which was a really odd thing). I have other stories, but that'll do for now.