CPC TRANSFILE PROJECT

What is it?

It is a project aimed at simulating a small filesystem on the an Amstrad
CPC computer with the files being stored on a PC hard disk. The project
is now complete, and I do not plan on improving it in any way...


Detailed information

If you don't know machine code, forget reading the source. I removed
most of the comments I had in it before because it got difficult to
debug in Devpac. The programs were created on a 80286 years back. This
ran at 16MHZ and thus the timings were synchronised to the CPU clock of
my PC and the 3.3MHZ rate of the CPC.


How it works

What happens is that on the PC we load up the compiled source code and
the screen sits with a star turning around waiting for a connection.
Then we load up the CPC executable binary and when this is run, it
replaces the kernal AMSDOS/cassette procedure calls with ones to my
routines stored about &AB00H in RAM. I cannot take this any higher or
lower without risk of memory corruption. This is not guaranteed to work
with every CPC games, because some are _very_ memory hungry. We can now
use the load and save c ommands, as well as some extra commands embedded
within the quotes. eg.

AMSTRAD CPC VIEW :

AMSTRAD 6128K MIRCROCOMPUTER (V1.3)
READY
RUN"TRANLOAD
READY
LOAD"CD /CPC/GAMES/1943"
LOAD"DIR"
LOAD"FH 1943.BIN"
RUN"1943.BAS"
(1943 loads and runs)


IBM PC COMPATIBLE VIEW
C:\TRANSFLE\TF
TRANSFILE PC<=>CPC Transfer Utility"
(C) 1995,96 Microtek Software
* CD /CPC/GAMES/1943
DIR
1943.BIN 1943.BAS FILE_ID.DIZ
FILE HEADER INFORMATION
Filename: 1943.BIN
Filetype: Binary
Start Address: 0300H
Length: 9000H
Exec Addr: 035AH
CURRENTLY TRANSMITTING
TRANSFERSUCCESSFUL
Finished connection



Source code

There are two files here in text format you will require the appropriate
assemblers to compile them, try the SimTel repository for 80X86
compilers for DOS. I use A86, but any PC assembly program can just about
be used. Copyright exists on these assembly modules. You may modify them
if you wish, but copyright notices must be retained.


CPCTR.ASM - the CPC assembly code which must be compiled on Devpac or
similar

PCTR.ASM - the PC assembly code which can just about be compiled on any
suitable assembler



How to connect

The computers are connected together through a special cable. The
Amstrad has a 7-bit printer port, another result shown on their poor
compatiblilty record. This port has one signal used for the printer to
the computer if the printer cannot be used (ie OFF-LINE). Locate this
pin on the 7-bit port and connect this to the PC's first bit on the
0378H port. There is also the usual ground to be connected from the PC
printer port back to the CPC port. Connect the output bits 1-4 from the
7 bit port to correspondi ng inputs on the PC printer port. Use only the
lines on the PC printer port which are low, as there is one bit that is
high from bootup, this will not work.

You will require for the project: 80X86 PC, Amstrad CPC464,664 or 6128,
6 wire ribbon cable, suitable 25DB female LPT connection and edge
connector for the LPR port on the CPC, and a ton of hardware knowledge.
