Since my Tandy 1000SX had high resolution graphics (if you could call monochrome CGA 640x200 high resolution) we thought it made sense to get a mouse and learn to program with it. Then we might be able to write even better software for the engineers to use when setting up each circuitboard for production. We had a crude graphical CNC simulator that ran on the Kaypro machines, so this could be a step forward for us with more detailed graphics and a mouse for a pointing device.
We bought the mouse at Radio Shack. It was a pretty nice little mouse, and it came with its own interface card like most mice did back then. I'm guessing that this mouse was made by the same people who made the the famous Microsoft Mouse. It was very similar. All the mice at that time had a ball for tracking movement, and this one was a metal ball with a rubber coating.
I believe that my first experiments with the mouse were in Turbo BASIC. There were no built in commands for the mouse. I don't remember exactly how the mouse was read either, but I remember there was documentation. Playing around with some code for drawing on the screen with the mouse inspired me to write an experimental character recognizer. I would draw letters on the screen and the program would attempt to convert them to ASCII characters. It really wasn't that hard to do, but prototypes don't have to be practical. It was fun.
Showing posts with label kaypro. Show all posts
Showing posts with label kaypro. Show all posts
Thursday, March 18, 2010
Mousing Around
Labels:
ascii,
CGA graphics,
circuitboard,
cnc,
kaypro,
microsoft mouse,
mouse,
radio shack,
tandy 1000sx,
turbo basic
The Epson QX-10
Somewhere we had acquired an Epson QX-10. This was a Z80 powered machine running CP/M, but it wasn't originally conceived as such. Epson had written a CP/M compatible operating system called TPM, and they had some lofty ideas about how a computer should interact with people. They chose Forth as the language to deliver their ideas. So there were some applications which were seamlessly integrated together, but this didn't wind up being a successful product.
So instead we treated this machine like it was another Kaypro. Bob asked me to write a program that would optimize the use of the fiberglass panels we made our circuitboards from. The panels were 24 by 36 inches (I think). For some order we might need a panel that was 8 by 10 inches. How should we cut the panel to reduce waste?
So I wrote a program in Microsoft BASIC for the QX-10. The user would enter the desired size of the material, and it would draw a rough image of the panel as it should be cut with instructions something like:
Insert the long way and cut 10 inches for 3 panels 10 by 24 inches.
Take each of those panels and cut 8 inches for 3 panels 8 by 10 inches each.
Total yield 9 panels 8 by 10.
Waste 1 panel 6 by 24 inches.
We used the computer for this purpose for several years. Hopefully the computer paid for itself in this role. :-)
So instead we treated this machine like it was another Kaypro. Bob asked me to write a program that would optimize the use of the fiberglass panels we made our circuitboards from. The panels were 24 by 36 inches (I think). For some order we might need a panel that was 8 by 10 inches. How should we cut the panel to reduce waste?
So I wrote a program in Microsoft BASIC for the QX-10. The user would enter the desired size of the material, and it would draw a rough image of the panel as it should be cut with instructions something like:
Insert the long way and cut 10 inches for 3 panels 10 by 24 inches.
Take each of those panels and cut 8 inches for 3 panels 8 by 10 inches each.
Total yield 9 panels 8 by 10.
Waste 1 panel 6 by 24 inches.
We used the computer for this purpose for several years. Hopefully the computer paid for itself in this role. :-)
Labels:
circuitboard,
cp/m,
epson qx-10,
fiberglass,
forth,
kaypro,
microsoft basic,
tpm,
valdocs
Monday, March 1, 2010
The TRS-80 Gets a New Home, Briefly
After we built the new tracking system using one of the the Kaypro II machines, the TRS-80 was re-purposed by the drilling crew. A fellow by the name of Robert Doulbakian was in charge of that group. He wanted to use the TRS-80 to manage inventory for the drill and rout tool bits. I was very familiar with inventory management, having worked with Mr. Alessi on a couple such systems and Robert's requirements were very simple. I pulled something together for him quickly in Level II BASIC.
It seems to me that this particular computer was beginning to reach the end of its useful life. The keys were beginning to be sticky (and I think one of the keycaps had fallen off). In addition the machine was exposed to a more corrosive environment out in the factory, and these TRS-80 Model I computers had only silver and tin solder for contacts between the main unit and the expansion box. The computer would hang or reboot frequently.
It seems to me that this particular computer was beginning to reach the end of its useful life. The keys were beginning to be sticky (and I think one of the keycaps had fallen off). In addition the machine was exposed to a more corrosive environment out in the factory, and these TRS-80 Model I computers had only silver and tin solder for contacts between the main unit and the expansion box. The computer would hang or reboot frequently.
Labels:
inventory,
kaypro,
level ii basic,
trs-80,
unreliable
Thursday, February 25, 2010
The Job Tracking System in BASIC
It was time to put my new SBASIC tool to good use. Bob wanted a new tracking system to replace the old TRS-80 one. We decided to use one of the Kaypro II machines for this. I'm a little fuzzy on whether Bob started this one and handed it off to me, or if I was the developer from the get-go. Regardless, this project was a showcase for what could be done with the BASIC programming language.
This was a pretty easy application to build. There were a dozen or so departments on the factory floor. Each time a new job was ordered there were some essentials entered like job #, customer name, board type, due date, etc. and these were just stored in a simple random access file. Several times a day a young lady from Brazil named Danusa would make rounds collecting information about jobs and where they were in factory. Then she would come back and enter this information. Status reports would get printed out.
C.F.C. specialized in quick turnaround orders. Anything we could do to improve information about important rush orders was critical. A more timely tracking system was in our sights. We took one of the Tandy Model 100 portables and bought a barcode wand for it. A data collection program for it was written in BASIC. This would be used to collect the locations of all the jobs. I wrote a program in the tracking application for printing 3 of 9 bar code on label stock using an Epson compatible dot matrix printer. These had job numbers on them and we stuck them on the job bill of materials sheets that went with each order. Then we printed large bar codes for each department.
So now all Danusa had to do was go to a department, scan the bar code on the department sign, and then go to each bill of materials sheet and scan in the job number bar code. Then she would repeat this with each department. When this was done (and it was a lot faster than using a pen and clipboard) all she had to do was come back and we would read the information into the Kaypro II using an RS-232 cable and we would just suck that information into the tracking system and print the reports.
It really stands out to me that this sort of very useful application programming was easily achievable by a high school graduate with a knowledge of BASIC. For a good while we used this system to expedite manufacturing. End users used to do this kind of thing a lot more back then and I'm sure that Bob could easily have written this himself if he were so inclined and it he weren't so busy running the company. People should take more interest in programming because it's fun, it teaches important thinking skills and even untrained programmers can accomplish real productivity enhancements.
This was a pretty easy application to build. There were a dozen or so departments on the factory floor. Each time a new job was ordered there were some essentials entered like job #, customer name, board type, due date, etc. and these were just stored in a simple random access file. Several times a day a young lady from Brazil named Danusa would make rounds collecting information about jobs and where they were in factory. Then she would come back and enter this information. Status reports would get printed out.
C.F.C. specialized in quick turnaround orders. Anything we could do to improve information about important rush orders was critical. A more timely tracking system was in our sights. We took one of the Tandy Model 100 portables and bought a barcode wand for it. A data collection program for it was written in BASIC. This would be used to collect the locations of all the jobs. I wrote a program in the tracking application for printing 3 of 9 bar code on label stock using an Epson compatible dot matrix printer. These had job numbers on them and we stuck them on the job bill of materials sheets that went with each order. Then we printed large bar codes for each department.
So now all Danusa had to do was go to a department, scan the bar code on the department sign, and then go to each bill of materials sheet and scan in the job number bar code. Then she would repeat this with each department. When this was done (and it was a lot faster than using a pen and clipboard) all she had to do was come back and we would read the information into the Kaypro II using an RS-232 cable and we would just suck that information into the tracking system and print the reports.
It really stands out to me that this sort of very useful application programming was easily achievable by a high school graduate with a knowledge of BASIC. For a good while we used this system to expedite manufacturing. End users used to do this kind of thing a lot more back then and I'm sure that Bob could easily have written this himself if he were so inclined and it he weren't so busy running the company. People should take more interest in programming because it's fun, it teaches important thinking skills and even untrained programmers can accomplish real productivity enhancements.
Labels:
3 of 9 barcode,
dot matrix printer,
epson,
factory,
job,
kaypro,
rs-232,
sbasic,
tandy model 100,
trs-80
Sunday, February 21, 2010
CNC Machine Simulator
The two Osborne 1 computers we were using in engineering were getting a bit worn, so Bob sprung for some Kaypro computers. I don't think they appeared all at once but soon enough we had two Kaypro II machines and one Kaypro 10. The Kaypro II's were similar to the Osbornes but with bigger screens. Now we had 80 columns of bright green text. The Kaypro 10 also had a built in 10MB hard drive.
One really important difference with these new machines is that they had block graphics characters, and you could plot lines and points. This wasn't high resolution but it was good enough to inspire me to write a simple interpreter for the CNC programming language. Remember how I tried to write a programmable calculator program for my VIC-20 but never finished it? This interpreter was the realization of ideas that I'd been kicking around for a while. I wrote this as an extension of the machining text editor in MBASIC.
Now we could run a rough simulation of how a routing or drilling program would work and see the result on the screen. There was no fine detail, but it was easy to see if we accidentally drilled outside the board, or if a panel would be ruined by an accidentally placed cut. This certainly saved time and money because we were able now to make fewer first pieces so the single head Excellon machine and it's operator were more efficient.
One really important difference with these new machines is that they had block graphics characters, and you could plot lines and points. This wasn't high resolution but it was good enough to inspire me to write a simple interpreter for the CNC programming language. Remember how I tried to write a programmable calculator program for my VIC-20 but never finished it? This interpreter was the realization of ideas that I'd been kicking around for a while. I wrote this as an extension of the machining text editor in MBASIC.
Now we could run a rough simulation of how a routing or drilling program would work and see the result on the screen. There was no fine detail, but it was easy to see if we accidentally drilled outside the board, or if a panel would be ruined by an accidentally placed cut. This certainly saved time and money because we were able now to make fewer first pieces so the single head Excellon machine and it's operator were more efficient.
Labels:
excellon,
first piece,
graphics,
hard drive,
interpreter,
kaypro,
mbasic,
osborne 1,
simulator,
vic-20
Saturday, February 13, 2010
A Cornucopia of Computers
So I joined the engineering group at C.F.C. Our job was to write and debug CNC programs for the Excellon drilling and routing machines. Most of the programs were written using WordStar on Osborne-1 and Kaypro CP/M machines. We did not use hard drives to do this work, and the final medium of storage was punched paper tape. Yes, really! That was the format the machines used, and we had a storage library for keeping the tapes.
There was one Macintosh in engineering for special purposes, but here again I never used it.
There was a TRS-80 used for managing job tracking in the factory. It had the standard silver expansion box and three floppy drives.
Accounting had an Epson PC clone (or was it a Leading Edge Model D?), and there were a couple of Tandy Model 100 laptops that look like Alan Kay's Dynabook prototype.
Things were about to get interesting.
There was one Macintosh in engineering for special purposes, but here again I never used it.
There was a TRS-80 used for managing job tracking in the factory. It had the standard silver expansion box and three floppy drives.
Accounting had an Epson PC clone (or was it a Leading Edge Model D?), and there were a couple of Tandy Model 100 laptops that look like Alan Kay's Dynabook prototype.
Things were about to get interesting.
Labels:
alan kay,
cnc machine,
cp/m,
dynabook,
epson,
excellon,
kaypro,
leading edge,
macintosh,
osborne,
paper tape,
programming,
tandy model 100,
trs-80,
wordstar
Subscribe to:
Posts (Atom)