home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.sys.atari.st
- Path: sparky!uunet!mcsun!sun4nl!alchemy!piet
- From: piet@cs.ruu.nl (Piet van Oostrum)
- Subject: Re: The REAL Falcon specs wanted!
- Sender: network-news@cs.ruu.nl
- Message-ID: <1992Sep1.120211.6162@cs.ruu.nl>
- In-Reply-To: kjohnson@castor.cs.uga.edu (Kristopher Johnson)
- Date: Tue, 1 Sep 1992 12:02:11 GMT
- Reply-To: piet@cs.ruu.nl (Piet van Oostrum)
- References: <1992Aug31.123840.1064@ludd.luth.se> <1992Aug31.195705.18207@athena.cs.uga.edu>
- Organization: Dept of Computer Science, Utrecht University, The Netherlands
- Keywords: Falcon specs.
- Lines: 470
-
- I found this file on the local ATARI Company's BBS : (original in Dutch)
-
- This article is written by Wilfred Kilwinger (Support Manager) for
- Atari Briefing, the newsletter by Atari (Benelux) B.V. for the Atari
- user groups. It was specifically stated that it could be reproduced. I have
- translated it in English with the assumption that an English translation
- would be considered the same as the original.
-
- The original also contained a description of all the features of the Falcon
- which have been reproduced here a zillion of times so I did not include
- these.
-
- ------------------------------------------------------------------------
- Atari custom chips
-
- VIDEL
-
- The VIDEL takes care of the video functions of the system including
- overscan, overlay mode and true color graphics
-
- COMBEL
-
- The COMBEL is the system manager of the Atari Falcon030. This chip controls
- all system functions. Also the BLITTER is built in in this chip.
-
- SDMA
-
- The SDMA is the Sound DMA and controls the sound part. We have built in a
- unique matrix switch function in this chip (more details in the second part)
-
- KEYBOARD PROCESSOR
-
- The keyboard processor has been improved and is now also suitable for high
- resolution mice.
-
- Besides the above custom chips the Atari Falcon030 has a number of standard
- chips like the Motorola 68030 and 56001 DSP. Another important chip is the
- CODEC in which the 16 bit AD and DA converters are located.
-
- Video modi
-
- As you can see in the survey of Operating System calls
- the video hardware is complete sotware controllable. The following
- combinations can a.o. be chosen:
-
- Mode Resolution Bit planes Colors Palette
-
- ST LOW 320x200 4 16 4096
- ST MED 640x200 2 4 4096
- ST HIGH 640x400 1 2 4096
-
- True Color 640x480 8 256 262144
- 320x200 15bpp 32768 N/A
-
- The last mode asks for some explanation. Here there is no color palette but
- 15 bits per pixel to describe the pixel itself. The format is
- RRRRRGGGGGXBBBBB. VDI supports this mode thus programs that have not been
- written for this mode specifically can use it nevertheless.
- X is the overlay bit and can be used for video titling and special effects.
-
- 320x200 16bpp 65 N/A
-
- This mode is called the slideshow mode, is not supported by the VDI, you
- are on you own. X is an extra green bit.
-
-
- True Color in 640x480 is not possible because of the bandwidth of VGA monitors.
-
- Mode Resolution Bit planes Colors Palette
-
- VGA 320 of 640 1,4,8 2,16,256 262144 (Overscan
- Video 200 of 400
-
- With Video we mean the Atari SC-monitors, the TV modulator and/or the
- composite video output.
-
- All modes can be gegenlocked. With adaptors we convert
- the 15-pole video bus to thee standard Atari or VGA connections.
-
- |----|
- - -
- / \
- / \
- / \
- | |
- -|--------|-
-
-
- Matrix coupling
-
- To make the system performance in the audio part as good as possible Atari
- designed a miniature 'telephone exchange' that can easily connect the
- source devices to the receiving devices. Also it is possible to make more
- than one connection at a time.
-
-
- Source devices
-
- EXT INPUT ---*-------*------*------*
- CHANNEL | | | |
- | | | |
- DSP ---*-------*------*------*
- TRANSMIT | | | |
- | | | |
- ADC ---*-------*------*------*
- | | | |
- | | | |
- DMA ---*-------*------*------*
- PLAYBACK | | | |
- DMA DAC DSP EXT OUTPUT
- RECORD RECEIVE CHANNEL
-
- Receiving Devices
-
-
- Ports andn interfacing
-
- DSP CONNECTOR (DB26 Female)
-
- Pin Signal Pin Signal
-
- 1 GP0 14 GND
- 2 GP1 15 SRD
- 3 GP2 16 GND
- 4 P_DATA 17 +12V
- 5 P_CLK 18 GND
- 6 P_SYNC 19 R_DATA
- 7 n/c 20 R_CLK
- 8 GND 21 R_SYNC
- 9 +12V 22 EXT_INT
- 10 GND 23 STD
- 11 SC0 24 SCK
- 12 SC1 25 GND
- 13 SC2 26 EXCLK
-
-
- SCSI CONNECTOR (flat 50 pins SCSI II Female)
-
- Pin Signal Pin Signal
-
- 1-10 GND 37 Not Connected
- 11 +5V 38 +5V
- 12-14 Not Connected 39 Not Connected
- 15-25 GND 40 GND
- 26 SCSI 0 41 ATN
- 27 SCSI 1 42 GND
- 28 SCSI 2 43 BSY
- 29 SCSI 3 44 ACK
- 30 SCSI 4 45 RST
- 31 SCSI 5 46 MSG
- 32 SCSI 6 47 SEL
- 33 SCSI 7 48 C/D
- 34 Parity 49 REQ
- 35-36 GND 50 I/O
-
-
- SERIAL PORT (DB9 MALE)
-
- Pin Signal
-
- 1 Carrier Detect 5 GND
- 2 Receive 6 Data set ready
- 3 Transmit 7 Request to Send
- 4 Data Terminal Ready 8 Clear to Send
- 9 Ring Indicator
-
- PARALLEL PORT (DB25 Female)
-
- The parallel port has extra signal to ease the connection of scanners.
-
- Pin Signal
-
- 1 Strobe 8 Data 6
- 2 Data 0 9 Data 7
- 3 Data 1 10 Acknowledge
- 4 Data 2 11 Busy
- 5 Data 3 12-16 Not Connected
- 6 Data 4 17 Select
- 7 Data 5 18-25 GND
-
-
- MONITOR CONNECTOR (DB19 Male)
-
- Pin Signal Pin Signal
-
- 1 Red 11 GND
- 2 Green 12 Composite Sync/Video
- 3 Blue 13 Horizontal Sync
- 4 Mono/Overlay 14 Vertical Sync
- 5 GND 15 External Clock Input
- 6 Red GND 16 External SYNC Enable
- 7 Green GND 17 +12V
- 8 Blue GND 18 M1
- 9 Audio out 19 M0
- 10 GND
-
-
- SCC LAN-port CONNECTOR (8-pin Mini DIN Female RS-422)
-
- Pin Signal
-
- 1 Handshake Output (DTR RS 423) 5 - Received Data
- 2 Handshake Input or External Clock 6 + Transmitted Data
- 3 - Transmit Data 7 General-purpose Input
- 4 GND 8 + Receive
-
-
- ENHANCED JOYSTICK (DB15 Male)
-
- Port A Port B
-
- Pin Signal Pin Signal
-
- 1 UP 0 1 UP 1
- 2 DOWN 0 2 DOWN 1
- 3 LT 0 3 LT 1
- 4 RT 0 4 RT 1
- 5 PAD0Y 5 PAD1Y
- 6 FIRE 0 / LIGHT GUN 6 FIRE 1
- 7 VCC (+5 VDC) 7 VCC
- 8 Not Connected 8 Not Connected
- 9 GND 9 GND
- 10 FIRE 2 10 FIRE 3
- 11 UP 2 11 UP 3
- 12 DOWN 2 12 DOWN 3
- 13 LT 2 13 LT 3
- 14 RT 2 14 RT 3
- 15 PAD0X 15 PAD1X
-
-
- MIDI PORT (DIN 5 Female)
-
- MIDI OUT MIDI IN
-
- Pin Signal Pin Signal
-
- 1 Thru Transmit 1 Not Connected
- 2 GND 2 Not Connected
- 3 Thru Loop Return 3 Not Connected
- 4 Out Transmit 4 In Receive
- 5 Out Loop Return 5 In Loop Return
-
-
- New Operating System calls
-
- This information is not complete, maybe subject to change and is certainly
- not meant as documentation for programmers
-
- DSP-calls
-
- Dsp_DoBlock(a,b,c,d) (void) xbios(500,a,b,c,d)
- Dsp_BlkHandShake(a,b,c,d) (void) xbios(501,a,b,c,d)
- Dsp_BlkUnpacked(a,b,c,d) (void) xbios(502,a,b,c,d)
- Dsp_InStream(a,b,c,d) (void) xbios(503,a,b,c,d)
- Dsp_OutStream(a,b,c,d) (void) xbios(504,a,b,c,d)
- Dsp_IOStream(a,b,c,d,e,f) (void) xbios(505,a,b,c,d,e,f)
- Dsp_RemoveInterrupts(a) (void) xbios(506,a)
- Dsp_GetWordSize() (int) xbios(507)
- Dsp_Lock() (int) xbios(508)
- Dsp_Unlock() (void) xbios(509)
- Dsp_Available(a,b) (void) xbios(510,a,b)
- Dsp_Reserve(a,b) (int) xbios(511,a,b)
- Dsp_LoadProg(a,b,c) (int) xbios(512,a,b,c)
- Dsp_ExecProg(a,b,c) (void) xbios(513,a,b,c)
- Dsp_ExecBoot(a,b,c) (void) xbios(514,a,b,c)
- Dsp_LodToBinary(a,b) (long) xbios(515,a,b)
- Dsp_TriggerHC(a) (void) xbios(516,a)
- Dsp_RequestUniqueAbility() (int) xbios(517)
- Dsp_GetProgAbility() (int) xbios(518)
- Dsp_FlushSubroutines() (void) xbios(519)
- Dsp_LoadSubroutine(a,b,c) (int) xbios(520,a,b,c)
- Dsp_InqSubrAbility(a) (int) xbios(521,a)
- Dsp_RunSubroutine(a) (int) xbios(522,a)
- Dsp_Hf0(a) (int) xbios(523,a)
- Dsp_Hf1(a) (int) xbios(524,a)
- Dsp_Hf2() (int) xbios(525)
- Dsp_Hf3() (int) xbios(526)
- Dsp_BlkWords(a,b,c,d) (void) xbios(527,a,b,c,d)
- Dsp_BlkBytes(a,b,c,d) (void) xbios(528,a,b,c,d)
- Dsp_HStat() (char) xbios(529)
- Dsp_SetVectors(a,b) (void) xbios(530,a,b)
-
- De volledige beschrijving van bovenstaande functie's staat in de Falcon030
- Developers Documentation.
-
-
- VIDEO SETMODE
-
- int setmode( int modecode );
-
- The setmode( int modecode ) call is used to place the Falcon/030 SHIFTER
- into a specific mode. A bit-encoded value (called a "modecode") is passed
- to setmode() to set the mode. setmode() returns the previous mode that
- was set.
-
- To help make the building of modecode values easier, here is a table of
- defines:
-
- #define VERTFLAG 0x100
- #define STMODES 0x80
- #define OVERSCAN 0x40
- #define PAL 0x20
- #define VGA 0x10
- #define TV 0x0
-
- #define COL80 0x08
- #define COL40 0x0
- #define NUMCOLS 7
-
- #define BPS16 4
- #define BPS8 3
- #define BPS4 2
- #define BPS2 1
- #define BPS1 0
-
- Using these defines, you can build a modecode for any possible mode.
- For example:
-
- For True Color Overscan:
- modecode = OVERSCAN|COL40|BPS16;
-
- For ST Medium Compatibility mode on a Color Monitor/TV:
- modecode = STMODES|COL80|BPS2;
-
- For ST Low Compatibility mode in PAL on a Color Monitor/TV:
- modecode = STMODES|PAL|COL80|BPS2;
-
- For 256 color, 80 column mode on a VGA monitor:
- modecode = VGA|COL80|BPS8;
-
- If you have a modecode and wish to know how many bits per pixel it
- has, use the following:
-
- if( modecode & NUMCOLS ) == BPS16 )
- do_something_cool(); /* You have true color mode */
-
- The setmode() call will return the previous modecode set. You must use
- this value to get back to whatever mode you were in before you made your
- setmode call.
-
-
- int mon_type(void)
-
- The mon_type() function will return the kind of monitor that is currently
- in use. Here are the possible return values:
-
- 0 = ST monochrome monitor
- 1 = ST color monitor
- 2 = VGA monitor
- 3 = Television.
-
-
- void ext_sync( int flag )
-
- This function sets or clears external sync. If flag is set, external
- sync is enabled. If flag is clear, then internal sync is used.
-
-
- SOUND-calls
-
- locksnd();
- Used as a semiphore to lock the sound system. From other applications.
-
- unlocksnd();
- Used to release the sound system for other applications to use.
-
- soundcmd(mode,data);
- This command is used to get or set the following sound parameters.
- If a negative number is used as the input then the current setting us
- returned.
-
- MODE OPERATION MEANING
-
- O LTATTEN Sets the current left channel output
-
- 1 RTATTEN Sets the current right channel output
-
- 2 LTGAIN Sets the current left channel input gain.
-
- 3 RTGAIN Sets the current right channel input gain.
-
- 4 ADDERIN Set the output of the 16 bit signed adder to
- receive it's input from the ADC, Matrix or
- both.
-
- 5 ADCINPUT Set the input the the ADC. The input can either
- be the left and right channel of the PSG or the
- left and right channel of the microphone.
-
- 6 SETPRESCALE Used for compatability. This prescale value
- is used when the DEVCONNECT() internal
- prescale value is set to zero.
-
-
- setbuffer(reg,begaddr,endaddr);
- This function is used to set the play or record buffers. REG selects
- playback or record, while begaddr and endaddr are the buffers beginning
- and ending locations.
-
- (int) reg - (0) Sets playback registers.
- - (1) Sets record registers.
- (long) begaddr - Sets the beginning address of the buffer.
- (long) endaddr - Sets the ending address of the buffer.
-
- setmode(mode);
- This function is used to set record or playback mode. The modes are as
- follows:
-
- MODE OPERATION
- (int) 0 8 Bit Stereo
- (int) 1 16 Bit Stereo
- (int) 2 8 Bit Mono
-
- settracks(playtracks,rectracks);
- This function is used to sets the number of record or playback tracks.
-
- setmontracks(montrack);
- This function is used to set the output of the internal speaker to one of
- the four tracks currently playing. The internal speaker is only capable of
- outputing ONE track at a time.
-
- setinterrupt(src_inter,cause);
- This function is used to set which interrupt that will occur at the end of a
- frame. If the frame repeat bit is on, this interrupt is used to allow for
- double buffering the playing or recording of sound. Interrupts can come from
- TimerA or the MFP i7.
-
- buffoper(mode);
- This function is used to control the operation of the play or record buffers
- in the sound system. The input to this function is a bitmap. If mode is set
- t0 -1 then the current status of the buffer operation bits is returned.
-
- NOTE: The sound system contains a 32 byte FIFO. When transferring data to
- the record buffer, software MUST check to see if the record enable (RE) bit
- was cleared by the hardware. If the bit was cleared then the FIFO is flushed,
- if not then software must flush the FIFO by clearing the record enable (RE)
- bit.
-
- dsptristate(dspxmit,dsprec);
- This function is used to tristate the DSP from the data matrix.
-
- gpio(mode,data);
- This is used to communicate over the General Purpose I/O on the DSP connector.
- Only the low order three bits are used. The rest are reserved. This call,
- depending on the mode, can be used to set the direction of the I/O bits, read
- the bits, or write the bits.
-
- devconnect(src,dst,srcclk,prescale,protocol);
- This function 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 and prescaler, protocol and protocol source if used.
-
- sndstatus(reset);
- This function gets the current status of the codec.
-
- buffptr(pointer);
- This function returns the current position of the play and record data buffer
- pointers. These pointers indicate where the data is being read/written within
- the buffers themselves. This function is also used to determine how much
- data has been written to the record buffer. See buffoper().
-
-
- The above is not yet complete. Atari has also routines for
- JPEG and andio conversion.
- --
- Piet* van Oostrum, Dept of Computer Science, Utrecht University,
- Padualaan 14, P.O. Box 80.089, 3508 TB Utrecht, The Netherlands.
- Telephone: +31 30 531806 Uucp: uunet!mcsun!ruuinf!piet
- Telefax: +31 30 513791 Internet: piet@cs.ruu.nl (*`Pete')
-