Cartridge interrupts?

For hardware talk only (please avoid ROM dumper stuff)
Post Reply
doragasu
Very interested
Posts: 125
Joined: Tue Oct 09, 2012 8:15 am

Cartridge interrupts?

Post by doragasu » Tue Jun 02, 2015 8:06 pm

Is it possible to generate 68k interrupts by driving any cartridge line? Which line/lines?

Having a quick look here, it looks like you can interrupt the Z80, but not the 68k...

TmEE co.(TM)
Very interested
Posts: 2440
Joined: Tue Dec 05, 2006 1:37 pm
Location: Estonia, Rapla City
Contact:

Post by TmEE co.(TM) » Tue Jun 02, 2015 9:11 pm

You cannot generate interrupts from cartslot.
Mida sa loed ? Nagunii aru ei saa ;)
http://www.tmeeco.eu
Files of all broken links and images of mine are found here : http://www.tmeeco.eu/FileDen

doragasu
Very interested
Posts: 125
Joined: Tue Oct 09, 2012 8:15 am

Post by doragasu » Wed Jun 03, 2015 9:22 am

Not even Z80 ones?

If the answer is a big NO, is there a way to automatically trigger DMA transfers when a cart pin changes? (I suppose I'll get another NO here).

I want to connect a 16C550 UART to the bus, and if I can neither use interrupts nor automatic DMA, bit rate will be greatly limited (because I'll have to fall back to fill/empty the UART FIFO once each frame).

BTW, designing a cartridge port without a single interrupt line (other than Reset) seems stupid to me.

notaz
Very interested
Posts: 193
Joined: Mon Feb 04, 2008 11:58 pm
Location: Lithuania

Post by notaz » Wed Jun 03, 2015 12:12 pm

Well even expansion port can't do it, SegaCD has to get away without interrupts to MD's 68k. You are partially right about Z80, partially because it only works in master system mode (one of address lines is then repurposed for Z80 NMI).

The only things I can think of is connecting a wire to one of I/O ports to use the ext interrupts, or use VDP horizontal interrupts to do your UART work. But even then it's rather wasteful as (IIRC) it takes like 150 cycles for 68k to service an interrupt.

doragasu
Very interested
Posts: 125
Joined: Tue Oct 09, 2012 8:15 am

Post by doragasu » Wed Jun 03, 2015 1:07 pm

Thanks for the information. Maybe setting an HBLANK interrupt each N lines, may do the trick without wasting too many CPU cycles. Too bad SEGA didn't include an interrupt line... even NES and Master System had it, and it's extremely useful for in-cart peripherals.

Post Reply