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 *.*
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:
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: 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:
- com2hex.run
- makeDisk256.run
- myCPM_EMU.run
- a85.run (not mine but compiled for Linux)
- FlashDiskProgrammer.ino
None of these are "simple" programs. If you need a copy then PM me.
AlanX
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.