RC2014 Unable to boot to CP/M

816 views
Skip to first unread message

zkne...@gmail.com

unread,
Jan 4, 2023, 2:39:03 PM1/4/23
to RC2014-Z80
Hi folks,

Finally assembled my RC2014 Pro and tried it out with BASIC and it works. However, I'm completely unable to boot into CP/M either with the provided CF or with a new 128MB CF I got. 

When I try to boot into CP/M the LED on the module blinks once and the system goes back to the "Press Space to activate console" message. If I boot into SCM "88" image and issue "cpm" command, it just hangs until I reset. 

I ran the CF info utility from SCM and got the following:

Compact flash card information v1.1 by Stephen C Cousins

Card at address $10:
Number of sectors on card: $3103DF00
Card size: 512GB

Card model:       "1imp1eTe1h F1ash1   1   1   1   1   1 "
Serial number:    "S I12L01043105717351"
Firmware version: "172916L2"

Default number of cylinders:  $31DF
Default number of heads:      $3108

Default sectors per track:    $0020

Card's self diagnostic test passed

To test out if the RC2014 was working overall, I booted it to BASIC and it works just fine running simple programs. Also, I ran the CF test utility for SCM and it got well over 60% which leads me to believe that the basic HW is ok. 

I bought another 128MB CF card and tried the above on both it and the one in the kit:
Nothing worked.

Does anyone have any ideas on what I should try next, either HW diagnostic or software diagnostic? My CF module is v1.3.

P.S.: Yeah, I posted the message also @ https://groups.google.com/g/rc2014-z80/c/k7iInbEQp_Q, but seemed like an old topic + I did try a lot more things so decided to make a new thread. Hope that is ok!

Zlatko

Steve Cousins

unread,
Jan 4, 2023, 3:50:01 PM1/4/23
to RC2014-Z80
The output from the SCM Compact Flash card information App is saying the card is 512GB, but you say you have a 128MB card.

Here is the output I get with a 128MB card:

Compact flash card information v1.1 by Stephen C Cousins

Card at address $10:
Number of sectors on card: $0003E000
Card size: 128MB

Card model:       "SAMSUNG CF/ATA                          "
Serial number:    "                    "
Firmware version: "S1.18.4 "

Default number of cylinders:  $01F0
Default number of heads:      $0010

Default sectors per track:    $0020

Card's self diagnostic test passed
*

I'm not sure why your output is apparently giving the wrong card details or even if it is related to the CP/M problem.

While a pass with the SCM Compact Flash card test App is far from proof everything is good (there are all sorts of subtle issues with CF cards on the processor bus) it usually means you can get CP/M to install and boot.

My guess is there is something else wrong with your system. One possible problem is to do with RAM paging. When CP/M starts it pages the ROM out of memory and pages in the lower 32k of RAM. If this fails then CP/M won't load but most other things. like SCM and ROM BASIC (32k) work okay. I suggest you try 56k ROM BASIC and also the SCM memory test App v2.0 (https://smallcomputercentral.com/scm-apps/)

Steve

zkne...@gmail.com

unread,
Jan 4, 2023, 7:26:58 PM1/4/23
to RC2014-Z80
Yeah, indeed, the output is strange which is what was confusing to me. I was kind of hoping that reimaging the CF card using Win 32 Image Writer would somehow get it back into normal state. FWIW, the CP/M install from SCM completes, just when I try to boot (even with a reset from SCM "88" image) doesn't work. 

The RAM test shows passed:

Z80 64k memory test v2.0 by Stephen C Cousins
Upper 32k RAM: Pass
Lower 32k RAM: Pass
ROM page out test: Pass


I tried the 56K basic (image "4" from https://8b8bf43264c2f150841a.b-cdn.net/wp-content/uploads/2021/05/RC2014-Pro-24886009-Jumper-Settings.pdf) and that works as well (this was what I meant with "it works running BASIC programs" in my original message, sorry for not being clear). 

Zlatko

Bill Shen

unread,
Jan 4, 2023, 8:06:23 PM1/4/23
to RC2014-Z80
There are a number of hurdles you must overcome to run CP/M:
* ROM needs to be paged out and RAM paged in
* CF must contains CP/M software in the system track
* CP/M system software using SIO is different (i.e. incompatible) with CP/M system software using ACIA (6850) so the correct software must be installed in the CF disk.
* CF interface must work without errors

To run CP/M, Z80 copies the CP/M system software from CF disk into high memory, pages out ROM, and jumps into BIOS boot routine.  So lots of steps are involved and you are in the blind until a CP/M prompt is displayed... or not.

Getting CP/M running on a new RC2014 is frequently the toughest step.  CF disk is usually the biggest problem area, but there are also few cases where ROM paging failed.  

Steve Cousin has covered most of common issues so I don't have specific advice for your current problem, but I'm observing on the sideline wondering how the more experienced users in the RC2014 community can make this particular step easier.  This is yet another example where it would be nice to execute a CP/M program without the CF disk.  
  Bill

Kande Laber

unread,
Jan 5, 2023, 5:55:46 AM1/5/23
to RC2014-Z80
My experience a s a hobbyiest: Sometimes such problems are related to bad soldering. Especially on the many bus connectors. Careful visual inspecttion with a magnifying glass and resoldering was helpful to me many times. I am  sorry for boring the experts with this.

zkne...@gmail.com

unread,
Jan 5, 2023, 11:20:15 AM1/5/23
to RC2014-Z80
The thing is, I did the visual inspection of the backplane after soldering (with magnifying glass, of course) and I tested continuity with the multimeter. It all checked out. I can always reflow the joints. 

But, the fact that the CF test is passing should confirm that the module and communication with module works, right? If I understand how this machine works...

Zlatko

Wayne Warthen

unread,
Jan 5, 2023, 2:00:08 PM1/5/23
to RC2014-Z80
So, looking at the SCM CF Card Information, it is VERY suspicious (as Steve already pointed out).  I note that the byte value 0f 0x31 is occurring in 3 places where the value probably should be 0x00.  This is very indicative of read errors and is a known issue that can occur with the CF Card module.

Even though the SCM CF Card Test is working, it is not unusual for the tight signal timing constraints to cause issues depending on which software is interacting with the CF Card.  Different software will generally have slightly different read/write I/O loops which can change the behavior of a card that is "right on the edge".

Have you tried moving the CF Interface Module to other slots on the backplane?  This specific card usually works best if it is located next to the CPU Module.

Thanks,

Wayne

zkne...@gmail.com

unread,
Jan 5, 2023, 2:26:14 PM1/5/23
to RC2014-Z80
I did try to move it around, but not near the CPU module. Just tried that, no joy. :( As in, I placed the CF card right next to he CPU module. 

Zlatko

Wayne Warthen

unread,
Jan 5, 2023, 7:38:29 PM1/5/23
to RC2014-Z80
OK, sorry.  Not sure what else to suggest.

-Wayne

Steve Cousins

unread,
Jan 5, 2023, 8:18:57 PM1/5/23
to RC2014-Z80
This is getting interesting. 

Wayne commented about the pattern of failures in the information output and said "This is very indicative of read errors and is a known issue that can occur with the CF Card module."
This has jogged my memory and I think I've seen such patterns before.

So why didn't my test program detect any problems?
I need to find a way to add a test for this kind of read error. My current test patterns do not appear to find it. I may look into this and see if I can improve the program.

My current thinking is these read errors are happening when reading real "random" data but my regular test patterns somehow don't cause these errors. So despite my program not detecting any problems, I think described system is in fact totally unreliable in real use with the available cards. Thus it will not load CP/M correctly.

If I get time I'll see what I can come up with. If I succeed the test program will detect these read errors, but that won't tell us how to fix it. My assumption is these CF cards are marginal and other cards may be fine.

Steve

Bill Shen

unread,
Jan 5, 2023, 8:38:46 PM1/5/23
to RC2014-Z80
There are several ways CF's data are corrupted.  One way is with data patterns of 0x0, 0xFF, 0x0, 0xFF, so on.  The rapid switching of data bus from all zeros to all ones and back to all zeros can cause ground bounce and a glitch on the CF read line which then advanced the FIFO buffer by one byte resulting in data drop out.  The purpose of 100ohm-100pF filters is not to delay CF_read, but to filter out the glitch on CF_read.

So write test pattern of 00 FF 00 FF 00 FF 00... and read it back and compare.  You may find many FF are missing.
  Bill

Tadeusz Pycio

unread,
Jan 6, 2023, 4:52:53 AM1/6/23
to RC2014-Z80

The purpose of 100ohm-100pF filters is not to delay CF_read, but to filter out the glitch on CF_read.

Hi Bill,
I understand your intentions, but in this case you have solved two problems at once.
An damping resistor is sufficient to solve reflection problems, an additional capacitor delays the RD signal which distances the signal from jamming, but in the case of CF cards increases the required distance from the appearance of the CS signal. This allows problematic CF cards to start working in such an environment. Initially, I also suspected that mismatches on the data bus were the problem, as often a written FF byte would lose some bits on reading, so I used a buffer. This turned out not to be the source of the problem, although I do have one 32MB CF card that requires it, but here I think the problem is a mismatch in TTL signal levels.

Zlatko Knezevic

unread,
Jan 6, 2023, 3:25:36 PM1/6/23
to rc201...@googlegroups.com
OK, I will admit, some of this discussion went a bit over my head. :)) If I was to try a summarize the CF issues discussion, would it be fair to say that it could be that the HW works (generally) and that the issue is in the CF card itself? That is, that the module is pretty sensitive? 

