I recently wrote an article about my experience restoring a CE-150 printer cassette interface which can be used for the Radio Shack PC-2 or the Sharp PC-1500 “pocket computer”.
Throughout this article and my previous article on the subject, the PC-2 (Radio Shack) and PC-1500 (Sharp) are functionally equivalent. Further, the printer/plotter for each is functionally the same. I have both versions fully restored and working.
Since the PC-2 has a built in buzzer, has the option for a cassette interface and printer, and RS-232 interface, there are many possibilities for putting one of these to use today. Of course there are more modern options for anything the PC-2 is capable of, but having something vintage still working is part of the fun and challenge.
Plotter Capabilities using BASIC
I wrote a BASIC program that would print out a QSL card. The paper on this plotter is only 2.25” (58mm) wide, so it’s not exactly QSL card size. However, it would be interesting to send one of these out with a QSL card.
In order to maximize the output size using such small paper would be to rotate the printout by 90 degrees.
I read through the “Getting Started with the PC-2” book to see what the capabilities were for this plotter (CE-150). Specifically, how easy would it be to plot shapes, varying size text, rotated text, colors, lines, and more. Surprisingly, there is quite a bit of support in the BASIC command set for the CE-150.
This plotter uses 4 pens: black, blue, green and red. The CE-150, when connected to the pocket computer, expands the BASIC command set for using the plotter. This provides the simple commands for plotting.
BASIC Commands for Plotting
In order to illustrate exactly how easy it was to accomplish my task I set out to do, I have described some of the commands useful for the task.
To draw a box for example, the LINE command allows for a way to have an x,y coordinate for the start and another x,y coordinate for the end, and the box is then drawn automatically based on those two points.
To rotate the text, the ROTATE command provides a way to flip the text output 0, 90, 180, or 270 degrees. All text subsequently sent to the plotter is rotated accordingly.
The COLOR command switches pens.
The GLCURSOR command moves the pen to an x/y coordinate. Text can then be plotted at that location for example.
Text can be plotted using the LPRINT command.
The size of the text can be changed using the CSIZE command.
Since you can no longer take a trip to your local Radio Shack store and buy a set of replacement plotter pens and 2.25” paper rolls, I needed a way to experiment with this plotter using BASIC without consuming the ink in the pens and the paper.
For example, I am not likely to write out the program to print the QSL card correctly on the first try. In fact, it might take dozens of attempts before I get it just right. I might end up using all of the ink in a pen or two and/or a few rolls of paper.
I found an emulator, PockEmul that will emulate not only the PC-2, but also the CE-150 plotter. Amazingly, this emulator shows the plotter in operation and you can even save an image of the printout.
I wrote my test program using the emulator and tested it on the emulated CE-150 plotter. I was able to make tweaks and updates, test the result, and repeat. I was able to do this without wasting any real ink or paper.
Once I was able to test the layout, I added some input to the program to prompt the user for the call sign, date and time, band or frequency, and all of the other details of the QSO. The program then prints out the QSL card.
I included the test “Printed with a PC-2 Pocket Computer” at the very bottom of the printout. The idea is anyone who receives one of these as a QSL card might be curious what a PC-2 is.
The program prompts for the basics of the QSO, then prints the card. I accounted for color options, since these plotters have 4 colors to choose from. The color options can be set in the first line of the program. The options are two colors, one for the field text and callsign, address, etc, and the other color for the QSO details. If these are set to the same color (0) then a single color printout will be the result. The program could have been a bit more efficient on the pen-swapping by plotting all of the text in the first color, then switching pens once for the second color. In this simple version of the program, the pens are swapped quite a few times.
After writing the BASIC program on the emulator and running a successful printout in the emulator, I loaded the program into the real PC-2. The actual output is exactly what was expected:
Using the PC-2 to print out QSL cards was a fun way to learn some of the capabilities of the plotter and the PC-2 using BASIC. Due to the simple command set and optimized features, it was really quite simple to accomplish this task.
Perhaps I’ll send a few of these out after a QSO for those who might appreciate vintage technology. I enjoy using vintage equipment such as my Kenwood hybrid HF rigs, and using one of these (from the same era) for QSL cards adds to the experience of stepping back in time.
I’ve included the PC-2 QSL card program as a WAV file if you have a PC-2 and the cassette interface:
The program listing is below:
10 CLS : CQ=0 : CN=0 100 INPUT "Call Sign?",Q1$ 110 INPUT "Month?",Q3$ 120 INPUT "Day?",Q2$ 130 INPUT "Year?",Q4$ 140 INPUT "UTC?",Q5$ 150 INPUT "Band/Freq?",Q6$ 160 INPUT "Mode?",Q7$ 170 INPUT "RST?",Q8$ 180 INPUT "QSL (PSE/TNX)?",Q9$ 300 GRAPH 310 LINE (0,0)-(216,-300),0,0,B 320 GLCURSOR (180,-10) : ROTATE 1 : CSIZE 5 330 LPRINT "N1UGK" 340 RX = 205 : RY = -170 : CSIZE 1 : BL = -10 345 GLCURSOR(RX,RY) 350 LPRINT "Your Name" : GOSUB 1000 360 LPRINT "Your Address" : GOSUB 1000 370 LPRINT "City State Zip" : GOSUB 1000 380 LPRINT "Country" 390 GLCURSOR (5,-10) 400 LPRINT "County / GRID SQ / CQ Zone / ITU Zone" 410 GLCURSOR (140,-10) 420 LPRINT "Confirming QSO with: " : COLOR CQ : LPRINT Q1$ : COLOR CN 430 GLCURSOR (110,-10) 440 LPRINT "Day: " : COLOR CQ : LPRINT Q2$ : COLOR CN 450 LPRINT " Month: " : COLOR CQ : LPRINT Q3$ : COLOR CN 460 LPRINT " Year: " : COLOR CQ : LPRINT Q4$ : COLOR CN 470 GLCURSOR (80,-10) 480 LPRINT "UTC: " : COLOR CQ:LPRINT Q5$ : COLOR CN 490 LPRINT " Band: " : COLOR CQ : LPRINT Q6$ : COLOR CN 500 LPRINT " Mode: " : COLOR CQ : LPRINT Q7$ : COLOR CN 505 GLCURSOR (50,-10) 510 LPRINT " RST: " : COLOR CQ : LPRINT Q8$ : COLOR CN 520 LPRINT " QSL: " : COLOR CQ : LPRINT Q9$ : COLOR CN 530 GLCURSOR (0,-310):ROTATE 0 540 LPRINT "Printed with a PC-2 Pocket Computer" 550 END 1000 RX = RX + BL 1010 GLCURSOR (RX,RY) 1020 RETURN