6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Sat Sep 28, 2024 9:30 am

All times are UTC




Post new topic Reply to topic  [ 2 posts ] 
Author Message
PostPosted: Sat Apr 02, 2016 11:18 am 
Offline
User avatar

Joined: Tue Feb 10, 2015 5:27 pm
Posts: 80
Location: Germany
I wonder if it would be possible to use a widely available PC ISA motherboard as base for a 65xx-system by taking over bus control from the host CPU:

Quote:
An ISA device may take control of the bus, but this must be done with caution. There are no safety mechanisms involved, and so it is easily possible to crash the entire system by incorrectly taking control of the bus. For example, most systems require bus cycles for DRAM refresh. If the ISA bus master does not relinquish control of the bus or generate its own DRAM refresh cycles every 15 microseconds, the system RAM can become corrupted. The ISA adapter card can generate refresh cycles without relinquishing control of the bus by asserting REFRESH. MRDC can be then monitored to determine when the refresh cycle ends.

To take control of the bus, the device first asserts its DRQ line. The DMAC sends a hold request to the cpu, and when the DMAC receives a hold acknowledge, it asserts the appropriate DAK line corresponding to the DRQ line asserted. The device is now the bus master. AEN is asserted, so if the device wishes to access I/O devices, it must assert MASTER16 to release AEN. Control of the bus is returned to the system board by releasing DRQ.
Source: hardwarebook

If that should be possible one could even use system memory and of course all ISA hw out there. (Don't focus on address space - there might be a solution for that. Simple but very slow: attach ISA not directly to CPU but via I/O ics)


Top
 Profile  
Reply with quote  
PostPosted: Mon Apr 04, 2016 6:26 am 
Offline
User avatar

Joined: Thu Jun 23, 2011 2:12 am
Posts: 229
Location: Rancho Cucamonga, California
Designing a bus mastering ISA card is harder than just designing an ISA card that decodes a couple of I/O addresses to communicate. The only advantage of bus mastering is that you can access the main board memory from your card.

But let's say you would want to access a hard disk or network card or video card from your 6502 card. You would have to jump through all kinds of loops to take control of the bus, but not too much or you could corrupt the main board RAM. Besides there's also DMA going on for disk access and other fun stuff. And if you would get that right, you'd have to write and debug a lot of software (in 6502 assembly) to make all that hardware work for you.

I would probably let the 80x86 processor and the BIOS ROM on the motherboard take care of the heavy lifting. I would write a program that runs on the 80x86 and polls for requests from the 6502 and executes them according to some self-made protocol. You can make the mainboard CPU load and run that program from a floppy or hard disk under DOS, or you can store it on a boot sector of a floppy disk, or you can put it in a ROM that you put on your board, so that the BIOS will execute it automatically. As soon as the 80x86 "makes contact" with the 6502 on your board, the 6502 can tell it to print characters to the screen with BIOS Int 10h, read and write floppy drive or hard drive sectors with Int 13h, read the keyboard with Int 16h etc.

===Jac


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 2 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 33 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to: