BBC Micro Disk Transfer Utility

(c) Kemal Sangrar 2013-2014

I made this simple utility to transfers files from my BBC Micro computer to my PC to run in an emulator. As it proved useful, I've published the code for others to use. Hope you find it useful!
screenshot.png

Requirements

  • The application requires that .NET 4 Framework is installed on your PC. The .NET 4.5.1 Framwork should also be compatible. The .NET Framework can be downloaded from the Microsoft web site if not already installed.
  • You will require a suitable cable to connect the serial port of your PC to the RS423 port of the BBC micro. There are resources on the web to assist with creating your own.

Installation

The program requires no special installation. Simply copy the file to your preferred location and run the executable.

Using the application

Getting started:
  1. Ensure the BBC micro is on and the disc drives attached and ready and the cable is connected between the BBC Micro and the PC.
  2. Run the BBC Micro Disk Transfer Utility
  3. At the prompt on the BBC Micro, type:
	*FX7,7
	*FX2,1

The BBC Micro will apparently freeze up as it is now connected to the serial port. To test the link, press the Test Link button in the app.

Transferring files:
  1. Ensure the required drive is in the drive.
  2. Ensure the drive is selected in the app and that you have chosen the target location to transfer the files.
  3. Press List Contents to view the files on the disc in the window.
  4. Press 'Transfer Drive' to transfer all the contents to the target location. As the files are transferred, the list is updated.
  5. You can abort the transfer by clicking the Abort transfer button.

Connection issues:

It is not always possible to leave the connection in a clean state especially if the program is closed 'mid transfer' or if errors occur. Also the 'Abort transfer' tries to leave the connection in a clean state but doesn't always manage.

In the event that the PC seems to stop talking to the BBC Micro, you must close the application and Ctrl-Break the BBC Micro,then restart the application to ensure that all contents are flushed from the serial buffers before communications can be resumed.

How it works

The FX commands issued on the BBC Micro at the start of the session direct the BBC to receive user input from the serial port and to send the VDU commands back to the serial port. The app simply writes the required *-commands to get the contents of the requested disc and parses the text results to present to the user.

When the file transfer is initiated, the app sends a tiny program over, just two lines that are directly executed, to stream the bytes of the file to the VDU. If this were visible on the screen, lots of crazy stuff such as characters, colours, screen mode changes etc would appear, but, when directed to the serial port, the bytes simply appear to the app as incoming characters
which are turned back into bytes and saved.

The super-simple nature of the program means there is no checking of the bytes (no check sum for example), so corruption of the transferred file is a risk, but these are small files and thus far I haven't found there to be any issue.

Last edited Mar 14, 2014 at 12:58 PM by sangrar, version 3