Getting an MBR back onto your CF cards

General forum for support issues related to the CFFA3000

Getting an MBR back onto your CF cards

Postby rich » Wed Mar 27, 2013 5:01 pm

Some customers have been tripped up by the fact that the CFFA3000 needs a CF card formatted with (FAT16 OR FAT32) AND a valid MBR at block 0.
Most CF cards aleady have an MBR written to block zero, but if you ever use that CF card in an older CFFA with ProDOS, it would have over-written
the MBR. Doing a regular format under windows will NOT put the MBR back onto block zero.

To get the MBR back onto block zero using a Mac is very easy, just use the disk format/partition tool that comes on the Mac.
To write an MBR using Windows 7 is much less straight forward.

Below is the method I use. I found this on the inter-tubes, and if you know better way let me know.
First you have open a command (CMD) windows with administrator privileges!
Click Start->All Programs->Accessories. Then Right-Click on "Command Prompt" and select "Run as Administrator". Answer "yes" if prompted for permission.
(NOTE: If you use a "Command Prompt" that does not have administrator privileges, the process described below will appear to work, but will NOT change the disk!)

Now you should have a command prompt (DOS Box) open. The following commands can be entered.
**** WARNING **** Making a mistake on the "select disk" step could result in the complete loss of all data on your PC's harddrive!!!!!!!!!!!!! Don't make a mistake!
Code: Select all
diskpart

list disk
select disk (id)          // (id) = Number of the disk you are trying to setup with an MBR. Get this right!
online disk
attributes disk clear readonly
clean
convert mbr                // This might give an error, don't worry
create partition primary
select part 1
active
format fs=FAT label=(name) quick      // The label= part is optional
exit

Now you can go to your windows explorer and right-click on your CF drive (if present) and select Eject. Skipping this step usually doesn't hurt anything.
But I do it anyway.

-Rich
rich
 
Posts: 188
Joined: Sat Feb 16, 2002 6:00 pm
Location: Wisconsin

Re: Getting an MBR back onto your CF cards

Postby jerry » Thu Jan 23, 2014 12:50 am

I've been having a bear of a time getting various CF cards to work in my CFFA3000 with a FAT file system on them.

I've got one Lexar 128MB card that works fine.

Others work fine in RAW mode.

I've done the procedure above on a Windows Vista machine and the CFFA refuses to recognize it as a non-raw card.

I've also formatted a card with Windows XP.

FAT-16 file systems in both cases.

What is the exact technical criteria for the CFFA3000 to consider a CF-card to contain a FAT file system?

Here is a hex-dump of my CF card that works as FAT:
Code: Select all
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000001b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 01  |................|
000001c0  01 00 0b 01 01 00 3f 00  00 00 c1 d7 03 00 00 00  |......?.........|
000001d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 55 aa  |..............U.|


And here is a hex-dump of one other card that does NOT work as FAT:

Code: Select all
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000001b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 01  |................|
000001c0  01 00 06 01 01 00 3f 00  00 00 c1 ed 01 00 00 00  |......?.........|
000001d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 55 aa  |..............U.|


I have tried partition types 0x06 (FAT16) and 0x0b (W95 FAT32) (byte offset 0x1c2 in the MBR) and the results are the same.


thanks,
Jerry
jerry
 
Posts: 5
Joined: Wed Jan 22, 2014 11:36 pm

Re: Getting an MBR back onto your CF cards

Postby dlyons » Thu Feb 13, 2014 4:20 am

Jerry, your MBR looks OK to me. The CFFA3000 accepts both 6 and 0xB for the partition type (the full list is: 1, 4, 5, 6, 0xB, 0xC, 0xE, 0xF).

(Another way to write an MBR would be from the CFFA3000 menus: Raw CF Card Settings > Write New MBR to CF. But you would still need to format the volume using a PC, and your MBR already looks good.)

