Raven. A homemade Atari-like computer

A homemade Atari-like computer based on 68060 and various Atari ST like peripherals
User avatar
agranlund
Site sponsor
Site sponsor
Posts: 1767
Joined: 18 Aug 2019 22:43
Location: Sweden

Re: Raven. A homemade Atari-like computer

Post by agranlund »

CiH wrote: 19 Jul 2026 17:23 Smiles and thumbs up from me too.
The reverb effect is ported from the Falcon DSP. Is it a case of playing back SND Player through an existing DSP realtime effects player, or is there more to it?
Yep, it came from an example in the old a56 package :)

On Raven, the output from the YM can switched to go into the DSP.
So this example is only loading a dsp program and letting that run, and it puts the effect on the whatever something plays on the YM.

I'm not sure how you would best accomplish the same on Falcon (I don't think the YM audio can be routed into DSP there?).
Perhaps an YM emulator inside the DSP would be the answer for something similar?
And then the host program would have to talk to that over the hostport rather than direct to real ym writes?
User avatar
dml
Posts: 855
Joined: 15 Nov 2017 22:11

Re: Raven. A homemade Atari-like computer

Post by dml »

agranlund wrote: 20 Jul 2026 07:40 I'm not sure how you would best accomplish the same on Falcon (I don't think the YM audio can be routed into DSP there?).
Perhaps an YM emulator inside the DSP would be the answer for something similar?
And then the host program would have to talk to that over the hostport rather than direct to real ym writes?
From what I remember, the YM audio path on Falcon is via the Codec A2D only (which can be demonstrated by changing the sampling rate and monitoring the effect on the YM output), so it can be routed towards the DSP on the input path of the crossbar at least. The DSP can be mapped to the Codec on the output path.

Not that I have tried this but I guess (by casting the appropriate runes at the crossbar) it should work.
User avatar
dml
Posts: 855
Joined: 15 Nov 2017 22:11

Re: Raven. A homemade Atari-like computer

Post by dml »

Yeah the relevant path is here - YM is mixed down to mono as AUDIOS.

This is then coupled to LIN2/RIN2 on the Codec, nowhere else. So it is always being digitized, in preparation for future Raven applications :D

ym.png
codec.png
You do not have the required permissions to view the files attached to this post.
User avatar
agranlund
Site sponsor
Site sponsor
Posts: 1767
Joined: 18 Aug 2019 22:43
Location: Sweden

Re: Raven. A homemade Atari-like computer

Post by agranlund »

Cyprian wrote: 19 Jul 2026 20:41 what was changed in DSP56001 asm in to run on DSP56303?
Not that much actually.
The DSP boot code is different since it has different things to set up, and the 56300 first-stage bootloader after reset expects a tiny header in the payload as opposed to the fixed 256 words the 56001 expects.
But then again this part is handled by the xbios rather than on the application level as long as you use Dsp_ExecProg

56001 dsp programs have a habit of starting at p:$40
56300 vector table is larger so a more suitable start address is p:$100, or possibly $80 if cramped on space since the last half are just user vectors.

interrupt vectors are different, as is the IO memory map, because the on-chip peripherals are not the same between 56001 and 56303.
Anything using SSI would need to be modified to use ESSI0 instead
Some of the more global registers have differences too. Interrupt enable and so on.

In terms of the actual hardware agnostic part of the code, which is the bulk of it, that runs unchanged (*)

(*) changed only because of toolchain differences.
I am using asm56k on my Mac as well as directly on Raven, so some work was done to port the dsp code which was written from a different assembler. not much, mostly just difference how macros work.

You could compile with asm56000.ttp or something else and it would be fine too, with one caveat;
asm56000.ttp tries to be helpful and wont reach the entire (bigger) IO area of 56300, spiting out error on code that is technically valid but wouldn't make sense on 56001. But for purely hardware agnostic code that doesn't touch IO you could still use it as long as you don't want any of the new 56300 instructions.
Motorolas asm56300 is windows only and wasn't ported to Atari as far as I know, so I'm sticking with asm56k for now.
User avatar
agranlund
Site sponsor
Site sponsor
Posts: 1767
Joined: 18 Aug 2019 22:43
Location: Sweden

Re: Raven. A homemade Atari-like computer

Post by agranlund »

That DSP56303 is decently snappy :)

Code: Select all

DSPBench v3.0b - precision DSP tests. dml/2026

memory integrity test:
 DSP-local IX:IY $0000-$07FF march OK
 SRAM EX:EY $0800-$F7FF march OK

HOST interrupt test:
 RXDF/CPU interrupts triggered OK
 TXDF/CPU interrupts triggered OK

hostport raw R/W datarate:
 write ( 24bit x:H:M:L )   -> 7.402 MB/sec (~205%)
 read  ( 24bit x:H:M:L )   -> 7.826 MB/sec (~257%)
 write ( 16bit -:-:M:L )   -> 7.764 MB/sec (~176%)
 read  ( 16bit -:-:M:L )   -> 7.820 MB/sec (~235%)

host transfer rate (STRam)
 TX ( 24b/packed )         -> 6.176 MB/sec (~254%)
 TX ( 24b/longs )          -> 6.144 MB/sec (~293%)
 RX ( 24b/longs )          -> 6.113 MB/sec (~279%)
 TX ( 16b/words )          -> 6.301 MB/sec (~269%)
 RX ( 16b/words )          -> 5.516 MB/sec (~201%)
 TX (  8b/bytes )          -> 5.872 MB/sec (~335%)
 RX (  8b/bytes )          -> 4.266 MB/sec (~231%)

host transfer rate (ALTRam)
 TX ( 24b/packed )         -> 6.176 MB/sec (~254%)
 TX ( 24b/longs )          -> 6.174 MB/sec (~295%)
 RX ( 24b/longs )          -> 5.485 MB/sec (~250%)
 TX ( 16b/words )          -> 6.277 MB/sec (~268%)
 RX ( 16b/words )          -> 5.728 MB/sec (~209%)
 TX (  8b/bytes )          -> 5.872 MB/sec (~335%)
 RX (  8b/bytes )          -> 5.389 MB/sec (~292%)

ALU & SRAM speed:
 mac ( P:Int X:Int Y:Int ) -> 90.299 Mips (~564%)
 mac ( P:Int X:Ext Y:Ext ) -> 22.584 Mips (~282%)
 mac ( P:Ext X:Int Y:Int ) -> 45.189 Mips (~282%)
 mac ( P:Ext X:Ext Y:Ext ) -> 15.054 Mips (~282%)
User avatar
exxos
Site Admin
Site Admin
Posts: 28671
Joined: 16 Aug 2017 23:19
Location: UK

Re: Raven. A homemade Atari-like computer

Post by exxos »

Is in comparison to a stock Falcon that, I think, 32 MHz DSP speed? Versus whatever you are running it at?
User avatar
agranlund
Site sponsor
Site sponsor
Posts: 1767
Joined: 18 Aug 2019 22:43
Location: Sweden

Re: Raven. A homemade Atari-like computer

Post by agranlund »

exxos wrote: 02 Aug 2026 20:01 Is in comparison to a stock Falcon that, I think, 32 MHz DSP speed? Versus whatever you are running it at?
Yep the percentages are in comparison to a Falcon.

I'm running the DSP56303 at 90.3168 Mhz.
Oscillator is 22.5792 MHz and I'm setting the PLL register to x4.
x5 would bring it to 112mhz but that's 12mhz over the rated speed and I don't know yet how well these things accept overclocking.

The 56300 family takes one clock per instruction rather than two clocks as the 56000, so when not hindered by external ram waitstates it can max out at 90mips @ 90mhz.

Some kind of future fantasy computer could really benefit from using the big brother 56301 with full 32bit hostport instead of the 8bit one on 56303 :)
User avatar
exxos
Site Admin
Site Admin
Posts: 28671
Joined: 16 Aug 2017 23:19
Location: UK

Re: Raven. A homemade Atari-like computer

Post by exxos »

agranlund wrote: 02 Aug 2026 20:17 Some kind of future fantasy computer could really benefit from using the big brother 56301 with full 32bit hostport instead of the 8bit one on 56303 :)
Yeah certainly sounds a awesome chip :thumbup:
User avatar
agranlund
Site sponsor
Site sponsor
Posts: 1767
Joined: 18 Aug 2019 22:43
Location: Sweden

Re: Raven. A homemade Atari-like computer

Post by agranlund »

And with a little bit of optimisation:

Code: Select all

hostport raw R/W datarate:
 write ( 24bit x:H:M:L )   -> 11.758 MB/sec (~326%)
 read  ( 24bit x:H:M:L )   -> 7.826 MB/sec (~257%)
 write ( 16bit -:-:M:L )   -> 11.744 MB/sec (~266%)
 read  ( 16bit -:-:M:L )   -> 7.820 MB/sec (~235%)

host transfer rate (STRam)
 TX ( 24b/packed )         -> 9.281 MB/sec (~381%)
 TX ( 24b/longs )          -> 8.777 MB/sec (~419%)
 RX ( 24b/longs )          -> 6.113 MB/sec (~279%)
 TX ( 16b/words )          -> 9.362 MB/sec (~400%)
 RX ( 16b/words )          -> 5.516 MB/sec (~201%)
 TX (  8b/bytes )          -> 5.893 MB/sec (~336%)
 RX (  8b/bytes )          -> 4.266 MB/sec (~231%)

DSP access on $ffa200 is uncached-precise, the normal page setting for i/o stuff.
DSP access on $ffb200 is uncached-imprecise which significantly improves cpu->dsp throughput when bursting some blocks of data (imprecise means it is allowed to use the cpu storebuffer)
User avatar
dml
Posts: 855
Joined: 15 Nov 2017 22:11

Re: Raven. A homemade Atari-like computer

Post by dml »

agranlund wrote: 04 Aug 2026 15:46 DSP access on $ffb200 is uncached-imprecise which significantly improves cpu->dsp throughput when bursting some blocks of data (imprecise means it is allowed to use the cpu storebuffer)
Interesting - does that still work out to be safe given the port has 3 sequentially written port bytes? The FIFO transfer is triggered on the low byte so it is important that the other two bytes are written first (but in any order - so long as the low byte is last). If there is a single store buffer then it will always be safe. If it is multiword & unordered, it could transfer the wrong upper-bytes on each low-byte transfer. Worse - the transfer would appear to have worked because the correct number of transfers take place, just not with the correct data sometimes.

I'm probably borrowing trouble here and you figured this already - otherwise it looks very nice :)

Return to “RAVEN 060 - A homemade Atari-like computer”

Who is online

Users browsing this forum: CCBot and 1 guest