3Bit #01
03 января 2005

Desktop - General Sound AY Emulator v1.0

<b>Desktop</b> - General Sound AY Emulator v1.0
 General Sound AY Emulator v1.0

(C) Dr.Lion / RSM


  Presented below is the copyright of software product domain! 
When using it, refer to the author! 

  This software product is an emulator m / AY-3-8910 by
soundcard General Sound 1.04 (GS). ROM version of GS has
value, since it is only used when loading the internal
Code Emulator AY. In what emulator works directly with the 
hardware "GS. 

  Because with the fact that the performance characteristics of 
GS is modest for full-function emulation AY, it was decided to 
implement a minimum capacity AY, allows you to play on an 
emulator by any standard music player, pre peredelanym under 
the exchange of data with the emulator AY. 

  Below shows the features of the emulator AY:

1.Obmen data

  The format of data transmitted to the emulator is in the 
format AY, 

  t.e.suschestvuet port of registry (# BB), which is recorded 
but   measures selected register and a data port (# B3), which 
is written   are described by data transmitted to the register. 
But unlike the real   Nogo AY, emulator can not be instantly 
sent to take 

  his data, since these data have to read almost half
  completely loaded generation audio processor GS. Therefore, 
for   pis data in the register of the emulator is as follows:



            ....

            LD A, register; register number for writing

            OUT (# BB), A

            LD A, data; data to be written

            OUT (# B3), A

            CALL WaitDat

            ....


    WaitDat IN A, (# BB); waiting for the emulator to read
            RLCA; Slany his data

            JR C, WaitDat

            RET


  Just the emulator does not allow reading from his Regis
  ters. The implementation of such a possibility would not be 
justified inhibited 

  the overall speed of data exchange between the ZX and the 
emulator AY. 

2.Chastota sampling

  It is 12500Hz, and allows you to play tones

  frequencies in the range 6076,39-26,71 Hz, which corresponds 
to the coefficient   coefficient of division from 18 to 4095. 
6076,39 Hz frequencies above transformation   zovyvayutsya in 
the frequency of 6076,39 Hz. The range of noise frequencies 
goraz   to have, because Decimal Coefficient of division for 
the frequency noise 

  is 5 bits (but it's standard AY).

3.Razryadnost and assignment of bits of registers

  It remained unchanged except for the registers R12 and

  R13. Register R12 may contain numbers from 0 to 3. If the 
number of 

  more than 3, it is converted to 3. Thus chestota ogi
  envelope can not be below 6,68 Hz. On the other hand, the 
coefficient   cient division for the frequency of the envelope 
can not be less than 5. R13 

  can take the values ​​8, A, C, E, or any other value,

  which after conversion will still receive one of four

  specified above.

4.Generatory tones, noise, the envelope

  They are built on a 24-bit counters, scaling-share
  fields in an exemplary way:


             .... ; Tone channel A

    A_NumA LD HL, 0; lower 16 bits of accumulation

    A_SetA LD DE, 0; lower 16 bits of the increment

             ADD HL, DE

             LD (A_NumA +1), HL; accumulation

    A_NumB LD A, 0; older 8-bit accumulation

    A_SetB ADC A, 0; older 8-bit increments

             LD (A_NumB +1), A; accumulation

             JR NC, B_NumA

             LD A, C; change of half-wave

             XOR% 00000001

             LD C, A

    B_NumB .... ; Tone channel B


  Masshtaboruyuschy ratio is calculated as follows:


             K = (NumA +65536 * NumB) / (65536 * 256)


             K = 0-0,99999994 accuracy up to 0,01 Hz


             Frq = Fgsi * K where Fgsi = 12500Hz


  Noise generator is strongly simplified and very far from the 
real circuit 

  generetora noise AY. The situation is further aggravated by 
low frequency   quency sampling, which allows the use of 
coefficients   The coefficients for the frequency dividing the 
noise only in the range of 18 to 31. 

  The implementation of the random bit sequence for n
  oscillator noise and the mixer:


             ....

             LD (N_NumB +1), A; accumulation

             JR NC, Mixer

             LD A, R; calculation of pseudo-random

             RRCA; bit

             LD R, A

             JR NC, Mixer

             LD A, C; change of half-wave for

             XOR% 00111000; all channels

             LD C, A

    Mixer LD A, C; half-mask bits

    MixVal OR 0; bits mixer

             LD L, A; bit = 0 - active signal

             ....

5.Dopolnitelnye opportunities

  In the emulator AY implemented two additional registers R14, 
R15 

  perform some additional functions. Register R14 limit
  dnaznachen to control the overall loudness of the sound 
emulator and 

  can take values ​​from 0 (minimum) to 15 (maximum). No results
  recommends to set values ​​greater than 15. Code volume 
transformation   razuetsya on exponential scale in the internal 
volume of the spacecraft   signals GS. Through R15 can specify 
one of the 4 laws according to which   ring calculated output 
values ​​DAC'ov channels GS. 

6.DAC GS and channels AY

  As is known, GS has four 8-bit channel A, B, C, D. For

  Each channel can be set "hardware" volume 0-63. Ka
  Nala A and B are merged into the left channel, and C and D - 
to the right. Corresponding   correspondence AY channels and 
channels GS is in the following table: 



          AY Canal Canal Canal GS GS Volume


            A A 100% (63 R14 = 15)

            B B, C 50% (31 R14 = 15)

            C D 100% (63 R14 = 15)



  Register R15 allows you to select a scale of one volume of a
  laws :0-linear, 1-square, 2-exponential, hyperbolic 3-
  crystal. It should be noted that the exponential law is
  Xia "native" to AY, so it is active by default. Square

  Act was introduced as an analogue of the exponential law, but 
it has 

  higher and the saturation of the output volume. Other Laws

  are rather experimental.


  The emulator is available as source code and installation
program. Source can be inserted into your program. The 
installation program loads in the GS program and restarts the 
emulator AY Speccy. She needs to work some have already adapted 
to the emulator software, such as PT3 +69 by Alone Coder. 

  AY emulator can find very different to demonstrate how. For 
example, the image do such a device, like Turbo Sound (two AY). 
Already trying write under it 6-channel music editor. But, say, 
emulators that support this device is less than emulators, 
having in its arsenal, General Sound. Therefore, new program 
under the 6-channel FM-sound can be adapted to the usual AY AY 
and my emulator on GS. Generally, yuzayte as you allow your 
imagination! 

   Finally give an example of adaptation under the PT3 +69 
emulator AY: 

- Sequence alterations PRO TRACKER 3.69 under GSAYemul -1. In 
pt5_368.H find OUTAY procedure and replace it with: 


    OUTAY LD HL, frqA; GSAYemul!

             LD BC, # 0D00; data transmission in the emulator

    OUTAY0 LD A, C

             OUT (# BB), A

             LD A, (HL)

             INC HL

             OUT (# B3), A

             CALL OUTAY1

             INC C

             DJNZ OUTAY0

             LD A, C

             OUT (# BB), A

             LD A, (HL)

             CP B

             RET Z

             OUT (# B3), A

             LD (HL), 0

             RET

    OUTAY1 IN A, (# BB)

             RLCA

             JR C, OUTAY1

             RET

2. In pt3D.H find IVOLQ procedure and replace it with:


    IVOLQ LD (VOL), A; GSAYemul!

             PUSH AF; global volume

             LD DE, # 41A6; Editor

             CALL PRF8

             LD A, # 10

             OUT (# BB), A

             POP AF

             OUT (# B3), A

             RET

3. In PTconst.H find GETRG procedure and replace it with:


    GETRG LD (ZZC), A; GSAYemul!

             PUSH DE; analyzer channels

             LD DE, frqA

             PUSH HL

             LD H, 0

             ADD HL, DE

             LD A, (HL)

             POP HL

             LD L, H

             LD H, 0

             ADD HL, DE

             LD E, (HL)

             INC HL

             LD D, (HL)

             LD L, E

             CPL

             AND # 0F

             ADD A, 'SIN

             LD H, A

             LD A, D

             BIT 3, A

             CPL

             JR Z, $ +3

             XOR A

             AND 7

             POP DE

             RET

4. In PT369.H find label tABOUT and replace DB named Reda
   Ktorov the new:


   DB "- Pro Tracker v3 +69 for GSAYemul v1.0 by Dr.Lion / RSM 
-" 

5. Run the garbage mkpt3.B and peremenovyvaem the file in

   something like PT3 +69 gs.B

                                                       3.10.2004





Other articles:

From the Editor - the new Ukrainian electronic journal called "3BiT".

From the Editor - eve: correspondence with the authors of the magazine correspondents.

From the Editor - Credits: The authors of the magazine.

Speccy news - news: Scl published newspaper Cossackos, the results of the Voronezh Festival KidSoft'2004, Sergey Bulba archive AY music, Alone Coder released Info Guide # 6 ...

Programming - a new fast and short PT3.x Player of the RSM.

Programming - Design source: the basic requirements for listing of the program focused on the general public.

Programming - the procedure to print the text fonts, 8x8, 6x8, 5x8, 4x8 pixels.

Programming - an overview of features and company models ottechestvennogo Spectrum of Rob F.

Programming - a collection of codes: Draw a window frame in the color processing of disk errors TR-DOS, a universal procedure Scroll'a screen.

Programming - Game Making: Mad Killer shares his experience creating games for the ZX Spectrum.

Programming - Non-standard use of the General Sound: Sound emulation coprocessor AY-3-8910.

Hacker Zone - "phreaking": Freestuff calls to payphones. Free calls to anywhere world.

Outlook - Dune for the Spectrum of Sosyura Igor.

Have an opinion - Mad Killer accuses of corruption Inforkom PC.

Desktop - JPEG / GIF laboratory 1.1: a program for viewing images in a format JPEG / GIF.

Desktop - General Sound AY Emulator v1.0

Desktop - an overview of tools to search for music files, Pro Tracker 3.X Mod Finder v1.2

Gambling - The archivist: a review of not very fresh but I wonder adventyury "Last adventure. "

Gambling - Wolf 2004: The world saw something that worked Alone Coder entire 8-NIL years!

Zhelezyachki - Something about the CMOS-clock: a modified scheme of Alone Coder'a.

Zhelezyachki - an overview of some modern controllers for use with external storage media for the ZX-Spectrum.

Veselukha - Life is simple sysadmin and sad and dreary if there no beer: sysadmin is dedicated.

Veselukha - a humorous story: I am a machine.

Veselukha - Computer jokes.

Another World - Radeon X700: an inexpensive base for gaming cards.

Miscellaneous - report of Rob F. with the Ukrainian hangouts SpeXtream'2004.

Miscellaneous - age: what do you want the software, especially games and how to make them well.

Miscellaneous - Competition from GROUPS P7S for Patriots Spectrum!

Miscellaneous - An Interview with DESALEX'om / XPJ.

Miscellaneous - an interview with the author of one of the most anticipated game projects, games, Dune: The Battle for Arakkis.

Miscellaneous - an interview with the author of acclaimed demos under the VIC-20 - Viznut / PWP.

Miscellaneous - an interview with the renowned British spektrumistom Gasman / Raww arse.

Miscellaneous - An Interview with Random'om taken on Construction Chaos 2004.

Miscellaneous - Advertisement - motor trade and not only.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Similar articles:
Tape and Disk - Adapting programs to the system TR-DOS (Part 3).
Iron - Finalization Pentagon'a to work with disks of high density HD.
Exchange of experience - assembler programming: command emulation Clear, Cls, Pause, Plot, Draw ...
Komanata torture - an interview with a member of a new group of Izhevsk TRG - SiSoft'a.

В этот день...   28 April