Once the 3K finds the MBR, next it must recognize the FAT volume. In your case it will read sector 0x3F to examine the BPB inside. [Some details: It needs the sectors-per-cluster to be a power of 2, and the (computed) number of clusters must be >= 4086 (and, for FAT16, <65525). To compute number of clusters it uses several things from the BPB: number of sectors, number of reserved sectors, number of sectors per FAT, number of root directory entries. The number of FATs is assumed to be 2.]

Try turning on the Extra Debug Logging DIP Switch, try to use the CF card, and then from the 3K main menu, Control-D for the Debug menu, and save a debug log (to a USB stick). There may be useful clues in the CFFA.LOG that it saves. There should be a line identifying the partition type and saying "useIt = 1". Sadly, there will not be a log message saying exactly how the BPB didn't qualify as FAT16.

If the problem remains...please post (or email Rich) the CFFA.LOG and a hex dump of sector 0x3F, and we'll get to the bottom of it.

Cheers,

--Dave The Firmware Guy
dlyons
 
Posts: 42
Joined: Sun Feb 17, 2002 6:00 pm

Re: Getting an MBR back onto your CF cards

Postby jerry » Thu Feb 27, 2014 1:11 am

Thanks for your reply, Dave.

Here's what I tried.

1. zero entire CF card from linux (dd if=/dev/zero of=/dev/sdb)
2. insert CF card into CFFA3000 and get it to write MBR
3. dump MBR on linux (dd if=/dev/zero count=1 2>/dev/null |hexdump -C)
Code: Select all
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000001b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 01  |................|
000001c0  01 00 0b 01 01 00 3f 00  00 00 c1 ed 01 00 00 00  |......?.........|
000001d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 55 aa  |..............U.|

# fdisk -l /dev/sdb

Disk /dev/sdb: 64 MB, 64749568 bytes
2 heads, 1 sectors/track, 63232 cylinders, total 126464 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1              63      126463       63200+   b  W95 FAT32

4. format CF with FAT-32 file system. Check it too.
Code: Select all
# mkfs.msdos -F 32 /dev/sdb1
# fsck.msdos -v /dev/sdb1
dosfsck 3.0.12 (29 Oct 2011)
dosfsck 3.0.12, 29 Oct 2011, FAT32, LFN
Checking we can access the last sector of the filesystem
Boot sector contents:
System ID "mkdosfs"
Media byte 0xf8 (hard disk)
       512 bytes per logical sector
       512 bytes per cluster
        32 reserved sectors
First FAT starts at byte 16384 (sector 32)
         2 FATs, 32 bit entries
    498176 bytes per FAT (= 973 sectors)
Root directory start at cluster 2 (arbitrary size)
Data area starts at byte 1012736 (sector 1978)
    124423 data clusters (63704576 bytes)
62 sectors/track, 2 heads
         0 hidden sectors
    126401 sectors total
Checking for unused clusters.
Checking free cluster summary.
/dev/sdb1: 0 files, 1/124423 clusters

5. copy SystemTools1.po and SystemTools2.po to the CF card FAT file system and unmount it.
6. place CF in CFFA3000 in powered-off IIgs (DIP switches on SW3: 3 on, 7 on, others off) and power on IIgs.
7. enter CFFA3000 control panel. Doesn't like CF. Save log to USB. Here it is:
Code: Select all
CFFA3000 v3.1 (CPLD v6)
in slot 7 of Apple IIgs, ROM 01
SLOTREG=C2
Disk II slot = 0, SmartPort slot = 7
AVR LFUSE=7F, HFUSE=10, EFUSE=F3
DIP Switches = 44
Prefs in CFFA EEPROM:
  28 DF CD 05 01 01 00 00
  00 00 01 00 06 00 00 0F
  04 00 00 00 00 00 00 00
  00 00 00 00 00 00 00 00
  00 00 00 00 00 00 00 00
USB: Vol Label: NO NAME
     FAT 16, cluster size = 1K

Disk images:
 0 raw blocks
 1 raw blocks
 2 "ProDOS_2_0_3.dsk" on USB
    Path=PRODOS~1.DSK
    EXT0 S=0000008F, L=0000008C
16 "drol.dsk" on USB
    Path=DROL.DSK
    EXT0 S=0000034B, L=0000008C
-----------------

[      0.028908s] CFFA3000 v3.1
[      0.028984s] -----------------
[      0.029076s] AVR Reset (0x05 = PowerOn)
[      0.029216s] Log level = detailed
[      0.695532s] CFReadBlock(00000000): noErr 165.93ms
[      0.695704s] CF: Sector 0 is not an MBR
[      0.703212s] USB: Attached
[      2.003292s] CFReadBlock(00000000): noErr 1.66ms
[      2.003464s] CF: Sector 0 is not an MBR
[      2.005172s] CFIdentify: noErr
[      3.747912s] USB: Enum complete
[      3.999896s] Device Descriptor
[      3.999988s]  12 01 00 02 00 00 00 40
[      4.000120s]  8F 05 87 63 43 01 01 02
[      4.000256s]  03 01
[      4.009904s] ConfigDescriptorData size = 0020
[      4.010048s]  09 02 20 00 01 01 00 80
[      4.010184s]  32 09 04 00 00 02 08 06
[      4.010320s]  50 00 07 05 01 02 40 00
[      4.010456s]  00 07 05 82 02 40 00 00
[      4.010592s]
[      4.013900s] Mass Storage device enumerated
[      4.016908s] Total LUNs: 01 - using #0
[      4.028900s]   finished MS_Host_ResetMSInterface
[      4.278188s]   finished MS_Host_RequestSense
[      4.278548s]   finished PreventAllowMediumRemoval
[      4.279228s]   finished GetInquiryData
[      4.279940s]   ready
[      4.280236s] Blocks=0001E7FF, BlockSize=00000200
[      4.281352s] USBReadBlock(00000000), noErr 1.07ms
[      4.281536s] Partition #0 type=06 useIt=01
[      4.282664s] USBReadBlock(00000020), noErr 1.07ms
[      4.284004s] USBReadBlock(0000021F), noErr 1.07ms
[      4.285400s] USBReadBlock(0000423F), noErr 1.10ms
[      4.287796s] USBReadBlock(00000041), noErr 2.16ms
[      4.289232s] USBReadBlock(00004240), noErr 1.10ms
[      4.290620s] USBReadBlock(00004241), noErr 1.15ms
[      4.291956s] USBReadBlock(00004242), noErr 1.10ms
[      4.293292s] USBReadBlock(00004243), noErr 1.10ms
[      4.294628s] USBReadBlock(00004244), noErr 1.10ms
[      4.295968s] USBReadBlock(00004245), noErr 1.10ms
[      4.297304s] USBReadBlock(00004246), noErr 1.10ms
[      4.298644s] USBReadBlock(00004247), noErr 1.10ms
[      4.299980s] USBReadBlock(00004248), noErr 1.10ms
[      4.301320s] USBReadBlock(00004249), noErr 1.10ms
[      4.302656s] USBReadBlock(0000424A), noErr 1.10ms
[      4.303996s] USBReadBlock(0000424B), noErr 1.10ms
[      4.305332s] USBReadBlock(0000424C), noErr 1.10ms
[      4.306668s] USBReadBlock(0000424D), noErr 1.10ms
[      4.307976s] USBReadBlock(0000424E), noErr 1.06ms
[      4.308568s] USB: Found CFFA.CFG, read L=00001FFF
[      4.309848s] USBReadBlock(0000021F), noErr 1.07ms
[      4.311660s] USBReadBlock(00000220), noErr 1.06ms
[      4.313616s] USBReadBlock(0000021F), noErr 1.06ms
[      4.315432s] USBReadBlock(00000220), noErr 1.07ms
[      4.317228s] USBReadBlock(00000221), noErr 1.07ms
[      4.318760s] USBReadBlock(0000021F), noErr 1.09ms
[      4.320588s] USBReadBlock(00000220), noErr 1.08ms
[      4.322384s] USBReadBlock(00000221), noErr 1.07ms
[      4.324204s] USBReadBlock(00000222), noErr 1.09ms
[      4.325992s] USBReadBlock(0000021F), noErr 1.07ms
[      4.327816s] USBReadBlock(00000220), noErr 1.07ms
[      4.329612s] USBReadBlock(00000221), noErr 1.07ms
[      4.331204s] USBReadBlock(0000021F), noErr 1.07ms
[      4.333056s] USBReadBlock(00000220), noErr 1.10ms
[      4.334852s] USBReadBlock(00000221), noErr 1.06ms
[      4.336648s] USBReadBlock(00000222), noErr 1.07ms
[      4.338056s] USBReadBlock(0000021F), noErr 1.10ms
[      4.339632s] USBReadBlock(0000021F), noErr 1.06ms
[      4.340296s] Config entries for Disk II   = 06
[      4.340448s] Config entries for SmartPort = 02
[      4.345760s] USBReadBlock(0000021F), noErr 5.12ms
[      4.347584s] USBReadBlock(00000220), noErr 1.08ms
[      4.348440s] Devices::AssignOneFile: size=00023000
[      4.353760s] USBReadBlock(0000021F), noErr 5.13ms
[      4.355584s] USBReadBlock(00000220), noErr 1.08ms
[      4.357584s] USBReadBlock(0000021F), noErr 1.09ms
[      4.359432s] USBReadBlock(00000220), noErr 1.10ms
[      4.361472s] USBReadBlock(00000024), noErr 1.11ms
[      4.367208s] USBReadBlock(00000959), noErr 1.07ms
[      4.368780s] USBReadBlock(000008D3), noErr 1.07ms
[      4.370352s] USBReadBlock(0000021F), noErr 1.08ms
[      4.372204s] USBReadBlock(00000220), noErr 1.10ms
[      4.374000s] USBReadBlock(00000221), noErr 1.07ms
[      4.374408s] Devices::AssignOneFile: size=00023000
[      4.375756s] USBReadBlock(0000021F), noErr 1.13ms
[      4.377588s] USBReadBlock(00000220), noErr 1.08ms
[      4.379384s] USBReadBlock(00000221), noErr 1.06ms
[      4.381204s] USBReadBlock(00000222), noErr 1.09ms
[      4.381900s] Devices::AssignOneFile: size=00023000
[      4.383204s] USBReadBlock(0000021F), noErr 1.09ms
[      4.385056s] USBReadBlock(00000220), noErr 1.10ms
[      4.386852s] USBReadBlock(00000221), noErr 1.06ms
[      4.387340s] Devices::AssignOneFile: size=00023000
[      4.388624s] USBReadBlock(0000021F), noErr 1.07ms
[      4.390440s] USBReadBlock(00000220), noErr 1.06ms
[      4.392280s] USBReadBlock(00000221), noErr 1.11ms
[      4.394076s] USBReadBlock(00000222), noErr 1.07ms
[      4.394360s] Devices::AssignOneFile: size=00023000
[      4.395636s] USBReadBlock(0000021F), noErr 1.06ms
[      4.396104s] Devices::AssignOneFile: size=00023000
[      4.397428s] USBReadBlock(0000021F), noErr 1.10ms
[      4.398100s] Devices::AssignOneFile: size=00023000
[      4.399376s] USBReadBlock(0000021F), noErr 1.06ms
[      4.401204s] USBReadBlock(0000021F), noErr 1.08ms
[      4.403060s] USBReadBlock(00000021), noErr 1.10ms
[      4.408136s] USBReadBlock(00000022), noErr 1.13ms
[      4.410280s] USBReadBlock(000003E1), noErr 1.09ms
[      4.411852s] USBReadBlock(0000035B), noErr 1.07ms
[      4.631140s] CFReadBlock(00000000): noErr 1.66ms
[      4.631312s] CF: Sector 0 is not an MBR
[      4.632428s] USBReadBlock(00000000), noErr 1.09ms
[      4.632612s] Partition #0 type=06 useIt=01
[      4.635760s] USBReadBlock(00000020), noErr 3.09ms
[      4.643868s] CFReadBlock(00000000): noErr 760us
[      4.644040s] CF: Sector 0 is not an MBR
[      4.645748s] CFIdentify: noErr
[      4.646852s] USBReadBlock(00000000), noErr 1.07ms
[      4.647036s] Partition #0 type=06 useIt=01
[      4.648160s] USBReadBlock(00000020), noErr 1.06ms
[      4.649504s] USBReadBlock(0000021F), noErr 1.07ms
[      4.650904s] USBReadBlock(0000423F), noErr 1.10ms
[      4.652532s] USBReadBlock(00004240), noErr 1.13ms
[      4.653868s] USBReadBlock(00004241), noErr 1.10ms
[      4.655216s] USBReadBlock(00004242), noErr 1.11ms
[      4.656620s] USBReadBlock(00004243), noErr 1.16ms
[      4.657956s] USBReadBlock(00004244), noErr 1.10ms
[      4.659300s] USBReadBlock(00004245), noErr 1.11ms
[      4.660636s] USBReadBlock(00004246), noErr 1.10ms
[      4.661972s] USBReadBlock(00004247), noErr 1.10ms
[      4.663312s] USBReadBlock(00004248), noErr 1.10ms
[      4.664648s] USBReadBlock(00004249), noErr 1.10ms
[      4.665988s] USBReadBlock(0000424A), noErr 1.10ms
[      4.667324s] USBReadBlock(0000424B), noErr 1.10ms
[      4.668660s] USBReadBlock(0000424C), noErr 1.10ms
[      4.670000s] USBReadBlock(0000424D), noErr 1.10ms
[      4.671308s] USBReadBlock(0000424E), noErr 1.07ms
[      4.671900s] USB: Found CFFA.CFG, read L=00001FFF
[      4.673204s] USBReadBlock(0000021F), noErr 1.09ms
[      4.675056s] USBReadBlock(00000220), noErr 1.10ms
[      4.677012s] USBReadBlock(0000021F), noErr 1.07ms
[      4.678828s] USBReadBlock(00000220), noErr 1.07ms
[      4.680624s] USBReadBlock(00000221), noErr 1.06ms
[      4.682132s] USBReadBlock(0000021F), noErr 1.07ms
[      4.683948s] USBReadBlock(00000220), noErr 1.06ms
[      4.686764s] USBReadBlock(00000221), noErr 2.09ms
[      4.688588s] USBReadBlock(00000222), noErr 1.09ms
[      4.690376s] USBReadBlock(0000021F), noErr 1.07ms
[      4.692204s] USBReadBlock(00000220), noErr 1.08ms
[      4.694000s] USBReadBlock(00000221), noErr 1.07ms
[      4.695592s] USBReadBlock(0000021F), noErr 1.07ms
[      4.697432s] USBReadBlock(00000220), noErr 1.09ms
[      4.699228s] USBReadBlock(00000221), noErr 1.07ms
[      4.701056s] USBReadBlock(00000222), noErr 1.10ms
[      4.702436s] USBReadBlock(0000021F), noErr 1.06ms
[      4.704056s] USBReadBlock(0000021F), noErr 1.10ms
[      4.704716s] Config entries for Disk II   = 06
[      4.704872s] Config entries for SmartPort = 02
[      4.706136s] USBReadBlock(0000021F), noErr 1.07ms
[      4.707952s] USBReadBlock(00000220), noErr 1.07ms
[      4.708808s] Devices::AssignOneFile: size=00023000
[      4.710068s] USBReadBlock(0000021F), noErr 1.07ms
[      4.711888s] USBReadBlock(00000220), noErr 1.07ms
[      4.713864s] USBReadBlock(0000021F), noErr 1.07ms
[      4.715684s] USBReadBlock(00000220), noErr 1.07ms
[      4.722292s] USBReadBlock(00000959), noErr 1.08ms
[      4.723864s] USBReadBlock(000008D3), noErr 1.07ms
[      4.725428s] USBReadBlock(0000021F), noErr 1.07ms
[      4.727280s] USBReadBlock(00000220), noErr 1.10ms
[      4.729080s] USBReadBlock(00000221), noErr 1.06ms
[      4.729484s] Devices::AssignOneFile: size=00023000
[      4.730772s] USBReadBlock(0000021F), noErr 1.07ms
[      4.732588s] USBReadBlock(00000220), noErr 1.07ms
[      4.734428s] USBReadBlock(00000221), noErr 1.10ms
[      4.736228s] USBReadBlock(00000222), noErr 1.07ms
[      4.736920s] Devices::AssignOneFile: size=00023000
[      4.738212s] USBReadBlock(0000021F), noErr 1.07ms
[      4.740056s] USBReadBlock(00000220), noErr 1.09ms
[      4.741852s] USBReadBlock(00000221), noErr 1.07ms
[      4.742340s] Devices::AssignOneFile: size=00023000
[      4.743624s] USBReadBlock(0000021F), noErr 1.06ms
[      4.745440s] USBReadBlock(00000220), noErr 1.07ms
[      4.747280s] USBReadBlock(00000221), noErr 1.10ms
[      4.749076s] USBReadBlock(00000222), noErr 1.07ms
[      4.749360s] Devices::AssignOneFile: size=00023000
[      4.750652s] USBReadBlock(0000021F), noErr 1.07ms
[      4.751116s] Devices::AssignOneFile: size=00023000
[      4.752428s] USBReadBlock(0000021F), noErr 1.09ms
[      4.753100s] Devices::AssignOneFile: size=00023000
[      4.754376s] USBReadBlock(0000021F), noErr 1.07ms
[      4.756204s] USBReadBlock(0000021F), noErr 1.08ms
[      4.762872s] USBReadBlock(000003E1), noErr 1.08ms
[      4.764444s] USBReadBlock(0000035B), noErr 1.07ms
[      4.766052s] USBReadBlock(0000021F), noErr 1.09ms
[      4.767872s] USBReadBlock(00000220), noErr 1.07ms
[      4.768728s] Devices::AssignOneFile: size=00023000
[      4.769988s] USBReadBlock(0000021F), noErr 1.07ms
[      4.771804s] USBReadBlock(00000220), noErr 1.06ms
[      4.773788s] USBReadBlock(0000021F), noErr 1.08ms
[      4.775608s] USBReadBlock(00000220), noErr 1.07ms
[      4.782208s] USBReadBlock(00000959), noErr 1.07ms
[      4.783780s] USBReadBlock(000008D3), noErr 1.07ms
[      4.784244s] Installing CDA [01]
[      5.278908s] PRODOS_READ B=0000 to buffer 0800
[      5.280704s] CFReadBlock(00000000): noErr 1.72ms
[      5.280880s] D_ReadBlock dev=00 blk=00000000 noErr
[      5.281836s] CFReadBlock(00000001): noErr 812us
[      5.282012s] D_ReadBlock dev=00 blk=00000001 noErr
[      9.388416s] Main Menu - from $Cn30 or CDA

