• Please review our updated Terms and Rules here

DOS MIDI player?

evildragon

Veteran Member
Joined
May 29, 2007
Messages
1,646
Location
Tampa Florida
I've been trying to get a MIDI player for my IBM PS/2 Model 25. I just can't seem to get one to actually work.. System Specs:
NEC V30 (Originally a Intel 8086)
640KB RAM (Originally 512KB)
20MB HD
720KB Floppy
SoundBlaster 2.0 (With YM3812 OPL2)
Monochrome Monitor / VGA (Originally MCGA on-board. Modded for VGA by me)

With those specs in mind, what's the best MIDI player, do you recommend? I am using the SoundBlaster drivers, and while I can use SBFMDRV and PLAYCMF to play CMF files, loading the sb midi driver haults the system at this screen: http://blackevilweredragon.spymac.com/freeze.jpg

now, if I load the sb midi driver for a SB Pro, it successfully loads, and lets me play a MIDI.. But, when playing a MIDI, it's missing half of the notes, and sounds very low pitched.. I know the SB Pro has the same OPL2 chip, but I do also know it has TWO of them.. this may be because my card only has one, thus will be missing half the notes and sounds..

Is there any way to load the right driver? I've checked my files, and soundcard. When loaded on a 486, it works fine.. But I want this computer playing the MIDI.. This was my first computer, and still is my main computer even to this day, and being it's pretty much as old as me, it's a memory to me.. i'd like to see it working the way it should..

thanks..
 
I think that it is more likely that you have hardware conflicts with other things on the system that are causing the hangs, or that the machine is just too slow.

Some things to try:

- What kind of memory resident programs do you have loaded that might be stealing processor cycles?
- What kind of other hardware do you have installed that might be causing conflicts?
- If the MIDI file is in RAM (RAM disk)instead of on the hard drive, does the skipping go away?
- What are the minimum requirements for the SB 2.0 and the playback software? Is that you are running on even close?
 
I (a moderator) moved it out of software because this is very PC specific. Our C64 brethern won't really care about it in software.
 
I think that it is more likely that you have hardware conflicts with other things on the system that are causing the hangs, or that the machine is just too slow.

Some things to try:

- What kind of memory resident programs do you have loaded that might be stealing processor cycles?
- What kind of other hardware do you have installed that might be causing conflicts?
- If the MIDI file is in RAM (RAM disk)instead of on the hard drive, does the skipping go away?
- What are the minimum requirements for the SB 2.0 and the playback software? Is that you are running on even close?
the midi files can't even load with the correct driver, as the driver itself hangs.. if i use the incorrect driver, the music plays all the way through, minus a whole set of channels and pitch loss..

i believe the RAM requirements for sbmidi.exe is 20kb.. The following TSRs are used: guest.exe (20kb, for ZIP 100), mouse.com (unknown size, used for my mouse), and whatever SET BLASTER loads..

i've gone all minimal on it, making the SoundBlaster the only hardware in it, and it still freezes at the same exact spot. it's like the correct driver has a bug in it with this BIOS or something.

under normal operation (where nothing else has issues with), the following hardware is attached: ZIP 100 (parallel port), Cisco Catalyst 2900 Console Port (serial port), VGA card..
 
It wouldn't hurt to try to boot from a floppy and not use any TSRs. I would also ditch the non-standard hardware, just to ensure that it works on the plain vanilla machine. The Cisco card sounds interesting, but it's definitely not original.

You also might have to look for older versions of the card's drivers. I've had that experience with SCSI card device drivers on older hardware.

Lastly, the Nec V30 is an odd duck. It's just the 16 bit version of the V20, so it will have the same problems as the V20. The V20 had a few incompatible instructions and different instruction timings, making a speed difference. This is painful, but if you have a good IC extractor you might want to try the original 8086 CPU instead just to get the timing on the machine back to normal. The larger size of the instruction fetch buffer on the NEC and the different instructions might be the problem.
 
It wouldn't hurt to try to boot from a floppy and not use any TSRs. I would also ditch the non-standard hardware, just to ensure that it works on the plain vanilla machine. The Cisco card sounds interesting, but it's definitely not original.

You also might have to look for older versions of the card's drivers. I've had that experience with SCSI card device drivers on older hardware.

Lastly, the Nec V30 is an odd duck. It's just the 16 bit version of the V20, so it will have the same problems as the V20. The V20 had a few incompatible instructions and different instruction timings, making a speed difference. This is painful, but if you have a good IC extractor you might want to try the original 8086 CPU instead just to get the timing on the machine back to normal. The larger size of the instruction fetch buffer on the NEC and the different instructions might be the problem.
as i said in the previous post, i went all minimal on it.. it still wouldn't work.. the Cisco Catalyst 2900 is my switch, it's not a card, it's physically plugged into the serial port, as I use this computer as a terminal for managing the network..

I originally got the V30 hoping it would fix this, as 8086 alone didn't work.. i can't use the computer without the V30 anyway, my Zip drive, and windows 3.0 and the VGA driver require it (286 instructions)..

Personally, I dislike the 8086, too slow for me, and hardly does anything I need of the computer...

EDIT: If you see this thread, you'll know that anything non-standard, was something I installed. ;)
http://www.vintage-computer.com/vcforum/showthread.php?t=7434
 
I thought from your post that somehow you were getting the console for the machine over the serial port. Apparently not .. things connected to the serial ports or parallel ports would not be interesting, so I was confused by you mentioning it.

The V30 does not add 80286 instructions. It is an 8086 replacement, which means it has the same instruction set as the 8086/8088. Well, mostly the same. NEC added a few goodies, but certainly not 80286 class instructions. The Zip drive and Windows 3.0 will run fine on it; not sure about your specific VGA card.

The SB 2.0 should work fine even on an 8088 machine running at 4.77Mhz. Trixter, the author of "8088 Corruption" uses one for the music on that demo. I conclude there is something goofy about your machine, or choice of drivers. Try my previous suggestion of getting a different version of the SB 2.0 drivers.
 
I thought from your post that somehow you were getting the console for the machine over the serial port. Apparently not .. things connected to the serial ports or parallel ports would not be interesting, so I was confused by you mentioning it.

The V30 does not add 80286 instructions. It is an 8086 replacement, which means it has the same instruction set as the 8086/8088. Well, mostly the same. NEC added a few goodies, but certainly not 80286 class instructions. The Zip drive and Windows 3.0 will run fine on it; not sure about your specific VGA card. it also added a native 8080 mode :p ... the V30 is my specialty, i know a crap load about them, sadly, lol

The SB 2.0 should work fine even on an 8088 machine running at 4.77Mhz. Trixter, the author of "8088 Corruption" uses one for the music on that demo. I conclude there is something goofy about your machine, or choice of drivers. Try my previous suggestion of getting a different version of the SB 2.0 drivers.
it does add the complete 186 instruction set ;) check it, Windows 3.0 VGA drivers require a 286.. if i use an 8086, i get a black screen.. if i use the V30, it boots up to 16 colors.. same with the zip drive, it freezes with the 8086, but with the V30, it runs.. it's not a complete 286 instruction set, only a few.. it's not talked about, or not known very well.. intel wasn't pleased about the V30 because of this very fact...

http://web.ukonline.co.uk/cliff.lawson/xtpcs.htm
"The only video driver that can (in theory!) be used for Windows 3.0 is CGA which will give you 640x200 in monochrome. However the standard VGA driver CAN be used but unfortunately it uses some 80286 instructions and the processor in the 2086 is only an 8086 so you'd think it wouldn't work. However, if you unplug the 8086 from the 2086 and replace it with an NEC V30 then you can use VGA (and get about a 5% speed increase to boot!). The NEC V30 is an 8086 compatible chip but has a few of the 80286 instructions as well and just happens to include those used by the Win 3 VGA driver."
 
You know, it's not my place to call other people's work into question. But the V20/V30 pairs don't have the new instructions or protected mode that was added for the 80286 instructions. They extended the 8088/8086 instruction set, added some of the 80186 instructions, and added some instructions for 8088 emulation (very handy for CP/M).

The VGA driver might be dependent upon the new 186 instructions, if they carried over to the 80286. It would not depend on instructions unique to the 80186, because very few systems used those. It certainly isn't going to use the non-standard extensions that NEC added, nor the 8088 compatibility features.

So, maybe the web page you quote isn't perfectly accurate or is over simplified? The Nec V20 and V30 do not have 80286 instructions in them.

On the Zip drive: I run a parallel port Zip drive just fine on my PC XT ( 8088 ) and PC Jr (Nec V20). The guest.exe drivers work just fine.

Other people run SB 2.0s on 8088 class hardware, so it's something about your setup or specific drivers.
 
You know, it's not my place to call other people's work into question. But the V20/V30 pairs don't have the new instructions or protected mode that was added for the 80286 instructions. They extended the 8088/8086 instruction set, added some of the 80186 instructions, and added some instructions for 8088 emulation (very handy for CP/M).

The VGA driver might be dependent upon the new 186 instructions, if they carried over to the 80286. It would not depend on instructions unique to the 80186, because very few systems used those. It certainly isn't going to use the non-standard extensions that NEC added, nor the 8088 compatibility features.

So, maybe the web page you quote isn't perfectly accurate or is over simplified? The Nec V20 and V30 do not have 80286 instructions in them.

On the Zip drive: I run a parallel port Zip drive just fine on my PC XT ( 8088 ) and PC Jr (Nec V20). The guest.exe drivers work just fine.

Other people run SB 2.0s on 8088 class hardware, so it's something about your setup or specific drivers.
except microsoft even said the V30 had the 286 instructions required.. i know the V30 doesn't have all the goodie 286 stuff, but there is some instructions from the 286 that are on it, that are real mode specific.. i'll have to check my NEC book, it's written in it somewhere..

edit: for now, i got this online.. essentially, if i understand this right, the instructions that NEC put in them were the same as the 286 instructions, because they are the same.. "They also introduce several new instructions (no practical use, since their opcodes overlap the opcodes for 80286 and above)"
 
Yes, that quote comes from:

http://grafi.ii.pw.edu.pl/gbm/x86/16bit.html

I don't know if you are a programmer or not, but if NEC adds instructions to their chip and they use the same opcodes that the 80286 later introduces and the opcodes dont' have the same behavior, that means it's a bad thing. It doesn't mean it's the same instructions and same behavior, it means that the same opcode behaves differently on a V20/V30 vs. an 80286, which makes it seriously incompatible for those instructions.

V20/V30 != 80286. Period. There is something else going on .. read the rest of that page, it's very informative.
 
Yes, that quote comes from:

http://grafi.ii.pw.edu.pl/gbm/x86/16bit.html

I don't know if you are a programmer or not, but if NEC adds instructions to their chip and they use the same opcodes that the 80286 later introduces and the opcodes dont' have the same behavior, that means it's a bad thing. It doesn't mean it's the same instructions and same behavior, it means that the same opcode behaves differently on a V20/V30 vs. an 80286, which makes it seriously incompatible for those instructions.

V20/V30 != 80286. Period. There is something else going on .. read the rest of that page, it's very informative.
i am a programmer, but for Sega Genesis game consoles and their M68000 CPU.. http://blackevilweredragon.spymac.com/seggen/index.html

im gonna read the rest of the page.. while i am pretty good with a V30, i may not know it all ;) im still learning their opcodes.. (plus my 8086 book)
 
except microsoft even said the V30 had the 286 instructions required.. i know the V30 doesn't have all the goodie 286 stuff, but there is some instructions from the 286 that are on it, that are real mode specific.. i'll have to check my NEC book, it's written in it somewhere..

