2022-01-16 01:10:43 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# General Instrument AY-3-8910
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-03-26 14:55:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								this chip was used in many home computers (ZX Spectrum, MSX, Amstrad CPC, Atari ST, etc.), video game consoles (Intellivision and Vectrex), arcade boards and even slot machines!
							 
						 
					
						
							
								
									
										
										
										
											2022-01-16 01:10:43 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-10-16 01:53:05 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								it is a 3-channel square/noise/envelope sound generator. the chip's powerful sound comes from the envelope...
							 
						 
					
						
							
								
									
										
										
										
											2022-01-16 01:10:43 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-10-16 01:53:05 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								the AY-3-8914 variant was used in Intellivision, which is pretty much an AY with 4 level envelope volume per channel and different register format.
							 
						 
					
						
							
								
									
										
										
										
											2022-03-11 13:30:54 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-10 02:44:29 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Furnace is capable of doing software sample playback on AY-3-8910, where all 3 channels can play 4-bit PCM samples (at the cost of a very high CPU usage).
							 
						 
					
						
							
								
									
										
										
										
											2023-07-09 08:07:19 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-10 20:34:13 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								## effects
  
						 
					
						
							
								
									
										
										
										
											2022-01-16 01:10:43 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-06-25 03:05:30 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  `20xx` : **set channel mode.**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  `0` : square
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  `1` : noise
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  `2` : square and noise
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  `3` : envelope
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  `4` : envelope and square
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  `5` : envelope and noise
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  `6` : envelope and square and noise
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  `7` : nothing
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  `21xx` : **set noise frequency.**  range is `0`  to `1F` . 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  `22xy` : **set envelope mode.**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  `x`  sets the envelope shape:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    -  `0` : `\___`  decay
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    -  `4` : `/___`  attack once
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    -  `8` : `\\\\`  saw
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    -  `9` : `\___`  decay
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    -  `A` : `\/\/`  inverse obelisco
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    -  `B` : `\¯¯¯`  decay once
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    -  `C` : `////`  inverse saw
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    -  `D` : `/¯¯¯`  attack
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    -  `E` : `/\/\`  obelisco
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    -  `F` : `/___`  attack once
							 
						 
					
						
							
								
									
										
										
										
											2022-01-16 01:10:43 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  -  if `y`  is 1 then the envelope will affect this channel.
							 
						 
					
						
							
								
									
										
										
										
											2023-06-25 03:05:30 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  `23xx` : **set envelope period low byte.**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  `24xx` : **set envelope period high byte.**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  `25xx` : **slide envelope period up.**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  `26xx` : **slide envelope period down.**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  `29xy` : **enable auto-envelope mode.**  
						 
					
						
							
								
									
										
										
										
											2022-01-20 03:23:03 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  -  in this mode the envelope period is set to the channel's notes, multiplied by a fraction.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  `x`  is the numerator.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  `y`  is the denominator.
							 
						 
					
						
							
								
									
										
										
										
											2022-03-26 14:55:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  -  if `x`  or `y`  are 0 this will disable auto-envelope mode.
							 
						 
					
						
							
								
									
										
										
										
											2023-06-25 03:05:30 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  `2Exx` : **write to I/O port A.**  
						 
					
						
							
								
									
										
										
										
											2022-03-26 21:55:43 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  -  this changes the port's mode to "write". make sure you have connected something to it.
							 
						 
					
						
							
								
									
										
										
										
											2023-06-25 03:05:30 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  `2Fxx` : **write to I/O port B.**  
						 
					
						
							
								
									
										
										
										
											2022-10-16 01:53:05 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  -  this changes the port's mode to "write". make sure you have connected something to it.
							 
						 
					
						
							
								
									
										
										
										
											2023-07-09 08:42:48 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-10 02:44:29 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								## what is obelisco
  
						 
					
						
							
								
									
										
										
										
											2023-08-04 12:11:53 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-10 02:44:29 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								it's a name I use for a spiky waveform that starts low.
							 
						 
					
						
							
								
									
										
										
										
											2023-08-04 12:38:05 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-10 02:44:29 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								its origin is a wavetable that comes in DefleMask that happens to be called Obelisco.
							 
						 
					
						
							
								
									
										
										
										
											2023-08-04 12:11:53 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-09 08:42:48 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								## AY derivative modes
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-07-11 14:27:21 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								AY-3-810 was an absurdly popular chip that was blessed with many third-party clones, licensed or not.
							 
						 
					
						
							
								
									
										
										
										
											2023-07-09 08:42:48 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  the AY-3-8914 variant was used in Intellivision, which is pretty much an 8910 with 4 level envelope volume per channel and different register format. 
						 
					
						
							
								
									
										
										
										
											2023-07-14 05:16:36 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  Yamaha YM2149 was an AY-3-8910 clone released in 1983. it's almost identical to AY with minor differences being: higher hardware envelope step resolution (16 vs 32), half-clock mode when voltage level is low, much stronger DC offset and cleaner, but softer output. 
						 
					
						
							
								
									
										
										
										
											2023-07-09 08:42:48 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  Sunsoft 5B is YM2149 clone with half-clock mode forced on. 
						 
					
						
							
								
									
										
										
										
											2023-09-10 02:44:29 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-10 20:34:13 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								## info
  
						 
					
						
							
								
									
										
										
										
											2023-09-10 02:44:29 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								this chip uses the [AY-3-8910 ](../4-instrument/ay8910.md ) instrument editor.