CDC Printing

We now have the printer emulation capable of printing direct to our Dataproducts BP1500! We won’t have that turned on normally, but with a command to our emulator PC, we can have a job print to the printer, or otherwise, it will print to a file.

I keep the print files around for about a week, so if you want something you printed, I can email it to you, just let me know your user number (name) and about when you printed it, and Your printout can be on it’s way to you.

If you REALLY want hardcopy, we can do that now too!

Bruce Sherry

CDC 6500 Memory: First Production in!

The first 5 final candidate Memory module boards came in from FAB and Assembly yesterday morning, and they look pretty good! I reclaimed and installed more pulse transformers, bolted it onto the Lexan chassis I finished over the weekend, and plugged it in.

Hmm, I must have done something seriously wrong, because it seems to work! The top one, playing the part of PP0, is the new one, and the lower one, playing the part of PP1, is the prototype. The prototype has to be on extenders, because the connector spacing isn’t quite right. I seem to have gotten that corrected in the new version. You may be able to notice that the old one has the old logo in the lower left, whereas the new one has the new logo.

So, what did I do differently you may ask? Besides fixing the connector spacing, I added a whole bunch of test points, had them install the correct 0805 LED’s, as opposed to the 1206’s I put on the prototype, and reduced the LED current by a factor of 3 so I don’t get sunburned quite so easily.

I suspect there will be more assembly in my future.

Bruce Sherry

Apple 1 INTEGER BASIC #2

Okay, if the Apple 1 computer does not have screen addressing, how am I doing SPIROGRAPH?

7000 REM SET PIXEL (X, Y) 0-39, 0-47
7010 Z = 1 : Q = V(10*(Y/2)+X/4+1) * 2
7020 FOR S = 1 TO 4 – X MOD 4
7030 Z = Z * 4: Q = Q / 4
7040 NEXT S
7050 Q = Q MOD 4: Z = Z / 4
7060 IF Y MOD 2 = 0 THEN 7080
7070 IF Q MOD 4 = 0 THEN V(10*(Y/2)+X/4+1) = V(10*(Y/2)+X/4+1) + Z: RETURN
7080 IF Q MOD 4 = 0 THEN V(10*(Y/2)+X/4+1) = V(10*(Y/2)+X/4+1) + Z * 2: RETURN

8000 REM PRINT SCREEN 40 * 48; TBTBTBTB
8010 FOR Y = 0 TO 23
8020 FOR X = 0 TO 39
8030 IF Y = 23 AND X = 39 THEN RETURN
8040 Z = V(Y * 10 + X / 4 + 1) * 4
8050 FOR S = 1 TO 4 – X MOD 4
8060 Z = Z / 4
8070 NEXT S
8080 Z = Z MOD 4
8090 IF Z = 3 THEN PRINT “:”;
8100 IF Z = 2 THEN PRINT “‘”;
8110 IF Z = 1 THEN PRINT “,”;
8120 IF Z = 0 THEN PRINT ” “;
8130 NEXT X
8140 NEXT Y

As the screen is 40 x 24 characters, it would be nice to make that 40 x 48 — using ‘ , and : to double vertical resolution.

First I made an array of 240 integers.  It would have been nice to make an array of 40 x 48 integers, but there isn’t enough memory, and two dimensional arrays are not supported.  So I had to fit two vertical dots and 4 horizontal dots into one integer.  Then, using shift-by-divide and the MOD function, I could calculate what I wanted on the screen, and finally print it all out at once.  However, I didn’t print out the last character, as that would have scrolled the screen.

Spirograph is round, so the 48 lines vertically are not needed.  And, this is important, because the program actually loads, but does not run — getting an out-of-memory error.  Deleting some of the many REMarks frees up enough space to run.

Apple 1 INTEGER BASIC

If the Apple 1 computer came with INTEGER BASIC, then how am I doing BIORHYTHM?

