Hot answers tagged

46 votes

Why does the Commodore C128 perform poorly when running CP/M?

(2017.03.03) I have added a second answer with diagrams and more technical details. This answer is already huge and self-contained; the other focuses on the complexities due to hardware. Why does the ...
RichF's user avatar
  • 8,771
46 votes
Accepted

Why does the Commodore C128 perform poorly when running CP/M?

I'm Linards Ticmanis, the guy who put out the CPMFAST package in 1999 that has been mentioned several times in the other answers (although I go by the nickname TeaRex on here). While creating that, I ...
TeaRex's user avatar
  • 1,205
40 votes

How did the Apple II forward binary instructions to the Z80 software card with CPM?

They both shared the same memory so it didn't really forward instructions. The Z80 card stopped the 6502 running using the DMA signals and the system swapped between the two by writing to $CN00 where ...
PeterI's user avatar
  • 5,277
37 votes

Why did CP/M and MS-DOS use the BIOS instead of their own drivers to access hardware?

The BIOS originated as part of the CP/M operating system. It was the "layer" that interfaced directly with the hardware and as such, was usually machine specific. The idea is that, if you ...
JeremyP's user avatar
  • 11.6k
35 votes

Fastest non-emulated CP/M Z80-based computer ever built?

If we consider only real Z80 (i.e. no emulation and no FPGA), probably the fastest Z80 compatible CPU is eZ80 (runs at 50 MHz, but has 3-stage pipeline, so in theory it could reach 3× the speed of Z80 ...
Radovan Garabík's user avatar
34 votes
Accepted

What was the intention with the Commodore 128?

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. ...
RichF's user avatar
  • 8,771
32 votes

What was the intention with the Commodore 128?

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 ...
Brian H's user avatar
  • 60.5k
32 votes

Why did the Z80 with 4-bit ALU out-perform the fully 8-bit Intel 8080?

... a scaled-down, cost-reduced, clone of the Intel 8080. The Z80 had a massively extended instruction set, featured more addressing modes and had more registers than the 8080. It also had a built-in ...
Martin Rosenau's user avatar
27 votes
Accepted

Why does CP/M use CALL 0005h for its syscalls?

CP/M, the operating system for Intel 8080 and Z80 (and others as well, but later) CP/M is an 8080 operating system. Like DOS is an 8086 system. That other CPUs may as well execute it due to close ...
Raffzahn's user avatar
  • 218k
26 votes
Accepted

Purpose of two disk drives on the Osborne 1

Remember that these systems (not only the Osborne 1) didn't have harddisks. Everything ran from floppies. So usually you had one floppy where the program was on, together with OS related files. And ...
dirkt's user avatar
  • 27k
26 votes
Accepted

When did the Altair move ROM to the top of memory?

It didn't move anything. There is no ROM at the beginning of memory. As the system did not include any code in ROM at all by default, ROMs were optional and usually placed at the end of memory. ROM is ...
Justme's user avatar
  • 30.4k
24 votes

Fastest non-emulated CP/M Z80-based computer ever built?

Hard to tell. The fastest Z80 CP/M system I had in ye olde days (aka ~1982) was a Z80H card for my Apple II running at 12 MHz. It got its own 64 KiB and was a clone of a similar card running at 6 MHz....
Raffzahn's user avatar
  • 218k
23 votes
Accepted

Did CP/M provide compatibility for screen-based programs?

Two-dimensional positioning was not provided by basic CP/M; the BIOS provides only a single-character console output call, and does not define any control characters. Furthermore, unlike MS-DOS there ...
Tommy's user avatar
  • 36.5k
23 votes
Accepted

In CP/M, how did a program know when to load a particular overlay?

In CP/M, there is no support for overlays at the operating system level. There isn't even a system call to load an overlay (comparable to INT 21h/AX=4B03h under MS-DOS). If a program uses overlays, ...
john_e's user avatar
  • 7,045
22 votes
Accepted

Did CP/M support custom hardware using device drivers?

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, ...
tofro's user avatar
  • 34k
21 votes

Why did CP/M and MS-DOS use the BIOS instead of their own drivers to access hardware?

CP/M was hardware independent - there was no notion of a reference machine (as the IBM PC was for MS-DOS), so CP/M could not provide drivers. The hardware producer had to develop the drivers and ...
Ralf Kleberhoff's user avatar
21 votes

In CP/M, how does control-Z (hex 1a decimal 26) not interfere with ordinary file storage?

What would happen if I transferred this file to a CP/M system? Depends on your transfer utility and how it handles the data presented. Since the CP/M end of file marker is control Z or 1A in hex, ...
Raffzahn's user avatar
  • 218k
20 votes
Accepted

CP/M in fewer than 80 columns

Was CP/M ever used, in practice rather than just as a tech demo, in less than 80 columns? Most prominent here may be the Apple II with Micro-Soft's Softcard. While most users did use it with an ...
Raffzahn's user avatar
  • 218k
20 votes
Accepted

Why did the Z80 with 4-bit ALU out-perform the fully 8-bit Intel 8080?

Possibly a simple logic trick. The slow path in addition is carry propagation (not the individual half-adders). You can thus often double the clock rate by pipelining the carry. If you pipeline the ...
hotpaw2's user avatar
  • 8,183
20 votes

Early implementations of the `system()` call in a consumer OS

MS-DOS allows an application to invoke a nested application. Processing of the former application will be suspended until the latter application returns, whereupon the former application will ...
supercat's user avatar
  • 35.7k
20 votes
Accepted

How many characters/pages could WordStar hold on a typical CP/M machine?

I wrote at least one manual of about 20 pages in about 1986 on CP/M WordStar 3.3, using a Microsoft Z80 Softcard plugged into an Apple IIe. That would swap text in or out to floppy disk from time to ...
John Dallman's user avatar
19 votes
Accepted

Are there games for the C128 that run (mainly) on the Z80 rather than the 6502?

You can write Zilog 80 programs and games (as I do) on the Commodore 128. I exploit Z88DK, which does the magic of booting the C128 in Zilog 80 mode. The Zilog80 at 2mhz effective speed is about as ...
Fabrizio Caruso's user avatar
19 votes

What was special about "Vulcan" - the CP/M database program?

Try and find the book "Programmers at work" by Susan Lammers, subtitled "interviews with 19 programmers who shaped the software industry" (slight hyperbole), written in 1986. Apart ...
No'am Newman's user avatar
19 votes
Accepted

Running CP/M on my own Intel 8080 emulator

Sounds like you got to go the same way as any system manufacturer back then: Build your (virtual) Hardware. CPU, RAM, ROM emulation Some terminal connection And at least some (virtual) mass storage ...
Raffzahn's user avatar
  • 218k
18 votes

Why does the Commodore C128 perform poorly when running CP/M?

My first answer attempts to answer all the OP's questions without going too deep into the hardware details. Since posting that answer, I have had the pleasure of corresponding for several days with ...
RichF's user avatar
  • 8,771
18 votes

What is the meaning of M in the Z80 statement ADD A,M

In 8080 Assembler M is the memory referenced to by HL. Depending on the assembler used this would be written as ADD M (Original Intel 8080 syntax) or ADD A,M (Later Intel syntax as used for example ...
Raffzahn's user avatar
  • 218k
17 votes

Good Z80 disassembler/decompiler on modern equipment?

The old IDA freeware ver.3.7 supports Z80. It has a Turbo Vision style interface, which may be something that puts you off. It is also no longer distributed officially. However, it is very powerful, ...
introspec's user avatar
  • 4,152
16 votes

In CP/M, how did a program know when to load a particular overlay?

The most popular language for CP/M that supported overlays was probably Turbo Pascal. Turbo Pascal's runtime libraries did all the overlay handling for you, you simply declared a function or procedure ...
tofro's user avatar
  • 34k
14 votes
Accepted

How did the Apple II forward binary instructions to the Z80 software card with CPM?

TL;DR: this longish answer address the "mystic" property of the question; i.e., the sense of wonder about how this could be possible; not the actual workings of the specific components. The gory ...
AnoE's user avatar
  • 1,549
14 votes

Why did CP/M and MS-DOS use the BIOS instead of their own drivers to access hardware?

The simple answer is that they just didn't need them! Why reinvent the wheel, when the required interface is already provided by the ROM BIOS? This allows the operating system to be more portable and ...
Cody Gray - on strike's user avatar

Only top scored, non community-wiki answers of a minimum length are eligible