Questions tagged [cp-m]

For questions related to the CP/M operating system by Gary Kildall.

Filter by
Sorted by
Tagged with
51 votes
7 answers
12k views

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

I have seen several claims of poor performance of the C128 when running CP/M, and would like to better understand these claims, especially in comparison to other CP/M machines of the early to mid-...
Brian H's user avatar
  • 60.1k
44 votes
10 answers
15k views

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

What were the fastest CP/M computers ever built? I'll restrict this to the Z80 variant of CP/M, no CP/M-86, CP/M-68k etc. Z80 compatibles with higher clock frequencies or more instructions/clock or ...
dirkt's user avatar
  • 26.1k
27 votes
4 answers
5k views

What was the intention with the Commodore 128?

The Commodore 128 had 2 CPUs, 2 video graphic chips, and 2 I/O systems/chips. It had 3 modes: Commodore 64 mode, Commodore 128 mode and CP/M. The first shared one of each CPU/chip, the CP/M mode the ...
Michel Keijzers's user avatar
25 votes
12 answers
5k views

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

Modern versions of Windows (and other modern operating systems I suppose) have their own drivers to access hardware. But as I have read, in the old days, if CP/M or MS-DOS wanted to access hardware, ...
user7681202's user avatar
  • 1,827
24 votes
4 answers
5k views

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

