FMonster, the monster of sound synth

Discussion about old sound cards, MIDI devices and sound related accessories.

Re: FMonster, the monster of sound synth

Postby Fagear » 2018-8-16 @ 22:04

It's time to optimize again! :lol: With that many ICs on the maximum size board it is always important.
Remember when OPL2 block was shrinked from 59 mm to 49 mm?
OPL2_2018-05-25_02.png
OPL2 stage 2: 49 mm


Now it was shrinked again to 37 mm.
OPL2_2018-08-16.png
OPL2 stage 3: 37 mm


I've ditched IRQ jumper block and added part of the mixer - OPL2 volume control.
Now the biggest block is ISSI... I have to think about it more.

Update on production: debug boards are almost ready for shipment to me.
User avatar
Fagear
Member
 
Posts: 208
Joined: 2014-7-10 @ 22:27
Location: Russia, Moscow

Re: FMonster, the monster of sound synth

Postby Tiido » 2018-8-16 @ 23:47

There is one thing I suggest you add, which is at least 12bit address decode. With 10 bits you get lot of mirrors which can make coexisting with other devices difficult, i.e something on your card at $210 will also appear at $610, $A10 and $E10. For example on my card some default addresses are $A20 and $A28 and with something that uses 10 bit decode there will be a clash at $220 and $228. Things like AWE32 cards and some others also put things at addresses beyond $3FF.
You could gate AEN if A10, A11 are not zero, it will only need one extra chip and won't require you to redesign any of the subcomponents. If the chip used allows more lines to be looked at, that would be good too. On my card there's 12 bit decode on chipset level and 16bit is achieved via CPLD looking if A12...A15 are zero and only passing AEN then.
EDIT: corrected a fault.
Last edited by Tiido on 2018-8-17 @ 00:52, edited 1 time in total.
User avatar
Tiido
Member
 
Posts: 402
Joined: 2018-1-14 @ 04:40
Location: Estonia

Re: FMonster, the monster of sound synth

Postby Fagear » 2018-8-17 @ 00:12

Tiido wrote:There is one thing I suggest you add, which is at least 12bit address decode. With 10 bits you get lot of mirrors which can make coexisting with other devices difficult, i.e something on your card at $210 will also appear at $610, $A10 and $E10. For example on my card some default addresses are $A20 and $A28 and with something that uses 10 bit decode there will be a clash at $220 and $228. Things like AWE32 cards and some others also put things at addresses beyond $3FF.
You could gate AEN if A10, A11 are not zero, it will only need one extra chip and won't require you to redesign any of the subcomponents. If the chip used allows more lines to be looked at, that would be good too. On my card there's 12 bit decode on chipset level and 16bit is achieved via CPLD looking if A16...A19 are zero and only passing AEN then.

I've thought about that some time ago, but not long enough. That's a valid point.
On one side, all those boards that I cram in the FMonster were using 10-bit address just fine. But on the other side, if this board will be put in more "modern" machine with ISA 16-bit slots and more hardware...
Will 12 bit be enough? Even on the ISA 8-bit slot we have 20 bits of address (A0 to A19). What is reasonable limit for "address depth" to dive into?
User avatar
Fagear
Member
 
Posts: 208
Joined: 2014-7-10 @ 22:27
Location: Russia, Moscow

Re: FMonster, the monster of sound synth

Postby Tiido » 2018-8-17 @ 00:52

I made a mistake in my last post, it is A12...A15 and not A16...A19, IO accesses can only span 0000...FFFF. I have not actually seen any ISA device that goes beyond 12bits but Multimedia PC specification calls for 16bit address decode and lot of sound chip datasheets I have looked at make it out to be a big deal too (but probably only to conform to MPC spec).
I have read that Pentium and newer boards where ISA is behind a bridge forward all 0000...0FFF to ISA but beyond only if a PCI device doesn't claim the access to itself. Probably applies to 486 with PCI slots too. I no longer remember the source but it probably was some chipset datasheet. So from that, 12 bits should definitely be done, then mirrors only happen in the "PCI area". More could be a bonus, if you can go for it, I could so I did.
User avatar
Tiido
Member
 
Posts: 402
Joined: 2018-1-14 @ 04:40
Location: Estonia

Re: FMonster, the monster of sound synth

Postby Fagear » 2018-8-17 @ 00:59

Tiido wrote:I made a mistake in my last post, it is A12...A15 and not A16...A19, IO accesses can only span 0000...FFFF. I have not actually seen any ISA device that goes beyond 12bits but Multimedia PC specification calls for 16bit address decode and lot of sound chip datasheets I have looked at make it out to be a big deal too (but probably only to conform to MPC spec).
I have read that Pentium and newer boards where ISA is behind a bridge forward all 0000...0FFF to ISA but beyond only if a PCI device doesn't claim the access to itself. Probably applies to 486 with PCI slots too. I no longer remember the source but it probably was some chipset datasheet. So from that, 12 bits should definitely be done, then mirrors only happen in the "PCI area". More could be a bonus, if you can go for it, I could so I did.

Thank you very much!
I think that throwing another 74HC138 will solve the problem. It can take up to five "0" inputs and give a "0" at the output.
For example, A -> A10, B -> A11, C -> A12, G2A -> A13, G2B -> AEN, G1 -> +5V. Take the "new" AEN from Y0 output and there you have 14-bit decoder. :cool:
User avatar
Fagear
Member
 
Posts: 208
Joined: 2014-7-10 @ 22:27
Location: Russia, Moscow

Re: FMonster, the monster of sound synth

Postby Scali » 2018-8-17 @ 09:06

Tiido wrote:I have not actually seen any ISA device that goes beyond 12bits


The IBM Music Feature Card does, its base address is at 2A20h.
And this clashes with Game Blaster/Sound Blaster cards at 220h, because those only do 10-bit address decoding, so they mirror themselves in the IMFC address range.
Scali
l33t
 
Posts: 3595
Joined: 2014-12-13 @ 14:24

Re: FMonster, the monster of sound synth

Postby LABS » 2018-8-19 @ 21:20

Using YM3812 in SOP24 might save some more space
f_4981741e042d4aa2b6261d9b6ccefcce.jpg


EDIT:

For decoding 12-bit address for space saving you can use only 2 ICs - one 74x138 and one 74x4075 (triple 3-input OR):
Route all constant 0s to 2 of 4075's ORs (A1, A2, A4, A6, A10, A11), output them to 3rd OR and also connect AEN here. Route variable A5, A7 and A8 to 138's A0-A2 inputs, constant 1 A9 to OE of 138, constant 1 A3 via free NOT on 74x04 to /OE1 and output from 3rd OR to /OE2. And corresponding outputs from 138 to jumpers.

Also you can use more relaxed filter on output - drop some caps and resistors. And use rail-to-rail opamp like LMC6484 instead of TL074 and get rid of two 9V regulators and still have enough headroom.
User avatar
LABS
Newbie
 
Posts: 39
Joined: 2018-6-07 @ 16:49
Location: Latvia

Re: FMonster, the monster of sound synth

Postby Kaizzer » 2018-8-20 @ 20:11

LABS wrote:one 74x4075 (triple 3-input OR)

I guess with TTL levels you can replace a 3-OR with 3x diodes to spread out the circuit.
Kaizzer
Newbie
 
Posts: 2
Joined: 2017-11-26 @ 19:38

Re: FMonster, the monster of sound synth

Postby Fagear » 2018-8-20 @ 22:31

LABS wrote:For decoding 12-bit address for space saving you can use only 2 ICs - one 74x138 and one 74x4075 (triple 3-input OR):
Route all constant 0s to 2 of 4075's ORs (A1, A2, A4, A6, A10, A11), output them to 3rd OR and also connect AEN here. Route variable A5, A7 and A8 to 138's A0-A2 inputs, constant 1 A9 to OE of 138, constant 1 A3 via free NOT on 74x04 to /OE1 and output from 3rd OR to /OE2. And corresponding outputs from 138 to jumpers.

