Skip to content
feilipuPublic
forked from RC2014Z80/RC2014

About

CP/M-IDE for RC2014 repository - 8085 and Z80 CPU - FAT File System CP/M

Resources

Stars

2 stars

Watchers

0 watching

Forks

 
 

Latest commit

 

History

80 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CP/M - IDE

There are several implementations of CP/M available for the RC2014. Each implementation has its own focus, and the same is true here. For larger RC2014 Zed based systems with 512kB RAM RomWBW is the right solution. For your smaller RC2014 Pro based systems with 64kB RAM read on.

For further technical reading, a longer description of CP/M-IDE is here. This description is slightly outdated, but it covers the basics.

Concept

This CP/M-IDE is designed to provide support for CP/M 2.2 with either Z80 or 8085 CPUs while using a normal FATFS formatted hard drive. And further, to do so with the minimum of (no) additional modules, complexity, and expense.

In contrast to other CP/M implementations, CP/M-IDE includes performance optimised drivers from the z88dk. The z88dk RC2014 support includes serial interface drivers for the ACIA Serial Module, for the SIO/2 Serial Module, and for the Single and Dual UART Serial Modules. Two disk interface types are supported, being the IDE Hard Drive Module for PATA attached drives of all types and also the Compact Flash Module for Compact Flash Cards and Adapters.

While multiple configurations are possible, and can be built up as desired, the most common options are provided as prebuilt HEX files which can be simply burned to a 32kB ROM.

  • The RC2014 Z80 CF SIO build supports the RC2014 Pro with the standard SIO/2 Serial Module and the Compact Flash Module 2.0 in their usual configurations.

  • The RC2014 Z80 CF UART build supports the RC2014 Pro with either the Single or Dual UART Serial Module and the Compact Flash Module 2.0.

  • The RC2014 Z80 PATA SIO build supports the RC2014 Pro Module equipped with the IDE Hard Drive Module.

  • The RC2014 Z80 CF ACIA build supports the RC2014 Pro with the standard ACIA Serial Module and the Compact Flash Module 2.0.

For the 8085 CPU Module.

  • The RC2014 8085 CF ACIA build requires the 8085 CPU Module, the ACIA Serial Module and uses the Compact Flash v2.0 (CF) Module.

  • The RC2014 8085 CF UART build requires the 8085 CPU Module, the UART Serial Module and uses the Compact Flash v2.0 (CF) Module.

  • The RC2014 8085 PATA UART build requires the 8085 CPU Module, the UART Serial Module and uses the IDE Hard Drive Module.

In the SIO Serial Module builds, both ports are enabled. Both ports have a 127 byte software receive buffer supporting the SIO/2 receive quad hardware buffer, and a 31 byte software transmit buffer. The transmit function has direct cut-through when the software buffer is empty. Hardware /RTS flow control of the SIO/2 is provided. Full IM2 interrupt vector steering is implemented.

In the Single and Dual UART Serial Module builds both ports are enabled if present. Both ports have a 127 byte software receive buffer. The UART hardware receive and transmit FIFOs are 16 bytes. Hardware /RTS and automatic flow control are enabled.

In the ACIA Serial Module builds, the receive interface has a 255 byte software buffer, together with optimised buffer management supporting the 68B50 ACIA receive double buffer. Hardware /RTS flow control of the ACIA is provided. The ACIA transmit interface is also buffered, with direct cut-through when the 31 byte software buffer is empty, to ensure that the CPU is not held in wait state during transmission.

NOTE: All serial interfaces (on the ACIA Serial Module, on the SIO Serial Module, on the UART Serial Module, and on the 8085 CPU Module SOD) are configured for 115200 baud 8n2.

NOTE: To enable flow control with any Serial Module it is critical to use a USB Serial adapter that supports /RTS on Pin 6. Typical FTDI USB Adapters pinout /DTR to Pin 6. The recommended USB Serial adapter is available from 8086 Consultancy.

