
Run CP/M on your C64 using emulation - Luc
https://www.pagetable.com/?p=1315
======
teh_klev
I 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.

------
misterman0
When 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
> _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.

~~~
fit2rule
I think its more the removal of the compiler from a default installation that
has killed programming for kids. If the major OS's still shipped with tools
onboard (i.e. without requiring an additional install) that enabled
development out of the box, the barrier to entry would be lower.

As it is however, developer tools are a multi-billion dollar industry, and
there is very definitely a desire by all the players in this space to milk it
for every penny.

~~~
monocasa
A web browser has a full compiler/interperter available. JavaScript isn't the
best language in the world, but in context, these simple BASICs derived from
Dartmouth BASIC were so crappy that Dijkstra said

> It is practically impossible to teach good programming to students that have
> had a prior exposure to BASIC: as potential programmers they are mentally
> mutilated beyond hope of regeneration.

and wrote Go-to Considered Harmful talking about BASIC.

ie. it's not a high bar we're trying to reach here.

~~~
fit2rule
I think the distinction needs to be made between native development, which is
much more performant, with far less dependencies, than web-based development -
which requires a great deal of runway before it can be launched.

Removing compilers from the base OS install package has been detrimental to
application development, and has created a bias towards web-based tools, for
the reasons you state.

~~~
monocasa
Outside of Unix, base install has never included compilers. And the people
talking about yesteryear's more introspectable computers aren't talking about
Unix workstations.

These people are talking about BASIC interpreters, not native development.

And there's no dependencies for web based development unless you want them.
Just open notepad and save a .html file. Done.

------
projectramo
I 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
I hope you've upgraded your C64 power supply so it won't kill the machine
before "dir" even finishes its execution ;-)

------
anyfoo
He 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
> Booted in VirtualC64

Perhaps and possibly an unfair comparison given that you're already running in
an emulated C64?

~~~
anyfoo
No, 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
Fair 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 :)

~~~
anyfoo
Do you mean because of subjective feeling of it independent of speed?

Because as for performance, we are talking about emulating a fixed-frequency
machine thousands of times slower. There was no "variable performance", CPU
and video timings are pretty much exactly defined. This CP/M emulator was
exactly as fast or slow on any stock C64[1], and, correctness assumed, any
emulator worth its salt on any non-ancient PC (20 years?) will show no
perceptible difference.

The "thousands of times slower" is not entirely true, since a C64 emulator has
to emulate much more than just its CPU, and the emulator task gets
uncontrollably preempted. But there is no way that CP/M will feel any
different on the real machine, in terms of performance.

[1] The only significant exception was that NTSC machines were a tiny bit
faster than PAL machines: A tad over 1MHz vs. a tad below 1MHz, to fit the
respective video standard's timings.

------
aj7
I 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.

------
Torwald
The correct way of running CP/M on a C64 is to make an hardware update to
C128.

~~~
pgrote
The C128 was a great machine when it came out. Best of both worlds. True 80
columns and no hacks lol

~~~
anyfoo
The 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_...](http://commodore64.se/wiki/index.php/Commodore_128_assembly_programming#80-column_mode)

------
madengr
I 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.

------
basicplus2
Or plug in the CP/M cartridge in the back and away you go..