I don't get why I should use two ICs (and introduce new one into the BOM - 4075) for 12-bit decoding, when I already have 14-bit decoding with just one 74HC138? It is one IC for the whole board and all blocks have their own address decoders, different from each other. :confused:
14-bit decoder.png
14-bit address decoder


LABS wrote:Also you can use more relaxed filter on output - drop some caps and resistors. And use rail-to-rail opamp like LMC6484 instead of TL074 and get rid of two 9V regulators and still have enough headroom.

The reason why I use 78L09 + 79L09 is because of noise on the power rails. I want it to be as low as possible for analog parts of the circuit. That's why I use linear regulators and not one pair for the whole board, but local regulators for each block. It seems like it should pass power requirements for +/-12 V rails of ISA bus.
As for filtering, there will be one common 3rd order low-pass filter at the output after the mixer.
lowpass.png
3rd order lowpass
lowpass.png (9.04 KiB) Viewed 371 times


And here are new updates on optimization. ISSI block was taking too much space. So, month later...
Clock generator + two ISSI blocks were 109 mm. Now Clock generator + ISSI address decoder (which was missing on the example earlier) + two ISSI blocks are 97 mm! And if I exclude address decoder (as on older image) total length will be 83 mm.
ISSI_2018-07-18_02.png
ISSI, progress @2018-07-18
ISSI_2018-08-20.png
ISSI, progress @2018-08-20


Current FMonster mockup:
fmonster_2018-08-20.png
FMonster, progress @2018-08-20


All those optimizations gave me about 49 mm free length at the right side for something else. Or just for shrinking the whole board and get cost reduced.
User avatar
Fagear
Member
 
Posts: 208
Joined: 2014-7-10 @ 22:27
Location: Russia, Moscow

Re: FMonster, the monster of sound synth

Postby LABS » 2018-8-20 @ 23:13

Fagear wrote:I don't get why I should use two ICs (and introduce new one into the BOM - 4075) for 12-bit decoding, when I already have 14-bit decoding with just one 74HC138? It is one IC for the whole board and all blocks have their own address decoders, different from each other. :confused:


When I guess I misunderstood your above discussion on 12-bit decoding with Tiido which you ended up with:
Fagear wrote:Thank you very much!
I think that throwing another 74HC138 will solve the problem.


:happy:

Fagear wrote:The reason why I use 78L09 + 79L09 is because of noise on the power rails. I want it to be as low as possible for analog parts of the circuit. That's why I use linear regulators and not one pair for the whole board, but local regulators for each block. It seems like it should pass power requirements for +/-12 V rails of ISA bus.


The idea was that you can feed rail-to-rail with only a single +5V supply from your 7805 regulator having enough headroom.
User avatar
LABS
Newbie
 
Posts: 39
Joined: 2018-6-07 @ 16:49
Location: Latvia

Re: FMonster, the monster of sound synth

Postby Tiido » 2018-8-20 @ 23:25

There are a lot of sound sources and creating good VREF for all of them takes bunch of extra parts and will yield worse noise perfromance than having stuff biased to ground and sit between positive and negative rails.
User avatar
Tiido
Member
 
Posts: 402
Joined: 2018-1-14 @ 04:40
Location: Estonia

Re: FMonster, the monster of sound synth

Postby carlostex » 2018-8-22 @ 15:18

Fagear have you thought about my recomendation about CMS ports? Did you make the 210h port available?
User avatar
carlostex
l33t
 
Posts: 2052
Joined: 2010-4-03 @ 21:39
Location: Portugal

Re: FMonster, the monster of sound synth

Postby Fagear » 2018-8-22 @ 17:01

carlostex wrote:Fagear have you thought about my recomendation about CMS ports? Did you make the 210h port available?

I've sure did!
CMS_2018-08-10.png
CMS addresses
CMS_2018-08-10.png (7.87 KiB) Viewed 309 times


For the moment address decoders on each block can provide those ports (bold one are routed to jumpers):

