Hardware - a new sound card for the Spectrum DMA Ultrosound Card.





               ░░░░░░░░     Witchcraft    ░░░░░
              ░▒▒▒▒▒▒▒▒░                 ░▒▒▒▒▒░░
             ░▒▓▓▓▓▓▓▓▓▒░   ░       ░   ░▒▓▓▓▓▓▒▒░
            ░▒▓████████▓▒░ ░▒░     ░▒░ ░▒▓█████▓▓▒░
             ░▒▓███▓▓███▓▒░▒▓▒░   ░▒▓▒░▒▓███▓▓███▓▒░
             ░▒▓███▓▒▓███▓▒▓█▓▒░ ░▒▓█▓▒▒▓███▓▒▓███▓▒░
             ░▒▓███▓▒▓███▓▒▓██▓▒░▒▓██▓▒▓███▓▒▒▓███▓▒░
            ░▒▓███▓▒▒▓███▓▒▓███▓▒▓███▓▒▓███▓▒▒▒▓███▓▒░
            ░▒▓███▓▒▒▓███▓▒▓████▓████▓▒▒▓███▓▓▓████▓▒░
            ░▒▓███▓▒▒▓███▓▒▓█████████▓▒▒▓██████▓███▓▒░
           ░▒▓███▓▒▒▓███▓▒▒▓███▓█▓███▓▒▒▓███▓▓▓▒▓███▓▒░
           ░▓▓███▓▓▓███▓▒░▒▓███▓▓▓███▓▒░▒▓███▓▒▒▓███▓▒░
          ░▒▓█████████▓▒░ ░▒▓▓▓▒▒▒▓▓▓▒░░▒▓███▓▒▒▓███▓▒░
           ░▒▓▓▓▓▓▓▓▓▓▒░   ░▒▒▒░░░▒▒▒░  ░▒▓▓▓▒░░▒▓▓▓▒░
            ░▒▒▒▒▒▒▒▒▒░     ░░░   ░░░    ░▒▒▒░  ░▒▒▒░
             ░░░░░░░░░                    ░░░    ░░░
                                  ┌────┐
                    ┌──┐         ┌┘▒▒▒▒│
                    │▒▒│ ┌─────┐ │▒▒┌──┘┌────┐
                   ┌┴──┤ │▒▒▒▒▒└┐│▒▒└┐ ┌┘▒▒▒▒└┐
                   │▒▒▒│ │▒▒┌┐▒▒││▒▒▒│ │▒▒┌┐▒▒│
                   └┐▒▒│ │▒▒││▒▒││▒▒┌┘ │▒▒││▒▒│
                   ┌┘▒▒└┐│▒▒││▒▒││▒▒│  │▒▒└┘▒▒│
                   │▒▒▒▒││▒▒││▒▒││▒▒│  └┐▒▒▒▒┌┘
                   └────┘└──┘└──┘└──┘   └────┘


                                   ~Звук-этоair vibrations,
                                    which tingle our ears and
                                    are perceived through them
                                    brain, of course, if he has one
                                                      you are there.~
 Hi, all!
 I was prompted to write this article by persistent rumors
(wandering) across the expanses of our vast homeland, in particular in
fido. So what is a DMA Ultrosound Card (yes, DMA, not Direct
Sound). Let's start with its sound capabilities:
    Number of channels: 4
    Depth, bits: 8
    Reg. level volume: 0-63(6 bit)
    Sampling frequency: up to 3.5 MHz (NOT KHz!)
    Maximum supported memory size: 16 MB.
         (why not a sound card for SPRINTER?!)
Because This does not threaten Specki, up to 1MB is used as standard.
    Maximum sample size: bChkb
   (because DMA sees pages not by 1bkB, like Z80, but by bBkB!)
    In general, the length of the sample is not limited, it is simply broken
into segments that are multiples of bChkB.
    Programming the card is VERY easy, all you need to do is throw it in
corresponding ports number of the bank in which the sample lies, its
bank address, length, volume, RATE parameter and allow
operation of the programmable channel. So that later they don’t say that we
such and such did not give examples of programming, we giveready
procedures. So, let's go:

              1. Questioning the availability of a card.