9000 REM SIN/COS (DEGREES) INPUT A, OUTPUTS S, C
9010 S = ((A MOD 360)+360) MOD 360: REM GET ANGLE 0-359
9020 IF S < 180 THEN 9060
9030 IF S < 270 THEN 9050
9040 C = C5(S-270+1): S =-C5(360-S+1): RETURN: REM 270-359
9050 C =-C5(270-S+1): S =-C5(S-180+1): RETURN: REM 180-269
9060 IF S < 90 THEN 9080
9070 C =-C5(S-90+1): S = C5(180-S+1): RETURN: REM  90-179
9080 C = C5(90-S+1): S = C5(S+1): RETURN: REM   0-089
9800 REM SET UP TABLE
9810 DIM C5(91)
9820 S=0: C=8192
9830 FOR A = 0 TO 45
9840 C5(A+1) = S: C5(90-A+1) = C
9850 S=S+((C/3)*10)/191
9860 C=C-((S/3)*10)/191
9870 NEXT A
9880 RETURN

First I set up an array to hold SIN for 0 to 90 degrees.  (You don’t need more if you know COS is SIN of the angle plus 90, and other quadrants are symmetrical).

But, creating an array of 91 values would pretty much take up all of available programming space, so I generated it using the differential equations — relating SIN and COS.  I also made the values go from 0 to 8192, as going from 0 to 1 is not useful.

 

Apple 1 BASIC

INTEGER BASIC for the Apple 1 computer is not well documented.

Here are some things I found:

A FOR loop will always execute at least once.  This is unlike most BASIC machines, which will not execute the innards of FOR I = 1 TO 0.

Although the exponentiation symbol is recognized (^), don’t use it — that is a lock-up condition.

IF statements will execute a command.  However, multiple commands on the same line are not contained within the IF result.  That is, IF X > Y THEN A = 0: GOTO 1230 will always go to 1230.

CDC 6500 Memory Again

I installed all the fixes into the PCB design, and decided that, just maybe, I should check to see if it worked as Central Memory.

Arrgggghhh! It doesn’t.

I noticed yesterday that address bit 10 & 11 LED’s were backwards, and I just found that I had swapped them at the module pins. It is fixed on the next revision.

OK, now I am really confused: when I have the new memory in 5A01, bit 2 in bank 10 doesn’t work well. Swapping sense amps does nothing. Moved it from 5A01 to 5D01 and it works fine. I have seen it fail there, but not in the last half hour. I may need to decrease the output limiting resistors to help the sense ampllifiers.

A weekend has passed, and the new module still seems to work in 5D01. I may finish the layout, and build another round of boards. I am pretty sure I can fix the sense problems with resistor value changes.

Here is a closer view of the module as it currently exists:

Bruce Sherry 4/3/2017 8:22:32 AM

 

Old Scopes

As I finish up some high priority tasks I think about the old oscilloscope I am fixing.  I hope to spend some time working on it today.  It is one of many interesting and fun jobs I get to do at the museum.

Since the beginning of the year I have been quite involved with old oscilloscopes at the museum and I confess it has been a guilty pleasure of mine.  A guilty pleasure because I have wanted to restore an old oscilloscope for a very long time.  Far longer than I have been working at the museum and this old desire makes me forget I have legitimate reasons for restoring old scopes here and so brief twinges of guilt come to me and I have to remind myself that what I am doing is OK.

The oscilloscope tube has been removed so I can get access to parts inside the scope  I need to change out.

Old scopes don’t seem to have much to do with vintage computers at first but if  you think about them a bit you see that spending time on old oscilloscopes in a computer museum is appropriate.  Oscilloscopes are the original visual output device for electronic computers  and computers as we know them could never have been built without oscilloscopes.  Oscilloscopes have been an essential tool for seeing what happens inside electronic circuits since the electronic age began.  Without being able to see inside of and understand how electronic circuits work, computers as we know them would never have been built and compared to where we are now the highly technically advanced world we live in would resemble a stone age had they never been invented at all.

The cathode ray tube used in oscilloscopes was invented in 1897 by Karl Ferdinand Braun.  The A. C. Cosser company first started selling oscilloscopes in 1932.  The scope I am working on now and which I show was made in the 1950’s.

Not everyone is interested in old oscilloscopes and I have never seen an ‘I  Love My Old Scope‘   bumper sticker on a car anywhere but I am not alone in my passion.  Several videos have been posted on You Tube showing people repairing old oscilloscopes.  Some of us apparently like old oscilloscopes the way most dogs like a thrown ball and I suspect seeing a few working oscilloscopes can make a visit to our museum more memorable.  My guilt is shared by the old scope video makers.  Their guilt usually makes them come up with a plausible explanation of why they are doing what they are doing.  Just doing it does not seem to be OK but it should.

I have watched a couple of the You Tube videos recently which confirmed some facts I also discovered in my own journey into the world of oscilloscope repair.  I would have benefited by watching some of these videos in the beginning of my journey and will relate what I have learned from them and in my own activity in the future.

One video in particular had a rather humorous moment.  When any piece of electronic equipment is first powered up and nothing bad happens the equipment is said to have passed the ‘smoke test’ because nothing burned up and none of the vital smoke inside of the electronic parts so necessary for correct equipment operation is let out.  The narrator of the video had a thick east coast accent further colored by the crackling voice acquired from years of cigarette smoking.  The narrator powered up his oscilloscope and announced his scope ‘has passed the smoke test‘.  As soon as the narrator said this he then had an intense coughing fit too authentic to possibly have been staged.  When he was done coughing the narrator then said ‘which is more than you can say about me‘.

The smoke test is performed after certain parts inside the oscilloscope have been changed out and replaced with new parts.  I have discovered the condition of a scope restoration candidate varies depending on how the oscilloscope has been stored (temperature and humidity) and on the quality of components used.  Scopes varied in quality and capability and this also affects how well they survive the years.

The external appearance of an old scope my be very good but if the scope has aged in an unfriendly environment many components inside will have to be replaced before a smoke test should be done.  An un-restored scope may power up and appear to work fine but I have learned such scopes will fail components very quickly and then stop working.  I have learned that the statement ‘scope powers up’ in eBay ads does not tell the whole story because even if the scope works some components are old and ready to fail making the scope unreliable.

The particular scope I show in this post will be used to display a reproduction of what is considered to be the first video game ever, ‘Tennis for Two’ and has been selected because I believe this is the same model of oscilloscope used to display the original ‘Tennis for Two’ game way back in 1958 or a model very close to it.  I will be describing what I have been doing to restore this scope and the general steps of what needs to be done to restore old oscilloscopes to working condition in a future post.

 

 

 

Moron CDC6500 Memory

Where are we, and how did we get here? When we last left our hero, the last part for the new memory module was about to come in.

I couldn’t just sit there and admire my handiwork, I HAD to plug it in! The bad news was it didn’t work, the good news was that nothing blew up! OK, what works and what doesn’t? The addresses all seem to work, the read and write pulses seem to work, along with the chip enable.

Output data seemed to have a problem: I had decided to use ‘541 inverting buffers, with 10K ohm pull downs so I could generate small positive pulses, kind of like what the sense amp was looking at. One problem was that when the output was turned off, the level was floating at about 2V! This is not right, according to the spec, the leakage was supposed to be 5 micro-amps, which with a 10K pull down might end up with 0.05V. I swapped out the 10K’s for 470 Ohm resistors, and things looked a bit better.

I had decided, based on playing with some PS sense amplifier modules that maybe I could get away with capacitively coupling to one side of the differential pair that ends up being both ends of the sense wire through the core mat. As I looked at what the sense amps were seeing in the machine, the amps were not liking what I was doing: the levels were going all over the place.