Tandy PSG (0x02 bytes long):
- 0x0C0
- 0x0E0
- 0x1C0
- 0x1E0
- 0x2C0
- 0x2E0
- 0x3C0
- 0x3E0

CMS (0x02 bytes long):
- 0x200
- 0x210
- 0x220
- 0x230
- 0x240
- 0x250
- 0x260
- 0x270

ISSI (0x20 bytes long):
- 0x200
- 0x220
- 0x240
- 0x260
- 0x280
- 0x2A0
- 0x2C0
- 0x2E0

AdLib/OPL2 (0x02 bytes long):
- 0x208
- 0x228
- 0x288
- 0x2A8
- 0x308
- 0x328
- 0x388
- 0x3A8

OPL3 (0x04 bytes long):
- 0x200
- 0x220
- 0x240
- 0x260
- 0x280
- 0x2A0
- 0x2C0
- 0x2E0
- 0x380
- 0x388
- 0x3A0
- 0x3A8
- 0x3C0
- 0x3C8
- 0x3E0
- 0x3E8

8-bit DAC (0x01 byte long):
- 0x270
- 0x271
- 0x278
- 0x279
- 0x370
- 0x371
- 0x378
- 0x379

If you think that I have to allow more addresses on jumpers from "hidden" list above - feel free to let me know.
User avatar
Fagear
Member
 
Posts: 208
Joined: 2014-7-10 @ 22:27
Location: Russia, Moscow

Re: FMonster, the monster of sound synth

Postby noop » 2018-9-03 @ 11:54

Fagear wrote: Tandy PSG, CMS, SSI, 8-bit DAC do not have ANY filtering at the output at all! And all those can produce very high harmonics (with square waveforms).

Problems will start as soon as the signal goes to less-than-perfect ADC. Probably ok if goes to dumb amp with analog timbre block that does the job of filtering higher frequencies.
Also, I'm a bit concerned about the use of TL074 etc. This is decent all-around amp but not considered HiFi. Good old 5532 are still recommended for audio, if you are on a budget. But they have no quad version :(
User avatar
noop
Member
 
Posts: 103
Joined: 2015-7-20 @ 15:42
Location: Belarus, Minsk

Re: FMonster, the monster of sound synth

Postby Scali » 2018-9-03 @ 12:11

Fagear wrote:8-bit DAC (0x01 byte long):
- 0x270
- 0x271
- 0x278
- 0x279
- 0x370
- 0x371
- 0x378
- 0x379

If you think that I have to allow more addresses on jumpers from "hidden" list above - feel free to let me know.


I suggest adding 0x3BC to that list.
That is where early PCs had their printer port (original MDA card and many MDA/Hercules clones).
0x3BC, 0x378 and 0x278 are the official addresses for LPT1, LPT2 and LPT3.
However, 0x378 probably became the 'default' because that's what the extra printer port card from IBM used, and if you didn't have an MDA+printer card in your machine, the 0x278 address would become the first printer port.
Scali
l33t
 
Posts: 3595
Joined: 2014-12-13 @ 14:24

Re: FMonster, the monster of sound synth

Postby Fagear » 2018-9-06 @ 18:18

noop wrote:Problems will start as soon as the signal goes to less-than-perfect ADC. Probably ok if goes to dumb amp with analog timbre block that does the job of filtering higher frequencies.

That's why I'm concerned and why I'm putting 3rd order lowpass right after final mixer.

noop wrote:Also, I'm a bit concerned about the use of TL074 etc. This is decent all-around amp but not considered HiFi. Good old 5532 are still recommended for audio, if you are on a budget. But they have no quad version :(

Dual-opamp-only is the reason. I'm very restricted with board space in this project and four opamps in one IC is a must. We'll see how it will go. Prototype boards are already in Moscow, I'll be able to assemble and check debug-boards soon. Including mixer board.

