darkfader.net SMC

SmartMedia Card

SSFDC/SMC

SmartMedia Cards (SMC) are also called Solid-State Floppy Disk Cards (SSFDC).
They have a physical to logical block mapping to be able to erase a complete block. Caching should be done to extend the life of the cards since they have a limited number of writes.
Because of the fast increase of densities, the original specifications have been extended to maintain compatibility.
An SMC consists of zones, where each zone have 1000 logical blocks out of 1024 available. This means that at low-level specification, there can be 24 bad blocks per zone. On 128MB cards, this costs 3MB.
The cards have card identification fields, and by default have a partition table. When you format with Windows using an SMC to PC card adapter, it could end up partitionless and a strange formatting so devices like GP32 will not be able to read any of it. The SSFDC-forum recommends the use of FAT12/16 as filesystem for compatibility, but could easily be combined with EXT2 or other filesystem. Because Windows won't allow you to create multiple partitions, you could copy a raw disk image to "\\.\PhysicalDriveX", where X is some number (be careful chosing the right disk!). You can also use WinImage, WinHex and such similar program to copy raw data from/to a disk, edit a disk directly or edit a disk image. Hehe... you don't even need obscure Linux tools.
You can also write-protect SMC's by placing a conductor shaped as a circle at the right place. Windows should report it's read-only when trying to write to it: 

http://darkfader.net/gp32/files/protected.gif

The GamePark (well... more Samsung) SMC library unfortunately does not check if the SMC is read-only though. This could be hardwired (there's a write-protect pin on an SMC) or the library can be modified (since GP32 can read out this contact).


Downloads

SMC.zip - v1.00 - SMC file library, SMC to RAW converter, RAW to SMC converter.
makeraw.txt - example of how to make a raw disk file with dual file-system under linux
dual.raw.zip - This disk dump (16MB) has a FAT12 and an EXT2 partition on it :)
HexWorkshop.gif - use a hex-editor to read/write SMC's... you'll need a cardreader and select 32000 sectors, not 32001 :)

SMIF.lha - taken from AmiNet: "Cheap SmartMedia interface + sourcecode"
smfs221.zip - official Samsung sourcecode: SmartMedia File System (get smfs221.PDF too)
seccom21.zip - official Samsung sourcecode: SMC flash test


Links

hkems - EMS PC Cardreader (5-in-1) (wait for 2nd version! WinXP compatibility etc)
sysinternals - A sync tool to flush the cache of drives. Useful when you're using batch files.
SmartMedia data recovery - some nice page about FAT12 & smartmedia
SSFDC Forum - much info and specs about SmartMedia
Phison - linux driver for 5-in-1 cardreader
SystemSoft - ATAManager can be used to manage partitions on CompactFlash and SmartMedia cards
Winbond - FLASH Memory Controller (W78E727E) used in the EMS 5-in-1 cardreader
WinImage - WinImage is a nice tool to edit disk image files.
WinHex - Read/write data from/to files/disks.

(C) Copyright Dark Fader