Echo #06
30 июня 2000

Iron - Programming a sound card for the ZX Spectrum: Ultra Sound Card (DMA).

<b>Iron</b> - Programming a sound card for the ZX Spectrum: Ultra Sound Card (DMA).
                            Witchcraft



              Ultra Sound Card


                                   ~ The sound is a vibration 
of air, 

                                    who sway our ears and

                                    through their perceived

                                    brain, of course, if he's

                                                      you have. 
~ 

                             Hi, all!

    This article prompted me to write the rumors persisted 
walking (Roaming), the expanses of our neobyatnoy country, 
particularly in fido. So what is DMA Ultrosound Card (yes, DMA, 
and not Direct Sound). Let's start with its sonic possibilities:



    Number of channels: 4

    Bits, bits: 8

    Level Reg. Volume: 0-63 (6 bit)

    Sampling rate: up to 3.5 MNz (KNz NOT!)

    The maximum size of serviced memory: 16 MB.

         (What is not a sound card to SPRINTER'u?)

    Because Speccy is not threatened, the standard used to 1MB.

    Maximum sample size: 64kb

    (See page because the DMA not 16K as Z80, and for 64k!)


    In general, the length of the sample is not restricted, it 
just breaks on the segments are multiples of 64KB.


    The program card is very easy, all you need is to throw in
appropriate port number of the bank, which is a sample, it
address in the bank, length, volume, and allow the option RATE
work programmed channel. So you do not say that we
such-syakie not give examples of programming, we provide 
ready-made protsedurki. So, drove:



                   1. Survey of the availability of maps.

TEST xor a; \

        ld bc, # dc77;> Reset DMA

        out (c), a; /

        ld b, # 0c; take a 16-bit port (address register)

        ld de, # 1234; throw

        out (c), e; it

        out (c), d; any number of

        in a, (c); Read it from the port

        cp e

        jr nz, noDMA; compare it with the throws

        in a, (c)

        cp d

        jr nz, noDMA; if it does not, then the DMA absent
present --------; otherwise, you will enjoy listening!
noDMA --------; all clear.

    Unlike the test for General Sound, PC does not hang up.


                   2. Playing sample

Mode equ # 48; 0-th channel, reading the memory, without 
avtozagruz                       , Ki, an increase in the 
address, easy access to 

                      ; Request
Rate equ 16; sampling frequency in kHz
Bank equ 0; 0-th bank
Adres equ 0; address in the format of DMA (ie, if the sample is

                      And in the 16 th page of companies, then 
the DMA will 

                      , Address-# 0000 17 - # 8000, etc. to # 
ffff) Len equ # 2000; length sample 8kB

Volume equ 63; volume 0-63
Mask equ 0; mask for the channel

PLAYER ld bc, # 8c77; setting total

        sub a; mode (once

        out (c), a; after reset).

        ld b, # fd; set the mode of the first

        ld a, # 34, the channel first timer (also one

        out (c), a; time after reset).

        ld b, # 3d; ask

        ld de, 3500/Rate; frequency

        out (c), e; sample

        out (c), d; for the sample.

        ld b, # bc; program modes

        ld a, Mode; channel

        out (c), a; DMA.

        ld a, Bank; program, the bank

        ld b, # 07; DMA for

        out (c), a; the first channel.

        ld hl, Adres; set

        ld b, # 0c; initial

        out (c), l; address

        out (c), h; sample.

        ld hl, Len; length

        ld b, # 1c

        out (c), l; sample.

        out (c), h

        ld a, Volume; set

        ld b, # 3f; volume

        out (c), a; sound.

        ld a, Mask; allow

        ld b, # ac; work

        out (c), a; the first channel.

        ret


    Now you can do all you want, and will sample
play in the background until you play all 8kB. You can loop
playback, you need only install the 4 bits in a byte Mode.
Parameters of the player determines that a sample is loaded on
at # c000 page # 10.


    Most often, questions arise (spores) on the sampling 
frequency (RATE), everlasting detail: m / s 8237A (8237A-4, 
8237A-5, the analog - 1810VT37) works under the scheme, with a 
maximum sampling rate 3.5MHz (7MHz some modifications for 
TURBO), to find a application in the field of sound very 
difficult, because maximum sampling frequency. wav 48KHz. 
Therefore, in all characteristics associated with sound, 
written 48KHz. I hope this issue sorted out. PRINCIPLE work 
based on the direct memory access (Direct Memory Access - DMA). 
In addition to the audio capabilities of the device can be used 
as an accelerator for block operations, because 8237 has a 
similar command ldir that runs at 2 times (at 4 times at 7MHz) 
faster than Z80. Hence, the following benefits: 

    1) Shipment block memory-memory;

    2) completion of the address space byte.

    Because in 8237 size 64kb becomes possible to transmit data 
to work with the Z80 without zamorochek pages. Sending unit is 
available in the event that there are 2 free channel. In 
addition to the device 8237 yuzayutsya two timers 8253 (8254, 
analog - 580vi53). Each timer is on Channel 3, with 6 of which 
4 are reserved for audio channels. The remaining 2 channel 
programmer can use at their discretion, to obtain Interrupt 30 
... 150 Hz. 

    If you change the sampling rate, you can set the software
any rate companies (50% ... 100% speed), ie can be obtained
Any INT. I've seen the DeMouy ADRINALIZ a rate of 60% of the 
face - cool! 

    Playing. Mod is an interrupt, real-time
in percent DMA Sound Card takes 1000 cycles for INT (9000 peak).
When used as an accelerator, we can write a scroll of ekrana 
INT +25000 cycles per cent free, and at 8237 Turbe scroll + 
multicolor whole screen + 10000 cycles percent free. Another 
possibility DMA Ultrosound Card - playing with a screw. wav in 
real time with CD-quality, Stereo 44kNz not limited in length. 
Well, listen. mod and work simultaneously with VG93 without any 
problems. 

    Once in the echo of a thought flashed that ~ ... about 
Count RBCU author, not ...~, knows it's not so much who as the 
author does not know about it. 

    Because play. wav is an interrupt is
opportunity to receive an interrupt with a different frequency, 
then we can play sound in a format similar MPEG'u, the benefit 
of free percent of the time to unpack enough (theoretical 
developments already underway).


    Now about the issue with the inhibition percent of the map: 
if there was a . Wav with sampling 1.75MGts he would when 
playing inhibited by 50% percent. Those who are even slightly 
familiar with the arithmetic can estimate how long it will take 
a cent playing. wav 48 kHz (about 3-5%). Flashed idea of 
​​increasing the clock at the DMA 12-14MGts. Nothing good will 
come out. In the area the sound is no payoff will not be 
because samples with sampling 14000kGts does not exist, and as

use as an accelerator, then the operation will block transfer
takes 1-2 cycles. But there are always ~ but ~ - stand a memory?
565ru7 not stand unequivocally, and to transfer all the memory 
on the Sims - and too much fuss and cost. Will there be a real 
benefit from this - who does not know. Quite sufficient 7MHz 
clock and the sheep are safe and Wolves hungry. The only 
refinement that can be privetstvovatpodklyuchenie ~ ~ Slave DMA 
controller 8237, to increase the number of channels up to 7 (4 
audio and 3 for maintenance of peripheral devices as PCs). 

    As for emulation general'a, sound drive, ay - it
perhaps both hardware and software. Someone suggest to
Add to map percent z80 or similar, my memory, etc.
I will answer at once: nothing good comes out, we have a
symbiosis general sound, with direct access to their same 
memory. I it seems that it is pointless (anyone seen on pisyuke 
Sound Blaster + Pentium III?), Because workload per cent will 
be no more 10-15%. There is no question of cheapness in 
relation to the GS, after such improvements can not go, because 
CPU will pull behind them and ROM, and additional logic. The 
biggest plus of this card-independence from the ROM, in 
contrast to the general sound, I have no doubt that the 
glitches in ROM general'a enough until the next millennium.


    Now the assembly of maps: the scheme is really big, but
