Copy Link
Add to Bookmark
Report

Atari Falcon DSP System Calls

DrWatson's profile picture
Published in 
atari
 · 23 Nov 2023

Here are some useful DMA system calls:

Opcode #139
devconnect(src, dst, srclk, prescale, protocol)
int src;
int dst;
int srclk;
int prescale;
int protocol;
The devconnect function call is used to attach a source device to any of the destination devices in the matrix. Given a source device, this call will attach that one source device to one or all of the destination devices. This call also sets up the source clock prescale value and protocol used.

src: Source devices are:
3 - ADC (microphone/PSG)
2 - EXTINP (External Port Input)
1 - DSPXMIT (DSP Transmit)
0 - DMAPLAY (DMA Playback)
dst: A bitmap of destination devices, several are allowed.
0x8 - DAC (Headphone or Internal speaker)
0x4 - EXTOUT (External Port Output)
0x2 - DSPRECV (DSP Receive)
0x1 - DMAREC (DMA Record)
srclk: The Clock source the device will use.
0 - Internal 25.175 MHz Clock (ADC/DAC compatible)
1 - External Clock
2 - Internal 32 MHz Clock
prescale: Clock prescale value.
1 - 49170Hz
2 - 33880Hz
3 - 24585Hz
4 - 20770Hz
5 - 16490Hz
7 - 12292Hz
9 - 9834Hz
11 - 8195Hz
protocol: Handshake mode.
0 - Enable Handshaking
1 - Disable Handshaking

Opcode #137
dsptristate(dspxmit, dsprec)
int dspxmit;
int dsprec;
dsptristate is used to tristate the DSP from the matrix.

dspxmit:
0 - Tristate
1 - Enable
dsprec:
0 - Tristate
1 - Enable

Opcode #136
status = buffoper(mode)
int mode;
long status;
buffoper is used to control the operation of the DMA.

mode: Mode code, several modes are allowed.
0x8 - Record Repeat on
0x4 - Record Enable on
0x2 - Playback Repeat on
0x1 - Playback Enable on
-1 - Current status is returned

Opcode #131
setbuffer(reg, begaddr, endaddr)
int reg;
long begaddr;
long endaddr;
setbuffer is used to set the play or record buffers. The ending address is the first invalid data location.

reg: Register select.
0 - Sets playback registers.
1 - Sets record registers.
begaddr: Sets the beginning address to the buffer.endaddr: Sets the ending address to the buffer.

← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT