IBM PC BASIC solutions

There are three problems in using the IBM Personal Computer BASIC to drive a printer. First, the IBM PC BASIC inserts a carriage- return/line-feed (CR-LINE FEED) after each 80 characters you send it. Second, it adds an LINE FEED to each CR in an LPRINT statement. Third, it will not send hex 1A (decimal 26).

Here is the way to adjust the width when it is the only problem. Tell the computer that the print line is wider than 80 characters with this WIDTH statement:

WIDTH "LPT1:",255

The 255 is a special number that prevents the computer system from inserting a CR-LINE FEED into the line. Unless, of course, there’s one in your program.

The extra line feed—CHR$(10)—that accompanies each carriage return—CHR$(13)—is no problem except when you need to use CHR$(13) in a graphics program. Getting rid of the extra CHR$(10) is rather complicated. First you open the printer as a random file:

OPEN "LPT1:" AS #1

Although this allows you to send any code to the printer, you can no longer use the LPRINT command. Instead, you must use a PRINT #l command:

PRINT #1, "Now I can print anything"

This does allow you to print anything, but it ignores any previous WIDTH statements.

If you want to print more than 80 columns per line in a graphics program, you must therefore change your opening statement to include the appropriate WIDTH statement:

OPEN "LPT1:" AS #1 : WIDTH #1, 255

And for the programs in this manual, don’t forget to use PRINT #l instead of LPRINT.

There is no easy solution to the problem with CHR$(26). It is best to change any instance of decimal 26 (hex 1A) in your programs to another number.

C-7