home *** CD-ROM | disk | FTP | other *** search
/ Dave Lowe: AssemPro For Development Amiga Driver / Lowe_AssemProForDevelopmentAmigaDriver.adf / prt < prev    next >
Encoding:
Text File  |  1987-06-04  |  11.9 KB  |  247 lines

  1. Address Code             Line    Source text                          
  2.  
  3. 000000 :                     1
  4. 000000 :                     2
  5. 000000 :                     3  ;    notetable
  6. 000000 :                     4
  7. 000000 :                     5  a02    equ   508
  8. 000000 :                     6  Bb02   equ   480
  9. 000000 :                     7  b02    equ   453
  10. 000000 :                     8  c02    equ   428
  11. 000000 :                     9  Db02   equ   404
  12. 000000 :                    10  d02    equ   381
  13. 000000 :                    11  eb02   equ   360
  14. 000000 :                    12  e02    equ   339
  15. 000000 :                    13  f02    equ   320
  16. 000000 :                    14  gb02   equ   302
  17. 000000 :                    15  g02    equ   285
  18. 000000 :                    16
  19. 000000 :                    17  a01    equ   254
  20. 000000 :                    18  Bb01   equ   240
  21. 000000 :                    19  b01    equ   226
  22. 000000 :                    20  c01    equ   214
  23. 000000 :                    21  Db01   equ   202
  24. 000000 :                    22  d01    equ   190
  25. 000000 :                    23  eb01   equ   180
  26. 000000 :                    24  e01    equ   170
  27. 000000 :                    25  f01    equ   160
  28. 000000 :                    26  gb01   equ   151
  29. 000000 :                    27  g01    equ   143
  30. 000000 :                    28
  31. 000000 :                    29
  32. 000000 :                    30
  33. 000000 :                    31  chann1reg      equ  $dff0a0       ;sta
  34.                                 rt of ch1 registers
  35. 000000 :                    32  end_patt       equ  $ffff
  36. 000000 :                    33  dmacon         equ  $dff096
  37. 000000 :                    34
  38. 000000 :                    35  ;     a0 points to channel vars
  39. 000000 :                    36  ;     a1 reads  patt data/song data/en
  40.                                 velope data
  41. 000000 :                    37  ;     a2 points to ch reg locations
  42. 000000 :                    38  ;     d0 used as general purpose regis
  43.                                 ter
  44. 000000 :                    39  ;     d1 holds bits set for dma contro
  45.                                 l reg
  46. 000000 :                    40
  47. 000000 :41F9000000BE        41        lea ch1vars,a0
  48. 000006 :45F900DFF0A0        42        lea chann1reg,a2
  49. 00000C :323C8201            43        move.w #%1000001000000001,d1  ;
  50.                                 enable ch 1
  51. 000010 :                    44
  52. 000010 :                    45
  53. 000010 :                    46  ;        *****************************
  54. 000010 :                    47  ;  this section checks channel current
  55.                                  status
  56. 000010 :                    48
  57. 000010 :                    49  sect1:
  58. 000010 :0C500000            50                 cmpi.w #0,(a0)        ;
  59.                                  for test disable
  60. 000014 :67000004            51 >               beq sect1_j1
  61. 000018 :4E75                52                 rts
  62. 00001A :0C6800000002        53  sect1_j1       cmpi.w #0,2(a0)
  63.                                 ;counter at zero
  64. 000020 :67000052            54 >               beq sect3             ;
  65.                                  get new note
  66. 000024 :0C6800000004        55                 cmpi.w #0,4(a0)
  67.                                 ;is it looped data
  68. 00002A :6700001C            56 >               beq sect2
  69. 00002E :                    57          ; data is looped data
  70. 00002E :53680002            58                 subq #1,2(a0)
  71.                                 ;decrease counter
  72. 000032 :32680010            59                 movea 16(a0),a1
  73.                                 ;envelope data needed ?
  74. 000036 :0C1100FF            60                 cmpi.b #255,(a1)
  75. 00003A :6700000A            61 >               beq env_finished
  76. 00003E :15590008            62                 move.b (a1)+,8(a2)
  77.                                 ;send vol data
  78. 000042 :21490010            63                 move.l a1,16(a0)
  79.                                 ;store pointer
  80. 000046 :4E75                64  env_finished:  rts
  81.                                 ; finish
  82. 000048 :                    65
  83. 000048 :                    66  ;         ****************************
  84.                                 *
  85. 000048 :                    67  ;  this section sets the registers to
  86.                                 rest data on the first
  87. 000048 :                    68  ;  interrupt following the note trigge
  88.                                 r only
  89. 000048 :                    69
  90. 000048 :                    70  sect2:
  91. 000048 :0C6800000006        71                 cmpi.w #0,6(a0)
  92. 00004E :6700001E            72 >               beq dma_done
  93. 000052 :                    73         ;  move rest data into register
  94.                                 s
  95. 000052 :24BC000000F0        74                 move.l  #restdata,(a2)
  96. 000058 :357C00180004        75                 move.w #24,4(a2);length
  97. 00005E :357C00000008        76                 move.w #0,8(a2) ;zero v
  98.                                 olume
  99. 000064 :2179FFFF00010004    77                 move.l $ffff0001,4(a0)
  100.                                 ;max count+loop flag
  101. 00006C :4E75                78                 rts
  102. 00006E :53680002            79  dma_done:      subq #1,2(a0)     ; dec
  103.                                  int count
  104. 000072 :4E75                80                 rts
  105. 000074 :                    81
  106. 000074 :                    82  ;          ***************************
  107.                                 **
  108. 000074 :                    83
  109. 000074 :                    84  ; this section gets new note data
  110. 000074 :                    85
  111. 000074 :                    86  sect3:
  112. 000074 :22680012            87                 move.l 18(a0),a1     ;g
  113.                                 et patt pointer
  114. 000078 :3019                88                 move.w (a1)+,d0       ;
  115.                                 next data to d0/pointer inc
  116. 00007A :0C400064            89                 cmpi.w #100,d0
  117.                                 ;control marker
  118. 00007E :63000028            90 >               bls  sect5            ;
  119.                                 effects flags
  120. 000082 :                    91         ;d1 holds next note pitch
  121. 000082 :3140000C            92                 move.w d0,12(a0)     ;s
  122.                                 tore in curr pitch
  123. 000086 :31590002            93                 move.w (a1)+,2(a0)   ;s
  124.                                 tore count
  125. 00008A :53680002            94                 subq.w #1,2(a0)      ;a
  126.                                 nd decrease
  127. 00008E :21490012            95                 move.l a1,18(a0)     ;s
  128.                                 tore patt pointer
  129. 000092 :0C6800000004        96                 cmpi.w #0,4(a0)      ;l
  130.                                 oop or one shot
  131. 000098 :6600000E            97 >               bne send_one_shot
  132. 00009C :                    98   ;     loop data trigger
  133. 00009C :35400006            99                 move.w d0,6(a2)      ;p
  134.                                 itch to reg
  135. 0000A0 :33C100DFF096       100                 move.w d1,dmacon     ;s
  136.                                 tart dma for current channel
  137. 0000A6 :4E75               101                 rts
  138. 0000A8 :                   102  send_one_shot:
  139. 0000A8 :                   103
  140. 0000A8 :                   104
  141. 0000A8 :                   105
  142. 0000A8 :                   106        ;      *************************
  143.                                 **********
  144. 0000A8 :                   107  sect4:
  145. 0000A8 :                   108
  146. 0000A8 :                   109
  147. 0000A8 :                   110
  148. 0000A8 :                   111        ;      *************************
  149.                                 **********
  150. 0000A8 :                   112        ;  effects flags  d0 holds jump
  151.                                 offset
  152. 0000A8 :47F9000000B2       113  sect5:          lea jump_table,a3
  153. 0000AE :4EF30000           114                  jmp (a3,d0)
  154. 0000B2 :000000BE           115  jump_table:     defl in_line_data
  155. 0000B6 :4E71               116                  nop
  156. 0000B8 :4E71               117                  nop
  157. 0000BA :4E71               118                  nop
  158. 0000BC :4E71               119                  nop
  159. 0000BE :                   120  in_line_data:
  160. 0000BE :                   121  ;             data format = reg offset
  161.                                 ,data,etc....,end_data
  162. 0000BE :                   122
  163. 0000BE :                   123
  164. 0000BE :                   124
  165. 0000BE :                   125
  166. 0000BE :                   126
  167. 0000BE :                   127
  168. 0000BE :                   128
  169. 0000BE :                   129
  170. 0000BE :                   130
  171. 0000BE :0000               131  ch1vars         defw 0         ; test
  172.                                 disable
  173. 0000C0 :0000               132                  defw 0         ; inter
  174.                                 rupt counter
  175. 0000C2 :0000               133                  defw 0         ; loop
  176.                                 data flag
  177. 0000C4 :0000               134                  defw 0         ; dma f
  178.                                 lag
  179. 0000C6 :                   135
  180. 0000C6 :00000000           136                  defl 0 ; data address
  181. 0000CA :0000               137                  defw 0        ; length
  182. 0000CC :0000               138                  defw 0        ; pitch
  183. 0000CE :0000               139                  defw 0        ; vol
  184. 0000D0 :                   140
  185. 0000D0 :00000120           141                  defl env1     ; env po
  186.                                 inter
  187. 0000D4 :00000000           142                  defl 0        ; patt p
  188.                                 ointer
  189. 0000D8 :00000000           143                  defl 0        ; song p
  190.                                 ointer
  191. 0000DC :                   144
  192. 0000DC :                   145
  193. 0000DC :                   146
  194. 0000DC :                   147
  195. 0000DC :                   148  sinedata:
  196. 0000DC :0009               149             defw 9   ;length
  197. 0000DE :005A7FA681A6       150             defb 0,90,127,-90,-127,-90
  198. 0000E4 :005A7FA681A6       151             defb 0,90,127,-90,-127,-90
  199. 0000EA :005A7FA681A6       152             defb 0,90,127,-90,-127,-90
  200. 0000F0 :                   153
  201. 0000F0 :                   154  restdata:
  202. 0000F0 :                   155  ;          length=24 words
  203. 0000F0 :0000000000000000   156             defw 0,0,0,0,0,0,0,0,0,0,0,
  204.         0000000000000000        0,0,0,0,0,0,0,0,0,0,0,0,0
  205.         0000000000000000
  206.         0000000000000000
  207.         0000000000000000
  208.         0000000000000000
  209. 000120 :                   157
  210. 000120 :                   158  env1:
  211. 000120 :                   159
  212. 000120 :                   160
  213. 000120 :                   161
  214. 000120 :                   162
  215. 000120 :                   163
  216. 000120 :                   164
  217. 000120 :                   165
  218. 000120 :                   166                             end
  219. Symbol table                                                          
  220.  
  221. A02 = 000001FC           BB02 = 000001E0          B02 = 000001C5
  222.  
  223. C02 = 000001AC           DB02 = 00000194          D02 = 0000017D
  224.  
  225. EB02 = 00000168          E02 = 00000153           F02 = 00000140
  226.  
  227. GB02 = 0000012E          G02 = 0000011D           A01 = 000000FE
  228.  
  229. BB01 = 000000F0          B01 = 000000E2           C01 = 000000D6
  230.  
  231. DB01 = 000000CA          D01 = 000000BE           EB01 = 000000B4
  232.  
  233. E01 = 000000AA           F01 = 000000A0           GB01 = 00000097
  234.  
  235. G01 = 0000008F           CHANN1REG = 00DFF0A0     END_PATT = 0000FFFF
  236.  
  237. DMACON = 00DFF096        SECT1 = 08000010         SECT1_J1 = 0800001A
  238.  
  239. ENV_FINISHED = 08000046  SECT2 = 08000048         DMA_DONE = 0800006E
  240.  
  241. SECT3 = 08000074         SEND_ONE_SHOT = 080000A8 SECT4 = 080000A8
  242.  
  243. SECT5 = 080000A8         JUMP_TABLE = 080000B2
  244. IN_LINE_DATA = 080000BE  CH1VARS = 080000BE       SINEDATA = 080000DC
  245.  
  246. RESTDATA = 080000F0      ENV1 = 08000120
  247.