PDA

View Full Version : Okuma's (mini)computer from 70's NC lathe



Jonne
April 28th, 2014, 11:24 AM
Hello! This is my first post here, I hope you enjoy this topic of rare computer which I got couple years ago.

I'm pretty sure almost nobody have seen this type computer ever, because this is from NC lathe from 70's and it is only used couple models between 1972...1980, very few have survived. Somebody could say "how cares about some automation computer, there's millions of them", but this is very advanced device of it's time and it is real TTL-based (74181) minicomputer woth ferrite core memory, not some another Intel 8088 based system (there is millions of them, I know...).

Computer is called OSC-2 (or whole control system OSP-2200) and used (at least) Okuma LS-N 10 lathe. Computer have made by Okuma Machine Tool (or I believe, there is possibililty they have bought technology some other manufacturer and put their label on it), same company who made whole lathe. This manufacturer is still alive and one of most recognized machine manufacturer these days.

What here's the point, I have planned to reverse engineer whole computer, because there is no information at all how this really works (it is from NC machine, manufacturers keep secrets their own, even after 40 years... :evil: ), only couple pages in maintenance manual how to put bootstrap loader to core memory (operating system had to upload to core from paper tape, so there is possiability to update firmware ;) ) and some diagnostic functions.

This one which I have is little bit damaged. I try to find another one to fix this up, but all main components are still there.


http://i215.photobucket.com/albums/cc21/jonne_photo/20140427_202229.jpg

http://i215.photobucket.com/albums/cc21/jonne_photo/20140427_202242.jpg

And here's video of same type machine, if you don't any clue what is NC lathe (notice nice Nixie tubes!)


https://www.youtube.com/watch?v=DgAUjRM-HXs


As we see, switches in front panel are like any other minicomputer. There is 16-bit DATA/INSTRUCTION switches (computer still seems to be 8-bit or at least handling data in 8-but chunks), 4-bit REGISTER swithes (maybe there is accu at all?) and mystery 10 bit FILE switches, which could be like "sense" swithes on other same era's computers (just IO port which you can read in program), but I'm not that sure, later more about this mystery... Also there is RUN, STEP and etc. switches, which pretty basic for this type computer.

Ok, let's check the boards, only interesting boards are core memory, FILE, INR, PROGRAM CONTROL and DATA boards. All other are related IO.

DATA board
http://i215.photobucket.com/albums/cc21/jonne_photo/20140427_202454.jpg
Original: http://i215.photobucket.com/albums/cc21/jonne_photo/20140427_202454.jpg~original

DATA board seems to be really ALU, maybe this is some kind of Japanese logic, who knows... At least there is 2x 74181 alus. 16x 74150 multiplexers and 6x 78198 shift registers. Note that 74181 is not L or LS model, just regular.


INR board
http://i215.photobucket.com/albums/cc21/jonne_photo/20140427_202430.jpg
Original: http://i215.photobucket.com/albums/cc21/jonne_photo/20140427_202430.jpg~original

