IntroIn the past few days since Sandro Ronco got CP/M-80 to boot on the DMV driver (thanks!) I have (re-)dumped a lot of the NCR Decision Mate V (DMV) ROMs, have taken loads of pictures and documented the different sets of hardware I have. Now the BIOS and 8741AD ROM versions from the mainboard can be implemented as matching sets.
This called for a new arrangement and naming of the files in order to present them properly. The option modules now carry their proper NCR designation, and the ROM files have their version numbers.
In this thread I’ll gather all the useful information about the DMV from the old “
Requirements” thread which can then be used solely for the discussion of the DEC Rainbow 100.
The NCR DMV is in its most basic configuration a Z80 machine with one 320K DSDD Floppy drive with 64K RAM and a monochrome monitor.
There were configurations with dual drives, one drive and internal harddisk, color monitor and graphics card, and it was easily extendable by plugging in modules in the various slots in the back of the machine.
Slot 1 was reserved for RAM extension modules (64K, 192K and 448K)
Slots 2-6 could be used for various extensions with a slot 2A on the back of the mainboard for an internal harddisk adapter
Slot 7 (and the inward facing 7A) were reserved for CPU modules and the Diagnostics module.
On multilayer mainboards (mine all are)
Ctrl-F20 resets the machine.
All page numbers in the posts below reflect the actual page in the PDF file, not the original page in the manual.
ROM images & Hardware pictures - main systemMainboard:Machines with a monochrome monitor have a brightness and contrast knob on the front panel, and a volume potentiometer soldered directly to the mainboard. Color machines have a brightness and volume knob on the front panel. The position of the loudspeaker is also different. (Mainboard info see
NCR System info, page 117ff, 266ff,
CP/M-86 System Technical Manual page 54ff,
System Technical Manual Hardware page 18ff). The meaning of the diagnostics LEDs can be found in the
CP/M-80 System Technical Manual, page 60. A BIOS listing can be found in the
Hardware System Technical Manual, page 88ff, electronic schematics from page 230ff (multilayer board).
https://dl.dropboxusercontent.com/u/55419307/NCR%20DMV/DMV%20Mainboard.zipKeyboard:See
NCR DMV System info , page 74ff, 269ff, and
System Technical Manual Hardware page 48ff. There is a keyboard firmware listing in the
System Technical Manual Hardware, page 154ff, schematics on pages 260ff
For the DMV, the big IC reads 006-00595 14 Motorola 8328.
https://dl.dropboxusercontent.com/u/55419307/NCR%20DMV/DMV%20Keyboard.zipGraphics Boards:Depending on the monitor built into the enclosure, a monochrome or color graphics board based on the NEC µPD7220 was available with either 32K (mono) or 96K (color) video memory (see
NCR DMV System Info , page 101ff, 272ff). Programming examples for the 7220 can be found in the
CP/M-86 System Technical Manual , page 59ff and
CP/M-80 System Technical Manual , page 61ff. Info on the Monitors used in the
System Technical Manual Hardware page 72f, from page 240ff electronic schematics.
https://dl.dropboxusercontent.com/u/55419307/NCR%20DMV/DMV%20Graphics%20Boards.zip
Memory modules: The K200 64K module is missing from my collection (Schematics in the
System Technical Manual Hardware, page 268ff). If you add the 64K RAM from the mainboard to the values printed on the K202 and K208 modules, you get the “round” 128K, 256K and 512K total RAM values. Infos in the
System Technical Manual Hardware, page 83ff
K202 192K module:The module pictured in the schematics in the
System Technical Manual Hardware, page 270ff uses a different chip layout than the one I have.
https://dl.dropboxusercontent.com/u/55419307/NCR%20DMV/DMV%20192KB%20RAM%20K202.zipK208 448K module:Schematics in the
System Technical Manual Hardware, page 272ff
https://dl.dropboxusercontent.com/u/55419307/NCR%20DMV/DMV%20448KB%20RAM%20K208.zip
Various expansion modules:The port addresses of the DMV expansion modules can be found on page 64 in the
NCR DMV Hardware Extensions File , interface selection is described in the
System Technical Manual Hardware, page 34.
I’m missing the following modules:
K600 Decision Net networking adapter (“Omninet Transporter”, see
NCR DMV Hardware Extensions File, page 1ff and
NCR DMV System Info page 57ff),
K215 Buffered sync/async adapter (see
NCR DMV Hardware Extensions File, page 30ff and
NCR DMV System Info page 42ff),
K211 RS232 communications adapter,
K213 RS232 Plotter adapter,
K219 Integrated Modem,
K216 SCC Communication interface (see
NCR DMV System Info , page 46ff),
K233 Shared RAM adapter (see
NCR DMV System Info page 50ff),
K223 DLC inhouse interface (see
NCR DMV System Info, page 66ff).
I’ve got
blank modules (K 214, K217 and K218), they are the shell plus some breadboard with the appropriate connector.
K210 Centronics module:For info see
NCR DMV System Info, page 155ff and
System Technical Manual Hardware, page 79ff and 236ff, schematics page 256ff
https://dl.dropboxusercontent.com/u/55419307/NCR%20DMV/DMV%20Centronics%20K210.zipK212 RS232 printer module:The K211 RS232 communication adapter has the same board as the K212, but a different cable. Internal port addresses can be found on pages 49ff in the
NCR DMV Hardware Extensions File. Infos in the
System Technical Manual Hardware, page 74ff, schematics page 254ff
https://dl.dropboxusercontent.com/u/55419307/NCR%20DMV/DMV%20RS232%20Printer%20K212.zipK801 switchable RS232 module:For info see
NCR DMV System Info, page 20ff
https://dl.dropboxusercontent.com/u/55419307/NCR%20DMV/DMV%20RS232%20Switchable%20K801.zipK803 RTC module:For info see
NCR DMV System Info, page 26ff
https://dl.dropboxusercontent.com/u/55419307/NCR%20DMV/DMV%20RTC%20K803.zipK804 IEEE-488 module:For info see
NCR DMV System Info, page 31ff and 215ff and
System Technical Manual Hardware, page 326ff
https://dl.dropboxusercontent.com/u/55419307/NCR%20DMV/DMV%20IEEE-488%20K804.zipK806 Mouse module:For info see
NCR DMV System Info, page 37ff and 189ff, and
System Technical Manual Hardware, page 388ff
https://dl.dropboxusercontent.com/u/55419307/NCR%20DMV/DMV%20Mouse%20K806.zipK012 Internal HD:Schematics can be found in the
System Technical Manual Hardware, page 256f
https://dl.dropboxusercontent.com/u/55419307/NCR%20DMV/DMV%20Internal%20HD%20K012.zipExternal HD:C3282, see
NCR DMV System Info, page 97ff and
System Technical Manual Hardware, page 16ff and 44ff
https://dl.dropboxusercontent.com/u/55419307/NCR%20DMV/DMV%20External%20HD.zip
CPU modules:Some info on the 8088 modules in the
System Technical Manual Hardware, page 36ff, schematics from page 246ff, a 16bit BIOS listing from page 288ff
K230 Internal 8088 module without interrupt controller:If this module is installed together with K234, CP/M-68K will not boot.
https://dl.dropboxusercontent.com/u/55419307/NCR%20DMV/DMV%20int%208088%20CPU%20no%20PIC%20K230.zipK231 External 8088 module without interrupt controller:See
NCR DMV System Info, page 64ff and
System Technical Manual Hardware, page 355ff
https://dl.dropboxusercontent.com/u/55419307/NCR%20DMV/DMV%20ext%208088%20CPU%20K231.zipK234 External 68008 module:See
NCR DMV System Info, page 54ff
https://dl.dropboxusercontent.com/u/55419307/NCR%20DMV/DMV%20ext%2068008%20CPU%20K234.zipK235 Internal 8088 module with interrupt controller:This module can be combined with the 68008 module. (See NCR DMV Hardware Extensions, page 16ff and
NCR DMV System Info page 89ff as well as
System Technical Manual Hardware, page 340ff)
https://dl.dropboxusercontent.com/u/5541...0PIC%20K235.zip
Current status:Currently (r31292) the DMV driver boots CP/M-80 and runs quite a number of programs, e.g. the “ladder” game that is remembered by many people
The emulated DMV freezes whenever text scrolls off the screen:
The missing graphics mode prevents a number of software items from running on the DMV driver, such as the DMV graphics demo that can be seen here
http://www.youtube.com/watch?v=7Q49hD1gci8 . It is included on the 580TEST.mfi disk image. Maybe the graphics mode can be gleaned from the Epson QX-10 driver that uses the same video chip.
I have created a file with ASCII graphics of the pinout for the expansion and CPU expansion bus (dmvbus.c) and the pinout of the diagnostics module (dmvdiag.c)
https://dl.dropboxusercontent.com/u/55419307/NCR%20DMV/NCR%20DMV%20Bus.zipRobert
Sandro Ronco completely revamped the DMV driver in r31661 and implemented the bus system and the first modules - and it's amazing! Thanks Sandro!
Apart from CP/M-80, now CP/M-86 and MS-DOS 2.11 also boot.
There's a caveat with MS-DOS: It boots if there's no memory module selected, with 64K of system memory
If a memory module is inserted in slot1, the BIOS does the memory test on the bottom of the screen, then boots into MS-DOS (recognizing the added memory, see line 3) but hangs shortly after this point ...
showing a cursor below the "Command v. 2.11" message you can see in the first screenshot.
I have to end MESS with Windows Task Manager at this point.
One thing that happens uniformly across all operating systems is, that if text scrolls off the screen, the driver freezes. To replicate you simply boot into an OS and repeatedly DIR the contents of the disk. Or you leave ladder (here on CP/M-86) and DIR ...
This condition is non-lethal though, you can reset the emulation with F3 if you're in partial keyboard mode.
Sandro even put the graphics portion in, and running DEMO5 shows this colorful jumbled picture
It seems that most of the items on the To-Do list for the upd7220 driver apply here, because this showcase program for the DMV made heavy use of the features - the machine was touted as highly graphics capable.
I want to thank not only Sandro for his work on the driver but all MESS devs - when I uploaded the first files 2 1/2 years ago, a lot of this wouldn't have been possible - the bus system, slots, CPU and Floppy controller refinements (or rewrites) all came afterwards. It's brilliant!
Robert
Another milestone, thanks to Sandro:

The latest changes to the upd7220 driver now permit scrolling, the emulated machine no longer freezes when the end of the screen is reached.
This also makes it possible to run WordStar in all three emulated operating systems, warts and all - I have set the keyboard to German, and this converts the | character in the menu's ASCII frames to "ö" just like on the real machine.
The distinction between mono and color isn't made yet, even though the machine is configured as mono, the text is shown in different colours instead of highlights/bold text.
Does anyone know if the upd7220 in Toshiya Takeda's emulator is more fleshed out than the MESS driver? He seems to base his work on MAME/MESS, but comparing licenses (and source code) isn't my forte.
http://homepage3.nifty.com/takeda-toshiya/
The scrolling problems (which did not only affect the DMV) were a real bug in the 7220 emulation; the fix also fixes multiple systems. Now is not the time to panic and call for ripping out the 7220 :P
Hmm ... I was thinking more along the lines of "gently assimilating code" than panicking
On the topic of upd7220 bugs, one of the compis graphics demos looks like this.


Looks almost like some lines are being drawn backwards. Scrolling in msdos also doesn't work.
rfka01: Assimilation likely would be harder than just fixing ours as his code is much narrower in scope (he only needs the QX10, PC9801, N5200 and MZ-3500 to work).
The 7220 doesn't know the DMV has a mono/color switch or have any way to handle it; the errors you seek are calling from inside the DMV driver.
I was hoping that Takeda had addressed some of the shortcomings of the graphics portion of the 7220 driver, e.g. arcs (used to draw circles), there is also mention of "honoring the viewing area" which I think might be connected to the strange tear and shift you can see in post #99542.
Anyway, don't count my post as nagging, I'm only trying to find resources - I'm more than happy and grateful with all the progress as I've said before.
The upd7220 has a decap btw, if anyone wants to trace it out.
Also, theres a patent on how the bresenham curve/arc algorithm on it works, which may explain the 'mask PLA' on the die.
LN
LN is this what you're talking about?
https://dl.dropbox.com/u/55419307/%C2%B5PD7220.zip
In 2013 Olivier Galibert sent me the dieshot and I did a first step to convert it.
I wrote then
Hi Olivier,
this is an archive containing two files with my efforts about the µPD7220.
The Excel file has the values as we discussed them in the shoutbox last Thursday - the cells marked in yellow should be extra double checked