8. here's the dump of CF sector 63.
Code: Select all
00000000  eb 58 90 6d 6b 64 6f 73  66 73 00 00 02 01 20 00  |.X.mkdosfs.... .|
00000010  02 00 00 00 00 f8 00 00  3e 00 02 00 00 00 00 00  |........>.......|
00000020  c1 ed 01 00 cd 03 00 00  00 00 00 00 02 00 00 00  |................|
00000030  01 00 06 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000040  00 00 29 36 53 95 d1 20  20 20 20 20 20 20 20 20  |..)6S..         |
00000050  20 20 46 41 54 33 32 20  20 20 0e 1f be 77 7c ac  |  FAT32   ...w|.|
00000060  22 c0 74 0b 56 b4 0e bb  07 00 cd 10 5e eb f0 32  |".t.V.......^..2|
00000070  e4 cd 16 cd 19 eb fe 54  68 69 73 20 69 73 20 6e  |.......This is n|
00000080  6f 74 20 61 20 62 6f 6f  74 61 62 6c 65 20 64 69  |ot a bootable di|
00000090  73 6b 2e 20 20 50 6c 65  61 73 65 20 69 6e 73 65  |sk.  Please inse|
000000a0  72 74 20 61 20 62 6f 6f  74 61 62 6c 65 20 66 6c  |rt a bootable fl|
000000b0  6f 70 70 79 20 61 6e 64  0d 0a 70 72 65 73 73 20  |oppy and..press |
000000c0  61 6e 79 20 6b 65 79 20  74 6f 20 74 72 79 20 61  |any key to try a|
000000d0  67 61 69 6e 20 2e 2e 2e  20 0d 0a 00 00 00 00 00  |gain ... .......|
000000e0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 55 aa  |..............U.|


