97
94
#define MR_R19 RES_K(22) /* verified */
98
95
#define MR_R20 RES_K(22) /* verified */
99
96
#define MR_R40 RES_K(22) /* verified */
100
#define MR_R41 RES_K(100) /* verified, hard to read */
101
#define MR_R42 RES_K(43)
102
#define MR_R43 RES_K(100)
103
#define MR_R61 RES_K(47) /* verified, hard to read */
97
#define MR_R41 RES_K(100) /* verified */
98
#define MR_R42 RES_K(43) /* verified */
99
#define MR_R43 RES_K(100) /* verified */
100
#define MR_R61 RES_K(47) /* verified */
104
101
#define MR_R64 RES_K(20) /* verified */
105
102
#define MR_R65 RES_K(10) /* verified */
107
104
#define MR_C3 CAP_U(10) /* verified */
108
#define MR_C4 CAP_U(4.7) /* illegible, 4.7 or 47 pcb/schematics */
109
/* 4.7 in parts list */
110
#define MR_C5 CAP_N(39) /* illegible on pcb */
111
#define MR_C6 CAP_N(3.9) /* illegible on pcb */
105
#define MR_C4 CAP_U(4.7) /* verified */
106
#define MR_C5 CAP_N(39) /* verified */
107
#define MR_C6 CAP_N(3.9) /* verified */
112
108
#define MR_C14 CAP_U(4.7) /* verified */
113
109
#define MR_C15 CAP_U(4.7) /* verified */
114
110
#define MR_C16 CAP_N(6.8) /* verified */
115
#define MR_C17 CAP_N(22) /* illegible on pcb */
116
#define MR_C31 CAP_U(0.022) /* not found */
117
#define MR_C32 CAP_U(1) /* illegible on pcb */
118
#define MR_C39 CAP_N(4.7) /* not found */
111
#define MR_C17 CAP_N(22) /* verified */
112
#define MR_C30 CAP_P(100) /* verified */
113
#define MR_C31 CAP_U(0.022) /* verified */
114
#define MR_C32 CAP_U(1) /* verified */
115
#define MR_C39 CAP_N(4.7) /* verified */
119
116
#define MR_C40 CAP_N(22) /* verified */
120
//#define MR_C41 CAP_U(4.7) /* verified, hard to read */
121
#define MR_C41 CAP_U(4.7)
117
#define MR_C41 CAP_U(4.7) /* verified */
122
118
#define MR_C43 CAP_U(3.3) /* verified */
123
119
#define MR_C44 CAP_U(3.3) /* verified */
273
312
/************************************************/
275
314
/* DISCRETE_INPUT_DATA */
276
DISCRETE_INPUT_PULSE(DS_SOUND0_INV, 1)
277
DISCRETE_INPUT_PULSE(DS_SOUND1_INV, 1)
278
315
DISCRETE_INPUT_NOT(DS_SOUND7_INV)
279
DISCRETE_INPUT_DATA(DS_DAC)
281
317
/************************************************/
283
319
/************************************************/
285
DISCRETE_LS123(NODE_10, DS_SOUND0_INV, MR_R17, CAP_AGE(MR_C14, 0.7))
286
DISCRETE_RCFILTER(NODE_11, 1, NODE_10, MR_R6, CAP_AGE(MR_C3, 0.5) )
287
DISCRETE_CUSTOM7(NODE_12, NODE_10, NODE_11, NODE_11, MR_C6, MR_C17,
321
DISCRETE_TASK_START(1)
322
DISCRETE_INPUT_PULSE(DS_SOUND0_INV, 1)
323
DISCRETE_LS123(NODE_10, DS_SOUND0_INV, MR_R17, MR_C14)
324
DISCRETE_RCFILTER(NODE_11, NODE_10, MR_R6, MR_C3 )
326
DISCRETE_74LS629(NODE_12, /* IC 1J, pin 10 */
328
NODE_11, 5, /* VMOD, VRNG */
329
MR_C6, RES_2_PARALLEL(MR_R6, LS629_FREQ_R_IN), /* C, R_FREQ_IN */
330
DISC_LS624_OUT_SQUARE)
331
DISCRETE_74LS629(NODE_13, /* IC 2J, pin 10 */
333
NODE_11, 5, /* VMOD, VRNG */
334
MR_C17, RES_2_PARALLEL(MR_R6, LS629_FREQ_R_IN), /* C, R_FREQ_IN */
335
DISC_LS624_OUT_SQUARE)
336
DISCRETE_LOGIC_XOR(NODE_14, /* IC 1K, pin 6 */
338
DISCRETE_SWITCH(DS_OUT_SOUND0, /* IC 2K, pin 3 */
339
NODE_10, NODE_14, /* ENAB, SWITCH */
340
0, TTL_HIGH) /* INP0,INP1 */
342
DISCRETE_CUSTOM7(DS_OUT_SOUND0, NODE_10, NODE_11, NODE_11, MR_C6, MR_C17,
288
343
MR_MIXER_RPAR, MR_C31, &mario_custom_run_info)
289
DISCRETE_MULTIPLY(DS_OUT_SOUND0, 1, NODE_12, MR_MIXER_RPAR / MR_R20)
291
347
/************************************************/
293
349
/************************************************/
295
DISCRETE_LS123(NODE_20, DS_SOUND1_INV, MR_R18, CAP_AGE(MR_C15, 0.7))
296
DISCRETE_RCFILTER(NODE_21, 1, NODE_20, MR_R7, CAP_AGE(MR_C4, 0.5) )
297
DISCRETE_CUSTOM7(NODE_22, NODE_20, NODE_21, NODE_21, MR_C5, MR_C16,
351
DISCRETE_TASK_START(1)
352
DISCRETE_INPUT_PULSE(DS_SOUND1_INV, 1)
353
DISCRETE_LS123(NODE_20, DS_SOUND1_INV, MR_R18, MR_C15)
354
DISCRETE_RCFILTER(NODE_21, NODE_20, MR_R7, MR_C4 )
356
DISCRETE_74LS629(NODE_22, /* IC 1J, pin 7 */
358
NODE_21, 5, /* VMOD, VRNG */
359
MR_C5, RES_2_PARALLEL(MR_R7, LS629_FREQ_R_IN), /* C, R_FREQ_IN */
360
DISC_LS624_OUT_SQUARE)
361
DISCRETE_74LS629(NODE_23, /* IC 2J, pin 7 */
363
NODE_21, 5, /* VMOD, VRNG */
364
MR_C16, RES_2_PARALLEL(MR_R7, LS629_FREQ_R_IN), /* C, R_FREQ_IN */
365
DISC_LS624_OUT_SQUARE)
366
DISCRETE_LOGIC_XOR(NODE_24, /* IC 1K, pin 3 */
368
DISCRETE_SWITCH(DS_OUT_SOUND1, /* IC 2K, pin 3 */
369
NODE_20, NODE_24, /* ENAB, SWITCH */
370
0, TTL_HIGH) /* INP0,INP1 */
372
DISCRETE_CUSTOM7(DS_OUT_SOUND1, NODE_20, NODE_21, NODE_21, MR_C5, MR_C16,
298
373
MR_MIXER_RPAR, MR_C31, &mario_custom_run_info)
299
DISCRETE_MULTIPLY(DS_OUT_SOUND1, 1, NODE_22, MR_MIXER_RPAR / MR_R19)
301
377
/************************************************/
303
379
/************************************************/
305
DISCRETE_COUNTER(NODE_100,1,0,NODE_118,0xFFFF,DISC_COUNT_UP,0,DISC_CLK_BY_COUNT)
307
DISCRETE_BITSET(NODE_102, NODE_100, 4) //LS157 2B
308
DISCRETE_BITSET(NODE_104, NODE_100, 12) //LS157 3B
310
DISCRETE_LS123(NODE_110, DS_SOUND7_INV, MR_R61, CAP_AGE(MR_C41, 0.6))
381
DISCRETE_TASK_START(1)
382
DISCRETE_COUNTER(NODE_100,1,0,NODE_118,0,0xFFFF,DISC_COUNT_UP,0,DISC_CLK_BY_COUNT)
384
DISCRETE_BIT_DECODE(NODE_102, NODE_100, 3, 1) //LS157 2B
385
DISCRETE_BIT_DECODE(NODE_104, NODE_100, 11, TTL_HIGH) //LS157 3B
387
DISCRETE_LS123(NODE_110, DS_SOUND7_INV, MR_R61, MR_C41)
311
388
DISCRETE_TRANSFORM2(NODE_111, NODE_110, TTL_HIGH, "0!1*")
312
DISCRETE_RCFILTER(NODE_112, 1, NODE_111, MR_R65, MR_C44)
313
DISCRETE_74LS624(NODE_113, 1, NODE_112, VSS, MR_C40, DISC_LS624_OUT_LOGIC)
315
DISCRETE_LOGIC_XOR(NODE_115, 1, NODE_102, NODE_113)
317
DISCRETE_TRANSFORM2(NODE_116, NODE_104, TTL_HIGH, "0!1*")
318
DISCRETE_RCFILTER(NODE_117, 1, NODE_116, MR_R64, MR_C43)
319
DISCRETE_74LS624(NODE_118, 1, NODE_117, VSS, MR_C39, DISC_LS624_OUT_COUNT_F)
321
DISCRETE_LOGIC_AND(NODE_120, 1, NODE_115, NODE_110)
322
DISCRETE_MULTIPLY(NODE_121, 1, NODE_120, TTL_HIGH * MR_MIXER_RPAR / MR_R41)
323
DISCRETE_RCFILTER(DS_OUT_SOUND7, 1, NODE_121, MR_MIXER_RPAR, MR_C31)
389
DISCRETE_RCFILTER(NODE_112, NODE_111, MR_R65, MR_C44)
391
DISCRETE_74LS629(NODE_113, /* IC 4K, pin 10 */
393
NODE_112, 5, /* VMOD, VRNG */
394
MR_C40, MR_R65, /* C, R_FREQ_IN */
395
DISC_LS624_OUT_LOGIC)
397
DISCRETE_74LS624(NODE_113, NODE_112, RUN_VCO_VOLTAGE /*VSS*/, MR_C40, DISC_LS624_OUT_LOGIC)
400
DISCRETE_LOGIC_XOR(NODE_115, NODE_102, NODE_113)
402
DISCRETE_RCFILTER(NODE_117, NODE_104, MR_R64, MR_C43)
404
DISCRETE_74LS629(NODE_118, /* IC 4K, pin 7 */
406
NODE_117, 5, /* VMOD, VRNG */
407
MR_C39, MR_R64, /* C, R_FREQ_IN */
408
DISC_LS624_OUT_LOGIC)
410
DISCRETE_74LS624(NODE_118, NODE_117, RUN_VCO_VOLTAGE /*VSS*/, MR_C39, DISC_LS624_OUT_COUNT_F)
412
DISCRETE_LOGIC_AND(NODE_120, NODE_115, NODE_110)
413
DISCRETE_MULTIPLY(DS_OUT_SOUND7, NODE_120, TTL_HIGH)
325
416
/************************************************/
330
421
* is a filter circuit. Simulation in LTSPICE shows, that the following is equivalent:
333
DISCRETE_MULTIPLY(NODE_170, 1, DS_DAC, TTL_HIGH/256.0)
334
DISCRETE_RCFILTER(NODE_171, 1, NODE_170, RES_K(750), CAP_P(200))
336
DISCRETE_MULTIPLY(NODE_172, 1, NODE_171, MR_MIXER_RPAR / MR_R40)
337
DISCRETE_RCFILTER(DS_OUT_DAC, 1, NODE_172, MR_MIXER_RPAR, MR_C31)
424
DISCRETE_TASK_START(1)
425
DISCRETE_INPUT_BUFFER(DS_DAC, 0)
426
DISCRETE_MULTIPLY(NODE_170, DS_DAC, TTL_HIGH/256.0)
427
DISCRETE_RCFILTER(DS_OUT_DAC, NODE_170, RES_K(750), CAP_P(200))
340
431
/************************************************/
342
433
/************************************************/
344
DISCRETE_ADDER4(NODE_295, 1, DS_OUT_SOUND0, DS_OUT_SOUND1, DS_OUT_SOUND7, DS_OUT_DAC)
346
/* Amplifier: internal amplifier
347
* Just a 1:n amplifier without filters and no output capacitor
349
DISCRETE_CRFILTER(NODE_296, 1, NODE_295, RES_2_PARALLEL(MR_R42, MR_R43), MR_C32)
350
/* EZV20 (Monitor) ouput capacitor / Speaker */
351
DISCRETE_CRFILTER(NODE_297, 1, NODE_296, 6, CAP_U(22))
352
DISCRETE_OUTPUT(NODE_297, 32767.0/5.0 * 10)
353
//DISCRETE_WAVELOG1(DS_OUT_SOUND0, 32767/5.0)
354
//DISCRETE_WAVELOG2(NODE_296, 32767/5.0 * 2, DS_SOUND7_INV, 10000)
435
DISCRETE_TASK_START(2)
436
DISCRETE_MIXER4(NODE_297,
438
DS_OUT_SOUND0, DS_OUT_SOUND1, DS_OUT_SOUND7, DS_OUT_DAC,
440
DISCRETE_OUTPUT(NODE_297, 32767.0/1.7)
356
443
DISCRETE_SOUND_END