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.

Features:

* 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
/n# - Set DC's 'N' to # (#=0 to 255)
/b[#] - file is binary, download to $# (default is 8c010000)
/g[#] - run at addr $# (default is 8c010000 or /b addr)
/c - Enter console mode at end of transfer
/f - Enter FileServer mode at end of transfer (experimental)
/2 - Use port 2 (pro only)
/3 - Use Doomed's special edition card! ;)
/s - Slow mode (turn off SREC acceleration)

Files are sent as SRECords, unless the /b switch is used!!!

DC side console commands:

?- Display version
B@@ - Binary transfer to @, size@ (@=4 bytes)
G@ - Go address @
H - Help
M[#] - Memory dump (#=8 digit hex number)
R - Reset DC
Sx... - SRECord (types 0, 3 and 7 are valid)

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...

CmdDescriptionParameters
0NOP (ignored!)None!
1PutCharTx a byte to display.
2GetCharRx a byte from pc (the pc waits for a keypress).
3OpenTx a string for the filename, then Tx a byte for the open mode. Rx two bytes for the file handle.
4CreateTx a string for the filename, then Tx two bytes for the create mode. Rx two bytes for the file handle.
5ReadTx 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.
6WriteTx two bytes for the handle, Tx four bytes for the length, and then Tx "length" bytes.
7SeekTx two bytes for the handle, then Tx four bytes for the offset and finally Tx a byte for the mode.
8CloseTx two bytes for the handle.
9DeleteTx a string for the filename to delete!
10RenameTx a string for the oldname, then Tx another string for the new name!
11ExitMakes the PC exit DCExe!
12Write BlankTx 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:

Dreamcast side:

Just write 'N' to the Sh1 baud rate divider 'N', if you want to know the exact baudrate it is "156200/(N+1)"

Download complete source code for the DC program here. You need this utility to insert any updates (serial.inc) into the PC side of the program.

PC Side:

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.