Hopefully this helps diagnose the problems I'm having. I've tried with four different CF cards (64 MB and 128 MB in size).
jerry
 
Posts: 5
Joined: Wed Jan 22, 2014 11:36 pm

Re: Getting an MBR back onto your CF cards

Postby dlyons » Fri Feb 28, 2014 12:18 am

OK, that's very helpful. The CFFA's log says "CF: Sector 0 is not an MBR", and the only test that results in that message is failure to find the 55 AA in the last two bytes. But they show up on Linux just fine. There are 3 possibilities, and I think we can figure out which one:

(1) There could be a hardware problem with the signals to/from the CF card slot. So let's see what bytes the 3K is reading from sector 0:
From the main menu, type Control-D; choose Dump Memory; select any choice for which memory type to dump; then type "r" to read a raw CF sector. It goes to 0 automatically. Press the Down arrow once and you should be seeing the data from 0x100 to 0x1FF, and it should match what you saw in Linux. It probably won't! Maybe it will be close, which will be a good clue to where an open or a short might be, or maybe the data will be totally off.

(2) There could be some other problem with RAM on the 3K. -- Try the self test:
"Switch 6 ON (DOWN) = Power-on self tests: Blink the LEDs in sequence, test 128K SRAM and 8K DPRAM. Then it either blinks an error code on the red LED, or it lights a green LED and waits for you to turn the switch off before proceeding."

