C64Connect / PCConnect

  1. Installation
  2. Used file extensions
  3. Tool operations
  4. Loading, inserting disk into the virtual C1541 drive
  5. Assembling 6502 codes
  6. Linking the C64 with the PC
  7. Linking under Windows XP
  8. C64Connect / PCConnect and the C64
  9. Some concluding remarks
  10. Troubleshooting
  11. How do I get the PCConnect kernel EPROM?

 

Blue text = C64Connect as pure software tool, without hardware

Red text  =  only relevant for hardware connection to C64

 

1. Installation

C64Connect must be installed. To do this open the 'C64Connect.exe' file, press 'Preferences' and press 'Installation'. The "installation" does only associate certain file extensions with C64Connect (cf. point 2), nothing else.

Remark: Deleting the status.ini  file "resets" the C64Connect options!

If you connect the PC with the C64, choose in the preferences menue the correct parallel port, i.e. LPT port. Aftwerwards C64Connect must be closed and restarted in order that the port changing take effect.

 

2. Used File extensions

C64Connect uses the following file extensions:

.d64 diskimage.gif (173 Byte) C64 diskimage
.t64 tape.gif (241 Byte) C64 tape file
.prg prgfile.gif (175 Byte) C64 program file
.seq seqfile.gif (205 Byte) C64 sequentiell file
.154 c1541.gif (165 Byte) represents a physical C1541 drive
.a64 6502sourcecode.gif (198 Byte) 6502 (Turbo Ass+) source code file (ASCII code)

 

3. Tool operations

You activate a tool operation with - e.g.- the Windows Explorer by starting a file (double click) or pressing the right mouse button to display the menue.

file.d64 -> Unpack diskimage Creates a directory "file" and copies the files of the diskimage into the directory.
file.prg -> Add to diskimage Adds the file "file.prg" to the "ADD.d64" diskimage. If the diskimage does not exist it will be created.
file.seq -> Convert to ASCII Converts the C64 code to ASCII code.
file.64a -> Assemble Assembles the 6502/6510 (Turbo Ass+) source code file. The executable file is "file.prg".
(8.154 -> Make diskimage) Some trick: Only if no C64 is connected: Leaves a empty/formatted diskimage file "drv8.d64" after closing the C64Connect window


The following operations are only meaningful if you have linked the PC with a physical C64.

8.154 -> Make diskimage Creates a new diskimage "drv8.d64" and copies the whole disk which is in your physical drive 8 to "8.d64". (very slow but save).  
x.154 -> Make diskimage Same as above but instead of creating a diskimage of the physical drive 8 it creates a diskimage of the physical drive x where x is a number of {5,6,...,14}.
file.prg -> Extract TurboAss File Converts a TurboAss+ file into a ASCII file (file.seq).

 

4. Loading, Inserting disk into the virtual C1541 drive

These operations are only meaningful if you have linked the PC with a physical C64.

file.d64 -> Insert Disk inserts the "file.d64" diskimage into the current virtual drive (normally drive 8)
file.d64 -> Insert disk into drive same as above but you can choose the drive (5,6,...,14)
file.prg -> Insert disk inserts the whole directory, in that "file.prg" is entered, into the current virtual drive (normally drive 8). So "file.prg" is also inserted
file.prg -> Insert disk into drive same as above but you can choose the drive (5,6,...,14)
file.prg -> Load resets the C64, loads the "file.prg" and starts it with RUN.
8.154 -> Insert disk inserts the disk of your physical drive 8 into the current virtual drive (normally 8)
x.154 -> Insert disk inserts the disk of your physical drive x into the current virtual drive (normally 8) where x is number of {5,6,...,14}.
x.154 -> Insert disk into drive same as above but you can choose the virtual drive (5,6,...,14)

 

5. Assembling 6502 codes

The cross assembler is indeed a convertion of the C64 assembler "Turbo Ass+". So you can assemble your codes developed with the C64 Turbo Ass+. The cross assembler assembles ASCII files with extension ".64a".

