Linux assembly list
 help / color / mirror / Atom feed
From: philippe <pvir@freesurf.fr>
To: Linux-assembly@vger.kernel.org
Subject: sound
Date: Mon, 24 Jun 2002 23:51:11 +0200	[thread overview]
Message-ID: <3D17944F.E391DBF4@freesurf.fr> (raw)

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

             reply	other threads:[~2002-06-24 21:51 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-06-24 21:51 philippe [this message]
2002-06-25  1:02 ` sound xlp
2002-06-25  8:06 ` sound Rudolf Marek
2002-06-25 21:28 ` sound h-peter recktenwald

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=3D17944F.E391DBF4@freesurf.fr \
    --to=pvir@freesurf.fr \
    --cc=Linux-assembly@vger.kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox