░░░░░░░░ 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