file.64a -> Assemble assembles the 6502 (Turbo Ass+) source code file "file.64a". The executeable file is "file.prg".

To assemble one of your old "Turbo Ass+" source code files the file must be available in ASCII format. The C64 version of Turbo Ass+ is available in some directory of the C64Connect package.

At the C64 side you may use the Turbo Ass command WRITE FILE  (left arrow + W) to get the file as character source file (file.seq).

Once this seq-file is available on your PC you may use the C64Connect command CONVERT TO ASCII to convert the file to ASCII. 

So if your file is saved on a 5.25 disk you will may do the following:

Strategy 1:
Start the "Turbo Ass+" on the C64 (
or on any C64 emmulator!). Load the file. Write it to a virtual drive with the "Turbo Ass+"-command "write file" ( {left arrow} W) . This Turbo Ass+ command writes the source code to a file with extension ".seq".Convert the seq-file to ASCII code with the C64Connect command "source_file.seq -> Convert to ASCII". The new file is then ready to be assembled.

Strategy 2 (more comfortable):
Copy the entire disk containing the source file to the PC by using the C64Connect command "8.154 -> Create Diskimage". Unpack the copied diskimage by using the C64Connect command "diskimage.d64 -> Unpack Diskimage". Convert the unpacked source file to an ASCII file by using the C64Connect command "source_file.prg -> Extract Turbo Ass file". (Works only with connected C64!)

 

Differences between the C64 assembler Turbo Ass+ and the cross assembler:

Note that there are some slight differences between the cross assembler and the original Turbo Ass+. Before you assemble a code developed with the Turbo Ass+, you should scan the code for the following differences:

MACROS:

1) You can not compose labels with "@":

ff     .macro
       lda #
la@1
       .endm

       ff "bel"

In this example the C64 Turbo Ass assembles " lda #label ". Whereas the cross assembler assembles " lda #la bel " and this may not be your intention.

2) You can use "@" as a parameter in macro calls.

load   .macro
       lda @1
       .endm

add    .macro
       load "@1+@2"
       .endm

       add "10","20"

This example causes an error in the C64 Turbo Ass. Whereas the cross assembler assembles " lda 10+20 ".

Bug report:

Please report bugs of the cross assembler to bernhardburgstaller@yahoo.de. Particularly failures in assemblation whithout any error message is very dangerous. False assemblation would make this cross assembler useless!

 

 

6. Linking the C64 with the PC

To link the C64 with the PC you need

A cable linking the USER PORT (C64) with the PARALLEL port (PC)
An EPROM burned with the "PC-Connect" kernel ($E000-$0000). The EPROM must be exchanged with the original C64 ROM.

Connect(schematic)_2_8bit.gif (1953 Byte)

The cable has to be of the following form. We are sure most of you can create such a cable.

The transister need not meet any special specifications. If you are unsure buy the "C547B" type or any standard "NPN"-transistor. The resistors have 10k Ohm & 180 Ohm.

The EPROM: if your C64 is a "newer" one then it will contain 2 ROMs: the character ROM and the "kernel+BASIC" ROM. You have to burn the "pc-connect.rom" file onto a 27256 type EPROM. The "pc-connect.rom" contains the PC-Connect kernel and the original C64 kernel. Exchange the "kernel+BASIC" ROM with the burned EPROM.

It may also be worth to try whether the PCConnect kernel would work if it is plugged in the expansion port of the C64. I read it should not work to access to the RAM area $E000-$0000 from the expansion port if it the eprom lies in this area. However, at least the parts I modified in the C64 kernel do not access the RAM in $E000-$0000. If the normal kernel works in the expansion port (which I do not know) then the PCConnect kernel should also work.

WARNING:

Do not use the USER port for any other things then for "C64Connect/PC-Connect" if the PC-Connect EPROM is activated. You might damage the USER port hardware or the CIA in the C64 when the PC-Connect kernel interferrs!

 

7. Linking under Windows XP

Linking a physical C64 does not work under Windows XP, since it catches the IO-instruction addressing the parallel port! In order to handle this, download the software "USERPORT" (also search for "parallel port" in the internet). This program installs a driver which allows direct hardware access under XP. Free the corresponding port. For example 0x278-02xf8, depending on the port number of the PC paralell port.

Alternatively try "PORTTALK". However, it is less comfortable: Start porttalk with C64Connect in a command line, e.g.

 E:\Download\Porttalk\AllowIo.exe E:\c64connect\kalb.exe /a

Then do NOT close the C64Connect window, and THEN use C64Connect as usual during a C64 session. If you closed the C64Connect window, you once again have to start C64Connect with Porttalk.

Remark: Deleting the status.ini  file "resets" the C64Connect options!

This is particularly useful if you have chosen a parallel port in the preferencs menue and you get Windows protection errors because of port access.

 

8. C64Connect / PCConnect and the C64

You need a cable and a EPROM for the C64 (the PC-Connect kernel). You either burn the EPROM with your own epromer or you contact me and order a burned EPROM for a small account.

Connecting the C64 and the PC via cable and exchanging the original C64 kernel with the PC-Connect EPROM you can use the PC as virtual drive for the C64. You can load programs and load the directory as usual, e.g. load"$",8. On the PC side a disk is represented by the common C64 diskimage format (.d64) or by program files (.prg). Nevertheless, C64Connect/PC-Connect is NOT a 100% C1541 emulator. Instead of emulating a C1541 completely, the PC-Connect kernel is a modified version of the original kernel where mainly the IEC bus routines where altered. The new routines communicate via the USER port with the C64Connect program on the PC side and gives the user the impression of an emulation at first glance.

As said above the physical C64 and the PC must be linked via cable between resp. the USER port and the PARALLEL port. The fact that the cable is not attached to the C64's IEC bus (where the floppy cable is plugged  in) shows us that a real 100% C1541 emulation can't be realized. Indeed all C64 programs which program the C1541 (M-E instruction) fail. Especially the area of floppy speeders won't work, as all speeders make use of the IEC bus and execute a program in the C1541 floppy RAM.

Nevertheless, most of the programs can be loaded well. And sometimes a C64 emmulater (they are really good!) can't substitute a real C64. 

 

9. Some concluding remarks

I have put effort making C64Connect/PC-Connect as stable as possible. For me, stability and comfortable usage have been counting more than maximum speed (anyway it is fast) and features like that.

You can open and close the C64Connect window at any time. In general you will face no problems. Nevertheless it is clear you should not close the C64Connect window during processes like loading, disk copying, assembling and so on.

More precisely if the C64Connect window is opened (it does'nt matter wether the window is visible or minimized), the IEC bus will become virtually and route to the PC. But as soon as one closes the C64Connect window, the C64 will change to normal 'behavor' which in no way becomes visible on the C64.

Note that the C64Connect window works in the background and takes as much MS Windows idle time as it can get. So some other concurrent PC applications may be slowed while the C64Connect window is opended. (In my experience, with a modern computer, deceleration of other parallel working programs is not perceptible.)

Generally it is adviseable to hold the C64Connect window opened during a 'C64 session' since starting C64Connect takes a second. So you will just minimize the C64Connect window rather than closing it after each loading process or what ever.

 

10. Troubleshooting

Windows Exception Errors may occur under XP if you use the connection (see Linking under Windows XP).

Set the parallel port to NONE in the preferences menue if you do not link a physical C64. It is useful to delete the status.ini file if you get exception errors under XP because of port access.

Remark: Deleting the status.ini  file "resets" the C64Connect options!

 

11. How do I get the PCConnect kernel EPROM?

You can find the eprom files in a particular sub-directory of the C64Connect directory. It is enough to replace the C64 original kernel $E000-$0000 with the PCConnect-kernel. However, I also attached a file where the BASIC $A000-$C000 is merged with the PCConnect kernel. This is useful for newer C64 layouts where basic and kernel are integrated in one ROM.

Since barely of you can burn the kernel-file to an EPROM, you may contact me and ask me for a burned EPROM. If you have any questions, don't hesitate to contact me.