Episode #125 of the Stack Overflow podcast is here. We talk Tilde Club and mechanical keyboards. Listen now

Hot answers tagged

26

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 another floppy for your data, texts and so on. That was workable with two drives, but still was impractical if you wanted to copy data. Usually there was some ...


24

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


23

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


22

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


21

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, will CP/M think that my 256 byte file stops when it gets to byte 1A? No, at least not the OS itself. CP/M does not handle CTRL-Z (or any content) specially. ...


17

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 by CP/M's own ASM (*1)) The Z80 assembler equivalent would be ADD A,(HL) (Zilog notation) Are you sure the source you're compiling made for the Z80 (and a ...


15

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 was never a dominant hardware configuration behind CP/M so going straight to hardware wasn't an option. In practice programs tended to ship with support for a ...


13

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


11

Apologies for a non-definitive answer; while implementing a CP/M emulator for the Mac I find a fairly even split in the terminals that software available via Walnut Creek, etc, was configured for out of the box between the ADM-3a, VT-52, Hazeltine 1500 and Osborne control sets. If you're looking to do a really thorough job, I found that simple statistical ...


10

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 LOAD "MYPROG.BAS" LIST SAVE "MYPROG.TXT",A 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-...


9

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


9

CPM 2.2, the most widely used and generally the progenitor of MS-DOS, supported only a few predefined devices via its BIOS. These were: 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. No ...


9

The sticking point: IBM wanted to pay a flat $200,000 license fee to get a royalty-free license in perpetuity. Kildall wanted more. Bill Gates came up with a similar operating system. He gave DOS away to IBM for $50,000 and figured, correctly, that he could get rich by licensing the system to other computer manufacturers.[1] Now, earlier in ...


9

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


7

The impression I get is that CP/M relied on the BIOS, provided in ROM with the computer, for all the hardware-specific functions. No. Usually only a Bootloader is present in ROM. The BIOS is the hardware dependent part of CP/M (*1), loaded from the boot disk. It was the PC who established the rule to have BIOS in ROM by default (*2). So if you bought CP/...


6

It was more complicated. CP/M disks were generally specific to a particular model of computer. During the CP/M era a great number of incompatible 8" and 5.25" floppy disk formats were in use by CP/M machines. There was no guarantee that two Z80 CP/M machines from different manufacturers could read each others' disks. Even if a machine could read another ...


6

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) 40 PRINTCHR$(26) 50 GOSUB 5460 … 6350 IF Q8<0 OR Q8>S THEN GOTO 6340 6360 S=S-Q8:E=E+Q8:PRINT 6370 PRINT E;" UNITS OF ENERGY NOW - TRY AGAIN." 6380 RETURN 6390 RESET If ...


6

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


5

well even old ZX 48K and clones have exposed the AD/DB/CB buses along with /ROMCS signal which can actively disable inbuild ROM. So you can make a small HW that has 16 KByte of SRAM that replaces the ROM with a jumper or switch or programaticaly using some flip/flop and address decoder. This technique is used by any HW peripherial with its own ROM for ...


5

The hardware modifications are possible, and actually already done. The "SuperFoo Harlequin 128" is an all-RAM design based on the original Harlequin that should be capable of running CP/M (Just like the +2 and +3). I haven't heard of someone actually running CP/M on such a machine, but based on its +3 compatibility, it shouldn't be too hard. Some of the ...


5

Note CP/M (the Operating system of the Osborne) didn't have subdirectories as we know today (which more or less forced you to dedicate a disk for a specific purpose in order to keep the overview), it also had very limited storage capacity per disk drive (~180k on a SS/SD disk as on the Osborne 1). That means you typically held the application (for example ...


5

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


4

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=...


4

Depending on the compiler you use, you may need to explicitly state using preprocessor directives that you use 8080 commands. M80 uses .z80 and .8080 to instruct using respective instruction set mnemonics. See https://www.classic-computers.org.nz/system-80/software-manuals/manuals-Macro-80-Assembler.pdf page 20 (16 on the document's page). If it will not ...


4

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


4

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


3

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


3

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: Executable files 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 ...


3

CP/M consists of two parts. The BDOS and the BIOS. In modern terms BDOS can be rougly compared to the operating system like Windows and Linux, and the BIOS compared to a collection of hardware drivers which the operating system uses to talk to the hardware. So what you are proposing is to implement a driver in the BIOS which instead of talking to a disk ...


3

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


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