nothing complicated in the repetition not. Assembly is
gradually. There is a method of assembling and debugging of the 
map, where is explained in detail how, what and where to 
solder, to poke and that push. Are given all sorts of tests. 
For debugging requires only a logical probe on one melkosheme 
(Scheme which is given there). It is quite possible to build 
the map for 3-4 weeks.


    Once Alexander Kulik wrote in response Tim'u Kelly, saying 
:~... I saw these authors. Send any kassetki and said that

it is their "offspring created", but actually ...~. I also did 
not immediately believed that both plays DMA Ultrasound Card, 
has not yet brought her and have not checked in the case. The 
sound quality on the DMA Ultrasound Card is not inferior AWE32 
(do not believe it? can ask KGS INC and Afendikova). 

    Certain Dmitry Moskaluk said: ~ ... what for good on the 
Spectrum sound card, if its price is three times (one more 
stone in the direction of GS-ca.'s) of the computer ...~. The 
cost: cost me 15 bucks a card (!). M / s 8237 is - 1.50 bucks, 
m / s 8253 and 1 buck, 2 bucks for 8 pieces 572pa1 well and 
logic on the other, and polygon.


    By the way, I know there are two maps: one for
Inozemtseva Alexis, the second in HARD from WITCHCRAFT (ie me).
Indeed there is a database software for this card - players. 
Mod,. Wav, editor of Digital Studio, and about twenty fully 
voiced toys. Now writes the editor. Mod and other software.


    T.k.DMA Ultrasound Card is not a commercial development (in 
contrast from GS), then any information available to all free 
(and unselfishly donated). 

    Contact with us or with the author Po fido possible through 
Pawel Kislyak 2:454 / 11.25, or by e-mail Pawel@nm.ru


    Anyone interested in information on this MAP, wants to
ASSEMBLE or other matters please write to:

343581, Ukraine, Donetsk region,

        Dzerzhinsk, pos.Kirovo,

        st. Youth 16/48

        Mihalchenkovu Dimitri.

Many thanks for giving Pawel'u mail


                              Sincerely Mikhalchenkov Dmitry '

                                               Foreigners Alex







Other articles:

Entry - a one-year break in production of newspapers.

Review Warez'a - Extreme's Tracker v2.10, Universal Player v1.2, HYPERION v1.0, Z-Player v3.0 for GS, Quick Screen Viewer, BestView v2.9, Small Hrust Unpacker v2.0, Fm.COP v.3.1, All Disks Copier, Maxs Copier, HD-KIT, Real Commander v1.9, Direct Commander v3.04, E-mage WorkStation v1.0, System test v4.30 , Lara Croft Mail Editor, S-Terminal, Storm Turbo Assembler, Sprite Editor, Text Print.

Game Review - The Cezar, the 8 th Division, Clickmania, 4x4 Puzzle, Xixit, Tower Pod.

Iron - Programming a sound card for the ZX Spectrum: Ultra Sound Card (DMA).

Iron - The scheme of the analog part of the sound card DMA Ultrasound Card.

Iron - The method debug soundcard DMA Ultrasound Card.

Iron - direct memory access controller sound card DMA Ultrasound Card.

Iron - Further development of the controller for the drive to connect 4 drives.

Programming - The structure and organization of the ramdisk in Real commander,.

Letters - a letter from an ordinary user ZX Spectrum.

Authors - The authors gyzety.


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

Similar articles:
List BBS - The list of stations BBS.
Entry - the contents of rooms.
Demoscene - Chaosite - technical data on Haosaytu.
ZXNet - O global processing of telephone and address directory in ZXNet.

В этот день...   21 November