The DCExe utility:
This really consists of two programs one for the PC and one for the DreamCast! But you don't notice, because the latest DC program is "built-in" to the PC program and uploaded if needed.
Download V1.010 of DCExe here.
* Written in PC assembly language for size and speed
* Sends new loader to the now 'standard' marcus serial slave, then maxi's to 1.56mbps!
* Contains latest 'DC side' loader written in Sh1 assembly language for size and speed!
* New 'Console' mode with more functions than standard Serial Slave software (memory dump, etc)
* Can transfer either SRECords or Binary files
* SRECord transfer acceleration
* Initial negotiation speed is 781kbaud, this allows easier testing of the resistor values
When downloaded, the DCExe "console mode" normally has a green border, transfering to or from the DC will result in border colour changes (like an old Sinclair Spectrum loading!), this is normal! :)
PC side parameters:
DCEXE [/?] [/n#] [/c] [/b[#]] [/g[#]] [/2] [/3] [/s] [fname]
/?- Display usage
Files are sent as SRECords, unless the /b switch is used!!!
DC side console commands:
?- Display version
Windows NT and above
Because of the way that WinNT and above protect your PC from "bogus" memory accesses, you will have problems on these OS's unless you run this device driver sent to us by Brian Peek - Thanks Brian! :)
How to use FileServer Mode:
The experimental fileserver allows you to access PC facilities from the DC. To use the FileServer, first Tx the command byte from the DC - then invert it and Tx it again... Parameters follow as below...
|1||PutChar||Tx a byte to display.|
|2||GetChar||Rx a byte from pc (the pc waits for a keypress).|
|3||Open||Tx a string for the filename, then Tx a byte for the open mode. Rx two bytes for the file handle.|
|4||Create||Tx a string for the filename, then Tx two bytes for the create mode. Rx two bytes for the file handle.|
|5||Read||Tx two bytes for the handle, Tx four bytes for the length. Rx four bytes for a length, and then Rx "length" bytes, repeat until Rx "length" is zero.|
|6||Write||Tx two bytes for the handle, Tx four bytes for the length, and then Tx "length" bytes.|
|7||Seek||Tx two bytes for the handle, then Tx four bytes for the offset and finally Tx a byte for the mode.|
|8||Close||Tx two bytes for the handle.|
|9||Delete||Tx a string for the filename to delete!|
|10||Rename||Tx a string for the oldname, then Tx another string for the new name!|
|11||Exit||Makes the PC exit DCExe!|
|12||Write Blank||Tx two bytes for the handle, Tx four bytes for the length!|
There is *no* error handling within the FileServer.
Information for programmers who want to write new utilities for the DCXfer card:
Just write 'N' to the Sh1 baud rate divider 'N', if you want to know the exact baudrate it is "156200/(N+1)"
You can use the Sh1 DCExe (V1.002) SREC for DC as a test file to get your PC code to work.
The first thing it does it set 'N' to one this is 781kbaud, the 2nd fastest rate the DC supports! It loads below the normal marcus' Serial Slave. To help you start writing your own utilities you can download the complete source code for the DCExe program here.