TEST xor a ;
        ld bc,#dc77 ; > DMA reset
        out (c),a ;/
        ld b,#0c ;take the 16-bit port (address register)
        ld de,#1234 ;throw
        out (c),e ;into it
        out (c),d ;any number
        in a,(c) ;read it from the port
        cp e
        jr nz,noDMA ; compare it with the thrown one
        in a,(c)
        cp d
        jr nz,noDMA ;if not, then DMA absent
present -------- ;otherwise, enjoy listening!
noDMA -------- ;everything is clear.
    Unlike the test on General Sound, the computer does not hang up.

                   2. Playing a sample

Mode equ #48 ;0th channel, memory reading, no autoload
                      ;ki, address increase, easy access via
                      ;request
Rate equ 16 ;sampling frequency in kHz
Bank equ 0 ;0th bank
Addresses equ 0 ;address in DMA format (i.e. if the sample is
                      ;on the 16th page of the computer, then for DMA it will be
                      ;address-#0000, at 17-#8000, etc. to #ffff)
Len equ #2000 ;sample length 8kB
Volume equ 63 ;volume 0-63
Mask equ 0 ;mask for channel

PLAYER ld bc,#8c77 ;setting general
        sub a ;mode(once
        out (c),a ;after reset).
        ld b,#fd ;set the modefirst
        ld a,#34 ;channel of the first timer (also one
        out (c),a ;times after reset).
        ld b,#3d ;set
        ld de,3500/Rate;frequency
        out (c),e ;samples
        out (c),d ;for sample.
        ld b,#bc ;mode is programmed
        ld a,Mode ;channel
        out (c),a ;DMA.
        ld a,Bank ;bank is being programmed
        ld b,#07 ;DMA for
        out (c),a ;of 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 ;sounds.
        ld a,Mask ;allow
        ld b,#ac ;work
        out (c),a ;of the first channel.
        ret
    Now you can do whatever you want, and sample will be
play in the background until all 8kB is played.  Can be looped
playback, you just need to set bit 4 in the Mode byte.
The parameters of this player specify that the sample is loaded by
address #c000 page #10.

    Most often questions (disputes) arise about the sampling rate
(RATE), I’ll explain in detail: ms 8237A (8237A-4, 8237A-5, analogue -
181OVTZ7) works, according to the scheme, with the maximum sampling frequency
3.SMHz(7MHz some modifications with TURBO), find this
application in the field of sound is very difficult, because maximum
sampling rate .wav 48KHz. Therefore, in all characteristics
kah associated with sound, it is written 48KHz. I hope with this issue
So we figured it out.
The operating principle is based on direct memory access (Direct Memory
Access - DMA). In addition to its audio capabilities, the device can be
use as an accelerator for operations with blocks, because 8237
has a command similar to ldir which is executed 2 times (4 times
times at 7MHz) faster than Z80.  Hence the following benefits:
    1) memory-to-memory block transfer;
    2) filling the address space with a byte.
    Because 8237 page size bChkb it becomes possible to re-
send data for Z80 operation without problems with pages.
Forwarding a block is possible if there are 2 free
channel. In addition to the 8237, the device uses two 8253 timers (8254,
analogue - 58Ovi5Z). Each timer has 3 channels, 6 in total, of
4 of them are assigned to audio channels. The remaining 2 channels are prog-
Rammer can use at his discretion to obtain
interruptions 30...150 Hz.
    If you change the sampling frequency, you can programmatically set
any computer speed (50%...100% speed), i.e.  can be obtained
any INT. I saw the ADRINALIZ demo at a speed of 60% of the original
minal - cool!!!
    Playing .mod is in progressby interrupts, real time
The DMA Sound Card takes 1000 clock cycles per INT (9000 at peak).
When using the device as an accelerator, you can write
Scroll the entire screen for INT +25000 processor cycles freely, and
with turbo 8237 scroll+ multicolor of the entire screen + 10000 clock cycles
freely.  Another feature of the DMA Ultrosound Card is
playback from .wav screw in real time with CD quality,
stereo 44kHz, unlimited length.  Well, listen. mod and
simultaneously working with VG93 without any problems.
    Somehow the thought flashed in the echo that ~...about the Count Sopr the author, not
knows...~, this is not so, who else but the author should know about it.
    Because   .wav playback is carried out by interruptions and there is