Zlatko

--
You received this message because you are subscribed to a topic in the Google Groups "RC2014-Z80" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/rc2014-z80/RS89vJ5hmLA/unsubscribe.
To unsubscribe from this group and all its topics, send an email to rc2014-z80+...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/rc2014-z80/833aaca6-1069-4485-9486-46047e15e47cn%40googlegroups.com.

Wayne Warthen

unread,
Jan 6, 2023, 4:59:39 PM1/6/23
to RC2014-Z80
On Friday, January 6, 2023 at 12:25:36 PM UTC-8 zkne...@gmail.com wrote:
OK, I will admit, some of this discussion went a bit over my head. :)) If I was to try a summarize the CF issues discussion, would it be fair to say that it could be that the HW works (generally) and that the issue is in the CF card itself? That is, that the module is pretty sensitive? 

Basically, yes.  It is worth trying a different CF Card if you have access to one.

-Wayne 

Zlatko Knezevic

unread,
Jan 6, 2023, 6:09:52 PM1/6/23
to rc201...@googlegroups.com
Ah, well. Spencer posted (is that the correct UK term?) a new card. I did try a cheap one from Amazon which also didn't work, but if the module is so sensitive maybe my random shot in the dark actually...you know...missed. 

Zlatko

--
You received this message because you are subscribed to a topic in the Google Groups "RC2014-Z80" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/rc2014-z80/RS89vJ5hmLA/unsubscribe.
To unsubscribe from this group and all its topics, send an email to rc2014-z80+...@googlegroups.com.

Wayne Warthen

unread,
Jan 6, 2023, 6:21:52 PM1/6/23
to RC2014-Z80
That Spencer is a good guy!  😀

If convenient, I would be interested to see the CF Information dump from the cheap Amazon card.  Even though it didn't work, it would be interesting to see if the information dump seems more reasonable.  When you tried the cheap Amazon card, I assume you copied the CP/M image onto it using Win32DiskImager or equivalent, right?

-Wayne

Zlatko Knezevic

unread,
Jan 6, 2023, 6:33:38 PM1/6/23
to rc201...@googlegroups.com
Indeed I did. The dump was pretty similar to the one from the CF card I got with the kit. Will check later and post the output here. 

And yeah, Spencer is a great guy and honestly this is a great kit. :D 

Zlatko

--
You received this message because you are subscribed to a topic in the Google Groups "RC2014-Z80" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/rc2014-z80/RS89vJ5hmLA/unsubscribe.
To unsubscribe from this group and all its topics, send an email to rc2014-z80+...@googlegroups.com.

Zlatko Knezevic

unread,
Jan 7, 2023, 11:00:54 AM1/7/23
to rc201...@googlegroups.com
As promised, here is the output from CF info program in SCM for the random 128MB CF card I got off of Amazon. Mind you this is after imaging with Win 32 Disk Imager using https://github.com/RC2014Z80/RC2014/tree/master/CPM/SIO2

Compact flash card information v1.1 by Stephen C Cousins

Card at address $10:
Number of sectors on card: $7103E100
Card size: 1TB

Card model:       "qILIqONSqSTEqS IqC 1q8MBq   q   q   q   "
Serial number:    "CC6q850q440qF03qP72q"
Firmware version: "q41-q230"

Default number of cylinders:  $71E1
Default number of heads:      $7108

Default sectors per track:    $0020

Card's self diagnostic test passed


I would say something is def off here. 

Zlatko Knezevic

unread,
Jan 7, 2023, 11:02:20 AM1/7/23
to rc201...@googlegroups.com
Actually, scratch that, this is after I used the process to install CP/M 2.2 from SCM. 

Zlatko

Bill Shen

unread,
Jan 7, 2023, 3:00:49 PM1/7/23
to RC2014-Z80
Yep, definitely having problems reading the CF.  If you read it multiple times, do you get the same gibberish?  What about wiggling the CF disk, does that change the reading?  I’m trying to figure out whether it is a mechanical intermittent or electrical noise issues.  Are you able to lower the supply voltage?  Your voltage supervisor may reset around 4.5V, but lowering voltage reduces system noise so you may get more consistent data read.  
  Bill

Steve Cousins

unread,
Jan 7, 2023, 5:48:10 PM1/7/23
to RC2014-Z80
I've found a CF card in my collection that acts in the same way as the problem reported here. See terminal output below.

The SCM Compact Flash Information App gives similar corrupt results. But the card passes the Test App. CP/M appears to install but just hangs when run with the CPM command.

Repeating the exact same process with the a different CF card and all works as intended. Conclusion: This CF card is not completely compatible with RC2014 style systems with bus based CF card interface modules.

I will look at my test program and see if I can figure out a way to make it detect these kinds of compatibility issues. Not that a test program will fix the problem but at least it will confirm the nature of it.

There are several terminal sessions below with notes.

Steve

===============================================================================================

