Close

Post Mortem

A project log for My CP/M Version 1A

I decided to do a minor upgrade to My CP/M (Version 1). Swap RST6.5 for RST7.5 and increase the FRAM disk capacity from 32k to 256k.

agpcooperagp.cooper 07/19/2020 at 04:150 Comments

Post Mortem

Well, this is the end of this project. The machine works as expected.

One other problem was that I lost my boot sector twice. So I have implemented Boot Sector (for the first 8kb) Software Protection. What caused it? I don't know (other than an attempted write to the first sector between 0x8000 and 0x807F). Was it CCP/BDOS or was it (my) CBIOS.

Otherwise it works fine:

my CP/M 2.2 V1A

A>dir
A: STAT     COM : ED       COM : ASM      COM : DDT      COM
A: LOAD     COM : SUBMIT   COM : XSUB     COM : PIP      COM
A: BASIC    COM : BASIC    DOC : UNZIP    COM
A>STAT *.*

  Recs  Bytes  Ext Acc
   64     8k    1 R/W A:ASM.COM
   59     8k    1 R/W A:BASIC.COM
   51     8k    1 R/W A:BASIC.DOC
   38     6k    1 R/W A:DDT.COM
   52     8k    1 R/W A:ED.COM
   14     2k    1 R/W A:LOAD.COM
   58     8k    1 R/W A:PIP.COM
   41     6k    1 R/W A:STAT.COM
   10     2k    1 R/W A:SUBMIT.COM
   28     4k    1 R/W A:UNZIP.COM
    6     2k    1 R/W A:XSUB.COM
Bytes Remaining On A: 182k

A>STAT DSK:

    A: Drive Characteristics
 1984: 128 Byte Record Capacity
  248: Kilobyte Drive  Capacity
  128: 32  Byte Directory Entries
    0: Checked  Directory Entries
  256: Records/ Extent
   16: Records/ Block
   16: Sectors/ Track
    4: Reserved Tracks

A>BASIC

BASIC/5 INTERACTIVE INTERPRETER    V Z1.0  10/16/77

NEW OR OLD? N
NEW PROGRAM NAME: TEST.BAS

READY
10 FOR I=1 TO 10
20 PRINT I
30 NEXT I
40 END
LIST
10 FOR I=1 TO 10
20 PRINT I
30 NEXT I
40 END

RUN

 1  2  3  4  5  6  7  8  9  10

READY
SAVE

READY
SYSTEM

A>DIR

A: STAT     COM : ED       COM : ASM      COM : DDT      COM
A: LOAD     COM : SUBMIT   COM : XSUB     COM : PIP      COM
A: BASIC    COM : BASIC    DOC : UNZIP    COM : TEST     BAS
A>

Some Thoughts

Although I have a new CP/M (Version 2) PCB that has 512kb Flash Disk and 56kb RAM, I really need to get rid of software serial. The only way to get software serial to work properly is to use an interrupt timer. It's just that using a proper UART would be easier.

The UART also needs hardware handshake.

8085 vs Z80

A lot of CP/M 2.2 software is Z80 rather than 8080/85.

Flash Programmer Upgrade

Due to the 32kb program capacity of the Nano, it is rather error prone setting up four Arduino Nano scripts per 64kb of Flash Disk capacity. An ATMEGA2560 has 256kb of program capacity so using one of these would usually be a one pass Flash program.

An ATMEGA1284 is a through hole IC and would allow a 120kb programming pass. So I need to design a Flash programmer around one of these.

CH275B USB Module

I want to make provision for one of these on the next design.

Serial Port Jumper

I was supposed to use a 90 angle jumper socket with the myCM/P V1A, so I don't have to replace the 90 degree jumper pins on the USB2Serial converter. I just forgot.

Software

I have written a lot of code for this project:

None of these are "simple" programs. If you need a copy then PM me.

AlanX

Discussions