In the first volume of the MINC book set ‘Introduction to MINC’ several demonstration programs are mentioned. These demonstration programs (and a few more) are on the demo diskette image that you can find on Bitsavers. And if you follow the process I described in the previous post, the demo programs will end up on the RK image.
So, playtime. I selected the DADEM to give a try – a demonstration of the DA module.

For the D/A part, I had already added a driver for the PMODDA2 – I had one of those lying around. Not ideal maybe, since it only has two channels, and it’s limited to 0V-3.3V – the original MNCAA could be set to 5 different voltage ranges with knobs on the front panel, up to -10.24V to +10.235V!
Anyway, of course in my first experiments I hooked up my trusty digital voltmeter and everything worked great – but digital voltmeters do lack the proper mad scientist feeling that real meters with swinging needles give. So I just had to go into my storage room and dig out the box with old toys to find something more fitting.

And there it is. I’m not quite sure how old it is, but definitely older than I am – my dad took it home with him for his kids to play with, in the early 70s. It came from a laboratory instrument that his employer had discarded – probably a heavy power supply with lots of valves in it. For years the meter figured next to the transformer in various Fischer-Technik setups, later on I used it for my dangerous electrolysis prototypes… and it’s brother, taken from another instrument became the show piece on the front panel of my home made audio amplifier that I used in various offices until late in 1999. The amplifier is no more, but I still have the meter.
Anyway, the demo. It makes the voltmeter swing around for a settable number of seconds, and it’s remarkably unimpressive – given that the range of 0V-3.3V is not really doing a lot on a 0-20V scale. I’ll have to look into level converters next. It’s not that bad with MNCAA really, but the ‘wrong’ input range conversion with MNCDA is a bit jarring – that needs fixed.
For convenience, here’s the listing of the test program. If you are going to give it a go, take line 22 out – it will likely mess up the terminal emulator. Yes, it would be great if the terminal emulator in PDP2011 would be vt105 compatible… hmm, I’ll think about it.
10 REM -----DADEM 20 REM ----------Program to put analog out to digital volt ohmmeter 22 DISPLAY_CLEAR 30 PRINT 'DIGITAL-TO-ANALOG DEMONSTRATION PROGRAM' \ PRINT 40 PRINT 'The digital-to-analog demonstration program generates a voltage' 50 PRINT 'at the D/A output causing the volt-ohmmeter to oscillate starting' 60 PRINT 'with a small amplitude and slowly increasing until a maximum' 70 PRINT 'amplitude is reached.' 80 PRINT 90 PRINT 'Connect the volt-ohmmeter to one of the four channels of the D/A' 100 PRINT 'converter. Set the volt-ohmmeter to DC volts and select a range' 110 PRINT 'that will give full-scale deflection for a 5 volt input.' 120 PRINT 130 REM Request user input 140 REM 150 PRINT 'How many seconds do you wish to run (1 to 30)'; \ INPUT T 151 PRINT 'How many D/A converters do you have in your configuration'; 152 INPUT N 153 IF N>=1 THEN IF N<=4 THEN GO TO 157 156 PRINT 'please specify an integer between 1 and 4' \ GO TO 151 157 IF N>1 GO TO 600 160 PRINT USING 'What channel did you connect the volt-ohmmeter to (0 to ##)',4*N-1; \ INPUT C 170 L=127 \ M=.5 \ A=16 \ D=1 \ V=0 180 REM Schedule an interrupt T seconds from now 200 S=0 210 SCHEDULE('Interval',T,420) 270 REM Repeat the following code until interval complete 290 IF S=1 THEN 500 300 AOUT(,V,,,C) 310 GOSUB 330 320 GO TO 290 330 V=V+A*D 334 IF D*V<ABS(L) THEN 400 336 D=-D 340 L=-L 350 IF L<0 THEN 400 360 IF L<200 THEN 380 370 IF L<2000 THEN 390 380 M=1/M 390 L=L*M 400 RETURN 410 GO TO 150 420 REM Set the done flag. 430 S=1 440 RETURN 500 PRINT \ PRINT 'AGAIN (Y or N)'; \ INPUT A$ 510 IF A$='Y' THEN 120 \ IF A$='y' THEN 120 520 IF A$='N' THEN 800 \ IF A$='n' THEN 800 530 PRINT 'Please answer Y or N' \ GO TO 500 600 PRINT 'If you have followed the suggested configuration rules then your modules' 601 PRINT 'are addressed as follows:' \ PRINT 602 PRINT 'The rightmost d/a converter in the chassis has lines 0-3' 610 PRINT 'The next d/a converter to the left has lines: 4-7' 620 IF N=2 THEN 700 630 PRINT 'The next d/a converter to the left has lines: 8-11' 640 IF N=3 THEN 700 650 PRINT 'The next d/a converter to the left has lines: 12-15' 700 GO TO 160 800 END
Another thing with this test program – and the other one that I played around with, the DODEM for digital output – is that they use statements like SCHEDULE and PAUSE. Those require that the SJ monitor is sysgenned with timer support – if you didn’t, then those statements won’t work. And another thing: the sysgen needs to match the actual rate of the KW11 line clock in your system. Yes, I managed to get that wrong too 😉