VOGONS


The LlamaBlaster

Topic actions

Reply 40 of 56, by Eivind

User metadata
Rank Member
Rank
Member

...and work on getting the CS4237 config/initialization routines ported from C (from the ITX-Llama project) to assembly, for loading from the option rom.
The bochs emulator with its debugger is very handy for quick development of the menu and user input. For testing with the Crystal chip, I'll use the ITX-Llama while waiting for the boards to arrive.

The LlamaBlaster sound card
ITX-Llama motherboard
TinyLlama SBC

Reply 42 of 56, by Eivind

User metadata
Rank Member
Rank
Member
Pino wrote on 2024-02-23, 18:04:

Question, is the plan to JCL doing PCB+ all SMD components levaing only the PTH components to be manually soldered?

For this initial version, JLC will be assembling most of the components (including some of the TH ones).
What's left are the Nichicon caps and the PSRAM, which I've ordered from Mouser (but could technically have gotten JLC to order instead and then assemble, takes a few extra weeks),
plus the old chips - CS4237B, YMF262 and YAC512, none of which are in production anymore.

The LlamaBlaster sound card
ITX-Llama motherboard
TinyLlama SBC

Reply 43 of 56, by orcish75

User metadata
Rank Member
Rank
Member

Amazing stuff! The project is moving at lightning speed.

Thanks for including the full XT-IDE, gonna make a big difference. 😀

Reply 44 of 56, by wierd_w

User metadata
Rank Member
Rank
Member
Eivind wrote on 2024-01-15, 18:45:
640K!enough wrote on 2024-01-15, 18:17:

If all you want to do is an early boot-stage initialisation of the CS4237, you might be better off implementing it as an option ROM. That would have it run on the host CPU during boot, eliminating unnecessary complexities like isolating the chip from the bus, and worrying about potential effects on the PnP BIOS features.

That would be way smarter (and much easier), yes! Thank you! 😁

If the rom space you allow is big enough, (64K sized window, maybe with a jumper?) Then the same EEPROM can contain the XTIDE XUB, as well as your card init routine.

Reply 45 of 56, by Eivind

User metadata
Rank Member
Rank
Member
wierd_w wrote on 2024-02-23, 21:02:

If the rom space you allow is big enough, (64K sized window, maybe with a jumper?) Then the same EEPROM can contain the XTIDE XUB, as well as your card init routine.

There's 32 kB of addressable rom space, located at either 0xC8000 or 0xD8000 (selectable by a jumper). And yes, that space is plenty for both my sound card init routine and any of the XUBs! 👍

The LlamaBlaster sound card
ITX-Llama motherboard
TinyLlama SBC

Reply 46 of 56, by Eivind

User metadata
Rank Member
Rank
Member

Got the first prototype cards from JLC:

IMG_1162.jpeg
Filename
IMG_1162.jpeg
File size
1.67 MiB
Views
622 views
File license
Fair use/fair dealing exception

After adding caps, PSRAM, CS and OPL3 chips:

IMG_1163.jpeg
Filename
IMG_1163.jpeg
File size
1.84 MiB
Views
622 views
File license
Fair use/fair dealing exception

I'll be testing it over the weekend, we'll see how it goes... 🤞

The LlamaBlaster sound card
ITX-Llama motherboard
TinyLlama SBC

Reply 49 of 56, by zzgus

User metadata
Rank Newbie
Rank
Newbie

Following the project with great interest, didn't know about it. Will be veru handy all of these in one card.
Really interested in the xt-ide bios option as my 386 isn't able to boot from IDE Compact Flash.

Declare interest in it !

Thankyou
Gus

Reply 50 of 56, by Eivind

User metadata
Rank Member
Rank
Member
ubiq wrote on 2024-03-07, 22:18:

Yeah, been keeping an eye on this one since the first post. What's the plan - assemble a bunch and sell them? Assuming so, since you mention having a bunch on chip on-hand.

When I'm happy with the board, I'll open source and put everything on github. Might build a few extra and sell them as well, haven't decided yet.

zzgus wrote on 2024-03-08, 16:17:

Following the project with great interest, didn't know about it. Will be veru handy all of these in one card.
Really interested in the xt-ide bios option as my 386 isn't able to boot from IDE Compact Flash.

Declare interest in it !

I won't be taking any orders, this is primarily aimed to be an open source project. If I'm putting any of these (pre-built) up for sale at a later date, I'll be posting it here!

The LlamaBlaster sound card
ITX-Llama motherboard
TinyLlama SBC

Reply 51 of 56, by Eivind