Using a standard RC2014 compact flash interface module (the earlier one without Bill's 100R+100pF circuit:

Compact flash card information v1.1 by Stephen C Cousins

Card at address $10:
Number of sectors on card: $5903EA00
Card size: 1TB

Card model:       "YF 1Y8MBY   Y   Y   Y   Y   Y   Y   Y   "
Serial number:    "HG3YBACY0F0Y250Y003Y"
Firmware version: "Y5/1Y/15"

Default number of cylinders:  $59EA
Default number of heads:      $5908

Default sectors per track:    $0020

Card's self diagnostic test passed
*Ready

*
*g8000
Compact flash card test v1.1 by Stephen C Cousins

Card at address $10:
Number of sectors on card: $5903EA00
Card size: 1TB

Card's self diagnostic test passed

WARNING: This will erase all data from the card
Do you wish to continue? (Y/N)

Sector: $00000000 passed
Sector: $00000001 passed
Sector: $00000002 passed
Sector: $00000003 passed
Sector: $00000004 passed
Sector: $00000005 passed
Sector: $00000006 passed
Sector: $00000007 passed
Sector: $00000008 passed
Sector: $00000009 passed
Sector: $0000000A passed
Sector: $0000000B passed
Sector: $0000000C passed

===============================================================================================

After changing the module order on the backplane I got a slightly different output, but it was repeatable through multiple runs:

Compact flash card information v1.1 by Stephen C Cousins

Card at address $10:
Number of sectors on card: $5D03EA00
Card size: 1TB

Card model:       "]F 1]8MB]   ]   ]   ]   ]   ]   ]   ]   "
Serial number:    "HG3]BAC]0F0]250]003]"
Firmware version: "]5/1]/15"

Default number of cylinders:  $5DEA
Default number of heads:      $5D08

Default sectors per track:    $0020

Card's self diagnostic test passed

===============================================================================================

With my own design CF interface module all is fine with the dodgy CF card.
My module includes Bill's 100R+100pF circuit. plus an additional small delay before the read and write signals.
I'm not sure if is the R/C circuit or the delay or both that "fixes" it.

Compact flash card information v1.1 by Stephen C Cousins

Card at address $10:
Number of sectors on card: $0003EA00
Card size: 128MB

Card model:       "CF 128MB                                "
Serial number:    "HG3SBACP0F0625050030"
Firmware version: "05/11/15"

Default number of cylinders:  $03EA
Default number of heads:      $0008

Default sectors per track:    $0020

Card's self diagnostic test passed

Steve Cousins

unread,
Jan 7, 2023, 7:04:58 PM1/7/23
to RC2014-Z80
UPDATE

I've repeated the test with one of my design of CF interface modules but without the R/C filter circuit. The dodgy card works fine like this. 
Conclusion: With this specific "dodgy" CF card it is the delay that is critical to fixing the reading issues.

To be sure I repeated all the tests (so lots of plugging and unplugging cards and modules)

The above tests were all done on a Z180 system running at 18.432 MHz  (SC111+SC119)

I then repeated the tests on a Z80 system running at 7.3728 MHz (SC114)
This confirmed the same CF module results with the delay circuit being the critical fix with this CF card.
The corruptions with the CF Info App were far less obvious with the Z80 test but still essentially the same.


Test with RC2014 CF module in a Z80 system: (note the card model and date are both missing characters)

Compact flash card information v1.1 by Stephen C Cousins

Card at address $10:
Number of sectors on card: $0003EA00
Card size: 128MB

Card model:       "F 18MB                        "
Serial number:    "HG3BAC0F0250003"
Firmware version: "5/1/15"

Default number of cylinders:  $00EA

Steve Cousins

unread,
Jan 7, 2023, 7:07:56 PM1/7/23
to RC2014-Z80
ANOTHER THOUGHT

I'm assuming the delay is the critical element but it could be that the buffering of the RD and WR signals is actually what is improving things. See attached schematic.

Steve
Schematic_SC145 v1.1.0 CompactFlash for RC2014 low profile_2021-11-30.pdf

Bill Shen

unread,
Jan 7, 2023, 7:18:45 PM1/7/23
to RC2014-Z80
CF model is "CF 128MB"? strange, normally there is a manufacturer name.  What does the card look like?

I found the most effective way to test CF card is CP/M PIP with verify.  The contents of file being copied & verified is important; if file is all zeros, it is likely to pass PIP with verify, but if file contains lots of FF, it is likely to fail.  I also found it is important to check every CF disk with PIP with verify; some CF disk will appear to work just fine in CP/M, but fail the verify test.

There are 4 fixes I've tried:
* 8 bit data bus
* data bus serial terminated with 100 ohms
* 100pF/ 100 ohm filter
* delay read/write strobe with respect to CF chip select.

Modern fast CF card benefited from 100pf/100ohm filter and 8-bit terminated data bus, but older CF benefited with delayed read/write strobe.  PC board layout is also important.  There are many moving parts to this problem.  

Save that marginal CF disk, it is very useful tool to check out your new designs with CF interface.

  Bill

Steve Cousins

unread,
Jan 7, 2023, 7:25:55 PM1/7/23
to RC2014-Z80
Thanks Bill. See attached photo of the "dodgy" CF card.
Steve

IMG_20230108_002315595.jpg

Tadeusz Pycio

unread,
Jan 7, 2023, 7:28:24 PM1/7/23
to RC2014-Z80
I'm assuming the delay is the critical element but it could be that the buffering of the RD and WR signals is actually what is improving things. See attached schematic.

My experience confirms that latency is a critical factor, especially for the RD signal.

Steve Cousins

unread,
Jan 7, 2023, 7:33:29 PM1/7/23
to RC2014-Z80
PIP with verify works fine with my CF interface module with the dodgy CF card, as tested with RomWBW on the SC111 based Z180 system.
Steve

Wayne Warthen

unread,
Jan 7, 2023, 8:46:52 PM1/7/23
to RC2014-Z80
Thank you for posting this.

Since Steve was able to replicate this problem with known good hardware, it definitely seems like this is an issue with the specific CF Card(s) you are using.  Hopefully, the replacement CF Card from Spencer will resolve all of this.

-Wayne

Bill Shen

unread,
Jan 7, 2023, 9:37:36 PM1/7/23
to RC2014-Z80
Let’s hope so.  V1.3 CF board has 100R/100pF filter but no delay from CF_CS to CF read/write.  It clearly does work with some brand of CF disks, but also show significant sensitivity to other brands.
  Bill

Phillip Stevens

unread,
Jan 7, 2023, 10:24:33 PM1/7/23
to RC2014-Z80
On Sunday, 8 January 2023 Bill wrote:
Let’s hope so.  V1.3 CF board has 100R/100pF filter but no delay from CF_CS to CF read/write.  It clearly does work with some brand of CF disks, but also show significant sensitivity to other brands.
  Bill

I’ve built Tadeuz’s V2.0 CF Module. He has fixed both timing issues and /RD glitch by using logic devices.  It is working for me on the difficult SD-CF Adapter and modern (fast) CF Cards.

I think he’s properly cracked this old CF Card chestnut!
Definitely worth the PCB cost to test it. His PCB attached.

P.
CF-Card-V2.0-JLCPCB.ZIP

Zlatko Knezevic

unread,
Jan 8, 2023, 12:47:36 AM1/8/23
to rc201...@googlegroups.com
Oh, that seems interesting. Are the resistors and C3 the same value as with the v1.3 of the CF module (that is, 14x1k and 1x330)? 

--
You received this message because you are subscribed to a topic in the Google Groups "RC2014-Z80" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/rc2014-z80/RS89vJ5hmLA/unsubscribe.
To unsubscribe from this group and all its topics, send an email to rc2014-z80+...@googlegroups.com.

Phillip Stevens

unread,
Jan 8, 2023, 1:05:59 AM1/8/23
to rc201...@googlegroups.com
Oh, that seems interesting. Are the resistors and C3 the same value as with the v1.3 of the CF module (that is, 14x1k and 1x330)?

Tadeusz included a schematic for the PCB on the IDE Module thread. I can’t find it just now.

It uses the same CF Connector as Spencer’s, and very generic devices. Very easy to obtain.

I’ve built Tadeuz’s V2.0 CF Module. He has fixed both timing issues and /RD glitch by using logic devices.  It is working for me on the difficult SD-CF Adapter and modern (fast) CF Cards.

I think he’s properly cracked this old CF Card chestnut!
Definitely worth the PCB cost to test it. His PCB attached.
--
Sent from a Mobile Device. Replies may appear terse.

Tadeusz Pycio

unread,
Jan 8, 2023, 4:03:56 AM1/8/23
to RC2014-Z80
Hi Phillip,
Have you checked how it works with the 8085? The module was designed to work with Zilog processors and I'm curious if it will also work with other architectures, as it won't necessarily work well here. Diagram attached.
CFModule2.pdf

Phillip Stevens

unread,
Jan 8, 2023, 6:43:24 AM1/8/23
to RC2014-Z80
On Sunday, 8 January 2023 Tadeusz wrote:
Hi Phillip,
Have you checked how it works with the 8085? The module was designed to work with Zilog processors and I'm curious if it will also work with other architectures, as it won't necessarily work well here.

Sorry, not yet. It is my plan to do 8085 testing, but I got distracted again. And I’m AFK currently. :-)
But I know it will work great with Zlatko’s RC2014 Pro.
 
Diagram attached.

Thanks.
P.

niedziela, 8 stycznia 2023 Phillip napisał(a):
I’ve built Tadeuz’s V2.0 CF Module. He has fixed both timing issues and /RD glitch by using logic devices. 
It is working for me on the difficult SD-CF Adapter and modern (fast) CF Cards.
I think he’s properly cracked this old CF Card chestnut! 
Definitely worth the PCB cost to test it. His PCB Gerbers attached. 

Steve Cousins

