Home Page

Bondwell BW-14

Posted By: rfka01

Bondwell BW-14 - 11/24/19 04:28 PM

I received a Bondwell BW-14 from a friend and dumped its ROMs since it has a German keyboard. The character ROM indeed is different, I've integrated it into the driver and submitted a PR. The archive I've uploaded to the FTP also contains photos from my machine and some schematics I found online.

It would be great if one of the Devs could give the driver a look (it's marked as a Skeleton in the comments section but not in the driver description).
The PC I'm using for MAME has plenty of power (32G RAM, i7 4790k CPU).

Some observations:
- the ROM based parts (initial system check, reset) happen in "real time", the reset is almost too quick as on the real iron it shows two distinct pages of ASCII patterns
- there are two major delays during the boot, one after CP/M 3.0's "54K TPA" message (ca. 75sec), the other after the Digital Research copyright message on the next page (ca. 17sec.)
- the emulated BW-14 will boot from the software list boot disk but neither from the direct dump of the disk that came with my machine or from one I reconstructed using the software list boot disk and mine
- if I convert the softwarelist boot disk to .MFM using the HxC tools, the emulated BW-14 doesn't boot from it
- There's a 20s delay before the directory of a newly inserted disk in A: or B. is displayed, haltingly.
- formatting a disk in the emulated BW-14 works, but is very slow. When the real hardware formats the disks, then verifies it, verifying a track takes about 1sec, in the emulation it's ca. 17sec
- copying files (using PIP) shows the first filename, but then nothing more happens ... in the Debugger you can see that the machine is still alive, but doesn't proceed.



Posted By: crazyc

Re: Bondwell BW-14 - 11/25/19 01:53 AM

Quote
- if I convert the softwarelist boot disk to .MFM using the HxC tools, the emulated BW-14 doesn't boot from it


The rom appears to expect sectors to be numbered from 0 but hxc messes this up and renumbers numbers them from 1 instead.

Quote
- there are two major delays during the boot, one after CP/M 3.0's "54K TPA" message (ca. 75sec), the other after the Digital Research copyright message on the next page (ca. 17sec.)


It's reading the disk through this whole period so I don't know why it would be much slower than the real hardware if it is. It reads one sector at a time which is going to be rather slow.

Quote
- the ROM based parts (initial system check, reset) happen in "real time", the reset is almost too quick as on the real iron it shows two distinct pages of ASCII patterns


The ASCII pattern does appear in the emulation but it's so fast it can't really be seen.

Quote
- copying files (using PIP) shows the first filename, but then nothing more happens ... in the Debugger you can see that the machine is still alive, but doesn't proceed.


Trying to write to one of the cpm disks it overran the index while writing the last sector which confused the emulation so it gave up. The sectors are very closely packed on that disk but I don't know if the cpm floppy was specially written to pack extra data or our cqm image loader makes the intersector gap too large.
Posted By: rfka01

Re: Bondwell BW-14 - 11/25/19 06:01 AM

You can see my BW-14 booting CP/M 3.0 and loading WordStar here:

https://i.imgur.com/BGjskX4.mp4

The 75 and 17 sec delays in MAME seem a bit excessive smile

18 sectors per track is cramming things rather tightly. As for gap sizes, this is what IMD comes up with:

[Linked Image from i.imgur.com]

You can watch the output of the probe2.com utility here: https://i.imgur.com/SM5SaM0.mp4

The 22disk definition (which appears to work) is

Code
BEGIN BON2  Bondwell 14 - DSDD 48 tpi 5.25"
DENSITY MFM ,LOW
CYLINDERS 40
SIDES 2
SECTORS 18,256
SKEW 2
SIDE1 0 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17
SIDE2 1 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17
ORDER CYLINDERS
BSH 4 BLM 15 EXM 1 DSM 174 DRM 127 AL0 0C0H AL1 0 OFS 2
END
Posted By: crazyc

Re: Bondwell BW-14 - 11/25/19 01:06 PM

Originally Posted by rfka01

SKEW 2


Interleave probably makes a big difference. The cqm images are loaded with the sectors in order. Since the machine reads one sector at a time it always misses the next sector and has to wait for a whole disk rotation to do the read.
Posted By: rfka01

Re: Bondwell BW-14 - 11/25/19 01:28 PM

What's the interleave used to create MFM/HFE images from within MAME?
Posted By: crazyc

Re: Bondwell BW-14 - 11/25/19 02:27 PM

MAME just uses the sector order from the image. The sectors in the CQM images from the softlist have no interleave. The IMD images from the upload dir have the correct interleave and the first part of the boot is very quick. The second part is slow because it pauses for a few revolutions before reading each sector. The boot then hangs because it tries to write to the disk.
Posted By: rfka01

Re: Bondwell BW-14 - 11/25/19 02:30 PM

I mean, if I'm formatting an image from within the emulation (as I want to get a writable disk image) and chose MFM or HFE, what's determining the interleave? Is it hardcoded in MAME's image handling or does the FORMAT utility get a say?
Posted By: crazyc

Re: Bondwell BW-14 - 11/25/19 02:35 PM

MAME will preserve the interleave if the image format supports it and the image save routine handles it properly. From a quick glance MFM format saves whole tracks at once so the interleave shouldn't be touched.
Posted By: rfka01

Re: Bondwell BW-14 - 11/25/19 02:43 PM

Thanks, I'll try to format a MFM image tonight and PIP the stuff from my German boot disk over ...
Posted By: rfka01

Re: Bondwell BW-14 - 11/25/19 10:04 PM

Here's the BW-14 booting the same disk (image) on real hardware and in emulation. I'm formatting a MFM disk image in the emulation and a physical floppy disk on the real BW-14. I've stopped recording the verification operation in MAME after three tracks smile

https://mega.nz/#!WFZnXYBY!edLcbH2dHHrFKfCpAzOyhDinaIH0nklf91b7ibI14M4

https://mega.nz/#!CMQRSIjR!twVYn_m3MVClTdErI0a0WQDKpmw1Z564whJH1h-L-Yo
Posted By: crazyc

Re: Bondwell BW-14 - 11/26/19 02:39 AM

After cpm boots it's disk reading routine has a long delay look before it checks for completion. That loop is long enough to take several revolutions to complete. It seems like there ought to be an interrupt to break out of the loop but the way the fdc irq is connected don't appear to work like that.
Posted By: rfka01

Re: Bondwell BW-14 - 11/26/19 07:03 AM

The schematics I posted to the FTP came from here. The page about the FDC contains a FDCINT line.
Posted By: R. Belmont

Re: Bondwell BW-14 - 11/26/19 12:42 PM

Right, FDCINT goes to PA7 on the 6821.
Posted By: crazyc

Re: Bondwell BW-14 - 11/26/19 04:07 PM

Page 1 shows a 556 timer connected to the motor on line. We are turning off the motor immediately which causes each read to do turn it back on and wait for a bit until it spins up. The timer is supposed to hold the motor on for bit which allows it to skip the loop. The simple fix is to just never shut off the motor, better is to figure out approximately how long the timeout should be.
Posted By: R. Belmont

Re: Bondwell BW-14 - 11/26/19 05:15 PM

The schematic doesn't exactly match any of the usual 555/556 hookup styles, so it may be doing something weird. Maybe mock it up with the netlist system and see what happens?
Posted By: Lord Nightmare

Re: Bondwell BW-14 - 11/26/19 07:19 PM

Looking at the 556 circuit at http://www.eld.leidenuniv.nl/~moene/Home/museum/Bondwell12/schematics/BW12-A1-CPU-IO-Decode.pdf, I'm trying to figure out what they were trying to do here.

It seems they basically used the 556 as a fancy voltage threshold comparator with hysteresis; the IC51 7416 open collector inverter pulls the TRIG and THRESHOLD pins low when its input (MOTOR1 | MOTOR2) is high, which makes the OUT pin of the 556 high and leaves it that way (which turns on the motor). When the (MOTOR1 | MOTOR2) signal is low, the 7416 allows the TRIG/THRESHOLD pins to be charged (via the 100k resistor at R16 to VCC, charging the capacitor at C11 which is, I think, 1.7uf electrolytic) until the THRESHOLD pin reaches 2/3 of VCC at which point the 556 shuts off and turns off the motor.

This is a non-standard hookup of the 556, since normally the capacitor is between the threshold/trigger pins and ground, not between them and VCC. The 556 is basically being used only for hysteresis (turns on when trigger is below 33% of VCC, turns off when threshold is above 66% of VCC) with the trigger and threshold pins tied together, and the external circuit with the 7416 discharging C11 and C11 recharging through the 100k resistor.

Since the 7416 pulls directly to ground it should discharge C11 very fast (and this current surge is probably not great for the lifespan of either C11 nor the 7416, though the 7416 is meant for very high voltage applications so it may be ok), however this discharge rate technically controls how fast the motor will turn on after request, so it is a finite (but very small) delay, which might be able to be ignored.

So, for the old fashioned τ = RC time constant equation for how long a capacitor takes to charge to ~63% of its capacity (and assuming 63% and the 66% of vcc threshold for the 556 are 'close enough' to be the same), the motor off delay is ~0.17 seconds.

This should be easily emulatable using a timer.
Posted By: crazyc

Re: Bondwell BW-14 - 11/26/19 08:12 PM

170ms appears to be enough to keep the motor on between consecutive sector reads.
Posted By: Lord Nightmare

Re: Bondwell BW-14 - 11/26/19 08:30 PM

A possible modification that this circuit could have to reduce wear on C11 is adding a resistor between the 7416 output and the resistor/capacitor/threshold/trigger pins, to somewhat reduce the amount of current the capacitor is dumping out through the 7416 during discharge; this would have to be carefully calculated so that the motor on timing doesn't get delayed by so long that it starts causing read errors.
Posted By: crazyc

Re: Bondwell BW-14 - 11/26/19 08:38 PM

It's already got quite a long delay loop waiting for the motor to start. A few extra ms for the cap to discharge probably wouldn't cause any problems.
Posted By: rfka01

Re: Bondwell BW-14 - 11/26/19 10:37 PM

Thanks to all involved!
Booting and formatting work like a charm now. Copying the system (COPYSYS) and PIPing files over from one disk to another still fail. I'll try to find other systems that use a 18 sectors/track, 256 bytes/sector format and check those commands there.
Posted By: rfka01

Re: Bondwell BW-14 - 11/26/19 11:17 PM

According to the 22DISK database, Televideo 801 and 806 use a similar format (albeit with the sector numbering starting at 1), but we emulate neither. I'm not familiar with the Televideo series, e.g. if the TV802 uses the same disks and how to operate the machine. Another option would be MT CP/M for the TRS-80 Model 4, but I can't find disk images and the emulation only has SD images hooked up at the moment.
© 2020 Forums