home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #19 / NN_1992_19.iso / spool / comp / sys / atari / st / 13058 < prev    next >
Encoding:
Text File  |  1992-09-01  |  17.4 KB  |  485 lines

  1. Newsgroups: comp.sys.atari.st
  2. Path: sparky!uunet!mcsun!sun4nl!alchemy!piet
  3. From: piet@cs.ruu.nl (Piet van Oostrum)
  4. Subject: Re: The REAL Falcon specs wanted!
  5. Sender: network-news@cs.ruu.nl
  6. Message-ID: <1992Sep1.120211.6162@cs.ruu.nl>
  7. In-Reply-To: kjohnson@castor.cs.uga.edu (Kristopher Johnson)
  8. Date: Tue, 1 Sep 1992 12:02:11 GMT
  9. Reply-To: piet@cs.ruu.nl (Piet van Oostrum)
  10. References: <1992Aug31.123840.1064@ludd.luth.se> <1992Aug31.195705.18207@athena.cs.uga.edu>
  11. Organization: Dept of Computer Science, Utrecht University, The Netherlands
  12. Keywords: Falcon specs.
  13. Lines: 470
  14.  
  15. I found this file on the local ATARI Company's BBS : (original in Dutch)
  16.  
  17. This article is written by Wilfred Kilwinger (Support Manager) for
  18. Atari Briefing, the newsletter by Atari (Benelux) B.V. for the Atari 
  19. user groups. It was specifically stated that it could be reproduced. I have
  20. translated it in English with the assumption that an English translation
  21. would be considered the same as the original.
  22.  
  23. The original also contained a description of all the features of the Falcon
  24. which have been reproduced here a zillion of times so I did not include
  25. these. 
  26.  
  27. ------------------------------------------------------------------------
  28. Atari custom chips
  29.  
  30. VIDEL
  31.  
  32. The VIDEL takes care of the video functions of the system including
  33. overscan, overlay mode and true color graphics
  34.  
  35. COMBEL
  36.  
  37. The COMBEL is the system manager of the Atari Falcon030. This chip controls
  38. all system functions. Also the BLITTER is built in in this chip.
  39.  
  40. SDMA
  41.  
  42. The SDMA is the Sound DMA and controls the sound part. We have built in a
  43. unique matrix switch function in this chip (more details in the second part)
  44.  
  45. KEYBOARD PROCESSOR
  46.  
  47. The keyboard processor has been improved and is now also suitable for high
  48. resolution mice.
  49.  
  50. Besides the above custom chips the Atari Falcon030 has a number of standard
  51. chips like the Motorola 68030 and 56001 DSP. Another important chip is the
  52. CODEC in which the 16 bit AD and DA converters are located.
  53.  
  54. Video modi
  55.  
  56. As you can see in the survey of Operating System calls
  57. the video hardware is complete sotware controllable. The following
  58. combinations can a.o. be chosen:
  59.  
  60. Mode      Resolution  Bit planes  Colors  Palette
  61.  
  62. ST LOW     320x200       4           16     4096
  63. ST MED     640x200       2            4     4096
  64. ST HIGH    640x400       1            2     4096
  65.  
  66. True Color 640x480       8          256   262144
  67.            320x200     15bpp      32768     N/A
  68.  
  69. The last mode asks for some explanation. Here there is no color palette but
  70. 15 bits per pixel to describe the pixel itself. The format is
  71. RRRRRGGGGGXBBBBB. VDI supports this mode thus programs that have not been
  72. written for this mode specifically can use it nevertheless.
  73. X is the overlay bit and can be used for video titling and special effects.
  74.  
  75.           320x200     16bpp      65         N/A
  76.  
  77. This mode is called the slideshow mode, is not supported by the VDI, you
  78. are on you own. X is an extra green bit.
  79.  
  80.  
  81. True Color in 640x480 is not possible because of the bandwidth of VGA monitors.
  82.  
  83. Mode      Resolution Bit planes   Colors    Palette
  84.  
  85. VGA      320 of 640   1,4,8       2,16,256  262144 (Overscan 
  86. Video    200 of 400
  87.  
  88. With Video we mean the Atari SC-monitors, the TV modulator and/or the
  89. composite video output.
  90.  
  91. All modes can be gegenlocked. With adaptors we convert
  92. the 15-pole video bus to thee standard Atari or VGA connections.
  93.  
  94.        |----|
  95.        -    -
  96.       /      \
  97.      /        \
  98.     /          \
  99.     |          |
  100.     -|--------|-
  101.  
  102.  
  103. Matrix coupling
  104.  
  105. To make the system performance in the audio part as good as possible Atari
  106. designed a miniature 'telephone exchange' that can easily connect the
  107. source devices to the receiving devices. Also it is possible to make more
  108. than one connection at a time.
  109.  
  110.  
  111.     Source devices
  112.  
  113.         EXT INPUT ---*-------*------*------*
  114.          CHANNEL     |       |      |      |
  115.                      |       |      |      |
  116.            DSP    ---*-------*------*------*
  117.         TRANSMIT     |       |      |      |
  118.                      |       |      |      |
  119.            ADC    ---*-------*------*------*
  120.                      |       |      |      |
  121.                      |       |      |      |
  122.            DMA    ---*-------*------*------*
  123.         PLAYBACK     |       |      |      |
  124.                     DMA     DAC    DSP     EXT OUTPUT
  125.                    RECORD        RECEIVE     CHANNEL
  126.  
  127.                         Receiving Devices
  128.  
  129.  
  130. Ports andn interfacing
  131.  
  132. DSP CONNECTOR (DB26 Female)
  133.  
  134. Pin   Signal                           Pin   Signal
  135.  
  136. 1     GP0                              14    GND
  137. 2     GP1                              15    SRD
  138. 3     GP2                              16    GND
  139. 4     P_DATA                           17    +12V
  140. 5     P_CLK                            18    GND
  141. 6     P_SYNC                           19    R_DATA
  142. 7     n/c                              20    R_CLK
  143. 8     GND                              21    R_SYNC
  144. 9     +12V                             22    EXT_INT
  145. 10    GND                              23    STD
  146. 11    SC0                              24    SCK
  147. 12    SC1                              25    GND
  148. 13    SC2                              26    EXCLK                         
  149.  
  150.  
  151. SCSI CONNECTOR (flat 50 pins SCSI II Female)
  152.  
  153. Pin   Signal                           Pin   Signal
  154.  
  155. 1-10  GND                              37    Not Connected
  156. 11    +5V                              38    +5V
  157. 12-14 Not Connected                    39    Not Connected
  158. 15-25 GND                              40    GND
  159. 26    SCSI 0                           41    ATN
  160. 27    SCSI 1                           42    GND
  161. 28    SCSI 2                           43    BSY
  162. 29    SCSI 3                           44    ACK
  163. 30    SCSI 4                           45    RST
  164. 31    SCSI 5                           46    MSG
  165. 32    SCSI 6                           47    SEL
  166. 33    SCSI 7                           48    C/D
  167. 34    Parity                           49    REQ
  168. 35-36 GND                              50    I/O
  169.  
  170.  
  171. SERIAL PORT (DB9 MALE)                                                         
  172.  
  173. Pin   Signal
  174.  
  175. 1     Carrier Detect                   5     GND
  176. 2     Receive                          6     Data set ready
  177. 3     Transmit                         7     Request to Send
  178. 4     Data Terminal Ready              8     Clear to Send
  179.                                        9     Ring Indicator
  180.  
  181. PARALLEL PORT (DB25 Female)
  182.  
  183. The parallel port has extra signal to ease the connection of scanners.
  184.  
  185. Pin   Signal
  186.  
  187. 1     Strobe          8     Data 6
  188. 2     Data 0          9     Data 7
  189. 3     Data 1         10     Acknowledge
  190. 4     Data 2         11     Busy
  191. 5     Data 3         12-16  Not Connected
  192. 6     Data 4         17     Select
  193. 7     Data 5         18-25  GND
  194.  
  195.  
  196. MONITOR CONNECTOR (DB19 Male)
  197.  
  198. Pin   Signal                           Pin   Signal
  199.  
  200. 1     Red                              11    GND
  201. 2     Green                            12    Composite Sync/Video
  202. 3     Blue                             13    Horizontal Sync
  203. 4     Mono/Overlay                     14    Vertical Sync
  204. 5     GND                              15    External Clock Input
  205. 6     Red GND                          16    External SYNC Enable
  206. 7     Green GND                        17    +12V
  207. 8     Blue GND                         18    M1
  208. 9     Audio out                        19    M0
  209. 10    GND
  210.  
  211.  
  212. SCC LAN-port CONNECTOR (8-pin Mini DIN Female RS-422)
  213.  
  214. Pin   Signal
  215.  
  216. 1     Handshake Output (DTR RS 423)           5     - Received Data
  217. 2     Handshake Input or External Clock       6     + Transmitted Data
  218. 3     - Transmit Data                         7     General-purpose Input
  219. 4     GND                                     8     + Receive
  220.  
  221.  
  222. ENHANCED JOYSTICK (DB15 Male)
  223.  
  224. Port A                                 Port B
  225.  
  226. Pin   Signal                           Pin   Signal
  227.  
  228. 1     UP 0                             1     UP 1
  229. 2     DOWN 0                           2     DOWN 1
  230. 3     LT 0                             3     LT 1
  231. 4     RT 0                             4     RT 1
  232. 5     PAD0Y                            5     PAD1Y
  233. 6     FIRE 0 / LIGHT GUN               6     FIRE 1
  234. 7     VCC (+5 VDC)                     7     VCC
  235. 8     Not Connected                    8     Not Connected
  236. 9     GND                              9     GND
  237. 10    FIRE 2                           10    FIRE 3
  238. 11    UP 2                             11    UP 3
  239. 12    DOWN 2                           12    DOWN 3
  240. 13    LT 2                             13    LT 3
  241. 14    RT 2                             14    RT 3
  242. 15    PAD0X                            15    PAD1X                    
  243.  
  244.  
  245. MIDI PORT (DIN 5 Female)
  246.  
  247. MIDI OUT                               MIDI  IN
  248.  
  249. Pin   Signal                           Pin   Signal
  250.  
  251. 1     Thru Transmit                    1     Not Connected
  252. 2     GND                              2     Not Connected
  253. 3     Thru Loop Return                 3     Not Connected
  254. 4     Out Transmit                     4     In Receive
  255. 5     Out Loop Return                  5     In Loop Return
  256.  
  257.  
  258. New Operating System calls
  259.  
  260. This information is not complete, maybe subject to change and is certainly
  261. not meant as documentation for programmers
  262.  
  263. DSP-calls
  264.  
  265. Dsp_DoBlock(a,b,c,d)                    (void) xbios(500,a,b,c,d)
  266. Dsp_BlkHandShake(a,b,c,d)               (void) xbios(501,a,b,c,d)
  267. Dsp_BlkUnpacked(a,b,c,d)                (void) xbios(502,a,b,c,d)
  268. Dsp_InStream(a,b,c,d)                   (void) xbios(503,a,b,c,d)
  269. Dsp_OutStream(a,b,c,d)                  (void) xbios(504,a,b,c,d)
  270. Dsp_IOStream(a,b,c,d,e,f)               (void) xbios(505,a,b,c,d,e,f)
  271. Dsp_RemoveInterrupts(a)                 (void) xbios(506,a)
  272. Dsp_GetWordSize()                       (int)  xbios(507)
  273. Dsp_Lock()                              (int)  xbios(508)
  274. Dsp_Unlock()                            (void) xbios(509)
  275. Dsp_Available(a,b)                      (void) xbios(510,a,b)
  276. Dsp_Reserve(a,b)                        (int) xbios(511,a,b)
  277. Dsp_LoadProg(a,b,c)                     (int) xbios(512,a,b,c)
  278. Dsp_ExecProg(a,b,c)                     (void) xbios(513,a,b,c)
  279. Dsp_ExecBoot(a,b,c)                     (void) xbios(514,a,b,c)
  280. Dsp_LodToBinary(a,b)                    (long) xbios(515,a,b)
  281. Dsp_TriggerHC(a)                        (void) xbios(516,a)
  282. Dsp_RequestUniqueAbility()              (int)  xbios(517)
  283. Dsp_GetProgAbility()                    (int)  xbios(518)
  284. Dsp_FlushSubroutines()                  (void) xbios(519)
  285. Dsp_LoadSubroutine(a,b,c)               (int)  xbios(520,a,b,c)
  286. Dsp_InqSubrAbility(a)                   (int)  xbios(521,a)
  287. Dsp_RunSubroutine(a)                    (int)  xbios(522,a)
  288. Dsp_Hf0(a)                              (int)  xbios(523,a)
  289. Dsp_Hf1(a)                              (int)  xbios(524,a)
  290. Dsp_Hf2()                               (int)  xbios(525)
  291. Dsp_Hf3()                               (int)  xbios(526)
  292. Dsp_BlkWords(a,b,c,d)                   (void) xbios(527,a,b,c,d)
  293. Dsp_BlkBytes(a,b,c,d)                   (void) xbios(528,a,b,c,d)
  294. Dsp_HStat()                             (char) xbios(529)
  295. Dsp_SetVectors(a,b)                     (void) xbios(530,a,b)
  296.  
  297. De volledige beschrijving van bovenstaande functie's staat in de Falcon030 
  298. Developers Documentation.
  299.  
  300.  
  301. VIDEO SETMODE
  302.  
  303. int setmode( int modecode );
  304.  
  305. The setmode( int modecode ) call is used to place the Falcon/030 SHIFTER
  306. into a specific mode. A bit-encoded value (called a "modecode") is passed
  307. to setmode() to set the mode. setmode() returns the previous mode that 
  308. was set.
  309.  
  310. To help make the building of modecode values easier, here is a table of
  311. defines:
  312.  
  313.         #define VERTFLAG        0x100
  314.         #define STMODES         0x80
  315.         #define OVERSCAN        0x40
  316.         #define PAL             0x20
  317.         #define VGA             0x10
  318.         #define TV              0x0
  319.  
  320.         #define COL80           0x08
  321.         #define COL40           0x0
  322.         #define NUMCOLS         7
  323.  
  324.         #define BPS16           4
  325.         #define BPS8            3
  326.         #define BPS4            2
  327.         #define BPS2            1
  328.         #define BPS1            0
  329.  
  330. Using these defines, you can build a modecode for any possible mode.
  331. For example:
  332.  
  333.         For True Color Overscan:
  334.         modecode = OVERSCAN|COL40|BPS16;
  335.         
  336.         For ST Medium Compatibility mode on a Color Monitor/TV:
  337.         modecode = STMODES|COL80|BPS2;
  338.  
  339.         For ST Low Compatibility mode in PAL on a Color Monitor/TV:
  340.         modecode = STMODES|PAL|COL80|BPS2;
  341.  
  342.         For 256 color, 80 column mode on a VGA monitor:
  343.         modecode = VGA|COL80|BPS8;
  344.  
  345. If you have a modecode and wish to know how many bits per pixel it
  346. has, use the following:
  347.  
  348.         if( modecode & NUMCOLS ) == BPS16 )
  349.                 do_something_cool();    /* You have true color mode */
  350.  
  351. The setmode() call will return the previous modecode set. You must use
  352. this value to get back to whatever mode you were in before you made your 
  353. setmode call.
  354.  
  355.  
  356. int mon_type(void)
  357.  
  358. The mon_type() function will return the kind of monitor that is currently
  359. in use. Here are the possible return values:
  360.  
  361.         0 = ST monochrome monitor
  362.         1 = ST color monitor
  363.         2 = VGA monitor
  364.         3 = Television. 
  365.  
  366.  
  367. void ext_sync( int flag )
  368.  
  369. This function sets or clears external sync. If flag is set, external 
  370. sync is enabled. If flag is clear, then internal sync is used.
  371.  
  372.  
  373. SOUND-calls
  374.  
  375. locksnd();
  376. Used as a semiphore to lock the sound system. From other applications.
  377.  
  378. unlocksnd();    
  379. Used to release the sound system for other applications to use.
  380.  
  381. soundcmd(mode,data);
  382. This command is used to get or set the following sound parameters.
  383. If a negative number is used as the input then the current setting us
  384. returned.
  385.  
  386. MODE    OPERATION       MEANING 
  387.  
  388. O       LTATTEN Sets the current left channel output
  389.  
  390. 1       RTATTEN Sets the current right channel output
  391.  
  392. 2       LTGAIN  Sets the current left channel input gain.
  393.  
  394. 3       RTGAIN  Sets the current right channel input gain.
  395.  
  396. 4       ADDERIN Set the output of the 16 bit signed adder to
  397.                 receive it's input from the ADC, Matrix or
  398.                 both.
  399.  
  400. 5       ADCINPUT        Set the input the the ADC. The input can either
  401.                         be the left and right channel of the PSG or the
  402.                         left and right channel of the microphone.
  403.  
  404. 6       SETPRESCALE     Used for compatability. This prescale value
  405.                         is used when the DEVCONNECT() internal
  406.                         prescale value is set to zero.
  407.  
  408.  
  409. setbuffer(reg,begaddr,endaddr);
  410. This function is used to set the play or record buffers. REG selects
  411. playback or record, while begaddr and endaddr are the buffers beginning
  412. and ending locations.
  413.  
  414.         (int)   reg             - (0) Sets playback registers.
  415.                                 - (1) Sets record registers.
  416.         (long)  begaddr - Sets the beginning address of the buffer.
  417.         (long)  endaddr - Sets the ending address of the buffer.
  418.  
  419. setmode(mode);
  420. This function is used to set record or playback mode. The modes are as
  421. follows:
  422.  
  423. MODE            OPERATION
  424. (int)   0      8 Bit Stereo
  425. (int)   1      16 Bit Stereo
  426. (int)   2      8 Bit Mono
  427.  
  428. settracks(playtracks,rectracks);
  429. This function is used to sets the number of record or playback tracks.
  430.  
  431. setmontracks(montrack);
  432. This function is used to set the output of the internal speaker to one of
  433. the four tracks currently playing. The internal speaker is only capable of
  434. outputing ONE track at a time.
  435.  
  436. setinterrupt(src_inter,cause);
  437. This function is used to set which interrupt that will occur at the end of a
  438. frame. If the frame repeat bit is on, this interrupt is used to allow for 
  439. double buffering the playing or recording of sound. Interrupts can come from
  440. TimerA or the MFP i7.
  441.  
  442. buffoper(mode);
  443. This function is used to control the operation of the play or record buffers
  444. in the sound system. The input to this function is a bitmap. If mode is set
  445. t0 -1 then the current status of the buffer operation bits is returned.
  446.  
  447. NOTE:   The sound system contains a 32 byte FIFO. When transferring data to 
  448. the record buffer, software MUST check to see if the record enable (RE) bit 
  449. was cleared by the hardware. If the bit was cleared then the FIFO is flushed,
  450. if not then software must flush the FIFO by clearing the record enable (RE)
  451. bit. 
  452.  
  453. dsptristate(dspxmit,dsprec);
  454. This function is used to tristate the DSP from the data matrix. 
  455.  
  456. gpio(mode,data);
  457. This is used to communicate over the General Purpose I/O on the DSP connector.
  458. Only the low order three bits are used. The rest are reserved. This call,
  459. depending on the mode, can be used to set the direction of the I/O bits, read
  460. the bits, or write the bits. 
  461.  
  462. devconnect(src,dst,srcclk,prescale,protocol);
  463. This function is used to attach a source device to any of the destination
  464. devices in the matrix. Given a source device, this call will attach that one
  465. source device to one or all of the destination devices. This call also sets
  466. up the source clock and prescaler, protocol and protocol source if used.
  467.  
  468. sndstatus(reset);
  469. This function gets the current status of the codec.
  470.  
  471. buffptr(pointer);
  472. This function returns the current position of the play and record data buffer
  473. pointers. These pointers indicate where the data is being read/written within
  474. the buffers themselves. This function is also used to  determine how much
  475. data has been written to the record buffer. See buffoper().
  476.  
  477.  
  478. The above is not yet complete. Atari has also routines for
  479. JPEG and andio conversion.
  480. -- 
  481. Piet* van Oostrum, Dept of Computer Science, Utrecht University,
  482. Padualaan 14, P.O. Box 80.089, 3508 TB Utrecht, The Netherlands.
  483. Telephone: +31 30 531806   Uucp:   uunet!mcsun!ruuinf!piet
  484. Telefax:   +31 30 513791   Internet:  piet@cs.ruu.nl   (*`Pete')
  485.