unread,
Jan 8, 2023, 12:59:08 PM1/8/23
to RC2014-Z80
I've spent a few hours investigating my "dodgy" CF card and improving my CF card test App. My test App now detects errors from the dodgy card whilst passing good cards.

With the dodgy card and the standard CF module (without the R/C filter found in the latest version) I get results as shown below.

The memory block at 9000 is the data being written while the data at 9800 is the data read back. They should be the same.

The program allows the read/verify cycle to be repeated for each sector but it always fails, so either the read errors are totally repeatable or the data is incorrectly written to the card.

Notice how the errors occur on every 4th byte read. It doesn't seem to be dependent on the previous write value. However, I think this was not the case with v1.1 of the test program. One possible reason is that v1.1 did the verify during the sector read. ie. between each byte read from the card. Version 1.2 uses the OTIR and INIR for maximum write and read speeds. The verify then takes place after the read is complete, by comparing the write buffer and read buffer stored in RAM.

Here is an example of what is written to the card and what is read back:
9000:  FF FF 00 FF FF 00 FF FF  00 FF FF 00 FF FF 00 FF  ................
9800:  FF FF 00 55 FF 00 FF 55  00 FF FF 55 FF FF 00 55  ...U...U...U...U
See below for the full buffer data.

I've attach the SCM Compact Flash Test App v1.2.0 for your entertainment.

Steve


Small Computer Monitor - RC/Z180
*Ready

*
*g8000
Compact flash card test v1.2.0 by Stephen C Cousins

Card at address $10:
Number of sectors on card: $5503EA00
Card size: 1TB

Card's self diagnostic test passed

WARNING: This will erase all data from the card
Do you wish to continue? (Y/N)

Sector: $00000000 failed: code $04
Verify error detected comparing data read back
Do you wish to retry the verify? (Y/N)

Do you wish to continue? (Y/N)

Sector: $00000001 failed: code $04
Verify error detected comparing data read back
Do you wish to retry the verify? (Y/N)

Do you wish to continue? (Y/N)

Sector: $00000002 failed: code $04
Verify error detected comparing data read back
Do you wish to retry the verify? (Y/N)

failed: code $04
Verify error detected comparing data read back
Do you wish to retry the verify? (Y/N)

Do you wish to continue? (Y/N)