The Powerpoint file has the "legend", I have marked the regions I have transcribed as they appear in the Excel file, so not too much work is lost, should I be off by one or more rows or columns.
I can put the binary values into a file if you tell me how to group them, i.e. four excel cells across one row into a single byte.
Robert
The upd7220 has a decap btw, if anyone wants to trace it out.
Annoyingly, the active is invisible under the metal...
OG.

The last changes allow another OS to run on the DMV - USCD p-System. That's four down, one to go (CP/M-68K)
Robert
I've worked on the DMV layout a bit ... there are now four options apart from "screen only":
- Default without backdrop
- Diagnostic module without backdrop
- Default with backdrop
- Diagnostic module with backdrop
Each view comes with drive LEDs (although I couldn't figure out how to "connect" them in the driver ... disk copying inside the driver works, so having the LEDs work would be nice), and the mainboard diagnostics LEDs.
The views that include the backdrop have a "lighted" power LED. In these views it would be great to be able to call up the file manager dialogue for the respective floppy disk drive by adding a hotspot to the drive knobs. I don't know if MESS supports switching between the host mouse and a guest mouse that might be emulated in the future.
The views for the diagnostic module include the 7 segment LED displays and the diagnostics LEDs on the module. Of these, the six LEDs monitoring the computer's voltage are fixed, the PCLK/, MEMR/ and HLDA LEDs could be hooked up.
https://dl.dropboxusercontent.com/u/55419307/NCR%20DMV/DMV%20Layout%20Artwork.rar
Holy blinkenlights! This is awesome!
Everything that works was put there by Micko in 2012 ... I just shuffled it around a bit
Way cool!
Want that for the Rainbow, too.
Do you have good images of monochrome or color monitors?
To light simple LEDs, you'll have to write something like that:
// RESET ALL LEDs
output_set_value("led1", 1);
A bezel named "led1" must exist. See
<view name="Default Layout">
in RAINBOW.LAY
The state values can be taken from the top of the layout file:
<element name="driveled" defstate="0">
<disk state="1">
<color red="0.75" green="0.0" blue="0.0" />
</disk>
<disk state="0">
<color red="0.20" green="0.0" blue="0.0" />
</disk>
</element>
I don't know yet how to drive 7 segment LEDs (hell, the documentation is really bad...)
Well, I've been looking through the DMV driver to find the appropriate signal to trigger the output to the drive LED, but couldn't make heads nor tails of it ... this'll have to wait for a dev.
As for pictures of the monitors, I can try to photograph them and then enhance the existing layout.
The drive led is usually configured by jumpers on the drive itself.
On the TEAC FD55GFR drive (which is just an example drive here) it can be one of 5 things (from FD55GFR-7xxx jumper listing):
1. Drive Select
2. Drive Select + In Use
3. In Use
4. Drive Select * Ready (ready is supplied by the drive itself)
5. In Use + (Drive Select * Ready)
(In Use is an optional use of the otherwise reserved mini-shugart pin 4; other drives may use it for other things)
(+ means OR, * means AND)
(The actual cable signals are all open collector active low, so consider them pre-inverted on the drive board to active high for simplicity here)
LN
Yeah, I'd know how to jumper a physical drive, but integrating the LED code into the driver is beyond my abilities.
Make that "strap" instead of "jumper" as this is a NCR related thread. That's the terminology they were using then
I don't know yet how to drive 7 segment LEDs (hell, the documentation is really bad...)
Actually it's pretty simple if you know where to get the value, src/mess/drivers/mk2.c has one I hooked up a while back:
for (i=0; i<4; i++)
output_set_digit_value(i, m_led[i]);
So the first parameter to output_set_digit_value is which digit to change, and the second parameter is the value to set it to (m_led is set by a write handler elsewhere in this case). I think the value is a bit field of the segment values so if the system has some weird arrangement of bits you may need to use a BITSWAP macro but for mk2 it just worked.
Thanks ... the 7 segments are actually hooked up ... I have yet to cross check the the validity of the values they display.
@rfka01
Can you explain more specifically the color/monochrome problem you have?
I have tried WordStar in CP/M-86 and the color/monochrome switch works here, but keep in mind that the effect of the switch changes takes effect only after a soft-reset.
Sandro
@Sandro
Apologies to you, the color/mono distinction works fine ... I should have realized I had to reboot - d'oh!
If you swap modules you're prompted for a reset - this is probably why I assumed it would be fine without.
The mono mode should have a distinction between bold/normal characters (e.g. in the Wordstar menu), but I think that's missing from MESS' uPD7220.
Actually, I know where my confusion comes from:
If you boot CP/M-80 from this disk image
https://dl.dropboxusercontent.com/u/55419307/NCR%20DMV/580TEST.mfi and run pc-test.com the graphics controller is detected as "colour" even if the system is set to monochrome. I will try to run this on real hardware to verify this behaviour.
This disk is interesting for other reasons too: OG fixed memory leaks in the mfi disk image code in r31818, this disk still yields the following message after exiting MESS:
C:\mingw\mess_work|mess64 dmv -slot1 k202
Average speed: 99.75% (248 seconds)
Average speed: 100.00% (90 seconds)
Average speed: 99.83% (93 seconds)
--- memory leak warning ---
#037270, nofree 180744 bytes (src/lib/formats/mfi_dsk.c:189)
#037271, nofree 181744 bytes (src/lib/formats/mfi_dsk.c:190)
a total of 362488 bytes were not freed
The disk was created before OG's fixes, so this may not be an issue after all.
If you run the DMA test from pc-test.com you get the following error message:
It would be great if the MESS Teledisk implementation would show Teledisk's disk image comments when you select an image.
Enough rambling ... thanks for your patience, Sandro
PC-TEST uses the bios version for detect the monitor type and the default bios is from a machine with color monitor (C.07.00, note the 'C'), if you try to run the others bios (appending -bios 1/2/3 to the commands), PC-TEST detect a monochrome monitor because these bios are from monochrome machines (M.0x.00).
Thanks again for the explanation, Sandro. The DMV is so tightly built that you need to take it apart and reassemble it completely in order to test components. That means you don't just swap in something and then something else.
So it's one of the privileges of emulation to test behaviour like that on the fly

I got a lot of these mainboards years ago as spares, and they were sitting in my basement until now.
I remembered yesterday that I had another piece of DMV kit stashed away - but I think that's definitely the last one

I was given an extra HD module and controller, all the labels are there and I even found documentation about it:
https://dl.dropboxusercontent.com/u/55419307/NCR%20DMV/DMV%20External%20HD%20kit.zipBetween the DMV module and the actual MFM harddisks sits a WD 1002 HDO harddisk controller - this makes it not SASI as I had assumed previously, but the earlier parallel variant. The archive contains a manual of the controller.
The original MFM drives that connected to this controller were 10MB, but on some floppies utilities are provided to format 20MB disks.
I remember running a double hard drive setup from this particular controller/module combo that gave me a bootable 10MB DOS partition one one harddrive, another 10MB dos partition on the other harddrive, and 4 CP/M partitions divided between the two harddisks.
According to a Google search, this particular board was also used in the Kaypro 10, the Epson QX-10 and some TRS-80 models.
Here
http://mirrors.apple2.org.za/apple.cabi.net/FAQs.and.INFO/DiskDrives/ide.guide.txtsomeone adapted an IDE harddrive to his QX-10 ... interesting read.
IDE is essentially a 16-bit version of the WD1002, so using an IDE drive on a 1002 interface would be relatively simple (similar to interfacing IDE to an 8-bit CPU/bus like Apple II and C64 users have done).
Yeah, that's what I made of that article, and that's why I linked to it as a whole set of drivers might benefit from it.
I knew that SCSI went back to SASI, and I knew that, to paraphrase, "IDE integrated much of the controller onto the harddrive", but I hadn't known that it was the 1002 type that was integrated. In the words of a German radio comedy that spoofs Lothar Matthäus' English: "Again what learned".
Speechless ... Sandro did it again!
New modules for the DMV are the 16K shared RAM (which I haven't seen in the wild) and the 68K module - the DMV now can boot its full compliment of operating systems including CP/M-68K.
mess64 -slot1 k208 -slot7 k234 -slot7a k235
gives you 512K RAM, the IRQ enabled 8088 and the 68008 and boots CP/M-68K just fine.
If you add the 68K module to one of the IRQ-less 8088 modules, CP/M-68K boots, too ... that's different on real hardware, but hey ... amazing progress again!
Great going, Sandro! Thanks again!
IDE is essentially a 16-bit version of the WD1002, so using an IDE drive on a 1002 interface would be relatively simple (similar to interfacing IDE to an 8-bit CPU/bus like Apple II and C64 users have done).
It's very similar, but it's not 100% software compatible so you'd need to patch the code.
http://mirrors.apple2.org.za/apple.cabi.net/FAQs.and.INFO/DiskDrives/ide.guide.txtYou won't need (or be able to use) the WD1002 when using an IDE hard drive.
Bit of progress with the 7220.


This is the demo from the movie posted on the first page of the thread.
Woo-hoo, thanks for the work on the 7220, crazyc (& Kale? He was posting about it in the pc-98xx thread). It looks like the drawing areas are converging ... and is that Zoom in the characters?
With Sandro's recent addition of CopyQM files and a softlist, it's waiting to have software thrown at it
I think I've found the source to the positioning problems. If the GD bit is set in the FIGS command then pitch is effectively halved but only when figure and char drawing and in mixed mode. Still need to figure out exactly how it works though.

That thing is a great test case for the uPD7220
Speaking of which, with a solid uPD7220, could we emulate a Number Nine Revolution ISA card?
Another great test case for the uPD7220 is the Nokia MikroMikko 1 driver, but currently it won't boot from floppy for some reason.
Vas: if the video BIOS and drivers (if there are any, they're pre-Win 3.x) / software for those cards turn up, it should be possible.
Vas: if the video BIOS and drivers (if there are any, they're pre-Win 3.x) / software for those cards turn up, it should be possible.
Hello, my name is Stiletto, I have a small army of videocard collectors who are friendly to me.

[EDIT] Some drivers:
http://web.archive.org/web/*/http://www.nine.com/ftp/pub/revolution/*[EDIT] Another board?
http://www.vgamuseum.info/index.php/component/content/article/1196-control-systems-artist-1
Yeah, that Artist-1 board is definitely a 7220. No obvious (P)ROMs either.
I guess the next question is, does the #9 Revolution ISA have a video BIOS, or is it strictly a second-monitor-for-CAD type of thing? The latter we could probably emulate just with what the Internet Archive has.
I will hopefully be acquiring more information from a collector.
I'd bet just from running the setup program that it's a second monitor thing with no rom. Looks like the command port is memory mapped at 0xc0001, the data port at 0xc0000 and the framebuffer at 0xc0500. That's at the same address as the VGA rom though so hopefully it can be moved.
The card *is* pre-VGA, so it's possible it won't work in a system with a VGA as the bootup monitor.
@crazyc looking absolutely great, looking forward to the commit.
@crazyc ... great progress on the 7220 driver ... interestingly the BIOS version has a much bigger influence on the system than I previously thought ...
Mono BIOS V7 and Mono graphics board
Color BIOS V7 and Mono graphics board
Color BIOS V7 and Color graphics board
The program is demo5.com from
this disk
I wonder if there's any reference for color monitor for a program that is dumped ...
ETA: because that's problematic on Compis too (and that's has the bit correctly hooked up last time I've checked).
Unfortunately my color DMV isn't working ... I've put out requests for help, maybe there's a collector who can help.
Maybe it's supposed to look like this?
@crazyc ... maybe

Yer a wizard, Harry!
Give a guy a finger, and he'll take the whole hand ...
... now that the demo5 is working in CP/M-80 and in colour ...
I've done some more tests

Demo5 is not running in CP/M-86 and MS-DOS ... and neither is DR DRAW in CP/M-86 and colour, but it is working in mono. Looks like the graphics emulation doesn't play nicely with the 8088 boards.
You need to run graphics.cmd and then draw.cmd from 8DRMO-M.td0 (mono) resp. 86DRDRAW.tdo (colour) from this archive. The mono version displays the splash screen and menu, the colour version just stalls.
https://dl.dropboxusercontent.com/u/55419307/NCR%20DMV/DMV%20advanced%20graphics%20%231.rar

On the third disk in above archive there is 80TGRAF.td0, another graphics library, this time again for CP/M-80, running CGDEMO shows some remaining alignment issues for the 7220
The color does the same as the mono if you load the mouse in slot 3.

The alignment issue is because it's drawing a slanted char which we don't yet support.
@crazyc thanks for all the work, I really appreciate that.
Adding the line
SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
to the Floppy slot interface enables the selection of 96tpi disk drives. These were available as an option.
In this archive, there is a disk image with CP/M-86 that expects drive A to be 48tpi and drive B to be 96 tpi, the other disk image is a from a 96tpi disk and contains the GSX-86 test suite.
https://dl.dropboxusercontent.com/u/55419307/NCR%20DMV/DMV_CPM86_4896tpi.rar MS-DOS can work with two 96tpi drives:
https://dl.dropboxusercontent.com/u/55419307/NCR%20DMV/DMV_DOS_96tpi.rar Be careful to select the 96tpi drives before you drop in 96tpi images though, otherwise you'll get kicked out of emulation:
There is evidence on a 48tpi CP/M-80 disk that CP/M-80 was modified to work with 96tpi drives, but I have yet to discover a bootable disk for it - all I have is the HCOPY.com program on this disk that has a 96 tpi option.
https://dl.dropboxusercontent.com/u/55419307/NCR%20DMV/5-80-ORI.rar The GSX-86 test suite provides further test cases for the display emulation. It is also available on
http://www.cpm.z80.de/binary.html This archive
http://www.cpm.z80.de/download/screen.zip contains a text file (actually WordStar) that describes what the test programs should show.
Sandro added the RTC module K803 and connected the mouse to K806.
I won't be home for a few days, so I can only test this on my Ultrabook ... if you select K803, MESS dies and complains about "Required I/O port 'DWS' not found"
This is on Windows 8.1 64bit with the new set of tools.
Another thing that puzzles me:
Calling MESS from the command line works without a hitch, but if you call the DMV driver from the internal UI, e.g. coming from another driver, you get the message "The selected game is missing one or more ROM or CHD images. Please select a different game." All my BIOS ROMs are in ../mess/roms , I've kept the default paths.
The first problem should be just a typo:
go to line 56 of emu/bus/dmv/kb803.c and substitute "DWS" with "DSW". Should work then.
if you select K803, MESS dies and complains about "Required I/O port 'DWS' not found"
typo fixed. thanks for catching.
Calling MESS from the command line works without a hitch, but if you call the DMV driver from the internal UI, e.g. coming from another driver, you get the message "The selected game is missing one or more ROM or CHD images. Please select a different game." All my BIOS ROMs are in ../mess/roms , I've kept the default paths.
it works here. might you have roms of the clones or of the devices inside the parent zipfile? internal UI is a bit pickier (or more limited, if you prefer) about the location of your roms than command line
I ran the GSX-86 test suite on the 96tpi disk image from post #96692 and juxtaposed the descriptions and the screenshots in this table ... this allows for easier re-testing when things change in the 7220 or DMV driver.
https://dl.dropboxusercontent.com/u/55419307/NCR%20DMV/CP-M-86%20GSX%20Test.pdfI think it's awesome how much is already running! Some tests are not working because the functions have not been implemented in the DMV GSX driver. The blue line of garbage at the bottom of many screens is an indicator that something's not quite right yet.
Here are two disk images with software concerning the K803 Real Time Clock - both are bootable.
https://dl.dropboxusercontent.com/u/55419307/NCR%20DMV/DMV%20RTC.rarThe 5XTEST.td0 image contains a version of the DMV hardware tests that can check the K803 and find it working. It's curious though that the values that are displayed are different from using the RTC.COM on the other disk, dmv_rtc.mfi which is contained in the RTC directory.
To get the RTC working intially, you have to run CONFIG on dmv_rtc.mfi and choose to initialize the RTC on system boot. This creates a config.sys file with the correct parameters for TIMDRIVE.sys to import the time into DOS.
Two other utilities, rtc_n and set_rtc don't see the emulated K803.
Currently, on each boot of the DOS disk, the RTC is reset to the same starting point - I don't know if this is due to MESS RTC handling, the K803 driver or the internal DMV RTC driver.
Anyway,
MESS auto-syncs RTCs to the current real-world date and time each time you (re)start a driver.
It would be nice to have an "epoch delta" that is applied (via command line switch) when you start MESS.
This way you could easily "fake" your system running in the 1980s, for example
I think that ideally we shall have an option for user-defined initial time, possibly defaulting to current time
Then, if the clock was battery powered, later sessions shall reload the last "emulated" time, ignoring the option, until the user nukes out the battery file
Otherwise, the option should be used.
however, in the past, RTCs typically used per-case solutions so that any kind of standardization will require some code efforts
99% of RTC devices now are standardized on dirtc, so doing what you want is actually easy.
@rfka01
What are the values differences that you get between the 'DMV hardware tests' and RTC.COM? I have tried both and the values seem correct here.
RTC_N.COM and SET_RTC.COM do not appear to be intended to be used with a K803 (that uses a MM58167), but with a module that uses a RTC-58321 (see screenshots), have you any info on other RTC modules other than the K803?
RTC_N.COM:
SET_RTC.COM:
Regards,
Sandro
Hi Sandro,
the test program from 5xtest shows my real world system time. If I boot with the dmv_rtc image, the time shown by the dos prompt is reset to the time I first started the DMV tonight, currently 22:49:30, every time I reboot the machine using F3.
Robert
P.S. I know of no alternative modules, but I have disks for a "Version II" of the DMV that may or may have not been identical with the later PC4. Those disks contain RTC related files as well.
the test program from 5xtest shows my real world system time. If I boot with the dmv_rtc image, the time shown by the dos prompt is reset to the time I first started the DMV tonight, currently 22:49:30, every time I reboot the machine using F3.
This is the behaviour of device_rtc_interface::set_current_time and I have no idea if is intended or not, anyway a hard reset (left shift + F3) forces a resync of the rtc with the real-world date/time.
Sandro
That's intentional behavior, it lets you set a system time e.g. in the past and have it persist.
Thanks Sandro and RB for clarifying this.
Anybody can be the next George R.R. Martin now ... Sandro's added the K210 centronics interface, and you can load Wordstar in CP/M and print to a file through the line printer emulation.
Is there an equivalent to the post-processing that is possible with the Apple Imagewriter driver?
I'm still struggling with the concept of how to connect something to an emulated serial port - as the DMV also gained four RS-232 modules in one swell foop.

Thanks once again!
There are some external contributors who are getting very close to having several later Epson parallel printers fully emulated. They run the firmware and complete their self-tests now, but they can't yet receive data from the host system or produce any output.
As far as I can tell they're back compatible all the way to the Epson MX and FX that were ubiquitous in the 80s so it should be possible to get your George RR Martin on from a variety of MESS emulated systems
He's using Wordstar 4 on a vanilla IBM compatible anyway IIRC, but he could change over to an emulated DMV now any day
I'm still struggling with the concept of how to connect something to an emulated serial port - as the DMV also gained four RS-232 modules in one swell foop.
Put a "null_modem" device in a serial port slot and use "-bitbngr socket.127.0.0.1:<port>" on the command line.
Thanks! I'll try that in the morning ...
Wow ... the DMV wants to phone home to 1983 now ...
mess64 dmv -slot1 k202 -slot3 k211 -slot7a k235 -bitbngr socket.127.0.0.1:10000 -window
- HW Virtual Serial Port 3 providing COM3 on 127.0.0.1:10000
http://www.hw-group.com/products/hw_vsp/index_en.html - HTERM listening on COM3 set to 9600/N/8/1
http://www.der-hammer.info/terminal/ - Boot DOS, use CONFIG, set COM1/AUX to above values
- Load ASCOM
https://dl.dropboxusercontent.com/u/55419307/NCR%20DMV/ascom.img Set COM1 to above values ... hint: No parity is called SPACE parity here, set protocol to XON/XOFF
Set remote operating mode ... aaaand ...
You don't actually need a virtual serial port, just connect to the port with PuTTY.
Ah nice, I didn't know that, thanks ... I was thinking along the lines of LapLink, so my solution is possibly more universal.
Doesn't MARK and SPACE mean "parity bit always 1" and "parity bit always 0"? Or am I confusing them now? I admit it has been some time since I had to deal with that
Ascom is offering these choices
... anyway, SPACE works.
A diagnostic module turned up on Ebay ...
I've updated the relevant archive with pics and the ROMs which appear to be newer than the others.
https://dl.dropboxusercontent.com/u/55419307/NCR%20DMV/DMV%20Diagnostics%20K220.zip
Thanks for adding the ROMS!
I've worked on the DMV layout a bit ... there are now four options apart from "screen only":
- Default without backdrop
- Diagnostic module without backdrop
- Default with backdrop
- Diagnostic module with backdrop
Each view comes with drive LEDs (although I couldn't figure out how to "connect" them in the driver ... disk copying inside the driver works, so having the LEDs work would be nice), and the mainboard diagnostics LEDs.
The views that include the backdrop have a "lighted" power LED. In these views it would be great to be able to call up the file manager dialogue for the respective floppy disk drive by adding a hotspot to the drive knobs. I don't know if MESS supports switching between the host mouse and a guest mouse that might be emulated in the future.
The views for the diagnostic module include the 7 segment LED displays and the diagnostics LEDs on the module. Of these, the six LEDs monitoring the computer's voltage are fixed, the PCLK/, MEMR/ and HLDA LEDs could be hooked up.
https://dl.dropboxusercontent.com/u/55419307/NCR%20DMV/DMV%20Layout%20Artwork.rar I wonder if the recent work on lua and the internal ui has exposed the feature to call up the "file" select dialog for that drive by clicking on artwork.
Is it possible to change art depending on the state of a certain toggle - so a picture of an open or closed floppy drive could be swapped in according to the state of the drive?
I've added another ROM revision for a color Mainboard that was dumped by the same guy as the PC4i ROMs.
http://oldcomputers.dyndns.org/public/pub/rechner/ncr/DMV/My_DMV_Color/2016-04-11/index.htmlI've noticed a change in the behaviour of the driver, but I can't say when it was introduced:
With the two 07 revision BIOS of the color and mono ROMs, the driver works as usual.
With the two 06 revision BIOS (that is, including the new one) there is a flickering of a cursor block over the bottom line with the floppy error, moving from right to left, and the floppy error is different.
[img]
https://www.magentacloud.de/lnk/hIVkxIJp#file[/img]
With the 05 revision, the machine stalls with the LEDs No. 5 and 8 on, which indicates a keyboard error.
Just as an aside, the correct behaviour for a DMV without a disk in the drive is this error message instead of the one produced currently.
[img]
https://www.magentacloud.de/lnk/sR1kRkl1#file[/img]
Sorry you need to click on the links in order to see the images ... I'm still struggling with this new hoster.
Sorry you need to click on the links in order to see the images ... I'm still struggling with this new hoster.
The problem is that the links that you posted aren't direct links to image files, they're links to web pages on your host. Do yourself a favor and just make an Imgur account, verify it, and enable high-quality uploads.
The problem is that the links that you posted aren't direct links to image files, they're links to web pages on your host. Do yourself a favor and just make an Imgur account, verify it, and enable high-quality uploads.
Yeah, will do. Just missing my free dropbox upgrade ... sniff ... funnily enough another forum software managed to extract the picture links.
@crazyc ... thanks a lot! Your changes fixed the booting issues, the flickering and the erroneous error message in one go!
Looks like the DMV driver has lost its colour capability ... the Demos and the Escape sequences in DOS only produce a green image. The earliest source I have around is from May 22nd and already has this behaviour.
It wasn't clear that it supported color so it forced to monochrome in a cleanup. I've fixed it now.
Yeah, it's selectable - there are colour and mono BIOS versions and two different graphics adapters with their proper monitors.
Thanks!
Some disk images behave strange as well ... while it's entirely possible that they have become corrupted, I haven't seen this before:
e.g.
if you load
https://www.magentacloud.de/lnk/9OVkx6io into drive B: from within the emulation, MAME stops with the error
Fatal error: Incorrect layout on track 0 head 0, expected_size=5Average speed: 100.00% (9 seconds)
0000, current_size=70928
If you load
https://www.magentacloud.de/lnk/W7Vkxzmvyou get
-----------------------------------------------------
Exception at EIP=0000000001AEC975 (not found): ACCESS VIOLATION
While attempting to read memory at FFFFFFFFFFFFFFFF
-----------------------------------------------------
RAX=00000000191A12A0 RBX=FFFFFFFFFFFFFFFF RCX=000000001CB30330 RDX=0000000050000000
RSI=0000000000000000 RDI=00000000500003E8 RBP=0000000000001020 RSP=00000000047069A0
R8=0000000000000000 R9=0000000004706AC0 R10=000000001CB30330 R11=00000000000186A0
R12=0000000000000000 R13=0000000000000050 R14=00000000FFFFFFFF R15=00000000000153A0
-----------------------------------------------------
Stack crawl:
0000000004706A20: 0000000001AEC975 (not found)
0000000004706B20: 0000000001AEFC89 (not found)
0000000004718460: 0000000001B26408 (not found)
00000000047184F0: 0000000001486775 (not found)
0000000004718520: 00000000019E2E06 (not found)
0000000004718720: 00000000019E5A6B (not found)
00000000047187D0: 0000000000BD5AF3 (not found)
0000000004718880: 0000000000BD5D78 (not found)
00000000047188D0: 0000000000BE083D (not found)
0000000004718990: 0000000000B890A8 (not found)
0000000004718A10: 0000000001ABE442 (not found)
0000000004718A60: 0000000001A9B5AF (not found)
0000000004718AD0: 0000000001A9F6E5 (not found)
0000000004718B60: 0000000001A94A18 (not found)
0000000004718BE0: 0000000001A5C718 (not found)
000000000471F530: 0000000000B5A909 (not found)
000000000471F980: 0000000000BACC0A (not found)
000000000471F9E0: 0000000000B59A5D (not found)
000000000471FE00: 0000000000ABE618 (not found)
000000000471FE50: 0000000001E1DB2F (not found)
000000000471FF20: 000000000040140C (not found)
000000000471FF50: 000000000040153B (not found)
000000000471FF80: 00007FFB20948102 (BaseThreadInitThunk+0x0022)
000000000471FFD0: 00007FFB2321C5B4 (RtlUserThreadStart+0x0034)
Segmentation fault
Edit: The second fault is due to the disk image being from a 96tpi drive ... if you change the drive type to 525qd, the disk image is loaded.
It would be great if there was a way to show an error instead of crashing the emulator.
if you build with symbols ("make SYMBOLS=1") you can at least track the crash back to find out what's causing it (in case it's not as easy as this time) ;-)
Yeah, one of the long-standing boners of the new floppy system is that higher-density drives can't read lower-density disks even though that's entirely possible on real hardware. If that was solved we could just default everything to the highest density drives and the crash wouldn't be a problem. (Although of course the crash should still be fixed).
Yeah, one of the long-standing boners of the new floppy system is that higher-density drives can't read lower-density disks even though that's entirely possible on real hardware. If that was solved we could just default everything to the highest density drives and the crash wouldn't be a problem. (Although of course the crash should still be fixed).
That's the case with DD disks in a HD drive, e.g. on an AT class machine. A real 1.2MB drive can read 360K disks, so they sort of "belong" to that drive.
Here the 96tpi disk can never be read in the 48tpi drive, so rejecting it is correct - but doing so with a crash is annoying.
On real hardware the Computer's OS would have to decide what to do (Sector not found, Disk Error, Drive not ready) if you can physically cram the disk into the drive.
Maybe our file selector could display some basic data about the disk image (e.g. DD,QD,HD,GCR,FM,MFM, mixed, tracks/sectors/sides), and then load the disk and let the emulated OS do its thing.
This would be a nice approach for machines that were especially praised for their ability to cope with foreign formats, e.g. Commodore 128 or Kaypro II/10.
http://www.jbox.dk/rc702/emulator.shtmhas an emulator for the Regnecentralen RC700 (hi Ed!

)
It's using the same WD 1002 HD0 parallel=>mfm harddisk adapter as the DMV and, e.g. the Kaypro 10.
Maybe something could be ... learned

from there
Ah yes, now I remember ... I discovered it independently looking for emulators which use the same harddisk controller as the DMV.
The harddisk controller of the DMV with the internal harddisk is awkward to get at, so I didn't know its type (one of the external ones uses a WD1002-HD0).
With a bit of fiddling in a photo manipulation software, I was able to read the label on one the big chip of the internal controller and then determine the controller type itself.
It's the even older WD1001 that uses the N8X305N microcontroller, belonging to the AM29 series.
As was mentioned recently in the shoutbox, these controllers are the ancestors of the IDE interface.
According to the System Technical Manual Hardware, the internal harddisk adapter goes to slot 2A, the external one to slots 2-6, IFSEL is 4A and it occupies addresses C0H - C7H.
Scratch the AM29 reference from the last post, it's this critter:
https://en.wikipedia.org/wiki/Signetics_8X300
We do have a ROM dump from a WD1000 board from a Wicat system in MAME. I wrote an 8X300 core for it some time ago, would be nice to have it do something useful.
Sounds great, mahlemiut.
That's the one in the DMV:
K012 Internal HD:https://dl.dropboxusercontent.com/u/55419307/NCR%20DMV/DMV%20Internal%20HD%20K012.zipSchematics can be found in the System Technical Manual Hardware, page 258f
and here's a manual for the controller board
http://bitsavers.informatik.uni-stuttgart.de/pdf/eth/lilith/wd1001.pdf
Ok, so at a quick glance, the WD1001 seems to be a later version of the WD1000, and it does seem to use an 8X305 (I think it has more instructions and such compared to the 8X300, but I'll have to check on that). It'll likely have different code than the WD1000, since it has the later CPU, but if it gets dumped, we can then compare them to be sure.
The ROMs appear to be the three N82S181 right underneath the CPU. My eprommer can't read them, though.
https://www.westfloridacomponents.com/mm5/graphics/L11/82S181-BJA.pdf
If you are a solder guy it is pretty easy to make an adapter like this:
http://www.retrotechnology.com/restore/fuse_bipolar_prom.html#futuredata
Great link, Edstrom, thanks!
I'm not too keen on de-soldering the PROMs, but I've had good success with clamping a socket over the IC's legs ... I'll get sockets and try to remove the board from the DMV ...
Got the board out, but can't read the PROMs the easy way

It's a WD1001-05 Rev. A12
According to this site,
http://www.prof-80.fr/wd1002-05-controllerin addition to the Kaypro 10, the WD1002-HD0 from the external DMV kits is also used on the TRS-80 1, III and IV.
From a MAME perspective, what would the WD1002-HD0 need to become to be usable by all the different machines? A device? What would be an example of that?
As for the WD1001-05 from the internal kit, can anyone, preferrably in Europe, read the N82S181 ROMs and perform the soldering?
According to this site,
http://www.prof-80.fr/wd1002-05-controllerin addition to the Kaypro 10, the WD1002-HD0 from the external DMV kits is also used on the TRS-80 1, III and IV.
From a MAME perspective, what would the WD1002-HD0 need to become to be usable by all the different machines? A device? What would be an example of that?
As for the WD1001-05 from the internal kit, can anyone, preferrably in Europe, read the N82S181 ROMs and perform the soldering?
Eric Smith was just asking about WD1001-05 rom dumps. Was anyone ever able to do this?
If the board was sent here I could desolder and dump the proms...
LN
LN, if you send me a pm with your address again, I'll ship the WD1001 to you next week.
LN, if you send me a pm with your address again, I'll ship the WD1001 to you next week.
take a look at
www.bitsavers.org/pdf/westernDigital/WD100x/WD1001-05/ I'm curious if this is the same board with the same rev of firmware
Small update, here are pics of the K200 memory module which adds 64KB of RAM to the onboard 64KB. The module itself has been included in the DMV driver for a long time, the pics are just for completeness' sake.
NCR DMV K200 memory moduleLN, were you able to read the ROMs of the DMV's harddisk controller I sent you?
Not yet. Have to get a bunch of stuff done for VCFE in a week or so, but after that I should have time.
LN
Thanks to Sandro Ronco for adding the DMV's harddisk controller!
This was the last missing bit to DMV emulation. While experimenting with the new addition, I found that the cursor is wrong, it's a solid block but should be a blinking underscore.
I'm re-acquainting myself with the setup of the harddisks. The partitioning scheme is relatively inflexible (originally 10MB harddisks were used), allowing the CONFIG program to set the number of harddisks and then the number of partitions on those harddisks leading to single 10MB partitions or dual 5 MB partitions per hard disk.
CP/M is not bootable from the harddisk.
There are later DOS utilities that can create a single 20MB harddisk parition per disk but this is incompatible with CP/M partitions.
I'm trying to recreate my old setup that utilised most of a 2x20MB configuration. I'll add a how-to when I have my stuff running again
68bit gets credit for adding the WD1000 device that made this possible as well
Definitely! It could also find a home in the Kaypro 10
I checked the DMV drivers to see if the recent µPD7220 changes were having any ill effects.
The cursor should be a blinking underscore, but ... this has been a solid rectangle going at least back to 0.164 and it has a "//TODO" in the source,
so not really a regression
The DMV driver seems to have lost the ability to draw the graphics in AutoCAD between 0.235 and 0.236 (there was a µPD7220 change for that release).
![[Linked Image from i.imgur.com]](https://i.imgur.com/mHi3mT3.png)
I have a HD image set up to replicate the issue. The DMV.BAT file in the archive gives a nicely maxed out configuration for the machine after you adapt the file paths to match your MAME setup.
Boot into DOS, enter "CD ACAD", "ACAD", type option "2" and the drawing's name, e.g. "NOZZLE" or "COLUMBIA".
The DMV.BAT file in the archive
Can't see it, did you forget it ?
It's missing but "mame dmv -slot6 c3282 -hard1 615-4-17_ncrdmv.chd -slot1 k208" worked for me.
Sorry I forgot to include that file ... my dmv.bat is somewhat more elaborate

mess -window dmv -slot1 k208 -slot3 k806 -slot4 c3282 -slot5 k803 -slot7 k234 -slot7a k235 -hard1 "\mame\media1\ncr\ncr dmv\Harddisk Images\615-4-17_ncrdmv.chd"
Edit this line for the name of your MAME/MESS executable and disk image location.