the ability to receive interrupts at different frequencies, then you can
play sound in a format similar to MPEG, thanks to the free
the guy has enough time to unpack (theoretical developments
are already underway).
    Now about the issue with the card slowing down the processor: if there was
.wav with a sampling frequency of 1.7SMHz then it would be played when playing
slowed down by 50%. Those who are at least a little familiar with arithmetic
Can you estimate how long it will take the PC to play .wav?
48kHz (approximately 3-5%). The idea of ​​increasing the clock speed of DMA flashed
up to 12-1HMGts.   Nothing good will come of it.   In the area
there will be no gain in sound playback, because sample withsampling frequency 140OOkHz does not exist, and as for
used as an accelerator, then the block forwarding operation will be
take 1-2 measures.  But there is always a ~but~ - will the memory hold up?
5b5ru7 will definitely not survive, but transferring all the memory to the sims is
and a lot of fuss and price. Will there be any real gain from this?
no one knows. A 7 MHz clock is quite sufficient and the sheep are safe and
the wolves are full. The only improvement that can be welcomed is
connection of a ~slave~ DDP controller 8237, in order to increase
reducing the number of channels to 7 (4 audio and 3 for peripheral service
ry devices as on PC).
    As for general emulation, sound drive, ay - this is
Possible both in hardware and software. Someone suggested
add a z80 or similar processor to the card, your memory, etc.
I’ll answer right away: nothing good will come of it, we’ll have some
symbiosis of general sound with direct access to your own memory. to me
it seems like it's pointless (has anyone seen Sound on pisyuk
Blaster + Pentium III?), because the workload of the processor will be no more
10-15%.  No talk about cheapness in relation to GS after this
modifications cannot take place, because the processor will pull both the ROM and
additional logic. The biggest advantage of this card is independence
from the ROM, unlike the general sound, I have no doubt that there are glitches in
General's ROM will last until the next millennium.
    Now about the assemblymaps: the diagram is really big, but
there is nothing difficult about repetition.   Assembly is carried out
gradually.  There is a method for assembling and debugging the card, where
it is described in great detail how, what and where to solder, where to poke and on
what to press.   All kinds of tests are given.  For debugging
All you need is a logic probe on one small circuit (circuit
which is given there). It is quite possible to assemble a map in 3-4
weeks.
    Alexander Kulik once wrote in response to Tim Kelly, saying:~...
I have seen such authors. They sent all sorts of tapes and said that
it was their “child that created”, but in reality...~. I didn't immediately either
I believed that this is how the DMA Ultrasound Card plays until I assembled it
and didn’t check it in action. The sound quality on the DMA Ultrasound Card is not
inferior to AWEZ2 (don’t believe me? You can ask KGS INC and Afendi-
kova).
    A certain Dmitry Moskaluk wrote: ~...why is Spectrum good?
sound card, if its price is three times (another stone aside -
well GS-approx. author) of the computer itself...~.About the cost: it cost me
There was a card for 15 bucks(!). MS 8237 costs 1.50 bucks, MS 8253
1 buck, 2 bucks for 8 pieces 572pa1 well, logic for the rest, and
polygon.
    By the way, as far as I know, there are two cards: one from
Alexey Inozemtsev, second from HARD from WITCHCRAFT (i.e. from me).
Indeed, there is a software base for this card - players
makers .mod, .wav, editorDigital Studio, and about twenty
fully voiced toys. The .mod editor is currently being written and
other software.
    Because the DMA Ultrasound Card is not a commercial development (unlike
from GS), then any information is provided to everyone freely (free-
freely and freely).
    You can contact us or the author via fido through Kislyak
Pavel Mikhailovich/PAWEL from Real Software (2:454.11/25).
    EVERYONE WHO IS INTERESTED IN INFORMATION ON THIS CARD WANTS IT
TO COLLECT OR FOR OTHER QUESTIONS PLEASE WRITE TO:


343581, Ukraine, Donetsk region,
        Dzerzhinsk, Kirovo village,
        st. Youth 16/48
        Mikhalchenkov Dmitry.


We express our deep gratitude to Pawel for providing the mail.

                              Sincerely, Mikhalchenkov Dmitry &
                                             Inozemtsev Alexey.



Share your thoughts about the article