Last write data at $9000
Last read back data at $9800
*
*
*m9000
9000:  FF FF 00 FF FF 00 FF FF  00 FF FF 00 FF FF 00 FF  ................
9010:  FF 00 FF FF 00 FF FF 00  FF FF 00 FF FF 00 FF FF  ................
9020:  00 FF FF 00 FF FF 00 FF  FF 00 FF FF 00 FF FF 00  ................
9030:  FF FF 00 FF FF 00 FF FF  00 FF FF 00 FF FF 00 FF  ................
9040:  FF 00 FF FF 00 FF FF 00  FF FF 00 FF FF 00 FF FF  ................
9050:  00 FF FF 00 FF FF 00 FF  FF 00 FF FF 00 FF FF 00  ................
9060:  FF FF 00 FF FF 00 FF FF  00 FF FF 00 FF FF 00 FF  ................
9070:  FF 00 FF FF 00 FF FF 00  FF FF 00 FF FF 00 FF FF  ................
9080:  00 FF FF 00 FF FF 00 FF  FF 00 FF FF 00 FF FF 00  ................
9090:  FF FF 00 FF FF 00 FF FF  00 FF FF 00 FF FF 00 FF  ................
90A0:  FF 00 FF FF 00 FF FF 00  FF FF 00 FF FF 00 FF FF  ................
90B0:  00 FF FF 00 FF FF 00 FF  FF 00 FF FF 00 FF FF 00  ................
90C0:  FF FF 00 FF FF 00 FF FF  00 FF FF 00 FF FF 00 FF  ................
90D0:  FF 00 FF FF 00 FF FF 00  FF FF 00 FF FF 00 FF FF  ................
90E0:  00 FF FF 00 FF FF 00 FF  FF 00 FF FF 00 FF FF 00  ................
90F0:  FF FF 00 FF FF 00 FF FF  00 FF FF 00 FF FF 00 FF  ................
9100:  FF 00 FF FF 00 FF FF 00  FF FF 00 FF FF 00 FF FF  ................
9110:  00 FF FF 00 FF FF 00 FF  FF 00 FF FF 00 FF FF 00  ................
9120:  FF FF 00 FF FF 00 FF FF  00 FF FF 00 FF FF 00 FF  ................
9130:  FF 00 FF FF 00 FF FF 00  FF FF 00 FF FF 00 FF FF  ................
9140:  00 FF FF 00 FF FF 00 FF  FF 00 FF FF 00 FF FF 00  ................
9150:  FF FF 00 FF FF 00 FF FF  00 FF FF 00 FF FF 00 FF  ................
9160:  FF 00 FF FF 00 FF FF 00  FF FF 00 FF FF 00 FF FF  ................
9170:  00 FF FF 00 FF FF 00 FF  FF 00 FF FF 00 FF FF 00  ................
9180:  FF FF 00 FF FF 00 FF FF  00 FF FF 00 FF FF 00 FF  ................
9190:  FF 00 FF FF 00 FF FF 00  FF FF 00 FF FF 00 FF FF  ................
91A0:  00 FF FF 00 FF FF 00 FF  FF 00 FF FF 00 FF FF 00  ................
91B0:  FF FF 00 FF FF 00 FF FF  00 FF FF 00 FF FF 00 FF  ................
91C0:  FF 00 FF FF 00 FF FF 00  FF FF 00 FF FF 00 FF FF  ................
91D0:  00 FF FF 00 FF FF 00 FF  FF 00 FF FF 00 FF FF 00  ................
91E0:  FF FF 00 FF FF 00 FF FF  00 FF FF 00 FF FF 00 FF  ................
91F0:  FF 00 FF FF 00 FF FF 00  FF FF 00 FF FF 00 FF FF  ................
9200:  AA 55 F0 AA 55 F0 AA 55  F0 AA 55 F0 AA 55 F0 AA  .U..U..U..U..U..
9210:  55 F0 AA 55 F0 AA 55 F0  AA 55 F0 AA 55 F0 AA 55  U..U..U..U..U..U
9220:  F0 AA 55 F0 AA 55 F0 AA  55 F0 AA 55 F0 AA 55 F0  ..U..U..U..U..U.
9230:  AA 55 F0 AA 55 F0 AA 55  F0 AA 55 F0 AA 55 F0 AA  .U..U..U..U..U..
9240:  55 F0 AA 55 F0 AA 55 F0  AA 55 F0 AA 55 F0 AA 55  U..U..U..U..U..U
9250:  F0 AA 55 F0 AA 55 F0 AA  55 F0 AA 55 F0 AA 55 F0  ..U..U..U..U..U.
9260:  AA 55 F0 AA 55 F0 AA 55  F0 AA 55 F0 AA 55 F0 AA  .U..U..U..U..U..
9270:  55 F0 AA 55 F0 AA 55 F0  AA 55 F0 AA 55 F0 AA 55  U..U..U..U..U..U
9280:  F0 AA 55 F0 AA 55 F0 AA  55 F0 AA 55 F0 AA 55 F0  ..U..U..U..U..U.
9290:  AA 55 F0 AA 55 F0 AA 55  F0 AA 55 F0 AA 55 F0 AA  .U..U..U..U..U..
92A0:  55 F0 AA 55 F0 AA 55 F0  AA 55 F0 AA 55 F0 AA 55  U..U..U..U..U..U
92B0:  F0 AA 55 F0 AA 55 F0 AA  55 F0 AA 55 F0 AA 55 F0  ..U..U..U..U..U.
92C0:  AA 55 F0 AA 55 F0 AA 55  F0 AA 55 F0 AA 55 F0 AA  .U..U..U..U..U..
92D0:  55 F0 AA 55 F0 AA 55 F0  AA 55 F0 AA 55 F0 AA 55  U..U..U..U..U..U
92E0:  F0 AA 55 F0 AA 55 F0 AA  55 F0 AA 55 F0 AA 55 F0  ..U..U..U..U..U.
92F0:  AA 55 F0 AA 55 F0 AA 55  F0 AA 55 F0 AA 55 F0 AA  .U..U..U..U..U..
9300:  55 F0 AA 55 F0 AA 55 F0  AA 55 F0 AA 55 F0 AA 55  U..U..U..U..U..U
9310:  F0 AA 55 F0 AA 55 F0 AA  55 F0 AA 55 F0 AA 55 F0  ..U..U..U..U..U.
9320:  AA 55 F0 AA 55 F0 AA 55  F0 AA 55 F0 AA 55 F0 AA  .U..U..U..U..U..
9330:  55 F0 AA 55 F0 AA 55 F0  AA 55 F0 AA 55 F0 AA 55  U..U..U..U..U..U
9340:  F0 AA 55 F0 AA 55 F0 AA  55 F0 AA 55 F0 AA 55 F0  ..U..U..U..U..U.
9350:  AA 55 F0 AA 55 F0 AA 55  F0 AA 55 F0 AA 55 F0 AA  .U..U..U..U..U..
9360:  55 F0 AA 55 F0 AA 55 F0  AA 55 F0 AA 55 F0 AA 55  U..U..U..U..U..U
9370:  F0 AA 55 F0 AA 55 F0 AA  55 F0 AA 55 F0 AA 55 F0  ..U..U..U..U..U.
9380:  AA 55 F0 AA 55 F0 AA 55  F0 AA 55 F0 AA 55 F0 AA  .U..U..U..U..U..
9390:  55 F0 AA 55 F0 AA 55 F0  AA 55 F0 AA 55 F0 AA 55  U..U..U..U..U..U
93A0:  F0 AA 55 F0 AA 55 F0 AA  55 F0 AA 55 F0 AA 55 F0  ..U..U..U..U..U.
93B0:  AA 55 F0 AA 55 F0 AA 55  F0 AA 55 F0 AA 55 F0 AA  .U..U..U..U..U..
93C0:  55 F0 AA 55 F0 AA 55 F0  AA 55 F0 AA 55 F0 AA 55  U..U..U..U..U..U
93D0:  F0 AA 55 F0 AA 55 F0 AA  55 F0 AA 55 F0 AA 55 F0  ..U..U..U..U..U.
93E0:  AA 55 F0 AA 55 F0 AA 55  F0 AA 55 F0 AA 55 F0 AA  .U..U..U..U..U..
93F0:  55 F0 AA 55 F0 AA 55 F0  AA 55 F0 AA 55 F0 AA 55  U..U..U..U..U..U
*m9800
9800:  FF FF 00 55 FF 00 FF 55  00 FF FF 55 FF FF 00 55  ...U...U...U...U
9810:  FF 00 FF 55 00 FF FF 55  FF FF 00 55 FF 00 FF 55  ...U...U...U...U
9820:  00 FF FF 55 FF FF 00 55  FF 00 FF 55 00 FF FF 55  ...U...U...U...U
9830:  FF FF 00 55 FF 00 FF 55  00 FF FF 55 FF FF 00 55  ...U...U...U...U
9840:  FF 00 FF 55 00 FF FF 55  FF FF 00 55 FF 00 FF 55  ...U...U...U...U
9850:  00 FF FF 55 FF FF 00 55  FF 00 FF 55 00 FF FF 55  ...U...U...U...U
9860:  FF FF 00 55 FF 00 FF 55  00 FF FF 55 FF FF 00 55  ...U...U...U...U
9870:  FF 00 FF 55 00 FF FF 55  FF FF 00 55 FF 00 FF 55  ...U...U...U...U
9880:  00 FF FF 55 FF FF 00 55  FF 00 FF 55 00 FF FF 55  ...U...U...U...U
9890:  FF FF 00 55 FF 00 FF 55  00 FF FF 55 FF FF 00 55  ...U...U...U...U
98A0:  FF 00 FF 55 00 FF FF 55  FF FF 00 55 FF 00 FF 55  ...U...U...U...U
98B0:  00 FF FF 55 FF FF 00 55  FF 00 FF 55 00 FF FF 55  ...U...U...U...U
98C0:  FF FF 00 55 FF 00 FF 55  00 FF FF 55 FF FF 00 55  ...U...U...U...U
98D0:  FF 00 FF 55 00 FF FF 55  FF FF 00 55 FF 00 FF 55  ...U...U...U...U
98E0:  00 FF FF 55 FF FF 00 55  FF 00 FF 55 00 FF FF 55  ...U...U...U...U
98F0:  FF FF 00 55 FF 00 FF 55  00 FF FF 55 FF FF 00 55  ...U...U...U...U
9900:  FF 00 FF 55 00 FF FF 55  FF FF 00 55 FF 00 FF 55  ...U...U...U...U
9910:  00 FF FF 55 FF FF 00 55  FF 00 FF 55 00 FF FF 55  ...U...U...U...U
9920:  FF FF 00 55 FF 00 FF 55  00 FF FF 55 FF FF 00 55  ...U...U...U...U
9930:  FF 00 FF 55 00 FF FF 55  FF FF 00 55 FF 00 FF 55  ...U...U...U...U
9940:  00 FF FF 55 FF FF 00 55  FF 00 FF 55 00 FF FF 55  ...U...U...U...U
9950:  FF FF 00 55 FF 00 FF 55  00 FF FF 55 FF FF 00 55  ...U...U...U...U
9960:  FF 00 FF 55 00 FF FF 55  FF FF 00 55 FF 00 FF 55  ...U...U...U...U
9970:  00 FF FF 55 FF FF 00 55  FF 00 FF 55 00 FF FF 55  ...U...U...U...U
9980:  FF FF 00 55 FF 00 FF 55  00 FF FF 55 FF FF 00 55  ...U...U...U...U
9990:  FF 00 FF 55 00 FF FF 55  FF FF 00 55 FF 00 FF 55  ...U...U...U...U
99A0:  00 FF FF 55 FF FF 00 55  FF 00 FF 55 00 FF FF 55  ...U...U...U...U
99B0:  FF FF 00 55 FF 00 FF 55  00 FF FF 55 FF FF 00 55  ...U...U...U...U
99C0:  FF 00 FF 55 00 FF FF 55  FF FF 00 55 FF 00 FF 55  ...U...U...U...U
99D0:  00 FF FF 55 FF FF 00 55  FF 00 FF 55 00 FF FF 55  ...U...U...U...U
99E0:  FF FF 00 55 FF 00 FF 55  00 FF FF 55 FF FF 00 55  ...U...U...U...U
99F0:  FF 00 FF 55 00 FF FF 55  FF FF 00 55 FF 00 FF 55  ...U...U...U...U
9A00:  AA 55 F0 55 55 F0 AA 55  F0 AA 55 55 AA 55 F0 55  .U.UU..U..UU.U.U
9A10:  55 F0 AA 55 F0 AA 55 55  AA 55 F0 55 55 F0 AA 55  U..U..UU.U.UU..U
9A20:  F0 AA 55 55 AA 55 F0 55  55 F0 AA 55 F0 AA 55 55  ..UU.U.UU..U..UU
9A30:  AA 55 F0 55 55 F0 AA 55  F0 AA 55 55 AA 55 F0 55  .U.UU..U..UU.U.U
9A40:  55 F0 AA 55 F0 AA 55 55  AA 55 F0 55 55 F0 AA 55  U..U..UU.U.UU..U
9A50:  F0 AA 55 55 AA 55 F0 55  55 F0 AA 55 F0 AA 55 55  ..UU.U.UU..U..UU
9A60:  AA 55 F0 55 55 F0 AA 55  F0 AA 55 55 AA 55 F0 55  .U.UU..U..UU.U.U
9A70:  55 F0 AA 55 F0 AA 55 55  AA 55 F0 55 55 F0 AA 55  U..U..UU.U.UU..U
9A80:  F0 AA 55 55 AA 55 F0 55  55 F0 AA 55 F0 AA 55 55  ..UU.U.UU..U..UU
9A90:  AA 55 F0 55 55 F0 AA 55  F0 AA 55 55 AA 55 F0 55  .U.UU..U..UU.U.U
9AA0:  55 F0 AA 55 F0 AA 55 55  AA 55 F0 55 55 F0 AA 55  U..U..UU.U.UU..U
9AB0:  F0 AA 55 55 AA 55 F0 55  55 F0 AA 55 F0 AA 55 55  ..UU.U.UU..U..UU
9AC0:  AA 55 F0 55 55 F0 AA 55  F0 AA 55 55 AA 55 F0 55  .U.UU..U..UU.U.U
9AD0:  55 F0 AA 55 F0 AA 55 55  AA 55 F0 55 55 F0 AA 55  U..U..UU.U.UU..U
9AE0:  F0 AA 55 55 AA 55 F0 55  55 F0 AA 55 F0 AA 55 55  ..UU.U.UU..U..UU
9AF0:  AA 55 F0 55 55 F0 AA 55  F0 AA 55 55 AA 55 F0 55  .U.UU..U..UU.U.U
9B00:  55 F0 AA 55 F0 AA 55 55  AA 55 F0 55 55 F0 AA 55  U..U..UU.U.UU..U
9B10:  F0 AA 55 55 AA 55 F0 55  55 F0 AA 55 F0 AA 55 55  ..UU.U.UU..U..UU
9B20:  AA 55 F0 55 55 F0 AA 55  F0 AA 55 55 AA 55 F0 55  .U.UU..U..UU.U.U
9B30:  55 F0 AA 55 F0 AA 55 55  AA 55 F0 55 55 F0 AA 55  U..U..UU.U.UU..U
9B40:  F0 AA 55 55 AA 55 F0 55  55 F0 AA 55 F0 AA 55 55  ..UU.U.UU..U..UU
9B50:  AA 55 F0 55 55 F0 AA 55  F0 AA 55 55 AA 55 F0 55  .U.UU..U..UU.U.U
9B60:  55 F0 AA 55 F0 AA 55 55  AA 55 F0 55 55 F0 AA 55  U..U..UU.U.UU..U
9B70:  F0 AA 55 55 AA 55 F0 55  55 F0 AA 55 F0 AA 55 55  ..UU.U.UU..U..UU
9B80:  AA 55 F0 55 55 F0 AA 55  F0 AA 55 55 AA 55 F0 55  .U.UU..U..UU.U.U
9B90:  55 F0 AA 55 F0 AA 55 55  AA 55 F0 55 55 F0 AA 55  U..U..UU.U.UU..U
9BA0:  F0 AA 55 55 AA 55 F0 55  55 F0 AA 55 F0 AA 55 55  ..UU.U.UU..U..UU
9BB0:  AA 55 F0 55 55 F0 AA 55  F0 AA 55 55 AA 55 F0 55  .U.UU..U..UU.U.U
9BC0:  55 F0 AA 55 F0 AA 55 55  AA 55 F0 55 55 F0 AA 55  U..U..UU.U.UU..U
9BD0:  F0 AA 55 55 AA 55 F0 55  55 F0 AA 55 F0 AA 55 55  ..UU.U.UU..U..UU
9BE0:  AA 55 F0 55 55 F0 AA 55  F0 AA 55 55 AA 55 F0 55  .U.UU..U..UU.U.U
9BF0:  55 F0 AA 55 F0 AA 55 55  AA 55 F0 55 55 F0 AA 55  U..U..UU.U.UU..U
*
SCM_CF_Test_code8000.hex

