Hot answers tagged

45 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 ...
user avatar
  • 8,196
39 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 ...
user avatar
  • 5,155
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 ...
user avatar
  • 10.2k
34 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 ...
user avatar
33 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. ...
user avatar
  • 8,196
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 ...
user avatar
31 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 ...
user avatar
  • 1,055
31 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 ...
user avatar
  • 57.3k
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 ...
user avatar
  • 21.9k
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 ...
user avatar
  • 17.9k
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....
user avatar
  • 174k
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, ...
user avatar
  • 28.4k
22 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 ...
user avatar
  • 174k
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, ...
user avatar
  • 174k
20 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 ...
user avatar
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 ...
user avatar
  • 174k
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 ...
user avatar
  • 7,814
19 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 ...
user avatar
  • 32.5k
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 ...
user avatar
19 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 ...
user avatar
  • 28.1k
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 ...
user avatar
  • 174k
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 ...
user avatar
  • 8,196
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 ...
user avatar
  • 174k
17 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 ...
user avatar
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, ...
user avatar
  • 3,812
14 votes
Accepted

What are the names of the computers, that were used in the CP/M advertisement?

From left to right: DEC VT100 family terminal, which may have been connected to some other system or in VT180 form, which was a VT100 with a card that turned it into a standalone computer. IBM PC ...
user avatar
  • 633
14 votes
Accepted

Are all CP/M-80 implementations binary compatible?

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 ...
user avatar
  • 57.3k
13 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 ...
user avatar
  • 916
13 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 ...
user avatar
  • 1,485
13 votes
Accepted

Is there a way to execute CP/M binaries on a modern Linux computer

jhallen/cpm is pretty close to a compatibility layer via emulation. It runs in a terminal and maps the current CP/M drive to the current Linux directory.
user avatar
  • 17.2k

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