User Tools

Site Tools


x68000:adding_an_fdx68_to_x68000

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
x68000:adding_an_fdx68_to_x68000 [2018/11/27 02:54] – created leonkx68000:adding_an_fdx68_to_x68000 [2020/06/25 12:29] (current) – [Connection Method] leonk
Line 3: Line 3:
 Original web site:  (http://www.geocities.jp/kugimoto0715/fdx68/index.html) Original web site:  (http://www.geocities.jp/kugimoto0715/fdx68/index.html)
  
-__**Background Information:**__+New web site: (http://retropc.net/gimons/fdx68/index.html) 
 + 
 +====== Background Information ======
  
 The X68000, like many other devices made in the 1990's and earlier, uses ICs that communicate on 5V rails (0V = binary 0, 5V = binary 1).  Modern electronics, use 3V rails (or even less).  Hence, one can't connect a micro computer like a Raspberry Pi to an X68000, as the data bus voltages are not compatible. The X68000, like many other devices made in the 1990's and earlier, uses ICs that communicate on 5V rails (0V = binary 0, 5V = binary 1).  Modern electronics, use 3V rails (or even less).  Hence, one can't connect a micro computer like a Raspberry Pi to an X68000, as the data bus voltages are not compatible.
Line 9: Line 11:
 The FDX68 is a device that plugs into the Raspberry Pi, and voltage converts between a Pi and X68000 floppy drive port (both internal and/or external).  The actual emulation of the floppy drive happens in software; a very clever Linux application that runs on the Raspberry Pi. The FDX68 emulates 2 FD at the same time; external jumpers set which drives to emulate (0/1 internal, or 2/3 external).  Lastly, LEDs are included on the device to show you drive activity. The FDX68 is a device that plugs into the Raspberry Pi, and voltage converts between a Pi and X68000 floppy drive port (both internal and/or external).  The actual emulation of the floppy drive happens in software; a very clever Linux application that runs on the Raspberry Pi. The FDX68 emulates 2 FD at the same time; external jumpers set which drives to emulate (0/1 internal, or 2/3 external).  Lastly, LEDs are included on the device to show you drive activity.
  
-__**PreReq:**__+====== PreReq ======
  
    * Raspberry Pi 3B or 3B+    * Raspberry Pi 3B or 3B+
Line 15: Line 17:
    * FDX68 device (purchase from original maker from above link)    * FDX68 device (purchase from original maker from above link)
    * FDX68 interface cable (depending on X68000 unit you have, connector will differ)    * FDX68 interface cable (depending on X68000 unit you have, connector will differ)
-   * Knowledge of Linux (SSH into Pi, start service, run command line utilities to load disk images)+   * **Knowledge of Linux (SSH into Pi, start service, run command line utilities to load disk images)**
    * Disk images of OS / Games you want to run    * Disk images of OS / Games you want to run
 +   * FDX68 software downloaded and unarchived to a new **fdx68** directory in the rootfs
  
-__**Setup and Usage:**__+====== Setup and Usage ======
  
-The original author has great instructions found here: http://www.geocities.jp/kugimoto0715/fdx68/index.html+The original author has great instructions found here: http://retropc.net/gimons/fdx68/index.html
 Use google translate to get the details.  The rest of this page was a result of edited google translate of original page (pulled 11/26/2018) Use google translate to get the details.  The rest of this page was a result of edited google translate of original page (pulled 11/26/2018)
  
 +The following examples will not cover all possible combinations, but one should find the closest system and adjust accordingly based on connector and how they want to use the device.  It is easiest to connect the FDX68 externally, but it can also be used internally (adjust drive assignment accordingly).  Here are some important things to keep in mind:
 +
 +   * Newer systems have an external switch to select internal floppy drive assignment
 +   * Older systems always assign internal FD 0/1 and you must set FDX68 to 2/3
 +   * HumanOS can boot from any FD (0/1/2/3) So you can boot from external FD to do things like change SRAM settings or install SASI boot loader
 +   * Single disk games can boot from FD 2/3
 +   * Multi disk games will look for disk 2+ only on FD 0/1.  This might be an issue with older systems that don't allow you to set internal FD assignment
 +   * System will not boot a hard drive if FD0/1 are not present. So you must always have FDX68 running as drive 0/1 or you must have internal drives connected as 0/1 if booting SCSI devices.
 + 
 +
 +====== X68000 XVI Compact ======
 +
 +===== Connection Method =====
 +
 +The external FDD connecter is labelled "EXTERNAL FDD" on the back of the X68000. This is a very unusual port known as the "miniature delta ribbon (MDR) 40 position female connector". In order to connect an external device to this port an MDR 40 position male connector is necessary. The FDX68 author made a cable for converting this port to a standard 34-pin ribbon cable connector. One should be able to purchase the MDR 40 position male connector at many online retail stores. You will also need to purchase matching enclosure shell for the connector. The 3M part number for the connector is 10140-3000PE and matching shell is 10340-3210-000
 +
 +{{:x68000:fdx68_xvi_fd_connector.png?nolink&200|}}
 +{{:x68000:fdx68_connector_1.png?nolink&200|}}
 +{{:x68000:fdx68_connector_2.png?nolink&300|}}
 +
 +When making your own cable to convert from MDR 40 to the 34-pin connector found on the FDX68, the following conversion table should be referenced. The pin assignment for creating the conversion cable is as follows. After soldering the pins, one should confirm they cable is soldered correctly using a voltmeter.
 +
 +{{:x68000:FDX68_connector_pingout.png?nolink&800|}}
 +
 +Here's how one connects the FDX68 externally to the X68000 using this custom cable
 +
 +{{:x68000:FDX68_xvi.png?nolink&200|}}
 +
 +===== Internal FDD are drives 0,1 and FDX68 are drives 2,3 =====
 +
 +To use the internal FDD as the first and second boot drives (drive A: and B:) and the FDX68 emulated floppy disk drives as the third and fourth drives (drive C: and D:) do the following. Set the "INTERNAL FDD NO." switch on the rear of the X68000 to 0,1. Next, set the FDX68 jumpers to location 2,3 for both DRV and OPT as shown below. 
 +
 +The X68000 can still boot a system from the FDX68 as long as no bootable floppies are found in the internal FDDs. It is also important to note that although games will boot from drives 2,3 many multi-disk games will only search for additional floppy disks in drives 0,1.  This configuration is useful for booting HumanOS, or single disk games. It is also useful when the FDX68 emulator is not running but you still desire a bootable system.
 +
 +{{:x68000:FDX68_xvi_0.png?nolink&250|}}
 +{{:x68000:FDX68_xvi_1.png?nolink&100|}}
 +
 +===== Internal FDD are drives 2,3 and FDX68 are drives 0,1 =====
 +
 +To use the FDX68 emulated floppy disk drives as the first and second drives (drive A: and B:) and the internal FDD as the third and fourth disk drives (drive C: and D:) do the following. Set the "INTERNAL FDD NO." switch on the rear of the X68000 to 2,3. Next, set the FDX68 jumpers to location 0,1 for both DRV and OPT as shown below. 
 +
 +This configuration will allow you to use multi-disk games using the FDX68 FDD emulator with no drive number issues. But the FDX68 must be running at startup.  If drives 0,1 do not respond on boot-up (even with no disks) the X68000 will not boot (even when trying to boot to a hard drive). If you want to start your X68000 with the FDX68 disabled, change the "INTERNAL FDD NO." switch back to 0,1.
 +
 +{{:x68000:FDX68_xvi_2.png?nolink&250|}}
 +{{:x68000:FDX68_xvi_3.png?nolink&100|}}
 +
 +===== Starting the Floppy Disk Drive emulator =====
 +
 +FDX68 can emulate both XDF as well as FDX images.  In this example, we will first convert an XDF image to FDX and then load it into the emulator.
 +
 +Let's convert the system disk image of Human 3.02, which was released free of charge in XDF format. For image conversion, we use the //fdxconv// ​​utility. If you run //fdxconv// ​​with no arguments, a simple help screen will display with usage instructions. //fdxconv// ​​automatically determines the conversion process to use by using file extensions of the input and output files. 
 +
 +<file>
 +pi@raspberrypi:/fdx68 $ ./fdxconv
 +FDX68 version 1.00, Copyright (C) 2017-2018 GIMONS
 +Floppy image convert utility
 +
 +Usage: ./fdxconv -i SRCFILE [-n DISKNO] -o DESTFILE
 +
 + SRCFILE is source image file path.
 + DISKNO is disk number of multi image format, Default is 1.
 + DESTFILE is destination image file path.
 +</file>
 +
 +Here's an example of converting from XDF to FDX format. Because the original XDF image has only data sectors, it's only 1.2Mb big, but when converted to FDX format it will grow to about 5.5Mb.
 +
 +<file>
 +pi@raspberrypi:/fdx68 $ ./fdxconv -i HUMAN302.XDF -o HUMAN302.FDX
 +FDX68 version 1.00, Copyright (C) 2017-2018 GIMONS
 +Floppy image convert utility
 +
 +Input file   : HUMAN302.XDF
 +Disk no      : 1
 +Output file  : HUMAN302.FDX
 +</file>
 +
 +<file>
 +pi@raspberrypi:/fdx68 $ ls -l HUMAN302.*
 +-rw-r--r-- 1 pi pi 5505280  8月  9 18:53 HUMAN302.FDX
 +-rw-r ----- 1 pi pi 1261568 August 9 18:53 HUMAN302.XDF
 +pi@raspberrypi:/fdx68 $
 +</file>
 +
 +After successfully converting the system disk of Human 3.02 to FDX format, let's copy this to HUMAN302_A.FDX and HUMAN302_B.FDX and start the //fddemu// emulator with these 2 disk images in the emulated drives (This is just an exercise to show you how to use //fddemu// to emulate 2 disk images.  You can also start the emulator with 1 or no disk images loaded by default)
 +
 +<file>
 +pi@raspberrypi:/fdx68 $ cp HUMAN302.FDX HUMAN302_A.FDX
 +pi@raspberrypi:/fdx68 $ cp HUMAN302.FDX HUMAN302_B.FDX
 +pi@raspberrypi:/fdx68 $ sudo ./fddemu -0 HUMAN302_A.FDX -1 HUMAN302_B.FDX &
 +FDX68 version 1.00, Copyright (C) 2017-2018 GIMONS
 +Floppy disk drive emulation
 +
 +----+----+----+-----------------------------------
 + ID | WP | CL | DISK IMAGE
 +----+----+----+-----------------------------------
 +  0 | -- | 00 | HUMAN302_A.FDX
 +  1 | -- | 00 | HUMAN302_B.FDX
 +----+----+----------------------------------------
 +</file>
 +
 +As you can see in the picture below, there are no floppies inserted into X68000 Compact and it is booting from the FDX68. After the system has booted, one can use the //drive// command to list what floppy disk drives the X68000 has detected.  One can see that the X68000 recognized a 4 drive configuration and that we are able to access the 2 emulated floppy disk drives.
 +
 +{{:x68000:FDX68_connected_1.png?nolink&300|}}
 +{{:x68000:FDX68_connected_2.png?nolink&300|}}
 +{{:x68000:FDX68_connected_3.png?nolink&300|}}
 +
 +===== Swap disks using the command line =====
 +
 +The floppy disk drive of the X68000 has extended specifications including a floppy auto eject mechanism. The floppy eject operation can be instructed both using the eject button on the main unit as well as on the command line. For example, the X68000 game A-JAX boots with both a program disk and data disk 1, the program disk automatically ejects after reading the data and asks the user to insert data disk 2. In this example, we will show how to change a floppy disk using the FDX68. First, lets boot A-JAX:
 +
 +<file>
 +pi@raspberrypi:/fdx68 $ sudo ./fddemu -0 AJAX_P.FDX -1 AJAX_1.FDX &
 +[1] 719
 +pi@raspberrypi:/fdx68 $ FDX68 version 1.00, Copyright (C) 2017-2018 GIMONS
 +Floppy disk drive emulation
 +
 +----+----+----+-----------------------------------
 + ID | WP | CL | DISK IMAGE
 +----+----+----+-----------------------------------
 +  0 | ON | 00 | AJAX_P.FDX
 +  1 | ON | 00 | AJAX_1.FDX
 +----+----+----------------------------------------
 +
 +pi@raspberrypi:/fdx68 $
 +</file>
 +
 +Note that "&" is appended at the end of the command line to load the FDX68 service in the background and return command line control back to the user.  Next, we check whether FDX68 is running in the background. We search for it using the ps command.
 +
 +<file>
 +pi@raspberrypi:/fdx68 $ ps -ef | grep fddemu
 +root       719   661  0 12:16 pts/0    00:00:00 sudo ./fddemu -0 AJAX_P.FDX -1 AJAX_1.FDX
 +root       723   719  0 12:16 pts/0    00:00:00 ./fddemu -0 AJAX_P.FDX -1 AJAX_1.FDX
 +pi         744   661  0 12:17 pts/0    00:00:00 grep --color=auto fddemu
 +pi@raspberrypi:/fdx68 $
 +</file>
 +
 +Note that the //fddemu// daemon/service must execute as root. You can also check status and what disk is inserted into fddemu using the //fddctrl// utility:
 +
 +<file>
 +pi@raspberrypi:/fdx68 $ ./fddctl -l
 +----+----+----+-----------------------------------
 + ID | WP | CL | DISK IMAGE
 +----+----+----+-----------------------------------
 +  0 | ON | 00 | AJAX_P.FDX
 +  1 | ON | 00 | AJAX_1.FDX
 +----+----+----------------------------------------
 +pi@raspberrypi:/fdx68 $
 +</file>
 +
 +You can now turn on the X68000 and try to boot AJAX. After loading the disk for a while, you will be prompted to insert another disk as shown below. At this time, the floppy disk in drive 0 is ejected.
 +
 +{{:x68000:FDX68_ajax_insert_disk.png?nolink&200|}}
 +
 +<file>
 +pi@raspberrypi:/fdx68 $ ./fddctl -l
 +----+----+----+-----------------------------------
 + ID | WP | CL | DISK IMAGE
 +----+----+----+-----------------------------------
 +  0 | -- | 00 | EMPTY
 +  1 | ON | 00 | AJAX_1.FDX
 +----+----+----------------------------------------
 +pi@raspberrypi:/fdx68 $
 +</file>
 +
 +Next, insert A-JAX Data disk 2 using the //fddctl// utility:
 +
 +<file>
 +pi@raspberrypi:/fdx68 $ ./fddctl -i 0 -c insert -f AJAX_2.FDX
 +pi@raspberrypi:/fdx68 $ ./fddctl -l
 +----+----+----+-----------------------------------
 + ID | WP | CL | DISK IMAGE
 +----+----+----+-----------------------------------
 +  0 | ON | 00 | AJAX_2.FDX
 +  1 | ON | 62 | AJAX_1.FDX
 +----+----+----------------------------------------
 +pi@raspberrypi:/fdx68 $
 +</file>
 +
 +{{:x68000:FDX68_ajax_play.png?nolink&200|}}
 +
 +===== Additional information about disk image format =====
 +
 +In the above examples, the floppy disk images were converted to the FDX format prior to usage. The FDX68 FDD emulator //fddemu// can start without converting the image first and supports other images formats, such as XDF or D68 (it automatically converts to FDX in memory) It is important to note that any format outside of FDX will not save back to the disk image. This is convenient for launching applications and games that do not need save feature. If you do require the ability to save back to disk, you will need to convert to FDX first.
 +
 +====== X68000 PRO and similar systems ======
 +
 +===== Connection Method =====
 +
 +The external floppy disk drive connecter is labelled "EXTERNAL FDD" on the back of the X68000. This is a pretty common connector known as the "D-SUB 37 pin female connector" or DB37. In order to connect an external device to this port a Db37 pin male connector is necessary. One should be able to purchase a DB37 pin male connector at many online retail stores. You will also need to purchase the matching enclosure shell for the connector. Lastly, you will require a way to connect this to the FDX68.  A standard floppy disk drive cable (ribbon or round) will work well.
 +
 +{{:x68000:external_floppy_socket.jpg?300|}}
 +{{:x68000:fdx68_dsub37.png?nolink&200|}}
 +{{:x68000:fdx68_floppy_cable.jpg?nolink&200|}}
 +{{:x68000:fdx68_floppy_cable_2.jpg?nolink&300|}}
 +
 +When making your own cable to convert from DB37 to the 34-pin connector found on the FDX68, the following conversion table and FDX68 pinout should be referenced; match the description of the pins and solder accordingly. After soldering the pins, one should confirm they cable is soldered correctly using a voltmeter.
 +
 +NOTE: The DB37 connector should have numbers on them.  Follow those numbers.  Don't get confused by the picture below as the pin numbers are different depending if you look at the front or the back of the connector.
 +
 +
 +{{http://www.gamesx.com/grafx/db37.gif}}
 +
 +^  Ext. Pin  ^Signal  ^  Dir.  ^Description  ^
 +|  1  |/Disk Type Select|Out|Disk type selection signal|
 +|  2  |NC|  -  |Not connected|
 +|  3  |/Drive Select 3|Out|Drive selection signal 3|
 +|  4  |/Index|  In  |Disk index signal|
 +|  5  |/Drive Select 0|Out|Drive selection signal 0|
 +|  6  |/Drive Select 1|Out|Drive selection signal 1|
 +|  7  |/Drive Select 2|Out|Drive selection signal 2|
 +|  8  |/Motor On|Out|Motor starting signal|
 +|  9  |/Direction|Out|Head moving direction signal|
 +|  10  |/Step|Out|Head movement signal|
 +|  11  |/Write Data|Out|Write data signal|
 +|  12  |/Write Gate|Out|Write gate signal|
 +|  13  |/Track 00|  In  |Back to track 0|
 +|  14  |/Write Protect|  In  |Write protect signal|
 +|  15  |/Read Data|  In  |Read data signal|
 +|  16  |/Side Select|Out|Head switching signal|
 +|  17  |/Ready|  In  |Drive ready signal|
 +|  18  |NC|  -  |Not connected|
 +|  19  |NC|  -  |Not connected|
 +|  20  |/Option Select 0|Out|Option select 0|
 +|  21  |/Option Select 1|Out|Option Select 1|
 +|  22  |/Option Select 2|Out|Option select 2|
 +|  23  |/Option Select 3|Out|Option Select 3|
 +|  24  |/Eject|Out|Eject signal|
 +|  25  |/Eject Mask|Out|Eject mask signal|
 +|  26  |/LED Blink|Out|LED flashing signal|
 +|  27  |/Disk In|  In  |Disk insertion signal|
 +|  28  |/ERR Disk|  In  |Disk insertion error signal|
 +|  29  |/FDD INT|  In  |Disk interrupt signal|
 +|  30  |Ground|Out|Ground|
 +|  31  |Ground|Out|Ground|
 +|  32  |Ground|Out|Ground|
 +|  33  |Ground|Out|Ground|
 +|  34  |Ground|Out|Ground|
 +|  35  |Ground|Out|Ground|
 +|  36  |Ground|Out|Ground|
 +|  37  |NC|  -  |Not connected|
 +
 +{{:x68000:fdx68_pinout.png?nolink&400|}}
 +
 +===== Internal FDD are drives 0,1 and FDX68 are drives 2,3 =====
 +
 +It is not possible to change the ID of the built-in floppy disk drives with a switch on the rear. Therefore the internal FDD are always assigned the first and second boot drives (drive A: and B:) and the FDX68 emulated floppy disk drives as the third and fourth drives (drive C: and D:)  you must set the FDX68 jumpers to location 2,3 for both DRV and OPT as shown below. 
 +
 +The X68000 can still boot a system from the FDX68 as long as no bootable floppies are found in the internal FDDs. It is also important to note that although games will boot from drives 2,3 many multi-disk games will only search for additional floppy disks in drives 0,1.  This configuration is useful for booting HumanOS (to install SASI boot loader into SRAM, or change SRAM configuration), or single disk games. 
 +
 +{{:x68000:FDX68_xvi_1.png?nolink&100|}}
 +
 +===== Internal FDD are drives 2,3 and FDX68 are drives 0,1 =====
 +
 +To use the FDX68 emulated floppy disk drives as the first and second drives (drive A: and B:) and the internal FDD as the third and fourth disk drives (drive C: and D:) do the following. Set the FDX68 jumpers to location 0,1 for both DRV and OPT as following: 
 +
 +{{:x68000:FDX68_xvi_3.png?nolink&100|}}
 +
 +Next, you will need to change the jumpers on the built-in floppy disk drives. As soon as you remove the cover of the system, you will see the FDD but the jumper is on the back of the internal floppy disk drive, hidden by the cable and it is hard to see and change it. You will need to remove the floppy disk drive. The jumper is not divided by DRIVE and OPTION like on the FDX68. It will be a green jumper as seen below, change this jumper to position 2 or 3 depending on the drive you are working on (both drives can not be set to the same number)
  
 +{{:x68000:fdx68_pro_1.png?nolink&200|}}
 +{{:x68000:fdx68_pro_2.png?nolink&300|}}
  
 +This configuration will allow you to use multi-disk games using the FDX68 FDD emulator with no drive number issues. But the FDX68 must be running at startup.  If drives 0,1 do not respond on boot-up (even with no disks) the X68000 will not boot (even when trying to boot to a hard drive).
  
 +===== Starting the Floppy Disk Drive emulator =====
  
 +Using the FDX68 software to emulate the floppy disk drive, mount/unmount images, convert images, etc. is the same on all systems.  Please refer above for instructions on how to use the software.
  
  
x68000/adding_an_fdx68_to_x68000.txt · Last modified: 2020/06/25 12:29 by leonk