1 /****************************************************************************
3 * ____ ___ ____ __ ______ ___ ____ ____/ / *
4 * / __ `__ \/ __ `/ |/ / __ `__ \/ __ \/ __ / *
5 * / / / / / / /_/ /> </ / / / / / /_/ / /_/ / *
6 * /_/ /_/ /_/\__,_/_/|_/_/ /_/ /_/\____/\__,_/ *
8 * Copyright (c) 2008, Mukunda Johnson (mukunda@maxmod.org) *
10 * Permission to use, copy, modify, and/or distribute this software for any *
11 * purpose with or without fee is hereby granted, provided that the above *
12 * copyright notice and this permission notice appear in all copies. *
14 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES *
15 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF *
16 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR *
17 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES *
18 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN *
19 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF *
20 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *
21 ****************************************************************************/
35 .equ MPL_SAMPTABLE ,12
36 .equ MPL_PATTTABLE ,16
39 .equ MPL_OLDEFFECTS ,25
41 .equ MPL_PATTJUMP_ROW,27
42 .equ MPL_FPATTDELAY ,28
43 .equ MPL_PATTDELAY ,29
45 .equ MPL_PLOOP_ROW ,30
46 .equ MPL_PLOOP_TIMES ,31
47 .equ MPL_PLOOP_ADR ,32
49 .equ MPL_PLOOP_JUMP ,40
52 .equ MPL_TICKRATE ,42 @ 1.15 fixed point OR sample count
53 .equ MPL_SAMPCOUNT ,44 @ sample timing
54 .equ MPL_TICKFRAC ,44 @ vsync timing 0.16 fixed point
57 .equ mpl_reserved2 ,47
58 .equ MPL_MCH_UPDATE ,48
60 .equ mpl_reserved3 ,54
66 .equ MPV_PATTREAD_P ,4
70 .equ MPV_NOTEDELAY ,11
77 .EQU MCH_ALLOC, 0 @ ALLOCATED ACTIVE CHANNEL#
78 .EQU MCH_CFLAGS, 1 @ PATTERN COMRESSION FLAGS, called "maskvariable" in ITTECH.TXT
80 .EQU MCH_VOLCMD, 3 @ VOLUME COLUMN COMMAND
81 .EQU MCH_EFFECT, 4 @ EFFECT# } COMBINED
82 .EQU MCH_PARAM, 5 @ EFFECT PARAMETER }
83 .EQU MCH_FXMEM, 6 @ EFFECT MEMORY
84 .EQU MCH_NOTE, 7 @ TRANSLATED NOTE
85 .EQU MCH_FLAGS, 8 @ CHANNEL FLAGS
86 .EQU MCH_INST, 9 @ INSTRUMENT#
87 //.EQU MCH_PFLAGS, 10 @ PLAYBACK FLAGS (???)
91 .EQU MCH_VOLUME, 14 //}combined
92 .EQU MCH_CVOLUME, 15 //}
95 .EQU MCH_PNOTE, 22 @ PATTERN NOTE
96 .EQU MCH_MEMORY, 23 @ 15 bytes
97 .EQU MCH_SIZE, 40 @ sizeof( module_channel ) @ 2 extra bytes
102 .EQU MCA_PERIOD, 0 @ internal period
103 .EQU MCA_FADE, 4 // }
104 .EQU MCA_ENVC_VOL, 6 // }
105 .EQU MCA_ENVC_PAN, 8 // } COMBINED
106 .EQU MCA_ENVC_PIC, 10 // } during volume reset
107 .EQU MCA_AVIB_DEP, 12 // } AND NEWNOTE, CHECK NEWNOTE ON CHANGES
108 .EQU MCA_AVIB_POS, 14 // }
109 .EQU MCA_FVOL, 16 // } COMBINED for SPEED
110 .EQU MCA_TYPE, 17 // }
115 .EQU MCA_PARENT, 22 // } COMBINED
116 .EQU MCA_FLAGS, 23 // }
117 .EQU MCA_ENVN_VOL, 24
118 .EQU MCA_ENVN_PAN, 25
119 .EQU MCA_ENVN_PIC, 26
120 .EQU MCA_SFX, 27 @ can store this anywhere
123 @ Active Channel Flags
124 @ --------------------
126 .EQU MCAF_KEYON ,1 @ key is on... LOCKED
127 .EQU MCAF_FADE ,2 @ note-fade is activated
128 .EQU MCAF_START ,4 @ [re]start sample
129 .EQU MCAF_UPDATED ,8 @ already updated by pchannel routine
130 .EQU MCAF_ENVEND ,16 @ end of envelope
131 .EQU MCAF_VOLENV ,32 @ volume envelope enabled
132 .EQU MCAF_SUB ,64 @ sublayer.................locked..
133 .EQU MCAF_EFFECT ,128 @ subsublayer.............................LOCKED (mpEffect)
135 @ Active Channel Types
136 @ --------------------
138 .EQU ACHN_DISABLED ,0 @ LOCKED (multiple routines)
139 .EQU ACHN_RESERVED ,1 @ (can't be used [alloc channel])
140 .EQU ACHN_BACKGROUND ,2 @ LOCKED (alloc channel)
141 .EQU ACHN_FOREGROUND ,3
144 @ Module Channel Flags
145 @ --------------------
153 .EQU MF_NOTEOFF ,64 @ LOCKED
154 .EQU MF_NOTECUT ,128 @ LOCKED
156 @.equ MF_NEWINSTR ,1 @ new instrument
161 @.EQU MF_NOTEOFF ,64 @ LOCKED
162 @.EQU MF_NOTECUT ,128 @ LOCKED
167 .equ IT_NNA_CUT ,0 @ New note actions
172 .equ IT_DCA_CUT ,0 @ Duplicate check actions
181 @ nn...............new note action
182 @ pp...............panbrello waveform
183 @ tt...............tremolo waveform
184 @ vv...............vibrato waveform
185 @ dd...............duplicate check type
186 @ v................volume envelope enabled
187 @ t................tremor variable...
188 @ c................cut channel volume
189 @ //////...........reserved