User metadata
Rank Member
Rank
Member

So, a little update:

I couldn't find the motherboard I was planning to use and had to do my testing on another - turned out that that one didn't support ISA option ROMs 🙁
However, I modified my assembly code to run as a DOS .COM file and got the CS chip properly initialized.

Adlib, digital sound, wavetable, Pi, GUS - all sound sources seemed to work, BUT the output sound was horrible; hissy, scratchy, garbled, etc.
I thought I might have made some kind of mistake in the analog circuitry, but it turned out that I'd used a 3.3V regulator instead of a 5V one for the "+5VA" rail. The CS chip was definitely not happy about that, and I don't blame it. Surprised it even worked at all.
I removed the regulator and patched a wire from VCC to +5VA as a simple test, and that did the trick. There's still a slight background noise when turning the volume all the way up, but that might improve if I use a proper 5V regulator instead - and besides, the output amp is probably way overpowered in any case for anything else than a high-impedance pair of headphones, so you wouldn't want to have the volume set that high.

Next steps are getting my hands on a more suitable motherboard and playing around with the option ROM + ordering a 5V regulator and testing with that.
All in all, pretty happy with the result so far! 😌

The LlamaBlaster sound card
ITX-Llama motherboard
TinyLlama SBC

Reply 52 of 56, by Eivind

User metadata
Rank Member
Rank
Member

While I'm waiting for new 5V regulators to get here, I've been able to get the option ROM working. Booting from and using a CF card attached to the board and XTIDE loaded from the option ROM works fine.
Next up: modifying the initialization code to run from the option ROM, with a simple menu to change the CS4237 ports, IRQ and DMA, plus adding code for saving these settings back to the flash ROM. This last part requires an extra step - since I can't reprogram the ROM while executing code from it, I'll have to copy the code to a safe area in RAM, transfer execution to that and then do the programming.

The LlamaBlaster sound card
ITX-Llama motherboard
TinyLlama SBC

Reply 53 of 56, by wierd_w

User metadata
Rank Member
Rank
Member

Well, since this is happening before the OS loads, it can be done in the lower 640k area no problems. Just be sure to write zeros over the used memory afterward!

One thing to maybe consider though:

For somebody building (or having the card made) the card themselves, a DOS flasher program to initially write the option rom there would be useful.

Reply 54 of 56, by Eivind

User metadata
Rank Member
Rank
Member
wierd_w wrote on 2024-03-12, 14:05:

Well, since this is happening before the OS loads, it can be done in the lower 640k area no problems. Just be sure to write zeros over the used memory afterward!

Yep, plenty of room, I've already experimented with this and it works fine. Thanks for the tip about zeroing out the RAM afterwards, I hadn't thought of that! 😀

wierd_w wrote on 2024-03-12, 14:05:

One thing to maybe consider though:

For somebody building (or having the card made) the card themselves, a DOS flasher program to initially write the option rom there would be useful.

I've been using the lo-tech XT-CF flash utility for now, as it was a quick way of getting started.
Might write my own program later if needed, not sure if it's necessary.

The LlamaBlaster sound card
ITX-Llama motherboard
TinyLlama SBC

Reply 55 of 56, by Eivind

User metadata
Rank Member
Rank
Member

Small update: I've been spending quite a bit of time getting the initialization code working perfectly. My limited x86 assembly experience didn't help of course. Thanks to some very helpful (and patient) guidance from 640K!enough into the intricacies of the CS4237B and ISA PnP, I think I'm finally there.
I'm aiming to make my initialization code be available both as an option ROM (where you can press a key during boot to access a small menu for configuring SB port, irq and dma), and as a DOS executable that'll read the BLASTER environment variable and initialize the card appropriately. Only one of these methods will be necessary at the same time of course, but it's quite helpful to be able to choose which one to use - and it greatly speeds up the development process if nothing else.

As for the card itself, it works very well with the proper 5V regulator attached. I'm in the process of designing another prototype, mostly for adjusting the placement of the jack ports to better fit the bracket, but there's also room for a slightly better component placement and a smaller overall board size.

The LlamaBlaster sound card
ITX-Llama motherboard
TinyLlama SBC

Reply 56 of 56, by Eivind

User metadata
Rank Member
Rank
Member

Finally got around to testing the card on an older system, a 486 without a PnP BIOS, and it works perfectly fine in DOS, both initialized with an option ROM or by using the command-line tool.
Will have to do a bit of Windows testing as well, but so far so good...

The LlamaBlaster sound card
ITX-Llama motherboard
TinyLlama SBC