what i code needs for do beep(speaker) with debug?

Started by fernando, May 31, 2005, 03:40:55 PM

Previous topic - Next topic

fernando

i'm sorry english i am speak spanish.

>debug
-a 100
####:0100 ?

and url basic examples about using debug, not tutorial

thanks you

MichaelW

For a standard BIOS beep, you can use the BIOS Write Teletype function (0Eh) to write the BEL character (ASCII code 7).

A
MOV AX,0E07
INT 10
INT 20


I don't have a URL, but here is one example:

n HELLO.DBS
n ---------
n This is a DEBUG script that will generate HELLO.COM.
n
n Usage: DEBUG < HELLO.DBS > HELLO.LST
n
n To determine the offset addresses, guess at an initial
n value, do a trial assembly, and read the proper address
n from the listing file.
n
n hello.com
a
mov   ah,13   ; write String function
mov   al,3    ; bit0 = update cursor after writing
              ; bit1 = string alternates chars and attributes
mov   bx,0    ; display page number
mov   cx,0b   ; number of chars
mov   dx,822  ; dh = row, dl = col
mov   bp,118  ; es:bp -> string to write
int   10      ; call bios
mov   ah,0    ; get key function (will wait)
int   16      ; call bios
int   20      ; terminate
db  'H' 2 'e' 3 'l' 4 'l' 5 'o' 6 ' ' 0
db  'W' 6 'o' 5 'r' 4 'l' 3 'd' 2
; The following blank line is necessary to exit assembly mode.

rcx
2e
w
q



@echo off
rem Batch file to assemble HELLO.DBS and generate listing file.
echo on

DEBUG < HELLO.DBS > HELLO.LST


The generated listing file:

-n HELLO.DBS

-n ---------

-n This is a DEBUG script that will generate HELLO.COM.

-n

-n Usage: DEBUG < HELLO.DBS > HELLO.LST

-n

-n To determine the offset addresses, guess at an initial

-n value, do a trial assembly, and read the proper address

-n from the listing file.

-n

-n hello.com

-a

0AFB:0100 mov   ah,13   ; write String function

0AFB:0102 mov   al,3    ; bit0 = update cursor after writing

0AFB:0104               ; bit1 = string alternates chars and attributes

0AFB:0104 mov   bx,0    ; display page number

0AFB:0107 mov   cx,0b   ; number of chars

0AFB:010A mov   dx,822  ; dh = row, dl = col

0AFB:010D mov   bp,118  ; es:bp -> string to write

0AFB:0110 int   10      ; call bios

0AFB:0112 mov   ah,0    ; get key function (will wait)

0AFB:0114 int   16      ; call bios

0AFB:0116 int   20      ; terminate

0AFB:0118 db  'H' 2 'e' 3 'l' 4 'l' 5 'o' 6 ' ' 0

0AFB:0124 db  'W' 6 'o' 5 'r' 4 'l' 3 'd' 2

0AFB:012E ; The following blank line is necessary to exit assembly mode.

0AFB:012E

-rcx

CX 0000
:2e

-w

Writing 0002E bytes
-q


eschew obfuscation

BytePtr

My example using debug:
- a 100
mov ah,02
mov dl, 7
int 21
int 20
press enter
- g

G for execute program that u just typed in.
U should see message "Program terminated normally"  then type q to exit.