Emul_1541 V1.1 by Philippe DEPRUGNEY 1995 SHORT: ------ A program that allows you to plug a C64 computer to your parallel port, so that you can use your Amiga as a disk drive for the C64, emulating the old 1541 drive. WHAT'S THE USE ??!? ------------------- Well, Emul_1541 may be useful to people who have a C64 with a broken 1541. Or to nostalgic C64philes that consider buying an old C64 but cannot find a 1541. Or to guys like me who are not too fond of floppy disks. WHAT'S NEW ---------- - Isepic files support (faaaast) - a printed circuit board schematic of the hardware interface REQUIREMENTS: ------------- - an interface that plugs to your parallel port (more on this later) - an Amiga with Kickstart v 2.0+. Any processor should do. - a C64 or a C128 - an IEC cable (standard C64 <-> 1541 cable) USAGE: ------ Emul_1541 [drive number] where [drive number] is 8...11 (default is 8) OPERATION: ---------- Open a Shell and execute 'Emul_1541'. If the parallel port is free and the interface is plugged in, you can now execute the following commands from the C64: -LOAD "",8 (or ",8,1"). -LOAD "$",8. This will load the listing of the current directory into the C64. -SAVE "",8 . Speaks for itself. -LOAD "CD ". This allows you to change the current directory of the emulator . It will also transfer the listing of the new directory into the C64. -you can exit Emul_1541 by typing CTRL C in its window - if you want Emul_1541 to temporarily stop listening to the C64 serial port, type CTRL D in its window and the program will "sleep" until you wake it up with another CTRL D or you kill it with a CTRL C. The reason for that option is that, ahem, Emul_1541 does not understand (YET) all the commands the C64 may send him, which sometimes causes the emulator to "freeze". So if you have just loaded a program into the C64 and you're afraid that during its execution it may send odd drive commands to Emul_1541, just disable Emul_1541 with CTRL D. This should also be useful to C128 owners, whose RESET takes too much time for Emul_1541 (maximum allowed: 0.4s). MISCELLANEOUS: -------------- *** Abbreviations are allowed (LOAD "prog*",8 or even LOAD "prog#?",8). The same goes for the LOAD "CD ",8 command. *** special characters: The '_' Amiga character has a rough equivalent on the C64, which can be typed using 'SHIFT R'. The '\' Amiga character stands for the '/' C64 character. Ex: LOAD "/TURBO_TAPE",8 will start the transfer of '\turbo_tape' However, you can still type LOAD "CD /" to change the directory to the parent of the current one. *** If you type LOAD "",8, 'Emul_1541' will search for in the current directory, and if it can't find it there, it will search for it in 'C64:'. You can use this feature to assign 'C64:' to a directory where you would store the C64 programs you most frequently use. You can also type the full path name of the file you want. Ex: LOAD "DH1:C64_GAMES/CHOPLIFTER",8 *** program names are not limited to 16 characters as they are on a 1541 drive. Therefore, you can type 'LOAD "",8' with having a name longer than 16 characters, and Emul_1541 will transfer it correctly. However, if you type 'LOAD "$",8', will have its name truncated to 16 characters in the directory listing. *** when a directory is created, program sizes and free space are displayed in blocks, which are worth 254 bytes (on a C64). Due to 16-bit limitations, the biggest size displayable is 254*65535 = 15.9 Mb. Therefore, any file or directory free space bigger than 15.9 Mb will not have their size displayed correctly. ABOUT THE HARDWARE INTERFACE ---------------------------- Included in this package, you will find three files: - 'Interface.IFF', a functional schematic of the interface - 'Interface_PCB.Postscript' is a schematic of the printed circuit board, in Postscript format. You should print it on a transparent sheet (like the ones used with overhead projectors). I created and printed this layout using Art Of Expression. For some reason, Pro Page and Final Writer have problems with that layout: they print it without the text annotations, which does not make it unusable, but still... If you use a laser printer, make sure the transparent sheet you're using is photocopy-resistant, or it will melt inside your printer. - 'Components_placement.IFF' will show you how to solder the components to the PCB. Components list: - 1 kohm resistor (x3) - a male DSUB DB25 connector, PCB version (that is, not one that can be soldered at the end of a cable) - a female 6-pin DIN connector, PCB version - integrated circuit: 7406 - a 2-circuit switch (optional) You will notice the presence of four connection plots, labeled A, B, C and D. There are two ways to wire them: - if you just want to use the interface with Emul_1541, you should connect plot A to plot C and plot B to plot D. You do not need the switch. - if you also want to be able to use this interface with Amiga programs that "talk" to a real 1541 drive (like Frodo, etc), you should wire plots A, B, C and D to a 2-circuit switch, the way it is shown in 'Components_placement.IFF'. Depending on the position of the switch, you will be able to connect this interface to a C64 or a 1541. TECHNICAL NOTES: ---------------- *** this program does not multitask while communicating with the C64. That is because the C64 expects the 1541 to "listen" to its signals all the time. Therefore, if the emulator was interrupted for more than 20µs, it would miss some changes of states of the communication signals. *** 'Emul_1541' uses the timer B of CIA B, which is used by many time-sensitive programs, such as music players, emulators and some games. Therefore, you should not run any program of that kind at the same time as my emulator. Anyway, 'Emul_1541' will warn you if that timer is already allocated, and will only take possession of it during transfers, not when it is idle. *** As the Amiga clock is not updated during transfers, 'Emul_1541' executes a routine equivalent to 'SetClock LOAD' after every communication with the C64. I can only hope that this does not cause any problem on an Amiga without a clock, as I could not test that. *** I have tried to make 'Emul_1541' compatible with real 1541 drives. That is, you can daisy-chain the parallel port interface with a 1541 drive, provided their device numbers are different, and the C64 will be able to access both drives. Note that multitasking will also be disabled while the C64 is accessing the real 1541 drive. *** Sometimes 'Emul_1541' will freeze during a communication sequence with the C64, because the C64 has sent an unknown command to the emulator. You can usually get out of that situation by pressing your C64 reset button a few times. If you do not have a reset button on your C64, I strongly advise you to install one. *** Wild star ('*') is allowed during the execution of 'Emul_1541', and is restored to its prior state (that is, allowed / not allowed) after the emulator has exited. WHAT 'EMUL_1541' CANNOT DO: -------------------------- *** communicate with fast-loaders: no way, except for Isepic. If you have got a FastLoad cartridge, disable it. Games saved with the Freeze Frame cartridge will not work. The same goes for any program that uses a loading technique different from the standard one. *** support commands such as 'VERIFY...' or 'OPEN 1,8,15,"..."' *** reverse entropy THANKS TO: ---------- - Cliff DUGAN, whose A64 gave me the inspiration for this - Peter STUER, for DosTrace - Morten ERIKSEN, for Dis6502 - Laurent CLéVY, for being a good friend and among the legions of guys who wrote to me for support: - Mattias PIHLSTRöM - Enriko GROEN TESTED ON: ---------- - A4000/30 with 8Mb FAST RAM, with Kickstart v. 39 and v.37 (using SKick) - CD 32 (just joking) BUGS: ----- Should you find any, I would like to hear about them. So please send me a short description of the problem and of your configuration. A picture of your girlfriend wearing outrageous underwear would be much appreciated too. TO DO: ------ - Freeze Frame files support - '.d64' files support - FastLoad cartridge support LEGAL JU-JU ----------- Emul_1541 is (C) 1995 by Philippe DEPRUGNEY. This program may be freely distributed, provided the archive and its contents are not modified in any way. It may be included in any public domain collection. This program is also POSTCARDWARE, which means it would be very nice of you to send me a postcard if you use it. You may also take advantage of that opportunity to tell me what you like and do not like about Emul_1541, and what features you would like me to add to it. Right now, it seems what people are most interested in is FastLoad support, so I guess that's what I will tackle next. Anybody who wants to swap C64 programs (demos, games...) is welcome to write to me too. ABOUT THE AUTHOR: ----------------- You can join me at the following address, which is my parents', so it should be valid for a good many years (sorry, I have no access to Internet; I know, I should be ashamed): Philippe DEPRUGNEY 20, rue domaine du Chāteau 64230 LESCAR FRANCE