Smartport Virtual Hard Disk, version 0.99.0 (beta), 2010-05-14 1) DISCLAIMER The information is provided by the author and while he endeavour to keep the information up to date and correct, the author make no representations or warranties of any kind, express or implied, about the completeness, accuracy, reliability, suitability or availability with respect to this project or the information, products, services, or related graphics contained in this project for any purpose. Any reliance you place on such information is therefore strictly at your own risk. In no event will the author be liable for any loss or damage including without limitation, indirect or consequential loss or damage, or any loss or damage whatsoever arising from loss of data or profits arising out of, or in connection with, the use of this project. 2) PREAMBLE What apple 2c owner have never did this dream ? No more floppy swaping ! All is in the hard drive ! This was my first motivation to develop this project. But I must warn you, this software is in an earlier stage, ie beta version, always keep a backup of your data ! This software is free and I'm happy to share it at no cost, but if you are so happy that you would like to support my efforts :) you can credit my paypal account (pcedric@hotmail.com). 3) GOAL OF THE PROJECT It emulate a smartport device for your apple 2, reusing an old PC. A smartport device is a mass storage up to 8GBytes size. Nevetheless, the maximum size usable by Prodos is 32MBytes. Other operating system could require some tricks to use such mass storage. 4) HOW IT'S WORKING At this stage of the developpement, the emulation is done on a PC, wich is connected to the apple 2's smartport trough the parallel port using a specific cable. The apple 2 see a smartport device and is able to read, write, format and even boot from it. Many improvements are planned, look at the end of this document. 4) REQUIREMENTS Hardware: - a PC powered by from Pentium to Pentium 4 or equivalent processor - the cpu frequency must not change during the emulation - an hard disk formated with FAT16, that could host the 32MB image file - the specific cable connecting the apple 2 smartport to the PC parallel port Software: - the operating system must be DOS, like FreeDOS - no TSR are supported (smartdrive, mouse drivers, and so on, your config.sys and autoexec.bat must be nearly empty) - this software will not work in a virtual machine The software was tested succesfully on the following processors: - Pentium 120 - Pentium 200MMX - Athlon XP 2000 The test failed with the following processor: - Core2duo E6400 3) SPECIFIC CABLE Within the doc folder, you will find schema to make the cable. The type A cable is the easier to do, but your apple 2 will not boot until the PC is powered on, and it could damage your hardware as the parallel port could have totem pole ouputs and the smarport require open collector output. The type B cable take care of this but require additionnal electronic. It's possible to use the cable of an existing 3.5 drive and add needed change, it's what I did for the prototype. 4) QUICK START a) Make your home made specific cable and connect your old PC to the apple 2. b) Get the floppy image and write to a floppy disk using raw write under windows, or dd under linux. c) Boot the old PC with the newly created floppy disk d) At the command prompt, type vhd f=<your cpu frequency> e) Boot your apple 2 with mousedesk or your prefered prodos disk utilities f) format the new drive, should be located in slot 5 drive 1 g) copy your softwares on the newly formated prodos volume h) remove all floppy disk from the apple 2 and reboot it ! 5) USAGE Simply start vhd.com with the parameter f=<your cpu frequency>. For example, if the PC your would use is equiped with a Pentium III 500, type the following: vhd f=500 Beware that some CPU don't run at the expected frequency, for example, the Athlon XP 2000 is running at 1666MHz, so for this cpu the command line become vhd f=1666 The frequency parameter could be altered as motherboard don't provide an exact frequency. So, you could try a value decreased or increased by 1 or 2 MHz if it don't work as expected. It will create a new image file, named hd1.img, if it doesn't already exist, then it will take control of the parallel port to decode and respond to all smartport request from the apple 2. During emulation, the screen will be filled with stranges codes. This allow to follow activities and see what happen if something goes wrong. Displayed codes are: R. Succesfully received a read request W. Succesfully received a write request D. Succesfully received a data packet S. Succesfully received a status request Ss Succesfully received a device status request Sc Succesfully received a device conrol block request Si Succesfully received a device information block request F. Succesfully received a format request R: Error when receiving a read request W: Error when receiving a write request D: Error when receiving a data packet P: Error when when seeking within the disk image ?: Undefined error C: Crc error when decoding a packet #: Buffer overflow T: Timeout waiting a packet @: Packet format error When the apple 2 is down, it's normal to see T: displayed continuously. When the apple 2 is booting, the message 'Got id' should be displayed, if this is not the case, reset the apple 2 to get this message displayed. If this message is never displayed, something is wrong with the cable, or the frequency given as parameter is wrong. If you start VHD from the floppy drive, it could be necessary to reboot the apple 2 because an access to the floppy will be done after the start, wich could break a data exchange with the apple 2. At any time, you could hit the escape key of the PC to stop the emulation. Better to do this after the shutdown of your apple 2 to avoid data losses. 6) ISSUES Q) The PC freeze A) Smartport VHD is not compatible with your hardware, please report it at pcedric@hotmail.com. Q) The apple 2 freeze accessing the smartport VHD A) This could arise if you started smartport VHD from the floppy disk, or if you stroke some keys on the PC keyboard. Reboot the apple 2. Q) The PC display a lot of C: and @: symbols A) There is a synchronisation problem, retry by reducing or increasing the frequency given on the command line by step of 1Mhz. When the synchronisation is perfect, the PC should not display any C: nor @: symbols. Q) The PC display continuously the symbols T: A) This is the normal operation, showing the smartport VHD is running and waiting requests from the apple 2. Q) An external phantom drive appear in slot 6 drive 2 R) Smartport VHD don't handle all functions of the external floppy connector at the current stage. It will be fixed in a futur release but require some changes in the specific cable. 7) ASSEMBLING FROM SOURCE NASM 2.xx must be installed and in the path. Start make.bat or make.sh to assemble the software from the sources. A vhd.com file must be created at the end of the process. If you would like to be involved in the project, or simply get my own documentation to help you in your smartbus project, contact me at pcedric@hotmail.com. 6) PLANNED AND POSSIBLE EVOLUTIONS - update the 486 version to get it working again - add support for daisy chain - add floppy emulation - add emulation of more than one hard disk - add a bootstrap allowing to select the boot device directly from the apple 2 - add support for extended smartport protocol - create a smartport to parallel port bridge (apple 2 <-> PC) - create a smartport to usb bridge (apple 2 <-> PC) - create a usb to smartport bridge (apple 2 <-> usb card reader, usb harddisk) - create a standalone smartport mass storage