Image Map Image Map
Page 1 of 2 12 LastLast
Results 1 to 10 of 13

Thread: XT compatible Sound Blaster 16 models

  1. #1

    Default XT compatible Sound Blaster 16 models

    I remember reading somewhere (maybe here) that Sound Blaster 16 can be used on XT systems. Of course only 8-bit features work so that would mean SB16 on XT is basically the same as Sound Blaster Pro 2.

    Most interesting SB16 model in my opinion is CT2290. That is because it is the only non-PnP SB16 with real IDE interface. XTIDE Universal BIOS now has 8-bit mode for 16-bit IDE Controllers (only for Microdrives and CF cards) so that would make CT2290 best sound card for XT-systems. Good news: the IDE interface on CT2290 works. Bad news is that sound does not. That is because diagnose.exe freezes. Most likely it requires 286 instructions and does not work on 8088.

    The oldest SB16 models (CT17xx) do not require diagnose.exe to initialize the card since all settings are set with jumpers. So I tried CT1740. There seemed to be some hardware conflict since XTIDE Universal BIOS did not find any drives (not from XT-CF or 16-bit Multi I/O card) when CT1740 was installed. I tried one by one all different ports, interrups and low DMA channels and the problem remained.

    Finally I decided to remove high DMA channel jumpers completely. I didn't think those mattered since it was on 8-bit bus but it did. Without the high DMA jumpers everything finally worked, drive was detected and I could hear FM music and sound effects from Prince of Persia. CT1740 is definitely XT compatible.

    But it is the CT2290 I'd like to get working. Is there 8088 compatible version of diagnose.exe or has someone made an alternative to it?

  2. #2

    Default

    About the CT1740, it has a proprietary CDROM port, the 44 pin header is not a standard IDE port.

    There are more non-PnP SB 16 models with real IDE interface like the CT2910 (it doesn't require diagnose.exe) or the CT2800 VIBRA (i specially like this one because it is small)

    I did successfully configure a CT2290 in a XT using the debug dos utility instead of diagnose.exe. Let me find where I put the text file with the orders...

    EDIT: Here it is:
    Code:
    o 224 80
    o 225 02
    o 224 81
    o 225 02
    q
    If I remember well, this configures A220 I5 D1
    Last edited by nestor; January 5th, 2013 at 01:33 PM.

  3. #3

    Default

    Those worked and CT2290 produces sound!

    I did noticed one other thing. This is unrelated to getting SB16 to work in XT systems but I might as well ask here. What I noticed is that CT2290 maps tertiary and quaternary IDE Control Block Registers to 370h, exactly where Secondary IDE Control Block registers are.

    I'm not entirely sure where those should be (there are not many controllers with Tertiary and Quaternary IDE) so I've assumed base port + 200h (like Primary and Secondary IDE). Bochs maps them to 3E0h and 360h but that's just about all the info I have (and that does not apply to CT2290). XTIDE Universal BIOS does not use Control Block Registers at the moment but I need Alternative Status Register for port and controller auto detection.

  4. #4

    Default

    aitotat, great research! The SoundBlaster IDE channel was actually the reason for exploring the 16-bit-IDE-controller-in-an-XT idea!

    Diagnose I think does run on a V20, whether it could be hacked to run on an 8088 came up before, but perhaps now there is a really compelling reason for some ASM expert to have a crack at it
    Last edited by pearce_jj; January 9th, 2013 at 01:02 PM.

  5. #5

    Default

    Quote Originally Posted by pearce_jj View Post
    aitotat, great research! The SoundBlaster IDE channel was actually the reason for exploring the 16-bit-IDE-controller-in-an-XT idea!

    Diagnose I think does run on a V20, whether it could be hacked to run on an 8088 came up before, but perhaps now there is a really compelling reason for some ASM expert to have a crack at it
    Diagnose.exe was apparently written in C, and it's clear enough for some disassemblers to easily decode the C routines. On the other hand, this makes it a bit more difficult to spot the low-level stuff since all of that is basically hidden under several extra layers of structure created by the compiler.
    Current systems owned by me:
    Vintage:IBM PC/XT submodel 087 ( 1983 ), [Kon]tiki-100 rev. C (1983), Compaq Portable I ( 1984 ), IBM PC/XT submodel 078 ( 1985 ), IBM PC/XT286 ( ~1986 ), 3x Nintendo Entertainement Systems ( 1987 ).
    Obsolete:Commodore A500 ( ~1990 ), IBM PS/2 model 70/386 type 8570-161 ( 1991 ), Atari Lynx II ( ~1992 ), Generic Intel 486SX PC ( ~1993 ), AT/T Globalyst Pentium w/FDIV bug MB ( 1994 ), Compaq 486DX4 laptop ( ~1995 ).

  6. #6
    Join Date
    Aug 2006
    Location
    Chicagoland, Illinois, USA
    Posts
    4,606
    Blog Entries
    1

    Default

    Doesn't scare me. Someone make the .exe available that they want to run on 8088 and I'll take a look at it.
    Offering a bounty for:
    - Documentation and original distribution disks for: Panasonic Sr. Partner, Corona PPC-400, Zenith Z-160 series
    - Music Construction Set, IBM Music Feature edition (has red sticker on front stating IBM Music Feature)
    - Any very old/ugly IBM joystick (such as the Franklin JS-123)

  7. #7

    Default

    Hi Trixter, I believe it's this!

  8. #8

    Default

    Cool, I think I'll have a go at it later too. I've got a few SB16 models around. I could make a tiny utility that sets the address, IRQ, and DMA automatically at boot-time too based on nestor's data.
    My emulators!
    Fake86 8086/V20 PC emulator: http://sourceforge.net/p/fake86
    MoarNES Nintendo emulator: http://sourceforge.net/p/moarnes


  9. #9
    Join Date
    Aug 2006
    Location
    Chicagoland, Illinois, USA
    Posts
    4,606
    Blog Entries
    1

    Default

    The file pearce_jj sent is DIAGNOSE.EXE which, on cursory examination, appears to have been written in MSC v6.0 or v7.0. It most definitely uses the following 80286-isms:

    ENTER/LEAVE
    IMUL reg,reg,immed

    (Ironically, it does NOT use REP INS/OUTS or SHx/ROx reg,immed or PUSHA/POPA like most 286 programs I have seen.) There are also a few large chunks of what looks like sound sample data stuck into the .exe.

    The above instructions are used hundreds of times and it would take me at least a few weeks with no guarantee of success to try to patch/adjust for 808x. I'm really sorry, but with everything else on my plate, this isn't something I'm willing to take on at this time. If it was something really easy like one or two things, sure, but this is a major undertaking.

    My advice: If you want to use an SB16 on an XT, replace the CPU with an NEC V20 (which will allow this program to run).
    Offering a bounty for:
    - Documentation and original distribution disks for: Panasonic Sr. Partner, Corona PPC-400, Zenith Z-160 series
    - Music Construction Set, IBM Music Feature edition (has red sticker on front stating IBM Music Feature)
    - Any very old/ugly IBM joystick (such as the Franklin JS-123)

  10. #10

    Default

    IDE + Sound with only one card wasn't quite as easy as I hoped. Not only the problematic initialization (any documentation about the initialization?) but XT BIOS doesn't scan ROM Basic memory areas. I was hoping to insert XTIDE Universal BIOS on one of the four empty ROM sockets meant for ROM Basic. The BIOS was not detected. It shouldn't be hard to modify Super PC/Turbo XT BIOS but there is still the SB16 initialization problem.

    More about Tertiary and Quaternary IDE. I tried Promise FloppyMAX. It is essentially the same as EIDEMAX but instead of primary and secondary IDE the FloppyMax has Tertiary and Quaternary IDE. Command Block ports start from 1E8h and 168h, just like on SB16. The Promise did have Control Block ports start at 3E8h and 368h, just where I initially expected them to be. SB16 maps them to 370h. That can be problematic since resetting Secondary IDE might reset what ever is connected to SB16 Tertiary or Quaternary IDE (and vice versa).

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •