home *** CD-ROM | disk | FTP | other *** search
- Printing the PC's Extended Character Set
- (PC World February 1986 The Help Screen)
-
- GRAPHICS.COM must be run from DOS before Shift-PrtSc can print
- subsequent graphics screens. This does not solve the problem of
- printing graphics characters such as the double vertical line and
- other similar characters from the PC's extended character set. These
- characters are commonly used as borders around text. Using Shift-PrtSc
- to dump a screen containing these characters to an Epson FX-80 prints
- italic capital letters in place of the graphics characters.
- Editor's solution: You can "teach" the PC to display the PC's
- extended character set in graphics mode. If you're not inclined to
- do the necessary programming yourself, you'll need a utility. Or
- consider using GRAFTABL.COM, a utility included with DOS 3.0 and 3.1.
-
- -----------------------------------------------------------------
- Epson Mode Changing
- (PC Magazine Vol 5 No 8 Apr 29, 1986 Power User)
-
- Switching between draft and near-letter-quality (NLQ) modes on
- the new Epson LQ-1500 printer is cumbersome. One way is to go to the
- back panel and change the DIP switch settings. The print mode can be
- changed through software, but even that method can be awkward.
- NLQ.COM, created with DEBUG (see below), switches from draft to
- NLQ mode. The program works by using Interrupt 21h, Function 5h, to
- send printer control characters to the printer. Three calls to
- Interrupt 21h are needed, one for each byte in the control sequence
- (1Bh, 78h, and 01h) required to enable near letter quality on the
- LQ-1500.
- A similar command could be written for a different printer by
- using different printer control codes.
-
- A>debug
- -a
- xxxx:0100 MOV DL,1B
- xxxx:0102 MOV AH,05
- xxxx:0104 INT 21
- xxxx:0106 MOV DL,78
- xxxx:0108 MOV AH,05
- xxxx:010A INT 21
- xxxx:010C MOV DL,01
- xxxx:010E MOV AH,05
- xxxx:0110 INT 21
- xxxx:0112 INT 20
- xxxx:0114
- -R CX
- :14
- -N NLQ.COM
- -W
- Writing 014 bytes
- -Q
-
-
-
-
- More on Mode Changes
- (PC Magazine Vol 5 No 8 Apr 29, 1986 Power User)
-
- The DOS MODE command lets you configure options for the
- asynchronous communications adapter, the display, and the printer.
- For example, you can use it to set a printer into condensed (132-
- column) mode, but you usually have to refer to the DOS manual to be
- sure you have all the MODE options entered correctly. It would also
- be nice to have MODE set the printer into enhanced (darkened) mode
- printing.
- DARK.COM sets the printer to the "enhanced" mode of printing.
- SMALL.COM sets up the printer to print in condensed mode. Both can
- be created with DEBUG:
-
- A>debug
- -n dark.com
- -a
- xxxx:0100 MOV DL,1b
- xxxx:0102 MOV AH,05
- xxxx:0104 INT 21
- xxxx:0106 MOV DL,45
- xxxx:0108 MOV AH,05
- xxxx:010A INT 21
- xxxx:010C INT 20
- xxxx:010E
- -r cx
- CX 0000
- :e
- -w
- Writing 000E bytes
- -q
-
- A>debug
- -a
- xxxx:0100 MOV DL,0F
- xxxx:0102 MOV AH,05
- xxxx:0104 INT 21
- xxxx:0106 INT 20
- xxxx:0108
- -r cx
- CX 0000
- :8
- -n small.com
- -w
- Writing 0008 bytes
- -q
-
- Editor's Note: Many small printer-control .COM programs are useful --
- for a particular situation. You must be careful in using or modifying
- such programs, however. For example, in "Epson Mode Changing" above,
- NLQ.COM works only with IBM- or Epson-compatible dot matrix printers.
- Most other printers use a 2- or 3-byte code for condensed print, unlike
- the IBM/Epson design, which uses only one.
- If your printer has a lot of options (and associated control codes)
- that you use less frequently, a more general program can be very useful.
- Such a program would accept the printer control codes as data and send
- them to the printer right from the DOS prompt. PSET.COM takes in the
- decimal ASCII codes as part of the command line and sends them to your
- printer. PSET is slightly more complex and somewhat larger than
- single-purpose printer control programs. Its job is to scan the
- command line, looking for numeric characters that represent decimal
- ASCII codes. (Be careful when you use it, since it does not check
- for non-numeric characters -- if you enter them, you may get strange
- results on your printer.)
- As PSET finds each code (separated by blanks), it converts it to
- binary (internal) representation and pushes it on the stack. When the
- scan is done, the codes are popped off the stack and sent to the
- printer using Function 5h of DOS Interrupt 21h. A value of 1234h is
- pushed onto the stack at the beginning of the program for use as an
- "end-of-stack" indicator. Since PSET scans from the end of the command
- line to the beginning, the control codes will be sent to the printer in
- the correct order when they are popped off the stack.
-
- 100 'PSET.BAS: Program to create PSET.COM. From PC Magazine Vol 5
- 101 'No 8 April 29, 1986 Power User by Craig L. Stark.
- 110 CLS:PRINT "Checking DATA statements ..."
- 120 FOR B=1 TO 5
- 130 FOR C=1 TO 17
- 140 READ A$:IF C<17 THEN 160
- 150 Z#=Z#+VAL(A$)
- 160 NEXT:NEXT
- 170 IF Z#=8979 THEN RESTORE:GOTO 200
- 180 PRINT "Error: Check the last number in"
- 190 PRINT "each DATA statement; then redo."
- 200 FOR B=1 TO 5
- 210 FOR C=1 TO 16
- 220 READ A$:TTL=TTL+VAL("&H"+A$)
- 230 NEXT
- 240 READ S:IF S=TTL THEN 270
- 250 PRINT "DATA error in line ";B*10+330:END
- 270 TTL=0:NEXT:RESTORE
- 280 OPEN "PSET.COM" AS #1 LEN=1:FIELD #1,1 AS D$
- 290 FOR B=1 TO 5
- 300 FOR C=1 TO 16
- 310 READ A$:LSET D$=CHR$(VAL("&H"+A$))
- 320 PUT #1:NEXT:READ DUMMY$:NEXT:CLOSE
- 330 PRINT "PSET.COM created."
- 340 DATA BE,80,00,FC,AC,98,8B,C8,49,03,F1,FD,BA,34,12,E8,2291
- 350 DATA 2C,00,AC,3C,20,75,05,E8,24,00,E2,F6,2C,30,F6,E3,1735
- 360 DATA 02,D0,8A,C3,B3,0A,F6,E3,8A,D8,E2,E6,E8,0F,00,5A,2352
- 370 DATA 81,FA,34,12,74,06,B4,05,CD,21,EB,F3,CD,20,5B,52,1882
- 380 DATA 53,B3,01,33,D2,C3,00,00,00,00,00,00,00,00,00,00,719
-
- The easiest test for PSET.COM is to have it print a few ordinary
- characters (the program doesn't care that they're not control codes)
- and then issue a form feed to bring in a new page of paper. Try this:
-
- A>pset 80 67 32 77 97 103 97 122 105 110 101 13 12
-
-
- Once you've got this working, you can issue any printer control codes
- you want. For example, the following does the same thing as NLQ.COM:
-
- A>pset 27 120 1
-
- If you find that you use the same PSET command frequently, you could
- put it in a .BAT and continue to use PSET.
-
- -----------------------------------------------------------------
- PrtSc Feeding
- (PC Magazine Vol 5 No 10 May 27, 1986 User-to-User)
-
- The problem with doing a series of print screens is that every
- time one finishes you normally have to take the printer off-line, hit
- the form-feed button, then put the printer back on-line. PRTSCRFF.COM
- does that for you. Run PRTSCRFF.COM when you boot your computer, and
- all subsequent Shift-PrtSc's will be followed automatically by a form
- feed. PRTSCRFF simply calls the original BIOS print-screen routine
- (Interrupt 05h) and follows it up by sending a form feed to the
- printer. This is especially useful for the HP LaserJet printer. The
- LaserJet's standard print screen is held in a buffer until you take
- the printer off-line and press the form-feed button. With PRTSCRFF
- the page is automatically printed and fed through the system.
- Editor's Note: Since screens are 25 lines deep and printed pages
- a little more than twice that, if you don't have too many to print it's
- sometimes handy to run off two screens per page.
-
- 100 'PRTSCRFF.BAS
- 110 OPEN "PRTSCRFF.COM" AS #1 LEN=1:FIELD #1,1 AS D$
- 120 FOR A=1 TO 77:READ a$:LSET D$=CHR$(VAL("&H"+A$))
- 130 PUT #1:NEXT:CLOSE:PRINT "PRTSCRFF.COM created.":END
- 140 DATA EB,21,90,00,00,00,00,FB,1E,52,53,50,8C,CB,8E,DB
- 150 DATA 9C,2E,FF,1E,03,01,BA,00,00,B8,0C,00,CD,17,58,5B
- 160 DATA 5A,1F,CF,8C,CB,8E,DB,B0,05,B4,35,CD,21,2E,89,1E
- 170 DATA 03,01,2E,8C,06,05,01,8C,CB,8E,DB,BA,07,01,B0,05
- 180 DATA B4,25,CD,21,8C,CB,8E,DB,BA,23,01,CD,27
-
- -----------------------------------------------------------------
- Tackling a Switch Back
- (PC World May 1986 The Help Screen)
-
- If you have two printers and two parallel ports, SWAPLPTS.COM is
- a useful program for switching back and forth between printers. It
- merely swaps the port address values for LPT1 and LPT2. Running the
- program once causes output to be directed to LPT2; running it a second
- time causes output to be directed to LPT1.
- To create SWAPLPTS.COM, place a copy of DEBUG.COM in drive B: and
- a disk for saving the program in drive A:. At the A> prompt, enter:
-
- A>B:DEBUG
- -A
- xxxx:0100 MOV AX,40
- xxxx:0103 MOV DS,AX
- xxxx:0105 MOV BX,[8]
- xxxx:0109 MOV CX,[A]
- xxxx:010D MOV [8],CX
- xxxx:0111 MOV [A],BX
- xxxx:0115 INT 20
- xxxx:0117
- -R CX
- CX 0000
- :17
- -N A:SWAPLPTS.COM
- -W
- Writing 17 bytes
- -Q
-
-