Wednesday, May 29, 2013

CHED - Update

Project CHED (Combined Hardware Emulated Drives)

I have finally got CHED to work. I did a working presentation at OzKFest (www.ozkfest.net) which was held on 27-28 July 2013. A summary of my presentation is as follows :-

There are many solutions providing mass storage for the Apple II. Many of them have come about since I began construction on my own solution. I have tried to list and classify the ones that I am aware of. You can see where CHED fits into the picture.

Disk II Port - Disk II protocol
Semi-Virtual Diskette (SVD) - www.thesvd.com
bootZero - www.bootzero.com/HDDD_A2_v1.2/HDDD_A2v1.2.html
SDISK II - DISK II emulator for APPLE II - http://tulip-house.ddo.jp/digital/SDISK2/english.html
and http://tulip-house.ddo.jp/digital/SDISK2V1/english.html
USB AII-SPI-DSK - http://apple-crapple.blogspot.com.au/search/label/Disk%20%5D%5B
CHED - http://lukazi.blogspot.com.au/search?q=ched

Disk II Port - Smartport protocol
Apple //c Smartport Compact Flash Adapter - http://www.users.on.net/~rjustice/SmartportCFA/SmartportCFA.htm
Smartport Virtual Hard Drive (SPVHD) - www.spvhd.org/

Apple II Slot - Floppy Drive (Replaces the floppy drive controller as well as the drive unit)
Double Action Pseudo Disk / PseudoDisk2 - http://alexfreed.com/FPGApple/pseudodisk.html
  and http://www.applelogic.org/PseudoDisk2.html
iDisk - https://sites.google.com/site/idiskapple2/home
SD DISKII Emulator - http://cafe.naver.com/appleii/13931

Apple II Slot - Hard Disk Drive (Replaces the floppy drive controller as well as the drive unit)
Apple II IDE/ATA interface - http://s.guillard.free.fr/Apple2IDE/Apple2IDE.htm
CFFA / CFFA3000 (inludes floppy emulation) - http://dreher.net/?s=projects/CFforAppleII&c=projects/CFforAppleII/main.php
Microdrive IDE controller - www.reactivemicro.com/
Focus IDE HD Controller - http://16sector.com/

Serial port
Apple Disk Transfer ProDOS (ADTPro) - http://adtpro.sourceforge.net/
ADTPro Virtual Drive - VSDRIVE - http://adtpro.sourceforge.net/vdrive.html
Pocket Serial Host (Uses VSDRIVE) - http://osgeld.a2hq.com/category/projects/pocket-serial-host/
A2CLOUD (Uses VSDRIVE) - http://appleii.ivanx.com/prnumber6/category/a2cloud/
Apple Game Server - http://a2gameserver.berlios.de/
    and http://sourceforge.net/projects/a2gameserver/

AppleTalk Network
A2SERVER - http://appleii.ivanx.com/a2server/

Ethernet
ADTPro Virtual Drive - VEDRIVE - http://adtpro.sourceforge.net/vdrive.html

Speaker port
Online Apple II Game Server - http://asciiexpress.net/gameserver/
Online Apple II Disk Server - http://asciiexpress.net/diskserver/
Cassette tapes using a music payer (PC/iPad etc). Source data from Brutal Deluxe Software http://www.brutaldeluxe.fr/projects/cassettes/index.html

Joystick Port
Apple //t - http://atomsandelectrons.com/blog/2010/04/apple-t/





CHED is a replacement of the floppy drive unit and still requires the controller card to function.

I'm aiming for CHED to replace all three generations of the Apple II floppy disk unit.

Generations :-
1. 5.25 inch floppy disk.
2. Smartport.
3. 3.5 inch floppy disk.

Here is a list of the Apple II models and the generation of floppy disk that they can operate :-

  • II - 1
  • II+ - 1
  • IIe - 1
  • IIc - 1
  • IIe with Liron or Superdrive card - 1, 2
  • IIc with ROM 0 or later - 1, 2
  • IIGS - 1, 2, 3
  • IIc+ - 1, 2, 3

The hardware construction for CHED looks like this :-







  • Atmega128 handles the user interface, hard drive access, protocol conversion and the Apple II interface.
  • IDT72125 Parallel to Serial FIFO chip handles the read signal data because there is not enough CPU time left to bit bang this out of the Atmega128.
  • LCD and keypad allows selection of which disk files to use.
  • ATA hard drive stores the dsk and nib images under FAT32.
  • USB to IDE converter allows easy access to files on the hard disk. 

Currently only the reading of disk files has been implemented ie writing to disk files is yet to come. The USB to IDE interface has yet to be implemented. Using SD media would simplify the design but I'm still committed to creating a more durable solution.

With this design I have found that the amount of memory has been limiting. More memory would allow a better implementation of FAT32 (specifically having directories) and implementing caching so that the hard drive can reduce the amount of reading it needs to do. Also adding a buffer between the LCD/Keypad and the Atmega32 would improve the feel of the user operation.

With these issues in mind I have embarked on trying a different platform to make things easier for myself.









I'm currently playing around with a Cypress Development board to see if I can improve on my previous design.