The IDE Hard Drive Module interface driver is optimised for performance and can achieve about 110kB/s. It does this by minimising error management and streamlining read and write routines. The assumption is that modern PATA attached IDE drives have their own error management and if there are errors from the IDE interface, then there are other issues at stake. The CF Module can achieve up to 200kB/s at file-system level, and it seems to provide best performance using SD Cards in SD to CF Card Adapters. CP/M file and directory transfer is described in Modifications to the CCP and BDOS.

The IDE Hard Drive Module supports both PATA hard drives (including 3 1/2" magnetic platter, SSD, and DOM storage) and Compact Flash cards in their native 16-bit PATA mode, with buffered I/O provided by the 82C55 device. The IDE Hard Drive Module is the ideal way to attach "spinning rust" to your RC2014. Attaching one physical Master drive is supported.

The CP/M-IDE system supports up to 4 mounted CP/M "drives" (files) of nominally 8 MBytes each. There can be as many CP/M drives stored on the FAT32 formatted disk as desired, and CP/M-IDE can be started with any 4 of them. Collections of hundreds (or even thousands) of CP/M drives can be stored in any number of sub-directories on the FAT32 host disk, to be mounted at will.

A CP/M program runs from $0100 up to the CCP. The space for each ROM is in Modifications to the CCP and BDOS.

RC2014 CP/M-IDE with IDE Module and ACIA Module
RC2014 CP/M-IDE with DOM in an IDE Module and SIO Module (front view)
RC2014 CP/M-IDE with DOM in an IDE Module and SIO Module (back view)
RC2014-8085 CP/M-IDE with DOM in an IDE Module and ACIA Module

Hardware

For the RC2014 Pro no additional hardware is required. It is recommended to use a modern Compact Flash card of 1GB (or greater, up to 128GByte, or use a uSD-CF Adapter) to allow unrestricted storage of multiple CP/M drives.

For the RC2014 IDE Module builds, in addition to the RC2014 Pro which contains the CPU and SIO Serial modules, just the IDE Hard Drive Module is necessary.

  1. IDE Hard Drive Module.

Using the IDE Hard Drive Module the widest variety of PATA attached hard disks are supported. This is the way to connect 80's and 90's spinning disks for maximum "retro appeal".

NOTE: If you are using the IDE Hard Drive Module 40-pin PATA connector, be aware that this connector does not pass power to the attached disk, DOM, or CF adapter. A 5" disk or 3 1/2" disk must be powered by its own 4-pin MOLEX connector. A 40-pin DOM or CF adapter must be powered by its own accessory power connector. Connecting +5V power to the barrel jack on the IDE Hard Drive Module is not sufficient to power 40-pin devices.

As noted above, the complete RC2014 Pro system must include:

  1. CPU Module.
  2. Clock Module.
  3. 64k RAM Module.
  4. Pageable ROM Module.
  5. SIO Dual Serial Module.
  6. Backplane 8 or Backplane Pro.

If your preference is to use a CF Card, or SD Card in a uSD-CF Adapter, then Dylan Hall's CF Card PPIDE Module can be exchanged for item 1. This Module provides seamless and reliable (CF Specification compliant) CF Card (or also SD Card Adapter) support, but doesn't provide a standard 40 pin or 44 pin IDE connector.

It is possible to use the standard RC2014 CF Module v2.0 with either the RC2014 Pro, or with the 8085 CPU Module CF builds. As a supported RC2014 Module, the CF Module v2.0 by Tadeusz Pycio provides a very robust (CF Specification compliant) solution that will work with large Compact Flash cards (e.g. 1GB and greater), and with SD to CF Card Adapters.

Optionally, replacing items 4. and 5. with the Memory Module (also compatible with Steve Cousins' SC108) avoids the need for a flying PAGE wire joining RAM and ROM Modules when using the Backplane 8.

To operate the RC2014 with an 8085 CPU the following CPU Module must be exchanged for items 2. and 3, and either an ACIA Serial Module or a UART Serial Module installed.

NOTE: For use with the 8085 CPU Module, either the ACIA Serial Module or UART Serial Modules are supported.

To operate the RC2014 with a Single or Dual UART Serial Module, install that module in exchange for item 6. Installation of multiple serial modules is not supported.

Additionally, the ACIA Serial Module from the RC2014 Classic II could be substituted for item 6. the SIO Serial Module.

Also Grant Searle's CP/M on breadboard hardware is supported if a 32kB ROM is used, and Steve Cousins' SC108 Module (Z80, 128k RAM, 32k ROM) Module could be exchanged for items 2., 3., 4., and 5., because Richard Deane cared enough to ask. Thanks Richard.

As noted, when used with the IDE Hard Drive Module, both SD Cards and Compact Flash cards are also supported in their native 16-bit PATA mode, as shown below. Otherwise, when using the CF Module from the RC2014 Pro, SD Cards and Compact Flash cards are supported in the Compact Flash 8-bit compatibility mode.

RC2014 running CP/M-IDE by DJRM
RC2014-8085 running CP/M-IDE with SD to CF Storage Adapter

Configuration

The modules are configured in their normal settings for CP/M. A jumper for the PAGE signal is shown connected via pin 39, although this can be done in any alternative way. To configure the RC2014 Pro see the jumper settings on the RAM Module and ROM Module, below pictures. Specifically the Pageable ROM Module needs to be configured for 32kByte Pages.

Rather than spend time on long written descriptions, one picture is worth 2kByte.

RC2014 CP/M-IDE Modules (excl. ACIA)
RC2014 CP/M-IDE 8085 Modules
RC2014 64kByte RAM Module (note jumper positions)
RC2014 Pageable ROM Module (note jumper positions)
RC2014 IDE Hard Drive Module with DOM
RC2014 IDE Hard Drive Module storage options

CP/M Software

The CP/M-IDE is built using the z88dk compilers and libraries, including a simple boot monitor or shell for the RC2014, together with the standard DRI CP/M CCP/BDOS, and a CP/M BIOS constructed specifically for the RC2014 in the above hardware configurations.

CCP & BDOS Extension

The CCP command EXIT returns to the shell. You can then start CP/M with different drive files.

The BDOS function 10 treats DEL as backspace. Digital Research Application Note 02 (APN 02) specifies that behaviour.

A command with no drive letter is tried again on A: when the .COM file is not on the current drive. An explicit drive letter searches only on that drive.

Further information on changes to the CCP and BDOS is in Modifications to the CCP and BDOS.

BIOS Notes

The FAT volume rules are in the BIOS section of Modifications to the CCP and BDOS.

Installation

Using the correct HEX file for your hardware configuration from this directory, burn it into a 32kB or 64kB EEPROM, or PROM.

To initially configure your hard drive, use either a USB caddy for your PATA IDE drive, or a CF adapter for your Compact Flash card to mount your drive on your host computer. Your host computer should be able to read and write FAT32 formatted drives. Format the drive for FAT32 (or FAT16 if it is quite small). Then unzip and "Drag and drop" or copy some of the example CP/M drive files into the root directory of your drive. At least the sys.cpm example file is required (until you customise your own) as it contains many system utilities. Check that each of the drive files is using 8388608 Bytes on your IDE or CF drive. You may put the CP/M drive files into directories (to organise them based on your workflow), or leave them all in the root directory.

Connect the RC2014 hardware as shown above, and then use the commands in Usage of the Shell Command Interface.

Boot-up Process

When the RC2014 first boots, the z88dk crt0 preamble configures the machine.

The preamble copies the CCP and BDOS to the correct location, and then checks for the BIOS. If the BIOS exists, and a valid drive is found, control passes to the CCP. This is the usual path when a CP/M application overwrites the CCP. The CCP is written again before control returns to it. Otherwise the preamble loads the CP/M BIOS, the serial drivers, and the disk drivers, and then starts the shell.

NOTE: Where the SIO Module or the UART Module is in use, the shell waits for a : to select the serial port. It stays on that port until CP/M loads.

Command use is in Usage of the Shell Command Interface.

Once cpm has a valid CP/M drive, it pages out the ROM, writes a new Page 0 with the CP/M data and interrupt linkages, and passes control to the CCP.

In the 8085 CPU Module builds the CPU Serial Output (SOD) FTDI interface found on the CPU Module is also supported as the CP/M LPT: device. It is enabled from within CP/M using ^P from the CCP command line as normal.

CP/M System Disk

Because the CCP/BDOS and BIOS are stored in ROM, there are no CP/M-IDE boot sectors or special boot drive. Cold and warm boot are both from ROM. This means that the 4 drives supported by CP/M-IDE are completely orthogonal. It doesn't matter which drive file is mounted on which drive letter, except that the file mounted as the A: drive will always be selected as the default drive, if you try to select a nonexistent drive letter. There is no special system disk, except that system utilities are commonly stored on one drive, and this is usually called sys.cpm, for convenience. CP/M drive files can take any naming convention desired.

The RunCPM system disk contains a good package of CP/M utilities, that has been loaded onto an example system disk for a complete ready to run CP/M. Typically, by convention only, this disk will be mounted as drive A:.

The NGS Microshell can be very useful for those familiar with unix-like shells, so it has been added to the example system disk too. There is no need to replace the DRI CCP with Microshell. In fact, adding it permanently would remove the special EXIT function built into the DRI CCP to provide a clean return to the CP/M-IDE shell.

Also the NZ-COM, or Z-System, can be loaded, temporarily overwriting the DRI CCP and BDOS, from the included NZ-COM disk. Further information on NZ-COM and how to use it can be found in the NZ-COM User's Manual.

CP/M Application Disks

The CP/M Drives directory contains a number of CP/M drives containing commonly used applications, such as the Zork Series, BBC Basic, Hi-Tech C v3.09-15, and MS BASIC Compiler v5.3. MS Basic mbasic (Interpreter) 5.21 is available in the system drive.

An empty CP/M 8 MB drive file is provided as a template to create additional user drives. mkfs.cpm -f rc2014-8MB writes the directory and leaves the image at 128 KB. truncate -s 8388608 file.cpm extends that file to a full drive (truncate -s 8M is the same length). The directory already written stays in place, and the added bytes read as zeros. Unzipping the template and renaming it also produces a full 8 MB drive with 2048 directory entries.

xget writes an image onto the card without moving the drive to the host. The file has to be one contiguous cluster run before cpm will mount it. Sending a file to the RC2014 covers the XMODEM checksum receive, frag, and a cp that allocates a fresh chain.

FAT32 can hold more than 65,000 files in one directory. A 128 GB drive holds about 16,000 of these 8 MB CP/M drives. A larger disk can hold more, and that upper limit has not been tested.

CP/M TOOLS Usage

CP/M drive files can be read and written using a host computer with any operating system, by using the cpmtools utilities, simply by inserting the PATA IDE drive into a USB drive caddy.

The CP/M TOOLS package v2.23 is available from debian repositories.

Check the disk image, ls a CP/M image, copy a file (in this case bbcbasic.com).

> fsed.cpm -f rc2014-8MB a.cpm
> cpmls -f rc2014-8MB a.cpm
> cpmcp -f rc2014-8MB a.cpm ~/Desktop/CPM/bbcbasic.com 0:BBCBASIC.COM

NOTE: Before use of the cpmtools, the contents of the host /etc/cpmtools/diskdefs file need to be augmented with disk information specific to the RC2014 by appending it to the end of the file.

The CP/M-IDE default is for 8MByte drives, with up to 2048 files each.

diskdef rc2014-8MB
  seclen 512
  tracks 64
  sectrk 256
  blocksize 4096
  maxdir 2048
  skew 0
  boottrk -
  os 2.2
end

Usage of the Shell Command Interface

The shell is common/yash.c. The command line is in C. The functions under it are in C or in assembly. The serial interfaces (ACIA, SIO/2, UART, and 8085 SOD) use 115200 baud 8n2.

Backspace and DEL stop at the prompt. CR+LF, or LF+CR, is one end of line. The second byte does not start an empty command. The shell drops a byte below space or above 126. A NUL at the start of the line is an empty command, and the shell does not run it.

Ctrl-P and Ctrl-N recall up to 8 lines of 80 characters. The shell erases the previous line with backspace. The console drops a bare CR.

Again, here is a view of what success looks like.

RC2014 CP/M-IDE SIO - Shell CLI

CP/M Functions

  • cpm file.a [file.b] [file.c] [file.d] — start CP/M with 1 to 4 contiguous .CPM files on A: through D:. Give the full path when the file is not in the working directory. cpm mounts a file only when it is one cluster run.
  • xget <file> — receive an XMODEM-128 checksum file onto the FAT volume. The steps are in Sending a file to the RC2014.
  • mkdrv <file> — create an empty 8 MB CP/M drive with 2048 directory entries. frag must report one cluster run before cpm mounts the file.

From the CCP, EXIT returns to this shell. See CCP & BDOS Extension.

File System Functions

  • ls [path] — directory listing. ls prints the free bytes on the volume after the names.
  • cd <path> — change the current working directory
  • pwd — show the current working directory
  • rm <file> — delete a file. rm leaves a directory and a read-only file in place.
  • rmdir <path> — remove an empty directory
  • mkdir <path> — create a directory
  • cp <src> <dst> — copy a file. cp allocates a new cluster chain.
  • mv <src> <dst> — in one directory, mv renames the entry. To another directory, mv writes a new entry for the same chain and removes the old name. mv keeps the existing cluster chain.
  • frag <file> — cluster-run count for a file
  • mount — mount the FAT file system

Disk Functions

  • ds — disk status
  • dd [sector] — disk dump, sector in decimal

System Functions

  • md [origin] — memory dump, origin in hexadecimal
  • help — this is it
  • exit — restart the RC2014

Sending a file to the RC2014

xget receives one file with XMODEM-128 checksum and stores it on the FAT volume. The name on the card is the xget argument, in 8.3 form. A file larger than 16 MB is rejected.

The packet is SOH, the block number, the complement of the block number, 128 data bytes, and an arithmetic sum of those data bytes. CRC is not used. The shell sends NAK to start checksum mode. The usual host program is sx, or sz --xmodem.

On the shell, with the serial link at 115200 baud 8n2 and hardware flow control enabled:

xget DRIVE.CPM

xget prints Waiting for XMODEM, flushes that line, waits 1 ms, then sends NAK. Send the binary with the checksum sender (in minicom, Ctrl-A S, then xmodem). Hardware flow control lets the receive ring pause the host while a sector is written. The BIOS console follows the port chosen at the shell's : prompt.

A good block is acknowledged after its 128 bytes are in the sector buffer. A duplicate of the previous block is acknowledged and not written again. A bad sum, a bad complement, or a timeout is answered with NAK. The shell waits 10 seconds for the next byte after NAK and retries that NAK up to 30 times, then prints timeout. Each byte inside a packet has 1 second. CAN prints cancelled. EOT is acknowledged and the shell prints the byte count (8388608 bytes for a full CP/M drive).

frag DRIVE.CPM prints the cluster count, the run count, and the size. cpm mounts the file only when that is one run.

When frag reports more than one run, copy the file to a new name. cp allocates a new cluster chain, starting at the next free cluster and then taking each following free cluster, which often lands as a single run:

cp DRIVE.CPM DRIVE2.CPM
frag DRIVE2.CPM

When the copy is one run, rm DRIVE.CPM drops the fragmented original. mv DRIVE2.CPM DRIVE.CPM puts the name back. A rename keeps the clusters of the copy. mv of the fragmented file does not allocate a new chain, so it cannot join the runs.

Working drive

The shell writes on the FAT volume, so a new working drive does not have to be built on a PC. On the card:

mkdrv WORK.CPM
frag WORK.CPM
cpm SYS.CPM WORK.CPM

mkdrv writes an empty 8 MB drive with 2048 directory entries. frag has to report one cluster run before cpm will mount the file. cp, mv, rm, mkdir, and rmdir change the FAT volume as well. A file prepared on the host, including a full .CPM image, is sent with xget as described in Sending a file to the RC2014. Copying the template drive onto the card from a PC still works, and so does mkfs.cpm -f rc2014-8MB followed by truncate -s 8388608.

When working with a CP/M compiler or editor, keep that work on its own drive file. The shell can cp an existing drive to a new name, which allocates a fresh cluster chain.

On first entry to CP/M, mount sys.cpm and the new working drive. Copy the CP/M commands you want onto the working drive with PIP. Later boots can mount only the working drive on A:. The CCP already has DIR, REN, ERA, TYPE, and EXIT. A program that runs under the CCP is a file inside the CP/M drive. Upload that file with XMODEM after cpm has started. xget stores its file on the FAT volume, before cpm.

Then, on each subsequent boot-up of CP/M only mounting the working drive in drive A: is necessary. After compiling a new project with z88dk, the work-in-progress application *.COM file can be uploaded to the RC2014 using XMODEM and then tested. If the work-in-progress crashes CP/M, or needs further work, then repeat the process as needed without danger of trashing any other unmounted drives. An example picocom command line is provided below, although many other XMODEM tools are available.

picocom -b 115200 -f h --stopbits 2 --send-cmd "sz -vv --xmodem" --receive-cmd "rz -vv -E --xmodem" /dev/ttyUSB0

Of course other development workflows are possible, as is simply mounting the ZORK games drive and playing an adventure game.

CP/M applications (-subtype=cpm)

The ROM is built with the bare serial subtypes. The shell mounts .CPM drive files through the mini-FAT in common/fatfs.asm (8085: fatfs_85.asm).

A .COM file that runs under the CCP is built with the RC2014 CP/M subtype. Unprefixed file calls use BDOS FCB on the mounted drives. Console I/O uses BDOS.

zcc +rc2014 -subtype=cpm -clib=new app.c -o app -m

The ROM used to link ChaN FatFs. It does not now. An application that still wants those f_* calls used a separate library, which is outside this ROM.

Building Software from Source

The z88dk command lines to build the CP/M-IDE ROM (firmware) are below. Build from the product directory. Z80 images use zsdcc (-SO3). 8085 images use 80cc (-compiler=80cc). 80cc ignores --opt-code-speed, so the 8085 lines do not pass it.

First though, refer to the library, disk and buffer configuration notes below.

zcc +rc2014 -subtype=sio -SO3 --opt-code-speed -m --max-allocs-per-node400000 @cpm22.lst -o ../rc2014-cpm22-z80-pata-sio -create-app

zcc +rc2014 -subtype=sio -SO3 --opt-code-speed -m --max-allocs-per-node400000 @cpm22.lst -o ../rc2014-cpm22-z80-cf-sio -create-app

zcc +rc2014 -subtype=uart -SO3 --opt-code-speed -m --max-allocs-per-node400000 @cpm22.lst -o ../rc2014-cpm22-z80-cf-uart -create-app

zcc +rc2014 -subtype=acia -SO3 --opt-code-speed -m --max-allocs-per-node400000 @cpm22.lst -o ../rc2014-cpm22-z80-cf-acia -create-app

Set Z88DK to the z88dk install root. On the 8085 lines, -I${Z88DK}/include precedes _DEVELOPMENT/common so classic <stdio.h> is used (stdin and stdout on the hybrid 8085 CRT). -L${Z88DK}/lib/clibs/sccz80 is the classic library directory.

zcc +rc2014 -subtype=uart85 -compiler=80cc -O2 -m -D__CLASSIC -DAMALLOC -I${Z88DK}/include -I${Z88DK}/include/_DEVELOPMENT/common -I${Z88DK}/libsrc/target/rc2014 -L${Z88DK}/lib/clibs/sccz80 @cpm22.lst -o ../rc2014-cpm22-8085-pata-uart -create-app

zcc +rc2014 -subtype=uart85 -compiler=80cc -O2 -m -D__CLASSIC -DAMALLOC -I${Z88DK}/include -I${Z88DK}/include/_DEVELOPMENT/common -I${Z88DK}/libsrc/target/rc2014 -L${Z88DK}/lib/clibs/sccz80 @cpm22.lst -o ../rc2014-cpm22-8085-cf-uart -create-app

zcc +rc2014 -subtype=acia85 -compiler=80cc -O2 -m -D__CLASSIC -DAMALLOC -I${Z88DK}/include -I${Z88DK}/include/_DEVELOPMENT/common -I${Z88DK}/libsrc/target/rc2014 -L${Z88DK}/lib/clibs/sccz80 @cpm22.lst -o ../rc2014-cpm22-8085-cf-acia -create-app

common/yash.c calls the mini-FAT in common/fatfs.asm (8085: fatfs_85.asm). Volume rules and the BIOS sector hand-off are in Modifications to the CCP and BDOS. The ROM used to link ChaN ff_ro. It does not now.

CP/M "drives" are 8 MB .CPM files. Prepare them on a host with cpmtools using the rc2014-8MB diskdef in cpmtools/readme_cpmtools.md (blocksize 4096, maxdir 2048, boottrk -).

ROM builds use the bare subtypes and common/fatfs.asm. A .COM built to run under CP/M uses -subtype=cpm, as in CP/M applications.

The sizes of the serial transmit and receive buffers are set within the z88dk RC2014 target configuration files for the ACIA, SIO/2, and UART respectively.

PATA versus Compact Flash

The shell disk path uses the z88dk IDE driver. Set __IO_CF_8_BIT in config_target.m4, then rebuild the rc2014 libraries, then build the HEX.

  • PATA (IDE Hard Drive Module, 8255 at $20–$23): __IO_CF_8_BIT = 0.
  • Compact Flash Module (ports $10–$17): __IO_CF_8_BIT = 1.

A PATA ROM linked with the CF 8-bit library returns FR_NOT_READY on ls and mount 1. Delayed mount still prints FR_OK because it does not talk to the disk.

The disk access configuration, for either 16-bit PPIDE or 8-bit CF IDE, is configured here. PATA HEX files in this tree were built with __IO_CF_8_BIT = 0. CF HEX files were built with __IO_CF_8_BIT = 1. Rebuild the rc2014 libraries when you change that flag. Do not mix a PATA HEX with a CF library. The availability of the shadow RAM for 128kB RAM systems (SC108, etc) is configured here. Following changes to any of the configurations, the z88dk libraries for RC2014 should be rebuilt.

Licence

"Let this paragraph represent a right to use, distribute, modify, enhance, and otherwise make available in a nonexclusive manner CP/M and its derivatives. This right comes from the company, DRDOS, Inc.'s purchase of Digital Research, the company and all assets, dating back to the mid-1990's. DRDOS, Inc. and I, Bryan Sparks, President of DRDOS, Inc. as its representative, is the owner of CP/M and the successor in interest of Digital Research assets." Reference

About

CP/M-IDE for RC2014 repository - 8085 and Z80 CPU - FAT File System CP/M

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages