• Please review our updated Terms and Rules here

Wang Series 700B Advanced Programming Calculator Refurb.

@BlaBla1985 Would you be able to post the layout of boards in your 700B chassis? I have not found any chassis diagrams or motherboard schematics in the Wang 700 schematics collection, and would like to gather some data points from real calculators. Basically the PCB part numbers (4-digit number probably in the range 5800-6100, possibly with a suffix) and their location on the chassis. I have some information about a 700A from a blog in Norway, and would like to add to that and make it more complete. If anyone else watching this thread has a 700-series and can collect the same information, it would be appreciated. I'm not asking for a full disassembly, but just lifting off the top shell and examining the boards that plug into the chassis. Starting from the board immediately behind the Nixie tubes and proceeding back to the empty "cut-outs" at the back. And possibly the two "L505" boards on the side that connect to the Nixie tubes.

Thanks.
 
@BlaBla1985 Would you be able to post the layout of boards in your 700B chassis? I have not found any chassis diagrams or motherboard schematics in the Wang 700 schematics collection, and would like to gather some data points from real calculators. Basically the PCB part numbers (4-digit number probably in the range 5800-6100, possibly with a suffix) and their location on the chassis. I have some information about a 700A from a blog in Norway, and would like to add to that and make it more complete. If anyone else watching this thread has a 700-series and can collect the same information, it would be appreciated. I'm not asking for a full disassembly, but just lifting off the top shell and examining the boards that plug into the chassis. Starting from the board immediately behind the Nixie tubes and proceeding back to the empty "cut-outs" at the back. And possibly the two "L505" boards on the side that connect to the Nixie tubes.

Thanks.
On the first page of the document I wrote the board numbers next to the top overview picture. That should give you the info you want. There are also pictures of each card front and back (although I numbered them backwards from the display assembly).

Card numbers on the left, L505's on the right. The 2 numbers on the top of the picture are the 2 daughterboards in the powersupply.
 

Attachments

  • Worksheet-v2.pdf
    6.2 MB · Views: 2
@BlaBla1985 Another stray question, on how the 700B differs from 720C. The 720x models have 1984 steps and so require 4-digit step numbers (LEARN display, SET P.C. function, etc). The 700x models have only 960 steps, so I wonder if the LEARN display and SET P.C. are different - only using 3 digits? I'm also curious about the LIST function, but unless you've got a "fake printer" (PC) connected I'm guess we can't tell.
 
A related question, what happens when you execute a "STORE DIRECT+100" command code (12 04)? Do you get an error immediately, or does it just perform a normal STORE DIRECT? The same for the I/O command codes (e.g. 08 00) - does it error immediately or do something else (maybe try to call a subroutine)?
 
@BlaBla1985 Another stray question, on how the 700B differs from 720C. The 720x models have 1984 steps and so require 4-digit step numbers (LEARN display, SET P.C. function, etc). The 700x models have only 960 steps, so I wonder if the LEARN display and SET P.C. are different - only using 3 digits? I'm also curious about the LIST function, but unless you've got a "fake printer" (PC) connected I'm guess we can't tell.
I would have to look into that over the weekend, I was hoping to have another go at the tapes and see if an inverted signal would work on the real machine. Might aswell do a few test while it's on.
I don't think I can do anything with the LIST function... I don't have anything to connect to the output. I have been looking out for a 701 output writer for a while now, but not a lot of luck finding one.
What would one need to connect it to a PC? I doubt it's any regular form of serial or parallel port.

A related question, what happens when you execute a "STORE DIRECT+100" command code (12 04)? Do you get an error immediately, or does it just perform a normal STORE DIRECT? The same for the I/O command codes (e.g. 08 00) - does it error immediately or do something else (maybe try to call a subroutine)?
The STORE DIRECT also needs a memory location to do anything with that +100 right? Or is that the reason that the machine should error out? I've been looking at some programs from the Program Library to wrap my head around the programming.

I can see what happens when the machine is on again.

Question for you @durgadas311, in the emulator you made, does the emulated tape drive also take audio files or only the filetype that comes with the emulator. I was wondering if the emulator can be used with the digitised audio files from the tapes. Because if the data is still good on those, it might be easy to get a program listing out of the emulator.

Otherwise, it might be even more interesting to get a fake printer of some kind connected to my 700B. I could then "print" the listings.
 
The "Typewriter" output is fairly simple, but the calculator sends out IBM-select "tilt/rotate" codes, so that would have to be converted. While the pinout is not standard, the signals might be the same as for a simple parallel printer. There's basically a STROBE signal sent out, and a "busy" or "ack" signal that's checked to see when another character can be sent. I've imagined that it could be connected to a PC parallel port (that has to be programmed for bi-directional, of course) and then run a program that receives the data, translated to ASCII, and "prints" (saves to file, displays on screen, writes to postscript, etc). But since I don't have a real Wang, I haven't ever tried it.

My simulators store bytes in the "tape" files. The JAVA code converts the bit-bang changes from the microcode back into bytes, so there's nothing analog in the files. If the real tapes could be converted to a bit stream, it is possible to convert that to bytes again, using code similar to my JAVA tape handler. I had theorized that getting a digital copy of a real tape, like you have done, would be a path to archiving the programs. But I've not had any "digitized" tape images to work with. Perhaps we can collaborate on that experiment. The next step after that would be a way to take a file on your PC and produce a tape that the Wang could read... but that's a lot more work (probably can't do that with an audio cassette drive).

My thought about STORE DIRECT+100 and I/O were that the 700B would produce an error immediately when entering the program code, like setting the toggle switches for "12" or "08" and then pressing the appropriate 00-15 key. I'm just not sure exactly how that was handled, though. On the 600, "illegal" codes were simply executed in some fashion based on how the microcode decoding worked - usually just producing the same action as some other documented code. There aren't very many unused codes on the 600, though.

If you could snap a photo of the LEARN mode display, too, that would be nice (so I can try to reproduce the same alignment).

Thanks.
 
The "Typewriter" output is fairly simple, but the calculator sends out IBM-select "tilt/rotate" codes, so that would have to be converted. While the pinout is not standard, the signals might be the same as for a simple parallel printer. There's basically a STROBE signal sent out, and a "busy" or "ack" signal that's checked to see when another character can be sent. I've imagined that it could be connected to a PC parallel port (that has to be programmed for bi-directional, of course) and then run a program that receives the data, translated to ASCII, and "prints" (saves to file, displays on screen, writes to postscript, etc). But since I don't have a real Wang, I haven't ever tried it.
That sounds more like something an Arduino or Rasberry pie should handle. Sadly, I'm no programmer... I can write a few lines in Qbasic, maybe a simple little ASCII game. But that's about it.

My simulators store bytes in the "tape" files. The JAVA code converts the bit-bang changes from the microcode back into bytes, so there's nothing analog in the files. If the real tapes could be converted to a bit stream, it is possible to convert that to bytes again, using code similar to my JAVA tape handler. I had theorized that getting a digital copy of a real tape, like you have done, would be a path to archiving the programs. But I've not had any "digitized" tape images to work with. Perhaps we can collaborate on that experiment. The next step after that would be a way to take a file on your PC and produce a tape that the Wang could read... but that's a lot more work (probably can't do that with an audio cassette drive).
It would be fun in my opinion to experiment with that together. I know I can get a working datastream into and out of the tapedrive. If I can also get the digitised audio file back into the machine, then that file could be used to convert to the byte stream for the simulator. Although it might then be a good idea to start with something simple, like a bunch of "0".

My thought about STORE DIRECT+100 and I/O were that the 700B would produce an error immediately when entering the program code, like setting the toggle switches for "12" or "08" and then pressing the appropriate 00-15 key. I'm just not sure exactly how that was handled, though. On the 600, "illegal" codes were simply executed in some fashion based on how the microcode decoding worked - usually just producing the same action as some other documented code. There aren't very many unused codes on the 600, though.
Ah, I think I understand now what you mean with the instruction (again... still learning about how it all works exactly). I'll give it a test.
 
Thanks!

I may have answered my own questions on the DIRECT+100 and I/O, but it would be good to confirm. On my simulator (720C), the unused codes in the range 08-00 thru 15-00 (except DIRECT+100 and I/O) all perform the corresponding commands from 00-00 thru 07-15. If this is the case on the 700B, I expect the I/O codes to try and perform subroutine calls 00-00 thru 00-15 (which will error after not finding the corresponding MARK). That would also mean the DIRECT+100 codes all perform the corresponding commands from 04-00 thru 04-15 (DIRECT w/o +100) - which is more subtle as they simply act on the straight register number, not the +100 register.

It would still be very helpful to see a photo of the LEARN mode display (showing the nixie tubes for placement, if you can get the lighting so) and to see how SET P.C. looks after entering one or two digits, and confirm that it only takes three digits. My guess is that the 700 LEARN mode display is shift left one position from the 720 (and has only 3 digits for the step), but would like to see it to confirm.
 
learnscreen.jpg

This is what the learn screen looks like. The first tube is not on (this has the + and - signs in it) then 3 digits on for the PC. 4 off. 2 on 1 off 2 on for the instruction and then 3 off I think. And ofcourse, the Y register is off completly.

setPCscreen.jpg

Set PC screen (with 2 digits of the 3 typed in). It starts of with just the + sign on the left lit. Once the 3rd digit is pressed the machine jumps to than PC right away.

SD+100.jpg

I hope I understood this correctly. I used both the toggle/top row method and the normal key presses.
Starting by pressing (or toggle/toprow) STORE DIRECT and then pressing "+" "1" "0" "0" and "GO"
The X register shows a flashing "+" and 100.0000000000 and the Prog. Error light comes on.
I hope that answers the question...



On digitising the tapes... it's going to be a bit difficult I think. After a few hours of playing around with various settings in Audacity and also trying different ways to get the audio from the tapes into Audacity (including using the digitiser on batteries and playing the audio into the microphone port of the laptop) I've come to the conclusion that the digitiser is a cheap piece of crap.... but, it does work.

One of the last things I tried was to change the playback speed of the recording. And if I set the playback to just the right channel, at the correct volume, inverted AND at 1.24 times playback speed.... I can load my 200 zero's back into memory using the recording from my testtape and the tape adaptor in the drive of the 700B.
So... either the tapedeck in the 700B has a different speed then regular audio cassettes, or the speed of the digitiser is way off. (And given the reviews of this digitiser and other simular ones it can really be either... the playback speeds, wow and flutter of these cheap things can be all over the place).
I do get the feeling that the portion of the 700B that "listens" for the flux changes on my device is not working 100%... probably more like 95% or something. Because every now and then it just doesn't want to load anything. Or just load garbage data. Especially if I'm doing tests in quick succesion. And after a while, it will work again, almost as if some semiconducter warms up and goes out of spec or something.

Still, it DID eventually work.
 
Thanks for the LEARN mode and SET P.C. photos, that helps. It looks like they simply did the PC with 3 digits aligned left, and put an extra blank before the program code. That tells me how to change the microcode for 700 models.

For the STORE DIRECT+100 test, you would set the toggle switches to 12 (8 and 4 on, rest off) then press the adjacent 04 key. Then follow that by a code to set the register number (not the numeric keys). But, I think I've determined that STORE DIRECT+100 would simply be executed as a STORE DIRECT.
 
For the tape archiving, the speed may not matter as long as some sort of "signal analysis" program can determine the flux transitions. But it is interesting that the tape speed might be off. That could indicate that some of those components have not aged well. It could be that the tape speed is now different than what was used to record the original tapes. As far as I know, the tape speed should be the same as for audio cassettes - but then again, it might not. So calibrating your tape speed to match original recordings might be difficult. From the microcode, the Wang expects a very specific tape speed (with some amount of wiggle-room for variations between machines). But if components have drifted too far, then it could no longer be able to read original tapes. I thought the tape motor was A.C., in which case the tape speed should be locked to the line frequency - but I'm not sure how they handled the difference between 50HZ and 60Hz. Maybe this machine was built for a different line frequency?

I believe that the motor speed is regulated by the capstan, which might be used to regulate the actual tape speed. Need to check how the capstan motor is fed. Still, 50Hz vs. 60Hz is a pretty big difference, and capstan alone may not be able to regulate it.
 
I don't see any capstan motor in the schematics, and the tape motor is listed as "110V AC". The circuitry is a bit strange, and I'm not sure how the difference between 50Hz and 60Hz is handled. No mention of different components for each case. The main transformer is able to supply 110 VAC for both 110 and 220 inputs, so at least that doesn't need to change.
 
The odd thing is, if I use the actual tape in the drive to load those 200 zero's into memory, it works.

And if I use the tape adaptor to record that into the microphone input of the laptop and then play it back through the same tape adaptor using a headphone output, it also works. But I need to boost the signal by +19dB to be picked up. But no speed adjustment.

Digitising that same signal from the real tape via the tape digitiser means I have to invert the signal and speed it up 24% (although I guess 25% should work too).

Also, if I don't invert the signal and boost the speed by about 2,5 times (this was more an act of frustration then rational thought) it reads 100 program steps with "15 15" in it instead of 200 steps of "07 00". That is how I settled on the inverted signal at 1.24 times speed. The more I dailed it towards that speed, the more of the 200 zero's would load before an error occured.
I don't have any audio tapes with music on it to test the speed of the tape digitiser, but I don't think there is a reason for the tape drive to have the same speed as a regular audio cassette player... to be honest, if Wang wanted to keep it's own eco system around the machine it would make sense that the tape speed IS different.

It took most of the afternoon to get that 200 zero's test pattern working, but I have the other test programs from my test tape digitised aswell. Just need to process them for the speed difference. Getting the same signal pattern in 200 times is one thing, I need to see if actual programs will load too. That's the next test.

Mine is build for a 220V 50Hz, so if the tape motor is 110V from the main transformer it will likely run at 50Hz. But there is a flywheel with 2 belts in the drive which could be different ratios between 50Hz and 60Hz models.

The component drift I mentioned was more that if I do a lot of reads, especially with different volume settings, it seems that something inside gets marginal at processing the signal. If I let everything sit for a bit, it will work as normal again.

On the store direct thing. STORE DIRECT according to my manual is "04 04". There is ofcourse also +DIRECT which is "04 00". The system with the toggle switches and top row buttons is really confusing to me... it probably makes perfect sense, but not to me yet. (I was born a few decades to late to work with toggle switches and memory adresses on computers and such).
 
Just a quick tutorial on the toggle switches. Together with the keys "00" thru "15" they allow you to enter any of the 256 possible codes. The toggle switches form the upper half, and "00" thru "15" form the lower half. Some of the codes are available on the main keyboard, but many are not. STORE DIRECT is code 04-04, and STORE DIRECT+100 is code 12-04 - which requires the toggle switches set to on-on-off-off (12) and pressing the "04" key. If you set the toggle switches to off-on-off-off (04) and press the "04" key you send the same code to the calculator as pressing "STORE DIRECT". The DIRECT+100 codes are not available on the main keyboard, so you have to use the toggle switches and the "00" thru "15" keys. Those codes are only recognized on 720 models (expanded memory).
 
Just a quick tutorial on the toggle switches. Together with the keys "00" thru "15" they allow you to enter any of the 256 possible codes. The toggle switches form the upper half, and "00" thru "15" form the lower half. Some of the codes are available on the main keyboard, but many are not. STORE DIRECT is code 04-04, and STORE DIRECT+100 is code 12-04 - which requires the toggle switches set to on-on-off-off (12) and pressing the "04" key. If you set the toggle switches to off-on-off-off (04) and press the "04" key you send the same code to the calculator as pressing "STORE DIRECT". The DIRECT+100 codes are not available on the main keyboard, so you have to use the toggle switches and the "00" thru "15" keys. Those codes are only recognized on 720 models (expanded memory).
Oh, now I see what you mean... I tried it and the machine does nothing out of the ordinairy after setting the toggles to 12 and pressing 04. It simply sets 12 04 into that spot on the program counter. It doesn't seem to give any error, maybe it only errors out once this step is used in a running program?

The 25% speed increase seems to work with multiple programs from the digitised test tape (alongside the signal inversion and volume settings).

Also... I just managed to load one of the old programs. These don't need speed adjustment, just a little volume tweak and played through the right channel only. The VC code matches the code that is on the tape.
I did have to swap the stereo channels though as the original right channel audio has some weak spots in it, but the left channel looks solid and if played back through the right channel works.

Maybe the clutch in the tapedrive is worn out/dried out and no longer works correctly? I don't know. Pretty happy that I can at long last load one of those old tapes.
 
It also seems that minor damage can be fairly easily repaired by cutting and pasting in Audacity.

Fixed.jpg

The left image has some minor damage to the bottom track, the right image has that fixed by cutting and pasting some valid pulses in their place (ignore the look of the top track, it's not used for playback at the moment).

And where the loading stopped on that damaged section, it loads this program after the fix.
 
Oh, now I see what you mean... I tried it and the machine does nothing out of the ordinairy after setting the toggles to 12 and pressing 04. It simply sets 12 04 into that spot on the program counter. It doesn't seem to give any error, maybe it only errors out once this step is used in a running program?

...
OK, well basically the Wang has two modes of operation, RUN and LEARN. In RUN mode, the Wang executes whatever codes you enter while in LEARN mode it simply stores whatever codes into memory (for later running). I'm using RUN mode to test the codes, else using LEARN mode you have to later run the program to know how it operates. But based on experiments with my simulator (720C microcode) I conclude that trying to execute STORE DIRECT+100 (12-04) on a 700 model will simply "fall through" and execute STORE DIRECT (04-04) - which is the same code with the high bit zeroed. This seems to be the case for all codes 08-00 thru 15-15, for example if I set all toggles ON (15) and press any of the 00 thru 09 keys (codes 15-00 thru 15-09) the calculator simply enters digits into the display, the same as it does for 07-00 thru 07-09 (the normal digit entry codes, produced by the digit keys 0-9). That leads me to believe that the decoding of codes 08-00 thru 15-15 on a model 700A/B would be "lazy" and simply clear the high bit (convert to 00-00 thru 07-15) and execute "normally".
 
...

The 25% speed increase seems to work with multiple programs from the digitised test tape (alongside the signal inversion and volume settings).

Also... I just managed to load one of the old programs. These don't need speed adjustment, just a little volume tweak and played through the right channel only. The VC code matches the code that is on the tape.
I did have to swap the stereo channels though as the original right channel audio has some weak spots in it, but the left channel looks solid and if played back through the right channel works.

Maybe the clutch in the tapedrive is worn out/dried out and no longer works correctly? I don't know. Pretty happy that I can at long last load one of those old tapes.
I can imagine how playing back a mono recording through a stereo tape head might have issues. It's less noticeable with audio tapes, but I'm sure an "audiophile" could tell. I suspect that if you could have gotten a mono head you'd have less problems. I didn't see how you hooked up the stereo head - did you recombine L+R channels into one? Unfortunately, recombining those usually requires some (small) resistors to avoid interference between the two channels, so you'd have to compensate for the attenuation later in the circuit.

I wish I've had more experience with Digital Signal Processing, so that I could easily process those digital recordings of tapes into data. I know there are very-capable DSP chips these days, too, but I have no experience programming them. There is probably some combination of DSP and FPGA/CPLD that could directly convert the tape signal to data, but I don't know exactly how to do that (yet, at least).
 
I can imagine how playing back a mono recording through a stereo tape head might have issues. It's less noticeable with audio tapes, but I'm sure an "audiophile" could tell. I suspect that if you could have gotten a mono head you'd have less problems. I didn't see how you hooked up the stereo head - did you recombine L+R channels into one? Unfortunately, recombining those usually requires some (small) resistors to avoid interference between the two channels, so you'd have to compensate for the attenuation later in the circuit.
The new head in the tapedrive of the 700B is still a mono head. I made sure to get a mono head because that would be the easiest to connect. Strangly enough, mono heads are very easy to get (maybe even easier then stereo) and very cheap. Most of those cheap new radio's that still have a tape player/recorder are mono.
The stereo signal in Audacity has nothing to do with my 700B. Both the tape adaptor I use and the tape digitiser have stereo heads and thus Audacity shows a stereo signal. As long as the either the right channel has the most volume or just the right channel is played it works. This is why I switched the left and right channel after recording because the initial right channel had more damage to the signal then the left.

I don't really know what data format you'd need to make it usable in your simulator? I wouldn't even know what type of file you'd like to get if you want to give it a go to convert it.
 
Back
Top