OK, what do I do now? Do I generate the other polarity of signal? Do I shoot myself? The sense amp wants to see something like a wire between the two pins of the inputs. Hmm, we have a small boat load of core modules that we reclaimed from a gold reclaimer. Each one of the back modules has 64 nice Genuine CDC pulse transformers, would they be usable? The secondary is pretty much a wire into which a signal can be induced with the primary.

I extricated about 15 transformers from a board, and kluged them onto my memory. Does that work” No! Well, let’s see: Some of the data bits look like they have reasonable pulses, but some don’t. I found a transformer wire that hadn’t gotten soldered on properly. Eventually I found a couple of transformers wired in one pin off. Now I had pulses on all the pins, but come were positive, and some were negative.

I compared the real core module, and the pulse on the read portion of the cycles was always positive. In my investigation of the PS modules, I had convinced myself that the polarity didn’t matter. Maybe it does? I rewired all the transformers to be the same polarity, which I thought I had done, but reality came up and slapped me in the face saying: No, no!

Now all the bits are positive, except ONE! I must have missed that one somehow. Back upstairs to fix that one. They all have the right kind of pulses, but I get pulses for zeros, and the real one does pulses for ones! Yesterday I convinced myself that I had the data upside down, and changed the data drivers from ‘541’s to ‘540’s, so I guess I was wrong. I Hate it when that happens! After swapping back the ‘541’s, the pulses were all there, and in the right places!

Now SMM came up, and here is a picture of module with PMM, the PP memory test, running:

That’s Cool! What about the OS? Here we have the bench, with the laptop which has the console, and you can still see the module in Chassis 1:

Bruce Sherry 3/30/2017 2:56:10 PM

CDC 6500 Memory

We have been running the CDC 6500 for about a year, with only half of its memory. There are 170 Core Memory Modules in the machine, and so far I have declared about 20 of them as being bad. Some it might be possible to tune into working, but some are just dead.

The plan has been to design a replacement module when the time came to get the rest of the memory working, and it seems that time is now. A couple of weeks ago, I spent some Quality Time examining the Peripheral Processsor memory in Chassis 1:

Each cycle lasts about 1 micro-second and includes both a read portion, and a write portion, because reading core is a destructive process, and the data needs to be re-written. The read and write controls are each about 400 nano-seconds, the sense amplifiers look at the read data for about 100nS, and write data is available for the whole period of the write signal, so this is pretty easy with modern components.

I chose to use two 8k by 8bit static rams, and only use half of the space. Timing was produced with some gates, and a delay line.

It took a few days to come up with enough of a schematic to start layout. Here is a picture of the first page of the schematic on the left screen, and the layout with some parts still to be moved onto the board, on the right screen:

The yellow lines indicate connections that haven’t been made yet. It took a few days, but then:

Red lines represent things and wires on the top of the board, whereas blue lines are on the bottom of the board. I didn’t display the two inner planes which hold power and ground. All the yellow lines are gone because I have created the traces to connect all the components.

I sent the board out to be built, ordered all the parts, and went on vacation while everything made it to the Museum. When I got back, I had work to do:

I have the parts, and the board ready to assemble, along with a free program on the laptop, called VisualPlace, which sorts all the parts, and shows me where they go. The red dots on the image of the board are pointing to where I should put the SRAM chips. Several hours later:

I discovered a couple of problems, the first of which is circled in red, and that is I forgot to order one part. The second is that somehow, the connector on the  right ended up 0.050″ too narrow:

This is why we build Prototypes! The good thing is that I can still plug it in and learn more about how it is supposed to work, and the other mistakes I made. Here is a picture of the prototype mounted on extenders in chassis 12:

You can see 12 LED’s, in the upper right corner, lit as the addresses go to every module all the time. This being chassis 12, the other two LED’s aren’t lit because we aren’t using the upper half of memory yet. The missing part should arrive in an hour or so, but for now here is a picture of how the new module might look next to an original module:

Bruce Sherry 3/28/2017 9:03:17 AM