(3) The 3K's main firmware may have become corrupted. If this is the case, the "bootloader" is in a separate area of code, and it may be able to recognize the CF card.
"Switch 8 ON (DOWN) = At power on initiates firmware upgrade (looks for CFFA.bin ... on FAT-formatted/MBR CF card only)."
For success the red LED will blink (2, 7); for failures see manual page 23, "Small Bright Red LED D5".

--Dave
dlyons
 
Posts: 42
Joined: Sun Feb 17, 2002 6:00 pm

Re: Getting an MBR back onto your CF cards

Postby jerry » Fri Feb 28, 2014 10:54 pm

(1) Identical to what I see in Linux. Here it is again:
Code: Select all
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000001b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 01  |................|
000001c0  01 00 06 01 01 00 3f 00  00 00 c1 ed 01 00 00 00  |......?.........|
000001d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 55 aa  |..............U.|


(2) LED D4 lights up after the little LEDs blink in sequence.

(3) Doesn't seem to do the firmware upgrade. Just tells me to shut off switch 8.


I thought I'd try something:

Turn on IIgs, hit Ctrl-Reset when Check Startup Device starts bouncing.
]call -151
*c700g

Naturally, nothing to boot, as expected. I hit Ctrl-Reset again and re-enter the monitor, knowing that boot-0 goes into 800..9ff. From a raw CF partition, that's going to be the MBR, me thinks... I typed in the following, but didn't bother typing in the ASCII on the right side.
Code: Select all
* 800.9ff
00/09B0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01
00/09C0:01 00 06 01 01 00 7F 00 00 00 C1 ED 01 00 00 00
00/09D0: all zeros
00/09E0: all zeros
00/09F0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 D5 EA


