Showing changes from revision #4 to #5:
Added | Removed | Changed
Offset | Contents | |
---|---|---|
+0 | B Fill | |
+4 | B |
|
+8 | B |
|
+12 | B |
|
+16 | B Instantiate | |
+20 | B Free | |
+24 | LDR PC, [R13], #4 (was Install) | |
+28 | Offset from start of voice generator block to voice name |
Voice Generators are entered in IRQ mode with IRQs enabled. R14 should not be used as any interrupts will corrupt the value.
Voice Generators should return to the Channel Handler via LDR PC,[R13],#4
The Fill, Update, GateOn and GateOff entries provide services to fill the DMA buffer at different stages of a note.
The Instantiate and Free entries provide facilities to attach or detach the Voice Generator to or from a channel.
The Install entry was originally to be called when a Voice Generator was initialised. Since Voice Generators are now implemented as Relocatable Modules, which offer exactly this service in the form of the Initialisation entry point, this field is not supported and simply returns to the caller (LDR PC,[R13],#4 above).
The voice name is used by the Channel Handler voice table. It should be both concise and descriptive. The offset must be positive relative – that is, the voice name must be after the header.