Posts

A Brief History of CP/M

CP/M, originally standing for Control Program/Monitor and later Control Program for Microcomputers, is a mass-market operating system created in 1974 for Intel 8080/85-based microcomputers by Gary Kildall of Digital Research, Inc. CP/M is a disk operating system and its purpose is to organize files on a magnetic storage medium, and to load and run programs stored on a disk. Initially confined to single-tasking on 8-bit processors and no more than 64 kilobytes of memory, later versions of CP/M added multi-user variations and were migrated to 16-bit processors. Gary Kildall originally developed CP/M as an operating system to run on an Intel Intellec-8 development system, equipped with a Shugart Associates 8-inch floppy-disk drive interfaced via a custom floppy-disk controller. It was written in Kildall's own PL/M (Programming Language for Microcomputers). Various aspects of CP/M were influenced by the TOPS-10 operating system of the DECsystem-10 mainframe computer, which Kildall had ...

What is CP/M

CP/M is a monitor control program for microcomputer system development that uses floppy disks or Winchester hard disks for backup storage. Using a computer system based on an 8080 or Z-80 compatible microcomputer, CP/M provides an environment for program construction, storage, and editing, along with assembly and program checkout facilities. CP/M can be easily altered to execute with any computer configuration that uses a compatible Central Processing Unit (CPU) and has at least 20K bytes of main memory with up to 16 disk drives. Although the standard Digital Research version operates on a single-density Intel MDS 800, several different hardware manufacturers support their own input-output (I/O) drivers for CP/M. The CP/M monitor provides rapid access to programs through a comprehensive file management package. The file subsystem supports a named file structure, allowing dynamic allocation of file space as well as sequential and random file access. Using this file system, a large numbe...

Introduction to 8-Bit Microprocessors

Image
8-bit microprocessors were the first widely used microprocessors in the computing industry, marking a major shift from mainframes and minicomputers to smaller, more affordable systems. The introduction of 8-bit processors in the 1970s enabled the production of personal computers, leading to the popularization of computing and setting the foundation for the modern computing landscape. 8008 The first commercial 8-bit processor was the Intel 8008 in 1972 which was originally intended for the Datapoint 2200 intelligent terminal. Intel's first 8-bit microprocessor, designed by a team including Ted Hoff, Stan Mazor, and Federico Faggin, who had also worked on the 4004.  The chip, limited by its 18-pin DIP, has a single 8-bit bus working triple duty to transfer 8 data bits, 14 address bits, and two status bits. The small package requires about 30 TTL support chips to interface to memory. For example, the 14-bit address, which can access "16 K × 8 bits of memory", needs to be lat...

A Study in CP/M

 So BoatFest 2025 , an International Retro Computer Expo, is coming up this summer and I have decided to give a talk about programming for CP/M, C ontrol P rogram for M icrocomputers.  I have put together an outline here, and I would love to get more ideas on what to cover.  I have not yet been given a time slot or expected duration so I am open to just about anything. Introduction to 8-Bit Microprocessor The history of CP/M What is CP/M Commands Hardware Requirements CP/M Internals Programming Languages: With examples Assembler with ASM BASIC with MBASIC and BASCOM Pascal with Turbo Pascal C with Aztec C Fortran with MS Fortran 80 COBOL with MS COBOL 80 Modern CP/M Tools Modern Hardware Emulators Utilities The outline is linked to each of the sections here in my blog.  I will be condensing the whole thing into a slide show. I am also planning on demonstrating several "Hello World" style applications in each of the programming languages above. And here...

A Tool to Help me Inventory my Components

Image
Background So, this summer I attended a local Retro-Computer festival, Boat-Fest ,where i picked up a selection of ICs from the free table.  When I got home, I realized I had no easy way of figuring out what I had.  This is the impetus for the ChipInventory project. The Project I wanted to do a small project with node.js and this seemed like a good time to start it.  I looked around to see what was already out there in the way of chip identification databases and I found the ChipDB project and its related GitHub Repository and thought that this was a good start.  The YAML file allows for a description of the component, a list of aliases, pin definitions, notes and specifications.  It also has a link to the datasheet for the component.  Unfortunately the datasheet sources used for the original data seems to have moved.  I am slowly updating the links to newer locations. I started by creating a MySQL database that could hold the definition data that w...

Still Working on the New Home Page

It has been a busy few weeks:   Multiple outages at work A new roof on the house  My other personal projects kicking into high gear So that means I have not gotten a lot done on the new home page. I think I have settled on a layout and theme for it that is related to the current placeholder page I have up. The first thing I will put up is some project summary pages for my Arduino hardware and software projects.

A New Home Page is in the works!

 Well, Earthlink has stopped supporting the old Mindspring free web hosting so my old site is gone.  Soon you will be able to find me at my new domain marshallgates.com . In the meantime, I have finished removing all the old, dead, defunct quiz results from my blog history.  There were quizes hosted on geocities , that's how old some of them were. Now I just have to get in the habit of posting something every once in a while.