So, bytes at 9C6, 9fe and 9ff are all wrong. 9c6 and 9ff have bit 6 incorrectly set and 9fe has bit 7 incorrectly set.
Hmmm...

Tried it a few more times, and the results are different. In many cases, there were bunches of other bytes with bit 7 set. FWIW, IIgs self-test reports System Good.


Jerry
jerry
 
Posts: 5
Joined: Wed Jan 22, 2014 11:36 pm

Re: Getting an MBR back onto your CF cards

Postby jerry » Fri Feb 28, 2014 10:57 pm

Okay, after I posted that I realized I should try your test #1 again.

I think I got lucky once when I did the Control-D ==> Memory Dump step. Now when I enter the CFFA control panel and redo that step, after verifying the 800.9ff memory has bad bits, the memory dump does indeed show the same bad bits in the memory dump.
jerry
 
Posts: 5
Joined: Wed Jan 22, 2014 11:36 pm

Re: Getting an MBR back onto your CF cards

Postby dlyons » Sat Mar 01, 2014 3:14 am

So it seems your CFFA3000 has a hardware issue - but one thing still puzzles me. You have one Lexar 128MB CF card that works fine? Is there something different about that one, perhaps a different thickness, that might put different pressure on the connector? Or perhaps any card works, but only while the card is cold, and then starts failing after the 3K heats up?
dlyons
 
