Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.
|
Forum Index : Microcontroller and PC projects : Accessing Address/Data lines
Author | Message | ||||
Nick Guru Joined: 09/06/2011 Location: AustraliaPosts: 512 |
With the popularity of SD storage to replace old worn out drives on old computers, I was wondering if it would be possible to use the Maximite, interfaced to the data lines of the floppy drive connected to an old computer. Would the Maximite be able to read 8 data lines fast enough and process the data as if it were going to a real floppy drive? Or interfacing directly to the bus of an old computer and the Maximite appear like an interface card (or something) to the main computer. Would a new MMBASIC command to read multiple I/O pins fast and present the collected data as an 8/16 bit byte plus control lines, be needed? Nick |
||||
James_From_Canb Senior Member Joined: 19/06/2011 Location: AustraliaPosts: 265 |
Nick, I recall earlier posts about people with collections of old floppies and nothing to read them with. They came from Microbees and C64s etc, not just PCs. I think it would be a popular project. James My mind is aglow with whirling, transient nodes of thought careening through a cosmic vapor of invention. Hedley Lamarr, Blazing Saddles (1974) |
||||
Nick Guru Joined: 09/06/2011 Location: AustraliaPosts: 512 |
I'm not aqctually trying to read the old floppy disks. There are disk images of most old software for emulators. I just thought that these could be copied to the SD and the Maximite appear as a floppy disk drive to the old computer but in actual fact it is accessing the SD images. Also, If the Maximite could be made to act like an expansion device to this computer. It would think it's talking to som device connected to it's bus but in actual fact, the Maximite is acting as that device. Nick |
||||
MicroBlocks Guru Joined: 12/05/2012 Location: ThailandPosts: 2209 |
I think you would need to do that on a lower level to get the speeds needed. However MMBasic is pretty quick when compared to old computer so it might be within the capabilities. Floppy drive interfaces have CS lines and interrupts. Would actually be easy to connect, the software to simulate however is quit some work. If i would tackle this problem i would take a PIC with 128K memory , indeed a SD card that contain floppy images. Add a lcd with some buttons to allow the user to 'change' the floppy. Copy that whole image in the PICs memory and work from there. Add an I2c/SPI/Uart/Parallel (most already on board a mcu as a peripheral) interface and you have a generic Floppy Simulator that can connect to any mcu or computer. Microblocks. Build with logic. |
||||
vegipete Guru Joined: 29/01/2013 Location: CanadaPosts: 1109 |
I'm going to go with "No way, the Maximite is way too slow." I would tend to think that the PIC32 itself is likely too slow too. Devices I've seen to interface IDE drives, compact flash cards and USB thumb drives to classic computers rely on various types of programmable logic devices to get the needed speed. (Example for Apple // ) Could the PMP peripheral in the PIC32 function to sniff the old disk drive interface and catch the necessary signals? I have my doubts. Visit Vegipete's *Mite Library for cool programs. |
||||
JohnS Guru Joined: 18/11/2011 Location: United KingdomPosts: 3802 |
It looks to be 250Kbps or 500Kbps, so a PIC32 should keep up but not if you write in interpreted Basic. This looks useful: http://www.interfacebus.com/PC_Floppy_Drive_PinOut.html John |
||||
djuqa Guru Joined: 23/11/2011 Location: AustraliaPosts: 447 |
My view, is yes it not only could be done but would be a great idea. To all the naysayers The PIC32 running MMbasic could easily do the disk image serving. Acting as a smart peripheral it may need to be running Assembly, but has more than enough capability. You all forget that the PIC32 was designed by microchip to be a MICROCONTROLLER for exactly these type of usage, it is a bonus that it can also be used in a MaxiMite. VK4MU MicroController Units |
||||
kiiid Guru Joined: 11/05/2013 Location: United KingdomPosts: 671 |
I think it would be much funnier if someone got the time to take one of the open source Apple ][ emulators and port it to the Maximite's hardware configuration. That would be really something, but needs a lot of spare time... 80Mhz versus 1Mhz - should be sufficient speed in the micro. http://rittle.org -------------- |
||||
Nick Guru Joined: 09/06/2011 Location: AustraliaPosts: 512 |
I wonder if an MMBASIC command could be created to read the I/O pins into an 8 bit data value read from an 8 bit bus? It could be a command such as PORT and we could have at least 2 of them as PORT A and PORT B Each would be assigned a set of I/O pins... PORT A assigned to pins 0 to 7 PORT B assigned to pins 8 to 15 etc. Therefore A=PORT A Would get an 8 bit data address value. Combine ports for 16 bit. It's then just a matter of creating the appropriate adaptor cable between the Maximite I/O ports and the device. ... and software to use the data or emulate a real device. Nick |
||||
kiiid Guru Joined: 11/05/2013 Location: United KingdomPosts: 671 |
PORT A, PORT B, etc. I think can't happen since the actual ports do not utilise the MCU hardware ports in a sequential way. But a y = PORT(x) function, returning to 'y' all the 20 lines (whichever of them set as input, the rest will be 0), all at once as a single integer and setting the outputs, according to the bit values of 'x'. That is easily possible and I will include it in the next revision of MMBasic for the 4105 module. If Geoff decides to include it in the standard version, that would be even better. It will be a useful one, especially in embedded systems http://rittle.org -------------- |
||||
Nick Guru Joined: 09/06/2011 Location: AustraliaPosts: 512 |
Wow. That would be good if it worked fast enough. I wonder if it's possible to do a test to see if it's possible to "memory map" the Maximite to another system such as a TRS-80/Apple II/Microbee etc. Nick |
||||
bigmik Guru Joined: 20/06/2011 Location: AustraliaPosts: 2914 |
Hi Nic, If I read you correctly I think you are looking at getting the MM to become a Floppy Emulator. If so, maybe one of these Floppy Disk Emulators will do the job for you. I bought one for work and it uses a USB flash drive as the storage upto 1000 partitions (ie different disk) at 1.4MB size... I think it had jumper options for 360kb 720kb 1.44MB etc... I will look it up and let you know... Not sure its is the identical one that I linked to but it looks like it Regards, Mick Mick's uMite Stuff can be found >>> HERE (Kindly hosted by Dontronics) <<< |
||||
Geoffg Guru Joined: 06/06/2011 Location: AustraliaPosts: 3194 |
That is already in MMBasic - check out the PORT command and function. Geoff Graham - http://geoffg.net |
||||
kiiid Guru Joined: 11/05/2013 Location: United KingdomPosts: 671 |
Aah... Guilty There are so many of them already... But that's great anyway and saves the work for adding it :) http://rittle.org -------------- |
||||
Juri74 Senior Member Joined: 06/02/2012 Location: ItalyPosts: 162 |
there are a lot of interfaces that "emulate" specific drives for specific computers: IEC2SD or 1541 Ultimate for c64/c128 SIO2SD for atari 8bit computers for a lot of 16 bit computers (including atari amiga & pc) you may have a look at this http://hxc2001.free.fr/floppy_drive_emulator/index.html#SDCA RDFloppyemulator it use a 40Mhz PIC18F4620 to do the entire work.. Juri |
||||
JohnS Guru Joined: 18/11/2011 Location: United KingdomPosts: 3802 |
Easy for a PIC32, then! John |
||||
Print this page |