SG -1 O/l 5 USER’S MANUAL NOT INTENDED FOR SALE
Federal Communications Commission Radio Frequency Interference Statement The equipment generates and uses radio frequency energy and if not installed and used properly, that is, in strict accordance with the manufacturer’s instructions, may cause interference to radio and television reception.
A Special Message to the New Owner Congratulations on your selecting the printer of choice for both the sophisticated as well as the first-time user/owner - the new SG-10/1.5! To complement the SG-10/15, we’ve included this manual. All the information you need to be up and running with your new SG- 10/l 5 is right here! You’ll find using this manual easy and pleasant.
Table of Contents Chapter 1 Chapter 2 Chapter 3 Chapter 4 Chapter 5 1 Setting Up SG-lo/15 Where Shall We Put It? What Have We Here? Removing the printer cover Removing packing and shipping screws Installing the platen knob Removing the tractor unit Attaching the paper separator and paper guide Installing the ink ribbon 9 Getting to Know Your SG-lo/15 Components and Controls Paper Selection and Loading Loading single sheets Loading sprocket-feed paper Bottom feeding SG- 15 Adjusting the Gap Self-Test 23
Chapter 6 Chapter 7 Chapter 8 Chapter 9 Underlining Superscripts and subscripts Changing the Print Pitch Expanded print Making SG-lo/15 Print Darker Mixing Modes Summary 49 Line Spacing and Forms Control Starting New Lines Changing Line Spacing Moving down the page without a carriage mturn Forms Controls Form feed Changing the Page Length Top and Bottom Margins Summary 61 Formatting Your Output Using Horizontal Tabs A one-shot tab command Setting Left and Right Margins Using Vertical Tabs A one-shot ver
Chapter 10 Chapter 11 Appendix A Appendix B Appendix C Appendix D Appendix E Appendix F Appendix G Erasing Download Character Definitions Delining Proportional Characters Connecting characters Summary 103 Printing With Dot Graphics Comparing Dot Grapphics With Download Characters Using the Dot Graphics Commands Specifying the number of columns of dots Specifying the graphics data Combining text and graphics Printing a Design or Logo Plotting With SG-lo/15 How the program works High Resolution Graphics I
Appendix H The Parallel Interface Functions of the Connector 213 Signals Appendix I Serial Interface Specifications Configuring the Serial Interface SC- lo/ 15’s Serial Protocols Serial busy protocols XON/XOFF protocol ACK protocol 217 Appendix J Connecting With Computer Connecting with IBM-PC and Compaq BASIC programming Listing programs Connecting with Apple II computers Applesoft BASIC Listing programs Connecting with TRS-80 computers TRS-80 BASIC Listing programs Connecting with Kaypro, Osborne,
Table of Tables Table Table Table Table Table Table Table Table Table Table Table Table Table Table Table Table Table Table Table Table Table Table Table Table Table Table Table Table Table Table Table Table Table Table Table Table Table Table 5-l Near letter quality commands 5-2 Italic commands 5-3 Underline commands 5-4 Superscript and subscript commands 5-5 Print pitch commands 5-6 Expanded print commands 5-7 Print emphasis commands 5-8 Master select and the 256 ASCII codes 6-l Line feed commands 6-2 Li
CHAPTER 1 SETTING UP SC-lo/l5 In this chapter, we’ll show you how to unpack your new SG-lo/15 printer, set it up in the right location, and get it ready for you to load it with paper and start printing. But first . . . WHERE SHALL WE PUT IT? Before you do anything else, give some thought to where you’ll be using your printer. Obviously, it will be somewhere near your computer. And both printer and computer will lead longer, healthier lives if they like their environment. For instance, we recommend . . .
Figure l-l. Inside the carton you should have received: 1) SG-lo/15 printer, 2) paper separator, 3) paper guide, 4) platen knob, 5) spare fuse, 6) ink ribbon, and 7) this user’s manual. Let’s move on the next step . . . H Removing the printer cover What is cover for, really? Primarily, for two reasons: one, to keep dust and dirt away from the delicate “innards,” and two, to keep the noise level down. So, you should keep the cover on all the time, except when setting the ink ribbon in place, loading paper.
Figure 1-2. Remove the printer cover by lifting carefully. n Removing packing and shipping screws There are two (on an SG- 10) or three (on an SG- 15) shipping screws on the bottom of the printer, used to hold the internal chassis securely to the external frame during shipping. To get at these, carefully place the printer upside down on a soft surface like a foam cushion. Remove the screws with a Phillips screwdriver as shown in Figure l-3.
:.” Shipping screw - -. _-^-_^_ SC;-10 has two screws which secure the chassis during shipping; SG-15 has three. They should be removed before use. Figure l-3. - WY. rlgure *. l-4. SG-10/15’s - . . Kemove the spiral print head. . . tube on the carriage 4 stay that protects .
the knob a few turns to see that it’s turning the platen easily and smoothly. n Removing the tractor unit The tractor unit, shown in Figure 1-5, comes mounted on the printer during shipment. It is used only with sprocket-feed paper. When other papers are used, such as single sheets, the unit should be removed, in the following manner: Remove the printer cover (if attached). Identify the “snap levers” as shown in Figure l-5. Pull both snap levers forward, and at the same time . . .
and guide, which are designed expressly to guide continuous (sprocket-feed) through the printer. paper n Attaching the paper separator and paper guide First, identify the paper separator (the large metal rack), shown in Figure l-6. Insert one protruding end into the hole shown in the diagram, then gently bend the other protruding end until it snaps into the opposite hole. Follow the same procedure with the smaller metal rack, which is the paper guide. er separator Paper guide .Figure 1-6.
several figures shown here; they’ll tell you all you really need to know. Nevertheless, if you feel better following written instructions, read on . . . After looking carefully at the Figure 1-7, begin by turning the power c$L and removing the printer cover. Then slide the print head gently to the center of the printer.
-‘-, - - - Figure 1-8. The eyelet changeover lever. should be between the ribbon spool and the Prin; head Figure l-9. You may want to use a ballpoint guide towards the platen and work the ribbon pen to press the ribbon down beside it. Finally, se’ the other spool snugly on the opposite spool holder; then turn tile spools by hand four or five turns in each direction to verify that everything is properly set and ready to roll. 8 - - _ _. .
CHAPTER 2 GETTING TO KNOW YOUR SG-lo/15 The more you learn about SG-lo/15 and its sophisticated features, old and new, the better SG-lo/15 is going to perform for you.
-. Interface connector Ground ‘Power Figure 2-l. terminal cord Front and rear views of SG-10. - TRACTOR - This unit feeds sprocket-feed paper with its drive gear and sprocket units. It is very easy to remove or to install the tractor unit onto the printer. PLATEN - This is the rubber cylinder that carries paper to the print head.
switch Control lpanel erface connectc Ground terminal Powe; cord Figure 2-2. Front and rear views of SG-15. INTERFACE CONNECTOR - Around on the back, this is the place where you connect your computer to SG- lo/ 15, so that they are able to communicate with each other. Now let’s take a tour around the controls, starting with the control panel board, located at the right front.
I READY I PAPER OUT I I I ON LINE I FF I I LF I Figure 2-3. SG- lo/ 15’s controls. POWER LAMP - Glows green when the power is on. READY LAMP - Glows green when the printer is ready to accept data. This light flickers during transmission. Don’t worry about the flicker; it’s normal! ON LINE LAMP - Glows green when the communication lines to your computer are open. PAPER-OUT LAMP - Glows red when the printer is out of paper and stops printing.
RELEASE LEVER - On top, near the left rear corner. You’ll be using this particular control often. What it does is control the pressure of the paper against the platen. Its position is crucial to feeding the different paper types - sprocket and single sheets. It has two settings: “Friction,” and “Tractor.” The Friction position is used for single sheet printing, and the Tractor position for sprocket paper. This will be fully explained in the section describing paper loading procedures.
Release lever The paper release lever has two settings: “F” for friction feed and “T” for tractor feed. Figure 24. H Loading single sheets Paper width must always be between 8 and 10 inches (8 and 15 inches for the SG-15), and paper thickness between .07 mm and .lO mm. Now, instead of rolling the paper in manually by turning the platen knob, we’re going to use the L.F. button, with the power switch turned on. (This means we’ll have to use the “F” (friction feed) position of the release lever.
6. Press the ON LINE button until the ON LINE light goes off. 7. Press the L.F. button to roll the paper in until it appears on the front side of the platen, about where you want the first line to start printing. NOTE: To straighten paper (if it’s in crooked): l Move the release lever to “T” position. l Position the sheet where you want it, moving right or left if necessary to get the paper located between the margins of the printing area. l Move release lever back to “F” position. 8.
To use this kind of paper, you’ll need to install the tractor unit, with its two “sprocket” wheels to carry the paper along. To install the tractor, identify the two “snap levers” shown in Figure 2-6. At the same time, identify the two “stoppers,” nickel-plated bars over which the hoooked or cut-out bottom edge of the tractor frame fits. OK? Now pick up the tractor unit.
Tractor Figure 2-7. cover Open the tractor covers to expose the sprocket teeth. 4. Place the stack of fan-fold paper behind the printer. 5. Open the tractor covers, atop the right and left sprocket units, as shown in Figure 2-7. 6. Flip the clamp levers forward. This allows the two sprocket units to move freely right and left, so you can align them with the holes in the paper. 7. Pick up the top sheet, and feed it between the paper chute and platen cover plate. 8.
L Figure 2-8. SG-lo/15 ready to run with sprocket-feed paper. W Bottom feeding SG-15 The SG- 15 can be loaded with sprocket paper in two different ways-either from the back, as with SG-10,or through a slot in the bottom. To load SG- 15 from the back, follow the steps shown in the previous section. But for loading through the bottom slot, you position the SG-15 above the stack of fan-fold paper, with the paper being fed up through the bottom of the printer and on out the back.
5. Open the tractor covers, right and left (Figure 2-7). 6. Flip the clamp levers forward. This allows the two sprocket units to move freely right and left, so you can align them with the holes in the paper. 7. Pick up the first “sheet” and lift it up and through the slot in the bottom of the SG-15. 8. Push the paper up to the front of the platen roller. 9. Feed the top sheet inside the paper bail bar and past the platen, high enough so you can grip the paper from above the printer. 10.
ADJUSTING THE GAP The gap is the space between the print head and the platen. Adjusting the gap is simply adjusting the printer to accommodate different thicknesses of paper. To make this adjustment, move the adjustment lever which is under the printer cover, immediately in front of the release lever shown in Figure 2-10. Pulling the adjustment lever towards you will widen the gap; pushing it away from you will narrow the gap. Release Adjustment Figure 2-10.
“warm-up” that permits you to check your installation of ribbon and paper, and the adjustment of the print head gap. Best of all, you don’t have to wait another minute - you can print the self-test without hooking up the SC&IO/15 to your computer! It’s as simple as 1, 2, 3... 1. Plug the printer’s power cord into an electrical outlet. 2. Insert a sheet of paper (or sprocket paper, either one). 3. While holding down the LF button, turn the power switch on.
i -. -- - ,(.
CHAPTER 3 GETTING STARTED WITH SG-lo/15 You have assembled and tested your printer, and seen a quick sample of SG-10/15’s capabilities in the self-test. Now it’s time to do what you bought SG-IO/15 to do: print information from your computer. But first you need to connect SG-IO/I5 to your computer. Figure 3-l shows where the cables connect, but there’s more that you need to know complete instructions for connecting SG- 10/l 5 to many popular computers are given in the appendix.
USING COMMERCIAL SOFTWARE Many of you purchased SG-lo/15 to use with commercial software. You made a good choice because SG- lo/15 is compatible with most commercial programs, from word processing programs to spreadsheet programs to accounting programs. Many of these programs have a routine for describing your printer. These routines are often in “installation programs”. They typically give you a choice of printers or printer types to pick from.
ask-key ). There are ASCII codes for all the letters of the alphabet, both lower case and capital, the numbers from 0 to 9, most punctuation marks, and some (but not all) of SG-10/15’s functions. ASCII codes are referred to in several different ways, depending on the way they are used. Some times these codes are treated as regular numbers. For example, the letter “A” is represented by the number 65 in ASCII. Appendix F shows all of the ASCII codes. In BASIC, ASCII codes are used in the CHR$ function.
ASCII 10 ASCII OAH CHR$( 10) control-J - the abbreviation of its name its decimal value its hexadecimal value (the H signifies hex) the way it’s used in BASIC the way you send it from a keyboard. There’s a chart in Appendix F that shows these side-by-side so that you can convert back and forth. The reason that we are telling you all this about ASCII codes is that people are not very consistent about how they describe ASCII codes.
that we want to use condensed print. The code to switch SG-lo/15 into condensed print is ASCII 15, or control-O. So to switch on condensed type, use the /Output command and, after selecting D(isplay) and entering the range to print, select the S(etup) option, and the S(etup)-“Manual setup codes” sub option. Then, at the prompt that says “Enter codes (CR when done)“, type control-O. Remember, to enter control-0 you hold down the CTRL key while you press the 0 key (That’s the letter Oh, not the number zero).
Entering the 4 is no problem; it’s a printing character so EasyWriter won’t object (although in this case it’s not going to print). The Escape, however, is a non-printing character so it requires special handling. To enter the Escape code first enter control-O (hold the Ctrl key while you press the letter 0). Then press the Esc key. The Escape character shows on the screen as a left pointing arrow. Now just type the number 4 and you’re done. When you want to end the italic, you need to enter Escape 5.
CHAPTER 4 CONTROLLING SG- 1O/15 WITH BASIC Throughout the rest of this book we will be teaching you how to use SG-lo/15 ‘s features using the BASIC programming language in our examples. It is easy to communicate with SG-IO/l5 from BASIC and, though it has its detractors, BASIC is the nearest thing to a universal language among users of personal computers. But remember that it’s not the only way to communicate with SG-10/15, as we have already seen.
ways, and hope that between this and your computer’s BASIC manual you will be able to stay with us. First on our list is Microsoft BASIC’s way of communicating with the printer. They just add an “L” to the beginning of the LIST and PRINT commands, making them LLIST and LPRINT. This method is used by more computers than any other and so we will use it throughout this book, after telling the rest of you how to follow along.
LLIST it (or however your first major hurdle-learning Now we are ready to jump SG-10/15. But first, there to cover. computer does it). We’ve crossed the how to list programs on SC-10/l% into the world of programming with are a few fundamentals that we need W Establishing communications We’ve learned something about communicating with our printer. Now we need to adapt what we know to printing in a BASIC program.
n Control codes SG-lo/15 uses many of the non-printing ASCII codes for control codes. These codes perform a function rather than printing a character. Let’s try an easy one right now: .. NEW 10 LPRINT CHR$(7) RUN Where did that noise come from? That’s SG-10/15’s bell. We will learn more about it in Chapter 8. We just wanted to illustrate a code that causes SG-lo/15 to perform a function. W The escape code There’s one ASCII code that we are going to be using more than all the rest.
1 1 Some of you fast students may have noticed that CHR$(69) is the same as “E”. That’s right, the program will work just as well if line 10 is changed like this: 1 1 10 LPRINT CHR$(27) "E"; f ” That’s just another form of the same ASCII code, and it’s all the same to SG-10/15. Here’s another shortcut for BASIC programmers: since < ESC > is used so often, assign it to a variable.
This is the command to turn on expanded print < ESC > , as we mentioned earlier, is the way we will indicate the escape code, which is ASCII code 27. A letter or number enclosed in quote marks (such as the “W” above) means that character should be sent to the printer (without the quote marks). In our example, you should send a capital W following the escape code. In BASIC, you could do this in a couple of ways: by sending the character itself (e.g.
in STAR mode. There are some cases where you would use IBM mode with your computer, if you wish. Chapters 5 through 10 discuss the control codes you send to SG- 10/l 5 to control printing style, horizontal and vertical formatting, graphics, and other features. You’ll find that many features have different codes for IBM mode and STAR mode. That’s it for the basics. You are ready to learn how to use the many features of SG-10/15.
i -. -- - ,(.
CHAPTER 5 PRINTING TEXT WITH SG-lo/15 Beginning with this chapter we will be exploring all the features of SG-10/15. In this chapter we’ll cover: l Near letter quality characters l Italics l Underlining l Superscript and subscripts l Print pitch l Print emphasis All our examples will be given in Microsoft BASIC as used by the IBM Personal Computer, but remember that you don’t need to know BASIC to use SG-10/I 5’s features. Just use the same ASCII codes as we do in our examples.
10 'Demo near letter quality character set. 20 LPRINT CHR$(27) "B" CHR$(4) ; 'Select NLQ. 34)LPRINT "This line shows NEAR LETTER QUALITY!" 40 LPRINT CHRS(27) "B" CHR$(5) ; 'Select draft. 50 LPRINT "This line shows standard print." In this program, line 20 selects NLQ characters with the < ESC > “B” CHR$(4) command. Line 30 prints a sample before line 40 switches SG- 1O/l 5 back to draft printing with an < ESC > “B” CHR$(S). When you run the program you should get this: This line shows NEAR Thl 1 .
l@ 'Demo italic and roman. 20 LPRINT CHR$(27) "4" ; 'Italic on. 39)LPRINT "This line is in ITALIC characters." 4@ LPRINT CHR$(27) "5" ; 'Italic off. 50 LPRINT "This line is in ROMAN (normal) characters." Here is what you should get: This program is easy; line 20 turns italic on with < ESC > “4”, and line 40 turns it off with < ESC > “5”. . . n Underlining Not only can SG- lo/ 15 print all styles of printing in both roman and italic, but it can underline them too.
ued.Therefore, BASIC didn’t send a carriage return and line feed at the end of those lines. We just did this to illustrate that all these control codes can be used in the middle of a line. It’s easy to underline or italicize only part of a line. n Superscripts and subscripts SG-lo/15 can print in two different heights of characters. The smaller characters are called superscripts and subscripts and are half the height of normal characters.
I “S” CHR$( l), and finally off in line 90. Again, everything prints on one line because of the semicolons. CHANGING THE PRINT PITCH In “printer talk,” character width is called pitch. Normally, SG-lo/15 prints 10 characters per inch. This is called pica pitch because it’s the same spacing as a standard pica typewriter. SG- lo/ 15 can also print 12 characters per inch. This is called elite pitch because it is the same spacing as an elite typewriter.
.--_ 30 LPRINT "This line is CONDENSED pitch." 48 LPRINT CHR$(27) "B" CHR$(2) ; 'Select elite pitch. 50 LPRINT "This line is ELITE pitch." 60 LPRINT CHR$(27) "p" CHR$(l) ; 'Select proportional. 717~ LPRINT "This line is PROPORTIONAL spacing." 80 LPRINT CHR$(27) "p" CHR$(@) ; 'Cancel proportional. 90 LPRINT CHR$(27) "B'J CHR$(l) ; 'Select pica pitch. l@j LPRINT "This line is PICA pitch (normal)." When you run this program you should get this: This This lineis CONDENSED pitch. line is ELITE pitch.
Expanded print set with CHR$(14) is automatically canceled at the end of the line. This is convenient in many applications, such as for one line titles. Note that you don’t need to put an < ESC > in front of the CHR$( 14), although < ESC > CHR$( 14) works just the same. You can also cancel one line expanded print before a carriage return with CHR$(20), as done in line 50. Sometimes you may wish to stay in expanded print for more than one line.
By combining expanded print with the four pitches, SG-lo/15 has eight different character widths available. Enter this program to see how the print pitches and expanded print can be combined: 18 'Demo pitches in combination with expanded mode. 241LPRINT CHR$(27) "W" CHR$(l) ; 'Permanent expanded mode on. 39)LPRINT CHR$(27) "B" CHR$(3) ; 'Select condensed pitch. 40 LPRINT "This line is EXPANDED CONDENSED pitch." 5@ LPRINT CHR$(27) "B" CHR$(2) ; 'Select elite pitch. 60 LPRINT "This is EXPANDED ELITE.
the characters twice, but they use slightly different methods to darken the characters. Let’s try them and see what the difference is. The following table shows the control codes for getting into and out of double-strike and emphasized modes.
80 turns emphasized off, so that SG-lo/15 is set for normal printing. Look closely at the different lines of printing. In the line of double-strike printing each character has been printed twice, and they are moved down just slightly the second time they are printed. In emphasized printing, they are moved slightly to the right the second time SG- lo/ 15 prints. The last line combined both of these so that each character was printed 4 times.
Table 5-8 Master Select and the 256 ASCII Codes Pitch Emphasized Normal Double-strike Double-strike & Emphasized Pica 0, 2, 6% 66, 128, 130, 192, 194 8, 10, 12, 14, 72, 74, 76, 78, 136, 138, 140, 142, 200, 202, 204, 206 16, 18, 80, 82, 144, 146, 208, 210 24, 26, 28 30, 88, 90 92, 94, 152 154, 156, 158 216, 218, 220 222 Elite 1, 7, 13, 67, 73, 79, 133, 139, 193, 199, 205, Elite takes precedence over Emphasized.
SUMMARY Control code < ESC > “B” CHR$(4) < ESC > “B” CHR$(S) < ESC > “4” < ESC > “5” < ESC > “4” < ESC > “5” < ESC > “I” 1 < ESC > “I” 0 “-” 1 “-“() < ESC > “S” 0 < ESC > “S” 1 < ESC > “T” < ESC > “B” CHR$(l) < ESC > “I”’ < ESC > “B” CHR%(2) < ESC > “M” < ESC > “B” CHR$(3) < ESC> “p” 1 < ESC > “p” 0 CHR$( 18) CHR$(l5) CHR$( 14) < ESC > CHR$( 14) CHR$(20) “W” 1 < ESC > “W” 0 < ESC > “G” < ESC > “H” < ESC > “E” < ESC > “F” < ESC > “?” n < ESC > “!” n Function Near letter quality on (for STA
CHAPTER 6 LINE SPACING AND FORMS CONTROL We have learned how to print in many different ways, but so far we haven’t looked at how to position the printing on the page. In this chapter we will learn how to: l Change the vertical spacing l Change the length of the page l Set top and bottom margins STARTING L. LI . NEW LINES Up until now the only time we have thought about printing on a new line is when we didn’t want it to happen.
will add the line feed for you. When you have DIP switch 2-3 off the printer will do the same thing when it receives a carriage return as it does when it receives a line feed. If you find that your printer double spaces when it should single space, then you probably need to turn DIP switch 2-3 on.
This is what you will get: This This line line line 1 ine 1inEt +aciniJ is set spacing spacing spacing is is is is spacing Thic line This line spacing is set to 17 This line spacing is set to 18 This 1 ine spat i .z Set to 19 This This This spacing i ng 10 11 set to 12 set to 14 set to 15 E-et tc1 lb ic, s.et to to This. line E.
You may wonder why they picked l/72 of an inch as the increment for the line spacing command. There’s a good reason: the dots that the printer makes are l/72 inch apart. So this means that you can vary the line spacing in increments as tine as one dot-unless you want finer spacing, like one half dot spacing (STAR mode) or one third dot spacing (IBM mode). The < ESC > “3” CHR$( it) command sets the line spacing in increments of l/144 inch (STARmode) or l/216 inch (IMB mode).
The program works just the same as before, but the line spacing are just half (STAR mode) or one-third (IBM mode) what they were. This is because < ESC > “3” CHR$(n) sets the line spacing to n/144 inch in the STAR mode, or n/216 inch in the IBM mode. Table 6-2 shows all the line spacing commands, including several “shortcut” commands for commonly used line spacings. Table 6-2 Line spacing commands Set line spacing to n/l2 inch Note: If your computer does not support lowercase characters.
without moving the printhead back to the left margin. The following commands do just that. The < ESC > “J” CHR$(n) command causes the printer to make one line feed of n/144 inch (STAR mode), or n/216 inch (IBM mode), but does not change the setting of the line spacing. Try this program to see how it works: 10 'Demo one-time line feeds. 20 LPRINT "Line number 1." 30 LPRINT "Line number 2.” ; 40 'One time line feed. 50 LPRINT CHR$(27) "J" CHR$(lQ)@) ; 64)LPRINT "Line number 3." 79)LPRINT "Line number 4.
:..., ./, ii 3::: _. i._..:i. r-: E i”) i,,!. iyl i-j c+i:ij i ., / / ,,.,!,/ j: ,..! t:: : i :: i-. .L Y The new line 50 moves the paper up 3 lines, but the printhead doesn’t move. Therefore, line 60 prints its message starting in the column that the printhead was left in at the end of line 30. FORMS CONTROLS We have seen how to control the spacing between lines on a page. SG-lo/15 also has commands that control the placement of printing on the page, and even adjust for different size pages.
The form feed (CHR$(J2)) in line 50 caused the printer to move to the top of a new page before printing the last two lines. A note to TRS-80 users: CHR$(12) is a problem code for the TRS-80. To send a form feed command to SG-lo/15 you must add 128 to it making it CHR$(140). Use CHR$(140) where we use CHR$(12) in these programs. CHANGING THE PAGE LENGTH You may have some computer forms that you wish to use with SG- 10/l 5 that are not 11 inches high.
TOP AND BOTTOM MARGINS Many programs that use a printer don’t keep track of where they are printing on the page. This causes a problem when you get to the bottom of a page because these programs just keep on printing, right over the perforation. This makes it very hard to read, especially if a line happens to fall right on the perforation. And if you separate the pages then you are really in trouble. Of course SG- 10/l 5 has a solution to this predicament.
When you run this program it will print 150 lines right down the page and across the perforations. When it’s done line 60 sends a form feed to advance the paper to the top of the next page. Look at the lines that have printed near the perforations. Separate the sheets and see if any of the lines have been torn in half. These are the problems that the top and bottom margins will solve. Now add the following lines to your program.
Always send a form feed after setting the top margin, or it will not work on the first page printed. That’s because the top margin only takes effect after a form feed. Line 14 sets the top margin, line 12 sets the bottom margin, and line 55 clears both margins when we are done.
-.. --. -.
CHAPTER 7 I FORMATTING YOUR OUTPUT You have probably used the tab and margin features on a typewriter. They make it easier to format the text on a page. SG-lo/15 also has tabs and margins that you can set. But it goes beyond the capabilities of a typewriter because besides having tabs that go across the page, called horizontal tabs, SG-lo/15 has vertical tabs that go down the page.
CHR$(9) is a problem with some computers. Some BASICS convert CHR$(9) to a group of spaces that act like a sort of pseudo-tab. This is fine if the computer and the printer have the same tab settings, but it doesn’t allow us to use our own tab settings on SG-10/15. We can “outsmart” these computer by adding 128 to the ASCII value that we use. Instead of using CHR$(9), use CHR$( 137) for a tab command. Even this trick won’t work for Apple II computers, for they use CHR$(9) for something else entirely.
Table 7-1 Horizontal tab commands 1Function 1Mode 1Control code Advance to next tab position STAR 1CHR$(9) IBM I CHRS(9) Set tabs at nl, n2, etc. I 111 One-time tab of n spaces Note: If your computer CHR$(98) for “b.” SETTING STAR IBM “b” CHR!$(n) “b” CHRS(n) does not support LEFT AND RIGHT lowercase characters, use MARGINS SG-10/15’s left and right margins work just like a typewriter-once they are set all the printing is done between them.
110 RETURN The first thing that this program does is to branch to the subroutine that starts in line 70. This subroutine prints 80 X’s in a row. The first time that the subroutine is used, all the X’s fit in one line. Then line 30 sets the left margin to 10, and line 40 sets the right margin to 70. Once again the subroutine is used, but this time the X’s won’t all fit on one line since there is now only room for 60 characters between the margins. Run the program.
Now, let’s set some vertical tabs of our own. Add these lines to the program: 12 LPRINT CHR$(27) "P" CHR$(lfl); 14 LPRINT CHR$(2@) CHR$(4@) CHR$(@) CHR$('d); < ESC > “P” is the command to set vertical tabs for the STAR mode. Like the horizontal tab setting command, tab positions must be defined in ascending order. Our example sets vertical tabs at lines 10, 20, 40 and 50. Then the CHR$(l 1) in each of the following lines advances the paper to the next vertical tab. The printout is shown below.
I This doesn’t confuse SG- lo/ 15-it advances the paper to the next tab position which happens to be the first tab position on the next page. That’s nice, isn’t it? n A one-shot vertical tab command There’s a one-time vertical tab command that works just like the one-time horizontal tab command. It is < ESC > “a” CHR$(n), and it causes the paper to advance n lines. It doesn’t change the settings of the verti,cal tabs. - Table 7-3 Vertical tab commands Function Mode - Control code -.
CHAPTER 8 SPECIAL FEATURES OF THE SG-lo/15 In the previous chapters we have learned about several groups of control codes. In this chapter we will look at more control codes. These codes don’t lit neatly into any of the groupings that we have studied, but they add a lot of capability to SG-10/15. So here goes.
to remind adjustment an operator to change the paper or to make another to the printer. Note to Apple users: Entering a will sound Apple’s bell; the code will not be sent to CHR$(7) SG-10/15. You can try this by typing: LPRINT CHR$(7); - There are two other codes that affect the bell. One disables the bell, so that SG-IO/l5 will ignore a CHR$(7), and the other turns the bell back on. All three codes that affect the bell are shown in the following table.
for the code to go on-line again. CHR$(19) is the code to turn SG- 10/l 5 off-line; CHR$( 17) returns SG- lo/ 15 to on-line status. n Printing to the bottom of the sheet Sometimes when you are using individual sheets of paper you may want to print near the bottom of a sheet. The paper-out detector usually stops SG-lo/15 when you are about 2 % inches from the bottom of the sheet. This is to notify you if you are running out of continuous paper.
1 Backspace, delete, and cancel text Backspace (CHR$(8)) “backs up” the printhead so that you can print two characters right on top of each other. Each time SG- 10/l 5 receives a backspace it moves the printhead one character to the left, instead of to the right. You can strike over multiple letters by sending more than one backspace code. Delete (CHR$(127)) also “backs up” one character, but then it “erases” the previous character (it’s erased from SG-10/15’s buffer, not from the paper).
H Unidirectional printing Unidirectional printing is a big word that means printing in one direction only. SG- lo/ 15 normally prints when the printhead is moving in both directions. But once in a while you may have an application where you are more concerned about how the vertical lines align than with how fast it prints. SG-lo/15 lets you make this choice. The table below shows the commands for controlling how SG- lo/ 15 prints.
- again. Finally line 110 sends a form feed to advance the paper to the top of a new page, and then uses the master reset to restore SG-lo/15 to the power-on condition. You can also set SG-IO/l5 to print in one direction for one line only by using the command < ESC > “ < “. This command immediately moves the printhead to the left margin and then prints the remainder of the line from left to right.
H Block graphics characters and special symbols Besides the upper and lower case letters and symbols that we are by now familiar with, SC-lo/15 has a whole different set of characters that are for special uses. These characters include block graphics characters for drawing forms and graphs, and special symbols for mathematical, engineering and professional uses. The following program will print out all of the graphics characters available in STAR mode. 10 'Demo all block graphic characters.
4 + b’ A. 129 Ct 131 $ 139 i: 141 i 14? tr 151 h 159 f 161 i 169 I- 171 !f 179 1 181 1 189 J 191 , “it:1 1 r 211 L 199 t 2c39 T 219 .--,q Li .9 ; mI u I221 I 231 q- 239 n 241 c!I 249 - 251 d Figure 8-2.
134 2. 137 6 144 lk 147 G i54 ii 157 ?I! 164 E 167 I! 17 4 .
NEW 18 LPRINT CHR$(27) "@" 20 LPRINT CHR$(27) "6" 30 FOR J = 3 TO 6 4Q LPRINT " " J CHR$(J) " "; 50 NEXT 60 LPRINT " 21 " CHR$(21) 70 LPRINT 80 FOR J = 128 TO 254 STEP 10 90 FOR I = J TO J + 9 95 IF I > 254 THEN 118 100 LPRINT I CHR$(I) " 'I; 110 NEXT I : LPRINT : LPRINT : NEXT J Figure 8-2 shows what this program will print. If your chart doesn’t look like this because it has regular letters and numbers instead of the special symbols, then your computer is only using seven bits.
SG-IO/l5 is a multi-lingual printer for it can speak in eight languages! SG- lo/ 15 changes languages by changing 11 characters that are different for the different languages. These sets of characters are called international character sets. The control codes to select the international character sets are given in Table 8-5. The characters that change are shown beneath their ASCII code in Table 8-6. Table 8-6 Intemationad character sets Country U.S.A France L -. ._- I,._..
Table 8-7 Macro instruction commands Mode STAR Function Define macro Use macro IBM Control code < ESC > “ +“....codes you zhclude...CHR$(30) “+“....codes STAR IBM < ESC > “!” “?,’ you include...
In this chapter we have learned many different commands that have many different uses. In the next chapter we will make up for this diversity-the whole chapter only covers three commands! But they are some of the most powerful that SG-lo/15 offers. They give you the ability to create your own characters.
-
CHAPTER 9 CREATING YOUR OWN CHARACTERS In this chapter we’ll cover: l Designing and printing your own characters l Designing proportional characters In the previous four chapters of this manual you’ve learned how to control the SG-lo/15 printer to give you dozens of different typefaces. By using various combinations of pitches, character weights, and font selections, you can create nearly any effect you want to in text.
Figure 9-1. The letter “C” is created by printing 15 dots. descenders (such as the lower case “p” shown) use the bottom seven pins. As the printhead moves across the page (in either direction-that’s what is meant by bi-directional printing) it prints one column of dots at a time. Each time a dot is supposed to print an electromagnet inside the printhead causes the appropriate wire to strike the ribbon (making the SG-lo/15 an impact printer). 0.0. 0 0 0 : 0 : 00 l o.e l oao :0 0.0. :. 0.0. l 0 eo.
But there is another area of memory in the SG-lo/15 reserved for user-defined characters. These are characters that you design and download into SG-10/15. When download characters are defined they are stored in RAM (random access memory), which allows you to define or modify them at any time. Each of these characters, whether it is from the standard character ROM or in download RAM, is constructed on a grid which is six “boxes” wide by nine “boxes” high.
Figure 9-5. Later in this chapter we’ll use this character to create a small graph.) You’ll notice that Figure 9-4 includes a lot of information around the grid. Don’t be intimidated; we’ll explain each item as we come to it in our discussion of defining and actually printing download characters. You may have noticed another difference between this grid and the one shown in Figure 9-3: it’s only eight boxes high. Which leads us to... m,n-5m,m.
character uses the top eight dots, write in a one next to the word “Descender” on the layout grid; if it uses the bottom eight dots, write in a zero. In our example, we’ll want the bottom of the flask to line up with the baseline of the other characters, so it will not be a descender. As shown in Figure 9-5, we’ve written in a “1” on our grid. 120 ASCII Code 64 Descender 32 Start column End column 1 16 M, = Descender l 126 + (Start l 16) + End 2 1 ?&al Figure 9-5.
m, m, m, m. m, m6m, m, m, m,, m,, ASCII Code 64 Descender 32 Start column End column WRONG! 16 M, = Descender l 128 + (Start l 16) + End -- btal Dots cannot overlap; those in immediately columns” will be ignored when the character is printed. Figure 9-6. adjacent “half W Add up each column of dots Now it’s time to give our creative side a break and get down to some basic arithmetic. That’s where the numbers down the left side of the grid come in.
value. Some examples will make this clearer. As shown in Figure 9-7, if we add the numbers for the dots that print in a column, the sum will be a number in the range of 0 to 255. Each number from O-255 represents a unique combination of dots. So add up the values of the dots in each column using this system. In Figure 9-8 we’ve shown our grid with the sums of the columns tilled in across the bottom (see if these agree with your answers!).
can define any positions except the defined control code positions. This means that once a character is defined and assigned a value (and the download character set is selected), you can use that character on the printer the same way you would any standard character. You can send the character with the same ASCII value (for instance, if you had assigned your character a code of 66, it would print each time you sent a character “B” to the printer).
Our chart would hardly be complete with just a picture of a chemist’s flask, so in Figure 9-9 we’ve made completed grids for some other symbols: an automobile and a gun (quite a strange mix of characters!). The information on the grids is now complete (except for proportional width data-a more advanced topic we’ll take up shortly). n Download character definition command You’ve read through a long explanation of download characters and we haven’t even told you the command syntax yet! Now the wait is over.
We’ll be discussing proportional character widths in detail later in this chapter; for now, we’ll leave it at 11. The descender data was discussed earlier: to use the top eight pins, this bit should be 1; to use the bottom eight pins this bit should be 0. Figure 9-10 shows the bits of the attribute byte as we’ll use them for our flask character. By now you’ve probably seen an easier way to determine the value of the attribute byte.
.“” 10 LPRINT CHR$(27) "*" CHR$(l) CHR$(160) CHR$(162); 20 FOR N = 160 TO 162 30 FOR M = 0 TO 11 40 READ MM 50 LPRINT CHR$(MM); 60 NEXT M 70 NEXT N 80 LPRINT 90 DATA 139,2,5,8,241,0,0,241,8,5,2,0 100 DATA 139,124,0,66,4,64,36,16,2,16,12,0 110 DATA 139,46,16,2,60,0,48,8,48,0,48,0 When you run this program, it looks like nothing happens. That’s OK. We’ll see why in just a moment. Save this program. We’ll need it again shortly.
Voila! It should have printed out the three characters we defined. Your printout should look like this: (If it doesn’t, check the last program we ran for errors, then rerun it.) Let’s find out if there are any other characters in the download RAM.
149) LPRINT ESC$ "$1"; 150 LPRINT "Autos" TB$; 160 FOR I=.4 TO 9.3 STEP .4 : LPRINT CHR$(lGl); : NEXT 170 LPRINT 180 LPRINT "Chemicals" TBS; 190 FOR I=.4 TO 8.7 STEP .4 : LPRINT CHR$(16@); : NEXT 200 LPRINT 214) LPRINT "Guns" TB$; 220 FOR I=.4 TO 1.4 STEP .
.- ERASING DOWNLOAD CHARACTER DEFINITIONS After you have defined a set of characters (a whole new alphabet, perhaps) you may want to go back to using mostly standard characters with a few new user-defined characters mixed in. Rather than turning SG-lo/15 off (which erases all of the current settings, including download characters), you can send This a command which will restore the default characters.
616 &4@9 mmmm.mmmm.mmm Figure 9-12. These download characters are defined as proportional characters. attribute byte, m0. As you know, the first bit of m0 is used to specify whether the character is a descender or ‘not. The next three bits are used to specify the starting print column (acceptable values are 0 to 7). The last four bits specify the ending print column (acceptable values are 4 to 11).
10 FOR N=l TO 4 24) READ Nl 34) LPRINT CHR$(27) "+c" CHR$(l) CHR$(Nl) CHR$(Nl); 40 FOR M=0 TO 11 54) READ MM 60 LPRINT CHR$(MM); 70 NEXT M 84) NEXT N 90 LPRINT " Mississippi" 100 LPRINT 110 LPRINT "Standard characters without proportional spacing" 120 LPRINT 130 LPRINT Mississippi" 144) LPRINT CHR$(27) "$1" " 158 LPRINT CHR$(27) "$g" 160 LPRINT "Download characters without proportional spacing" 170 LPRINT 180 LPRINT CHR$(27) "$1" Mississippi" 190 LPRINT CHR$(27) "pl" " 200 LPRINT CHR$(27) "~0" CHR$(27) "$0"
One thing to remember about defining proportional characters: a character cannot be wider than the specified width. That seems obvious enough! For example, if you specify a width of 6 for a character (starting in column 1 and ending in column 6), the seventh through eleventh columns of dots (if you specified any) will not print.
In the program that follows, we’ve used this technique to create some large numbers. Each digit is actually made up of four characters-two horizontally by two vertically. This means, of course, that you must define and print four characters for each finished digit. We assigned the upper left quadrant of each digit to ASCII codes from 160 to 169, the upper right quadrant to codes 170 to 179, and so on. Figure 9-14 shows how one digit is defined, and Figure 9- 15 shows the final output of our program.
130 140 150 160 170 180 READ MS PRINT 111, CHR$(MS); NEXT S NEXT I ' ASCII = 160 'START OF DOWNLOAD CHARACTERS 'NUMERALS 0 TO 9 190 FOR NUM = 0 TO 9 200 NUMERAL.TOP$(NLJM) = CHR$(ASCII + 0) + CHR$(ASCII + 1) 210 NUMERAL.BOT$(NUM) = CHR$(ASCII + 2) + CHR$(ASCII + 3) 220 ASCII = ASCII + 4 230 NEXT NUM 240 BLANKS = CHR$(200) 250 PRINT i/l, DOWN.CHAR.PROP$; LINE.7$ 260 FOR NUM = 0 TO 9 270 PRINT j/l, NUMERAL.TOP$(NUM);BLANK$; 280 NEXT NUM 290 PRINT 111, CHR$(l0) 300 FOR NUM = 0 TO 9 310 PRINT i/l, NUMERAL.
500 DATA 11, 0, 0, 0, 0, 0, 0, 32, 64, 32, 64, 32 510 DATA 11, 68, 42, 68, 58, 68, 50, 68, 34, 64, 2, 0 520 DATA 11, 8, 0, 12, 0, 28, 2, 12, 2, 4, 2, 4 530 DATA 11, 2, 4, 2, 12, 144, 108, 144, 104, 144, 96, 128 540 'FOUR 550 DATA 11, 0, 0, 0, 0, 0, 0, 2, 36, 30, 4, 8 560 DATA 11, 0, 0, 2, 4, 2, 28, 2, 60, 64, 48, 8 570 DATA 11, 0, 16, 32, 80; 160, 80, 160, 16, 32, 18, 32 580 DATA 11, 30, 100, 154, 100, 154, 96, 146, 32, 16, 96, 0 590 'FIVE 600 DATA 11, 0, 0, 0, 0, 2, 4, 42, 76, 50, 68, 34 610 DATA 10, 68, 3
810 DATA 11, 32, 30 820 DATA 11, 198 830 DATA 11, 0 840 'SPACE 850 DATA 11, 192, 0, 192, 0, 194, 32, 222, 32, 94, 12, 0, 28, 0, 142, 0, 198, 0, 198, 0, 0, 206, 0, 156, 0, 248, 0, 240, 0, 224, 8, 0, 0, 0, 8, 8, 0, 8, 8, 8, 8 SUMMARY Control code -=-c ESC > < ESC > < ESC > -=cESC > < ESC > < ESC > Function “*” 1 nl n2 mO ml . ..mlZ Defines download character into RAM (for STAR mode) “8~” CHR$(O) nl n2 mO ml . ..
-
CHAPTER 10 PRINTING WITH DOT GRAPHICS Subjects covered in this chapter include: l SG-10/15’s bit image graphics capabilities l Printing a pre-defined shape l Plotting a calculated shape l High resolution graphics i b. c. . . I In Chapter 9 you were introduced to a form of computer graphics; you were able to actually define characters dot by dot.
(if you’re not sure which type of interface your computer has, check the appendix for your computer). So when do you use graphics and when do you use download characters? Practically anything you can do with graphics you can do with download characters, and vice versa. A clever programmer could actually plot a mathematical curve using download characters or use strings of graphics data as user-defined characters.
it’s possible to have a graphics image as wide as 480 dots on SG-10 or 816 dots on SG-15. So to figure out how many columns of graphics data to expect, SG- lo/15 multiplies n2 by 256 and adds the value of nl. If you divide the number of columns by 256, then n2 is the quotient and nl is the remainder (why not let your computer figure it out for you: if the number of columns is assigned to variable X, then nl =X MOD 256 and n2 = INT(X/256)). Table 10-l might make things even easier.
0 1 U 0 (not used) Figure 10-l. Starting withthemostsignificant bitatthetop,eachpin oftheprint headisassigned a value whichisa poweroftwo.Notethat for7-bit computers, thetoppincannotbe used. - A short program graphics command. should demonstrate how to implement the The program below gave us this printout: 10 ‘Demo dot graphics. PI = 3.
n Combining text and graphics It’s also possible to mix text and graphics in one line. This can be useful for labeling charts or graphs, or even inserting fancy graphics in text. Try adding these lines to our program: 45 PRINT #l,"WOW!" ; 85 PRINT #l,"This is great!" ; Now if you run the program looks like this: you should get a printout that But there is one thing to be careful of: all graphics data must print on the same line.
paper. And it may be helpful to write the dot values (128, 64, 32, etc.) down the left side of each row. Then after you’ve filled in the “dots” that you want to print, it’s time to get out the old calculator again! Just as you did with download characters, add up the values of each column of dots; this makes up one byte. In the program below, we’ve taken the logo graphics information and put it into BASIC DATA statements. The program itself is short and simple.
L I . * L 60 GRAPHICS = CHR$(27)+CHR$(75) 70 DIM LOG0$(4) 80 WIDTH "LPTl:",255 90 ' READ DATA 100 FOR ROW = 1 TO 4 110 FOR COLUMN = 1 TO 100 120 READ P 130 LOGO$(ROW) = LOGO$(ROW) + CHR$(P) 140 NEXT COLUMN 150 NEXT ROW 160 ' PRINT LOGO 170 LPRINT LINE.8$; 180 FOR ROW = 1 TO 4 190 LPRINT GRAPHIC$;CHR$(l00);CHR$(0); 200 LPRINT LOGO$(ROW) 210 NEXT ROW 220 LPRINT LINE.
500 510 520 530 540 550 560 570 580 590 600 610 620 630 640 650 660 DATA 252,255,255,255,127,63,31,7,7,31 DATA 254,252,248,224,128,0,@,3,7,7 DATA 7,3,0,0,0,0,0,0,0,0 DATA Q,31,31,3,129,128,192,192,192,192 DATA 192,224,224,224,224,240,255,255,255,255 DATA 255,~27,0,0,0,0,0,0,0,0 'ROW4 DATA 0,248,248,240,224,224,112,112,56,56 DATA 56,56,56,120,12@,24(iI,240,224,224,192 DATA 128,0,0,0,0,0,192,224,240,240 DATA 24@,248,248,248,120,120,56,56,56,56 DATA 48,112,224,224,224,224,240,248,248,248 DATA 120,120,56,56,56
and SG-IO/15 plotting the output, you can come up with some terrific business graphs, charts, and mathematical function plots. The best way to do this is to set up an array in memory. This is your “graph paper.” The first thing to do is to determine how big you want your output to be; this will determine the size of your array. (If you have grandiose plans to fill an entire page with plotter output, you better have lots of memory in your computer.
270 ' :ine to draw a line from Xl,Yl tt 0 X2,Y2. 280 'Subrout 290 ' : YL = Y2 - Yl 300 XL = X2 - Xl 310 NX = ABS(XL*LXFAC) : NY = ABS(YL*LYFAC) 320 IF NX < NY THEN NX = NY 330 NS% = INT(NX+l) : DY = YL/NS% 340 DX = XL/NS% 350 FOR 1% = 1 TO NS% + DY :Yl=Y 360 Xl = Xl + DX 370 GOSUB 400 380 NEXT 1% 390 RETURN 408 ’ 410 'Subroutine to plot a point at Xl,Yl.
you need to change are the values in line 40. The array MASK% contains the values of the dots. (In order to make this program run on the most computers, we’re using only six pins for graphics. With many computers, you can use all eight available pins.) In lines 90 and 100 we’ve defined some other variables you’ll be interested in: LX, LXFAC, LY, and LYFAC are used as scaling factors.
at a time. The variable A$ is used to build a string of all the columns of BIT% in a given row. As you can see, by taking the program in small pieces and analyzing it, graphics programming does not have to be difficult. If you want to try some other plots, try these (replace lines after 600 with the lines below). The printouts from each program are shown below the listing. 610 'Subroutine to plot a star. 620 ’ 630 RAD = 9 640 FOR ANG% = 0 TO 360 STEP 45 650 RANG = ANG% * 3.
HIGH RESOLUTION GRAPHICS Up until now all of the dot graphics printing we have done has been with SG-10/15’s normal density mode. This can give you some pretty sharp images at great speed. Sometimes though, you may want to create an image with even higher resolution. SC-lo/l 5 has seven graphics modes you can use; they’re summarized in Table 10-2. The command syntax for all of the commands is the samejust as you have learned it for the < ESC > “K” (normal density) command.
Table 10-2 Dot graphics commands - Note: If your computer does not support lowercase characters, use CHR$(103), CHR$(121), and CHR$(122) for “g”, “y”, and “z”, respectively.
i -1 Double density graphics .I ( /...‘I . . : :. ., ...‘. “. .i : ..:.. .,.. . ,.i”..;.“:c..~:. ‘.. ” .i ..,.,.../” : i,,._ ... . . .p&.~:“” ‘. _ ,,... ..: $8‘1.:; :. ‘,., ,, ., 1 ,. .:. ). ,.:,. .’ .. !,a. ‘.. .. /,. i. 2’ .,t,:, .. /: >, ,.:. ).. . . . ,.. L>... i .,.I’. ; ..,,, .: .” ,, .$ ; .:.. ,!~., ‘;., .. ..... .i’.Z ,,jf’ :::‘: .; ‘.’ ,,,, ,“... ),., .,,, ,” ‘C$f. ;’ ; .;:,.. . : x; ::i: : ,. ‘L’i .’ :.. i. y.;., i .;,;, i, .. .. :i, ;,.‘; w .: <.‘.. :;, ..% .’ ; ; ,::.,.;: I :.
So if quadruple density looks so great, why not use it all the time? Let’s try an experiment on your printer which will show just how the different density modes work. Using the “logo” program in this chapter, change line 60 to try each of the different modes. Just change the “CHR$(75)” to “g” + CHR$(l), “g” + CHR$(2), “g” + CHR$(3), “g” + CHR$(4), “g” + CHR$(S), “g” + CHR$(6) in turn for the STAR mode. (For the IBM mode, use “*” instead of “g”.) Your print outs should look something like this: .
Star’s engineers have given programmers a unique shortcut for program development though-double density double speed graphics. Although this mode requires just as much memory and computing time as double density, it prints at the same speed as normal density graphics. Amazing, you say? Well, it is-until you know the secret. Every other column of dots is ignored, so the output is actually the same as normal density graphics.
< ESC > “Z” nl n2 ml m2... Print quadruple density graphics (for IBM mode) < ESC > “g” n0 nl n2 ml m2... Master graphics selection (for STAR mode) < ESC > “*” n0 nl n2 ml m2...