Posts: 42
Joined: Sun Feb 17, 2002 6:00 pm

Re: Getting an MBR back onto your CF cards

Postby rich » Sat Mar 01, 2014 2:58 pm

Jerry,

Please contact me via email at rich@dreher.net to see about getting you a replacement card.

Thanks,
-Rich
rich
 
Posts: 188
Joined: Sat Feb 16, 2002 6:00 pm
Location: Wisconsin

Re: Getting an MBR back onto your CF cards

Postby jerry » Sat Mar 01, 2014 4:23 pm

Rich, I've sent you an email.

Dave, yes, I have one working Lexar 128 card. The only one I've reliably found to work.

I tried pushing on the cards a bit harder, wiggling them in, etc. No luck. I get this same behavior in a IIe as well as the IIgs.


Jerry
jerry
 
Posts: 5
Joined: Wed Jan 22, 2014 11:36 pm

Re: Getting an MBR back onto your CF cards

Postby blakespot » Tue Jan 09, 2024 10:39 am

I might suggest, in today's world (since this original post, dated 2014), adjusting the drill offered in the initial post to this:

Code: Select all
diskpart

list disk
select disk (id)          // (id) = Number of the disk you are trying to setup with an MBR. Get this right!
online disk
attributes disk clear readonly
clean
convert mbr                // This might give an error, don't worry
create partition primary size=(mb)    // (mb) = Size in megabytes for the desired partition
select part 1
active
format fs=FAT label=(name) quick      // The label= part is optional
exit


The change is the size attribute on 'create partition primary,' as I kept getting a "The volume size is too big" error on a 16GB USB stick when I issued the format command. Standard, base FAT (aka FAT16) maxes at 2GB, so keep volumes below that. I just arbitrarily formatted this SanDisk 16GB stick to 800MB and am no longer getting the issues I was having when the stick was formatted FAT32 to full capacity. The stick would sometimes disappear to the Apple II, requiring a power bounce. Things are stabled with the smaller volume.

When this thread was posted -- 10 years ago -- USB sticks were rather less capacious. My $.02.


bp
blakespot
 
Posts: 1
Joined: Sun Jul 08, 2018 11:46 am


Return to CFFA3000 Support

Who is online

Users browsing this forum: No registered users and 16 guests

cron