[f40a309] | 1 | /*
|
---|
| 2 | =============================================================================
|
---|
| 3 | im700.c -- variable definitions and initialization for MIDAS-VII
|
---|
| 4 | Version 102 -- 1989-11-16 -- D.N. Lynx Crowe
|
---|
| 5 | =============================================================================
|
---|
| 6 | */
|
---|
| 7 |
|
---|
| 8 | #define DEBUGVAL 0 /* initial value for debugsw */
|
---|
| 9 |
|
---|
| 10 | #define FET_DEFS 1 /* so fields.h gets things right */
|
---|
| 11 | #define M7CAT 1 /* so libdsp.h gets it right */
|
---|
| 12 |
|
---|
[b28a12e] | 13 | #include "ram.h"
|
---|
[7258c6a] | 14 |
|
---|
| 15 | int16_t admctl; /* assignment display submenu control variable */
|
---|
| 16 | int16_t adnamsw; /* assignment display virtual typewriter flag */
|
---|
| 17 | int16_t aflag; /* analog activity flag */
|
---|
| 18 | int16_t aform; /* action buffer format */
|
---|
| 19 | int16_t amplval; /* amplitude */
|
---|
| 20 | int16_t ancmsw; /* analog variable r/p control source */
|
---|
| 21 | int16_t angroup; /* analog variable group being shown */
|
---|
| 22 | int16_t asgfks; /* first key selected */
|
---|
| 23 | int16_t asghit; /* row hit / assignment in progress */
|
---|
| 24 | int16_t asgmod; /* assignment number or table modified */
|
---|
| 25 | int16_t asig; /* analog signal number */
|
---|
| 26 | int16_t asmode; /* panel assignment mode */
|
---|
| 27 | int16_t astat; /* analog signal status */
|
---|
| 28 | int16_t auxctl; /* aux control flag */
|
---|
| 29 | int16_t aval; /* analog signal value */
|
---|
| 30 | int16_t bform; /* oscillator data buffer format */
|
---|
| 31 | int16_t catin; /* catalog read in flag */
|
---|
| 32 | int16_t cents; /* pitch to cents conversion buffer */
|
---|
| 33 | int16_t chtime; /* horizontal cursor counter */
|
---|
| 34 | int16_t chwait; /* horizontal cursor wait time */
|
---|
| 35 | int16_t cflag; /* accidental flag */
|
---|
| 36 | int16_t clkctl; /* clock control */
|
---|
| 37 | int16_t clkrun; /* clock status */
|
---|
| 38 | int16_t clksrc; /* clock source */
|
---|
| 39 | int16_t cmfirst; /* first cursor motion switch */
|
---|
| 40 | int16_t cmtype; /* cursor motion type */
|
---|
| 41 | int16_t cnote; /* note value at cursor */
|
---|
| 42 | int16_t ctrsw; /* scupd center update switch */
|
---|
| 43 | int16_t curasg; /* current assignment table */
|
---|
| 44 | int16_t curfunc; /* current function number */
|
---|
| 45 | int16_t curgrp; /* current group */
|
---|
| 46 | int16_t curinst; /* current instrument number */
|
---|
| 47 | int16_t curmop; /* current MIDI output port */
|
---|
| 48 | int16_t curpnt; /* current point number (absolute) */
|
---|
| 49 | int16_t curpos; /* cursor pad position for current axis */
|
---|
| 50 | int16_t cursbox; /* currently selected box */
|
---|
| 51 | int16_t curscor; /* Current score number */
|
---|
| 52 | int16_t cursect; /* current section */
|
---|
| 53 | int16_t curslim; /* cursor type change point */
|
---|
| 54 | int16_t curtun; /* current tuning table */
|
---|
| 55 | int16_t curvce; /* current voice number */
|
---|
| 56 | int16_t curwave; /* current waveshape library slot */
|
---|
| 57 | int16_t curwdth; /* current waveshape cursor width */
|
---|
| 58 | int16_t curwfnl; /* current waveshape final value */
|
---|
| 59 | int16_t curwhrm; /* current waveshape harmonic number */
|
---|
| 60 | int16_t curwhrv; /* current waveshape harmonic value */
|
---|
| 61 | int16_t curwoff; /* current waveshape offset value */
|
---|
| 62 | int16_t curwpnt; /* current waveshape point number */
|
---|
| 63 | int16_t curwslt; /* current waveshape instrument slot */
|
---|
| 64 | int16_t cvtime; /* vertical cursor counter */
|
---|
| 65 | int16_t cvwait; /* veritcal cursor wait time */
|
---|
| 66 | int16_t cxrate; /* cursor x rate */
|
---|
| 67 | int16_t cxval; /* graphic cursor x value */
|
---|
| 68 | int16_t cyrate; /* cursor y rate */
|
---|
| 69 | int16_t cyval; /* graphic cursor y value */
|
---|
| 70 | int16_t debugne; /* debug flag for note entry */
|
---|
| 71 | int16_t defect; /* defect code */
|
---|
| 72 | int16_t dferror; /* error code from BIOS or XBIOS */
|
---|
| 73 | int16_t dfsides; /* number of sides */
|
---|
| 74 | int16_t dftype; /* disk type code */
|
---|
| 75 | int16_t dsp_ok; /* display update OK this cycle flag */
|
---|
| 76 | int16_t dubsw; /* overdub / replace switch */
|
---|
| 77 | int16_t ebflag; /* edit buffer data flag */
|
---|
| 78 | int16_t editss; /* edit panel switch state */
|
---|
| 79 | int16_t editsw; /* edit mode switch */
|
---|
| 80 | int16_t endflg; /* !end flag */
|
---|
| 81 | int16_t ext_cv1; /* CV-1 value */
|
---|
| 82 | int16_t ext_cv2; /* CV-2 value */
|
---|
| 83 | int16_t ext_cv3; /* CV-3 value */
|
---|
| 84 | int16_t ext_cv4; /* CV-4 value */
|
---|
| 85 | int16_t ext_mod; /* Aux Signal Mod value */
|
---|
| 86 | int16_t gomode; /* go to mode */
|
---|
| 87 | int16_t grptran; /* group translation value */
|
---|
| 88 | int16_t gtmsel; /* group transpose/map select */
|
---|
| 89 | int16_t hitbox; /* box we just hit */
|
---|
| 90 | int16_t hitcx; /* x of cursor when we hit the box */
|
---|
| 91 | int16_t hitcy; /* y of cursor when we hit the box */
|
---|
| 92 | int16_t idcfsw; /* copy / fetch menu switch */
|
---|
| 93 | int16_t idimsw; /* instrument display instrument menu switch */
|
---|
| 94 | int16_t idintmp; /* temporary for instrument number */
|
---|
| 95 | int16_t idnamsw; /* typewriter switch */
|
---|
| 96 | int16_t idsrcsw; /* source menu switch */
|
---|
| 97 | int16_t idtdat; /* current instrument vtyper data entry string */
|
---|
| 98 | int16_t imflag; /* instrument modified flag */
|
---|
| 99 | int16_t initcfg; /* initial configuration */
|
---|
| 100 | int16_t insmode; /* score insert mode */
|
---|
| 101 | int16_t ismode; /* instrument select mode */
|
---|
| 102 | int16_t lampio; /* LCD timeout disable switch state at I/O time */
|
---|
| 103 | int16_t lampsw; /* LCD timeout disable switch */
|
---|
| 104 | int16_t lasgsw; /* assignments store switch */
|
---|
| 105 | int16_t lastam; /* last assignment menu base */
|
---|
| 106 | int16_t ldelsw; /* delete switch */
|
---|
| 107 | int16_t lderrsw; /* error message displayed switch */
|
---|
| 108 | int16_t ldidsiz; /* getcat() did showsiz() switch */
|
---|
| 109 | int16_t ldkind; /* fetch file type */
|
---|
| 110 | int16_t ldpass; /* librarian load state variable */
|
---|
| 111 | int16_t ldrow; /* fetch select row */
|
---|
| 112 | int16_t ldslot; /* fetch select slot */
|
---|
| 113 | int16_t legato; /* execkey() "legato" mode switch */
|
---|
| 114 | int16_t lksel; /* librarian key slot selector */
|
---|
| 115 | int16_t lmwtype; /* librarian message window type */
|
---|
| 116 | int16_t loadrow; /* librarian row selected for load letter */
|
---|
| 117 | int16_t loadsw; /* panel "Load" mode state */
|
---|
| 118 | int16_t lorchl; /* load hi (TRUE) / lo (FALSE) orchestra */
|
---|
| 119 | int16_t lorchsw; /* hi orchestra (21 - 40) store switch */
|
---|
| 120 | int16_t lorclsw; /* lo orchestra (01 - 20) store switch */
|
---|
| 121 | int16_t lpatsw; /* patch table store switch */
|
---|
| 122 | int16_t lrasw; /* append (TRUE) / replace (FALSE) score */
|
---|
| 123 | int16_t lscrsw; /* score store switch */
|
---|
| 124 | int16_t lselsw; /* fetch select switch */
|
---|
| 125 | int16_t lseqsw; /* sequence table store switch */
|
---|
| 126 | int16_t lstbgnc; /* last note begin entry table index */
|
---|
| 127 | int16_t lstendc; /* last note end entry table index */
|
---|
| 128 | int16_t lstflag; /* last note list end switch */
|
---|
| 129 | int16_t lstrsw; /* store state switch */
|
---|
| 130 | int16_t lstwoff; /* last waveshape offset value */
|
---|
| 131 | int16_t lstwpnt; /* last waveshape point number */
|
---|
| 132 | int16_t ltagged; /* load tag switch */
|
---|
| 133 | int16_t ltunsw; /* tunings store switch */
|
---|
| 134 | int16_t lwavsw; /* waveshapes store switch */
|
---|
| 135 | int16_t mascntr; /* MIDI active sensing timeout counter */
|
---|
| 136 | int16_t mdb1; /* current MIDI data byte 1 */
|
---|
| 137 | int16_t mdb2; /* current MIDI data byte 2 */
|
---|
| 138 | int16_t michan; /* current MIDI channel */
|
---|
| 139 | int16_t midiclk; /* MIDI clock switch */
|
---|
| 140 | int16_t midigo; /* MIDI run switch */
|
---|
| 141 | int16_t mistat; /* current MIDI status */
|
---|
| 142 | int16_t nchwait; /* next chwait value */
|
---|
| 143 | int16_t ncvwait; /* next cvwait value */
|
---|
| 144 | int16_t ndisp; /* current display number */
|
---|
| 145 | int16_t newflag; /* new data entered while t_cur EQ t_ctr */
|
---|
| 146 | int16_t nkdown; /* number of keys down */
|
---|
| 147 | int16_t notenum; /* note number */
|
---|
| 148 | int16_t noteop; /* pending note operation code */
|
---|
| 149 | int16_t notepit; /* note pitch */
|
---|
| 150 | int16_t notesel; /* note selection state */
|
---|
| 151 | int16_t npts; /* number of points in function */
|
---|
| 152 | int16_t nxtflag; /* next score flag */
|
---|
| 153 | int16_t oldltag; /* previous load tag for tagslot */
|
---|
| 154 | int16_t oldpk; /* previous pkctrl state */
|
---|
| 155 | int16_t oldsl; /* previous sliders state */
|
---|
| 156 | int16_t pchsw; /* punch-in enable switch */
|
---|
| 157 | int16_t pecase; /* point edit case variable */
|
---|
| 158 | int16_t pkctrl; /* local performance key state */
|
---|
| 159 | int16_t pntsv; /* point selection state variable */
|
---|
| 160 | int16_t prgchan; /* MIDI program change channel (port 1) */
|
---|
| 161 | int16_t ps_dpth; /* phase shifter -- depth */
|
---|
| 162 | int16_t ps_intn; /* phase shifter -- intensity */
|
---|
| 163 | int16_t ps_rate; /* phase shifter -- rate */
|
---|
| 164 | int16_t pulsclk; /* pulse clock state */
|
---|
| 165 | int16_t recsw; /* record / play switch */
|
---|
| 166 | int16_t runit; /* run switch for main scan loop */
|
---|
| 167 | int16_t sbase; /* score VSDD RAM scroll offset */
|
---|
| 168 | int16_t scmctl; /* score submenu control flag */
|
---|
| 169 | int16_t scrlpot; /* scroll pot state */
|
---|
| 170 | int16_t sd; /* score display direction */
|
---|
| 171 | int16_t se; /* score execution direction */
|
---|
| 172 | int16_t sdmcol; /* score menu - saved stccol */
|
---|
| 173 | int16_t sdmctl; /* score menu - control variable */
|
---|
| 174 | int16_t sdmrow; /* score menu - saved stcrow */
|
---|
| 175 | int16_t secop; /* pending score section operation */
|
---|
| 176 | int16_t secopok; /* section operation OK flag */
|
---|
| 177 | int16_t sgcsw; /* graphic cursor display switch */
|
---|
| 178 | int16_t sgoflag; /* section number relative column 0..3 */
|
---|
| 179 | int16_t sharp; /* sharp flag */
|
---|
| 180 | int16_t sliders; /* slider and switch state */
|
---|
| 181 | int16_t soffset; /* score scroll offset */
|
---|
| 182 | int16_t ss_ptsw; /* smooth scroll patch scroll switch */
|
---|
| 183 | int16_t ss_sqsw; /* smooth scroll sequence scroll switch */
|
---|
| 184 | int16_t stccol; /* score cursor col */
|
---|
| 185 | int16_t stcrow; /* score cursor row */
|
---|
| 186 | int16_t stepclk; /* note entry - step clock state */
|
---|
| 187 | int16_t stepenb; /* note entry - step enable flag */
|
---|
| 188 | int16_t stepint; /* note entry - note interval */
|
---|
| 189 | int16_t stepwgt; /* note entry - note weight */
|
---|
| 190 | int16_t subj; /* edited point number (relative) */
|
---|
| 191 | int16_t submenu; /* submenu active switch */
|
---|
| 192 | int16_t swctrl; /* scroll wheel 'srolling' flag */
|
---|
| 193 | int16_t swdelta; /* scroll wheel change while touched */
|
---|
| 194 | int16_t swdir; /* scroll wheel direction */
|
---|
| 195 | int16_t swfiin; /* scroll wheel fifo input pointer */
|
---|
| 196 | int16_t swflag; /* scroll wheel touched flag */
|
---|
| 197 | int16_t swlast; /* scroll wheel last value */
|
---|
| 198 | int16_t swstop; /* scroll wheel stop flag */
|
---|
| 199 | int16_t swndx; /* scroll wheel look back index */
|
---|
| 200 | int16_t tagslot; /* tagged load slot */
|
---|
| 201 | int16_t tdnamsw; /* tuning editor displaying typewriter */
|
---|
| 202 | int16_t temax; /* time upper limit */
|
---|
| 203 | int16_t temin; /* time lower limit */
|
---|
| 204 | int16_t testing; /* test level */
|
---|
| 205 | int16_t tglclk; /* clock on/off toggle flag */
|
---|
| 206 | int16_t tglpch; /* punch in/out toggle flag */
|
---|
| 207 | int16_t thescore; /* score selected from sqscan */
|
---|
| 208 | int16_t timemlt; /* time scaling */
|
---|
| 209 | int16_t tkctrl; /* trackball active flag */
|
---|
| 210 | int16_t tmpomlt; /* tempo multiplier */
|
---|
| 211 | int16_t tmpoval; /* tempo value */
|
---|
| 212 | int16_t trkball; /* trackball selected switch */
|
---|
| 213 | int16_t ttcmdsv; /* tuning editor edit state variable */
|
---|
| 214 | int16_t ttsel1; /* tuning editor key select variable 1 */
|
---|
| 215 | int16_t ttsel2; /* tuning editor key select variable 2 */
|
---|
| 216 | int16_t ttsel3; /* tuning editor key select variable 3 */
|
---|
| 217 | int16_t tuneval; /* fine tuning */
|
---|
| 218 | int16_t tunmod; /* tuning table modified */
|
---|
| 219 | int16_t tunval; /* tuning editor increment / transpose value */
|
---|
| 220 | int16_t txfiin; /* trackball x fifo input pointer */
|
---|
| 221 | int16_t txflag; /* trackball x axis active flag */
|
---|
| 222 | int16_t txlast; /* trackball x axis last value */
|
---|
| 223 | int16_t txstop; /* trackball x axis filter counter */
|
---|
| 224 | int16_t tyfiin; /* trackball y fifo input pointer */
|
---|
| 225 | int16_t tyflag; /* trackball y axis active flag */
|
---|
| 226 | int16_t tylast; /* trackball y axis last value */
|
---|
| 227 | int16_t tystop; /* trackball y axis filter counter */
|
---|
| 228 | int16_t velflag; /* velocity display flag */
|
---|
| 229 | int16_t verbose; /* verbose output switch */
|
---|
| 230 | int16_t vlbtype; /* type of message window display */
|
---|
| 231 | int16_t vrbw08; /* score display video reset detail word */
|
---|
| 232 | int16_t vrbw09; /* score display video reset detail word */
|
---|
| 233 | int16_t vrbw10; /* score display video reset detail word */
|
---|
| 234 | int16_t vrbw11; /* score display video reset detail word */
|
---|
| 235 | int16_t vrbw12; /* score display video reset detail word */
|
---|
| 236 | int16_t vrbw13; /* score display video reset detail word */
|
---|
| 237 | int16_t vrbw14; /* score display video reset detail word */
|
---|
| 238 | int16_t vrbw15; /* score display video reset detail word */
|
---|
| 239 | int16_t vrcw; /* score display video reset control word */
|
---|
| 240 | int16_t vtccol; /* virtual typewriter cursor column */
|
---|
| 241 | int16_t vtcrow; /* virtual typewriter cursor row */
|
---|
| 242 | int8_t vtdechr; /* virtual typewriter data entry character */
|
---|
| 243 | int16_t vtdecol; /* virtual typewriter data entry column */
|
---|
| 244 | int16_t vtpcol; /* virtual typewriter column */
|
---|
| 245 | int16_t vtprow; /* virtual typewriter row */
|
---|
| 246 | int16_t vtwcol; /* virtual typewriter window left column */
|
---|
| 247 | int16_t vtwrow; /* virtual typewriter window top row */
|
---|
| 248 | int16_t vtxval; /* virtual typewriter cursor x value */
|
---|
| 249 | int16_t vtyval; /* virtual typewriter cursor y value */
|
---|
| 250 | int16_t wcflag; /* ws/cf menu select flag (cf=0, ws=1) */
|
---|
| 251 | int16_t wcmcol; /* ws/cf menu label column */
|
---|
| 252 | int16_t wcmrow; /* ws/cf menu label row */
|
---|
| 253 | int16_t wcpage; /* ws/cf menu page */
|
---|
| 254 | int16_t wdupdfl; /* waveshape display needs updated flag */
|
---|
| 255 | int16_t wmcsel; /* ws menu ws a/b select */
|
---|
| 256 | int16_t wmctag; /* ws/cf display update flag */
|
---|
| 257 | int16_t wplast; /* last point for interpolate operation */
|
---|
| 258 | int16_t wpntsv; /* waveshape point selection state variable */
|
---|
| 259 | int16_t wshmax; /* waveshape maximum value */
|
---|
| 260 | int16_t wvlast; /* last value for interpolate operation */
|
---|
| 261 | int16_t xkcount; /* cursor x key on count */
|
---|
| 262 | int16_t xkstat; /* cursor x key status */
|
---|
| 263 | int16_t xycntr; /* xy center for cursor pad */
|
---|
| 264 | int16_t ykcount; /* cursor y key on count */
|
---|
| 265 | int16_t ykstat; /* cursor y key status */
|
---|
| 266 |
|
---|
| 267 | int16_t anrs[8][16]; /* analog variable resolution */
|
---|
| 268 | int16_t grp2prt[12][2]; /* group to port and channel table */
|
---|
| 269 | int16_t sctctab[10][64]; /* score background color table */
|
---|
| 270 | int16_t sigtab[128][2]; /* signals: [0] = value, [1] = switch */
|
---|
| 271 | int16_t tunlib[NTUNS][128]; /* tuning table library */
|
---|
| 272 | int16_t varmode[8][16]; /* analog variable record mode */
|
---|
| 273 | int16_t wsnmod[12][2]; /* waveshape number / data modified */
|
---|
[f40a309] | 274 |
|
---|
| 275 | struct EXFILE mphead; /* MIDAS-VII program header */
|
---|
| 276 | struct fet *cfetp; /* current fet entry pointer */
|
---|
| 277 | struct fet *curfet; /* current fet table pointer */
|
---|
| 278 | struct fet *infetp; /* in-field fet pointer */
|
---|
| 279 | struct gdsel *gdfsep; /* gdsel freechain pointer */
|
---|
| 280 | struct instpnt *pntptr; /* pointer to edited point */
|
---|
| 281 | struct mlibhdr ldhead; /* library header */
|
---|
| 282 | struct nevent *nefree; /* pointer to free note entries */
|
---|
| 283 | struct nevent *nelist; /* pointer to note entry list */
|
---|
| 284 | struct octent *adoct; /* assignment display object control pointer */
|
---|
| 285 | struct octent *ldoct; /* librarian object control table pointer */
|
---|
| 286 | struct octent *mdoct; /* menu display object control table pointer */
|
---|
| 287 | struct octent *tdoct; /* tuning display object control table pointer */
|
---|
| 288 | struct octent *wdoct; /* object control table pointer */
|
---|
| 289 | struct octent *idoct; /* instrument display octent pointer */
|
---|
| 290 | struct pflent *pflist; /* pendant function list header */
|
---|
| 291 | struct pflent *pfqhdr; /* pendant function list entry freechain header */
|
---|
| 292 | struct s_entry *libsp; /* librarian score pointer */
|
---|
| 293 | struct s_entry *peg; /* insert mode 'peg' to hang the tail on */
|
---|
| 294 | struct s_entry *size1; /* score E_SIZE1 entry free list pointer */
|
---|
| 295 | struct s_entry *size2; /* score E_SIZE2 entry free list pointer */
|
---|
| 296 | struct s_entry *size3; /* score E_SIZE3 entry free list pointer */
|
---|
| 297 | struct selbox *csbp; /* current select box table pointer */
|
---|
| 298 | struct selbox *curboxp; /* current select box pointer */
|
---|
| 299 | struct s_entry *p_bak; /* pointer to entry at left edge of display */
|
---|
| 300 | struct s_entry *p_cbgn; /* pointer to start of copy */
|
---|
| 301 | struct s_entry *p_cend; /* pointer to end of copy */
|
---|
| 302 | struct s_entry *p_cur; /* pointer to entry at current execution time */
|
---|
| 303 | struct s_entry *p_ctr; /* pointer to entry at center of display */
|
---|
| 304 | struct s_entry *p_fwd; /* pointer to entry at right edge of display */
|
---|
| 305 | struct n_entry *p_nbeg; /* pointer to note begin */
|
---|
| 306 | struct n_entry *p_nend; /* pointer to note end */
|
---|
| 307 | struct s_entry *p_sbgn; /* pointer to start of section */
|
---|
| 308 | struct s_entry *p_sec1; /* pointer to start of 1st section */
|
---|
| 309 | struct s_entry *p_sec2; /* pointer to start of 2nd section */
|
---|
| 310 | struct s_entry *p_send; /* pointer to end of section */
|
---|
| 311 | struct s_entry *scp; /* current score pointer */
|
---|
| 312 |
|
---|
| 313 | struct asgent asgtab[NASGS]; /* assignment table library */
|
---|
| 314 | struct fcat filecat[FCMAX]; /* file catalog */
|
---|
| 315 | struct gdsel *gdstbc[NGDSEL]; /* center group & event status lists */
|
---|
| 316 | struct gdsel *gdstbn[NGDSEL]; /* right group & event status lists */
|
---|
| 317 | struct gdsel *gdstbp[NGDSEL]; /* left group & event status lists */
|
---|
| 318 | struct gdsel gdfsl[MAXFSL]; /* gdsel pool */
|
---|
| 319 | struct instdef idefs[NINST]; /* current instrument definitions */
|
---|
| 320 | struct n_entry *lstbgns[NLSTENTS]; /* last note begin entry table */
|
---|
| 321 | struct n_entry *lstends[NLSTENTS]; /* last note end entry table */
|
---|
| 322 | struct instdef vbufs[12]; /* voice instrument buffers */
|
---|
| 323 | struct nevent nevents[NNEVTS]; /* note event list */
|
---|
| 324 | struct pflent pfents[NPFENTS]; /* pendant function list entry pool */
|
---|
| 325 | struct scndx sindex[N_SCORES]; /* score file table of contents */
|
---|
| 326 | struct sment *vpsms[192]; /* voice parameter general S/M pointer table */
|
---|
| 327 | struct sment sments[192]; /* source multiplier assignment table */
|
---|
| 328 | struct valent valents[NGPSRS]; /* source value table */
|
---|
| 329 | struct wstbl wslib[NUMWAVS]; /* waveshape library */
|
---|
| 330 | struct s_entry *scores[N_SCORES]; /* Score pointer table */
|
---|
| 331 |
|
---|
| 332 | struct s_time stimes[N_SCORES][N_SECTS]; /* score section SMPTE times */
|
---|
| 333 | struct s_entry *hplist[N_SCORES][N_TYPES]; /* Score change list pointers */
|
---|
| 334 | struct s_entry *seclist[N_SCORES][N_SECTS]; /* Section pointer table */
|
---|
| 335 |
|
---|
[7258c6a] | 336 | uint16_t *asgob; /* assignment display object pointer */
|
---|
| 337 | uint16_t *consl; /* constant slice pointer */
|
---|
| 338 | uint16_t *cursl; /* current (center) slice pointer */
|
---|
| 339 | uint16_t *instob; /* instrument object pointer */
|
---|
| 340 | uint16_t *librob; /* librarian display object pointer */
|
---|
| 341 | uint16_t *menuob; /* menu display object pointer */
|
---|
| 342 | uint16_t *nxtsl; /* next (right edge) slice pointer */
|
---|
| 343 | uint16_t *obj0; /* object 0 VSDD RAM pointer */
|
---|
| 344 | uint16_t *obj1; /* object 1 VSDD RAM pointer */
|
---|
| 345 | uint16_t *obj2; /* object 2 VSDD RAM pointer */
|
---|
| 346 | uint16_t *obj3; /* object 3 VSDD RAM pointer */
|
---|
| 347 | uint16_t *obj4; /* object 4 VSDD RAM pointer */
|
---|
| 348 | uint16_t *obj5; /* object 5 VSDD RAM pointer */
|
---|
| 349 | uint16_t *obj6; /* object 6 VSDD RAM pointer */
|
---|
| 350 | uint16_t *obj7; /* object 7 VSDD RAM pointer */
|
---|
| 351 | uint16_t *obj8; /* object 8 VSDD RAM pointer */
|
---|
| 352 | uint16_t *obj9; /* object 9 VSDD RAM pointer */
|
---|
| 353 | uint16_t *obj10; /* object 10 VSDD RAM pointer */
|
---|
| 354 | uint16_t *obj11; /* object 11 VSDD RAM pointer */
|
---|
| 355 | uint16_t *obj12; /* object 12 VSDD RAM pointer */
|
---|
| 356 | uint16_t *obj13; /* object 13 VSDD RAM pointer */
|
---|
| 357 | uint16_t *obj14; /* object 14 VSDD RAM pointer */
|
---|
| 358 | uint16_t *obj15; /* object 15 VSDD RAM pointer */
|
---|
| 359 | uint16_t *prvsl; /* previous (left edge) slice pointer */
|
---|
| 360 | uint16_t *saddr; /* score VSDD RAM base pointer */
|
---|
| 361 | uint16_t *tunob; /* tuning table display object pointer */
|
---|
| 362 | uint16_t *vtobj; /* virtual typewriter display object pointer */
|
---|
| 363 | uint16_t *waveob; /* waveshape display object pointer */
|
---|
| 364 |
|
---|
| 365 | uint16_t curintp; /* current interpolate time (FPU format) */
|
---|
| 366 | uint16_t scrl; /* score VSDD object scroll register image */
|
---|
| 367 | uint16_t vtbgval; /* virtual typewriter data background color */
|
---|
| 368 | uint16_t vtfgval; /* virtual typewriter data foreground color */
|
---|
| 369 |
|
---|
| 370 | uint16_t dfbuf[4096]; /* track formatting buffer */
|
---|
| 371 | uint16_t slices[896]; /* score display slices */
|
---|
[f40a309] | 372 |
|
---|
| 373 | /* initialized variables */
|
---|
| 374 |
|
---|
[7258c6a] | 375 | int16_t debugsw = DEBUGVAL; /* debug output switch */
|
---|
[f40a309] | 376 |
|
---|
[7258c6a] | 377 | int16_t swback = SWBACK; /* scroll wheel look back count */
|
---|
| 378 | int16_t swthr = SWTHR; /* scroll wheel movement threshold */
|
---|
| 379 | int16_t swtime = SWTIME; /* scroll wheel timer scan time */
|
---|
| 380 | int16_t swwait = SWWAIT; /* scroll wheel wait count */
|
---|
[f40a309] | 381 |
|
---|
[7258c6a] | 382 | int16_t tkback = TKBACK; /* trackball FIFO look back count */
|
---|
| 383 | int16_t tkrmin = TKRMIN; /* trackball rate threshold */
|
---|
| 384 | int16_t tkthr = TKTHR; /* trackball movement threshold */
|
---|
| 385 | int16_t tktime = TKTIME; /* trackball timer scan time */
|
---|
| 386 | int16_t tkwait = TKWAIT; /* trackball wait count */
|
---|
[f40a309] | 387 |
|
---|
[7258c6a] | 388 | int16_t curhold = CURHOLD; /* cursor hold time */
|
---|
| 389 | int16_t hcwval = HCWVAL; /* graphics cursor X wait time */
|
---|
| 390 | int16_t thcwval = THCWVAL; /* text cursor H wait time */
|
---|
| 391 | int16_t tvcwval = TVCWVAL; /* text cursor V wait time */
|
---|
| 392 | int16_t vcwval = VCWVAL; /* graphics cursor Y wait time */
|
---|
[f40a309] | 393 |
|
---|
[c3aee8a] | 394 | uint16_t tmultab[] = { /* time multiplier table - indexed by voltage */
|
---|
[f40a309] | 395 |
|
---|
| 396 | 0xFFFF, 0xFAFA, 0xF627, 0xF182, 0xED09, /* 0 */
|
---|
| 397 | 0xE8BA, 0xE492, 0xE08F, 0xDCB0, 0xD8F2, /* 5 */
|
---|
| 398 | 0xD555, 0xD1D6, 0xCE73, 0xCB2C, 0xC800, /* 10 */
|
---|
| 399 | 0xC4EC, 0xC1F0, 0xBF0B, 0xBC3C, 0xB981, /* 15 */
|
---|
| 400 | 0xB6DB, 0xB448, 0xB1C7, 0xAF57, 0xACF9, /* 20 */
|
---|
| 401 | 0xAAAA, 0xA86B, 0xA63B, 0xA41A, 0xA206, /* 25 */
|
---|
| 402 | 0xA000, 0x9E06, 0x9C18, 0x9A37, 0x9861, /* 30 */
|
---|
| 403 | 0x9696, 0x94D6, 0x9320, 0x9174, 0x8FD1, /* 35 */
|
---|
| 404 | 0x8E38, 0x8CA8, 0x8B21, 0x89A2, 0x882B, /* 40 */
|
---|
| 405 | 0x86BC, 0x8555, 0x83F5, 0x829C, 0x814A, /* 45 */
|
---|
| 406 | 0x8000, 0x7EBB, 0x7D7D, 0x7C45, 0x7B13, /* 50 */
|
---|
| 407 | 0x79E7, 0x78C1, 0x77A0, 0x7684, 0x756E, /* 55 */
|
---|
| 408 | 0x745D, 0x7350, 0x7249, 0x7146, 0x7047, /* 60 */
|
---|
| 409 | 0x6F4D, 0x6E58, 0x6D66, 0x6C79, 0x6B90, /* 65 */
|
---|
| 410 | 0x6AAA, 0x69C8, 0x68EB, 0x6810, 0x6739, /* 70 */
|
---|
| 411 | 0x6666, 0x6596, 0x64C9, 0x6400, 0x6339, /* 75 */
|
---|
| 412 | 0x6276, 0x61B5, 0x60F8, 0x603D, 0x5F85, /* 80 */
|
---|
| 413 | 0x5ED0, 0x5E1E, 0x5D6E, 0x5CC0, 0x5C16, /* 85 */
|
---|
| 414 | 0x5B6D, 0x5AC7, 0x5A24, 0x5982, 0x58E3, /* 90 */
|
---|
| 415 | 0x5846, 0x57AB, 0x5713, 0x567C, 0x55E7, /* 95 */
|
---|
| 416 | 0x5555 /* 100 */
|
---|
| 417 | };
|
---|
| 418 |
|
---|
[7258c6a] | 419 | int16_t crate0[] = { /* cursor rate table 1 */
|
---|
[f40a309] | 420 |
|
---|
| 421 | 0, 0, 0, 0, 0, 0, 0, 0, /* 0..7 */
|
---|
| 422 | 0, 0, 0, 0, 1, 1, 1, 1, /* 8..15 */
|
---|
| 423 | 1, 1, 1, 1, 1, 1, 1, 1, /* 16..23 */
|
---|
| 424 | 1, 1, 1, 1, 1, 1, 1, 1, /* 24..31 */
|
---|
| 425 | 1, 1, 1, 1, 1, 1, 1, 1, /* 32..39 */
|
---|
| 426 | 1, 1, 1, 1, 1, 1, 1, 1, /* 40..47 */
|
---|
| 427 | 1, 1, 1, 1, 1, 1, 1, 1, /* 48..55 */
|
---|
| 428 | 1, 1, 1, 1, 1, 1, 1, 1 /* 56..63 */
|
---|
| 429 | };
|
---|
| 430 |
|
---|
[7258c6a] | 431 | int16_t crate1[] = { /* cursor rate table 1 */
|
---|
[f40a309] | 432 |
|
---|
| 433 | 0, 0, 0, 0, 0, 0, 0, 0, /* 0..7 */
|
---|
| 434 | 1, 1, 1, 1, 1, 1, 1, 1, /* 8..15 */
|
---|
| 435 | 3, 3, 3, 3, 3, 3, 3, 3, /* 16..23 */
|
---|
| 436 | 5, 5, 5, 5, 5, 5, 5, 5, /* 24..31 */
|
---|
| 437 | 7, 7, 7, 7, 7, 7, 7, 7, /* 32..39 */
|
---|
| 438 | 9, 9, 9, 9, 9, 9, 9, 9, /* 40..47 */
|
---|
| 439 | 11, 11, 11, 11, 11, 11, 11, 11, /* 48..55 */
|
---|
| 440 | 13, 13, 13, 13, 13, 13, 13, 13 /* 56..63 */
|
---|
| 441 | };
|
---|
| 442 |
|
---|
[7258c6a] | 443 | int16_t crate2[] = { /* cursor rate table 2 */
|
---|
[f40a309] | 444 |
|
---|
| 445 | 0, 0, 0, 0, 0, 0, 0, 0, /* 0..7 */
|
---|
| 446 | 1, 1, 1, 1, 1, 1, 1, 1, /* 8..15 */
|
---|
| 447 | 2, 2, 2, 2, 2, 2, 2, 2, /* 16..23 */
|
---|
| 448 | 4, 4, 4, 4, 8, 8, 8, 8, /* 24..31 */
|
---|
| 449 | 16, 16, 16, 16, 32, 32, 32, 32, /* 32..39 */
|
---|
| 450 | 64, 64, 64, 64,128,128,128,128, /* 40..47 */
|
---|
| 451 | 96, 96, 96, 96,256,256,256,256, /* 48..55 */
|
---|
| 452 | 256,256,256,256,256,256,256,256 /* 56..63 */
|
---|
| 453 | };
|
---|
| 454 |
|
---|
[7258c6a] | 455 | int16_t loctab[9] = {
|
---|
[f40a309] | 456 |
|
---|
| 457 | 0, /* 0 - left */
|
---|
| 458 |
|
---|
| 459 | 125 << 5, /* 1 */
|
---|
| 460 | 250 << 5, /* 2 */
|
---|
| 461 | 375 << 5, /* 3 */
|
---|
| 462 |
|
---|
| 463 | 500 << 5, /* 4 - center */
|
---|
| 464 |
|
---|
| 465 | 625 << 5, /* 5 */
|
---|
| 466 | 750 << 5, /* 6 */
|
---|
| 467 | 875 << 5, /* 7 */
|
---|
| 468 |
|
---|
| 469 | 1000 << 5 /* 8 - right */
|
---|
| 470 | };
|
---|
| 471 |
|
---|
| 472 | /*
|
---|
| 473 | =============================================================================
|
---|
| 474 | valof() -- return initial value of a source
|
---|
| 475 | =============================================================================
|
---|
| 476 | */
|
---|
| 477 |
|
---|
[7258c6a] | 478 | int16_t valof(int16_t srcv)
|
---|
[f40a309] | 479 | {
|
---|
| 480 | switch (srcv) {
|
---|
| 481 |
|
---|
| 482 | case SM_NONE: /* -none- */
|
---|
| 483 | return(0);
|
---|
| 484 |
|
---|
| 485 | case SM_RAND: /* Random */
|
---|
| 486 | return(xgetran(0));
|
---|
| 487 |
|
---|
| 488 | case SM_CTL1: /* Ctl V1 */
|
---|
| 489 | return(SM_SCALE(sigtab[79][0]));
|
---|
| 490 |
|
---|
| 491 | case SM_PTCH: /* Pitch */
|
---|
| 492 | case SM_KPRS: /* Key Prs */
|
---|
| 493 | case SM_KVEL: /* Key Vel */
|
---|
| 494 | return(0);
|
---|
| 495 |
|
---|
| 496 | case SM_PED1: /* Pedal 1 */
|
---|
| 497 | return(SM_SCALE(sigtab[77][0]));
|
---|
| 498 |
|
---|
| 499 | case SM_HTPW: /* Hor Tab / Pch Whl */
|
---|
| 500 | return(0);
|
---|
| 501 |
|
---|
| 502 | case SM_VTMW: /* Vrt Tab / Mod Whl */
|
---|
| 503 | return(SM_SCALE(sigtab[54][0]));
|
---|
| 504 |
|
---|
| 505 | case SM_LPBR: /* LongPot / Breath */
|
---|
| 506 | return(SM_SCALE(sigtab[57][0]));
|
---|
| 507 |
|
---|
| 508 | default:
|
---|
| 509 | return(0);
|
---|
| 510 | }
|
---|
| 511 | }
|
---|
| 512 |
|
---|
| 513 | /*
|
---|
| 514 | =============================================================================
|
---|
| 515 | inismtb() -- initialize source / multiplier data structures
|
---|
| 516 | =============================================================================
|
---|
| 517 | */
|
---|
| 518 |
|
---|
[0580615] | 519 | void inismtb(void)
|
---|
[f40a309] | 520 | {
|
---|
[7258c6a] | 521 | register int16_t i, oldi;
|
---|
[f40a309] | 522 |
|
---|
| 523 | oldi = setipl(FPU_DI);
|
---|
| 524 |
|
---|
| 525 | /* ++++++++++++++++++++++++++++ FPU interrupts disabled +++++++++++++++++++++ */
|
---|
| 526 |
|
---|
| 527 | for (i = 0; i < NGPSRS; i++) {
|
---|
| 528 |
|
---|
| 529 | valents[i].nxt = &valents[i];
|
---|
| 530 | valents[i].prv = &valents[i];
|
---|
| 531 | valents[i].val = valof(i & 0x000F);
|
---|
| 532 | }
|
---|
| 533 |
|
---|
| 534 | for (i = 0; i < 192; i++) {
|
---|
| 535 |
|
---|
| 536 | vpsms[i] = &sments[i];
|
---|
| 537 |
|
---|
| 538 | sments[i].prv = (struct sment *)&valents[0];
|
---|
| 539 | sments[i].nxt = valents[0].nxt;
|
---|
| 540 |
|
---|
| 541 | valents[0].nxt->prv = &sments[i];
|
---|
| 542 | valents[0].nxt = &sments[i];
|
---|
| 543 |
|
---|
| 544 | sments[i].vp = i;
|
---|
| 545 | sments[i].sm = 0;
|
---|
| 546 | }
|
---|
| 547 |
|
---|
| 548 | setipl(oldi);
|
---|
| 549 |
|
---|
| 550 | /* ++++++++++++++++++++++++++++ Interrupts restored +++++++++++++++++++++++++ */
|
---|
| 551 |
|
---|
| 552 | }
|
---|
| 553 |
|
---|
| 554 | /*
|
---|
| 555 | =============================================================================
|
---|
| 556 | clrpfl() -- clear pendant function list
|
---|
| 557 | =============================================================================
|
---|
| 558 | */
|
---|
| 559 |
|
---|
[0580615] | 560 | void clrpfl(void)
|
---|
[f40a309] | 561 | {
|
---|
[7258c6a] | 562 | register int16_t i;
|
---|
[f40a309] | 563 |
|
---|
| 564 | memsetw(&pfents[0], 0, (NPFENTS * sizeof (struct pflent))/2);
|
---|
| 565 |
|
---|
| 566 | for (i = 0; i < NPFENTS-1; i++)
|
---|
| 567 | pfents[i].nextpf = &pfents[i+1];
|
---|
| 568 |
|
---|
| 569 | pfqhdr = &pfents[0];
|
---|
| 570 | pflist = (struct pflent *)NULL;
|
---|
| 571 | }
|
---|
| 572 |
|
---|
| 573 | /*
|
---|
| 574 | =============================================================================
|
---|
| 575 | im700() -- initialize MIDAS 700
|
---|
| 576 | =============================================================================
|
---|
| 577 | */
|
---|
| 578 |
|
---|
[0580615] | 579 | void im700(void)
|
---|
[f40a309] | 580 | {
|
---|
[7258c6a] | 581 | register int16_t i, j, k;
|
---|
| 582 | register int8_t *ioadr;
|
---|
[f40a309] | 583 | register struct instdef *ip;
|
---|
| 584 |
|
---|
| 585 | debugsw = DEBUGVAL; /* initialize debug switch */
|
---|
| 586 |
|
---|
| 587 | GLCinit(); /* initialize the GLC */
|
---|
| 588 | GLCcurs(G_ON);
|
---|
| 589 | GLCtext(2, 1, "MIDAS 7 -- Initialization in progress -- Please stand by");
|
---|
| 590 | GLCcurs(G_OFF);
|
---|
| 591 |
|
---|
| 592 | vsndpal(blakpal); /* setup the blackout palette */
|
---|
| 593 |
|
---|
| 594 | VHinit(); /* clear the video hardware */
|
---|
| 595 | VSinit(); /* ... and the video software */
|
---|
| 596 |
|
---|
| 597 | memset(keystat, 0, 24); /* clear front panel key status */
|
---|
| 598 | memset(trgtab, 0, NTRIGS); /* clear trigger status table */
|
---|
| 599 | memset(mctlval, 0, NCTRLS); /* clear MIDI controller values */
|
---|
| 600 |
|
---|
| 601 | memsetw(grpmode, 0, 12); /* set all groups to PLAY */
|
---|
| 602 | memsetw(grpstat, GS_ENBL, 12); /* enable all groups for param. artic. */
|
---|
| 603 | memsetw(grpsel, TRUE, 12); /* enable all groups for instr. sel. */
|
---|
| 604 | memsetw(sigtab, 0, ((sizeof sigtab) / (sizeof sigtab[0][0])));
|
---|
| 605 |
|
---|
| 606 | memsetw(veltab, SM_SCALE(64), NTRIGS); /* clear velocity table */
|
---|
| 607 | memsetw(lastvel, SM_SCALE(64), 12); /* clear last velocity table */
|
---|
| 608 | memsetw(prstab, 0, NTRIGS); /* clear pressure table */
|
---|
| 609 |
|
---|
| 610 | curintp = tofpu(100); /* set default interpolate time */
|
---|
| 611 |
|
---|
| 612 | angroup = -1; /* analog values: group 1, not shown */
|
---|
| 613 | ancmsw = FALSE; /* analog variable mode from grpmode */
|
---|
| 614 | velflag = FALSE; /* velocity not displayed */
|
---|
| 615 |
|
---|
| 616 | dubsw = TRUE; /* set overdub mode */
|
---|
| 617 |
|
---|
| 618 | sd = D_FWD; /* set display direction */
|
---|
| 619 | se = D_FWD; /* set execution direction */
|
---|
| 620 |
|
---|
| 621 | swinit(); /* reset the scroll wheel variables */
|
---|
| 622 |
|
---|
| 623 | inismtb(); /* clear the S/M data structures */
|
---|
| 624 | clrnl(); /* clear note entry lists */
|
---|
| 625 | clrpfl(); /* clear pendant function list */
|
---|
| 626 |
|
---|
| 627 | lstbgnc = 0; /* reset last note begin count */
|
---|
| 628 | lstendc = 0; /* reset last note end count */
|
---|
| 629 | lstflag = TRUE; /* set end of note entry list flag */
|
---|
| 630 |
|
---|
| 631 | memsetw(lstbgns, 0, (NLSTENTS << 1)); /* clear note begin list */
|
---|
| 632 | memsetw(lstends, 0, (NLSTENTS << 1)); /* clear note end list */
|
---|
| 633 |
|
---|
| 634 | /* set funcndx[] entries */
|
---|
| 635 |
|
---|
| 636 | for (i = 0; i < 12; i++) {
|
---|
| 637 |
|
---|
| 638 | ip = &vbufs[i];
|
---|
| 639 |
|
---|
| 640 | for (j = 0; j < NFINST; j++) {
|
---|
| 641 |
|
---|
| 642 | k = (i << 4) + fnoff[j];
|
---|
| 643 |
|
---|
| 644 | funcndx[k][0] = &ip->idhfnc[j];
|
---|
| 645 | funcndx[k][1] = ip->idhpnt;
|
---|
| 646 | }
|
---|
| 647 | }
|
---|
| 648 |
|
---|
[fa38804] | 649 |
|
---|
[f40a309] | 650 | for (i = 0; i < 3; i++) { /* reset the state machines */
|
---|
| 651 |
|
---|
| 652 | msmstv[i] = 0; /* state = 0 */
|
---|
| 653 | mrstat[i] = 0; /* clear running status */
|
---|
| 654 | mdbyte[i] = 0; /* clear first byte buffer */
|
---|
| 655 | masens[i] = 0; /* clear active sensing */
|
---|
| 656 | }
|
---|
| 657 |
|
---|
| 658 | for (i = 0; i < 48; i++) {
|
---|
| 659 |
|
---|
| 660 | mpbend[i] = 0; /* clear bend values */
|
---|
| 661 | mpsust[i] = 0; /* clear sustain values */
|
---|
| 662 | }
|
---|
| 663 |
|
---|
| 664 | for (i = 0; i < 12; i++) {
|
---|
| 665 |
|
---|
| 666 | for (j = 0; j < 6; j++) {
|
---|
| 667 |
|
---|
| 668 | varmode[j][i] = 0; /* set r/p mode */
|
---|
| 669 | anrs[j][i] = 4; /* set analog resolution */
|
---|
| 670 | }
|
---|
| 671 |
|
---|
| 672 | setdyn(i, 6); /* set group dynamics */
|
---|
| 673 | setloc(i, 4); /* set group locations */
|
---|
| 674 | lastvce[i] = 0; /* clear last voice assigned */
|
---|
| 675 | vce2trg[i] = -1; /* clear voice to trigger table */
|
---|
| 676 | }
|
---|
| 677 |
|
---|
| 678 | for (i = 0; i < NLTYPES; i++) {
|
---|
| 679 |
|
---|
| 680 | memset(loadedc[i], ' ', 37);
|
---|
| 681 | memset(loadedf[i], ' ', 8);
|
---|
| 682 | }
|
---|
| 683 |
|
---|
| 684 | memset(ldfile, ' ', 8); /* clear the library file name field */
|
---|
| 685 | ldfile[8] = '\0';
|
---|
| 686 |
|
---|
| 687 | memset(ldcmnt, ' ', 37); /* clear the library comment field */
|
---|
| 688 | ldcmnt[37] = '\0';
|
---|
| 689 |
|
---|
[fa38804] | 690 |
|
---|
[f40a309] | 691 | xkcount = 1; /* reset cursor control variables */
|
---|
| 692 | ykcount = 1;
|
---|
| 693 | xycntr = XYCENTRE;
|
---|
| 694 |
|
---|
| 695 | clksrc = CK_LOCAL; /* clock source = local */
|
---|
| 696 | clkctl = CK_LOCAL; /* clock control = local */
|
---|
| 697 | clkrun = FALSE; /* clock stopped */
|
---|
| 698 | midiclk = FALSE; /* ... */
|
---|
| 699 | pulsclk = FALSE; /* ... */
|
---|
| 700 | stepclk = FALSE; /* ... */
|
---|
| 701 | fc_sw = 0; /* stop the frame clock */
|
---|
| 702 | fc_val = 0L; /* ... and reset it */
|
---|
| 703 | scrlpot = 0; /* not scrolling */
|
---|
| 704 | tmpomlt = 50; /* initialize tempo multiplier */
|
---|
| 705 | io_leds = 0x18; /* ... and turn off the LEDs */
|
---|
| 706 | io_leds = 0x19; /* ... */
|
---|
| 707 | settmpo(60); /* set default tempo */
|
---|
| 708 |
|
---|
| 709 | timemlt = tmultab[50]; /* initialize time scaling */
|
---|
| 710 | io_leds = 0x1A;
|
---|
| 711 | io_leds = 0x1B;
|
---|
| 712 |
|
---|
| 713 | tuneval = 0; /* initialize fine tuning */
|
---|
| 714 | io_leds = 0x1C;
|
---|
| 715 | io_leds = 0x1D;
|
---|
| 716 |
|
---|
| 717 | for (i = 0; i < 12; i++) /* setup default values for gtctab */
|
---|
| 718 | gtctab[i] = ((i+3) << 12) | ((i+3) << 8) | ((i+3) << 4) | (i+3);
|
---|
| 719 |
|
---|
| 720 | editsw = FALSE; /* setup edit switch state */
|
---|
| 721 | io_leds = 0x1E;
|
---|
| 722 | ioadr = &io_ser + 2L;
|
---|
| 723 | editss = *ioadr & 0x0008;
|
---|
| 724 |
|
---|
| 725 | ac_code = N_SHARP; /* default accidentals to display as sharps */
|
---|
| 726 |
|
---|
| 727 | memsetw(articen, TRUE, 12); /* enable articulation for all voices */
|
---|
[fa38804] | 728 |
|
---|
[f40a309] | 729 | curmove = cmvgen;
|
---|
| 730 | premove = nokey;
|
---|
| 731 | pstmove = nokey;
|
---|
| 732 | curtype = stdctp2;
|
---|
| 733 |
|
---|
| 734 | x_key = nokey; /* setup default key processors */
|
---|
| 735 | e_key = nokey;
|
---|
| 736 | m_key = stdmkey;
|
---|
| 737 | d_key = nokey;
|
---|
| 738 |
|
---|
[60288f5] | 739 | not_fld = nonf;
|
---|
[f40a309] | 740 |
|
---|
| 741 | cx_key = cxkstd; /* setup default cursor processors */
|
---|
| 742 | cy_key = cykstd;
|
---|
| 743 | cx_upd = cxgen;
|
---|
| 744 | cy_upd = cygen;
|
---|
| 745 | xy_up = nokey;
|
---|
| 746 | xy_dn = nokey;
|
---|
| 747 |
|
---|
| 748 | curslim = 349; /* cursor limit for graphics to text switch */
|
---|
| 749 |
|
---|
| 750 | chtime = hcwval; /* initialize default cursor wait times */
|
---|
| 751 | cvtime = vcwval;
|
---|
| 752 | nchwait = curhold;
|
---|
| 753 | ncvwait = curhold;
|
---|
| 754 | chwait = 1;
|
---|
| 755 | cvwait = 1;
|
---|
| 756 |
|
---|
| 757 | cratex = crate1; /* initialize default cursor x rate table */
|
---|
| 758 | cratey = crate1; /* initialize default cursor y rate table */
|
---|
| 759 |
|
---|
| 760 | cmfirst = TRUE; /* setup for first motion of cursor */
|
---|
| 761 | cmtype = CT_GRAF;
|
---|
| 762 |
|
---|
| 763 | cxval = XCTR; /* default cursor to center of screen */
|
---|
| 764 | cyval = YCTR;
|
---|
| 765 |
|
---|
| 766 | stcrow = cyval / 14; /* keep text position in sync */
|
---|
| 767 | stccol = cxval / 8;
|
---|
| 768 |
|
---|
| 769 | submenu = FALSE; /* no submenu up to start with */
|
---|
[fa38804] | 770 |
|
---|
[f40a309] | 771 | curinst = 0; /* current instrument = 0 */
|
---|
| 772 | curfunc = 12; /* current function = 12 = level */
|
---|
| 773 | curvce = 0; /* current voice = 0 */
|
---|
| 774 |
|
---|
| 775 | asmode = FALSE; /* deselect assignment mode */
|
---|
| 776 | gomode = GO_NULL; /* deselect go to mode */
|
---|
| 777 | ismode = IS_NULL; /* deselect instrument select mode */
|
---|
| 778 | pkctrl = PK_PFRM; /* select local performance key state */
|
---|
| 779 | oldpk = pkctrl; /* ... */
|
---|
| 780 | sliders = LS_PRMTR; /* setup the LCD display pots and switches */
|
---|
| 781 | oldsl = sliders; /* ... */
|
---|
[6dd74a9] | 782 | swpt = &t_prmtr; /* ... */
|
---|
[f40a309] | 783 | oldsw = swpt; /* ... */
|
---|
| 784 | setleds(); /* set performance keyboard leds */
|
---|
| 785 |
|
---|
| 786 | initpt(); /* initialize the patch table */
|
---|
| 787 | initsq(); /* initialize the sequence table */
|
---|
| 788 | initil(); /* initialize the instrument library */
|
---|
| 789 | iniwslb(); /* initialize the waveshape library */
|
---|
| 790 | inital(); /* initialize the assignment library */
|
---|
| 791 | inittl(); /* initialize the tuning table library */
|
---|
| 792 | scinit(); /* initialize the score */
|
---|
| 793 |
|
---|
| 794 | clearer(1, 0); /* reset the fpu to its nominal values */
|
---|
| 795 | getasg(curasg = 0); /* setup default assignments */
|
---|
| 796 |
|
---|
| 797 | lcdlbls(); /* put up the LCD display */
|
---|
| 798 | lampsw = FALSE; /* enable LCD timeout */
|
---|
| 799 | }
|
---|
[6262b5c] | 800 |
|
---|