Scali wrote:I suggest adding 0x3BC to that list.
That is where early PCs had their printer port (original MDA card and many MDA/Hercules clones).
0x3BC, 0x378 and 0x278 are the official addresses for LPT1, LPT2 and LPT3.
However, 0x378 probably became the 'default' because that's what the extra printer port card from IBM used, and if you didn't have an MDA+printer card in your machine, the 0x278 address would become the first printer port.

I thought about it. But there are too many different bits between those three addresses, two 74HC138s can not do that. It will require at least three of those. And it is board space again.
LPT_ports.png
LPT bits.
LPT_ports.png (1.49 KiB) Viewed 156 times

Also, yes, 0x3BC officially is "the first" LPT port in the IBM PC, but if it is not present, 0x378 becomes LPT1. And 0x378 is the default port on most systems, I think. I need to investigate software options fot that matter. What different "Covox-enabled" games and trackers can address. :confused:

While I'm waiting for debug boards I finished in-board-bus rerouting and made connections for each block. Now I have to figure out what analog part of the board will look like, after that I'll get the idea for how far I can move all blocks to the mounting bracket.
fmonster_2018-09-06_01.png
FMonster, progress @2018-09-06


Some madness:
fmonster_2018-09-06_03.png
Routing madness.

:smug:
User avatar
Fagear
Member
 
Posts: 208
Joined: 2014-7-10 @ 22:27
Location: Russia, Moscow

Re: FMonster, the monster of sound synth

Postby matze79 » 2018-9-08 @ 18:40

hm there are games out that will "only" work on lpt1
matze79
Oldbie
 
Posts: 1153
Joined: 2014-12-12 @ 14:25
Location: Germany, Frankonia

Re: FMonster, the monster of sound synth

Postby Fagear » 2018-9-10 @ 16:40

matze79 wrote:hm there are games out that will "only" work on lpt1

Main question is: what those games count as "LPT1"?
1) First one to be present from list 0x3BC -> 0x378 -> 0x278?
2) 0x3BC?
3) 0x378?
User avatar
Fagear
Member
 
Posts: 208
Joined: 2014-7-10 @ 22:27
Location: Russia, Moscow

Re: FMonster, the monster of sound synth

Postby matze79 » 2018-9-11 @ 16:22

688 Attack Sub for example has no way to choose the portadress.

As far as i know the BIOS cares about LPT, so it can be possible it asks system bios for lpt1 adress ?
matze79
Oldbie
 
Posts: 1153
Joined: 2014-12-12 @ 14:25
Location: Germany, Frankonia

Re: FMonster, the monster of sound synth

Postby BloodyCactus » 2018-9-11 @ 18:12

Bios Data area has the info.

Code: Select all
address dec/hex, len, description
00h    0     2 bytes    Base I/O address for serial port 1 (communications port 1 - COM 1)
02h    2     2 bytes    Base I/O address for serial port 2 (communications port 2 - COM 2)
04h    4     2 bytes    Base I/O address for serial port 3 (communications port 3 - COM 3)
06h    6     2 bytes    Base I/O address for serial port 4 (communications port 4 - COM 4)
08h    8     2 bytes    Base I/O address for parallel port 1 (printer port 1 - LPT 1)
0Ah    10    2 bytes    Base I/O address for parallel port 2 (printer port 2 - LPT 2)
0Ch    12    2 bytes    Base I/O address for parallel port 3 (printer port 3 - LPT 3)
0Eh    14    2 bytes    Base I/O address for parallel port 4 (printer port 4 - LPT 4) (Only found in PC/XT systems)


so, word at 0x40:08 - LPT1 IO address, just like 0x40:0 has 0x3F8, 0x40:2 has 0x2F8

now, does not mean apps obey. many things hardcode 3F8/2F8, so swapping that in the BDA often has no affect. Chaning what is LPT1 IO might not always have impact.
--/\-[ Stu : Bloody Cactus :: http://kråketær.com :: http://mega-tokyo.com ]-/\--
User avatar
BloodyCactus
Oldbie
 
Posts: 718
Joined: 2016-2-03 @ 13:34
Location: Lexington VA

PreviousNext

Return to Sound

Who is online

Users browsing this forum: fitzpatr and 3 guests