Files

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