Was it the original intention to combine them?
No. The Z80 was not even part of the original design. It was added out of necessity to meet a "100% C64 compatible" claim of the original marketing. The C64 offered a CP/M expansion cartridge, which for some reason would not run correctly when inserted into early C128 prototypes. So about 2 months into a 5-...
The Commodore 128 was intended to be a fully-compatible, more professional, upgrade to the popular Commodore 64. The marketing called for addressing the most widely criticized shortcomings of the C64 that made it unsuitable in competing with more "professional"/business-oriented machines like the Apple //e and //c and the IBM clones.
C64 compatibility was ...
The answer depends on the version.
CP/M 2.2 did not support any loadable device drivers. There simply was no provisioning to do that. Originally, the in-built device drivers were limited to storage, console, and serial drivers. The system vendor could extend the BIOS with new devices, but that was fixed during the system build and nothing was loadable on ...
The primary benefit of CP/M was that the applications software was written for the CP/M-80 platform, which made those applications binary compatible across the many computer systems that were compatible with the platform (notwithstanding the fact that some application vendors would create Z80-specific binaries, which naturally were NOT compatible with 8080 ...
Did CPM support custom hardware using device drivers?
Yes, of course, that's what the BIOS was for.
The title is somewhat misleading, as from the question body it seems you're asking about loadable device drivers, where loadable means that drivers were loaded at startup (or later) from separate binaries and linked into the system to offer their services. ...
CPM 2.2, the most widely used and generally the progenitor of MS-DOS, supported only a few predefined devices via its BIOS.
console input and output
a listing device (printer) output
a punch (presumable paper tape) output
a reader (also paper tape) input
various calls to control a mass storage device (floppy disk)
and that was that.
M-BASIC-80 knows the modifier "A" for the SAVE command - So, you should be able to create a readable ASCII file directly on the Kaypro computer by doing
If you don't want to mess with old disks on a modern computer (I recommend you don't even start to look into this), your best bet would be to set up a serial RS-...
The original intention was basically to have the functionality of two separate computers: a 6502-based system running Commodore's OS (with some features added beyond what the Commodore 64 offered, such as 80-column display and more memory) and a Z80-based system running CP/M. (These could not be used at the same time.) This is obviously cheaper than having ...
Was it the original intention to combine them? Or was it intended the way it was launched (two computers, or three in one case and that's it, simly said).
Basically yes. It was a sounding approach to get more revenue from an, at that time already ageing, 8 bit concept without investing much, while running a small risk of failure, as there was no risk of ...
Were these files also OMF, or did they use a different file format?
Short answer: Nope, all the same (with some extensions over the years)
The long story.
Intel originally intended PL/I to be the main language for 8008 and 8080 systems and made their PL/M compiler able to produce absolute code as well as relocatable one.
There where variations for each ...
It wouldn't happen to be the one that the listing starts/ends like this, would it?
10 'EXPANDED APRIL 1977 BY W.A. BURTON
20 'PIRATED JAN. 1978 BY ZOSO
30 DIM G(8,8),S(8,8),K(3,3)
50 GOSUB 5460
6350 IF Q8<0 OR Q8>S THEN GOTO 6340
6370 PRINT E;" UNITS OF ENERGY NOW - TRY AGAIN."
Looks like one of the original authors chimed in on a USENET thread (comp.os.cpm):
I'm Michael Pagels, one of the two authors. We had a great time
writing this game, and it helped pay for grad school. Of course, we
had to change the name of Dungeon Master; something pesky about
copyrights! We never got to Nemesis II, but we did write one of the
Searching for "fastest Z80" finds this discussion. I have overclocked a 20Mhz Z80 with KIO (Z84C90) as the IO device to 33 MHz. Everything is running zero wait state. It can execute the comprehensive instruction test, zexall.com, in CPM under 24 minutes. So is this the fastest plain old Z80? More info here: https://www.retrobrewcomputers.org/doku.php?id=...
Basically the situation is much like with DOS later. DOS itself is pure 8086 code, while applications may require later/different CPUs (*1) - always check the fine print on the box (*2)
Are all Z80 CP/M implementations binary compatible?
Yes, CP/M (BDOS/CCP/utilities) is pure 8080 code. BIOS in contrast is supposed to be machine specific anyway, so it's ...
If you could get your computer to load the disk (which sounds easier than actually done, considering the huge amount of different and entirely incompatible disk formats that exist for CP/M computers) and your computer had a Z80 CPU (some software was Z80-only, like Turbo Pascal, for example) and enough memory, you could very probably run next to all ...
They were .REL files, not .OBJ files. The format is fully described here. It was a bitstream containing 9-bit bytes, 18-bit addresses, and 6-bit markers some of which in their turn contained either 18-bit addresses or 3+8n-bit names or both.
I once wrote a utility which consisted of a small loader which installed the main body of the utility in high memory: ...
There was no BIOS on the early computers. There was only the hardware. To get CP/M to work on a computer, somebody had to write a BIOS which would receive calls from CP/M (read character, write character, read disk sector, write disk sector) and make the hardware obey.
If your computer didn't have a ready-made CP/M distribution (which would have been ...
While reading through the May 1978 issue of Popular Electronics, I came across this tiny news item that may be germane to this topic:
8080 Cassette Operating System.
COS, an adaptation of the CP/M disc operating system, is intended for use on
microcomputers with Micro Designs' digital cassette systems. The systems
maintain a file directory and ...
CP/M viruses could have spread quite successfully
I doubt about that:
A virus cannot infect every kind of file format but only files that contain code:
Other files that contain any kind of code (e.g. macros in office documents)
File formats that can be manipulated in a way that an error happens when opening the file which causes the ...
For example MBASIC (and GBASIC) supplied with the Microsoft Softcard for the Apple ][ are custom for the that environment and have support for paddles, lores and hires graphics.
This is however unusual for a CP/M application, most have a terminal configuration program to allow customisation for that environment. I wouldn't be surprised to find ...
Here's one possible approach (which I haven't tried myself):
Create a TRS/80 CPM boot disk
Transfer BBC BASIC to the TRS/80 separately
Creating a TRS/80 CPM Boot Disk
David Keil's TRS-80 Emulator is able to use both emulated virtual floppy drives, and actualy hardware floppy drives, using the host PC's floppy interface. It's system requirements are ...
If the boot image needs to occupy areas of the disk which are also addressable as filesystem blocks (which is my understanding of the question above) wouldn't it be simplest to create a file containing the correct data and copy that to the disk first? That would populate the sectors with the required boot image and prevent other files from overwriting them.
Basic interpreters saved the code in a tokenised form to save space. I found this description of the format used by GW-Basic, a later version of MBASIC. I don't know if the file format changed between the versions, though.
It wouldn't be too hard to write a bit of code to convert from the byte-...
Another issue that hasn't been mentioned was screen control, the CP/M equivalent of curses, if you will.
Different systems had different ways of moving the cursor around the screen, either by escape sequences sent out through BDOS console output, or directly banging the display controller and screen memory.
By and large, the solution to this was the same ...
After some search I found that Coleco Adam could use CP/M on its tape stations. These were not ordinary audio cassette players, but Digital Data Packs that differed slightly from standard audio cassettes (Thicker tape and some holes extra).
I have verified with an emulator that CP/M 2.2 can boot from these DataPacks, but I have not so far verified how slow ...
I recently came across the Zedripper, which would definitely count as a contender, in particular because it uses multiple Z80 CPUs, so something similar would would have been possible with legacy technology.
Specs from the website:
16-core Z80 processor running at 83.33 MHz
64KB of dedicated RAM for each Z80
16-way ANSI-compatible “Multiterm” terminal ...