VOGONS


NEC V20 not compatible with my PC ?

Topic actions

Reply 20 of 31, by Jo22

User metadata
Rank l33t++
Rank
l33t++
carlostex wrote:

I recommend the following BIOS:

http://www.phatcode.net/downloads.php?id=101

Thank you very much for that link, Carlos. 😀
I download the "pcxtbios31.zip" and ran the make_win.bat script on Win7 x64.
After I ran it, it created an "eprom" folder with various binaries within..
I choosed the "pcxtbios.rom" binary in 27128 folder an wrote it to an am27c128 chip using my TL866CS.
After several verifies (all ok), I swapped the chips. However, after powering the old PC on, nothing really happened. 🙁
I'm not sure what the culprit is. The chip was mounted properly in the socket, I believe.
Maybe my PC is just a weird XT clone, who knows.
https://youtu.be/E6M5B-4qf20

Attachments

  • superxtbios_m35.jpg
    Filename
    superxtbios_m35.jpg
    File size
    50.99 KiB
    Views
    1073 views
    File comment
    am27c128 EPROM with Super PC/Turbo XT BIOS 3.1
    File license
    Fair use/fair dealing exception

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 21 of 31, by .legaCy

User metadata
Rank Oldbie
Rank
Oldbie
SSTV2 wrote:
Basically, you need to pull up/down data pins accordingly, so that CPU would see a NOP (no operation) instruction, then it will […]
Show full quote
.legaCy wrote:

Well NOP opcode is 0x90 so i would hardwire the data pins to be 0x90 and use a button with debouncing capacitor to be the "clock generator" btw the data pins should be set to input.
But i dont think this is the way to do a nop test.

Basically, you need to pull up/down data pins accordingly, so that CPU would see a NOP (no operation) instruction, then it will increment PC (program counter) indefinitely and with each increment, according address pins will be activated (it will check every memory location just to find another NOP there). If you connected a LED to every adress pin, you'd see a binary up counter effect.

Now, you need to figure out how to set a NOP instruction for a V20, the minimum clock rate at which CPU still operates (if CPU operating freq. will be set too high, you won't be able see LEDs flashing) and some other nuances concerning control pins, like RESET.

This is how NOP test circuit looks like on a Z80 http://www.z80.info/z80test0.htm.

I wonder if setting the address lines to one arduino so it could spit out information about the address lines without using a slow clock to be able to see the led.

Reply 22 of 31, by Jo22

User metadata
Rank l33t++
Rank
l33t++

Update. Because of a HDD failure (now fixed), my PC started up in diagnostics mode.

The BIOS, as I found out, was quite sophisticated for its time (~85), comparable to the Super PC/Turbo XT BIOS.
The built-in diagnositics "suite" is similar to CheckIt! or the later, menu-driven 286 BIOSes (keyboard test, graphics test, mainboard test).

Does anybody know, by any chance, if it is possible to run it in emulation, and if so, with which kind of machine type ?
I'd like to do some testing with it. A video is available at http://youtu.be/A2-99-qO0mk

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 23 of 31, by matze79

User metadata
Rank l33t
Rank
l33t
carlostex wrote:

I recommend the following BIOS:

http://www.phatcode.net/downloads.php?id=101

Been using it in my XT, it includes a feature i suggested, as the F000h to FE00h are scanned for options ROMS. This allows not only to save more space in the UMB area but also to use the 27256 socket that exists in most generic XT clone motherboards as a ROM expansion. That socket is intended for ROM BASIC , but it is much better to use it as a no cost ROM expansion.

this did not work for me, only reconizes 512Kb of RAM 😒

Maybe qemu can execute ROMs ?

https://www.retrokits.de - blog, retro projects, hdd clicker, diy soundcards etc
https://www.retroianer.de - german retro computer board

Reply 24 of 31, by Jo22

User metadata
Rank l33t++
Rank
l33t++

Jo22, I think the BIOS tests the PIT chip by measuring how many timer ticks it takes to execute a certain piece of code, and you get the error if it is not within tolerance.

Most likely the V20 uses a different amount of clock cycles to execute that piece of code and thus the BIOS thinks PIT has a problem as it looks like it is running at wrong frequency.

Yes you'd need a BIOS that support V20 enough to know the PIT is not running at wrong frequency.

Still figuring out how to resolve that little issue. I can live with the NEC 8088, but I would really like to experiment with a NEC V20.
While I was searching the web, I just read an article about the i8253 PIT.
https://en.wikipedia.org/wiki/Intel_8253

It seems it also had a succesor, the 8254, which supported higher speeds and could be read back.
It also was used in Segreys XT clone design.
http://www.malinov.com/Home/sergeys-projects/sergey-s-xt

Now, I wonder, might it be possible that a newer PIT resolves this specific issue ?
I mean, sure, it's a timer, so it can't be "faster" per se, but maybe it will work better with the V20 ?
Better in the sense of keeping track with the more efficient internals of the V-series CPU or not causing the BIOS to panic.
(I know it is rather unlikely, but I would like to hear the opinion of other minds never the less, as well. I'm still learning about the XT architecture.)
If so, would the newer PIT be pin compatible to the old one or not ? Pins 12 and 13 seem to be swiched according to some pinouts.. 😕

Any ideas and suggestions welcome. 😀

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 25 of 31, by retardware

User metadata
Rank Oldbie
Rank
Oldbie

I wonder why you use that Nixdorf machine for tinkering.
Nixdorf was aimed at businesses locked into their 8810 mainframes, hence their naming.
They had no need to be compatible, as these Nixdorf PCs were rarely used for things different than the 8810 client software.

Why don't you just use a normal standard clone mobo with the V20 BIOS that was published by the German c't computer magazine in October 1987?
Back then I and many of my friends used that BIOS.
It is an optimized XT BIOS, using the V20 instructions for more speed etc.
It had many improvements and extra features, for example built in keybgr.
It will not run with 8088 in the CPU socket!

Reply 26 of 31, by Jo22

User metadata
Rank l33t++
Rank
l33t++

Thank you for you reply. 😁

I wouldn't call it thinkering (in the usual sense), that PC rather is my development computer.
I've got all my DOS compilers and personal software projects on that machine, hence I'd like to try some 80186 or CP/M / 8080 code (22Nice).

That being said, this PC is my one and only XT class computer that I have got. I restored it to working condition and handle it with care.
The parallel and game port are both on dedicated ISA cards to prevent damage on the PC (it has on-board ports that I avoid use because of this).

The only mod I made so far was changing the old EPROM with a new one, to prevent failure due to bitrod. It also lowered latency of ROM routines a bit.
I also replaced one of the floppy drives by an emulator device. The original ST512 style HDD is left untouched, as it was ~30 years ago.

The only thing I try to accomplish is to replace one NEC CPU by another.
Sure, I could also try to build another XT PC (if I had the money and the luck getting a non-defective board),
but I'm really happy with this model already. I can do use it for my radio hobby, check the solid state database (IC Database), watch the stars..

It's a business machine, exactly what I'm looking for. It even has the original HD46505 CRTC chip from Hitachi, so can run 80s-ish CGA software very well.
I even sucessfully used one of the UMB cards from c't magazine to get 704K of base memory and about 120KB UMBs. Without any compatibility issues. Yay! ^^

The BIOS is also very well made. At least in respect to diagnostics, it has more features than that Anonymous XT BIOS.
Essentially, it has got a whole Checkit!-type software in ROM. That's likely also the issue here. It is too sensitive or smart. 😢

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 27 of 31, by retardware

User metadata
Rank Oldbie
Rank
Oldbie

That's interesting... seems to be one of the rare XT class computers that have been built in commercial quality.
(Nixdorf was very expensive, but good hardware - definitely not the right thing for the cheapo PC age)

I'd double check with a known-good V20 first.
Back then I have not heard of a single case that replacement with V20/V30 caused problems (aside of processor too fast).

If the check with known-good V20 still does fail, there is the possibility to disassemble BIOS, and build a custom one.
Just skipping diagnostics could be sufficient.

Reply 28 of 31, by Jo22

User metadata
Rank l33t++
Rank
l33t++

^Thanks for the info! 😁 I just dedicated my spare time to this PC again.
So far, I was able to replicate the ROM chip. I'm not sure how to patch it, though.
https://www.youtube.com/watch?v=_tCn5caPef8

Has anyone an idea how to proceed ? 😢

I'm also willing to test other BIOSes - Maybe there's a succesor model that has a compatible BIOS ?

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 29 of 31, by matze79

User metadata
Rank l33t
Rank
l33t

Hm Maybe the BIOS runs some loop test and fails ? did you read the postcodes ?
The NEC V20 does some instructions faster.. and this some times can cause incompatibilities in software.

https://www.retrokits.de - blog, retro projects, hdd clicker, diy soundcards etc
https://www.retroianer.de - german retro computer board

Reply 30 of 31, by Max Headroom

User metadata
Rank Newbie
Rank
Newbie

Hello guys (and girls, if any),
I've been visiting your forum for a while and stumbled upon this thread decided to participate.
Jo22: most probably BIOS of your machine uses that single (if I'm correct) instruction, that V20/30 has incompatible. A quote from manual to A86 assembler:
Operands to AAM and AAD Instructions

Those of you who have examined 86 family opcodes with an eagle eye will have noticed a somewhat spurious "0A" opcode generated after every AAM or AAD instruction. The opcode is there to provide the constant divisor or multiplicand for the instruction. Believe it or not, there wasn't enough room in the microcode of the original 8086 to hold this constant! Although Intel has never announced the generality of AAM and AAD, it is there: you can substitute any other constant for 0A (decimal 10), and that constant will be used. A86 supports this by letting you give a constant byte-sized operand to AAM or AAD. Particularly useful are the instructions AAM 16, which unpacks AL into nibbles AH and AL; and AAD 16, which reverses the process, packing nibbles AH and AL into AL.

WARNING: A couple of my users point out to me that the AAD instruction with a general operand won't work on the NEC V20 and V30 chips. The operand is assumed to be 10 no matter what it really is. Since a large number of PC "speed up" kits involve switching to NEC chips, this will be seen on many PC's. You should not use AAD with an operand if you want your program to run on everybody's machine. Too bad. AAM works fine, though.

So now you surely see: it's so convenient to „overload” AAD that (most probably) the BIOS creator couldn't resist (or maybe at that time it wasn't known there can be a problem in case of V20/30; it was pre-Internet era anyway). You know: instead of inserting a whole little subroutine — just a single instruction with modified second byte!
This is most likely the origin of your problem and that's why you'll rather need different BIOS (or patch somehow the one you're using). Of course it may be something different as well — just this reason came to my mind as I read your post.

Reply 31 of 31, by Jo22

User metadata
Rank l33t++
Rank
l33t++
Max Headroom wrote on 2022-06-02, 21:09:

Hello guys (and girls, if any),
I've been visiting your forum for a while and stumbled upon this thread decided to participate.
Jo22: most probably BIOS of your machine uses that single (if I'm correct) instruction, that V20/30 has incompatible. [..]

Thank you very much, that background information is really appreciated! ^^

PS: When I was in the process of saving/reading the System BIOS, I also tried to do the same with the default fixed-disk controller firmware (it worked with NEC V20).
I thought it was relevant for the sake of completeness (the M35 8810 is an exhibition at Nixdorf Museum ?) and also because the System BIOS recognizes that MFM controller during post-up (POST).
Unfortunately, there's no dedicated ROM chip to be seen anywhere on the controller card; it seems to me the BIOS is stored deep inside a micro-controller.
So I dumped the ROM on the PC itself from within DOS, using a memory dumping utility. I hoped it worked out good enough and is helpful to others.

Edit: MFM/RLL firmware (8K) at C000h-C800h, XT-IDE (8K) C800h onwards

Attachments

  • wd_ctrl.jpg
    Filename
    wd_ctrl.jpg
    File size
    31.23 KiB
    Views
    389 views
    File comment
    WD 8-Bit controller card
    File license
    Public domain
  • Filename
    nixdorf_m35_uma_dump.zip
    File size
    40.24 KiB
    Downloads
    26 downloads
    File comment
    M35 UMA dump (XT-IDE BIOS and WD firmware)
    File license
    Fair use/fair dealing exception

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//