home *** CD-ROM | disk | FTP | other *** search
/ Dave Lowe: ISDigitiser Old / Lowe_ISDigitiserOld.img / DIGIPLAY.S < prev    next >
Encoding:
Text File  |  1985-11-20  |  3.1 KB  |  121 lines

  1. $FFF8800,A0        * ADDRS OF SOUND CHIP
  2.  
  3.         MOVEP.W D1,0(A0)
  4.         MOVEP.W D2,0(A0)        * SET O/P'S
  5.  
  6.         CMPA.L     (A2),A1            * END OF SAMPLE?
  7.         BLT.S     STOP_INTERUPT
  8.  
  9.         MOVEM.L (SP)+,D0-D2/A0-A2    * RESTORE REGISTERS
  10.         BCLR     #5,$FFFA0F        * CLEAR INTERUPT FLAG
  11.         RTE                * RETURN 
  12.  
  13. STOP_INTERUPT    BCLR    #5,$FFFA19        * CLEAR 'A' CONTROL
  14.         BCLR    #5,$FFFA07        * CLEAR 'A' ENABLE
  15.  
  16.         MOVE.B     #8,$FFF8800
  17.         CLR.B     $FFF8802
  18.         MOVE.B     #9,$FFF8800
  19.         CLR.B     $FFF8802
  20.         MOVE.B     #10,$FFF8800        * CLEAR SOUND'S
  21.         CLR.B     $FFF8802
  22.  
  23.         MOVEM.L (SP)+,D0-D2/A0-A2    * RESTORE REGISTERS
  24.         BCLR     #5,$FFFA0F        * CLEAR INTERUPT FLAG
  25.         RTE
  26.  
  27.  
  28. *
  29. * TABLES FOR THE CONTROL OF THE 4-BIT AMPLITUDE SETTINGS
  30. * FOR CHANNELS B AND C OF THE SOUND CHIP TO GIVE THE EFFECT
  31. * OF VOLUME ONLY OUTPUT
  32. *
  33.  
  34.                 EVEN
  35.  
  36. CHANEL_A     DC.L $00000000,$00020000,$00020001,$00020002
  37.         DC.L $00030002,$00040001,$00040002,$00050002
  38.         DC.L $00060000,$00060002,$00060003,$00060004
  39.         DC.L $00070002,$00070004,$00070005,$00080002
  40.         DC.L $00080003,$00080004,$00080005,$00090002
  41.         DC.L $00090003,$00090004,$00090005,$00090006
  42.         DC.L $00090007,$000A0003,$000A0004,$000A0005
  43.         DC.L $000A0006,$000A0007,$000B0000,$000B0001
  44.         DC.L $000B0002,$000B0004,$000B0005,$000B0006
  45.         DC.L $000B0007,$000B0008,$000B0008,$000B0009
  46.         DC.L $000B0009,$000C0000,$000C0001,$000C0002
  47.         DC.L $000C0003,$000C0004,$000C0005,$000C0006
  48.         DC.L $000C0008,$000C0008,$000C0009,$000C0009
  49.         DC.L $000C0009,$000C000A,$000D0000,$000D0002
  50.         DC.L $000D0003,$000D0004,$000D0005,$000D0006
  51.         DC.L $000D0007,$000D0008,$000D0008,$000D0009       
  52.  
  53.         EVEN
  54.  
  55. *
  56. * SPEED TABLE FOR TIMER A; ORGANISED AS: 
  57. * TIMER COUNTER DATA AND CONTROL BYTE DATA
  58. *
  59.  
  60. SPEEDS      DC.W $0607
  61.         DC.W $CF01
  62.         DC.W $9B01
  63.         DC.W $7C01
  64.         DC.W $6701
  65.         DC.W $5801
  66.         DC.W $4D01
  67.         DC.W $4401
  68.         DC.W $3E01
  69.         DC.W $3801
  70.         DC.W $3401
  71.         DC.W $3001
  72.         DC.W $2C01
  73.         DC.W $2901
  74.         DC.W $2701
  75.         DC.W $0903
  76.       
  77.  
  78. * (C)1988 INNOVATED SOFTWARE
  79. * THE FAST BASIC PROGRAM DUMP OF FSTPLAY.BIN
  80.  
  81. * THIS PROGRAM CAN BE USED QUITE EFFECTIVELY IN YOUR BASIC PROGRAMS
  82. * OR ASSEMBLY, 'C' LANGAUGES ETC.
  83.  
  84. * THE CODE CAN BE PLACED ANYWHERE IN MEMORY AS IT IS NOT 'POSITION'
  85. * DEPENDENT.
  86.  
  87. * IF YOU USE ANY PART OF THIS PROGRAM IN YOUR OWN PROGRAM THEN PLEASE
  88. * ACKNOWLEDGE INNOVATED SOFTWARE SOME WHERE IN THE TITLE PAGE.
  89.  
  90.  
  91. * REVISION 2.0                    BY R.PERRY.
  92.  
  93.  
  94. * IMPORTANT SET-UP REGISTERS:
  95.  
  96. START_ADDRESS    DC.L 0
  97. LENGTH_OFF    DC.L 0
  98. SPEED        DC.L 0
  99.  
  100. DIGIOUT        MOVEM.L D0-D5/A0-A6,-(SP)    * SAVE SOME REGISTERS
  101.         MOVE.L START_ADDRESS(PC),A4
  102.         MOVE.L LENGTH_OFF(PC),D6
  103.         MOVE.L SPEED(PC),D5
  104.  
  105.         ADD.L A4,D6            * FIND DATA END ADDRS
  106.         LEA TTP(PC),A0
  107.         MOVE.W D5,2(A0)            * SET DELAY LOOP VALUE
  108.         CLR.L -(SP)
  109.         MOVE.W #$20,-(SP)        * DO SOME SUPERVISOR
  110.         TRAP #1                * STUFF MAN!
  111.         ADDQ.L #6,SP
  112.         LEA STATUS(PC),A0
  113.         MOVE.W SR,(A0)            * SAVE SR REGISTER
  114.         LEA STACKST(PC),A0
  115.         MOVE.L D0,(A0)            * SAVE OLD STACK VALUE
  116.         MOVE.W SR,D3
  117.         MOVE.W #$2700,SR        * KILL 'ALL' INTERUPTS
  118.         MOVEQ #10,D0
  119. SETREGS        MOVE.B D0,$FFF8800        * CLEAR AND SET
  120.         CLR.B $FFF8802            * SOUND