Here we can find 5MHz quartz and weird hybride chip which says "DELAY LINE" (top right). What for, it is hard to say this point. I think this board is some kind of sequencer. Anyways, 5MHz is quite fast for this old automation equipment, but it is really needed, because this lathe could do realtime circular interpolation which requires some calculation power (however, it is done square root based algorithm, but that's whole different story).


PROGRAM CONTROL
http://i215.photobucket.com/albums/cc21/jonne_photo/20140427_202352.jpg
Original: http://i215.photobucket.com/albums/cc21/jonne_photo/20140427_202352.jpg~original

There's nothing much where to start. Couple 74S83 4-bt full adders, and DM93 tri-state drivers. Also there is dip-switches for core size (8kb or 16kb).


FILE BOARD
http://i215.photobucket.com/albums/cc21/jonne_photo/20140427_202537.jpg
Original: http://i215.photobucket.com/albums/cc21/jonne_photo/20140427_202537.jpg~original

This is interesting... There is 3x 74181 ALUs (again?) and 8x Hitachi HM2510-1 1024bit memory chips. How this is related FILE switches (10-bit switches, 1024 addresses...)?


Core memory
http://i215.photobucket.com/albums/cc21/jonne_photo/20140427_202315.jpg

http://i215.photobucket.com/albums/cc21/jonne_photo/IMG_0035-1.jpg

http://i215.photobucket.com/albums/cc21/jonne_photo/IMG_0032-1.jpg

http://i215.photobucket.com/albums/cc21/jonne_photo/Corememory.jpg

Core memory has really tiny rings, maybe last ferrite cores what ever made. It is really amazing why anyone would use core memory still at 1979, there was battery backed up SRAM (and bubble memory) available..?



Continues....

KC9UDX
April 28th, 2014, 11:38 AM
Very high quality stuff.

tingo
April 28th, 2014, 12:39 PM
Interesting. Does this computer have any way to input data other than the front panel? Paper tape reader perhaps?

KC9UDX
April 28th, 2014, 01:15 PM
On that type of machine, typically called a "Tape Lathe", it would almost certainly use paper tape as the primary input.

Jonne
April 28th, 2014, 11:51 PM
Very high quality stuff.

Thank you! Pictures are not that quality, I'm sorry about that. I have to take some better pics...



Interesting. Does this computer have any way to input data other than the front panel? Paper tape reader perhaps?


On that type of machine, typically called a "Tape Lathe", it would almost certainly use paper tape as the primary input.


Firstly I have to say (so nobody get confused) NC programs are not machine code, it is interpreted language of motion, canned cycles and IO funtions. This just is for machine movements. Here's sample:

N100 M3 S500; turn spindle on 500rpm
N110 G50 ; work coordinate system G50
N120 G94 ; feedmode is mm/r
N130 T0101 ; turn turret to tool no.1 pos, use tool offset no.1
N140 G00 X100. Z100. ; rapid movent to point X100. Z100.
N150 G01 Z-100. F0.21 ; move with feed to Z-100. 0.21mm per spindle round
N160 G02 X110. Z-105. R5. ; arc to clockwise direction, same feed, radius is 5mm*
N170 G00 Z100. ; rapid movent back to home
N180 G00 X100.
N190 M30 ; end of program, rewind tape (or jump first line)

*(I'm not sure was Okuma capable to use "R", older way is use circle middle point with "J" and "K", this probably is related how interpolation algorithm is done...)


Yes, there is paper tape reader and also port for puncher. I'm not sure how standard that port really is, I have ASR-33 (with Nokia's logos, but no Microsoft involved ;) ) maybe I can get these two married together...

http://i215.photobucket.com/albums/cc21/jonne_photo/20140427_203555.jpg

Also this Okuma is capable to store NC programs it's memory and run from there. I suppose those are stored to the core belong OS. Also those programs can be edited via operator's panel (that box with Nixies and all switches), so it is more close CNC (Computer Numeric Control) than NC (Numeric Control = just read the tape) especially because it has very advanced function, LAP which means automated shape prosessing. User have to just descript profile of the piece what we want to do and machine does rest. Something like this:

http://cnc-blog.wallinside.com/fotos/1319658461cnc-programming-example-G71-G70-fanuc-cnc-blog.jpg


That time there was really hardcore programmers, 4kb...8kb size OS is capable to handle all these functions, closed-loop motion control (acc/dec ramps, interpolation), path prosessing, machine IO logic, even first two are only time hungry interrupted realtime tasks. Especially this computer not have floating point capability either multiplication or division (I'm pretty sure of that)... Many other CNC used at that time some lot more powerful(?) computers like Bridgeport use Dec's LSI-11/02 (btw, I have one of those too waiting some inspection...)

Before minicomputers all motion based on TTL chips or some other weird stuff (like ramp generators from DAC and counters). One example is Fanuc 20C from early 70's, it have very computer like features, data and address bus, but it is truly not computer (no rom or OS), it is just fancy TTL interpreter for NC code.

After minicomputer era (late 70's / early 80's) came DSP's and special motion ASICs in picture, like Siemens which uses Signetics 8X300 for motion processing somewhere and Fanuc compose their own motion chips. Mostly of these use Intel 8086 as main CPU. These days all are FPGA based, I think...

More to come later, some findings from maintenance manual!


Ps. It seems program counter is in PROGRAM board, there's 4x 74161 counters. Makes sense (or not ;) )

Jonne
April 29th, 2014, 06:54 AM
Maintenance manual have only about 10 pages of computer related pages, but very useful information:

http://i215.photobucket.com/albums/cc21/jonne_photo/SAM_0206.jpg
Original http://i215.photobucket.com/albums/cc21/jonne_photo/SAM_0206.jpg~original

http://i215.photobucket.com/albums/cc21/jonne_photo/SAM_0207.jpg
Original http://i215.photobucket.com/albums/cc21/jonne_photo/SAM_0207.jpg~original


As we see, here is test tape diagnostic info. Also we can see some (maybe all) opcodes. Secondly, faulty board related instruction is descripted, so we can see what every board does.

Slot 3 PROGRAM CONTROL

LOD = Load
STR = Store?
BRO = ???

This board handles data movements. Also there is probably program counter at 74161 chips adn 8x 4-bit full adders (7483). Maybe those are used to calculating new PC value at the jumps and returns. Parity generating/checking is done by 74180.



Slot 4 INR

BRU = ???
BRZ = Branch if zero
BRP = Branch if positive???
BRN = Branch if negative???
BRS = ???
RTS = Return from sub-program???

It is obvious this board handles branch commands. Same board have quartz and (probably) sequencer, it really make sense.


Slot 5 DATA

ADD, SUB
INV = Invert
EOR = Exclusive OR (XOR)
AND = Logical AND
INC = Increase
DEC = Decrease

(Literal mode)
ASR = Shift right
ASL = Shift left
CYR = Rotate right
CYL = Rotate left

(SC mode)
ASR
ASL
CYR
CYR

Also problems of these can be related slot 4 INR board, but this board is ALU, no doubt it. There is two 74181, multiplexer and 74198 shift register (74181 can only shift left and there's no rotate function). But what for is "SC" mode and "literal" mode? Any clue? I'm not expert this era computers, maybe somebidy can bring the light to this question...


Slot 6 FILE

NOP = No operation (how you can test NOP? :confused: )
LODF = Load
ADDF = Add
SUBF = Sub
ANDF = AND
IORF = IO command?
NEGF = Negative
INVF = Invert


Ok, this is interesting... FILE board have three 74181 (12-bit). And it seems there is also own commands for it, so this computer have two ALUs (I think this still can't be classify as duo-core... :D )! As I told before, board contain 1kbyte memory, maybe these commands are just for direct memory-memory operations... or something else... ideas? Anyways, sounds weird...

FILE board seems have registers, but I really can't see where 16-register could be located at this board. Maybe registers are part of that memory? If so, why seperate register switches?

***

I'm not sure is these all commands here. Probably not, Push and Pop commands are missing (both can be tested, so why not those are not in the list?) or this machine have no stack. Secondly, I'm not sure is this that fancy computer what I firstly thought. It seems quite primitive, it is really miracle this is capable all what is made for. But who knows what here can be find, maybe I'm totally wrong.

Jonne
April 30th, 2014, 01:34 AM
I just discovered DATA board connections. Not sure is it error free...

http://i215.photobucket.com/albums/cc21/jonne_photo/Databoard.png

There seems to be 4x registers on the board. Maybe those are not visible to programmer. Also 161 counters with 157 selectors are maybe used as latches.

More to come later!

Jonne
May 9th, 2014, 01:37 PM
Little update for ALU diagram... Previous one had too many guesses (lazy measuring..), now (almost) all are fixed!

http://i215.photobucket.com/albums/cc21/jonne_photo/Databoarddiag.png


Also some I discovered some connections from program board, there is some kind of stack (no direct register select, just up/down selector). Maybe it is for jump return addresses, because I suppose counter chips are PC register. That would fit the picture, adder would make jump (with offset register), return address from stack. But why there is two adders..? Maybe second one is subtractor for fixing return address to right place..?

http://i215.photobucket.com/albums/cc21/jonne_photo/PCdiag.png