There is a terminology problem here. The actual extra instructions provided by the NEC V20/V30 that most people call "286" instructions are:

SHR,immed
SHL,immed
ROR,immed
ROL,immed

...where "immed" can be a number OTHER than 1. Stock 8088/8086, you're limited to either SHL reg,CL or SHL reg,1.

Those are technically 80186 instructions, not 80286. But people call them "80286" instructions because the 80186 was not implemented in many computers, and even fewer desktop PC clones.

The 80286 had a metric crapload of improvements over the 808x, most notably a MUL/IMUL/DIV/IDIV that didn't suck complete ass (it's at least 5 times faster, making 3D quite tolerable on the machine), ENTER/LEAVE to make stack frames quick, and a crude but functional protected mode. NONE of these improvements are in the NEC V20/V30.

The programs you can now run are not able to run because the V30 "is an 80286" -- they're able to run because the original software used a grand total of ONE extra instruction type, that the V20/V30 just happens to have.

As for your Sound Blaster problem, you're overlooking the obvious: The SBMIDI drivers are completely crap. Mine sounds like that too. Rarely have I heard a Sound Blaster's FM chip produce listenable MIDI; the best I've heard were custom tweaks done by The Fat Man for some game or something. Look for an old version of The Audio Solution where you can convert MIDI into XMI files, then try to play them via the player. It will still sound like crap, with dropped notes too, but it will sound better than SBMIDI...
 
I don't know if it's any help or not, back "in the day" I had a SB clone card in my Magnum XT and it worked great with the command line utilities, running from floppy. Kinda useless because of the file size limitations though. Anyway, I now own a couple true SoundBlasters and have stored away any and all disks I can get my hands on. If it's any help, I probably have the origional SB drivers, utilities, etc. Just gotta find them :) If there's anything you want me to look for, send me an e-mail, classicelectronicsguy (at) yahoo dot com
 
I found all this discussion of the V20 very interesting. I know that Windows 3.0 will not install on an XT class computer that has an 8088 CPU and a VGA card. The installation aborts while installing the 'vgalogo.lgo' file from the second floppy. However if the 8088 is replaced with a V20, it installs with no hangups. What is even more interesting, at the end of the installation with a V20 chip, (floppy disk 4, version 3.00a) the install routine says 'Installing standard mode files'. Then the installer wants to install the file 'himem.sys' and asks for Disk #3 to be inserted. At the end of the install routine, when the installer wants to modify the config.sys/autoexec.bat files, it puts 'himem.sys' in the autoexec.bat file. Of course, that driver won't run on a V20 CPU and has to be manually edited out, but it is interesting that the V20 'fools' the Windows installer into thinking it is being installed into some kind of real mode 286.
 
on my XT with an 8086 (Model 25), it does actually go through with the VGA driver installtion.. it's just when it's time to boot windows, it freezes with a black screen... with the V30, all works great, and Windows 3.0 does run in full 16-color VGA...
 
I noticed your previous comments about the V30 on the IBM Model 25. I have an IBM model 30 (8086) and read in Mueller's Upgrading and Repairing PC's that the V30 would not work on the IBM model 25's and 30's. It's good to hear that it is working for you.

I have a Compaq Deskpro (8086 model) with a V30 chip, I will have to pull it and try it in the IBM.
 
I noticed your previous comments about the V30 on the IBM Model 25. I have an IBM model 30 (8086) and read in Mueller's Upgrading and Repairing PC's that the V30 would not work on the IBM model 25's and 30's. It's good to hear that it is working for you.

I have a Compaq Deskpro (8086 model) with a V30 chip, I will have to pull it and try it in the IBM.
yea, the V30 works on it with no issue.. I have two models of the V30 motherboard also, both work fine with the V30 attached..

(this first link was before my VGA ISA card installation mod)
http://blackevilweredragon.spymac.com/33460027.jpg

http://blackevilweredragon.spymac.com/ibmlowmem.jpg
 
Last edited:
Back
Top