home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
rtsi.com
/
2014.01.www.rtsi.com.tar
/
www.rtsi.com
/
OS9
/
OSK
/
EFFO
/
forum5.lzh
/
RECHNER
/
GEPARD
/
ton.a
< prev
next >
Wrap
Text File
|
1988-06-03
|
4KB
|
118 lines
nam ton
ttl Lautsprecher ansprechen
**********************************************************
* Edition History
* # Date Comments by
* -- -------- ---------------------------------------- ---
* 01 05-05-88 Initial test version MTM
**********************************************************
* include system definitions - here for my configuration
use /DD/DEFS/oskdefs.d
*<<< Besser waere use defsfile ; wobei defsfile im selben dir steht,
* wie das Programm. defsfile enthaelt dann use /irgendein_path/oskdefs.d
* und weitere include files. Vorteil: jeder Benutzer hat sowieso sein
* spezielles defsfile und muss nicht in allen neuen Programmen editieren. WS>>>
Edition equ 1
Typ_Lang equ (Prgrm<<8)+Objct
Attr_Rev equ ((ReEnt+SupStat)<<8)+1
adac equ $8031
adra equ $8071
acra equ $8075
*<<< Das ist zwar sehr schnell, aber auch sehr unelegant. Besser waere die
* Verwendung der symbolischen Adresse der Multifunktionskarte und Dekodierung
* durch das Decode-Makro aus systype.d. Damit wird das Programm unabhaengig
* von der Adresslage der Karte. Z.B.:
*
* adac equ $31 D/A Wandler links
* adra equ $71 PIA Register A
* acra equ $75 PIA Control Register A
* multi equ $3F000000 symbolische Kartenkennung der Multifunktionskarte:
* byte1 = $3f Gepard Kartenkennung
* byte2 = $00 die erste Tastaturkarte im Gepard
* wort2 = $0000 kein Offset von der Basisadresse
*
* movea.l #multi,a3 Multifunktionskarte suchen
* Decode Makro aus systype.d, wird mittels use ... im
* defsfile geladen; danach steht in a3 die Basis-
* adresse der Tastaturkarte; ab jetzt Zugriff auf
* die Hardware ueber indirekte Adressierung mit
* offset, z.B.:
* move.b #77,adac(a3) what ever it might be good for
*
* Dieser Kommentar steht deswegen hier, weil das Programm ein typisches
* Beispiel fuer eine Eintagsfliege ist: die Rechnerkonfiguration ist fest
* vorgeschrieben. Anstatt meinem Rechner den gewuenschten Ton zu entlocken,
* reagiert er nur mit einem totalen Systemabsturz ueber exeption vector 8. WS>>>
th equ 1020
tlen equ 200
filter equ 204
psect ton,Typ_Lang,Attr_Rev,Edition,0,go
go move.w sr,d7
ori #$0700,sr
lea table(pc),a3
move.w #9,d3
loop move.w (a3)+,d4
move.w (a3)+,d5
move.w (a3)+,d6
bsr.s ton
dbra d3,loop
move.w d7,sr
clr.w d1 return no error
OS9 F$Exit
ton move.l #adac,a0
move.l #adra,a5
move.l #acra,a6
move.b #$00,(a6)
move.b #$30,(a5)
move.b #$04,(a6)
move.b #$30,(a5)
move.w d6,d0
move.b d0,(a0)
move.b #$10,(a5)
move.w #500,d1
laden dbf d1,laden
move.b #$00,(a5)
move.w d5,d2
move.w d4,d1
beq.s pause
loop0 move.b #$ff,(a0)
loop1 dbf d0,loop1
move.w d4,d0
move.b #$00,(a0)
loop2 dbf d0,loop2
move.w d4,d0
dbf d2,loop0
bra.s ende
pause move.w #10000,d0
loop3 dbf d0,loop3
dbf d2,pause
ende move.b #$30,(a5)
rts
table dc.w 1020,32,204,0,2,220,1020,32,204
dc.w 0,2,220,1020,32,204,0,2,220
dc.w 680,168,221,0,4,220,810,144,214
align
ends