Microsoft produced the Z80 Softcard for the Apple II enabling it to run CPM and many Z80 binary programs. This seems to be an unthinkable achievement. (For a kid who had an Apple IIe but was only a ...
hawkeye's user avatar
  • 2,565
22 votes
6 answers
7k views

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

Looking at the development and architecture of the Z80, it appears to be a scaled-down, cost-reduced (in terms of total system cost), clone of the Intel 8080. It only used a 4-bit ALU. I assume this ...
Brian H's user avatar
  • 60.1k
21 votes
3 answers
2k views

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) used to call 0005h for syscalls. The application would load the syscall number into a specific register (I think it ...
Omar and Lorraine's user avatar
20 votes
1 answer
1k views

Are any CP/M systems still in commercial use today?

I understand that there is a great deal of mainframe-era enterprise software that is still in active use, if not on the original hardware then in emulated environments. Its users keep it running ...
Psychonaut's user avatar
  • 7,023
19 votes
8 answers
4k views

CP/M in fewer than 80 columns

The standard for business computing in the seventies and eighties was 80 columns, and CP/M was primarily for business computing, so it's unsurprising that CP/M typically ran in 80 columns. For example,...
rwallace's user avatar
  • 58.4k
16 votes
4 answers
1k views

Toolchain and workflow to build CP/M

Building my own version of CP/M has always been a fascinating to-do project. Problem is that it seems that the source code is not in regular assembler, but some kind of macro-assembler like language ...
mcleod_ideafix's user avatar
16 votes
2 answers
881 views

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

The Vulcan DBMS for CP/M micros was originally developed in 8080 assembly language by a contractor working for Jet Propulsion Lab, based on an earlier JPL mainframe program. This code went on to be ...
Brian H's user avatar
  • 60.1k
15 votes
4 answers
3k views

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

I have a few old programs/games which I'd like to run today. As there is Wine for running Windows programs, I wondered if there is a compatibility layer for CP/M. Obviously it would need to implement ...
Omar and Lorraine's user avatar
15 votes
3 answers
2k views

Running CP/M on my own Intel 8080 emulator

I recently finished writing an emulator for the Intel 8080, having passed all of the usual test suites, and wanted to try running an actual OS on it (such as CP/M). I'm aware that I would have to ...
linguisician's user avatar
15 votes
3 answers
2k views

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

The Commodore 128 was a version of the Commodore 64 that also had a Z80 CPU along with its "native" 6502 CPU so the system could run CP/M as well as C64 software. (As well as more RAM and ...
hippietrail's user avatar
  • 6,333
14 votes
4 answers
2k views

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

I refer here to 'screen-based programs' that are not actually graphical, but take full advantage of the screen as a two-dimensional array of 80x25 characters, as opposed to typical 'command-line ...
rwallace's user avatar
  • 58.4k
14 votes
1 answer
1k views

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

Consider this - I have made a file called test.bin on a Windows machine. It is exactly 256 bytes long, and contains nothing more than 00 to ff in each byte. What would happen if I transferred this ...
Duke Dougal's user avatar
14 votes
1 answer
4k views

Good Z80 disassembler/decompiler on modern equipment?

I have a hobby project with an old CP/M-80 system, where I now would like to disassemble/decompile some compiled code – a ROM and some small executables – into assembly source so I can regenerate the ...
Thorbjørn Ravn Andersen's user avatar
13 votes
4 answers
2k views

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

Here is what I understand so far: A program that was too large to put into main memory was broken into several overlay regions. Once you needed data from outside of the currently loaded region, ...
Michael Stachowsky's user avatar
13 votes
3 answers
2k views

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

I was looking at the Atari Word Processor which could hold only about one or two pages in 48k memory due to it requiring DOS to be loaded along with the relatively large program itself. That led me to ...
Maury Markowitz's user avatar
13 votes
1 answer
1k views

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

The 8080 starts running code at location 0 on reset. The natural layout of memory on a computer using that CPU is therefore ROM at the bottom of the memory map and RAM at the top. CP/M demands the ...
rwallace's user avatar
  • 58.4k
13 votes
3 answers
2k views

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

I am reading the article about the CP/M operating system and wonder which computers are displayed in this picture. I have recognized the "IBM PC" only - in the middle.
MiniMax's user avatar
  • 295
13 votes
2 answers
831 views

Are there any known viruses for CP/M?

Are there any (known) viruses for CP/M? Chronologically, CP/M machines fit into the time period of the first home computer viruses, starting with other 8-bit computers. Given the hardware ...
Radovan Garabík's user avatar
12 votes
3 answers
2k views

Did CP/M support custom hardware using device drivers?

MS DOS Ver 1.0 did not have OS support for device drivers. DOS ver2 added support for device drivers in the config.sys file during boot with the "DEVICE=[path][filename][parameters]". Did CP/M have ...
jwzumwalt's user avatar
  • 4,469
12 votes
5 answers
2k views

Are all CP/M-80 implementations binary compatible?

I never was into CP/M, but I knew it was very popular and the amount of software out there was significant. That being said, when you looked beyond the Kaypros, the IMSAIs, the SOLs and the like which ...
bjb's user avatar
  • 15.8k
12 votes
5 answers
2k views

What was the most popular CP/M terminal type?

I'm porting CP/M to a new/old machine (the Amstrad NC200 laptop). Running programs on it is no problem, but running interesting programs (i.e. WordStar, Turbo Pascal and Ladder) involves implementing ...
David Given's user avatar
  • 1,330
12 votes
3 answers
2k views

Why did CP/M require RAM in the bottom part of the address space?

A Z80 on RESET, starts executing from 0x0000. This is why the ZX machines and so many others have ROM at the bottom of the address space. Presumably an 8080 is the same. But as I recall, a CP/M binary ...
Omar and Lorraine's user avatar
12 votes
2 answers
837 views

Why did Amstrad choose such bank combinations for its all-RAM mode in +2A and +3 Spectrum computers?

The +2A and the +3 versions of the ZX Spectrum, made by Amstrad, had a new banking mode, called "special". This banking mode is entered by setting bit 0 of port 1FFD. When active, two bits from this ...
mcleod_ideafix's user avatar
12 votes
1 answer
2k views

How to quit MBASIC and return to CP/M?

I've tried everything I can think of. EXIT QUIT END STOP BYE Q…
Jacob Krall's user avatar
  • 2,230
11 votes
5 answers
2k views

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

Nowadays, it's easy to take for granted the system() call (as defined in POSIX), which allows a user program to easily execute a child process and wait for it to complete. Obviously, this is a trivial ...
Brian H's user avatar
  • 60.1k
11 votes
2 answers
1k views

Getting started with CP/M

I have a Commodore 128, but this is a platform-neutral question. I have a lot of experience with a lot of operating systems (including DOS, Linux, BSD and AmigaOS) but I never used CP/M much back in ...
Jim MacKenzie's user avatar
11 votes
1 answer
557 views

Assembler where output file was executable WHILE including the source code

I seem to remember using an assembler with the following interesting workflow: You'd write an assembly language file and assemble it. The output overwrote your source code by placing the executable ...
davidbak's user avatar
  • 6,119
10 votes
8 answers
1k views

CP/M without floppy drive

I remember reading (at the time when it was current) in a hobbyist magazine about a ZX Spectrum modification to map RAM into ROM (not unusual), and implementing CP/M for it. The author ended the ...
Radovan Garabík's user avatar
9 votes
4 answers
2k views

Purpose of two disk drives on the Osborne 1

I recently discovered the Osborne 1 computer, and I noticed it had two floppy disc drives. What was the purpose of including two drives?
user avatar
9 votes
1 answer
336 views

What was FDOS an abbreviation for in CP/M?

Digital Research wrote in the CP/M manual that "The BIOS and BDOS are logically combined into a single module with a common entry point and referred to as the FDOS. " What is FDOS an ...
BipedalJoe's user avatar
8 votes
4 answers
1k views

How do you run a program automatically when CP/M 2.2 loads?

Following my question on booting CP/M automatically on RC2014 Z80, I'd like to run a program after CP/M starts, similar to how autoexec.bat works on DOS. I see that CP/M 3 has PROFILE.SUB which would ...
Nick Bolton's user avatar
8 votes
2 answers
2k views

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

Recently I have been trying to compile CP/M 2.2 from source. When I try to assemble, everything works except for the instructions ADD A,M and SBC A,M, which the assembler returns a syntax error. I ...
tergav17's user avatar
8 votes
2 answers
880 views

How big was WordStar 1.0?

How big was the original CP/M version of WordStar? As in, the size of the program itself? Presumably it was in the low tens of kilobytes (I don't think it's possible to cram a practical word processor ...
rwallace's user avatar
  • 58.4k
8 votes
2 answers
555 views

Is there any known magic number signature for CP/M-80 program files?

I'm looking for a way to identify CP/M-80 (i.e. 8080 code) program files (.COM) from their content. A process usually known as Magic Number or File Signature detection, intended to identify a file by ...
Raffzahn's user avatar
  • 213k
8 votes
2 answers
1k views

IBM would-be purchase of CP/M

It is well-known that on a sunny day in 1980, when the IBM representatives came knocking on the door of Digital Research, Gary Kildall was still in the air on the way back from visiting another ...
rwallace's user avatar
  • 58.4k
7 votes
3 answers
1k views

How to get a plain text file version of a CP/M .BAS (M-BASIC) program?

I have an old game (STRTRK.BAS) from my dad's Kaypro 10 that I would like to convert to a plain text file. Basically, what I'm trying to do is get it onto a modern computer in plain text format so I ...
dvanaria's user avatar
  • 331
7 votes
1 answer
483 views

Did OSes write the floppy's logical sector number resulting from sector interleave/skew in the IDAM sector ID, or was it up to the OS?

I've been looking at MicroBee floppy disk image files. They use the DSK/EDSK image file format originally created for Amstrad CPC emulators, probably because both systems use derivatives of the CP/M 2....
hippietrail's user avatar
  • 6,333
7 votes
1 answer
498 views

Where can I find "Nemesis II", the sequel to "Nemesis", an old CP/M game?

In 1981, the "Nemesis" game was released for CP/M-based machines by Super Soft Inc., with the author attribution of Michael A. Pagels and Michael Q Hiller, and artist attribution of Diana J. Bush. ...
nijineko's user avatar
  • 173
7 votes
1 answer
415 views

How to get BBC BASIC to TRS-80?

I recently discovered there's BBC BASIC for CP/M machines. Having had my fill of Microsoft Basic, I need to get BBC BASIC onto a disk I can boot on a TRS-80 Model 4P. I have no CP/M disk (or image) ...
Brian H's user avatar
  • 60.1k
7 votes
1 answer
421 views

Why didn't the CP/M-86 assembler support traditional macros?

The ASM86.CMD assembler Digital Research shipped with CP/M-86 provided only code-macros, a limited type of macros for creating new instructions through a small set of specific directives. Why didn't ...
Paolo Amoroso's user avatar
6 votes
3 answers
2k views

Can a Harlequin ZX Spectrum clone be modifed to run CP/M?

The ZX Spectrum (and therefore the Harlequin) has its ROM from $0000 to $3FFF, while RAM further up to $5AFF is used for the screen (see Memory-Map). As CP/M expects RAM from $0000 upwards the two are ...
Paul Humphreys's user avatar
6 votes
2 answers
551 views

CONIN (Console In) in CP/M and "old characters" in character latch

CP/M uses CONIN to read a single character from the keyboard, and it will assert CONST to poll the status register for incoming characters. Let's assume the keyboard controller can buffer one ...
BipedalJoe's user avatar
6 votes
2 answers
714 views

CP/M SKU per CPU only?

The impression I get is that CP/M relied on the BIOS, provided in ROM with the computer, for all the hardware-specific functions. So if you bought CP/M, you didn't have to specify what computer you ...
rwallace's user avatar
  • 58.4k
6 votes
3 answers
1k views

Z80, best way to page out EEPROM

Trying to design a Z80 based computer that starts from an EEPROM, loads CP/M to RAM and pages out (switches off) EEPROM to allow CP/M to access full 64K RAM. What is a good way of achieving this ? My ...
Charles's user avatar
  • 381
6 votes
2 answers
1k views

Are there any drivers available to use DivMMC on the Spectrum +3e with CP/M plus?

Heading says it all. I have a Spectrum +3 (with +3e ROMs if that makes any difference) with a DivMMC SD card interface. This works fine in +3e mode, but as I like to use the +3 with CP/M plus (...
tofro's user avatar
  • 33k
6 votes
1 answer
470 views

How do I read a port value using Turbo Pascal inline code on CP/M?

After successfully using port[0] to read a port value in Turbo Pascal, I thought I'd try to understand how to do this using inline assembly/machine code. I'm able to write to the port (my OutPort ...
Nick Bolton's user avatar