From: xlp <xlp@emtel.net.co>
To: philippe <pvir@freesurf.fr>
Cc: Linux-assembly@vger.kernel.org
Subject: Re: sound
Date: Mon, 24 Jun 2002 20:02:12 -0500 [thread overview]
Message-ID: <20020624200212.A23265@nietzsche> (raw)
In-Reply-To: <3D17944F.E391DBF4@freesurf.fr>; from pvir@freesurf.fr on Mon, Jun 24, 2002 at 11:51:11PM +0200
On Mon, Jun 24, 2002 at 11:51:11PM +0200, philippe wrote:
> hi
> I am new on this list and my name is Philippe.
> I used to make some programs on windows but wanted to trye on linux.
> I have a problem with a small prog i had done for windows witch play
> sounds on the fm chip of a sound card.
> But when i translate it on linux, it doesn't work any more.
> It compile and link correctly(nasm), but on execution it writes:
> segmentation fault!
> I post you the sources at the end of this message.
>
> I had an other question:
> Where can I find bible of all the interruptions and what is the name of
> it?
>
>
> Philippe
>
>
>
>
> ;************************************************
> ;* Ecriture sur SoundBlaster *
> ;*1-ecrire dans le adresse port0x388 *
> ;*2-attendre 12 cycles *
> ;*3-ecrire dans le data port0x389 *
> ;*4-attendre 84 cycles *
>
> ;compiler:
> ; nasm -f elf SBB.asm
> ; ld -s -o SBB SBB.o
>
>
> section .text ;section declaration
>
> ;we must export the entry point to the ELF
> linker or
> global _start ;loader. They conventionally recognize _start as
> their
> ;entry point. Use ld -e foo to override the
> default.
>
> _start:
>
>
> ;mettre tous les registres SB a zero
> mov edx,0x388 ;port adresse
> mov eax,0x20 ;registre sb 20
> out dx,al
> mov edx,0x389 ;data port
> mov al,7
> out dx,al
>
> mov edx,0x388 ;port adresse
> mov al,0x40 ;registre sb 40
> out dx,al
> ;call WaitR
> mov edx,0x389 ;data port
> mov al,0x10
> out dx,al
> ;call WaitR
>
> mov edx,0x388 ;port adresse
> mov al,0x60 ;registre sb 20
> out dx,al
> ;call WaitR
> mov edx,0x389 ;data port
> mov eax,0xf0
> out dx,al
> ;call WaitR
>
> mov edx,0x388 ;port adresse
> mov al,0x80 ;registre sb 20
> out dx,al
> mov edx,0x389 ;data port
> mov al,70
> out dx,al
>
> mov edx,0x388 ;port adresse
> mov al,0x23 ;registre sb 20
> out dx,al
> ;call WaitR
> mov edx,0x389 ;data port
> mov eax,1
> out dx,al
> ;call WaitR
>
> mov edx,0x388 ;port adresse
> mov eax,0x43 ;registre sb 20
> out dx,al
> ;call WaitR
> mov edx,0x389 ;data port
> mov eax,00
> out dx,al
> ;call WaitR
>
> mov edx,0x388 ;port adresse
> mov eax,0x63 ;registre sb 20
> out dx,al
> ;call WaitR
> mov edx,0x389 ;data port
> mov eax,0xf0
> out dx,al
> ;call WaitR
>
> mov edx,0x388 ;port adresse
> mov eax,0x83 ;registre sb 20
> out dx,al
> ;call WaitR
> mov edx,0x389 ;data port
> mov eax,0x7f
> out dx,al
> dest3:
> mov cx,0xff
> dest2:
>
> mov edx,0x388 ;port adresse
> mov al,0xa0 ;frequency
> out dx,al
> mov edx,0x389 ;data port
> mov al,cl
> xor al,dl
> out dx,al
> ;**send the sound now gogogogo go
> mov edx,0x388 ;port adresse
> mov eax,0xb0 ;registre sb 20
> out dx,al
> mov edx,0x389 ;data port
> mov eax,0x31
> out dx,al
> call Waitc
> call Waitc
> call Waitc
> call Waitc
>
> loop dest2
> ;*******************************************************
>
> mov edx,0x388 ;port adresse
> mov eax,0xb0 ;registre sb 20
> out dx,al
> ;CHK: ;attend qu'on appuye sur la touche espace*****
>
> ;mov ah,8
> ;mov dl,0xFF
> ;int 0x21
> ;cmp al,' ' ;espace
> ;je SUITE
> ;jmp CHK
> ;SUITE:
> mov edx,0x389 ;data port
> mov eax,0
> out dx,al
>
> ;mov ax,0x4c
> ;int 0x21
>
> mov ebx,0 ;first syscall argument: exit code
> mov eax,1 ;system call number (sys_exit)
> int 0x80 ;call kerne
>
>
>
> Waitc:
> push ecx
> mov ecx,0x8fff
> W1:
> nop
> loop W1
> pop ecx
> ret
> Waitb:
> push ecx
> mov ecx,0x1fff
> W2:
> nop
> loop W2
> pop ecx
> ret
> -
> To unsubscribe from this list: send the line "unsubscribe linux-assembly" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
next prev parent reply other threads:[~2002-06-25 1:02 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-06-24 21:51 sound philippe
2002-06-25 1:02 ` xlp [this message]
2002-06-25 8:06 ` sound Rudolf Marek
2002-06-25 21:28 ` sound h-peter recktenwald
-- strict thread matches above, loose matches on Subject: below --
2020-12-30 15:26 sound Christian Labisch
2020-12-30 15:36 ` sound Greg KH
2020-12-30 15:45 ` sound Christian Labisch
2020-12-30 18:10 ` sound Christian Labisch
2020-12-31 8:33 ` sound Greg Kroah-Hartman
2007-02-08 20:24 Sound John Dey
[not found] ` <20070208223023.GA18278@rfa.org>
2007-02-09 1:29 ` Sound John Dey
2007-02-09 2:26 ` Sound Federico Grau
1999-08-02 15:44 Sound Joe Julicher
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20020624200212.A23265@nietzsche \
--to=xlp@emtel.net.co \
--cc=Linux-assembly@vger.kernel.org \
--cc=pvir@freesurf.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.