Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Television Interface Adaptor
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Noise/Tone Generator (AUD0/1)== The TIA is capable of generating different types of [[pulse wave]]s and [[white noise]] output to its two [[Electronic oscillator|oscillators]] (or [[Audio signal|channels]]) AUD0 and AUD1. Each oscillator has a 5-bit [[frequency divider]] and a 4-bit audio control register which manipulates the [[waveform]]. There is also a 4-bit volume control register per [[Audio signal|channel]]. ===Frequency Divider (AUDF0/1)=== [[Frequency|Frequencies]] are generated by taking 31399 [[Hertz|Hz]] (31113 [[Hertz|Hz]] for [[PAL]]) and dividing by the 5-bit value supplied.<ref name="flop">{{cite web |title=Sound Chips in 8-bit Computers |url=http://flop.atariportal.cz/content/62/en/ZVUKE1P1.html |website=FLOP Atari portal |access-date=14 December 2023}}</ref> The result is a cheap [[frequency divider]] capable of detuned notes and the odd tuned frequency. The TIA is not a musical chip unless the composer works within the frequency limits or modulates between two detuned frequencies to create a [[vibrato]] tuned note. The TIA is tuned to the inverted harmonic series due to each frequency being the base frequency divided by a whole number. ===Audio Control (AUDC0/1)=== The Audio Control register generates and manipulates a [[pulse wave]] to create complex [[Pulse (signal processing)|pulses]] or noise. The following tables (with designed duplicates) explains how its tones are generated: {| border="2" cellpadding="3" style="margin-left:1em" class="wikitable" |- ! HEX ! style="background-color:#C0C0C0" | D7 ! style="background-color:#C0C0C0" | D6 ! style="background-color:#C0C0C0" | D5 ! style="background-color:#C0C0C0" | D4 ! style="background-color:#00FFFF" | D3 ! style="background-color:#00FFFF" | D2 ! style="background-color:#00FFFF" | D1 ! style="background-color:#00FFFF" | D0 ! Type of noise or division |- | style="text-align:center" | 0 | rowspan="16" colspan="4" | | style="text-align:center" | 0 | style="text-align:center" | 0 | style="text-align:center" | 0 | style="text-align:center" | 0 | Set to 1 (volume only) |- | style="text-align:center" | 1 | style="text-align:center" | 0 | style="text-align:center" | 0 | style="text-align:center" | 0 | style="text-align:center" | 1 | 4 bit poly |- | style="text-align:center" | 2 | style="text-align:center" | 0 | style="text-align:center" | 0 | style="text-align:center" | 1 | style="text-align:center" | 0 | '''÷''' 15 → 4 bit poly |- | style="text-align:center" | 3 | style="text-align:center" | 0 | style="text-align:center" | 0 | style="text-align:center" | 1 | style="text-align:center" | 1 | 5 bit poly → 4 bit poly |- | style="text-align:center" | 4 | style="text-align:center" | 0 | style="text-align:center" | 1 | style="text-align:center" | 0 | style="text-align:center" | 0 | '''÷''' 2 |- | style="text-align:center" | 5 | style="text-align:center" | 0 | style="text-align:center" | 1 | style="text-align:center" | 0 | style="text-align:center" | 1 | '''÷''' 2 |- | style="text-align:center" | 6 | style="text-align:center" | 0 | style="text-align:center" | 1 | style="text-align:center" | 1 | style="text-align:center" | 0 | '''÷''' 31 |- | style="text-align:center" | 7 | style="text-align:center" | 0 | style="text-align:center" | 1 | style="text-align:center" | 1 | style="text-align:center" | 1 | 5 bit poly → '''÷''' 2 |- | style="text-align:center" | 8 | style="text-align:center" | 1 | style="text-align:center" | 0 | style="text-align:center" | 0 | style="text-align:center" | 0 | 9-bit poly (white noise) |- | style="text-align:center" | 9 | style="text-align:center" | 1 | style="text-align:center" | 0 | style="text-align:center" | 0 | style="text-align:center" | 1 | 5-bit poly |- | style="text-align:center" | A | style="text-align:center" | 1 | style="text-align:center" | 0 | style="text-align:center" | 1 | style="text-align:center" | 0 | '''÷''' 31 |- | style="text-align:center" | B | style="text-align:center" | 1 | style="text-align:center" | 0 | style="text-align:center" | 1 | style="text-align:center" | 1 | Set last 4 bits to 1 |- | style="text-align:center" | C | style="text-align:center" | 1 | style="text-align:center" | 1 | style="text-align:center" | 0 | style="text-align:center" | 0 | '''÷''' 6 |- | style="text-align:center" | D | style="text-align:center" | 1 | style="text-align:center" | 1 | style="text-align:center" | 0 | style="text-align:center" | 1 | '''÷''' 6 |- | style="text-align:center" | E | style="text-align:center" | 1 | style="text-align:center" | 1 | style="text-align:center" | 1 | style="text-align:center" | 0 | '''÷''' 93 |- | style="text-align:center" | F | style="text-align:center" | 1 | style="text-align:center" | 1 | style="text-align:center" | 1 | style="text-align:center" | 1 | 5-bit poly '''÷''' 6 |} === Instruments === Here is a table showing the instruments {| class="wikitable" |+ !Number !Name !Nickname !Notes |- |1 |buzzy |BASIC |Basic [[atari]] sounds |- |2 |Buzzy/ramble |Laser |Sounds like a Jackhammer and a laser |- |3 |flangy/wavering |[[Tremolo]] |Has a [[tremolo]] |- |4 |pure |[[Whistle]] |Sounds like a whistle |- |6 |pure/buzzy |[[trumpet]] |Sounds like a trumpet |- |7 |reedy/rumble |BASIC Jr. |More basic [[atari]] sounds |- |8 |white noise |[[Drum]] |[[Percussion instrument|Percussion]] sounds |- |12 |pure lower |Whistle Jr. |More whistle sounds |- |14 |electronic/rumble |Trumpet Jr. |More Trumpet sounds |- |15 |electronic/rumble |synth |synth sounds |} === Code === Shown is the code from combat<syntaxhighlight lang="asm" line="1"> MOTORS LDA AltSnd,X BEQ DOMOTOR ; Pong sound. LDA #$04 STA AUDC0,X LDA #$07 STA AUDV0,X LDA BounceCount,X STA AUDF0,X RTS ; Engine sound. DOMOTOR LDY GAMSHP LDA SNDV,Y AND GameOn ; Kills sound if no game on by ANDing STA AUDV0,X ; volume value w/$00 no-game value LDA SNDC,Y STA AUDC0,X CLC LDA #$00 MOPIT0 DEY ; This loop sets start value for sound BMI MOPIT1 ; pitch based on GAMSHP in Y (tank, ADC #$0C ; biplane, or jet) BPL MOPIT0 MOPIT1 ADC Vtemp,X ; Use saved velocity to adjust TAY ; sound pitch via SNDP table TXA ASL ADC SNDP,Y STA AUDF0,X RTS </syntaxhighlight>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)