mik...@gmail.com

unread,
Jan 8, 2023, 1:22:45 PM1/8/23
to RC2014-Z80
Here’s the schematic for Tadeusz Pycio‘s CF interface:
(English Translation:)
https://www-vtsys-pl.translate.goog/interface-compact-flash/?_x_tr_sch=http&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en&_x_tr_pto=wapp

Looks like he both:
1. Delays deasserting CSn to the next rising edge of CLKn.
2. Delays asserting IORDn to the next rising edge of CLKn.

The rest (e.g. IOWRn, the falling edge of CSn) pass unharmed.

Just eyeballed the Z80 User Manual, and both of these look safe (e.g. I couldn’t recall if the address was held long enough on the bus for this implementation of #1 to be used directly — looks like it’s good!).

Michael

Zlatko Knezevic

unread,
Jan 8, 2023, 1:27:24 PM1/8/23
to rc201...@googlegroups.com
Well, I know my next little project, as soon as I'm able to figure out which CF slot I need. DigiKey has...hundreds of these things...anyone has a recc? :) 

Thanks for the detailed schematic Tadeusz! :))

Zlatko

--
You received this message because you are subscribed to a topic in the Google Groups "RC2014-Z80" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/rc2014-z80/RS89vJ5hmLA/unsubscribe.
To unsubscribe from this group and all its topics, send an email to rc2014-z80+...@googlegroups.com.

Kande Laber

unread,
Jan 8, 2023, 2:34:39 PM1/8/23
to RC2014-Z80
128 MB CF cards are still produced today, i.e. by a company called Swissbit.
I have asked a Swissbit engineer what a CF card interface card must satisfy to work properly.
His answer was: The interface card must meet the specifications.
The specifications can be found here: https://compactflash.org/specifications/
However they  say: "CFA specifications are sold for $100, but current members are able to download them for free."
Also, one has to bear in mind that a CF card contains a microcontroller, which in the case of Swissbit is a "Hyperstone F3 Controller" (https://www.hyperstone.com/file-615/pro_f3/Hyperstone_Flyer_F3.pdf).
It is quite evident that such a controller is at least as complex as many RC2014 builds.
In order to advanced with this CF card topic, I dear to suggest that the RC2014 community should comply with the CFA specifications.
Personally, I do not own a copy of the  CFA specifications and cannot afford to buy them.
Did any of the CF card interface card  designers here make use of the  CFA specifications? 

Tadeusz Pycio

unread,
Jan 8, 2023, 2:49:29 PM1/8/23
to RC2014-Z80
CFA specifications up to version 4.1 are available on the web. Also, you can use the data sheets of the CF card manufacturers, where a lot of interesting information can be obtained. On the basis of this information, I built a theoretical basis when designing my module.

Steve Cousins

unread,
Jan 8, 2023, 4:43:49 PM1/8/23
to RC2014-Z80
I studied a range of readily available datasheets from various manufacturers when designing my Compact Flash interface module.
Steve

Alan Cox

unread,
Jan 8, 2023, 5:49:14 PM1/8/23
to rc201...@googlegroups.com
> Did any of the CF card interface card designers here make use of the CFA specifications?

Yes - that's why the PPIDE card exists. It follows the correct timings
and behaviour for CF and IDE disk interfaces in IDE mode (as opposed
to PCMCIA mode which is just ... strange) but it involves more parts
and is slower. An interface that was absolutely to spec and fast would
be significantly more complex in order to get the exact timing order
on the bus, buffer the very sharp signal edges from the CF side to the
rather lower speed Z80 drivers and deal with the power spikes etc.

It's not so much a problem of specification as complexity. A fully
compliant interface involves dealing with the fact the Z80 and the CF
interface have similar but not actually identical bus interfaces. IDE
(and thus CF in PIO0 as we use it) is actually ISA bus timings.

The beauty of the simple CF interface is its simplicity. Unfortunately
as CF got faster and faster it has needed more and more tweaking
because the fact you could nail CF to most 8bit microprocessors with
just a few gates by judiciously ignoring some timings has become less
and less true.

Kande Laber

unread,
Jan 9, 2023, 11:43:50 AM1/9/23
to RC2014-Z80
From a practical perspective, I am very satisfied with Steve Cousins SC145 card and pre-owned Cisco CF cards, which Steve recommends in his guide.
Example:
*g 8000

Compact flash card information v1.1 by Stephen C Cousins

Card at address $10:
Number of sectors on card: $0003D400
Card size: 128MB

Card model:       "STI Flash 7.2.0                         "
Serial number:    "TS I1Jc1012522016420"
Firmware version: "04-29-05"

Default number of cylinders:  $03D4

Default number of heads:      $0008
Default sectors per track:    $0020

Card's self diagnostic test passed
*Ready

These cards works like a charm with my setup.

Question:
Does anybody in the community have experience with modern Swissbit 128 MB-CF-cards?

I would like to know, how they work in a RC2014 context.
But they are not cheap.
Are they worth the price?

Bill Shen

unread,
Jan 9, 2023, 1:42:27 PM1/9/23
to RC2014-Z80
$40 for Swissbit CF seems very expensive.  With better-designed CF boards now available, mix lot of used CF disks from eBay should work just fine.
  Bill

Kande Laber

unread,
Jan 9, 2023, 2:04:53 PM1/9/23
to RC2014-Z80
I agree, it is expensive. I wanted them to send me a free test sample. But they did not want.
Nevertheless, I am curious if a CF card that is still in production would work.
Maybe somebody has received a free test sample.

Zlatko Knezevic

unread,
Jan 9, 2023, 2:05:57 PM1/9/23
to rc201...@googlegroups.com
Do folks here get CF cards generally from ebay? Is that the place where I should look for them? 

There are much, much larger cards that are readily available from Amazon, but I assume they are no good for these kinds of projects?

Zlatko

--
You received this message because you are subscribed to a topic in the Google Groups "RC2014-Z80" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/rc2014-z80/RS89vJ5hmLA/unsubscribe.
To unsubscribe from this group and all its topics, send an email to rc2014-z80+...@googlegroups.com.

Bill Shen

unread,
Jan 9, 2023, 2:23:58 PM1/9/23
to RC2014-Z80
I once bought a new 2G Verbatim CF from Amazon (it worked), but all my other CF are used mixed lot from eBay, hundreds and hundreds.  Seldom had problems—those few I had problems with I saved as test cases.
  Bill

Wayne Warthen

unread,
Jan 9, 2023, 7:53:25 PM1/9/23
to RC2014-Z80
On Monday, January 9, 2023 at 11:05:57 AM UTC-8 zkne...@gmail.com wrote:
Do folks here get CF cards generally from ebay? Is that the place where I should look for them? 

I have certainly bought a bunch from eBay and generally had no problems beyond the known vagaries of the CF Interface.

There are much, much larger cards that are readily available from Amazon, but I assume they are no good for these kinds of projects?

There is nothing generically wrong with using larger CF Cards.  I am looking at my RC2014 Pro system sporting a 4GB Sandisk CF Card that works great.  Based on reports here, it seems that the larger cards are more likely to have trouble with the constraints of the RC2014 CF Card Interface.

-Wayne

Phillip Stevens

unread,
Jan 9, 2023, 8:13:54 PM1/9/23
to RC2014-Z80
On Tuesday, 10 January 2023 Zlatko wrote:
Do folks here get CF cards generally from ebay? Is that the place where I should look for them? 

There are much, much larger cards that are readily available from Amazon, but I assume they are no good for these kinds of projects?

I’ve generally used 1GB CF drives from Amazon. Either 1GB or 2GB seems to be the price versus capacity sweet spot for new cards.

A 1GB CF can store over 100 8GB CP/M drives, so that’s usually enough storage for most. If you need more, then there’s always PATA drives…

They work great with the standard IDE Module with a simple adapter.  Dylan has also made a CF IDE Module that is perfect for CF only systems. And they work (tested) with Taduesz’s CF V2.0 Module too.

What is more interesting is the use of SD-CF Adapters, which allow you to use SD or MicroSD cards in the CF Module. They’re also tested in all of the above options. And, they seem to be faster than CF. So there’s no comprise.

P.

Bill Shen

unread,
Jan 10, 2023, 9:08:57 AM1/10/23
to RC2014-Z80
I look around in eBay and it is clear that the day of $1-$2 CF when I bought most of mine is over.  They are now $4-$5 even in quantity of 10 when shipping is included.  This higher CF cost makes alternative to CF a reasonable consideration.  In particular is this DOM, 128MB 10 for $35, free shipping.  ( https://www.ebay.com/itm/224886730897?hash=item345c4b3091 )  I have no financial interest in this seller other than purchased couple lots from this seller 2 years or so ago and it was the same price.  He hasn't sold out since, so must have significant inventory to sell.

DOM has 44-pin IDE (2x22 2mm spacing) same as CF EXCEPT pin assignments are mirrored.  For board with 2x22 2mm connector such as PP-IDE, the DOM plugs to back of of the board.  For CF board with 2x22 IDE connector in form of SMT pads such as Karlab 10e, the two rows of 2x22 connector need to be swapped; which sounds complicated but actually is fairly simple as modified on my SimpleCF board.  

DOM only require an inexpensive 2x22 2mm male-to-male connector thus eliminate the expensive CF connector that's hard to solder.  The $3.50 DOM is an economical alternative to CF, possibly worthy a design revision of existing CF board.  
  Bill
SimpleCF_DOM_vs_CF.jpg
SimpleCF_with_DOM_modification.jpg

Phillip Stevens

unread,
Jan 16, 2023, 6:50:38 AM1/16/23
to RC2014-Z80
On Sunday, 8 January 2023 Phillip  wrote:
On Sunday, 8 January 2023 Tadeusz wrote:
Hi Phillip,
Have you checked how it works with the 8085? The module was designed to work with Zilog processors and I'm curious if it will also work with other architectures, as it won't necessarily work well here.

Sorry, not yet. It is my plan to do 8085 testing, but I got distracted again. And I’m AFK currently. :-)
But I know it will work great with Zlatko’s RC2014 Pro.

Tadeusz, I've built a version of CP/M-IDE for the 8085+ACIA, and tested it with your CF Module v2.0.
It's working well. Seems the method(s) of generating missing Z80 and CF signals work in collaboration with each other.

Regards, Phillip

Tadeusz Pycio

unread,
Jan 16, 2023, 3:08:33 PM1/16/23
to RC2014-Z80
Tadeusz, I've built a version of CP/M-IDE for the 8085+ACIA, and tested it with your CF Module v2.0.
It's working well. Seems the method(s) of generating missing Z80 and CF signals work in collaboration with each other.

Hi Phillip,
Glad to hear it, looks like I can now close the CF topic and focus on other projects. When I have a moment I'll get more familiar with the operating systems on the 6809 and try to test this module in that environment.
I've currently taken a break from hardware projects because I've neglected the software for modules that have already been created. The modules were being created faster than the complete software for them, and this is a bad habit.
Regards
Tadeusz Pycio

Tadeusz Pycio

unread,
Feb 8, 2023, 11:20:00 AM2/8/23
to RC2014-Z80
Looks like it's not the end of the CF module job after all. Most of the available cards work fine, all the ones I had in stock also. Spencer has a larger collection of them and has noticed that there are some that work fine in the read cycle, but trying to write causes the system to crash. He has sent the problematic ones to me and I will try to resolve the issue. Seemingly a simple module but causing so much trouble. :)

Bill Shen

unread,
Feb 8, 2023, 12:09:38 PM2/8/23
to RC2014-Z80
Interesting to hear your results.  My issues with CF were always with read; write had never caused problems.  What is the manufacture ID?
  Bill

Tadeusz Pycio

unread,
Feb 8, 2023, 12:44:13 PM2/8/23
to RC2014-Z80
Hi Bill,
I don't know, Spencer sent the cards to me today, so it will be a few days before I receive them. As far as I know the XceedCF and some Cisco cards are troublesome. I am also curious as to the reason for this behaviour, when writing the card does not affect the bus.

Dylan Hall

unread,
Feb 9, 2023, 12:39:49 AM2/9/23
to rc201...@googlegroups.com
That's unfortunate timing. I recently finished a slightly tweaked version of your CF module. I've tested it with a handful of cards including some that didn't work with the official module and the results were good.
I have one Cisco card in the pile so I'll have another go with that and see if I can reproduce the crash.

My tweaked version uses a '688 instead of the '138 for tighter address coupling and I've used a through hole CF socket.

IMG_0692.JPG

Dylan


On Thu, 9 Feb 2023 at 06:44, Tadeusz Pycio <ta...@wp.pl> wrote:
Hi Bill,
I don't know, Spencer sent the cards to me today, so it will be a few days before I receive them. As far as I know the XceedCF and some Cisco cards are troublesome. I am also curious as to the reason for this behaviour, when writing the card does not affect the bus.

--
You received this message because you are subscribed to the Google Groups "RC2014-Z80" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rc2014-z80+...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/rc2014-z80/339258ab-94fd-46a2-a199-f6beb8c98e86n%40googlegroups.com.
Schematic_CF Card for RC2014_2023-02-09.pdf

Tadeusz Pycio

unread,
Feb 9, 2023, 4:00:26 AM2/9/23
to RC2014-Z80
Hi Dylan,
I don't think this is a significant problem as it only affects a small number of CF card models. However, it is worth investigating why these cards refuse to serve. My solution does not differ from existing designs for the write cycle. Trying to adapt to the CF standard for the write cycle caused the PQI cards I had to fail. I'll have a go at finding out what is causing the errors on the ones I get and may be able to eliminate them. It is certainly possible to make an ideal CF card module, but I'm afraid it will be way beyond the 3 ICs. It is also possible that the differences in the operation of the CF cards for the available resources - 2 D flip-flops and 4 OR gates - cannot be reconciled. This already required double use of the D flip-flop for the read cycle, which is a hardware hack.

Tadeusz Pycio

unread,
Feb 20, 2023, 2:14:12 PM2/20/23
to RC2014-Z80
I received the problematic CF cards from Spencer today which I was able to test on different models of CF modules. In the case of the Cisco 256MB (UNIGEN FLASH) and the 128MB industrial card (STEC M2+), I was unable to replicate a situation where they failed. There is an interesting situation with the Transced 1GB cards, as they did indeed cause problems, which gradually decreased as the bus frequency increased, to cease completely at 18.432MHz (I suspect that the limit of their correct operation starts around 12MHz) - for 7.37MHz correct reads and during write crashes, at 9.216MHz it often managed to write correctly.
I have no idea how to solve such a problem. I will keep looking into it.

test.jpg

Tadeusz Pycio

unread,
Feb 21, 2023, 6:24:38 AM2/21/23
to RC2014-Z80
I keep wondering how to improve the CF module so that there are no surprises like these Transcend cards. I'd have to build another model to test the validity of another idea.
An elegant solution would be such an arrangement, only how to realise it without using a GAL? An option is to use an OR gate connected to the /CLR input of the D flip-flop instead of clock negation, as in the existing solution. The required AND goal will still remain.

cf.jpg
Another tempting idea is to duplicate the circuit that is currently used to generate the IORD for the IOWR at the expense of a circuit that extends the duration of the /IORQ in the address decoder. This would maintain the same amount of circuitry. I just don't know if shifting the IOWR signal by half a clock beat would satisfy the PQI cards. I'm assuming that all cards will not fail when shortening the final /CS phase.
That is where my ideas for a simple solution to this problem temporarily end. It may also not be worth fighting windmills.

Bill Shen

unread,
Feb 21, 2023, 9:24:49 AM2/21/23
to RC2014-Z80
Does your board have 100R/100pF filter?  I bought 10 Transcend 128MB CF early on and had problems (this was 16-bit CF data path for 68000).  That was the beginning of my experimentation with CF.  The 100ohm data bus terminations and 100R/100pF filter fixed the issue with Transcend and became a general solution for other problematic CF disks.  With more experimentation, I got rid of 100 ohm data termination for 8-bit wide CF data because ground bounce was not quite as severe with 8-bit data switching.
  Bill

Tadeusz Pycio

unread,
Feb 21, 2023, 2:08:12 PM2/21/23
to RC2014-Z80
Hi Bill,
This is not a reflection problem, I am attaching waveforms of the /IORD gate output from my v1.1 module having an R100/100pF filter (single pulse) and a directly connected v2.0 (series of pulses compatible with /RD) for a Transcend 1GB card in a Z180 18.423MHz environment.

filtr.png

none.png

Mark T

unread,
Feb 21, 2023, 3:37:47 PM2/21/23
to RC2014-Z80

Do compact flash cards expect cmos input levels or are they ok with ttl levels?

Data hold time on z80 write cycles is very short, any glue logic on write enable to the card would make this worse. Does compact flash spec a longer hold time?

Alan Cox

unread,
Feb 21, 2023, 3:45:00 PM2/21/23
to rc201...@googlegroups.com
On Tue, 21 Feb 2023 at 20:37, Mark T <mark...@gmail.com> wrote:

Do compact flash cards expect cmos input levels or are they ok with ttl levels?

They work better with CMOS Z80 parts. I think that may have more to do with current than signal levels./ The CF (and IDE) interface is ISA bus on a string so it's TTL.
 

Tadeusz Pycio

unread,
Feb 21, 2023, 3:55:42 PM2/21/23
to RC2014-Z80
Hi Mark,
CF cards work at CMOS levels. For the write cycle the data is kept on the bus for quite a long time, the problem with CF cards was with the read cycle where this window is small. I don't think it's a problem of latency introduced by the logic either, these Transcend cards run at faster read/write cycles and the latency of the logic doesn't change.

z80-io-cycle.jpg

Tadeusz Pycio

unread,
Feb 21, 2023, 6:21:14 PM2/21/23
to RC2014-Z80
Previously I showed each signal /IORD for the 2.0 version of the module, I should while the CF card was active (sorry for the nasty power supply, but my power bank was close to shutting down and giving such a 'lovely' voltage). The purple is /IORD, the yellow is /CE. We can certainly rule out the problem of bounces.

none1.png

Bill Shen

unread,
Feb 21, 2023, 7:33:44 PM2/21/23
to RC2014-Z80
Where is your scope grounded?  Curious to see the /CE bounced up at the same time /IORD asserted and bounced down when /IORD negated.  If CF interface actually saw the bounced up /CE as negation of the signal, it’ll mess up the setup time between /CE and /IORD.

When you said the CF is not working correctly, what test are you running?  Can you zero in on a specific test pattern and make it repeatable?  It is hard to chase intermittent problem, but once you have a repeatable test pattern, then the debugging task becomes much easier.
  Bill

Tadeusz Pycio

unread,
Feb 22, 2023, 2:45:45 AM2/22/23
to RC2014-Z80
Hi Bill,
The oscilloscope is connected to the zero wire and I used a battery power supply (Power Bank) to power the RCBus kit. I'll try to repeat the measurement with a charged one, because what you saw was due to it, the voltage fluctuated between 4.6-5.1V (I should find a more stable power source). But even under those harsh measurement conditions this signal peak /CE was 1.64V so even for TTL logic this is not a high state.
My test is simple, I copy all the files from one disk to another (PIP), when the copying is successful I start compiling and linking the example program in PLI (this package has a large library - 71kB so hence the choice). As I wrote earlier, with a system clock of 7.37MHz I was unsuccessful in copying the files, for 9.216MHz most of the files copied, and for 18.432MHz all the files copied and the compilation gave the correct resulting file.

Bill Shen

unread,
Feb 22, 2023, 12:35:44 PM2/22/23
to RC2014-Z80
How circuit behaves in the region between 0.8V and 2.0V is hard to predict.  It varies by manufacturers, temperature and duration of the pulse.  Slow retro electronics may ignore fast pulse, but fast CF electronics of certain manufacturers may respond to it.  It is hard to say.

There may be a plausible explanation to the different error behaviors at different frequencies.  The power bank's 5V is sensitive to current load and higher frequency has greater current load so voltage droop more at higher frequency.  Lower voltage slows down CF and also reduces peak-to-peal voltage swing thus reduces system noise generated by CF access.  As long as the voltage supervisor doesn't get in the way, your hardware is likely to operate below 4.5V; I'd guess 4.0V or even lower.  I know Simple80 with its suite of Z80, SIO, RAM, flash, TTL, and CF can run CP/M correctly down to about 3.5V @7.37MHz.  Alan had suggested placing diode between 5V and CF's supply.  Since CF is designed to operate from 3.3V-5V, the idea is to slow it down and reduce voltage swing thus reducing system noise.  I haven't tried it, but it is a sound idea--assuming system noise is the problem.  You may simulate the effect of higher clock frequency by adding additional power load while running at 7.37MHz.
  Bill

Reply all
Reply to author
Forward
0 new messages