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 >
Text File  |  1988-06-03  |  4KB  |  118 lines

  1.  
  2.  
  3.  nam    ton
  4.  ttl     Lautsprecher ansprechen
  5. **********************************************************
  6. * Edition History
  7. *  #   Date     Comments                               by 
  8. * -- -------- ---------------------------------------- --- 
  9. * 01 05-05-88 Initial test version               MTM
  10. **********************************************************
  11.  
  12. * include system definitions - here for my configuration
  13.             use     /DD/DEFS/oskdefs.d
  14.  
  15. *<<< Besser waere   use  defsfile   ; wobei defsfile im selben dir steht,
  16. * wie das Programm. defsfile enthaelt dann    use  /irgendein_path/oskdefs.d
  17. * und weitere include files. Vorteil: jeder Benutzer hat sowieso sein
  18. * spezielles defsfile und muss nicht in allen neuen Programmen editieren. WS>>>
  19.              
  20. Edition        equ        1
  21. Typ_Lang     equ        (Prgrm<<8)+Objct
  22. Attr_Rev    equ        ((ReEnt+SupStat)<<8)+1
  23.         
  24.  
  25. adac    equ $8031
  26. adra    equ $8071
  27. acra    equ $8075
  28.  
  29. *<<< Das ist zwar sehr schnell, aber auch sehr unelegant. Besser waere die
  30. * Verwendung der symbolischen Adresse der Multifunktionskarte und Dekodierung
  31. * durch das Decode-Makro aus systype.d. Damit wird das Programm unabhaengig
  32. * von der Adresslage der Karte. Z.B.:
  33. *
  34. * adac  equ  $31        D/A Wandler links
  35. * adra  equ  $71        PIA Register A
  36. * acra  equ  $75        PIA Control Register A
  37. * multi equ  $3F000000  symbolische Kartenkennung der Multifunktionskarte:
  38. *                       byte1 = $3f     Gepard Kartenkennung
  39. *                       byte2 = $00     die erste Tastaturkarte im Gepard
  40. *                       wort2 = $0000   kein Offset von der Basisadresse
  41. *
  42. *       movea.l #multi,a3   Multifunktionskarte suchen
  43. *       Decode              Makro aus systype.d, wird mittels use ... im
  44. *                           defsfile geladen; danach steht in a3 die Basis-
  45. *                           adresse der Tastaturkarte; ab jetzt Zugriff auf
  46. *                           die Hardware ueber indirekte Adressierung mit
  47. *                           offset, z.B.:
  48. *       move.b  #77,adac(a3)    what ever it might be good for
  49. *
  50. * Dieser Kommentar steht deswegen hier, weil das Programm ein typisches
  51. * Beispiel fuer eine Eintagsfliege ist: die Rechnerkonfiguration ist fest
  52. * vorgeschrieben. Anstatt meinem Rechner den gewuenschten Ton zu entlocken,
  53. * reagiert er nur mit einem totalen Systemabsturz ueber exeption vector 8. WS>>>
  54.  
  55. th      equ  1020
  56. tlen    equ  200
  57. filter  equ  204
  58.  
  59.  
  60.     psect    ton,Typ_Lang,Attr_Rev,Edition,0,go
  61.     
  62.     
  63.  
  64. go         move.w  sr,d7
  65.            ori     #$0700,sr
  66.            lea     table(pc),a3
  67.            move.w  #9,d3
  68. loop       move.w  (a3)+,d4
  69.            move.w  (a3)+,d5
  70.            move.w  (a3)+,d6
  71.            bsr.s   ton
  72.            dbra    d3,loop                           
  73.            move.w  d7,sr
  74.            clr.w   d1              return no error
  75.            OS9     F$Exit
  76.           
  77.  
  78.  
  79. ton        move.l #adac,a0
  80.            move.l #adra,a5
  81.            move.l #acra,a6
  82.            move.b #$00,(a6)
  83.            move.b #$30,(a5)
  84.            move.b #$04,(a6)
  85.            move.b #$30,(a5)
  86.            
  87.            move.w d6,d0
  88.            move.b d0,(a0)
  89.            move.b #$10,(a5)
  90.            
  91.            move.w #500,d1
  92. laden      dbf    d1,laden
  93.  
  94.            move.b #$00,(a5)
  95.            
  96.            move.w d5,d2
  97.            move.w d4,d1
  98.            beq.s  pause
  99. loop0      move.b #$ff,(a0)
  100. loop1      dbf    d0,loop1
  101.            move.w d4,d0
  102.            move.b #$00,(a0)
  103. loop2      dbf    d0,loop2
  104.            move.w d4,d0
  105.            dbf    d2,loop0
  106.            bra.s  ende
  107. pause      move.w #10000,d0
  108. loop3      dbf    d0,loop3
  109.            dbf    d2,pause
  110. ende       move.b #$30,(a5)
  111.            rts
  112.  
  113. table      dc.w  1020,32,204,0,2,220,1020,32,204
  114.            dc.w  0,2,220,1020,32,204,0,2,220
  115.            dc.w  680,168,221,0,4,220,810,144,214
  116.            align
  117.       ends
  118.