IMD 1.16: 31/05/2007 19:50:25 FOGCPM.102 ååååååååååååååå--FOGCPM102ERGO1 COMERGO1 ASMML92SET COMNECSET ASM NECSET2 COM NECSET2 ASM OKI-TST BAS#OKI-TST DOCOKI92 COMFOKI92 DOCOKI92 PAS  OKITALICCOM !"OKITALICDOC#$%OKITALICASM,&'()*+PRINTER BASo,-./0123456789PRINTER DSC:PRISM132TXT€;<=>?@ABCDEFGHIJPRISM132TXT+KLMNOP-07-00 86 ¬PRO BASsQRSTUVWXYZ[\]^_PRO-BAS DOCP`abcdefghiPRO-ADDRBAS!jklmnPRO-ADDRDOCoPROPSPACDIAWpqrstuvwxyzPROWPINS {|}~PSETUP PAS€�PTR8023 COM‚PTR8023 ASM5ƒ„…†‡ˆ‰SETOK COMŠSETOK DOC‹ŒSETOK ASM0�Ž��‘’TALLY COM“”•TALLY AQMQ–—˜™š›œ�žŸ TYPE BAS ¡¢TYPE DOC£WSOKI DOC>¤¥¦§¨©ª«-CPM102 DOC#­®¯°±ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååThis is the disk name. åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå: ÍÿÍþÊþ1Êþ4Ê(þ2Ê3þ5ÊFþ3ÊYþ6Êlþ0Êà HUSH 80 printer pgm Version 1.0 1 for Condensed 2 for Expanded 3 for Inverse 4 for Condensed off 5 for Expanded off 6 for Inverse off 0 to Reset to defaults ^C to Exit Make Selection :$ͦÃÍ ±Í�Í ÌÍ�͘WÍ 1Í éÍ�͘WÍ 0Í Í�͘IÍ 1Í Í�͘IÍ 0Í 6Í�͘@Í RÍ� ÍͦÃÍÉÍɯ ÍÉ$ condensed print selected$ condensed print deselected$ expanded print selected$ expanded print selected$ inverse print selected$ inverse print delselected$ printer default reset$åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå TITLE 'ERGO ergo printer mode pgm' ; ; The ergo hush 80 printer program this ; program sets the hush 80 print modes ; it is not for sale but can be shared ; as long as a profit is not made on it ; ; copyright 1985 Troy Soult ; P.O. Box 620340 ; Woodside,Ca. ; 94062 ; ; the equate table bdos equ 05h boot equ 00h prnt equ 05h scrn equ 09h cr equ 0DH lf equ 0ah reset equ '@' esc equ 1bh ; ; the start of the program org 0100h ; The begining of TPA lxi d,menu ; location of the menu call print ; Print it to screen input: mvi c,06h ; the direct I/O call mvi e,0ffh ; to get char's from call bdos ; the keyboard. cpi 03 ; compare for ^c jz quit ; if got exit the pgm cpi 31h ; is it a "1" then jz conon ; set printer for condensed cpi 34h ; is it a "4" then jz conoff ; turn off condensed cpi 32h ; is it a "2" then jz expon ; turn expanded print cpi 35h ; is it a "5" then jz expoff ; turn off expanded cpi 33h ; is it a "3" then jz invon ; turn on inversed cpi 36h ; is it a "6" then jz invoff ; turn off inversed cpi 30h ; is it a "0" then jz resetp ; reset the printer jmp input ; nothing try again ; menu: db 1ah,lf,lf,cr ; the main menu db ' HUSH 80 printer pgm'; that is displayed db lf,cr,' Version 1.0' db lf,lf,lf,cr ; at the signon db '1 for Condensed' db cr,lf db '2 for Expanded' db cr,lf db '3 for Inverse' db cr,lf db '4 for Condensed off' db cr,lf db '5 for Expanded off' db cr,lf db '6 for Inverse off' db cr,lf db '0 to Reset to defaults' db cr,lf,lf db ' ^C to Exit' db cr,lf db cr,lf,lf db lf,' Make Selection :' db '$' quit: call clrscrn ; the exit routine jmp 0000h ; conon: mvi e,0fh ; the condensed mode call print ; selection routine lxi d,conmsg call shwmsg ; conoff: mvi e,12h ;the routine to turn call print ;to turn it off (condensed) lxi d,coffmsg call shwmsg ; expon: call escape ; escape routine mvi e,57h ; load a "w" to printer call print ; print it mvi e,31h ; now a "1" call print ; print it too lxi d,eonmsg ; now load msg call shwmsg ; print it ; expoff: call escape mvi e,57h call print mvi e,30h call print lxi d,eoffmsg call shwmsg invon: call escape mvi e,'I' call print mvi e,31h call print lxi d,ionmsg call shwmsg invoff: call escape mvi e,'I' call print mvi e,30h call print lxi d,ioffmsg call shwmsg resetp: call escape mvi e,'@' call print lxi d,rstmsg call shwmsg shwmsg: mvi c,scrn ; the rountine to show call bdos ; messages to the screen call clrscrn jmp boot escape: mvi e,esc ; send a escape to the printer mvi c,prnt call bdos ret print: mvi c,prnt ; sends the char in "e" call bdos ; to the printer ret clrscrn:lxi d,clear ; this clears the screen mvi c,9 ; and exits call bdos ret clear: db 1ah,'$' ; conmsg: db lf,cr,'condensed print selected','$' ;the following are ; coffmsg:db lf,cr,'condensed print deselected','$' ; the messages used for ; eonmsg: db lf,cr,'expanded print selected','$' ; identifing the selection ; eoffmsg:db lf,cr,'expanded print selected','$' ; ionmsg: db lf,cr,'inverse print selected','$' ; ioffmsg:db lf,cr,'inverse print delselected','$' ; rstmsg: db lf,cr,'printer default reset','$' ; end msg invoff: call escape mvi e,'I' call print mvi e,30h call print lxi d,ioffmsg call shwmsg resetp: call escape mvi e,'@' call print lxi d,rstmsg call shwmsg shwmsg: mvi c,scrn ; the rountine to show call bdos ; messages to the screen call clrscrn jmp boot escape: mvi e,esc ; send a escape to the printer mvi c,prnt call bdos ret print: mvi c,prnt ; sends the char in "e" call bdos ; to the printer ret clrscrn:lxi d,clear ; this clears the screen mvi c,9 ; and exits call bdos ret clear: db 1ah,'$' ; conmsg: db lf,cr,'condensed print selected','$' ;the following are ; coffÃ*1068 $ OKIDATA Printer options v1.3 APR 1983 0 = Correspondence mode 1 = 10 CPI 2 = 17 CPI 3 = Double Width Characters 4 = 12 CPI 5 = Data processing mode 6 = 6 LPI 7 = Launch Tomahawk Cruise Missle 8 = 8 LPI Select: $á"„1Î͆͘þ0!Ê�þ1!Ê�þ2!Ê�þ3! Ê�þ4!Ê�þ5! Ê�þ6!Ê�þ8!Ê�Ã7͘ÃÍæþÊ}þ Ê}É Ã~·Ê7å_Íá#Ã�åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå; PROGRAM NECSET.ASM ; ; WRITTEN BY KENT WALKER ; OCTOBER, 1982 ; ; 8080 ASSEMBLER CODE ; USING CP/M BDOS FUNCTIONS ; ; THIS PROGRAM IS DESIGNED ; TO SET THE ; >>>>>>>>NEC-8023A-C<<<<<<<< ; PRINTER PARAMETERS ; VIA KEYBOARD INPUT. ; ; A TABLE OF OPTIONS IS PRESENTED ON THE MONITOR. ; INPUT IS TERMINATED BY A CARRIAGE RETURN. ; INPUT CHARACTERS MUST BE IN UPPER CASE. ; ORG 100H BDOS EQU 0005H INCHR EQU 1 ;KEYBOARD INPUT FUNCTION LSTCHR EQU 5 ;CHARACTER TO LIST DEVICE FUNCTION CR EQU 000DH ;CARRIAGE RETURN LF EQU 000AH ;LINE FEED TAB EQU 0009H ;TAB CHARACTER CLRSCR EQU 001AH ;CLEAR SCREEN - CTRL Z - OSBORNE & TELEVIDEO ESC EQU 001BH ;ESCAPE CODE SO EQU 000EH ;SOCODE SI EQU 000FH ;SI CODE PRSTR EQU 9 ;PRINT STRING FUNCTION BOOT EQU 0 ;WARM BOOT ; LXI SP,STACK ;SET UP STACK LXI D,MESAGE ;POINT TO MESSAGE MVI C,PRSTR ;STRING PRINT FUNCTION CALL BDOS ; LOOP MVI C,INCHR CALL BDOS CPI CR ;CARRIAGE RETURN ENDS INPUT JZ BOOT ; LXI H,PICA ;TEST FOR 'B' CPI 'B' JZ LIST ; LXI H,ELITE ;TEST FOR 'C' CPI 'C' JZ LIST ; LXI H,MICRON ;TEST FOR 'D' CPI 'D' JZ LIST ; LXI H,PROP ;TEST FOR 'P' CPI 'P' JZ LIST ; LXI H,EMPH ;TEST FOR 'E' CPI 'E' JZ LIST ; LXI H,NOEMPH ;TEST FOR 'F' CPI 'F' JZ LIST ; LXI H,DBLWD ;TEST FOR '2' CPI '2' JZ LIST ; LXI H,SNGLWD ;TEST FOR '1' CPI '1' JZ LIST ; LXI H,SIXLPI ;TEST FOR '6' CPI '6' JZ LIST ; LXI H,EITLPI ;TEST FOR '8' CPI '8' JZ LIST ; JMP LOOP ; ; ; SUBROUTINE TO OUTPUT ESCAPE CODE TO PRINTER ; LIST MOV E,M ;MOVE CHAR TO REG E PUSH H ;SAVE STRING POINTER MVI C,LSTCHR ;SET UP FOR LINE PRINTER CALL BDOS ;PRINT CHARACTER POP H ;RESTORE STRING POINTER INX H ;POINT TO NEXT CHAR MOV A,M ;MOVE NEXT CHAR TO REG A CPI '$' ;IS IT THE TERMINATOR ($) ? JZ LOOP ;RETURN IF YES JMP LIST ;ELSE REPEAT ; ; END OF SUBROUTINE ; ; ; MESSAGES ; MESAGE DB CLRSCR,TAB,'NEC-8023 PRINTER FUNCTIONS',CR,LF,LF DB TAB,'B = 10 CHARACTERS PER INCH',CR,LF DB TAB,'C = 12 CHARACTERS PER INCH',CR,LF DB TAB,'D = 17 CHATACTERS PER INCH',CR,LF DB TAB,'P = PROPORTIONAL SPACING' ,CR,LF,LF DB TAB,'E = EMPHASIZED PRINT' ,CR,LF DB TAB,'F = NON-EMPHASIZED PRINT' ,CR,LF,LF DB TAB,'2 = DOUBLE WIDTH PRINT' ,CR,LF DB TAB,'1 = SINGLE WIDTH PRINT' ,CR,LF,LF DB TAB,'6 = 6 LINES PER INCH' ,CR,LF DB TAB,'8 = 8 LINES PER INCH' ,CR,LF,LF DB '$' ; ; TABLE OF PRINTER ESCAPE CODES ; PICA DB ESC,'N$' ELITE DB ESC,'E$' MICRON DB ESC,'Q$' PROP DB ESC,'P$' EMPH DB ESC,'!$' NOEMPH DB ESC,'"$' DBLWD DB SO, '$' SNGLWD DB SI, '$' SIXLPI DB ESC,'A$' EITLPI DB ESC,'B$' ; ; STACK AREA ; DS 10H STACK ; END G A CPI '$' ;IS IT THE TERMINATOR ($) ? JZ LOOP ;RETURN IF YES JMP LIST ;ELSE REPEAT ; ; END OF SUBROUTINE ; ; ; MESSAGES ; MESAGE DB CLRSCR,TAB,'NEC-8023 PRINTER FUNCTIONS',CR,LF,LF DB TAB,'B = 10 CHARACTERS PER INCH',CR,LF DB TAB,'C = 1¼4 ÍÍþÊ_ÕÍÑ{þ . Íà $ NEC-8023 PRINTER FUNCTIONS [r.d.arkush, 11/84] N = Pica (10 characters per inch) E = Elite (12 characters per inch) P = Proportional type Q = Condensed (17 characters per inch) ! = Enhanced print " = Non-enhanced ^N = Double width characters ^O = Normal " " Lnnn = Left margin at nnn (e.g., L008 for 8 spaces in) A = 6 Lines per inch (normal) line spacing B = 8 Lines per inch line spacing Tnn = Line height of nn/144s of an inch Be sure to use capitals where indicated. Turn on printer. Press ^C to quit. ==> $åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå; NECSET.ASM ; by david arkush, 11/84 ; ; PROGRAM TO SET A NEC-8023 OR C.ITOH ; PROWRITER PRINTER VIA KEYBOARD INPUT. ; ; INPUT IS TERMINATED BY A CARRIAGE RETURN. ; ORG 100H BDOS EQU 0005H CR EQU 000DH ;CARRIAGE RETURN LF EQU 000AH ;LINE FEED TAB EQU 0009H ;TAB CHARACTER CLRSCR EQU 001AH ;CLEAR SCREEN - CTRL Z ; LXI SP,STACK ;SET UP STACK LXI D,MESSAGE ;POINT TO MESSAGE MVI C,9 ;PRINT STRING FUNCTION CALL BDOS ; LOOP MVI C,1 ;CONSOLE INPUT FUNCTION CALL BDOS ;GET CHARACTER CPI 3 ;TEST FOR ^C JZ 0 ;IF YES, QUIT MOV E,A ;ELSE MOVE IT TO E PUSH D ;SAVE IT MVI C,5 ;SEND TO PRINTER CALL BDOS ; POP D ;GET IT BACK MOV A,E CPI 01BH ;TEST FOR ESC. JNZ LOOP ;IF NOT, GET ANOTHER CHAR. ; LXI D,ESCMSG ;IF YES, ECHO ESCMSG TO SCREEN MVI C,9 ;PRINT STRING FUNCTION CALL BDOS JMP LOOP ESCMSG DB '$' ; MESSAGE DB CLRSCR,TAB,'NEC-8023 PRINTER FUNCTIONS',TAB,TAB,'[r.d.arkush, 11/84]',CR,LF,LF DB 'N = Pica (10 characters per inch)',CR,LF DB 'E = Elite (12 characters per inch)',CR,LF DB 'P = Proportional type' ,CR,LF DB 'Q = Condensed (17 characters per inch)',CR,LF,LF DB '! = Enhanced print' ,CR,LF DB '" = Non-enhanced' ,CR,LF DB ' ^N = Double width characters',CR,LF DB ' ^O = Normal " "' ,CR,LF,LF DB 'Lnnn = Left margin at nnn (e.g., L008 for 8 spaces in)',CR,LF DB 'A = 6 Lines per inch (normal) line spacing',CR,LF DB 'B = 8 Lines per inch line spacing',CR,LF DB 'Tnn = Line height of nn/144s of an inch',CR,LF,LF DB TAB,'Be sure to use capitals where indicated.',CR,LF DB TAB,'Turn on printer.',CR,LF DB TAB,'Press ^C to quit.',CR,LF,LF DB '==> $' ; ; STACK AREA ; DS 10H STACK ; END TAB,'Turn on printer.',CR,LF DB TAB,'Press ^C to quit.',CR,LF,LF DB '==> $' ; ; STACK AREA ; DS CLRSCR,TAB,'NEC-8023 PRINTER FUNCTIONS',TAB,TAB,'[r.d.arkush, 11/84]',CR,LF,LF DB 'N = Pica (10 characters per inch)',10 REM PROGRAM NAME IS OKI-TST by Terry Whalin 20 PRINT CHR$(26) 30 PRINT:PRINT:PRINT " OKIDATA TESTING PROGRAM ":PRINT:PRINT 40 PRINT "This program tests the various print features of " 50 PRINT "the Okidata Microline 92 and 93 printers. The " 60 PRINT "various type possibilities will print on your " 70 PRINT "Okidata only if the printer is properly hooked " 80 PRINT "up and turned on. The basic information for this " 90 PRINT "program is taken from Okidata manual Chapter 4 " 100 PRINT "entitled 'Bells and Whistles' pages 63-89. " 110 PRINT 120 PRINT "NOTE The program is designed to pause for adding " 130 PRINT "another sheet of paper but works faster with two " 140 PRINT "connected pages of fan fold computer paper." 150 PRINT "Good testing!" 160 PRINT 170 PRINT 180 PRINT "PLEASE TURN ON YOUR PRINTER & PRESS ANY KEY TO BEGIN" 190 Y$=INPUT$(1) 200 LPRINT CHR$(30);"HELLO! This is normal printing" 210 LPRINT CHR$(31);"HELLO! This is double the normal width." 220 LPRINT 230 LPRINT 240 LPRINT CHR$(30);"Here is an example of various character sizes." 250 LPRINT 260 LPRINT "PICA pica 10 CPI" 270 LPRINT CHR$(28);"ELITE elite 12 CPI" 280 LPRINT CHR$(29);"CONDENSED condensed 17.1 CPI" 290 LPRINT CHR$(30);"PICA again" 300 LPRINT CHR$(31);"DOUBLE Pica" 310 LPRINT CHR$(28);CHR$(31);"DOUBLE Elite" 320 LPRINT CHR$(29);CHR$(31);"DOUBLE Condensed" 330 LPRINT CHR$(30);"Pica ";CHR$(28);"Elite ";CHR$(29);"Condensed ";CHR$(30);"Pica again" 340 LPRINT 350 LPRINT CHR$(27);CHR$(49);"Correspondence Quality printing" 360 LPRINT 370 LPRINT "PICA pica 10 CPI" 380 LPRINT CHR$(28);"ELITE elite 12 CPI" 390 LPRINT CHR$(29);"CONDENSED condensed 17.1 CPI" 400 LPRINT CHR$(30);"PICA again" 410 LPRINT CHR$(31);"DOUBLE Pica" 420 LPRINT CHR$(28);CHR$(31);"DOUBLE Elite" 430 LPRINT CHR$(29);CHR$(31);"DOUBLE condensed" 440 LPRINT CHR$(30);"Pica ";CHR$(28);"Elite ";CHR$(29);"Condensed ";CHR$(30);"Pica again" 450 LPRINT 460 LPRINT CHR$(27);CHR$(48);"Data Processing" 470 LPRINT 480 LPRINT "PICA pica 10 CPI" 490 LPRINT CHR$(28);"ELITE elite 12 CPI" 500 LPRINT CHR$(29);"CONDENSED ondensed 17.1 CPI" 510 LPRINT CHR$(30);"PICA again" 520 LPRINT CHR$(31);"DOUBLE Pica" 530 LPRINT CHR$(28);CHR$(31);"DOUBLE Elite" 540 LPRINT CHR$(29);CHR$(31);"DOUBLE Condensed" 550 LPRINT CHR$(30);"Pica ";CHR$(28);"Elite ";CHR$(29);"Condensed ";CHR$(30);"Pica again" 560 LPRINT 570 LPRINT CHR$(27);CHR$(49);"Character spacing (Correspondence quality only)" 580 LPRINT "NORMAL SPACING - 3/120 IN." 590 LPRINT CHR$(27);CHR$(78);CHR$(11); 600 LPRINT "SPACING 14/120 IN." 610 LPRINT CHR$(27);CHR$(78);CHR$(0); 620 LPRINT "NORMAL SPACING AGAIN" 630 LPRINT CHR$(27);CHR$(48); "Back to Data processing" 640 LPRINT 650 LPRINT "The following is to test line spacing:" 660 LPRINT CHR$(27);"1" 670 FOR I=1 TO 6 680 LPRINT "6 lines per inch" 690 NEXT I 700 LPRINT CHR$(27);"8" 710 FOR J=1 TO 8 720 LPRINT "8 lines per inch" 730 NEXT J 740 PRINT CHR$(26):PRINT:PRINT 750 INPUT "Clean sheet of paper in position (Y or N) ";N$ 760 IF N$="Y" THEN GOTO 800 770 IF N$="y" THEN GOTO 800 780 IF N$="N" THEN GOTO 750 790 IF N$="n" THEN GOTO 750 800 FOR K=0 TO 15 810 LPRINT CHR$(27); "%9";CHR$(K); 820 LPRINT "variable line spacing" 830 NEXT K 840 LPRINT CHR$(27);"6" 850 LPRINT "Return to 6 lines per inch" 860 LPRINT "6 lines per inch" 870 LPRINT 880 LPRINT CHR$(27);CHR$(48); "EMPHASIZED and ENHANCED print" 890 LPRINT "only in the Data mode ":LPRINT 900 LPRINT "The word ";CHR$(27);CHR$(84);"Emphasized ";CHR$(27);CHR$(73);"is in emphasized print." 910 LPRINT CHR$(27);CHR$(84);"This whole like is emphasized.";CHR$(27);CHR$(73) 920 LPRINT "The word ";CHR$(27);CHR$(72);"enhanced ";CHR$(27);CHR$(73);"is enhanced print." 930 LPRINT CHR$(27);CHR$(84);CHR$(27);CHR$(72);"Emphasized and Enhanced together,";CHR$(27);CHR$(73);"normal" 940 LPRINT 950 LPRINT "UNDERLINING" 960 LPRINT 970 LPRINT "Start ";CHR$(27);CHR$(67);"underlined printing";CHR$(27);CHR$(68); " stop" 980 LPRINT 990 LPRINT "SUPERSCRIPTS & SUBSCRIPTS":LPRINT 1000 LPRINT "OKIGRAPH";CHR$(27);CHR$(74);"tm";CHR$(27);CHR$(76);" H";CHR$(27);CHR$(76);"2";CHR$(27);CHR$(74);"0" 1010 LPRINT 1020 LPRINT "DIRECT LINE SKIP" 1030 LPRINT "FIRST LINE"; 1040 LPRINT CHR$(27);CHR$(11);"05";"SKIPPED FIVE LINES" 1050 LPRINT 1060 END "DIRECT LINE SKIP" 1030 LPRINT "FIRST LINE"; 1040 LPRINT CHR$(27);CHR$(11);"05";"SKIPPED FIVE LINES" 105ED and ENHANCED print" 890 LPRINT "only in the Data mode ":LPRINT 900 LPRINT "The word ";CHR$(27);CHR$(84);"Emphasized ";CHR$(27);CHR$(73);"is in emphasized print." 910 LPRINT CHR$(27);CHR$(84);"This whole like is emphasized.";CHR$(27);CHR$(73) 920 LPRINT "The word ";CHR$(27);CHR$(72);"enhanced ";CHR$(27);CHR$(73);"is enhanced print." 930 LPRINT CHR$(27);CHR$(84);CHR$(27);CHR$(72);"Emphasized and Enhanced together,";CHR$(27);CHR$(73);"normal" 940 LPRINT 950 LPRINT "UNDERLINING" 960 LPRINT 970 LPRINT "Start ";CHR$(27);CHR$(67);"underlined printing";CHR$(27);CHR$(68); " stop" 980 LPRINT 990 LPRINT "SUPERSCRIPTS & SUBSCRIPTS DOCUMENTATION FOR OKI-TST.BAS by W. Terry Whalin Thió  prograí testó thå variouó prinô featureó  oæ � thå  Okidatá Microlinå 9² anä 9³ printers®  Thå � variouó  typå possibilitieó wilì prinô oî  youò � Okidatá onlù iæ thå printeò ió properlù hookeä uð � anä  turneä  on®  Thå basiã informatioî  foò  thió � prograí ió takeî froí Okidatá manuaì Chapteò ´ entitled 'Bells and Whistles' pages 63-89. NOTÅ  Thå prograí ió designeä tï pauså foò  addinç � anotheò  sheeô oæ papeò buô workó fasteò witè  twï � connecteä pageó oæ faî folä computeò paper. Good testing! ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååÃâ Í«Copyright (C) 1985 BORLAND Inc¡B Osborne 1al selectedP)(= ERT()~·7È#õå~Íèáñ=ÈóÍ ÉoåͦÉþ€ÜkÔ„æîå!îå!è"áãõÅÕ~#·(åÍèáôÑÁñãÉ}´È:$‡‡‡ããããÅÒÁ= ô+èÍÐØ*ÎßõÅÕå!¨Í5!¢ÍÐ*ºÔáÑÁñÉõÅÕå!´éõÅÕå!®àõ:à·(ÅÕå¯2à!ÈÍ5áÑÁñÉõ:àþÿ(öÅÕå>ÿ2à!ÂãõÅÕå!¼ÚõÅÕååð!‹í°Ñ:žO:œ‚ÕÍÜÑ:ŸO:�ƒÍÜ!ðÍÐ* ÍáÑÁñÉ!ð ë!›45(É! +/ –0ü†õyþ0(ñíÉ d!kÃ5!{Ã5Í_æÍ_o&Éô  áÁå:Ý·(ÕÅÍ |µ(Íáþ ÍáþÊÔ ÁÑ*é"Òx2Ýy·( >Ã28!û"9!¥ í°!½¸ í°¯og2Ð"Ô"Ö>~2Ñ2àÉÃà Ã9Ã/Ã4Ã*Ã9à Á‚CÄÅÁÅÕåÝåýåõo&åͦñýáÝááÑÁÉÅÕåÝåýåÍ£}ëÿ í[Òþ (ú!eÍ{ͦþA8þQ0Gþ: xÖ@¯!\w# (Í‚ þ?(þ*( þ.( ÍwÍ^þ. Í^!h6#ûÉ (þ?( þ*( Í‚( w#éÉ>?> w#üÉͦþ 8 åÅ!˜í±ÁáÉ¿É .,;:=?*[]<>{}þaØþ{ÐÖ É|Í´}õͽñæÆ�'Î@'Ãɯ7Ë|À|·}È>ÿÉ2ØÅͯÁ*·íBÚ¨ ëÑùü "Ưog"Î2Ü>Ã2Ù!Þ "Úë"Ìéå*Æ·íB"Æí[Ä·íRëáÚuí°É*Æí°"ÆÙÉ^#V#Õ^#V#N#FáÉÝáëO/o&ÿ9ùëí°ÝéÑO/o&ÿ9ùëí°éÝáë!àÿ9ùëÅ(¯üí°Á> �‘(G¯üÝéÝá!àÿ9ù ¯w#üÝéÝáEͺ¶wÝéÝáÑ}“8÷�Ã' ·íR·íB0 É>‘Ã' ·íRëêqðøÉÕë·íRëáë·íR!È+ÉÍß õͰ ð·íR!À+ÉÍß õͰ ðÍr!Ð+ÉÍß õͰ ðÍr!ÈØ+ÉÍß ôͰ ïÍr!ÈØ#ÉÍß ôͰ ïÍr!Ø+ÉÍß õͰ ðT]KBë!z·> S>)ë)ë0 = öÉ|µÊ |ªõÍ€ëÍ€ëDM¯go>íjíB0 7?ËË= ðëñðHåÍ’Ë<ËÑëÍëËzÈ5ÍaÈ)ýÉÍaÈË<ËúÉëz· {þ0G·É¯goÉë|ª|ú~ºÀ}»ÉÉË|È|/g}/o#É}æo&ÉíKÊí[ÈÅÕxAJSËËËËáëáíJDM!éb"Èë!6íJ"ÊDMÉ'ÍâèÍâdÍâ Íâ} ¯<íR0û= ÈÆ0ÝwÝ#ÉÝ~Ö$O! Ý#Ý~ͦÖ08)þ 8 !Öþ 8þ0T])Ø)Ø T]Ø)Ø_ØËy·È|‡ÉÝááå}&#9N�8wë!DíB9ùëåí°ëá+Oí¸ë#ùÝé>Ã) ÝáÍÈWáÍÝ _áå}“8(º8J`9{‚T]=o`9yí¸ë ¯Ã) Í Ð>Ã' Í� õͬÍ— íÙ}·Ù>Ê' Íõ ßÙËxÙˆ Ù}·ÙÈÙÅÕåÙ}· Ù˸TÅËø¯ÙËø}Ù•(0íD=ÙÍz ,= ù(Ùñæ€ Í’ 0%Í{ ·, 7 ÍÆ ?õ(8Ùͬ Ëx ͆ - öÍr ñ8˸·ÙáÑÁÙÉÙËxÙ Í� Í Ø,-Èxî€GÉÙ}·ÙÊr }·ÈÙ…ÙÍM ÅÕåÝ9Ír Ù.Ù>Ý#ÝnË0Í’ Í{ = ñÙ-Ù åÝnûËx ͇ ,-(-ñññ·ñÙÁáÙÝá˸°G,-Ìr É}·ÈÙ•Ù?ÍM åååÝ9Ù.Ù>ÍÆ 8ͬ ?Ë= ÝuÝ+Ù-Ù(>͆ 0ßͬ ·á͆ 8ÍÆ ?áÑÁËx ͇ š, —7•8Æ€8Æ€8oÝãÙåÅxËøÙ¨æ€õËøÝåÝ!ÉáØ¯oGOW_gÉ·ËËËËËÉ·ËËËËËÉ|Ù„Ùg{Ù‹Ù_zÙŠÙWyÙ‰ÙOxÙˆÙGÉ|Ù”Ùg{Ù›Ù_zÙšÙWyÙ™ÙOxÙ˜ÙGÉxÙ¸ÙÀyÙ¹ÙÀzÙºÙÀ{Ù»ÙÀ|Ù¼ÙÉÙxÙ¨òé xÉËx(Íó È?É}Ù½ÙÀ·ÈÃÆ }Ö�Úr <þ(ÐÙÅÕåÍr 7Í{ = ùÙ|Ù¤Ùg{Ù£Ù_zÙ¢ÙWyÙ¡ÙOxÙ ÙGÃ{ ÙÅÕåÙͬÙÍý ÙÍ� ë}·ÈËx>Â' ͬ}Æ€Ë/Æ€oÖõÙÅÕåÍõ Í -ÅÕåÍ� }áÑÁÙáÑÁã¼ã0ãñÙÉÙÍŽ-Í� ÙÍŽ,Ù}þlØÅ˸Íß Á8 Íõ Í4 Í— Ëx(Í Ù-ÙÍß õ8Í� Ù-ÙÍß 8Ù,Í� }þl8;Ùª*ªª!ªÍ— ÝåÝ! >Í4ÝáͬÍ— Í— ÅÕåÙͬ--Ù-Í ÙáÑÁÙÍ� ,,ñ,-ÈØxî€GÉgª?+2×n¶*ï8t Ð Ðzˆˆˆˆ~«ªªªª,->Ê' ËxÂ' Ù͘Ù}.�•õÍõ Ù͆ÙÍ� ÅÕåÙ,Í ÙáÑÁÍõ ÝåÝ!Œ >Í4Ýá,ÙÍ¢-ÙÍ ñÅÕåo&0%ÍÙ,Í— ÙáÑÁÍ }þgÚr É}Š�؉}颋.:}Žã8Žc~I’$I~ÍÌÌÌL«ªªª*ÙÍ¢Ù·Ëxõ˸Íõ }þˆ0GÅÕå,ÍÐåË<Ë}áõÍ,-(-ÙñáÑÁõÍ� ÝåÝ!>ÍIÝáñ0 õÙ͘ÙÍ— ñ…o8 ñÈÙ͆Ãõ á>Ã' m.`1pF,þåt6|‰„!wS<ÿÃ.zÒ}[•|%¸FXc~üïýu€Ò÷r1}·ÈÝåÙ͆Ù¯Ëx(<˸õÍß 8ÙÍõ ñËÿõÙÏŽé!~JÙÍß 0Í.OÝ!Î>ÙÝÍsÙÍß 8 = ìÙ ÝÙÙÍnËøÍ ÅÕåÍsÍ— Ù͆Í ÙáÑÁÍõ ÝåÍ.ÝáÙÍnÍ ñ0 õÙÍŽ-Í� ñÝáËOÈËøÉçÏÌTöô¢0 jÁ‘ €µžŠoD€‚,:Í€jÁ‘ �€!¢ÚI}袋.º}Žã8Žc~I’$I’~ÍÌÌÌL«ªªªªÝ! >ÅÕåõͬÍ— ñÍIÙáÑÁ× õÙÍnõÙÅÕåÍnÍ ÙáÑÁÙÍ— ñ= éÙ͆à ÝÝnÝfÝ^ÝVÝNÝFÉ!�DLT\ÉI¢Ú!‚!É53ó!�úÉr1÷!€ÒÉÅÕåÙáÑÁÉÍ’!€> Ëx Ë#ËËË-= ðo˸ÉËxÙ͆(Ëø-Í ·Ë}(ËxËø>�½8(Íz ,óÍz `iÈÃ!É>’Ã' |µÊr Ë|Í€>�)=Ë|(úDMboÀ˸ÉÍÈë8þ8ÍÈÙËxÙ(’0¯þ 8> ÕÍ€ÑËx(>-ÍåË{(aËy(ÍãÍÙ ò�z·(>.Íå (Íã ÷ú±ÍÙ÷Ë{È>EÍå>+Ë|(|íDg>-Íå|/Ö 0ûÆ:ÝpÝ# ý~ý#· ý+>0ÝwÝ#Éýå,-  ý60ý#ø¯Ã}Å˸}ÙÖ€oŸgMÍõ|þÙ <ýwíDÍ@}þ�0ͳý5Ëø>„•.(Íz Ë= øý~õ> xæÆ0ýwý#xæGÅÕåË%͇ Ë%͇ ëãÑãíZëáãíJDMáË%͇ = ÈñÁýáÉýåá_~6þ5Øúœ+~¨¥Ôh¶¿ÉìÅëx-ÐÍÎÂSÞùx9?ë+¨­ÅøÉ{Η@}·ÈËøÅÕ|Íz Íz „gãíZëáãíJDMá0Í{ ,7È}Æo˸ÉÍ?¾ #øyîO!@9ùi&ÝéÍ? ë¶¾ â#÷ÚÍ?¶w#ùëùÝéÍ?/¦w#øïÍ?¦w#ùãýáÝá!9ë! E9ýéÝá!!9~·(¯+Fͺ¦!"9ù!(#Ýé>¯2èýá*ÒÍâ¯á"âýå|· >"2ÐÉ:è·( Ͷ *âwÉÍò*â6 ë!\$í°É!æÅåí[Òþ (úͦ–( áÁã·É#ëÁÁþ:À~ÉCONÁTRMÁKBD‚LSTCAUXÄUSRÅ>¯2èÍi:зÀ*âË®~æÀÍ0:зÀ*â:è·€€(@q##pÉÍZ*â ë:è·( ÕÍÑñÅÍÁ<Àx2ÐÉ*â6#ûÉ"â~æÀËv( >ÍÆÍ Ë~È*âå ëÍá< >ÿ2Ð6Éã"äãå!Â"âáÉã"äã"âË~À>2ÐÉã"äã"âËvÀ>2ÐÉ>¯ã"äãå!Â"âË®õÍèñ·(ÍááÉ!Ñ~þ8>~O6~*Ò"ÔÍáwþ(6þ(2þ(-þ()þ(6þ (8þ 0þ Ù:Ý·(ÓÝ*äà yº(È~#ÍÉÀúý+Í (±ï(« 6Íá6 #6 #"ÖÉ*â:з y~Ëo pæ .##~·ò—åͺá(å.6á¯w4Æ._~þ =*â##55= *Ôí[Ö·íR8ÿÍê*Ô~#"Ô= Í£}== ͯ}͵}*âËî#w+É#~+É>Éå*â~æþ('Íkþ!0þ(Ë®ñ]ÅÕÍkÑÁþ!8Ë®ï¯áÉÝ!]Ý~·Èþ-ÀÝ#É8Ý~·È>2Ð7ÉåÍkË®áwÉ>¯OÅÍðÁÍ$ÈÅåÍ÷ÑÁÍ6Ø̃ës #rëÉÍðÍ$ÈÅåÍ£ÙáÁÍ6ØÙÌ� ÙÃÑåëÅÕÍkÑÁþ ( þ(Ë® êáqÉÍkþ(Ë®þ ( þ ïÍkþ Ë®É*âO:зÀ~æ ##å~Æ._qá4ð(þ(áÅå=ʦ==Ê©=ʬò*è:ê¾È4^qÉ*â##~·È6ͺÈ>ð2ÐÉ}ÃÆÁÑÅÝ*ÒË|(̓ëëË|( ̓Ý6-Ý#ÕÍÆáÍÈí[ÒÝåá·íRMë‘8( Gå> ÅÍÆÁ÷áAÈ~ÅåÍÆáÁ#óÁÑÙáÑÁÙÅÝ*ÒÕÍ'¾ÁÑÅÍÈËC!¡ ¿!¥¸TRUEFALSEÍÈ!9N#ÍYÑùÕÉá~#·( G~ÅåÍÆáÁ#õé> ÍÆ> ÃÆ   "âË~(ÕÍkÑ»(þ( þ!0 (Ë®è!É!É>¯2èíSæÍz:зÀÍ0:зÀ*â6Ð##ww#w$w#wÖÿ:è· å¯Í á##N#F*æ·íBÈ>�2ÐÉå¯w#w#í[æs#rá>à "â~æÀÈÍ®*â-¯w#wÔÿw##>Í Í®Ã�ã"äã"â~æÀÀ>2ÐÉ:зÀåÍZë·íRá0¯Í *â4À#4É>™2ÐÉ:зÀåÍZ·íR> *â4 #4(>áÍ Èá>ò2ÐÉ2éë*âËf(/˦:éËG(##~++· :éËO x· y·úCÅÕ!ͺÑÁ Q*â:éËG(Ëî##~Æ.Õ_ÑÖ.Íší âf<ò\=<Íš*â##æw ÅÕåÍ®áÑÁ Õ+Ñ4 #4x±Â ëÉ>™>ð2ÐÉõ:éËG(ëñÉ"âÍ®Èæ"*âËæËnÈË®*âåÅ0ëÍÁá ëÍ·ÉÁÑíSâÅåÍZÑ·íR8@*â N#F#s#rÍ, 0}æ)ëíjëS\*â##w+ N#Fë·íB ÈÕåÍ®Ñár+sÉ>‘2ÐÉÕÙáÙ!T]>)ëíjëÙ)Ù0 0= ïÉÍ]·íR!À#ÉÍ]ëÉ*â^#V#ÕN#F#^#VáÉ>¯2èͰ:зÀÍ0:зÀ*â6Àå ë#Íá-¯Nw#FwÖÿq#p#6€#w#w#wÉ"â~æÀÈÃ�>">!DM!ð"æÝáÑáÝåÅÍýÁ:зÀ*ðíBÈ:éþ!>™(>ð2ÐÉ>">!"æÝáÁÑáÝå2é"â~æÀʰ*æ¯w#wx±(9ÅÕÍ*â ë:éOÍÑÁ· Õ*â-4 #4Ñ!€ë*æ4 #4 Ã*â-N#FÚÿq#püÿV+^ë·íBÐëq#pÉÁÑíSâÅåÍZÑ·íRÚ&*â s#r$ s#rÉÍLÀ ëÍ<À?ýá*ÒÍâ¯áýåÍLÀåÍòáåë!\ í°á åëÍÑ<( !\$í°É>2ÐÉ>¯2èÍLÀ:Ø·>!(ë*â \$í°\Í<(Ï!3°í°:è· í[1ðÕÍ\ÍÑ!€ë·(é7"â~æÈ> 2ÐÉ"æíSèëá"âNs#Frë·íB(Zë#\:Ü í°¯üå\ÍÑ<(?*æ"}íKèÅÕÍ\!ÍÑÁ· !*}#"}!€ë x± Û\Í*â éÝ*â>ðÃ) ÍÈþÐ2ÜÉ"ðëáã"ò{æü_!Þ"øÝ*ÞÝnÝf}´(HíR0ÝnÝfåÝ"øÝáã Ý^ÝVÝåMDÝnÝfÝåÝÝuÝtÝqÝpÝåÑ*øs#rÑ*òs#rÉÝåá"Ä*ð ÝåÁ ÚuíKÆíB!Ú0>ÿÃ' ëáã~#fo{æü_ë"ð*ÞåÝá·íR0RÝnÝfå·íR0ÝáðáÕýáíKðýqýpýuýtÝsÝrÝåáÝNÝFÍ( Ý^ÝVÕÝáÝåáÝNÝFÝ^ÝV*ÞíSÞÕÝáÝuÝtíKðÝqÝpë ·íRÀÕýá*Ä·íR(ý~Ýwý~Ýwýnýf ÝuÝt¯ÉÝåá"Ä6#ûÉÍK*ôÉÍK*öÉ!"ô"öÝ*ÞÝNÝFy°(*ô "ô*ö·íB0íCöÝnÝfåÝáØ*Æûÿ í[Ä·íRØë*ô"ô*ö·íRÐíSöÉí[Äs#rÉ^#Vë"Ä"Þ6#ûÉ>¯O"è¯w2Ðx2ê*â"í!F"âá"äá Í&Íy*í"â*äé>¯2ì"è*â"í!F"âá"äá"ê!\Íâ¯*ê:ì· ÍNÍr!Ð~6·go(Ýåá\íRë*ès#r£Æí_2ËÉëÝáÁáx±( s x±(T]í°ÝéDMÝáÑáx±(ôíR0í ë ëí¸ÝéU(Í�ÝáO/o&ÿ9ùq#ë (í°Ýé!€>F¸0#( ~þ (þ #ï]( ~þ (þ (#ï}“(  Õi&TÉÑÁÕ-a%â}ͦoÉ*é!Ð~6o&ÉÍ|µÈ:Ýõ¯2ÝÍ ñ2Ý}þÀÝá:зÈÝá_Ýá_ÕÍzѯ2Ý*Î|µÝåáíKÌíB "η ÕÕåÍÙÑz· Í^C User break+= Í I/OÍ Run-timeÍ error {Í´Í, PC=*ÎͯÍNot enough memoryÍ Program aborted :Ø·ÊŽ'ÃáÑÑé1!€ŸÿÍd!Ò#dŸ >ÍÔÃí"0168 Í>Í›ͺ! OKIDATA PRINT CONTROL UTILITYÍÍÍ Í›ͺ! Bob Scott ÍÍÍ Í›ÍÍÍ Í›ͺ0 (or RETURN) Exit programÍÍÍ Í›ÍÍÍ Í›ͺ 1 Draft modeÍÍÍ Í›ͺ 2 NLQ modeÍÍÍ Í›ͺ3 6 lines per inchÍÍÍ Í›ͺ4 8 lines per inchÍÍÍ Í›ͺ 5 10 CPIÍÍÍ Í›ͺ 6 12 CPIÍÍÍ Í›ͺ 7 17 CPIÍÍÍ Í›ͺ8 Top of formÍÍÍ Í›ͺ9 Clear printerÍÍÍ Í›ÍÍÍ Ík!¸ÍºͺInput selection:Í Í„ÉÍ;!!ºÍ©!lŸÍŽÍ !lŸÍ:Í£å!ÑÍËEÊ&#!0e.å!lŸÍâ!lŸÍ:!vŸå!nŸÍô*nŸå!ÑÍËEÊð"!ÿ å*vŸ)Ñ^#Vë"pŸ!å*pŸÑÍfz³Ê�#Õ"rŸ!!å*vŸ))Ñå*rŸ+)Ñ^#Vë"tŸ!¼Íº*tŸÍ"Í *rŸ#ÑÃb#!¸Íº![Í"*vŸå!Í&ͺ] Í *vŸå!ÑÍËEÊð"Í>ÃÔ Vë"pŸ!å*pŸÑÍfz³ÊÕ"rŸ!!å*vŸ))Ñå*rŸ+)Ñ^#È:Ýõ¯2ÝÍ ñ2Ý}þÀÝá:зÈÝá_Ýá_ÕÍzѯ2Ý*Î|µÝåáíKÌíB "η ÕÕåÍÙÑz· Í^C User break+= Í I/OÍ Run-timeÍ error {Í´Í, PC=*ÎͯÍNot enough memoryÍ Program aborted :Ø·ÊŽ'ÃáÑÑé1!€ŸÿÍd!Ò#dŸ >ÍÔÃí" OKI92.PAS is a Turbo pascal program to set options on the Oki 80 and 90 series printers. It is easy to modify for other printers by changing the menu items and control codes. The program handles both one and two byte control sequences as written, and would be easy to modify for longer lengths. The .COM file is a CP/M complied version for those without access to a TURBO compiler. Bob Scott  for longer lengths. The .COM file is a CP/M complied version for those without access to a TURBO cååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååprogram setprt; { menu driven okidata 92 setup utility } { author: bob scott date: dec 85 } const {len: is the length of the control seqs (one or two bytes)} {control: is the actual control sequences} len : array [0..9] of integer = (1,2,2,2,2,1,1,1,1,1) ; control : array [0..9,1..2] of integer = ( (0,0),(27,48),(27,49),(27,54),(27,56),(30,0),(28,0), (29,0),(12,0),(24,0) ); var selection, out, i, lim, code : integer; user_input : string [1]; procedure print_menu; begin clrscr; writeln (' OKIDATA PRINT CONTROL UTILITY'); writeln (' Bob Scott '); writeln ; writeln ('0 (or RETURN) Exit program'); writeln; writeln ('1 Draft mode'); writeln ('2 NLQ mode'); writeln ('3 6 lines per inch'); writeln ('4 8 lines per inch'); writeln ('5 10 CPI'); writeln ('6 12 CPI'); writeln ('7 17 CPI'); writeln ('8 Top of form'); writeln ('9 Clear printer'); writeln; lowvideo; write (con,'Input selection:'); normvideo; end; begin print_menu; repeat repeat read (kbd,user_input); if length (user_input) = 0 then user_input := '0'; val (user_input,selection,code); until code=0; lim := len[selection]; for i:=1 to lim do begin out:=control[selection, i]; write (lst,chr(out)); end; write (con,'[',selection,'] '); until selection=0; clrscr; end. ob Scott '); writeln ; writeln ('0 (or RETURN) Exit program'); writeln; writeln ('1 Draft mode'); writeln ('2 NLQ mode'); writeln ('3 6 lines per inch'); writeln ('4 8 lines per inch'); writeln ('5 10 CPI'); writeln ('6 12 CPI'); writeln ('7 17 CPI'); writeln ('8 Top of form'); writeln ('9 Clear printer! ~þÿÊ_åÍá#ÃÁ ÍÃ%A %A!@%A"%A#``%A$$b#%A%A"D"A %A&0BH"P%A'%A(8D%A)@ %A* (%A+( %D,@(%A-%A.@ @ %A/@ %A08BA!%A1@bF%A2@`PH%A3 AIM2%A4b%A5 AA!%A60HHH0%A7@! %A80FAA1%A9@  %A:@(D(%D;@* %A<$@%A=%A>@ %A?@%A@8BHD%AA@ %AB`FHH1%AC8DAA!%AD`F@ %AE`CAA%AF`%AG8DAI %AH``%AI@aG%AJ0@@ %AK`"@%AL`F@@%AM` b%AN``%AO0LAA %AP` %AQ8BQ!P%AR`(A%AS FII1%ATa%AU0L@@0 %AV %AW`#`%AX@!$@%AYd%AZ@ QIE%A[`F@%A\ 0@%A]@@`%A^%D_@@@@@%A`%Aa PPP$X%Ab`GD$%Ac0@@@%Ad0@@`%Ae0H@@%Afd%Dg RQ1 %Ah`d%Ai@dD%Dj %Ak` H%Al@`F%Amd`d%And`%Ao0H@$%Dp` %Dq q %Ar`%As@@@ %At0LD%Au0L@@0L%Av| %Awp  `%Ax@$ H%DyB$%Az@dTL%A{ XA%A|@ %A}@A0 %A~%AX$BI! ÿCharacter download complete $%A@8BHD%AA@ %AB`FHH1%AC8DAA!%AD`F@ %AE`CAA%AF`%AG8DAI %AH``%AI@aG%AJ0@@ %AK`"@%AL`F@@%AM` b%AN``%AO0LAA %AP` %AQ8BQ!P%AR`(A%AS FII1%ATa%AU0L@@0 %AV %AW`#`%AX@!$@%AYd%AZ@ QIE%A[`F@%A\ 0@%A]@@`%A^%D_@@@@@%A`%Aa PPP$X% (METTS-G.OKI) OKITALIC.COM for CP/M & Okidata 92/93 AUTHOR: Glenn Metts Fog Member #10220 Osborne Users Club of Houston (OUCH) OKITALIC downloads an italic character set to the "downline loadable character generator." Italics can then be used with WordStar or any other program by sending the sequence 1Bh,32h (ESC 2) to the printer. Although it has been used on an Osborne 1 DD with an Okidata ML92 with a parallel interface, it should run on any CP/M system with the ML92 or 93 printer with serial or parallel interface. This is the same as the Epson FX italic characters except that the lower case "j" has no dot. The italics can be printed in 10, 12 or 17 cpi (normal or double width), superscript or subscript, or underlined by combining control codes. Listed below are the patches I use with WordStar 2.26. The only tricky one is ^PR (double width characters). Evidently, WordStar doesn't send the ^PN sequence unless a ^PA has been previously encountered in the text (and vice versa). Since the ^Px sequence is needed to shift from double-width back to normal width, it is necessary to put in ^PA^PN to shift back to 10 cpi or ^PN^PA to shift back to 12 cpi. You can avoid the hassle if you don't need double-width by leaving the code out for USER4:. Italics are started with ^PE and ended with ^PW (for data processing mode) or ^PQ (for correspondece mode). Label Contents (Hex) Command Action PALT: 01,1C,0,0,0 ^PA Starts 12 cpi & cancels double-width PSTD: 01,1E,0,0,0 ^PN Starts 10 cpi & cancels double-width ROLUP: 02,1B,4A,0,0 ^PT Starts superscripts or ends subscripts ROLDOW: 02,1B,4C,0,0 ^PV Starts subscripts or ends superscripts USR1: 02,1B,31,0,0 ^PQ Starts correspondence quality mode USR2: 02,1B,30,0,0 ^PW Starts data processing mode USR3: 02,1B,32,0,0 ^PE Starts italics USR4: 01,1F,0,0,0 ^PR Starts double-width letters RIBBON: 02,1B,43,0,0 ^PY Starts continuous underline RIBOFF: 02,1B,44,0,0 ditto Cancels continuous underline PSINIT: 02,18,0D,0,0,0, 0,0,0,0,0,0,0, Initializes printer with and 0,0,0 "clear buffer" If you are using the ML92 with pin-feed, as I do most of the time, the following changes may be useful. They reset the top margin to zero and the bottom margin to 11 lines. Since the tear bar is an inch above the print head, Wordstar can start and finish with the paper perforations at the tear bar, while leaving a one-inch top margin and a half-inch bottom margin. INITPF:+5 0,0,0 Sets top margin to zero lines INITPF:+D 0B,58,0 Sets bottom margin to 11 lines Š s correspondence quality mode USR2: 02,1B,30,0,0 ^PW Starts data processing mode USR3: 02,1B,32,0,0 ^PE Starts italics USR4: 01,1F,0,0,0 ^PR Starts double-width letters RIBBON: 02,1B,43,0,0 ^PY Starts continuous underline RIBOFF: 02,1B,44;okitalic.asm 10/23/84 ;by Glenn Metts FOG Member #10220 bdos equ 5 ; Register Usage outpr equ 5 ; BC | | bdos call | conbuff equ 9 ; DE | | output char.| cr equ 13 ; HL | pointer for output data | lf equ 10 ; org 0100h ;start lxi h,italics ;initialize pointer begin: mov a,m ;get a byte cpi 255 ;end of data? jz done ;yes, print confirmation mov e,a ;prepare to send mvi c,outpr ;to printer push h ;save pointer call bdos ;send pop h ;retrieve pointer inx h ;increment pointer jmp begin ;return done: lxi d,confirm ;prepare to send confirmation mvi c,conbuff ;to console call bdos ;send jmp 0000h ;exit and re-boot italics: db 27,37,65,32,0,0,0,0,0,0,0,0,0,0,0 ;sp db 27,37,65,33,0,0,64,0,16,8,4,2,1,0,0 ;e p db 27,37,65,34,0,0,4,2,1,0,4,2,1,0,0 ;" db 27,37,65,35,0,20,96,28,3,20,96,28,3,20,0 ;# db 27,37,65,36,0,0,36,8,98,28,35,8,18,0,0 ;$ db 27,37,65,37,0,2,65,34,17,8,68,34,65,32,0 ;% db 27,37,65,38,0,48,8,66,5,72,21,34,80,8,0 ;& db 27,37,65,39,0,0,0,0,0,2,1,0,0,0,0 ;' db 27,37,65,40,0,0,0,0,56,68,2,0,1,0,0 ;( db 27,37,65,41,0,0,64,0,32,17,14,0,0,0,0 ;) db 27,37,65,42,0,8,32,10,20,8,20,40,2,8,0 ;* db 27,37,65,43,0,8,0,40,16,8,4,10,0,8,0 ;+ db 27,37,68,44,0,0,64,16,40,16,8,0,0,0,0 ;, db 27,37,65,45,0,8,0,8,0,8,0,8,0,8,0 ;- db 27,37,65,46,0,0,0,64,32,64,32,0,0,0,0 ;. db 27,37,65,47,0,0,64,32,16,8,4,2,1,0,0 ;/ db 27,37,65,48,0,56,4,66,0,65,0,33,16,14,0 ;0 db 27,37,65,49,0,0,64,0,98,24,70,1,0,0,0 ;1 db 27,37,65,50,0,64,2,96,1,80,1,72,1,6,0 ;2 db 27,37,65,51,0,32,0,65,0,73,0,77,50,1,0 ;3 db 27,37,65,52,0,16,8,16,4,16,98,28,3,16,0 ;4 db 27,37,65,53,0,32,6,65,4,65,4,33,24,1,0 ;5 db 27,37,65,54,0,48,72,4,72,2,72,1,48,0,0 ;6 db 27,37,65,55,0,1,64,33,16,9,4,1,2,1,0  ;7 db 27,37,65,56,0,48,70,8,65,8,65,8,49,6,0 ;8 db 27,37,65,57,0,6,64,9,32,9,16,9,6,0,0 ;9 db 27,37,65,58,0,0,0,64,40,68,40,4,0,0,0 ;: db 27,37,68,59,0,0,64,16,42,17,10,1,0,0,0 ;; db 27,37,65,60,0,0,8,16,36,64,2,0,1,0,0 ;< db 27,37,65,61,0,16,4,16,4,16,4,16,4,0,0 ;= db 27,37,65,62,0,0,64,0,32,1,18,4,8,0,0 ;> db 27,37,65,63,0,2,64,1,16,1,8,1,6,0,0 ;? db 27,37,65,64,0,56,4,66,1,72,17,68,17,14,0 ;@ db 27,37,65,65,0,64,32,16,8,20,2,17,0,127,0 ;A db 27,37,65,66,0,96,25,70,1,72,1,72,49,6,0 ;B db 27,37,65,67,0,56,68,2,65,0,65,0,33,2,0 ;C db 27,37,65,68,0,96,25,70,1,64,1,32,17,14,0 ;D db 27,37,65,69,0,96,28,67,8,65,8,65,0,1,0 ;E db 27,37,65,70,0,96,28,3,8,1,8,1,0,1,0 ;F db 27,37,65,71,0,56,68,2,65,0,73,32,25,2,0 ;G db 27,37,65,72,0,96,28,3,8,0,8,96,28,3,0 ;H db 27,37,65,73,0,0,64,0,97,24,71,0,1,0,0 ;I db 27,37,65,74,0,48,64,0,64,1,32,25,6,1,0 ;J db 27,37,65,75,0,96,28,3,8,4,16,34,64,1,0 ;K db 27,37,65,76,0,0,96,24,70,1,64,0,64,0,0 ;L db 27,37,65,77,0,96,28,3,0,12,0,98,28,3,0 ;M db 27,37,65,78,0,96,28,3,4,8,16,96,28,3,0 ;N db 27,37,65,79,0,48,76,2,65,0,65,32,25,6,0 ;O db 27,37,65,80,0,96,24,6,9,0,9,0,9,6,0 ;P db 27,37,65,81,0,56,4,66,0,81,0,33,80,14,0 ;Q db 27,37,65,82,0,96,24,6,1,8,17,40,65,6,0 ;R db 27,37,65,83,0,32,70,0,73,0,73,0,49,2,0 ;S db 27,37,65,84,0,1,0,97,24,7,0,1,0,1,0 ;T db 27,37,65,85,0,48,76,3,64,0,64,48,12,3,0 ;U db 27,37,65,86,0,0,127,0,32,16,8,4,2,1,0 ;V db 27,37,65,87,0,96,28,35,16,8,16,96,28,3,0 ;W db 27,37,65,88,0,64,33,18,4,24,36,64,2,1,0 ;X db 27,37,65,89,0,1,2,100,24,0,4,0,2,1,0 ;Y db 27,37,65,90,0,64,32,81,0,73,0,69,2,1,0 ;Z db 27,37,65,91,0,0,96,24,70,1,64,1,0,1,0 ;[ db 27,37,65,92,0,0,0,3,12,48,64,0,0,0,0 ;\ db 27,37,65,93,0,64,0,64,1,96,25,6,1,0,0 ;] db 27,37,65,94,0,0,4,0,2,0,1,2,4,0,0 ;^ db 27,37,68,95,0,64,0,64,0,64,0,64,0,64,0 ;_ db 27,37,65,96,0,0,0,0,1,2,0,0,0,0,0 ; db 27,37,65,97,0,32,80,4,80,4,80,36,88,0,0 ;a db 27,37,65,98,0,96,24,71,0,68,0,36,24,0,0 ;b db 27,37,65,99,0,48,8,64,4,64,4,64,4,0,0 ;c db 27,37,65,100,0,48,8,64,4,64,4,96,28,3,0 ;d db 27,37,65,101,0,48,72,20,64,20,64,20,8,0,0 ;e db 27,37,65,102,0,4,0,100,24,6,0,5,0,1,0 ;f db 27,37,68,103,0,12,82,0,81,0,49,12,3,0,0 ;g db 27,37,65,104,0,96,24,7,0,4,0,100,24,0,0 ;h db 27,37,65,105,0,0,64,0,100,24,68,1,0,0,0 ;i db 27,37,68,106,0,32,0,32,0,25,6,1,0,0,0 ;j db 27,37,65,107,0,96,24,6,17,32,72,0,4,0,0 ;k db 27,37,65,108,0,0,64,0,96,25,70,1,0,0,0 ;l db 27,37,65,109,0,100,24,4,96,28,0,100,24,0,0 ;m db 27,37,65,110,0,100,24,4,0,4,96,24,0,0,0 ;n db 27,37,65,111,0,48,72,0,4,64,0,36,24,0,0 ;o db 27,37,68,112,0,96,28,3,16,1,16,9,6,0,0 ;p db 27,37,68,113,0,12,18,0,17,0,113,12,3,0,0 ;q db 27,37,65,114,0,96,28,0,8,4,0,4,0,0,0 ;r db 27,37,65,115,0,64,8,64,20,64,20,32,4,0,0 ;s db 27,37,65,116,0,0,4,48,76,3,68,0,4,0,0 ;t db 27,37,65,117,0,48,76,0,64,0,64,48,76,0,0 ;u db 27,37,65,118,0,0,124,0,32,0,16,8,4,0,0 ;v db 27,37,65,119,0,112,12,32,0,24,32,0,96,28,0 ;w db 27,37,65,120,0,64,0,36,8,16,32,72,0,4,0 ;x db 27,37,68,121,0,1,66,36,16,8,4,2,1,0,0 ;y db 27,37,65,122,0,64,0,100,0,84,0,76,0,4,0 ;z db 27,37,65,123,0,0,8,32,88,6,65,0,1,0,0 ;l br db 27,37,65,124,0,0,64,32,16,4,2,1,0,0,0 ;| db 27,37,65,125,0,0,64,0,65,48,13,2,8,0,0 ;r br db 27,37,65,126,0,2,1,0,1,2,4,0,4,2,0 ;tilde db 27,37,65,127,0,88,36,66,16,73,4,33,18,13,0 ;0 db 255 confirm: db 'Character download complete',cr,lf,'$' end ,0,100,24,4,96,28,0,100,24,0,0 ;m db 27,37,65,110,0,100,24,4,0,4,96,24,0,0,0 ;n db 27,37,65,111,0,48,72,0,4,64,0,36,24,0,0 ;o db 27,37,68,112,0,96,28,3,16,1,16,9,6,0,0 ;p db 27,37,68,113,0,12,18,0,17,0,113,12,3,0,0 ;q db 27,37,65,114,0,96,28,0,8,4,0,4,0,0,0 ;r db 27,37,65,115,0,64,8,64,20,64,20,32,4,0,0 ;s db 27,37,65,116,0,0,4,48,76,3,68,0,4,0,0 ;t db 27,37,65,117,0,48,76,0,64,0,64,48,76,0,0 ;u db 27,37,65,118,0,0,124,0,32,0,16,8,4,0,0 ;v db 27,37,65,119,0,112,12,32,0,24,32,0,100 S1$="*******************PRINTER***********************" 110 S2$=" " 120 S3$="PRINTER configures the PRISM 80 or 132 for" 130 S4$="software programmable parameters..." 140 S5$="Brian C. Dugle, Major, USAF, 21 Nov 82" 150 S6$=" " 160 S7$="*************************************************" 170 REM 180 REM ******INITIALIZE DEFAULT PARAMETERS******* 190 REM 200 PW=8.5: REM PW= page width (inches) 210 PL=11: REM PL= paper length (inches) 220 PS=.25: REM PS= paper offset from left edge printline (inches) 230 ML=1.5: REM ML= left margin (inches) 240 MR=1: REM MR= right margin (inches) 250 MB=0: REM MB= bottom margin (inches) 260 CPI%=0: REM CPI%= char per inch 270 PRPL%=0: REM PRPL%= proportional selector 280 JUST%=0: REM JUST%= justify selector 290 MODE%=2: REM MODE%= print mode selector (normal/expanded) 300 FONT%=1: REM FONT%= font selection 310 TH%=0: REM TH%= number of horiz tabs 320 TV%=0: REM TV%= number of vert tabs 330 LF%=8: REM LF%= linefeed size (48th s) 340 N=0: REM N= initial paper feed (lines) 350 ROLUP%=4: REM ROLUP%= superscript linefeed (48ths) 360 ROLDOW%=4: REM ROLDOW%=subscript linefeed (48ths) 370 REM B= linefeed input 380 REM J%= gosub counter 390 REM K%= counter for tab loop 400 REM MB%= bottom margin position (48ths) 410 REM ML%= left margin position (120ths) 420 REM MR%= right margin position (120ths) 430 REM S= temp tab position (inches) 440 REM TBH%= horiz tab position (120ths) 450 REM TBV%= vert tab position (48ths) 460 REM V%= choice, configuration settings 470 REM W$= Y/N answer 480 REM X%= choice: print, change or quit, etc. 490 REM 500 REM ******DEFINE PROMPT STRING CONSTANTS****** 510 REM 520 D$=CHR$(26):REM Clear screen... 530 D0$=CHR$(27)+CHR$(84):REM Deletes to end of line... 540 D1$="Use decimals for fractional margin and page sizes" 550 D2$="Which choice?" 560 DEF FNCURSOR$(YPOS%,XPOS%)=CHR$(13)+CHR$(27)+"="+CHR$(YPOS%+31)+CHR$(XPOS%+31) 570 REM "YPOS" is line number on screen, "XPOS" is column and CHR$(13) is without LF, resets MBasic Characters per Line counter... 580 D3$=D$+FNCURSOR$(10,2) 590 D4$=FNCURSOR$(12,2)+D0$ 600 D5$=FNCURSOR$(15,2) 610 D6$=FNCURSOR$(20,2) 620 D7$=FNCURSOR$(23,2) 700 REM 710 REM ******INITIALIZE PROGRAM****************** 720 REM 730 DIM TBV%(8) 740 DIM TBH%(21):REM This is the only subscripted variable with more than 10 values... 750 WIDTH 52: WIDTH LPRINT 255 760 REM 800 REM 810 REM ******FIRST SECTION - CHOOSE DATA********* 820 REM 830 PRINT D$;FNCURSOR$(3,2);S1$:PRINT S2$:PRINT TAB(5) S3$:PRINT TAB(5) S4$ 840 PRINT TAB(5) S5$:PRINT S6$:PRINT TAB(3) S7$ 850 PRINT FNCURSOR$(11,5); 860 PRINT"Press:" 870 PRINT" <1> to use default parameters" 880 PRINT" <2> to read last saved parameters" 890 PRINT" <3> to select all new print parameters" 900 PRINT D6$;D2$;:X0%=VAL(INPUT$ (1)) 910 IF X0%<1 OR X0%>3 THEN PRINT" <1>, <2>, or <3> response only, please try again...": GOTO 900 920 ON X0% GOSUB 2010,4610,2210 930 REM 940 REM ***CHECK CODES*** 950 PRINT D$:PRINT 960 PRINT"Check the configuration codes:":PRINT 970 PRINT" Page size:";PW;"X";PL;"Left edge is set";PS 980 PRINT" inches left of 1st printable character" 990 PRINT" Margins: left:";ML;"right:";MR;"and bottom:";MB 1000 PRINT" leaving";PL-MB;"inches vertical space for text" 1010 ML%=INT((ML-PS)*120):IF ML%<0 THEN ML%=0 1020 MR%=INT((PW-PS-MR)*120):IF MR%>((PW-PS)*120)THEN MR%=(PW-PS)*120-15 1030 M=(MR%-ML%)/120:IF CPI%=0 THEN CPI=13.3 1040 IF CPI%=29 THEN CPI=10 1050 IF CPI%=30 THEN CPI=12 1060 IF CPI%=31 THEN CPI=16.8 1070 M1=M*CPI 1080 PRINT" Printline is";M;"inches long, or";M1;"characters" 1090 PRINT" at";CPI;"fixed spacing" 1100 IF TH%<=0 THEN PRINT" No horizontal tabs set":GOTO 1170 1110 PRINT" Horizontal tabs set at:"; 1120 FOR K%=1 TO TH% 1130 PRINT TBH%(K%)/120; 1140 IF TH%-K%=1 THEN PRINT"and"; 1150 NEXT 1160 PRINT"inches from zero print position" 1170 IF TV%<=0 THEN PRINT" No vertical tabs set":GOTO 1240 1180 PRINT" Vertical tabs set at:"; 1190 FOR K%=1 TO TV% 1200 PRINT TBV%(K%)/48; 1210 IF TV%-K%=1 THEN PRINT"and"; 1220 NEXT 1230 PRINT"inches from top of form" 1240 PRINT" Print mode: ";:IF MODE%=2 THEN PRINT"Normal" ELSE PRINT"EXPAND" 1250 PRINT" Font:";FONT%;"is ";:IF FONT%=1 THEN PRINT"Correspondence" ELSE PRINT"Draft" 1260 IF CPI%=0 THEN PRINT" No character size set, printer defaults to SWs 1 and 2 or last software setting" ELSE PRINT" Char code:";CPI%;" (29=10cpi, 30=12, 31=16.8)" 1270 PRINT" Proportional print ";:IF PRPL%=1 THEN PRINT"ON" ELSE PRINT"OFF" 1280 PRINT" Justified print ";:IF JUST%=1 THEN PRINT"ON" ELSE PRINT"OFF" 1290 PRINT" Linefeed set to";LF%;"48ths inches, or";48/LF%;"lpi" 1300 PRINT" Initial paper position";N;"lines from top" 1310 PRINT D7$;"Are the settings correct ?";:W$=INPUT$ (1) 1320 IF W$="Y" OR W$="y" GOTO 1610 1330 REM 1400 REM ***SELECT CODES TO CHANGE*** 1410 PRINT D$:PRINT 1420 PRINT"Select which configuration to set:":PRINT 1430 PRINT" <1> Paper Size" 1440 PRINT" <2> Margins (left, right, bottom)" 1450 PRINT" <3> Tab settings (horiz and vert)" 1460 PRINT" <4> Print Mode" 1470 PRINT" <5> Character size/Font" 1480 PRINT" <6> Proportional print" 1490 PRINT" <7> Justification (at printer)" 1500 PRINT" <8> Initial paper feed" 1510 PRINT" <9> Linefeed size (incl sub/supr script)" 1520 PRINT" <0> All" 1530 PRINT D6$;D2$;:V%=VAL(INPUT$ (1)) 1540 PRINT D3$;:ON V%+1 GOSUB 2210,3310,3110,4110,3710,3510,3810,3910,4010,4410 1550 GOTO 950:REM Return to display to check values... 1580 REM 1590 REM ******SEND OR SAVE GOOD DATA************* 1600 REM 1610 PRINT D3$;"Do you want to send these to the printer or save":PRINT" on disk?" 1620 PRINT" <0>=No, quit" 1630 PRINT" <1>=Yes, just save these settings on disk" 1640 PRINT" <2>=Yes, just send to printer, do not save" 1650 PRINT" <3>=Yes, send to printer and save on disk" 1660 PRINT D6$;D2$;:X1%=VAL(INPUT$ (1)) 1670 IF X1%<0 OR X1%>3 THEN PRINT" <0>, <1>, <2>,or <3> only please...": GOTO 1660 1680 ON X1%+1 GOS UB 2010,5210,4810,2110 1690 END 1700 REM ******CONTROL SUBROUTINES***************** 2000 REM 2010 RETURN:REM Goes back to display section without changing default settings... 2090 REM 2100 REM ***SEND & SAVE*** 2110 GOSUB 4810:REM First LPRINT to Printer... 2120 GOSUB 5210:REM Then save on disk... 2130 RETURN 2190 REM 2200 REM ***LOOP THRU ALL INPUTS*** 2210 FOR J%=1 TO 9 2220 ON J% GOSUB 3310,3110,4110,3710,3510,3810,3910,4010,4410 2230 NEXT 2240 RETURN 2990 REM 3000 REM ******INPUT/CHANGE SUBROUTINES************ 3090 REM 3100 REM ***MARGINS*** 3110 PRINT D3$;"Select the margins desired:" 3120 PRINT" <1> left= 1, right= 1, bottom= 0 (WordStar)" 3130 PRINT" <2> left=.5, right=.5, bottom=.8 (LLISTs)" 3140 PRINT" <3> Other" 3150 PRINT D6$;D2$;:X2%=VAL(INPUT$ (1)) 3160 IF X2%<1 OR X2%>3 THEN PRINT"<1>, <2>, or <3> only please...":GOTO 3150 3170 IF X2%=1 THEN ML=1:MR=1:MB=0 3180 IF X2%=2 THEN ML=.5:MR=.5:MB=.8 3190 IF X2%<>3 GOTO 3250 3200 PRINT D3$;D1$ 3210 PRINT D4$;:INPUT"Left margin SIZE desired: ; ";ML 3220 PRINT D4$;:INPUT"Right margin SIZE desired: ; ";MR 3230 PRINT D5$;"Use a bottom margin for printing program listings":PRINT"and so on, leave at zero for printing WordStar":PRINT"documents" 3240 PRINT D4$;:INPUT"Bottom margin SIZE desired: ; ";MB 3250 RETURN 3290 REM 3300 REM ***PAPER SIZE & POSITION*** 3310 PRINT D3$;"Select the paper size:" 3320 PRINT" <1> Single sheet 8.5 x 11, at 'C' mark" 3330 PRINT" <2> Single sheet 8.5 x 14" 3340 PRINT" <3> Other" 3350 PRINT D6$;D2$;:X3%=VAL(INPUT$ (1)) 3360 IF X3%<1 OR X3%>3 THEN PRINT"<1>, <2>, or <3> only please...":GOTO 3350 3370 IF X3%=1 THEN PW=8.5:PL=11:PS=.25 3380 IF X3%=2 THEN PW=8.5:PL=14:PS=.25 3390 IF X3%<>3 GOTO 3490 3400 PRINT D3$;D1$; 3410 PRINT D4$;:INPUT"Paper width ; ";PW 3420 PRINT D5$;"Input the position of the left edge of the paper" 3430 PRINT"from the leftmost print column. A positive value" 3440 PRINT"may be read directly from the gage if you have the" 3450 PRINT"sheet feeder." 3460 PRINT D4$;:INPUT"Paper edge position ; ";PS 3470 PRINT D3$;D1$;D5$;"This length must agree exactly with WordStar to":PRINT"avoid text creeping up or down on succeeding pages" 3480 PRINT D4$;:INPUT"Paper length ; ";PL 3490 RETURN 3500 REM ***CHARACTER SIZE & FONT*** 3510 PRINT D3$;"Character size:" 3520 PRINT" <0>=None (old or default value)" 3530 PRINT" <1>=10 cpi" 3540 PRINT" <2>=12 cpi" 3550 PRINT" <3>=16.8 cpi" 3560 PRINT D6$;D2$;:CPI%=VAL(INPUT$ (1)) 3570 IF CPI%<0 OR CPI%>3 THEN PRINT" <0>, <1>, <2>, or <3> only please...": GOTO 3560 3580 IF CPI%>0 THEN CPI%=CPI%+28 3590 PRINT D3$;"Font:" 3600 PRINT" <1> for correspondence" 3610 PRINT" <2> for draft" 3620 PRINT D6$;D2$;:FONT%=VAL(INPUT$ (1)) 3630 IF FONT%<1 OR FONT%>2 THEN PRINT" <1> or <2> only please...": GOTO 3620 3640 RETURN 3690 REM 3700 REM ***PRINT MODE*** 3710 PRINT D3$;"Mode:" 3720 PRINT" <1> for EXPANDED (doublewidth) characters" 3730 PRINT" <2> for NORMAL characters" 3740 PRINT D6$;D2$;:MODE%=VAL(INPUT$ (1)) 3750 IF MODE%<1 OR MODE%>2 THEN PRINT" <1> or <2> only please...": GOTO 3740 3760 RETURN 3790 REM 3800 REM ***PROPORTIONAL*** 3810 PRINT D3$;"Do you want the print PROPORTIONAL ";:W$=INPUT$ (1) 3820 IF W$="Y" OR W$="y" THEN PRPL%=1 ELSE PRPL%=0:REM Only Y or y response evaluated, all others result in "No" response... 3830 RETURN 3900 REM ***JUSTIFIED*** 3910 PRINT D3$;"Do you want the print JUSTIFIED ";:W$=INPUT$ (1) 3920 IF W$="Y" OR W$="y" THEN JUST%=1 ELSE JUST%=0 3930 RETURN 3990 REM 4000 REM ***INITIAL LINEFEEDS*** 4010 PRINT D$;D5$;"If you have a listing program that inserts linefeeds" 4020 PRINT"to skip over perforations, putting about half that" 4030 PRINT"number of linefeeds here allows equalizing the top" 4040 PRINT"and bottom margins. Do not use this for WordStar" 4050 PRINT"documents--you can also use Form Set to set the top" 4060 PRINT"line position for listing programs, but do not use" 4070 PRINT"it in WordStar." 4080 PRINT FNCURSOR$(10,2);:INPUT"Number of linefeeds to position paper; ";N 4090 RETURN 4100 REM ***TABS HORIZ/VERT*** 4110 PRINT D3$; 4120 INPUT"HOW MANY horizontal tabs (0 to 21); ";TH%:IF TH%<=0 GOTO 4210 4130 IF TH%>21 THEN PRINT" The max number of horizontal tabs is 21, try again...": GOTO 4120 4140 PRINT:PRINT"Identify tab positions from the left edge of the" 4150 PRINT"paper, in order":PRINT 4160 FOR K%=1 TO TH% 4170 PRINT"Tab #";K%;"(inches from left); ";:INPUT S 4180 TBH%(K%)=INT((S-PS)*120) 4190 IF K%>1 THEN IF TBH%(K%-1)>TBH%(K%) THEN PRINT"Tabs must be in left to right (small to large) order":GOTO 4170 4200 NEXT 4210 PRINT D3$; 4220 INPUT"HOW MANY vertical tabs (0 to 8); ";TV%:IF TV%<=0 GOTO 4310 4230 IF TV%>8 THEN PRINT"The max number of vertical tabs is 8, try again..": GOTO 4220 4240 PRINT:PRINT"Identify tab positions from the top edge" 4250 PRINT"of the paper, in order.":PRINT 4260 FOR K%=1 TO TV% 4270 PRINT"Tab #";K%;"(inches from top); ";:INPUT S 4280 TBV%(K%)=INT(S*48) 4290 IF K%>1 THEN IF TBV%(K%-1)>TBV%(K%) THEN PRINT"Tabs must be in top to bottom (small to large) order":GOTO 4270 4300 NEXT 4310 RETURN 4390 REM 4400 REM ***LINEFEED SIZES*** 4410 PRINT D3$;"Linefeed is";LF%;"48ths, select:" 4420 PRINT" <0> No change, leave at above or" 4430 PRINT" <1> Change in inches per linefeed or" 4440 PRINT" <2> In lines per inch (lpi) or" 4450 PRINT" <3> In 48ths of an inch" 4460 PRINT D6$;D2$;:V%=VAL(INPUT$ (1)):PRINT 4470 IF V%<0 OR V%>3 THEN PRINT"<0>, <1>, <2>, or <3> only please...": GOTO 4460 4480 PRINT D6$;:ON V%+1 GOTO 4540,4490,4510,4530 4490 INPUT"Size of linefeed in inches; ";B 4500 LF%=INT(B*48):GOTO 4540 4510 INPUT"Number of lines per inch; ";B 4520 LF%=INT(48/B+.5):GOTO 4540 4530 INPUT"Number of 48ths inch per linefeed; ";LF% 4540 PRINT D3$;"The printer is set to use a half linefeed (4 48ths":PRINT"inches) for subscripts and superscripts." 4550 PRINT D5$;"Do you want to change these ?";:W$=INPUT$ (1) 4560 IF W$="Y" OR W$="y" THEN PRINT"How many 48ths (<0> to <9>)?";:R%=VAL(INPUT$ (1)):ROLUP%=R%:ROLDOW%=R% 4570 RETURN 4590 REM 4600 REM ***INPUT FROM DISK FILE "PRINTER.DAT"*** 4610 OPEN "I",#1,"PRINTER.DAT" 4620 INPUT#1,PL,PW,PS,ML,MR,MB,TH%,TV%,LF%,ROLUP%,ROLDOW%,FONT%,MODE%,CPI%,PRPL%,JUST% 4630 IF TH%<1 GOTO 4670 4640 FOR K%=1 TO TH% 4650 INPUT#1,TBH%(K%) 4660 NEXT 4670 IF TV%<1 GOTO 4710 4680 FOR K%=1 TO TV% 4690 INPUT#1,TBV%(K%) 4700 NEXT 4710 CLOSE#1 4720 RETURN 4790 REM 4800 REM ***LPRINT CODES TO PRINTER*** 4810 LPRINT CHR$(27)+"J",ML%,MR%,"$"; 4820 LPRINT CHR$(27)+"R",FONT%,"$"; 4830 IF CPI%<>0 THEN LPRINT CHR$(CPI%); 4840 LPRINT CHR$(27)+"L",(INT((PL*48)+.5));:IF MB<>0 THEN LPRINT (INT((PL-MB)*48)); 4850 LPRINT"$"; 4860 IF PRPL%=1 THEN LPRINT CHR$(16); ELSE IF CPI%<>0 THEN LPRINT CHR$(6); 4870 IF JUST%=1 THEN LPRINT CHR$(4); ELSE IF CPI%<>0 THEN LPRINT CHR$(5); 4880 LPRINT CHR$(27)+"B",LF%,"$"; 4890 IF ROLUP%=4 AND ROLDOW%=4 GOTO 4920 4900 LPRINT CHR$(27)+"C",ROLDOW%,"$"; 4910 LPRINT CHR$(27)+"D",(-ROLUP%),"$"; 4920 IF N<1 GOTO 4970 4930 WHILE N>.5 4940 LPRINT CHR$(10); 4950 N=N-1 4960 WEND 4970 IF TH%<1 GOTO 5030 4980 LPRINT CHR$(27)+"F"; 4990 FOR K%=1 TO TH% 5000 LPRINT TBH%(K%); 5010 NEXT 5020 LPRINT"$"; 5030 IF TV%<1 GOTO 5090 5040 LPRINT CHR$(27)+"E"; 5050 FOR K%=1 TO TV% 5060 LPRINT TBV%(K%); 5070 NEXT 5080 LPRINT"$"; 5090 LPRINT CHR$(MODE%); 5100 RETURN 5190 REM 5200 REM ***SAVE IN FILE "PRINTER.DAT"*** 5210 OPEN "O",#1,"PRINTER.DAT" 5220 WRITE#1,PL,PW,PS,ML,MR,MB,TH%,TV%,LF%,ROLUP%,ROLDOW%,FONT%,MODE%,CPI%,PRPL%,JUST% 5230 IF TH%<1 GOTO 5270 5240 FOR K%=1 TO TH% 5250 WRITE#1,TBH%(K%) 5260 NEXT 5270 IF TV%<1 GOTO 5310 5280 FOR K%=1 TO TV% 5290 WRITE#1,TBV%(K%) 5300 NEXT 5310 CLOSE#1 5320 RETURN 5330 END 0 NEXT 5270 IF TV%<1 GOTO 5310 5280 FOR K%=1 TO TV% 5290 WRITE#1,TBV%(K%) 5300 NEXT 5310 CLOSE#1 5320 RETURN LPRINT CHR$(27)+"B",LF%,"$"; 4890 IF ROLUP%=4 AND ROLDOW%=4 GOTO 4920 4900 LPRINT CHR$(27)+"C",ROLDOW%,"$"; 4910 LPRINT CHR$PRINTER.BAS, submitted by Maj. Brian Dugle of Ft. Leavenworth, KS, is an MBASIC program for sending special print commands to an IDS Prism printer. It is described in PRISM132.TXT, which was originally printed in the FOGHORN, Vol. 2, Nbr. 7, 4/83. Place PRINTER.BAS in drive A and MBASIC.COM in drive B. At the A> prompt, type B:MBASIC PRINTER Make sure the printer is turned on. PRINTER $$$åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå.PO0 Talkinç tï á Prisí Printeò witè WordStaò anä thå Osbornå 1 bù Briaî Dugle¬ Fighteò Piloô anä sometimå student... (Majoò Duglå ió aî Aiò Forcå F-1µ piloô presentlù attendinç schooì � witè thå Armù aô Fô Leavenworth¬ KS) Thió articlå shoulä bå oæ interesô tï manù otheò neophytå � hackeró ouô therå whï arå workinç aô learninç WordStaò anä � gettinç iô tï talë tï variouó doô matriø printers® Severaì � articleó havå appeareä iî thå FOGHORÎ abouô interfacinç WordStaò � anä thå thå Epsoî MX-80/100¬ buô É founä thå informatioî somewhaô � fragmented--nï doubô duå tï mù lacë oæ experiencå witè whaô waó � beinç described® Iî thió articlå É wilì attempô tï describå mù � experienceó iî enougè detaiì sï thaô somå oæ yoõ ne÷ guys/galó � ouô therå caî learî froí them¬ foò whaô theù are® Specifically¬ � É aí goinç tï talë abouô SETUP¬ INSTALLinç WordStar¬ thå � capabilitieó É havå founä iî mù Prisí 13² froí Integraì Datá � Systems¬ anä ho÷ É goô iô runninç witè mù bluå caså Osbornå 1. Á fe÷ weekó afteò É goô thå computeò mù maiì ordeò printeò � showeä up¬ sï É decideä tï jumð righô iî anä hooë iô up® É � ordereä aî RS-23² cablå witè thå printer¬ thå cablå camå witè á � taç readinç "Altoó tï Papeò Tiger"® É pickeä thå seriaì cablå � becauså iô waó available» thå IDÓ printeró uså á D 2µ connectoò � foò eitheò seriaì oò paralleì communications¬ buô thå edgå � connectoò foò thå Osbornå ± waó noô availablå oveò thå phonå tï � hooë uð tï thå paralleì port. Á surveù oæ thå User'ó Referencå Guidå froí thå Osbornå ± � anä thå Owner'ó Manuaì froí thå Prisí Printeò indicateä thaô É � needeä tï uså SETUP¬ á prograí oî thå Osbornå CP/Í Systeí disk¬ � tï configurå thå computeò tï talë tï thå printer® É diä thió bù � puttinç thaô disë iî drivå Aº anä thå WÓ disë iî drivå B:¬ anä � typinç SETUÐ ® Thå promptó iî SETUÐ arå self-explanatory» � thå selectionó É madå includeä Diablï (XON/XOFF© seriaì protocoì � anä 120° baud® SETUÐ alsï allowó yoõ tï assigî valueó tï thå � "speciaì functioî keys"¬ ^° thrõ ^9® Iæ yoõ havå noô donå iô � already¬ É suggesô yoõ loaä commonlù useä stringó sucè aó � "LB:¢ anä somå otheró É wilì identifù later. Afteò completinç thå setuð oæ mù WordStaò disk¬ É hookeä uð � thå cablå tï thå printeò (É alsï seô itó jumperó anä dið switcheó � foò seriaì datá aô 120° baud© anä turneä iô on--iô worked¡ É diä � finä iô waó necessarù tï cyclå thå OFÆ LINE/OÎ LINÅ switcè � sometimes¬ thió turneä ouô tï bå causeä bù thå protocoì É waó � using. Thå Prisí Printeò ió verù "smart"» iô knowó wheî iô haó � papeò iî it¬ foò instance¬ anä wilì noô "go¢ withouô it® Aó lonç � aó yoõ leavå iô ofæ linå (iô maù bå turneä oî anä hookeä up© anä � puô iô oî linå onlù wheî yoõ wanô tï senä iô texô oò controì � codes¬ iô wilì worë fine. É sooî founä thaô thå programmablå functions¬ describeä iî � Tablå 6-´ oæ thå Owner'ó Manual¬ requireä sendinç "escapå � sequences¢ tï thå printer® WordStaò doeó noô seeí tï likå non-� printinç characteró likå escape¬ sï É wenô bacë tï thå books® � Thå Useò Guidå includeó á sectioî oî "Modifyinç WordStaò oî thå � Osbornå 1¢ bù Thoí Hogaî startinç oî pagå A-1® Thió sectioî � describeó á prograí nameä INSTALÌ whicè ió oî thå CP/Í Utilitù �Šdisk® INSTALÌ allowó yoõ tï changå thå terminal¬ printer¬ � communicationó protocol¬ and/oò thå prinô driveò iî thå WS.COÍ � prograí anä alsï allowó yoõ tï makå bytå bù bytå patches® Iî � INSTALÌ yoõ wilì finä brieæ explanationó arå giveî oæ eacè � option® Selectinç onå doeó noô commiô yoõ tï changinç thå WÓ � prograí file--iô allowó yoõ tï "bacë out¢ oæ anù selectioî beforå � makinç iô permanent® Thió letó yoõ checë ouô anä reaä abouô alì � thå optionó beforå yoõ changå anything® Trù it. É diä noô changå thå terminaì selectioî (selectioî "U¢ ió � "nï change")® É aí usinç thå Teletype-likå printeò optioî righô � now¬ selectioî "A"¬ buô selectioî "C¢ (backspacinç teletype© � workó also® Sincå thå protocoì ió handleä outsidå oæ WS¬ thå "nï � protocol¢ optioî anä uså oæ thå CP/Í Lisô Driveò seeí tï bå thå � correcô choiceó tï INSTALLó thirä anä fourtè questions® Oî thå � otheò hand¬ É raî iô foò á whilå witè XON/XOFÆ seô iî botè WÓ anä � iî CP/Í anä iô stilì worked¬ sï whï knows? Aô thió poinô yoõ wilì havå indicateä choiceó oò "nï change¢ � (selectioî "U"© tï INSTALLó questionó abouô thå terminal¬ � printer¬ communicationó protocol¬ anä prinô driver® Thå nitty-� grittù parô comeó nexô iî thå "speciaì modifications¢ section® � INSTALÌ allowó yoõ tï adä speciaì characteò sequenceó tï havå � youò printeò responä correctlù tï WordStaò commands® Theså � includå halæ linå advance¬ backspace¬ alternatå characteò set¬ � anä sï on¬ whicè maù varù froí onå printeò tï thå next® Eacè � sequencå ió addresseä bù á labeì storeä iî INSTALÌ oò bù á fouò � digiô heø memorù address® (É kno÷ oæ nï completå indeø tï theså � labeló anä addresseó buô reaì WordStaò Referencå Manualó oò thå � Customizatioî Noteó probablù explaiî them® Somå arå listeä iî � thå Useò Guidå (mentioneä below© anä otheró havå beeî identifieä � iî otheò FOGHORÎ articles.) Thå Prisí Printeò respondó tï thå standarä ASCIÉ codeó foò � sucè commandó aó backspace¬ linefeed¬ anä carriagå return® Iô � alsï wilì accepô morå complicateä commandó beginninç witè aî � escapå characteò whicè establisè thå valuå oæ somå functions¬ � e.g.¬ thå sizå oæ á linefeeä oò thå positioî oæ marginó oò taâ � stops. Tablå 6-4¬ mentioneä above¬ listó 1µ programmablå functioî � parameteró thaô maù bå seô bù sendinç variouó escapå sequenceó tï � thå printer® Aî examplå ió thå Left/Righô Margiî commandº � ¬ ¬ � ® Thå twï argumenô valueó arå thå positionó � oæ thå lefô anä righô marginó iî 120thó oæ aî incè measureä froí � thå left-mosô printablå characteò positioî oî thå printer® � Escapå ió ASCIÉ characteò 2· (decimal)¬ oò 1 (hex)® Thå commanä � character¬ J¬ anä thå argumenô valueó musô bå separateä bù commá � oò spacå characters® Thå terminatoò musô bå á non-numeriã � characteò otheò thaî commá oò space» thå dollaò sigî ió suggesteä � sincå iô ió á printinç character¬ buô á perioä oò otheò characteò � wilì work. Aî examplå oæ thå margiî settinç commanä sequencå describeä � abovå woulä bå CHR$(27)¬ J¬ 0¬ 780¬ $® Thió sequencå woulä seô � thå lefô margiî aô thå left-mosô positioî anä thå righô margiî aô � ¶ 1/² incheó tï thå right® Thió sequencå coulä bå loadeä intï � WordStaò usinç thå speciaì modificationó parô oæ thå INSTALÌ � program¬ buô requireó aô leasô ¹ byteó oæ space. Š Á looë aô thå "speciaì modifications¢ labeló anä thå spacå � allotteä tï eacè oî pageó A-1° anä A-1± oæ thå Useò Guidå showó � thaô findinç á placå foò thió commanä coulä bå difficult® Thå � onlù areá lonç enougè ió thå initializatioî sequencå whicè allowó � uð tï 1¶ characters® Puttinç thió margiî commanä therå woulä � requirå startinç aô thå labeì PSINITº anä insertinç thå � characteró 09h¬ 1Bh¬ 4Ah¬ 2Ch¬ 30h¬ 2Ch¬ 37h¬ 38h¬ 30h¬ anä 24h® � Theså enterieó arå facilitateä bù hittinç RETURÎ foò labeló afteò � thå firsô one» INSTALÌ incrementó thå labeì addresó bù onå wheî � yoõ hiô RETURÎ insteaä oæ givinç iô á ne÷ labeì oò aî address® � Onlù thå twï heø valueó foò eacè characteò arå typeä in¬ thå � loweò caså "h¢ jusô identifieó eacè aó representinç á bytå iî � hex. Inspectinç thå examplå abovå maù givå riså tï somå � questions® Thå firsô byte¬ 09h¬ ió á cuå tï thå WÓ prograí � tellinç iô thå numbeò oæ characteró iî thió commanä string® 1Bè � ió thå ASCIÉ escapå characteò anä 4Aè ió thå ASCIÉ codå foò "J¢ � iî hex® 2Cè ió thå commá useä aó á separator» 30h¬ 37h¬ anä 38h¬ � arå thå ASCIÉ codeó foò thå numberó "0"¬ "7"¬ anä "8"» anä 24è ió � "$"® Althougè thió sequencå wilì fiô here¬ iô ió noô reallù verù � flexible® Yoõ maù wanô tï seô somå oæ thå codeó thaô wilì fiô sucè aó � PALT:¬ PSTD:¬ ROLUP:¬ ROLDOW:¬ anä USR1º thrõ USR4:® Tablå 6-³ � oæ thå printeò Owner'ó Manuaì listó thå controì codeó foò prinô � mode¬ characteò size¬ typå spacinç anä sï on® PSTDº anä PALTº � coulä bå useä tï switcè betweeî 1° cpé anä 1² cpé densitieó � (characteò sizes)¬ foò example® Thió woulä requirå thå � following: PSTDº 0± Numbeò oæ characters PSTDº +± 1Ä 1° cpé densitù codå foò thå Prisí � Printer PALTº 01 PALTº +± 1Å 1² cpé densitù code Usinç theså codeó iî WordStaò documentó woulä requirå á ^PÎ foò � standarä anä ^PÁ foò alternatå densitù selection® ROLUPº anä ROLDOWº � coulä bå loadeä witè 01h¬ 19h¬ anä 01h¬ 14è respectivelù tï allo÷ � printinç subscriptó anä superscripts® Thå USRxº functionó mighô bå � useä tï turî variouó combinationó oæ proportionaì anä justifieä prinô � modeó oî anä off¬ foò example: USR1º 02 USR1º +± 0´ Printeò justifù ON USR1º +² 1° Selectó proportionaì spacinç mode USR2º 02 USR2º +± 0µ Printeò justifù OFF USR2º +² 0¶ Selectó fixeä spacinç mode Theså modeó woulä bå selecteä iî thå documenô bù ^PÑ anä ^P× � respectively® Theså coulä bå spliô uð intï individuaì controló foò � eacè parameteò iæ nï otheò "user¢ functionó werå needed. Mosô oæ thå locationó arå noô lonç enougè tï leô WÓ pasó � escapå sequenceó effectivelù tï thå printer® However¬ thió � sectioî oæ INSTALÌ caî alsï changå anù bytå iî thå WS.COÍ �Šprogram® Somå thingó thaô arå handù tï changå herå arå byteó � thaô determinå ho÷ WÓ configureó itselæ oî startup® Thå � followinç addresó labeló werå consolidateä froí severaì FOGHORÎ � articleó reprinteä iî thå Portablå Companion. ITITOGº 0° Startó WÓ witè INSERÔ OFF INITWF:+± 0° Startó WÓ witè Justificatioî OFF ITPOPNº FÆ Defaultó tï OMIÔ pagå numbers WIDº 7¸ Setó terminaì displaù screeî widtè tï 12° � characteró (maø valuå withouô thå warninç � message)® Minimuí valuå ió 4° heø oò 6´  � decimal. 038 0° Defaultó tï ruleò linå OFF INITWF:+´ 0° Defaultó tï Hypheî Helð OFF ITHELPº 0° Defaultó Helð leveì tï ° (0³ ió normal) DEL3º 1¹ Setó delaù timå iî hex¬ delayó thå displaù oæ � "helð screens¢ longeò oò shorteò aó desired® � DEL4º ió normallù 40h. Afteò yoõ havå madå anù changeó yoõ wanô tï try¬ makå thå lasô � label/addresó á "0¢ (zero)® INSTALÌ wilì givå yoõ onå lasô � chancå tï changå youò mind® Iæ alì ió aó yoõ desirå it¬ INSTALÌ � wilì savå youò modifieä WS.COÍ filå oî thå drivå yoõ designateä � aô thå beginning® Oî mù machinå thió takeó á while¬ jusô waiô � tilì thå driveó quiô turning® Yoõ caî theî trù youò creatioî bù � puttinç thå WÓ disë iî thå defaulô drive¬ givå iô á ^C¬ anä theî � WÓ . Thió bringó må tï thå incrediblù lonç prograí listinç thaô � followó thå texô oæ thió article® MBasiã allowó sendinç anù � ASCIÉ characteró tï thå printeò witè aî LPRINÔ CHR$(xx© � statement¬ sï É starteä writinç á littlå prograí tï makå á fe÷ � smalì computations¬ checë them¬ anä senä theí tï thå printeò � beforå startinç á printinç session® É guesó É goô carrieä � away... É starteä ouô bù LPRINTinç thå codeó É wanteä tï senä tï thå � printeò directly® Thió waó á littlå cumbersome¬ sï É addeä somå � routineó tï takå aî inpuô pagå sizå anä somå margiî sizeó anä � figurå thå valueó foò eacè programmablå commanä argumenô froí � theså inputs® É wanteä tï checë whaô É haä beforå É senô iô tï � thå printer¬ sï É puô iî á PRINÔ (tï thå screen© sectioî first® � Thió eventuallù gre÷ tï thå prograí listeä here® Yoõ wilì notå � thaô decimaì ASCIÉ codeó arå easieò tï uså iî BASIC¬ sï 1Bè � (escape© ió no÷ CHR$(27)® PRINTER.BAÓ ió á menõ driveî prograí thaô askó yoõ foò alì � thå informatioî needeä tï configurå youò printer® Marginó anä � pagå sizeó arå puô iî iî inches¬ mucè easieò thaî thinkinç iî � 48thó anä 120ths¬ anä thå prograí figureó ouô thå codå needeä bù � thå printeò tï givå yoõ whaô yoõ want® Noô alì thå Prisí Printeò � optionó arå covereä (sincå É don'ô havå coloò iî particular)¬ buô � mosô are® Iô ió morå orienteä tï thå sheeô feeder¬ sincå thaô ió � whaô É use¬ buô iô wilì worë witè pin-feeä papeò also® Iô ió � mostlù self-explanatory¬ buô somå commentó maù helð yoõ follo÷ � whaô É diä anä why. Thå strinç variableó startinç aô linå 10° jusô makå iô � easieò tï identifù thå prograí oî á listinç whilå usinç thå samå �Šlineó foò á sign-oî message® Mosô oæ thå variableó useä arå � listeä anä explaineä iî thå nexô section® Thå firsô 1· arå giveî � "default¢ valueó iî thå process» theså maù bå changeä tï whateveò � yoõ likå iî mosô cases® Thå stringó beginninç witè "D¢ arå useä � tï keeð froí havinç tï typå thå samå thinç oveò agaiî manù timeó � lateò iî thå program. DEÆ FÎ ió useä tï implemenô cursoò positioninç oî thå � screen» CHR$(13© (CÒ withouô LF© iî iô jusô resetó MBasicó � characteró peò linå counteò sï thaô extraneouó CRó arå noô � inserteä oî thå display. Althougè thå prograí gre÷ witè manù revisionó anä � modifications¬ É trieä tï keeð thå codå "toð down¢ aó mucè aó � possible® Therå arå á fe÷ conditionaì GOTOó thaô skið oveò partó � thaô arå sometimeó noô needeä buô onlù onå majoò reroutinç oæ thå � flo÷ (155° GOTÏ 950© ió used® Thå resô oæ iô ió handleä witè � GOSUBó whicè shoulä allo÷ easù understandinç oæ whaô ió goinç on. É firsô wrotå thå sectioî iî lineó 95° tï 131° tï prinô thå � codeó oî thå screeî aó theù werå tï bå senô tï thå printer¬ buô � thaô madå iô harä tï seå whaô yoõ had® Yoõ coulä substitutå thå � subroutinå froí linå 480° modifieä tï PRINÔ insteaä oæ LPRINÔ anä � tï displaù "¢ insteaä oæ CHR$(27© (whicè ió non-printinç oî � thå display© aô thió locatioî iæ yoõ prefeò tï seå exactlù whaô � yoõ arå sendinç tï thå printer® (Notå thaô somå boundarù checkó � arå madå tï keeð froí sendinç marginó thaô arå ofæ thå papeò oò � negativå values» theså shoulä bå retaineä iî somå form.) Alì oæ thå "gotchas¢ É founä iî usinç WordStaò witè mù Prisí � 13² arå explaineä iî thå screeî commentó includeä iî thå program® � Thå biggesô oneó comå froí attemptinç tï uså á smarô texô � formattinç prograí witè aî equallù smarô printer® WordStaò knowó � thå lengtè oæ eacè pagå becauså yoõ telì iô (defaulô PÌ ió 6¶ � lines)¬ sï iô "knows¢ iô musô senä thaô manù linefeedó tï geô tï � thå bottoí oæ á page® Iæ yoõ leavå thå printeró boundarù skið � switcè ON¬ foò example,iô wilì causå texô oî subsequenô pageó tï � crawì dowî abouô aî incè foò eacè page® Similarly¬ iæ yoõ changå � thå sizå oæ thå linefeeä tï somethinç otheò thaî 8/48thó (¶ lpi)¬ � followinç pagå formató wilì bå wronç unlesó yoõ redefinå thå pagå � lengtè tï WS. É havå thå Sprinô Optioî whicè flieó alonç aô 20° cpó iî � drafô font® Correspondencå fonô ió printeä aô abouô 11° cpó iî � FIXEÄ spacinç modå oò uð tï 15° cpó iî PROPORTIONAÌ spacing® Onå � thinç includeä witè thå Sprinô modå ió á drafô fonô characteò � spacinç oæ 13.³ cpi--thå onlù waù tï geô thió spacinç ió noô tï � senä ANÙ characteò settingó includinç size¬ font¬ oò typå spacinç � commandó tï thå printer® Then¬ iæ thå dið switcheó werå seô tï � thå 13.³ sizå anä drafô fonô aô printeò turn-on¬ yoõ caî uså thaô � sizå characters® Thió causeä somå oæ thå otherwiså extraneouó � conditionaì statementó iî thå LPRINÔ sectioî (linå 4800). Iæ yoõ uså piî feä continuouó papeò yoõ wilì uså thå � printeró FORÍ SEÔ switcè tï seô thå toð oæ forí aô thå � perforations® FORÍ SEÔ ió noô requireä wheî printinç witè � WordStaò anä sheeô feä paper® Tï LLISÔ MBasiã programs¬ FORÍ SEÔ � shoulä bå useä tï positioî thå firsô printeä line® Usinç FORÍ � SEÔ tï puô thå firsô linå somå distancå dowî thå pagå subtractó � thaô amounô froí thå printablå areá witè sheeô feä papeò (á 1¢ � bottoí margiî remainó aô 1¢ iî otheò words)® Left/righô marginó �Šcaî bå controlleä witè á WIDTÈ LPRINÔ statemenô tï lisô programó � withouô settinç marginó aô thå printer® Aó lonç aó yoõ dï noô � wanô thå printeò tï justifù youò printing¬ WordStaò margiî � controló wilì worë finå foò printinç documents® Iæ marginó arå � seô iî thå printeò anä WordStaò sendó á linå thaô ió toï long¬ � thå printeò wilì adä aî extrá carriagå returî anä prinô á � dangler. Microjustificatioî ió noô supporteä betweeî WordStaò anä thå � Prisí Printer® Tï geô proportionaì printinç froí thå printeò � requireó thå printeò justificatioî OÎ anä requireó settinç � margins® É havå founä thå mosô reliablå methoä foò usinç thió � capabilitù ió tï composå thå texô iî WordStaò "N¢ (non-document© � mode® Thió modå doeó noô adä CRó oò LFó aô thå enä oæ eacè line® � Thå printeò woulä ratheò dï itó owî worä wrappinç iî thió modå � anyway® Thå probleí ió thaô thå numbeò oæ characteró peò incè � changeó iî thå proportionaì prinô modå (theù arå mucè closeò � together)¬ anä therå ió nï easù waù tï figurå ouô wherå lineó � wilì end® Thå printeò wilì justifù lineó endeä witè á CR¬ buô � theù musô bå morå thaî 75¥ oæ thå margiî widtè anä nï greateò � thaî thå margiî width® Iæ yoõ seô á ¶ 1/2¢ printline¬ turî WÓ � justificatioî off¬ anä uså thå defaulô linå lengtè iî WÓ oæ 6µ � characteró yoõ wilì finä somå lineó spreaä ouô tï coveò thå widtè � oæ thå pagå buô mosô wilì bå toï short® Iî otheò words¬ thå � actuaì spacinç yoõ geô iî 1° characteró peò incè proportionaì ió � 1² oò 13® Unfortunately¬ É havå founä nï waù tï determinå thå � resultinç spacinç accuratelù becauså iô dependó oî whaô letteró � eacè linå has» "i's¢ takå uð verù littlå rooí compareä tï "m's"® � Anù linå witè toï manù lonç letteró iî iô maù enä uð witè thå � printeò wrappinç á word® Sincå WÓ inserteä á CR/LÆ aô thå enä oæ � thå line¬ thå printeò wilì leavå á dangleò whilå screwinç uð thå � pagå formaô witè aî extrá linefeeä thaô WÓ ió noô counting. Thå bottoí linå abouô thå printeró proportionaì spacinç modå � ió thaô iô doeó iô bù itselæ verù nicely¬ buô WSó attemptó aô � formattinç arå noô verù compatible® Tï prinô á non-documenô texô � filå uså PIÐ LST:=.® ERAsinç thå � SAMPLE.TXÔ filå oî thå WÓ disë allowó rooí foò PIÐ witè singlå � densitù drives® PIÐ caî theî bå useä viá thå WordStaò Ò commanä � withouô leavinç WS. Thå prettiesô justificatioî froí WordStaò "D¢ modå fileó ió � tï turî WÓ justifyinç OFF¬ leavå thå printeò justifyinç OÎ anä � proportionaì OFF¬ anä seô thå marginó appropriately® Thió � techniquå makeó alì spaceó oî eacè linå equal® Don'ô forgeô tï � reformaô (^B© thå filå iæ yoõ wrotå iô witè WÓ justificatioî on® � Paragrapè indentinç wilì varù somå anä tabulaò datá wilì noô linå � uð exactlù witè justifù OÎ becauså eacè linå ió stretcheä ouô á � differenô amounô tï filì thå widtè oæ thå margins® Onå waù � arounä thió probleí ió tï seô horizontaì tabó foò paragrapè � indentinç oò columnó anä uså á speciaì taâ characteò iî onå oæ � thå "user¢ functionó (seô iô uð witè INSTALL)® Anotheò waù ió tï � leavå thå justificatioî ofæ foò numbers¬ lists¬ oò otheò columnaò � data. Configurinç thå printeò witè thå PRINTEÒ prograí ió mosô � easilù accomplisheä bù copyinç youò MBasiã disk¬ ERAsinç thå � uneedeä CBasiã files¬ anä puttinç á copù oæ PRINTER.BAÓ oî thaô � disk® Wheî yoõ arå readù tï prinô á documenô oò file¬ savå iô �Šwitè á ^KD® Takå thå disë witè youò texô filå ouô oæ drivå Bº � anä puô thå MBasic/PRINTER.BAÓ disë iî itó place® Uså WordStaró � "R¢ commanä tï ruî á prograí anä typå MBASIà iî responså tï thå � prompt® Afteò MBasiã ió loadeä typå LOAÄ "PRINTER"® Afteò iô � haó loadeä typå RUÎ anä answeò thå programó menõ questions® Dï � NOÔ selecô thå "reaä lasô saveä parameters¢ optioî thå firsô timå � througè becauså therå wilì noô bå á PRINTER.DAÔ filå tï read» � savå thå defaulô parameteró oò youò choiceó oî thaô firsô ruî anä � iô wilì creatå thå datá filå foò you® Thå printeò musô bå OÎ � LINÅ anä havå papeò iî iô (FAULÔ lighô OFF© tï accepô thå codeó � yoõ senä it® Iæ everythinç stopó wheî yoõ senä codeó oò texô tï � thå printer¬ jusô cyclå thå modå switcè tï OFÆ LINÅ anä bacë tï � OÎ LINÅ tï senä á "go¢ signaì tï thå CP/Í Lisô Driveò protocoì � checker® Wheî thå printeò haó accepteä thå codeó anä yoõ havå � thå MBasiã prompô back¬ removå thå MBasiã disk¬ puô thå documenô � disë bacë iî drivå B:¬ anä typå thå MBasiã commanä SYSTEM® Thió � wilì senä yoõ bacë tï WordStaò whicè askó yoõ tï hiô anù key¬ � theî iô reloadó itself® Thió procesó ió verù quicë anä easù iæ � yoõ prograí threå "speciaì functioî keys¢ oî youò WÓ disë (uså � SETUP© witè thå commandó RMBASIC¬ LOAÄ "PRINTER",R¬ anä � SYSTEM® Yoõ musô havå drivå Bº loggeä iî aó defaulô iî WÓ � foò thió procedurå tï worë correctlù aó describeä (thió assumeó � WÓ iî drivå Aº anä youò texô filå ió replaceä witè MBasiã iî � drivå B:). Thaô ió alì therå ió tï it¡ É aí surå yoõ wilì wanô tï � changå thå prograí tï dï thingó youò way¬ sucè aó ignorinç drafô � vó correspondencå fonô iæ yoõ dï noô havå thå Sprinô modå oò � configurinç thå defaulô valueó foò uså oæ rolì papeò ratheò thaî � sheetó iæ yoõ don'ô havå thå sheeô feeder® Iô shoulä bå � relativelù easù tï changå á copù froí thå FOÇ librarù (wheî iô � goeó in© oò aó yoõ keù iô iî yourself® Iæ yoõ havå somå otheò � typå printer¬ thió maù givå yoõ somå ideaó oî ho÷ tï geô iô � workinç thå waù yoõ want® Havå fun! key¬ � theî iô reloadó itself® Thió procesó ió verù quicë anä easù iæ � yoõ prograí threå "speciaì functioî keys¢ oî youò WÓ disë (uså � SETUP© witè thå commandó RMBASIC¬ LOAÄ "PRINTER",R¬ anä � SYSTEM® Yoõ musô havå drivå Bº loggeä iî aó defaulô iî WÓ � foò thió procedurå tï worë correctlù aó describeä (thió assumeó � WÓ iî drivå Aº anä youò texô filå ió replaceä witè MBasiã iî � drivå B:). Thaô ió alì therå ió tï it¡ É aí surå yoõ wilì wanô tï � changå thå prograí tï dï thingó youò way¬ sucè aó ignorinç drafô � vó correspondencå fonô iæ yoõ dï noô havå thå Sprinô modå oò � configurinç thå defaulô valueó foò us10 PRINT CHR$(26):PRINT 20 PRINT" *************************************************" 30 PRINT" * PROPORTIONAL PRINTING WITH C ITOH PROWRITER *" 40 PRINT" *************************************************":PRINT 50 INPUT " Was PIP with [Z] used on file to be printed? (Y/N)";Y$:PRINT 60 IF Y$ = "Y" OR Y$ = "y" THEN GOTO 210 70 IF Y$ = "N" OR Y$ = "n" THEN GOTO 80 ELSE 50 80 PRINT:PRINT " Return to CP/M and PIP file with [Z] parameter as follows:":PRINT 90 PRINT " PIP D:NEWFILEN.AME = D:OLDFILEN.AME[Z] ":PRINT 100 PRINT" To return to CP/M, on Ok prompt type SYSTEM ":PRINT 105 PRINT" To return to program, on Ok prompt type RUN ":PRINT 110 GOTO 7040 210 DATA 19,26,111,19,26,103,94,14,5,195,5,0 220 RESTORE 210 230 FOR I = 0 TO 11 240 READ XX 250 POKE &H40+I,XX 260 NEXT I 270 DEF USR 0 = &H40 280 GOTO 2890 450 FOR III = 1 TO LEN(D$) 460 C$ = MID$(D$,III,1) 470 IF GRAPHFLAG = 1 THEN GOTO 580 480 IF ASC(C$) < &H20 THEN GOTO 640 490 IF STRIKEFLAG = 1 THEN GOTO 1770 510 Z$ = USR 0 (C$) 520 IF INTFLAG > 0 THEN GOTO 1850 540 NEXT III 550 RETURN 580 IF C$ = "Z" THEN GRAPHFLAG = 0 : GOTO 540 590 C$ = CHR$(ASC(C$) + 128) 600 GOTO 510 640 ON ASC(C$) GOTO 790, 820, 920, 840, 1020, 1050 660 ON ASC(C$)-6 GOTO 540, 1110, 540, 510, 540 680 ON ASC(C$)-11 GOTO 540, 510, 1150, 1050, 540 700 ON ASC(C$)-16 GOTO 1180, 1210, 1240, 1340, 540 720 ON ASC(C$)-21 GOTO 1500, 1670, 1740, 540, 540 740 IF ASC(C$) = &H1B THEN GOTO 510 745 IF ASC(C$) = &H1F THEN C$ = "-" : GOTO 510 760 GOTO 540 790 PITMEM$ = "E" : CON$ = "E"+CHR$(&H1B) : GOTO 1810 820 GOTO 840 840 BOLDFLAG = (BOLDFLAG + 1) MOD 2 850 IF BOLDFLAG = 0 THEN GOTO 880 860 BLDMEM$ = "!" : CON$ = "!"+CHR$(&H1B) : GOTO 1810 880 BLDMEM$ = CHR$(&H22) 890 CON$ = CHR$(&H22)+CHR$(&H1B) : GOTO 1810 920 PRINT "A Control C in the text has stopped the print" 930 PRINT "Press any key to resume" + CHR$(7) 940 ISTOP = 0 960 CON$ = INKEY$ : ISTOP = ISTOP + 1 970 IF ISTOP > 150 THEN PRINT CHR$(7) : ISTOP = 0 980 IF CON$ = "" GOTO 960 990 GOTO 540 1020 GRAPHFLAG = 1: GOTO 540 1050 IF PITCH <> 0 THEN GOTO 1080 1060 CON$ = "6"+CHR$(27)+"6"+CHR$(27) : GOTO 1810 1080 C$ = " " : GOTO 510 1110 CON$ = "]"+CHR$(&H1B)+CHR$(8)+"["+CHR$(&H1B) 1120 GOTO 1810 1150 PITMEM$ = "P" : CON$ = "P"+CHR$(&H1B) : GOTO 1810 1180 PITMEM$ = "Q" : CON$ ="Q"+CHR$(&H1B) : GOTO 1810 1210 PITMEM$ = "N" : CON$ = "N"+CHR$(&H1B) : GOTO 1810 1240 UNDERFLAG = (UNDERFLAG + 1) MOD 2 1250 IF UNDERFLAG = 0 GOTO 1280 1260 CON$ = "X"+CHR$(&H1B) : GOTO 1810 1280 CON$ = "Y"+CHR$(&H1B) : GOTO 1810 1340 SUPERFLAG = (SUPERFLAG +1) MOD 2 1350 IF SUPERFLAG = 0 GOTO 1430 1360 C$ = RIGHT$(STR$(SR),2) 1370 IF MID$(C$,1,1) = " " THEN MID$(C$,1,1) = "0" 1380 C$ = RIGHT$(C$,1) + LEFT$(C$,1) 1390 CON$ = "r"+CHR$(27)+"["+CHR$(27) 1400 CON$ = "f"+CHR$(27)+CHR$(10)+C$+"T"+CHR$(27)+CON$ 1410 GOTO 1810 1430 C$ = RIGHT$(STR$(LH),2) 1440 IF MID$(C$,1,1) =" " THEN MID$(C$,1,1) = "0" 1450 CON$ = RIGHT$(C$,1)+LEFT$(C$,1) 1460 CON$ = "]"+CHR$(27)+CON$+"T"+CHR$(27)+CHR$(10) 1470 GOTO 1810 1500 SUBFLAG = (SUBFLAG + 1) MOD 2 1510 IF SUBFLAG = 0 GOTO 1590 1520 C$ = RIGHT$(STR$(SR),2) 1530 IF MID$(C$,1,1) =" " THEN MID$(C$,1,1) = "0" 1540 C$ = RIGHT$(C$,1) + LEFT$(C$,1) 1550 CON$ = "f"+CHR$(27)+"["+CHR$(27) 1560 CON$ = "r"+CHR$(27)+CHR$(10)+C$+"T"+CHR$(27)+CON$ 1570 GOTO 1810 1590 C$ = RIGHT$(STR$(LH),2) 1600 IF MID$(C$,1,1) = " " THEN MID$(C$,1,1) = "0" 1610 CON$ = RIGHT$(C$,1)+LEFT$(C$,1) 1620 CON$ = "]"+CHR$(27)+"f"+CHR$(27)+CON$ 1630 CON$ = CON$ +"T"+CHR$(27)+CHR$(10) 1640 GOTO 1810 1670 WIDEFLAG = (WIDEFLAG + 1) MOD 2 1680 IF WIDEFLAG = 0 GOTO 1710 1690 C$ = CHR$(&HE) : GOTO 510 1710 C$ = CHR$(&HF) : GOTO 510 1740 STRIKEFLAG = (STRIKEFLAG + 1) MOD 2 1750 GOTO 540 1770 CON$ = "-"+"]"+CHR$(&H1B)+CHR$(8)+C$+"["+CHR$(&H1B) 1780 GOTO 1810 1810 INTFLAG = LEN(CON$) - 1 1820 C$ = RIGHT$(CON$,1) : GOTO 510 1850 C$ = MID$(CON$,INTFLAG,1) 1860 INTFLAG = INTFLAG - 1 : GOTO 510 1920 IZ = INSTR(FIRSTCOL,FILLIN$," ") 1930 IF IZ <> 0 THEN GOTO 1960 1940 RETURN 1960 RGTPART$ = RIGHT$(FILLIN$,LEN(FILLIN$)-IZ-1) 1970 FILLIN$ = LEFT$(FILLIN$,IZ)+RGTPART$ 1980 GOTO 1920 2050 IZ = LEN(FILLIN$) 2080 IF IZ = 0 THEN IZ = 1 : GOTO 2130 2090 IF MID$(FILLIN$,IZ,1) <> " " GOTO 2130 2100 IZ = IZ - 1 : GOTO 2080 2130 FILLIN$ = LEFT$(FILLIN$,IZ) 2140 IF IZ = 1 THEN GOTO 2220 2150 IZ = 1 2180 IF MID$(FILLIN$,IZ,1) <> " " GOTO 2220 2190 IZ = IZ + 1 : GOTO 2180 2220 FIRSTCOL = IZ 2230 IF MID$(FILLIN$,IZ,1) = CHR$(15) THEN GOTO 2260 2240 GOSUB 1920 2260 LASTCOL = LEN(FILLIN$) : RETURN 2320 DOTSUM = 0 2330 ENDINDEX = LASTCOL 2340 IF LASTCOL < LEN(FILLIN$) THEN ENDINDEX = LEN(FILLIN$) 2350 FOR IZ = FIRSTCOL TO ENDINDEX 2360 IF IZ > LEN(FILLIN$) THEN GOTO 2630 2370 DOTIND = ASC(MID$(FILLIN$,IZ,1))-&H20 2380 IF DOTIND < 0 THEN GOTO 2470 2390 IF PITCH <> 0 THEN GOTO 2430 2400 DOTSUM = DOTSUM + DOTS(DOTIND)*SIZE 2410 GOTO 2600 2430 DOTSUM = DOTSUM + PITCH*SIZE 2440 GOTO 2600 2470 IF DOTIND <> 8 - 32 THEN GOTO 2530 2490 IZ = IZ +1 2500 IF MID$(FILLIN$,IZ,1) < CHR$(&H20) THEN GOTO 2490 2510 GOTO 2600 2530 IF DOTIND=1-32 THEN PITCH =13.3333 : GOTO 2600 2540 IF DOTIND=14-32 THEN PITCH=0 : GOTO 2600 2550 IF DOTIND=17-32 THEN PITCH=9.41177 : GOTO 2600 2560 IF DOTIND=18-32 THEN PITCH=16 : GOTO 2600 2570 IF DOTIND=23-32 THEN SIZE = (SIZE MOD 2) + 1 2580 IF DOTIND=15-32 THEN DOTSUM = DOTSUM + 12 2600 NEXT IZ 2630 DOTSUM = INT(DOTSUM +.5) : RETURN 2750 DATA 7 , 7 , 10 , 14 , 12 , 16 , 13 , 7 2760 DATA 7 , 7 , 12 , 12 , 7 , 12 , 7 , 12 2770 DATA 12 , 12 , 12 , 12 , 12 , 12 , 12 , 12 2780 DATA 12 , 12 , 7 , 7 , 12 , 12 , 12 , 12 2790 DATA 14 , 16 , 15 , 14 , 15 , 15 , 15 , 14 2800 DATA 15 , 9 , 13 , 12 , 13 , 17 , 16 , 15 2810 DATA 13 , 16 , 15 , 12 , 14 , 15 , 16 , 17 2820 DATA 11 , 14 , 11 , 12 , 12 , 12 , 12 , 12 2830 DATA 7 , 12 , 12 , 10 , 12 , 12 , 10 , 12 2840 DATA 12 , 8 , 7 , 10 , 8 , 16 , 12 , 12 2850 DATA 12 , 12 , 10 , 12 , 10 , 12 , 12 , 16 2860 DATA 12 , 12 , 10 , 10 , 7 , 10 , 12 , 0 2890 DIM DOTS(95) 2940 RESTORE 2750 2950 FOR I = 0 TO 95 2960 READ DOTS(I) 2970 NEXT I 3010 INPUT "Enter name of file to print"; FILENAME$ 3020 OPEN "I",1,FILENAME$ 3040 PRINT CHR$(26) 3050 PRINT " PRINTING ";FILENAME$:PRINT 3060 D$ = CHR$(&H1B) + "P" 3070 GOSUB 450 3100 LH = 24 : PL = 66 : MT = 3 : MB = 8 : HM = 2 : FM = 2 3110 OP = 8 : PN = 1 : SR = 9 : POFF = 30 3120 PAGEFLAG = 1 : HEADERFLAG = 0 3130 FOOTERFLAG = 0 : JUSTFLAG = 1 3140 SIZE = 1 : PITCH = 0 : PLENGTH = 1584 : PLINES = 0 3150 PITMEM$ = "P" : BLDMEM$ = CHR$(&H22) 3180 GOTO 4880 3250 CONRET = 0 3260 DOTSPEC$ = MID$(FILLIN$,2,2) 3270 IF DOTSPEC$ = "PA" THEN CONRET = 1 : RETURN 3280 IF DOTSPEC$ = "CP" THEN GOTO 3580 3290 IF DOTSPEC$ = ".C" THEN GOTO 3640 3300 IF DOTSPEC$ = "HE" THEN GOTO 3730 3310 IF DOTSPEC$ = "FO" THEN GOTO 3840 3320 IF DOTSPEC$ = "OP" THEN PAGEFLAG = 0 : RETURN 3330 IF DOTSPEC$ = "LH" THEN GOTO 4230 3340 IF DOTSPEC$ = "PL" THEN GOTO 4370 3350 IF DOTSPEC$ = "MT" THEN GOTO 4430 3360 IF DOTSPEC$ = "MB" THEN GOTO 4480 3370 IF DOTSPEC$ = "HM" THEN GOTO 4530 3380 IF DOTSPEC$ = "FM" THEN GOTO 4580 3390 IF DOTSPEC$ = "PO" THEN GOTO 4710 3400 IF DOTSPEC$ = ".T" THEN GOTO 3950 3410 IF DOTSPEC$ = ".P" THEN GOTO 4070 3420 IF DOTSPEC$ = ".S" THEN GOTO 4120 3430 IF DOTSPEC$ = "UJ" THEN GOTO 4630 3440 IF DOTSPEC$ = "SR" THEN GOTO 4330 3450 IF DOTSPEC$ = "PN" THEN GOTO 4020 3460 IF DOTSPEC$ = ".." THEN RETURN 3470 PRINT "UNRECOGNIZED DOT-COMMAND": RETURN 3510 SPECNUM = 0 3520 IF LEN(FILLIN$) < 4 THEN RETURN 3530 SPECNUM = VAL(MID$(FILLIN$,4,2)) 3540 RETURN 3580 GOSUB 3510 3590 IF PL - MB - LINENUMBER >= SPECNUM THEN RETURN 3600 CONRET = 1 : RETURN 3640 GOSUB 3510 3650 COLUMNS = SPECNUM 3670 IF COLUMNS < 1 THEN COLUMNS = 1 3680 IF COLUMNS > 3 THEN COLUMNS = 3 3690 RETURN 3730 I = LEN(FILLIN$)-3 3740 IF I < 1 THEN RETURN 3750 HEADERFLAG = 1 3760 HEADER$ = RIGHT$(FILLIN$,I) + CHR$(&HD) + CHR$(&HA) 3770 HDRK = INSTR(1,HEADER$,CHR$(11)) 3780 HDRN = INSTR(1,HEADER$,"#") 3790 IF HDRK <> 0 THEN MID$(HEADER$,HDRK,1) = " " 3800 IF HDRN <> 0 THEN MID$(HEADER$,HDRN,1) = " " 3810 RETURN 3840 I = LEN(FILLIN$) - 3 3850 IF I < 1 THEN RETURN 3860 FOOTERFLAG = 1 3870 FOOTER$ = RIGHT$(FILLIN$,I) + CHR$(&HD) + CHR$(&HA) 3880 FTRK = INSTR(1,FOOTER$,CHR$(11)) 3890 FTRN = INSTR(1,FOOTER$,"#") 3900 IF FTRK <> 0 THEN MID$(FOOTER$,FTRK,1) = " " 3910 IF FTRN <> 0 THEN MID$(FOOTER$,FTRN,1) = " " 3920 RETURN 3950 TITLEFLAG = 1 3960 I = LEN(FILLIN$) - 3 3970 IF I < 1 THEN RETURN 3980 TITLE$ = RIGHT$(FILLIN$,I)+CHR$(&HD)+CHR$(&HA) 3990 RETURN 4020 GOSUB 3510 4030 PN = SPECNUM : RETURN 4070 PLENGTH = VAL(MID$(FILLIN$,4,4)) 4080 RETURN 4120 FILLIN$ = RIGHT$(FILLIN$,LEN(FILLIN$)-3) 4130 GOSUB 2050 4140 GOSUB 2320 4150 DOTSAMPLE = DOTSUM 4160 GOSUB 4750 4170 FILLIN$ = "." + FILLIN$ 4180 RETURN 4230 GOSUB 3510 4240 IF SPECNUM > 99 THEN SPECNUM = 99 4250 LH = SPECNUM 4260 D$ = RIGHT$(STR$(LH),2) 4270 IF MID$(D$,1,1) = " " THEN MID$(D$,1) = 0 4280 D$ = CHR$(&H1B)+"T"+D$ 4290 GOSUB 450 4300 RETURN 4330 GOSUB 3510 4340 SR = SPECNUM : RETURN 4370 GOSUB 3510 4380 PL = SPECNUM 4390 RETURN 4430 GOSUB 3510 4440 MT = SPECNUM 4450 RETURN 4480 GOSUB 3510 4490 MB = SPECNUM 4500 RETURN 4530 GOSUB 3510 4540 HM = SPECNUM 4550 RETURN 4580 GOSUB 3510 4590 FM = SPECNUM 4600 RETURN 4630 GOSUB 3510 4640 JUSTFLAG = SPECNUM 4650 RETURN 4710 GOSUB 3510 4720 POFF = (SPECNUM - 8)*16 + 30 4750 OFFSET = INT((1280 - DOTSAMPLE)/2) + POFF 4760 OFFS$ = STR$(OFFSET) 4770 IF MID$(OFFS$,1,1) = " " THEN MID$(OFFS$,1,1) = "0" 4780 IF MID$(OFFS$,2,1) = " " THEN MID$(OFFS$,2,1) = "0" 4790 OFFS$ = CHR$(&H1B)+"F"+RIGHT$("000"+OFFS$,4) 4800 RETURN 4880 LINE INPUT#1,FILLIN$ 4890 IF LEN(FILLIN$) < 3 THEN GOTO 4920 4900 IF MID$(FILLIN$,2,2) = ".S" THEN GOTO 5130 4920 DOTSAMPLE = 0 4930 FOR I = 1 TO 20 4950 LINE INPUT#1,FILLIN$ 4960 IF LEN(FILLIN$) = 0 THEN GOTO 4950 4970 IF ASC(FILLIN$) = ASC(".") THEN GOTO 4950 4980 GOSUB 2050 4990 GOSUB 2320 5000 IF DOTSUM > DOTSAMPLE THEN DOTSAMPLE = DOTSUM 5020 NEXT I 5050 DOTSAMPLE = DOTSAMPLE + 40 5080 GOSUB 4750 5130 CLOSE 5140 OPEN "I",1,FILENAME$ : ON ERROR GOTO 7030 5150 GOTO 5640 5180 CONRET = 0 5190 FOR IY = 1 TO PL-MB-LINENUMBER 5200 LPRINT 5210 LINENUMBER = LINENUMBER + 1 : PLINES = PLINES + LH 5220 NEXT IY 5250 IF FOOTERFLAG = 0 THEN GOTO 5440 5260 FOR I = 1 TO FM 5270 LPRINT 5280 NEXT I 5290 IF FTRK > 2 THEN MID$(FOOTER$,FTRK-2,3) = " " 5300 IF FTRN > 2 THEN MID$(FOOTER$,FTRN-2,3) = " " 5310 IZ = FTRK 5320 IF (FTRK <> 0) AND ((PN MOD 2) = 0) THEN GOTO 5360 5330 IF FTRN = 0 THEN GOTO 5390 5340 IZ = FTRN 5360 PNUM$=STR$(PN) : PNUMLEN = LEN(PNUM$) 5370 MID$(FOOTER,IZ-PNUMLEN+1,PNUMLEN) = PNUM$ 5390 RESTOR$ = CHR$(27)+BLDMEM$+CHR$(27)+PITMEM$ 5400 D$ = OFFS$ + FOOTER$ + RESTOR$ : GOSUB 450 5410 PLINES = PLINES + LH 5440 PN = PN + 1 5450 RMA144 = PLENGTH - (PLINES MOD PLENGTH) 5460 NUMBERLF = INT(RMA144/LH) 5470 IF NUMBERLF < 1 THEN GOTO 5530 5480 FOR I = 1 TO NUMBERLF 5490 LPRINT 5500 RMA144 = RMA144 - LH 5510 NEXT I 5530 IF RMA144 = 0 THEN GOTO 5640 5540 D$ = RIGHT$(STR$(RMA144),2) 5550 IF MID$(D$,1,1) = " " THEN MID$(D$,1,1) ="0" 5560 D$ = CHR$(27)+"T"+D$+CHR$(13)+CHR$(10) : GOSUB 450 5570 D$ = RIGHT$(STR$(LH),2) 5580 IF MID$(D$,1,1) = " " THEN MID$(D$,1,1) = "0" 5590 D$ = CHR$(27)+"T"+D$ : GOSUB 450 5640 LINENUMBER = 1 : PLINES = 0 5650 LINE INPUT#1, FILLIN$ 5660 PRINT FILLIN$ 5670 IF LEN(FILLIN$) = 0 THEN GOTO 5760 5680 IF ASC(FILLIN$) <> ASC(".") THEN GOTO 5760 5690 GOSUB 3250 5700 IF CONRET = 1 THEN GOTO 5180 5710 GOTO 5640 5760 IF MT - HM < LINENUMBER THEN GOTO 5850 5770 LPRINT 5780 LINENUMBER = LINENUMBER + 1 5790 PLINES = PLINES + LH 5800 GOTO 5760 5850 IF PN <> 1 GOTO 5930 5860 IF TITLEFLAG = 0 GOTO 5930 5870 D$ = TITLE$ : GOSUB 450 5880 LINENUMBER = LINENUMBER + 1 5890 PLINES = PLINES + LH 5900 GOTO 6100 5930 IF HEADERFLAG = 0 THEN GOTO 6100  5940 IF HDRK > 2 THEN MID$(HEADER$,HDRK-2,3) = " " 5950 IF HDRN > 2 THEN MID$(HEADER$,HDRN-2,3) = " " 5960 IZ = HDRK 5970 IF (HDRK <> 0) AND ((PN MOD 2) = 0) THEN GOTO 6010 5980 IF HDRN = 0 THEN GOTO 6040 5990 IZ = HDRN 6010 PNUM$ = STR$(PN) : PNUMLEN = LEN(PNUM$) 6020 MID$(HEADER$,IZ-PNUMLEN+1,PNUMLEN) = PNUM$ 6040 RESTOR$ = CHR$(27)+BLDMEM$+CHR$(27)+PITMEM$ 6050 D$ = OFFS$+HEADER$ + RESTOR$ : GOSUB 450 6060 LINENUMBER = LINENUMBER + 1 6070 PLINES = PLINES + LH 6100 IF LINENUMBER > MT THEN GOTO 6210 6110 LPRINT 6120 LINENUMBER = LINENUMBER + 1 6130 PLINES = PLINES + LH 6140 GOTO 6100 6180 LINE INPUT #1, FILLIN$ 6190 PRINT FILLIN$ 6210 IF PAGEFLAG = 0 THEN GOTO 6340 6220 IF LEN(FILLIN$) = 0 THEN GOTO 6180 6230 GOTO 6340 6280 IF PAGEFLAG = 0 THEN GOTO 6310 6290 IF LINENUMBER > (PL - MB) THEN GOTO 5250 6310 LINE INPUT #1, FILLIN$ 6320 PRINT FILLIN$ 6340 IF LEN(FILLIN$) = 0 THEN GOTO 6400 6350 IF ASC(FILLIN$) = ASC(".") THEN GOSUB 3250 6360 IF CONRET = 1 THEN GOTO 5180 6370 IF ASC(FILLIN$) = ASC(".") THEN GOTO 6280 6380 IF JUSTFLAG <> 0 THEN GOTO 6480 6400 D$ = FILLIN$+CHR$(&HD)+CHR$(&HA) 6410 GOSUB 450 6420 LINENUMBER = LINENUMBER + 1 6430 PLINES = PLINES + LH 6440 GOTO 6280 6480 GOSUB 2050 6490 GOSUB 2320 6500 ADJDOTS = DOTSAMPLE-DOTSUM 6510 IF ADJDOTS < 0 THEN GOTO 6400 6540 NUMSPACE = 0 6550 FOR I = FIRSTCOL TO LASTCOL 6560 IF MID$(FILLIN$,I,1) <> " " THEN GOTO 6590 6570 NUMSPACE = NUMSPACE + 1 6590 NEXT I 6630 IF NUMSPACE = 0 THEN GOTO 6710 6640 ADDDOTS = 1 + INT(ADJDOTS/NUMSPACE) 6670 IF ADDDOTS > 36 THEN ADDDOTS = 12 6710 D$ = OFFS$ 6720 GOSUB 450 6730 FOR I = FIRSTCOL TO LASTCOL 6740 D$ = MID$(FILLIN$,I,1) 6750 IF D$ <> " " THEN GOTO 6940 6760 IF ADJDOTS = 0 THEN GOTO 6940 6770 IF ADJDOTS < ADDDOTS THEN ADDDOTS = ADJDOTS 6780 ADJDOTS = ADJDOTS - ADDDOTS 6790 NOWDOTS = ADDDOTS 6810 IF NOWDOTS > 6 THEN GOTO 6860 6820 D$ = CHR$(&H1B)+CHR$(NOWDOTS+48) 6830 GOSUB 450 6840 GOTO 6920 6860 D$ = CHR$(&H1B)+"6" 6870 GOSUB 450 6880 NOWDOTS = NOWDOTS - 6 6890 IF NOWDOTS = 0 THEN GOTO 6920 6900 GOTO 6810 6920 D$ = " " 6940 GOSUB 450 6950 NEXT I 6960 D$ = CHR$(&HD) + CHR$(&HA) 6970 GOSUB 450 6980 LINENUMBER = LINENUMBER + 1 6990 PLINES = PLINES + LH 7000 GOTO 6280 7030 CLOSE 7040 END  CHR$(&HA) 6970 GOSUB 450 6980 LINENUMBER = LINENUMBER + 1 6990 PLINES = PLINES + LH 7000 GOTOLLIN$,I,1) <> " " THEN GOTO 6590 6570 NUMSPACE = NUMSPACE + 1 6590 NEXT I 6630 IF NUMSPACE = 0 THEN GOTO 6710 6640 ADDDOTS = 1 + INT(ADJDOTS/NUMSPACE) 6670 IF ADDDOTS > 36 THEN ADDDOTS = 12 6710 D$ = OFFS$ 6720 GOSUB 450 6730 FOR I = FIRSTCOL TO LASTCOL 6740 D$ = MID$(FILLIN$,I,1) 6750 IF D$ <> " " THEN GOTO 6940 6760 IF ADJDOTS = 0 THEN GOTO 6940 6770 IF ADJDOTS < ADDDOTS THEN ADDDOTS = ADJDOTS 6780 ADJDOTS = ADJDOTS - ADDDOTS 6790 NOWDOTS = ADDDOTS 6810 IF NOWDOTS > 6 THEN GOTO 6860 6820 D$ = CHR$(&H1B)+CHR$(NOWDOTS+48) 6830 GOSUB 450 6840 GOTO 6920 6860 D$ = CHR$(&H1B)+"6" 6870 GOSUB 450Name of this file: Documentation for: PRO-BAS.DOC PRO.BAS Type of program: MBasic Utility Program Function: Prints right justified output from a WordStar file using the C Itoh ProWriter dot matrix printer's proportional font. Should also work with NEC 8023A and similar printers. Source: Bob Thomson Tacoma, WA Author - Mark Gardner, Interface Age Jan 84 Procedure to use: Prepare normal WordStar file in the (D)ocument mode. Use Normal commands (see below). Before printing PIP the file to a new filename with the [Z] parameter. Run PRO in MBasic and call up the PIPped file for printing. On Screen Messages: ************************************************** * PROPORTIONAL PRINTING WITH C ITOH PROWRITER * ************************************************** Was PIP with [Z] used on file to print (Y/N)? Y Enter name of file to print: _ Notes: The file should normally be between 79 and 104 columns for a normal 8-1/2" by 11" page. Printing is quite slow since the program calculates the number of dot spaces for each letter and the spaces between them and the words on a line. For more information, read the Interface Age article. Each file to be printed should be terminated with a .PA to show a page break. Leading spaces will be ignored unless preceded by ^PO. ^PO can also be used to prevent large spaces between few words on the last line of a paragraph. Text will be justified on the longest line length in the first twenty lines. Line length to be used for justification can be forced by placing the desired line after ..S at the beginning of the file. Below is the list of commands recognized and used by the program. You may find it handy to print the command summary, given below, for future reference. ==================================================== WordStar Formatting Command Codes Used By PRO.BAS Command Description  ^S Underscore Toggle. Underlines all characters and spaces between the bracketing ^S command codes. ^D Boldface/Doublestrike Toggle. Uses the ProWriter bold print characters "significantly darker than normal characters." ^X Strikeout Toggle. Bracketed characters are struck over with a hyphen. Must not be used including normal spaces, use instead of space, or bracket individual words. ^V Subscript Toggle. Bracketed characters are printed as a subscript. The paper is rolled forward before printing. ^T Superscript Toggle. Bracketed characters are printed as a superscript. The paper is rolled backward before printing. ^C Stop Print. The print operation is suspended until you press a key on the keyboard. A message is put on screen with a beep. ^A Select Elite Pitch. Switches font to 12 pitch ProWriter set. The lines containing these characters are still justified. ^N Select Proportional Set. Switches font to the ProWriter proportional set. The lines are justified. ^K Left Page Number Position. Used in headers and footings to position the page number on even number pages. If not present, the # sign is used to locate page number on all pages, not just odd number pages. Page number is suppressed unless specifically called out in a header or footing. ^O Non-Break Space. Prints as a space, but the justification process will not include it in calculations, nor add extra space to it when justifying the line. It prints 12 dot columns wide, more than a normal space of seven dots. ^H Overstrike. Causes the printhead to backspace before printing the next character. The ProWriter correctly centers the narrow accent marks over wider letter characters, and puts the next character in correctly.  Several ^H command characters may be put in in a row. ^Q Selecte Condensed font. Switches to the ProWriter condensed font at 17 cpi. The lines containing these characters are still justified. ^W Wide Character Toggle. Bracketed characters are printed doble wide. The lines containing these characters are still justified, but indiscriminate use can make the lines dot length too big for PRO to correct. ^E Alternate Font Select. First of two character sequences selecting "other" fonts. If the character following ^E is printable, its high bit is set, turning it into one of the graphics and Greek letter symbols in the ProWriter's extended character set. This continues until the letter z is encountered, which causes the program to stop setting the high bit. No control codes in the sequence will be recognized, but will be converted to graphics characters. The letter z is used as the stop, since it has no graphic assigned, and is mnemonically related to the ^Z used to terminate CP/M ASCII files. (See Table 9-2 in the printer manual). If the character following the ^E is ^A, ^E, ^N, ^Q, ^R, or ^W, then external fonts are selected (but not in the version of the program shown here), and a single character control code (e.g. ^N) will terminate the external font use. ^R Select Pica Font. Switches to the 10 cpi font. The lines containing these characters will still be justified.  ..S Force Justification Size. This command causes PRO to use the character string on the line with ..S to calculate the justification parameters. If this command is used as the first line in the file, PRO will not sample 20 lines to find typical line length. x xx xxxx Note about numbers. Many of the dot commands below have numeric arguments. These are indicated with x, xx, or xxxx, depending on how many digits there are. the digits you use to specify the argument must be placed precisely where the x's are, and you must use leading 0's where required to fill out the  argument to the number of digits required. .LHxx Line Height. Sets line-to-line spacing to xx/144 of an inch. All margins will be spaced with the newly set line spacing. You should set a page size (in lines) with .PL that reflects the number of lines of your selected spacing that will fit on the form length you are using. PRO accumulates vertical dots, not lines, in order to perform the "form feed" function. Will not be confused by mixing different line spacings on a page, as long as you don't run across a page boundary by having the page size (in lines) set too long. .PL Page Size. Sets the number of lines PRO can get on a page. This is used to determine when to break text at footing margins. See note with .LH and ..P. ..Pxxxx Page Length. Sets the page length in dots at 144 per inch. The default is 1584 for 11 inch dorms. PRO uses this information to do "form feeds". .MTxx Top Margin. The number of lines from the top of the paper to the beginning of the body of the text on the page. .MBxx Bottom Margin. The number of lines at bottom of page not used for text. .HMxx Heading Margin. The number of blank lines between page header and the start of the body of the text on the page. .FMxx Footing Margin. The number of blank lines between the body of the text and the footing. .POxx Page Offset. If left at default of eight, the PRO output will be centered on the page. Making it more or less than eight will increase or decrease the size of the left margin in increments of about 1/10 inch. .PA Unconditional Page. Terminates a page or column. The paper is rolled forward so the footing appears appropriately. This command should always end a file, since PRO will otherwise not correctly position the footing on the final page of the document. .CPxx Conditional Page. Forces the next xx lines to print together, moving to the next page or column if they wont fit in the current page or column. .HE(text) Heading. This command causes PRO to use the character string on the line with the command as a heading, printing it on the top of each subsequent page. may contain ^K and # sign to determine page numbering, even with text between them (page numbers are substituted right justified to the ^K or #, so be sure to leave sufficient space in front of each). If a title is defined, the heading will not print on the first page. ..T(text) Title. This command causes PRO to use the character string on the line with the command as a title, printing it in the heading location on the first page. .FO(text) Footing. This command causes PRO to use the character string on the line with the command as a footing, printing it on the bottom of each subsequent page. May contain page number specification, see .HE, and note that no page number will appear on the page unless specified in the header or footing. .OP Cancel Pagination. Cancels line counting, causing a continuous print of the remainder of the file without headers, footings, or top or bottom margins. Cannot be restored. .PNxx Set page number. Set the page number to the value given. Useful for printing documents broken into several files. .SRxx Subscript/Superscript Roll. Defines the forward and reverse roll distance for superscripts and subscripts. The distance is set to xx/144 of an inch. The normal spacing (from default or .LH command) is reset after the subscript/superscript operation. .UJ x Justification on/off. x = 0 sets off, x = 1 sets on. When justification is off, PRO prints the lines literally from the file. This can be useful for charts, etc. ...(text) Comments. The text on the remainder of this command line is not processed by PRO for any purpose. 5 CLS$=CHR$(26) 10 REM "ADDRESSR.BAS" COPR 1983 MARK GARDNER 20 ELITE$ = CHR$(27)+"E" :EDGE=4 : CENTER = 36 : TRACTOR = 1 25 ' Enter Return Address in Lines 20 - 70 30 DATA "Robert J. Thomson" 40 DATA "1808 Lenore Drive" 50 DATA "Tacoma, WA, 98406" 60 DATA "" 70 DATA "" 80 DIM A$(25,4) : FOR I = 0 TO 4 : READ RETADR$(I) : NEXT I : PRINT 85 PRINT CLS$:PRINT:PRINT:PRINT 90 RETFLAG = 1 : PRINT "Choose one: 'E' for envelopes" 100 PRINT " 'L' for labels" 110 PRINT " ' to exit program"; : GOSUB 810 120 PRINT ANS$ : PRINT : IF ANS$="L" OR ANS$="l" THEN GOTO 140 130 GOTO 160 140 GOSUB 790 150 GOTO 180 160 IF ANS$<>"E" AND ANS$<>"e" THEN SYSTEM 170 GOSUB 800 180 PRINT "Choose one: for regular operation " 190 PRINT " 'N' for no return addresses " 200 PRINT " 'S' for self-addressed sets" 210 PRINT " 'C' for combination of 'N' and 'S' ";: GOSUB 810 220 PRINT ANS$ : PRINT 230 IF ANS$="N" OR ANS$="n" OR ANS$="C" OR ANS$="c" THEN RETFLAG = 0 240 IF ANS$="S" OR ANS$="s" OR ANS$="C" OR ANS$="c" THEN GOTO 730 250 PRINT " "+WHAT$+"Addressing Program; Enter Addresses --" 260 PRINT " Terminate each address with one empty line." : PRINT 270 ADDRESS = 0 : ALINE = 0 280 GOSUB 840 290 A$(ADDRESS,ALINE) = C$ : PRINT 300 IF A$(ADDRESS,ALINE) <> "" THEN GOTO 380 310 LINES(ADDRESS) = ALINE - 1 320 PRINT " Hit return if address Ok, 'N' if not"; 330 GOSUB 810 340 IF ANS$="N" OR ANS$="n" THEN GOTO 360 350 ADDRESS = ADDRESS + 1 360 PRINT CHR$(13)+" Enter address (#"ADDRESS+1") or a '.' to start printing." 370 ALINE = 0 : PRINT : GOTO 280 380 IF A$(ADDRESS,ALINE)="." THEN GOTO 410 390 ALINE = ALINE + 1 : IF ALINE = 5 THEN PRINT : GOTO 310 400 GOTO 280 410 MAXADR = ADDRESS - 1 : ADDRESS = 0 420 PRINT "Insert "+WHAT$+" in printer, hit " : INPUT DUMMY 430 LPRINT ELITE$; 440 IF RETFLAG=1 THEN FOR I = 0 TO 4 : LPRINT SPC(MARGIN1) RETADR$(I) : NEXT I 450 IF RETFLAG=1 AND LABELS=0 THEN LPRINT 460 IF RETFLAG=0 AND LABELS=0 THEN FOR I = 1 TO 7 : LPRINT : NEXT I 470 IF RETFLAG=1 THEN LPRINT 480 FOR I = 0 TO LINES(ADDRESS) : LPRINT SPC(MARGIN2) A$(ADDRESS,I) : NEXT I 490 IF LABELS = 1 THEN GOTO 510 500 FOR I = 0 TO 3 :LPRINT : NEXT I : GOTO 530 510 EXTRA = 5-((LINES(ADDRESS)+1) MOD 6) 520 FOR I = 0 TO EXTRA : LPRINT : NEXT I 530 ADDRESS = ADDRESS + 1 :IF ADDRESS > MAXADR THEN GOTO 560 540 IF LABELS=0 THEN GOTO 420 550 IF LABELS=1 THEN GOTO 440 560 PRINT : PRINT "Done! Enter 'R' to restart ... OR" 570 PRINT "Hit to annotate addresses "; : GOSUB 810 580 PRINT ANS$ : PRINT : IF ANS$="R" OR ANS$="r" THEN RUN 590 IF SELFFLAG = 1 THEN PRINT "SAE's -- skipping annotation" : RUN 600 PRINT "Put paper in printer (top of form) and enter date - ";: GOSUB 840 610 PRINT : LPRINT " Mail sent -- notes for " C$ : LPRINT : LINES =0 620 FOR J = 0 TO MAXADR 630 FOR I = 0 TO LINES(J): PRINT SPACE$(10)+A$(J,I) : NEXT I 640 PRINT "Give annotation to go with the above address:" : GOSUB 840 650 LPRINT : LPRINT SPACE$(10)+C$ : LINES = LINES+2 : PRINT : PRINT 660 FOR I = 0 TO LINES(J) : LPRINT SPACE$(20)+A$(J,I) 670 LINES = LINES + 1 : NEXT I 680 IF LINES < 55 THEN GOTO 710 690 LPRINT CHR$(12) : LPRINT : LPRINT : LINES = 0 700 IF TRACTOR = 0 THEN INPUT "Put in new page, hit ."; DUMMY 710 NEXT J 720 RUN 730 INPUT "How many sets do you want?"; NUMSLF 740 IF NUMSLF > 25 THEN NUMSLF = 25 750 FOR J = 0 TO NUMSLF-1 760 FOR I = 0 TO 4 762 A$(J,I) = RETADR$(I) 766 NEXT I 770 LINES(J) = 4 775 NEXT J 780 MAXADR = NUMSLF-1 782 SELFFLAG = 1 784 GOTO 420 790 LABELS = 1:WHAT$ = "LABELS" : MARGIN1 = EDGE : MARGIN2 = EDGE : RETURN 800 LABELS = 0:WHAT$ = "ENVELOPE ": MARGIN1 = 1 : MARGIN2 = CENTER : RETURN 810 ANS$ = INKEY$ : IF ANS$ = "" THEN GOTO 810 820 IF ANS$ =CHR$(13) THEN ANS$ = "" 830 RETURN 840 C$ = "" 850 B$ = INKEY$ : IF B$ = CHR$(13) THEN RETURN 860 IF B$ <> CHR$(8) AND B$ <> CHR$(127) THEN GOTO 890 870 PRINT CHR$(8)+" "+CHR$(8); 880 IF LEN(C$)>0 THEN C$=LEFT$(C$,LEN(C$)-1) : GOTO 850 890 PRINT B$; : C$ = C$ + B$ : GOTO 850  PRINT CHR$(8)+" "+CHR$(8); 880 IF LEN(C$)>0 THEN C$=LEFT$(C$,L= LINES + 1 : NEXT I 680 IF LINES < 55 THEN GOTO 710 690 LPRINT CHR$(12) : LPRINT : LPRINT : LINES = 0 700 IF TRACTOR = 0 THEN INPUT "Put in new page, hit ."; DUMMY 710 NEXT J 720 RUN 730 INPUT "How many sets do you want?"; NUMSLF 740 IF NUMSLF > 25 THEN NUMSLF = 25 750 FOR J = 0 TO NUMSLF-1 760 FOR I = 0 TO 4 762 A$(J,I) = RETADR$(I) 766 NEXT I 770 LINES(J) = 4 775 NEXT J 780 MAXADR = NUMSLF-1 782 SELFFLAG = 1 784 GOTO 420 790 LABELS = 1:WHAT$ = "LABELS" : MARGIN1 = EDGE : MARGIN2 = EDGE : RETURN 800 LABELS = 0:WHAT$ = "ENVELOPE ": MARGIN1 = 1 : MARGIN2 = CENTER : RETURN 810 ANS$ = INKEY$ : IF ANS$ = "" THEN GOTO 810 820 IF ANS$ =CHR$(13) THEN ANS$ = "" 830 RETURN 840 C$ = "" 850 B$ = INKEY$ : IF B$ = CHR$(13) THEN RETURN 860 IF B$ <> CHR$(8) AND B$ <> CHR$(127) THEN GOTO 890 870 PRINT CHR$(8)+" "+CHR$(8); 880 IF LEN(C$)>0 THEN C$=LEFT$(C$,LOwn Name: PRO-ADDR.DOC Subject Name: PRO-ADDR.BAS Program Type: MBasic Application Program Function: Prints Envelopes and address labels using proportional font of C Itoh ProWriter dot matrix printer. Author: Mark Gardiner, Glendale CA Program Notes: Author Mark named this program ADDRESSR.BAS. I have renamed it PRO-ADDR.BAS to retain its relationship with PRO.BAS which will print a letter with the C Itoh ProWriter proportional font, right justified. This is a companion program to PRO.BAS which will print an envelope with the specified return address in the upper left corner and the address in the center of the envelope. Other options include printing self addressed envelopes and printing mailing labels. All instructions are self explanatory. Bob Thomson, Tacoma, WA  Proportional Spacing With the Diablo 630 Using WordStar by Don M. McLaughlin Here's a scheme to make your Diablo 630 do nifty proportional spacing, creating the prettiest text this side of typesetting. This same idea will create variable pitch non- proportional print, microjustified. The secret is the program DIABLO.COM which allows setting of the margins on the 630. These printer margins determine the length of the printed line. The length of the WordStar RULER line determines the number of CHARACTERS to be placed within the printer's set margins. Sorry, It ain't free. Proportional print looks really good only when you use a proportional spacing (PS) printwheel. They are about $50. each. If you are going to spring, let me suggest the Xerox Roman PS wheel. This combination together with your mailing database will produce a form letter that no one will suspect was not individually typed. I've had clients ask where they could buy such a beautiful typewriter. When your form letters get READ and get RESULTS your money has been spent wisely! The first step is to assemble all the programs you will need on a special diskette with system tracks. WS.COM (Unmodified by ANY add ons like Math) All the WordStar overlay programs, including mergeprint. DIABLO.COM If you are a double density user the following can fit on the main diskette: INSTALL.COM SETUP.COM Run INSTALL. When asked if you want a normal first time installation : answer N When asked for filename of WordStar to be installed answer : WS.COM if WordStar and Install are on the same drive or B:WS.COM if you are running Install on A: and WordStar on B:. Next Install asks "filename for saving installed WordStar":. It is possible to have several versions of WS.COM on the same disc all sharing the same overlay files. I keep three versions. One version with the Diablo installed as a standard daisy wheel (option E), one with the installation described here, and one version for my IDS prism. I name the standard daisy version DSTD.COM, this version DPRO.COM and the version for the dot matrix printer IDS.COM. Name this version with any filename that you wish. Be sure to specify the drive name B:filename.extension if WordStar is being installed on drive B: When you see the terminal choice menu answer U for unchanged. Next Install will present a printer menu. Choose oprion C , a TTY-like printer that can backspace. Specify none for communications protocol. When asked if modifications are complete answer N for ''. Enter the following values by typing the label or address of the function changeable by the user. When entering labels be sure to follow the label with a colon. Addresses do not require colons. Entries here are shown in "shorthand", separated by commas. In Install type LABEL: , INSTALL will reply with a new line showing the address, old value, and a blank space for a new value. Enter ONE value of the string shown below on a separate line. Follow each value with TWO carriage returns, except only ONE carriage return for the last value in the string. ~l SHORTHAND USE DOES LABEL & VALUES THIS THIS FUNCTION PALT:03,1B,1E,07 (^PA) Sets print line to 8 lines/inch. PSTD:03,1B,1E,09 (^PN) Sets print line to 6 lines/inch. ROLUP:02,1B,44 (^PT) Superscript negative half line feed. ROLDOW:02,1B,55 (^PV) Subscript half line feed. USR1:01,1B (^PQ) Issues Escape Character USR2:03,1B,1F,0B (^PW) Sets spacing to 12 char./inch. USR3:03,1B,0D,50 (^PE) Printer Remote Reset USR4: (^PR) Left open for HexPrintR RIBBON:02,1B,41 (^PY) Red Ribbon Toggle RIBOFF:02,1B,42 (^PY) Black Ribbon Toggle NEXT TWO FOR SCREEN PAC USERS ONLY (USING MONITORS) WID:67  Sets Flag line column 104 INITRM:66 Sets Ruler line 103 columns And then: ITITOG:00 Insert defaults to OFF Following are addresses, use no colon after. 037E 00 Sets WS page offset to zero 0386 00 WS Justification Default OFF Exit INSTALL Run SETUP.COM Set Printer Standard Serial or Diablo Xon/Xoff Set Baud 1200 Set Arrows WORDSTAR Set Scroll ON (for 52 column users) Set Scroll OFF (for screen pac users) Set Screen size 104 (for screen pac users) Set Special Function Keys: 0 DIABLO :Access margin setting program 1 ^PQ :Sends Escape Code 2 ^PQE :Enable Continuous Underscore 3 ^PQR :Disable Continuous Underscore 4 ^PQM :Enable auto justify 5 ^PQ= :Enable Auto Center, Clears  6 ^PQO :Enable Bold Printing 7 ^PQW :Enable Shadow Printing 8 ^PQ& :Quit Bold or Shadow Printing 9 ^PQX :Cancel all commands except Proportional Spacing Save Setup on New WordStar Disk. Press RESET and RETURN to read setup information into memory. Manual Commands: ^1P Enable Proportional Spacing ^1S Return All Spacing to Switch Default Setting ^19 Set left margin at print head position ^10 Set right margin at print head position Now program the operator: ALWAYS compose text with WordStar word-wrap turned ON and WordStar Justification OFF. When composing text set the WordStar ruler line (the right margin (^OR)) for about 20% more spaces than normal at 10 pitch for the most pleasing results. (a 6.5 inch print line will need WordStar's right margin at 80.) When composing headings to be centered, compose them against the left margin, they will be printed centered, by the PRINTER. EXample:^PQ=PRINTED CENTERED HEADING^PQ& Forget using the normal WordStar ^OC print command which centers text, use instead the command above. When text is to be printed justified to the right margin, place the control code for auto justify (^PQM or ^4) preceeding the first line of text or at the beginning of the first line of text. If auto justify is not turned on the printer will ignore its right margin setting and print whatever line length is sent to it by WordStar with a ragged right edge. It's a good idea to turn auto justification off at the end of a document which has been justified. Use (^PQX or ^9). This code should be placed on the line below the end of text. HINT : In auto justify mode, print density (in characters per inch) will be equal to the line length in inches (set by DIABLO. COM) divided by the number value of WordStar's right margin (the R on the ruler line). The printer prints this text micro-justified. This allows print pitches which are almost infinately variable. Usable ratio is from 10 cpi to 15 cpi. HINT #2: Beware of paragraph last lines approximately 5/8 filled. This will result in 5/8 line being spread across entire line. Try to compose text so that paragraph last lines are less than half filled or nearly filled. PROPORTIONAL spacing may be used with or without auto justify. Control codes are used the same way as for justify and may be grouped with the justify codes. The proportional spacing mode defaults to 12 characters per inch, so at least this many characters should be sent from each WordStar composed line. Capital letters on proportional wheels are very fat and it is possible to overcrowd a line that is all capitals. Usually even a full line of capitals will fit at 12 cpi. PRINTER MARGINS are set from the no-file menu. Make sure that the printer is turned on. Use the R option and when asked for name of command press ^0. The program DIABLO.COM will load and ask you for the left margin setting and the length of print line. After returning to the no-file menu, press the printer platen knob inward and adjust paper so that top of form is at the top of the ribbon. This is by far the best method of setting printer margins as it allows several different documents to be printed or merge-printed without resetting margins. Margins may also be set from the document its self. Using this method merge-printing without specifing mailmerge to wait for paper changes between documents is not possible. The margins get all goofed up. To setup margins during document composition, place the reset code (^PE) in the first column of the first line of the document following any dot commands. On the next line use the space bar or tab key to space inward the number of spaces required for the left margin and type ^19 then advance the cursor the number of spaces desired for the print line length and type ^10. In this manner the document will set it's own margins as it begins to print. Notes Installing WordStar for 104 column screen offsets page numbering. For letters I usually turn page numbers off with the .OP command. If page numbering is desired set each document with a .PCnn where nn is equal to 1/2 the WordStar margin setting. Superscripts and Subscripts are accomplished by half line platen roll and are not as attractive as 3/48 line roll provided when WordStar is installed for a Daisy Wheel printer. This document is meant to be printed for your reference by WordStar BEFORE this installation is accomplished. A sister document called DIABLO.PRN is provided to be printed after installation is made as a check on performance. DIABLO.PRN should be printed with the newly installed disk and with a PS print wheel installed in the printer. Print wheel changes also require changing the left hand rotary switch to match the wheel used. DIABLO.DIR is a file you may print as a reference card for the new in-document control codes to be used with this scheme. PAGE.COM is a program which sets the Diablo 630 page length to any number of lines you wish. This allows you to use form feeds with WordStar when printing on non standard (not 11") paper. It is not a really useful program used with WordStar, but for use with other programs like DataStar that use form feeds for page ejection it's the berries. DIABLO.COM and PAGE.COM are written in CBASIC COMPILER. I have included the source code for DIABLO.COM, DIABLO.BAS so that it may be easily transmitted by modem. I have sent DIABLO.COM, BAS, PRN, DIR, DOC (the original of this article) and PAGE.COM to the FOG Disk Library. David e sent DIABLO.COM, BAS, PRN, DIR, DOC (the newly installed disk and with a PS print wheel installed in the printer. Print wheel changes also require changing the le.OP .MT 0 Print 60 lines/page .MB 6 OSBORNE I Pin Assignments for PROWRITER  ......OSBORNE I...... (**) .....PROWRITER...... Datá Biô ± 1 ( 1) 2 Data Bit 1 Data Bit 5 2 (13) 6 Data Bit 5 Data Bit 2 3 ( 2) 3 Data Bit 2 Data Bit 6 4 (14) 7 Data Bit 6 Data Bit 3 5 ( 3) 4 Data Bit 3 Data Bit 7 6 (15) 8 Data Bit 7 Data Bit 4 7 ( 4) 5 Data Bit 4 Data Bit 8 8 (16) 9 Data Bit 8 ..® 9 Remote Enable 10 Out Strobe 11 ( 6) 1 Data Strobe In Ground 12 (18) 19 Twisted Pair to 1  ... 1³ Ground 14 Busù 15 ( 8) 11 Input-Busù Ground 16 (20) 29 Twisted Pair to 11 Input Ready 17 Ground 18 In Strobe 19 (10) 13 Select Ground 20 (22) 20 Data 1 Ground ... 21 Ground 22 Shield Chassis Ground 23 (12) 17 Chassis Ground Logic Ground 24 ... 25 ... 26 *ª Theså arå thå piî numberó thaô thå edgå connectoò correspondó tï oî � aî IEEÅ 24-piî ribboî connector® Thå cablå configuratioî useä has a� 26-piî edgå connectoò oî shorô lengtè oæ flaô ribboî tï IEEÅ 24-piî � connectoò whicè mateó tï rounä cablå witè 1´ wireó (1° signaì anä ² �    twisteä paiò pluó shield). DIP SWITCH SETTINGS ON THE PROWRITER: Dipswitcè ± ± ² ³ ´ µ ¶ · ¸ Dipswitcè 2 ± ² ³ ´ µ ¶ · 8 Open x x x x x x Open x - - x x x Closed x x Closed x - - x Dipswitch 21 1 2 3 4 5 6 7 8 Dipswitch 22 1 2 3 4 Open x x x x x x Open x - Closed x x Closed x x - Dipswitch 23 1 2 3 4 5 6 Dipswitch 24 1 2 3 4 5 6 7 8 Open x x x x Open x x x x Closed x x Closed x x x x Thå Prowriteò underlinå characteò (5Fh© doeó noô prinô witè piî 9¬ buô � witè piî 7® Tï geô underscorå iî Wordstar¬ uså eitheò thå graphicó � characteò 80h¬ oò thå underscorå Escapå sequence.  Dal Allan 408-867-6630 ŠDIP SWITCH SETTINGS ON THE PROWRITER: Dipswitcè ± ± ² ³ ´ µ ¶ · ¸ Dipswitcè 2 ± ² ³ ´ µ ¶ · 8 Open x x x x x x Open x - - x x x Closed x x Closed x - - x Dipswitch 21 1 2 3 4 5 6 7 8 Dipswitch 22 1 2 3 4 Open x x x x x x Open x - Closed x x Closed x x - Dipswitch 23 1 2 3 4 5 6 Dipswitch 24 1 2 3 4 5 6 7 8 Open x x x x Open x x x x Closed x x Closed x x x x Thå Prowriteò underlinå characteò (5Fh© doeó noô prinô witè piî 9¬ buô � witè piî 7® Tï geô underscorå iî Wordstar¬ uså eitheò thå graphicó � characteò 80h¬ oò thå underscorå Escapå sequence. program PSETUP; { This program is intended to send setup code sequences to a Panasonic KX-P1092 printer. Written by Kent Walker, September, 1985, using Turbo Pascal v2.0 } var A: char; N: integer; const { Printer Codes } PrinterCode: array[0..14] of string[6] = ( #$0F , #$12 , #$1B'2', #$1B'M', #$1B'Wn', #$1B'Wm', #$1B'7', #$1B'6', #$1B'E', #$1B'F', #$1B'G', #$1B'H', #$1B'A12'#$1B'2', #$1B'0', #$0C#$1B'@' ); { Messages matching above Printer Codes } Message: array[0..14] of string[25] = ( 'Compressed Print', 'Non-Compressed Print', 'Pica - 10 cpi', 'Elite - 12 cpi',  'Double Width Print Set', 'Double Width Print Reset', 'IBM-PC Graphics Mode 1', 'IBM-PC Graphics Mode 2', 'Emphasized Print Set', 'Emphasized Print Reset', 'Double Strike Print Set', 'Double Strike Print Reset', '6 Lines Per Inch', '8 Lines Per Inch', 'Reset Printer' ); begin { Display the menu } ClrScr; Writeln( ' Panasonic Printer Setup Program '); Writeln( ' ' ); for N := 0 to 14 do begin A := chr( N + ord( 'A' ) ) ; Writeln( A:15, ' ', Message[N] ); end; GotoXY(15,23); Write('Press RETURN to terminate'); { Request input until a RETURN is entered} repeat GotoXY(15,22); Write( 'Please enter your selection(s) ' ); read( KBD, A ); { Convert the letter to upper case & a number starting  with A = 0 } N := ord( UpCase( A ) ) - ord( 'A' ); { If number is in range } if ( N >= 0 ) and ( N <= 14 ) then begin { send the code to the printer } write( LST, PrinterCode[N] ); { Point on the screen to the selection made } GotoXY( 10, N+3 ); write( '>>>'#$07 ); Delay(1000); GotoXY( 10, N+3 ); write( ' ' ); end until A = #$0D ; { Write out a final message } ClrScr; write( ' Printer is Configured' ); end.  begin A := chr( N + ord( 'A' ) ) ; Writeln( A:15, ' ', Message[N] ); end; GotoXY(15,23); Write('Press RETURN to terminate'); { Request input until a RETURN is entered} repeat GotoXY(15,22); Write( 'Please enter your selection(s) ' ); read( KBD, A ); { Convert the letter to upper case & a number starting 1 ïÍÿÍþÊ 2ô_Í:ôþ Ê þ5Ê~þ6Ê„þ8Ê�þ1Ê–þ2Ê›þ7Ê¥æ_2ôþRÊ´þBÊŠþPÊ þDʪþLʯþQÊêþSʼþEÊÁ ÏÍÃÍâÖÍâÛÍâàÍâÃ¥>NÃÆ>EÃÆ>PÃÆ>QÃÆ>!ÃÆ>"ÃÆÍäÃ>AÃÆ>BÃÆ2ñ!ð"õ^{þ$ÊÍ*õ#ÃÌÍÉÍ PRINTER OPTIONS MENU 5 : 5 CPI ENLARGED PICA 6 : 6 CPI ENLARGED ELITE B : 7.5 CPI ENLARGED CONDENSED 8 : 8.5 CPI ENLARGED PROPORTIONAL 1 : 10 CPI PICA (default) 2 : 12 CPI ELITE P : 15 CPI PROPORTIONAL 7 : 17 CPI CONDENSED (CAN'T DARKEN) R : RETURN FROM ENLARGED CHARACTERS D : DARKEN L : LIGHTEN default (Return from darken) S : 1/6 " SPACING (default) E : 1/8 " SPACING Q : QUIT * Warm Boot* ENTER OPTION... $ NO SUCH OPTION... TRY AGAIN $ $PROWPINS {|}~PSETUP PAS€�PTR8023 $$$åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå; TITLE PTR A PROGRAM TO CONFIGURE THE NEC-8023 A-C ; OUTSIDE OF A TEXT EDITOR ; AUTHOR David Allan Giunti ; in 8080 ASSEMBLER ; USE ASM.COM TO COMPILE ; DATE OCT 1983 ; PURPOSE TO SET PRINT STYLE FOR LISTINGS ; AN ENHANSEMENT OF ROBERT LA FARA'S PRINTER SETTING ; UTILITY IN THE OCTOBER 83 EDITION OF MICROSYSTEMS ; ; NOTES FOR ADAPTATION TO OTHER PRINTERS ; NOTE THAT THIS PROGRAM OUTPUTS TO THE LiST DEVICE ; 2 SORTS OF CODE SEQUENCES + CHR , AND ; JUST 1 CHR AT A TIME ; YOUR PRINTER DOCUMENTATION SHOULD TELL YOU WHICH ; YOU NEED FOR WHAT. MODIFICATION FOR DIFFERENT ; ESC & CHR SEQUENCES IS CHANGING THE EQUates AT ; THE HEADING, MODIFICATION OF THE PARSE-ING ROUTINE ; SO THAT THE ROUTIEN IT CALLS CALLS THE APPROPRIATE ; SEQUENCE TO DO THE WORK. BDOS EQU 5 ; CALL HERE FOR CPM SERVICE ; ; in response to HOWTOHACK.DOC ... CALL here ; do not use addresses peaked here to jump into ; BIOS... ; and please forgive the EQUates , they make the ; code 1 BYTE smaller per use and are twice as ; fast as address references ; ... when you update object code (AND(NOT(source))) ; you create undocumented features ; CONOUT EQU 2 ; OUTPUT TO CONSOLE, 1 CHR AT A TIME LSTOUT EQU 5 ; OUT TO PRINTER, 1 CHR AT A TIME CONDIR EQU 6 ; GET-CHR FROM CONSOLE, 1 CHR AT A TIME PRTSTR EQU 9 ; OUTPUT TO CONSOLE, END STRING WITH $ LF EQU 0AH CR EQU 0DH BELL EQU 7 ; CHIME CHR FSTR EQU 0CH ; FORM_FEED CHR ESCAPE EQU 1BH ; ESCAPE CHR ; NEC-8023 DIRECTIONS, WITH OUT ESCAPE ENL EQU 0EH ; ENLARGED CHRS IN ALL STYLES ENLCXL EQU 0FH ; CANCEL ENLARGEMENT DARK EQU 21H ; DOUBLE STRIKE ENHANSED LIGHT EQU 22H ; RETURN FROM ENHANSED ; NEXT TWO WERE NOT IMPLEMENTED LVFU EQU 1DH ; START LOAD OF VFU BUFFER FINVFU EQU 1EH ; END OF FILL ; EQUS FOR ESCAPES IN NEC 8023 A-C PICA EQU 4EH ; 10 CPI PROP EQU 50H ; PROPORTIONAL CHRS ; ESC 1 TO 6 SET MIN DOTSPACES BETWEEN WORDS (NOT IMPLEMENTED) COND EQU 51H ; 12 CPI ELIT EQU 45H ; 17 CPI ALPHA EQU 24H ; SET ALPHANEUMERIC EIGHT EQU 42H ; 1/8 LINE SPACING SIXT EQU 41H ; 1/6 LINE SPACING ; FOLLOWING NOT USED HERE IG EQU 23H ; GREEK & INTERNAL GRAPHICS INCRE EQU 5BH ; PRINT AS RECIEVED FROM LOGICS EQU 5DH ; LOGIC SEEKING MODE CLRTAB EQU 32H ; CLEAR PRESET TABS UNL EQU 58H ; START UNDERLINE UUL EQU 59H ; STOP UNDERLINE FORWRD EQU 66H ; FEED PAPER FORWARD REVRSE EQU 72H ; REVERSE PAPER FEED ORG 100H ;FIRST ADDRESS IN CPM ; that is all yours LXI SP,STKTOP ;SET STACK AFTER PROG MENU: MVI C,PRTSTR ;DISPLAY MENU ;PRAM REG, FCN TO CALL LXI D,MENDAT ; LOAD ADDRESS IN DE CALL BDOS ; WITH REGS LOADED CALL CPM CHARIN: MVI C,CONDIR ;DIRECT CONSOLE INPUT MVI E,0FFH ;ASK FOR INPUT CALL BDOS CPI 0 ;IS ANYTHING TYPED ? JZ CHARIN ; IF NOT LOOP STA CHAR ;IF SOMTHING SAVE IT MVI C,CONOUT ;ECOE TO SCREEN MOV E,A CALL BDOS ; ; PARSER CHECKS VALID INPUT, CALLS WORKING ROUTIENS ; AND IF NOT A VALID COMAND INFORMS USER ; ; TEST INPUT FOR VALID CHARACTERS ; JuMP ACCORDINGLY ; LDA CHAR ;START TEST AGAINST ACCUM CPI ' ' ; ComPair to ' ' JZ CHARIN ; SKIP SPACES CPI '5' ; LARGE PICA JZ LP ; CPI '6' ; LARGE ELITE JZ LEL ; CPI '8' ; JZ LCON ; LARGE CONDENSED CPI '1' ; PICA JZ PIC ; CPI '2' ; ELITE JZ EL ; CPI '7' ; CONDENSED JZ CON ; ; IF IT ISN'T A NUMBER IT'S A LETTER ANI 5FH ; AND TO CONVERT TO UPPERCASE STA CHAR ; STASH UCASED CHR IN CHAR CPI 'R' ; RETURN TO SMALL CHRS JZ SMAL CPI 'B' ; LARGE PROPORTIONAL JZ LPR CPI 'P' ; PROPORTIONAL JZ PRO ; CPI 'D' ; ENHANSED DOUBLE STRIKE JZ ENH ; CPI 'L' ; RETURN FROM ENHANSED JZ UNEN ; CPI 'Q' ; COLD BOOT JZ QUIT ; CPI 'S' ; 1/6 " SPACING JZ SIX ; CPI 'E' ; 1/8 " SPACING JZ EIG ; ; ; IF YOU GOT THIS FAR AND NOTHING MATCHED ; INPUT WAS NOT VALID ISSUE ERROR MESSAGE ; ERMSG: MVI C,PRTSTR ; PRINTSTRING FCN LXI D,ERRMSG ; ADDRESS OF MSG IN DE CALL BDOS JMP MENU ; ; SUBROUTIENS HERE ARE RECURSIVE ; SOME REQUIRE CHR OUTPUT THEN CHR ; OUTPUT ; LP: CALL BIGPR JMP PIC LEL: CALL BIGPR JMP EL LPR: CALL BIGPR JMP PRO LCON: CALL BIGPR JMP CON PIC: MVI A,PICA JMP EPTR EL: MVI A,ELIT JMP EPTR PRO: MVI A,PROP JMP EPTR CON: MVI A,COND JMP EPTR ENH: MVI A,DARK JMP EPTR UNEN: MVI A,LIGHT JMP EPTR SMAL: MVI E,ENLCXL CALL SPR JMP MENU SIX: MVI A,SIXT JMP EPTR EIG: MVI A,EIGHT JMP EPTR ; ; THIS ROUTINE GIVES THE ARGUMENT LOADED IN A TO ; A LOCATION SET ASIDE IN RAM (ARG1) ; THE ROUTINE EPTR1 DOES NOT CARE HOW MANY ; CHARACTERS YOU WISH TO PRINT AFTER THE ESCAPE ; IF YOUR PRINTER WANTS MORE CHARACTERS AFTER ; THE SEE THE NOTES DOWN AT THE END ; EPTR: STA ARG1 LXI H,ESTR ; POINT TO ESCAPE STRING EPTR1: SHLD INDEX ; STORE ADDRESS MOV E,M ; GET CHR MOV A,E ; PUT IN A ALSO CPI '$' ;CHECK TRAILOR CARD JZ MENU ; IF SO END MVI C,LSTOUT ; PRINT 1 CHR  CALL BDOS ; DO IT LHLD INDEX ; RELOAD POINTER INX H ; POINT TO NEXT CHR JMP EPTR1 BIGPR: MVI E,ENL ; SUBROUTIEN TO LOAD ENLARGE SPR: MVI C,LSTOUT ; WHEN YOU LAND HERE YOU HAVE ; ALLREADY LOADED E WITH THE ; CHR YOU WISH TO OUTPUT ; TO PRINT BUFFER CALL BDOS ; NO CR REQUIRED RET QUIT: MVI C,0 CALL BDOS ; WARM BOOT MENDAT: DB CR,LF,' PRINTER OPTIONS MENU',CR,LF,LF DB ' 5 : 5 CPI ENLARGED PICA',CR,LF DB ' 6 : 6 CPI ENLARGED ELITE',CR,LF DB ' B : 7.5 CPI ENLARGED CONDENSED',CR,LF DB ' 8 : 8.5 CPI ENLARGED PROPORTIONAL',CR,LF DB ' 1 : 10 CPI PICA (default)',CR,LF DB ' 2 : 12 CPI ELITE',CR,LF DB ' P : 15 CPI PROPORTIONAL',CR,LF DB ' 7 : 17 CPI CONDENSED (CAN''T DARKEN)',CR,LF,LF DB ' R : RETURN FROM ENLARGED CHARACTERS',CR,LF DB ' D : DARKEN',CR,LF DB ' L : LIGHTEN default (Return from darken)',CR,LF DB ' S : 1/6 " SPACING (default)',CR,LF DB ' E : 1/8 " SPACING',CR,LF DB ' Q : QUIT * Warm Boot*',CR,LF,LF DB ' ENTER OPTION... ' DB '$' ; the dollar sign IS required for the screen ERRMSG: DB CR,LF,BELL,'NO SUCH OPTION... TRY AGAIN',CR,LF,'$' ; ; THIS IS THE FABELED ESCAPE SEQUENCE ESTR: DB ESCAPE ARG1 DS 1 ; ESCAPES ARGUMENT ; YOU CAN DS (Define Space) IN ; BYTES TO YOUR HEARTS CONTENT DB CR ; ... REMEMBER MOST PRINTERS ; WANT A CR TO GET THE BALL ROALING ; AND THE OUTPUT ROUTIEN WANTS THE ; $ CHR TO KNOW WNEN TO STOP DB '$' ; the dollar sign is optional here ; ...any other unused value ; would work as well ; CHAR: DS 1 INDEX: DS 2 DS 32 ; 16 LEVEL STACK STKTOP: END DB ' 2 : 12 CPI ELITE',CR,LF DB ' P : 15 CPI PROPORTIONAL',CR,LF DB ' 7 : 17 CPI CONDENSED (CAN''T DARKEN)',CR,LF,LF DB ' R : RETURN FROM ENLARGED CHARACTERS',CR,LF DB ' D : DARKEN',CR,LF DB ' L : LIGHTEN default (Return from darken)',CR,LF DB ' S : 1/6 " SPACING (default)',CR,LF DB ' E : 1/8 " SPACING',CR,LF DB ' Q : QUIT * Warm Boot*',CR,LF,LF DB ' Ã368686868 $ OKIDATA 83A Printer options v1.1 3/31/1983 0 - 10 CPI, 6 LPI 1 - 10 CPI, 8 LPI 2 - 16.5 CPI, 6 LPI 3 - 16.5 CPI, 8 LPI 4 - 8.3 CPI, 6 LPI 5 - 8.3 CPI, 8 LPI 6 - 5 CPI, 6 LPI 7 - 5 CPI, 8 LPI Select: $á"“1Ý0ͧ!ìÍ•þ0!ʬþ1!ʬþ2! ʬþ3!ʬþ4!ʬþ5!ʬþ6!#ʬþ7!(ʬÃF-ͧÃÍæþÊŒþ ÊŒÉ Ã~·ÊFå_Íá#ìPRINTER DSC:PRISM132TXT€;<=>?@ABCDEFGHIJPRISM132TXT+KLMNOPPRO BASsQRSTUVWXYZ[\]^_PRO-BAS DOCP`abcdefghiPRO-ADDRBAS!jklmnPRO-ADDRDOCoPROPSPACDIAWpqrstuvwxyzPROWPINS {|}~PSETUP PAS€�PTR8023 COM‚PTR8023 ASM5ƒ„…†‡ˆ‰SETOK $$$ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTITLE: SETOK BY : IRV HOFF DATE : 10 OCT 82 TOPIC: PRESETTING OKIDATA PRINTER OPTIONS This simple program allows OKIDATA users to preset a number of options. The printer can then be satisfactorily used with the TYPE command (via CTL-P) or other normal listing programs. These options include: 10 or 16.5 chars. per inch 64 or 80 chars. per line 6 or 8 vertical lines per inch wide print reset to normal default values To use, turn on the Okidata printer and then call up SETOK.COM. It will display various options on its menu. Several selections can be made at the same time or a number reentered if mis-typed. If RET is immediately typed it defaults to a standard configuration. Default is: 10 characters per inch 80 characters per line 6 vertical lines per inch After the appropriate answers have been typed, hit RET to leave the program (or CTL-C). The printer now has the options you selected. The TYPE command (via CTL-P) may then be used or any other LIST routine desired. Obviously some options were not included. The SETOK.ASM file can be edited and then reassembled. (ASM.COM works fine for this purpose.) Even if the operator is not too familiar with using source code, there are enough examples already included to make the job of adding some ad- ditional feature fairly simple. Irv Hoff Los Altos Hill, CA 94022 red if mis-typed. If RET is immediately typed it defaults to a standard configuration. Default is: 10 characters per inch 80 characters per line 6 vertical lines per inch Af; SETOK v1.0 OKIDATA PRINTER UTILITY 10/10/82 ; ; by ; IRVIN M. HOFF ; LOS ALTOS HILLS, CA 94022 ; ; ; This program sets an OKIDATA printer to various configur- ; ations such as: ; ; 10 CPI or 16.5 CPI ; 6 or 8 vertical lines per inch ; 64 (short) or 80 (long) char. per line ; ; There are numerous other selections that could be added. ; This program should give you the background to include ; other options, if desired, yourself. These seemed the ; most important. ; ; ; ; COMMAND CHARACTERS FOR THE OKIDATA PRINTER: ; ; 17 CTL Q Enable printer to receive data ; 27,'A' ESC A 80 char. per line starting col. 3 ; 27,'B' ESC B 64 char. per line starting col. 9 ; 29 CTL-SHFT-M 16.5 Characters per inch ; 30 CTL-SHFT-N 10 Characters per inch ; 31 CTL-SHFT-O Wider characters ; 27,'6' ESC 6 6 vertical lines per inch (Normal) ; 27,'8' ESC 8 8 vertical lines per inch ; ; + + + + + + + + + + + + + + + + + + ; ; ORG 100H ; ; JMP START ;JUMP INTO PROGRAM ; ; ; GENERAL EQU'S ; BDOS EQU 5 ;SYSTEM CALL ENTRY POINT CONIN EQU 1 ;GET KEYBOARD CHARACTER CR EQU 0DH ;CONTROL-M FOR CARRIAGE RETURN CONOUT EQU 2 ;CRT OUTPUT ROUTINE CTLC EQU 3 ;CONTROL-C TO TERMINATE ESC EQU 1BH ;ESCAPE CHARACTER LF EQU 0AH ;CONTROL-J FOR LINE FEED LIST EQU 5 ;LIST DEVICE OUTPUT STRING EQU 9 ;PRINT STRING ON CONSOLE TAB EQU 09H ;CONTROL-I FOR HORIZONTAOL TAB ;..... ; ; ; DATA STRINGS TO CONTROL EPXON MX-80 PRINTER ; CN: DB ESC,'A',29,ESC,'6',0 ;16.5 CPI, NORMAL UCN: DB ESC,'A',30,ESC,'6',0 ;10 CPI, NORMAL DEFLT: DB 17,ESC,'A',30,ESC,'6',0 ;DEFAULT PARAMETERS EMPH: DB 31,0 ;EMPHASIZED EIGHT: DB ESC,'8',0 ;8 LINES PER INCH SHORT: DB ESC,'B',0 ;64 CHAR. LINES AT COL. 9 TURNUP: DB CR,LF,'$' ;..... ; ; ; SIGN-ON MESSAGE ; SOM: DB CR,LF,LF,LF,LF,LF,LF,LF DB TAB,TAB,'OKIDATA Printer options v1.0 10/11/82' DB CR,LF,LF,TAB,TAB,'0 = Reset to default parameters' DB CR,LF,LF,TAB,TAB,'1 = 10 CPI, Normal' DB CR,LF,TAB,TAB,'2 = 16.5 CPI, Normal' DB CR,LF,LF,TAB,TAB,'3 = Wider Characters' DB CR,LF,TAB,TAB,'4 = 64 Char. lines starting at col. 9' DB CR,LF,TAB,TAB,'8 = 8 vertical lines per inch' DB CR,LF,LF,LF,LF,LF,LF,LF,TAB,'Select: ' DB '$' ;..... ; ; ;**********************************************************************; ;  ; ; PROGRAM STARTS HERE ; ; ; ;**********************************************************************; ; ; START: POP H ;RETURN ADDRESS TO 'CCP' SHLD EXIT1+1 ;STORE LXI SP,STACK ;SET UP STACK LXI D,SOM ;SIGNON MESSAGE CALL DSTRNG ;SHOW ON THE CRT LXI H,DEFLT ;SET THE PRINTER TO NORMAL CONDITIONS JMP PSTRNG ;... ; ; SELECT: CALL INPUT ;GET A CHAR. ; CPI '0' ;RESET TO DEFAULT PARAMETERS LXI H,DEFLT JZ PSTRNG ; CPI '1' LXI H,UCN ;10 CPI, NORMAL JZ PSTRNG ; CPI '2' LXI H,CN ;16.5 CPI, NORMAL JZ PSTRNG ; CPI '3' LXI H,EMPH ;EMPHASIZED JZ PSTRNG ; CPI '4' LXI H,S HORT ;64 CHARACTER LINES STARTING AT COL. 9 JZ PSTRNG ; CPI '8' LXI H,EIGHT ;GO TO 8 VERTICAL LINES PER INCH JZ PSTRNG ; JMP SELECT ;IF NONE OF THESE, ASK AGAIN ;..... ; ; ;======================================================================; ; ; ; ROUTINES START HERE ; ; ; ;======================================================================; ; ; EXIT: LXI D,TURNUP ;TURN UP SOME EXTRA LINES CALL DSTRNG ;DISPLAY ON THE CRT ; EXIT1: JMP 0 ;FILLED BY 'START' FOR RETURN TO 'CCP' ;..... ; ; ; GET A KEYBOARD CHARACTER ; INPUT:1 MVI C,CONIN ;KEYBOARD ROUTINE CALL BDOS ANI 7FH ;STRIP AWAY ANY PARITY CPI CTLC ;CONTROL-C?  JZ EXIT ;IF YES, ALL FINISHED CPI CR ;CONTROL-M FOR RETURN? JZ EXIT ;IF YES, ALL FINISHED RET ;..... ; ; ; DISPLAY A STRING ON THE CRT ; DSTRNG: MVI C,STRING ;CONSOLE STRING ROUTINE JMP BDOS ;SEND TO THE CRT ;..... ; ; ; PRINT A STRING OF CHARS. ON THE EPSON MX-80 ; PSTRNG: MOV A,M ;GET THE CHARACTER IN THE STRING ORA A ;SEE IF FINISHED YET JZ SELECT ;GET NEW ANSWER IF ZERO ; PUSH H ;SAVE THE ADDRESS IN THE STRING MVI C,LIST ;PRINTER ROUTINE MOV E,A ;PUT THE CHAR. INTO 'E' REG. CALL BDOS ;SEND TO THE PRINTER POP H ;BACK TO THE STRING ADDRESS INX H ;NEXT LOCATION JMP PSTRNG ;DO THE NEXT ONE ;..... ; ; ; STACK AREA ; DS 20H ;ALLOW ROOM FOR STACK ; STACK DS 0 ; END ÃLowell L. Ashbaugh, 1118 Decatur Court, Davis, CA. 95616[=z[>z[:z[ = EXIT to CP/M $ Draft Mode Menu NORMAL WIDTH DOUBLE WIDTH 1 = 10 CPI 5 = 5 CPI 2 = 12 CPI 6 = 6 CPI 3 = 16.7 CPI 7 = 8.3 CPI 4 = 20 CPI 8 = 10 CPI = Return to main menu $ Correspondence Mode Menu 1 = 10 CPI 2 = 12.5 CPI 3 = Proportional Spacing ON 4 = Auto Right Justify ON 5 = Auto Right Justify OFF 6 = Auto Centering ON 7 = Set HMI = Return to main menu $ Forms and Miscellaneous Menu 1 = 6 LPI 2 = 8 LPI 3 = Emphasis ON 4 = Emphasis OFF 5 = Disable PAPER OUT Switch 6 = Enable PAPER OUT Switch 7 = Set Margins 8 = Set Form Length = Return to main menu $ 1 = Set Left Margin 0-9 (Default 0) 2 = Set Right Margin (Default 160) = Return to Forms menu $ Enter form length (Default 66): $ This is ignored if proportional spacing is enabled Enter HMI value : $ Language Set Menu 1 = United Kingdom 2 = USA 3 = Norwegian/Danish 4 = Swedish/Finnish 5 = German 6 = French 7 = Spanish = Return to main menu$ $ Enter value : $  $á"f1F AÍ`!"$ Íhþ0!nÊuþ Êeþ1ʆþ2Êéþ3Êv þ4ÊÎ ÍHÍZÃþTÊSþtÊSÉá!òÃuÉÃ` ÃÃÍæþÊeÉ~·Ê# å_Íá#Ãu_Í`!˜"$ !}ÃuÍhþ1!‚Êuþ2!‡Êuþ3!ŒÊuþ4!‘Êuþ5!–Êuþ6!›Êuþ7! Êuþ8!¥Êuþ ÊÍHÍZØ:Í`!û"$ !ªÃuÍhþ1!¯Êuþ2!´Êuþ3!¹Êuþ4!ÁÊuþ5!ÆÊuþ6!ËÊuþ7ÊA þ ÊÍHÍZÃû¾Í`Íhþ Êj 2Ó>02ÒÍhþ Êj õ:Ó2Òñ2Ó!é"$ !ÐÃu'Í`!‚ "$ Íhþ1!;Êuþ2!@Êuþ3!EÊuþ4!JÊuþ5!dÊuþ6!iÊuþ7ÊÍ þ8Ê™ þ ÊÍHÍZ !Í`Íhþ Êv þ1Êë þ2ÊB ÍZÃÓ ÎÍ`Íhþ Ê0 2S>02R2QÍhþ Ê0 õ:S2Rñ2SÍhþ Ê0 õ:R2Q:S2Rñ2SæÍ`!Ó "$ !OÃuÎÍ`Íhþ ʇ 2[>02Y2ZÍhþ ʇ õ:[2Zñ2[Íhþ ʇ õ:Z2Y:[2Zñ2[æÍ`!Ó "$ !VÃu–Í`Íhþ Ê 2a>02`Íhþ Ê õ:a2`ñ2a!v "$ !^ÃuÍ`!"$ Íhþ Êþ1!ÖÊuþ2!ÚÊuþ3!ÞÊuþ4!âÊuþ5!æÊuþ6!êÊuþ7!îÊuÍHÍZÃÚ Ã 5 = German 6 = French 7 = Spanish = Return to main menu$ $ Enter value : $  $á"f1F AÍ`!"$ Íhþ0!nÊuþ Êeþ1ʆþ2Êéþ3Êv þ4ÊÎ ÍHÍZÃþTÊSþtÊSÉá!òÃuÉÃ` ÃÃÍæþÊeÉ~·Ê# å_Íá#Ãu_Í`!˜"$ !}ÃuÍhþ1!‚Êuþ2!‡Êuþ3!ŒÊuþ4!‘Êuþ5!–Êuþ6!›Êuþ7! Êuþ8!¥Êuþ ÊÍHÍZØ:Í`!û"$ !ªÃuÍhþ1!vÿLTALLY.ASM` öÿßÿºÿ«ÿ­ÿ¶ÿ¬ÿòÿõÿ±ÿ¼ÿ¾ÿ³ÿ°ÿ»ÿÄÿÓÿ¯ÿØÿ !¹ÿ²ÿ½ÿ¸ÿ·ÿªÿ"#$%&'()*+ÏÿµÿÅÿoÿ,-./0123456789:;§ÿÎÿšÿ¥ÿ‘ÿÒÿ‹ÿžÿ–ÿÔÿÍÿÂÿ´ÿŒÿ<=>?@ABCDEFGHIJKLMèÿ�ÿ�ÿÌÿÉÿŠÿÝÿ©ÿÊÿ“ÿËÿ¤ÿÇÿ˜ÿ®ÿ¨ÿÈÿ—ÿ’ÿ¦ÿ×ÿˆÿ†ÿÑÿ›ÿ�ÿúÿÀÿœÿ™ÿÛÿNOPQRùÿÖÿÆÿSTUVWXY…ÿÐÿ�ÿÃÿÁÿ‰ÿûÿæÿZ[\]^_¡ÿ÷ÿóÿÞÿ•ÿ”ÿŽÿ‡ÿëÿåÿ�ÿÿþ9Äøþ~øyãùÉÉÑí»ó“äó§O?a»wqrvt׳‹§gŸàêÏW‡~ñÌØbl�ý?þòÉØñîÇ£§O1~Æpûö/ç_¾5¶àþ[>ÿûÅmEþôâçÝ{'çˆ<Û\][qûðé'¼¿©xøÇ‹gÆcËéþÊXH2Ãáf³ Û±�æ ll9Ýß1¶[p&G"Ò«50ic‹±åtÇØ)' ôj…'Pbò�Ur˜œrÒrÒÚØI½Zaób�2£[ðd¬�K èÕ ‡a�â#Aí…Èá‡9þÝXŸœr@¯V8„2å¤Q(d$�è“Ó)ë“K+½Zá Ê”“Æ×¢˜�úätŠd¬ W+lòÅfB!^Åë9z W+܇ò/ÞXÒèÕ ‡Ó…´�Œ]ÒH@¯V8¤Ê’FB¿ŠNbl€^­° ”¨á@”��J3Ыž@™rÒøZú%HðL‚œ0*͘é±òd¬ö@¯V¸?-P4�ʧ˜œ±šE¹èÕ @™rÒØD9F͢܌œ0*͘é±òd,‡ èÕ ›?(&ôK�à™ÄØrº¿cl1¶`XyI‚*“c5(X%gl1¶œîïV^’ì OÐãÝ�GOŸbüŒáöí_ξ|[± y‚~xxøóÑ�ó³‡÷Ðß}xï¬b>ÿûÅmE>ãO>èÆ–Óýc‹±›(Ç$¨Y”›µ±ÅØrº¿c¬V;È�öµ?¿ÿ§^7P´:À¨il$¨œ_Œ%5/¼ƒ<i_ûógêu…Ô¼0FåHc#Aåüb,�mInyÒ¾öç×êu…Wq˜ÒØ– Õ1el¢Kc[Ò0ì0O@Ú×þüoêu…Wq˜†ilKÐê˜26QŽ��ãò¤}íÏ7›Ím¯(š# Œc�Y9ce ²ƒ<i_ûórø`sÛëŠ&FQóÂ8™•3vH2î O@Ú×þüÁƒ³^7P41IFŒäf^�>x€Q9Òøaº~ð•ÃL^�!þnlVº¥ä HûÚŸïþÔëJV:L‘°…F‚ieÔ¯ûÅXr-í O@Ú×þü¯êu…\˜"a �Óʨ_+ö‹±BšxyÒ¾öçþ¯× !MŒM”cü ‰p n ‡$HÃ@ž7V¿ØAž€´¯ýùêuEã¤IÍ crø¡‰rŒº‘W!¢_‚Ï$úwcƒ÷ÔøÅó¤}íÏßü©× ”à=5ÆI1’šÆ Qic³„�Ç”i‡yÒ¾öç›O½n d ã˜2arÆæñp³ƒ<i_ûóg{Ý@A|„ûo�7è›26�‡W;È�öµ?ò±× ÄG¸ÿöñð }SÆæñðÁ›ä HûÚŸ?øØë â#Ü{„xøàóôM›Ç«Íò¤}íÏß|ìuñî¿=B¼Ú oÊØ<æ';È�öµ?ß|ìuñî¿=BÄ'è›ÂœÖ)¾V™có˜ì O@Ú×þüðc¯(ˆ�pÿí">@ßîÿñ÷ß›Çüâþò¤}íϯ>öº�‚ø÷ß!â‹Ï÷Ñ7…ø÷ß›Ç|¸ÙAž€´¯ýùý�½n  >Âý·Gˆ‡ôMáþ�pÿ푱>‰Œ)Óó¤}íÏ?õº�â“é–\&ç Ç” “3Önv�' íkþìS¯(¸ÿíîÿõpƒ¾)cýáÕ“ä HûÚŸ?ùÔë î{„û=¼úü}SÆ6I-¹ä HûÚŸ_}êu¥IjIX%"êõº�VNèÉ1‰r3&gì2ªä HûÚŸn¾öº�¢‰qI¢Ž“ãqL¬’Cå2»Þí•Úaž€´¯ýCèueuŠ)ã�rsN#ú%HðL‚šØØUí•Úaž€´¯ýÃÔëÊêSFÍ�Iãþ·G¸ÿ푱.InyÒ¾öÔëŠKòšfÜŸspJ/ˆø÷¿=2V¿¦A¹ä HûÚ?,½n è×”•^þ<(ç”^pÿ�G¸ÿ푱3ÉÜò¤}ínzÝ@™IÆàpoáþ·GÆBÎ/;È�öµ�^7P!çÜ›G¸ÿ푱º§ô²Ã<i_û‡ã^7Pt Né÷ÿö÷¿=2–I³fÙaž 7QŽI�Is¯^jŒÌô0ùLü¨íM]j¯DóúøõÁûãó¿üørôóåÛ‹ÿøÏ§ïNî~ý¯{·gÿþñ¿?ýéðêþ³'Þ¼øcÓ�-€y‚&Ÿi˜µ½‰£Kí•h^¿>x|þ—_Ž~¾|{ñÿùôÝÉݯÿuïöìáß?þ÷§?^ÝöäÁ›lº±€y/5ucl9Ýß1¶[2 ÊŽäVml1¶œîï;åFrëó>.i¤‡‡c!OÐqD|ñç«Ã?¿xÖ«—c!OÐqÿo~üŽñîÇ£§O1~Æpûö/ç_¾íÕK�C�Cå0 y‚ޏÁk”£Û£³^½Ô8T“±�'與x�YÂÀ8Þýr„úèììâäåm¯^j*‡ÉXÈtÄ+¼FŸDH·ä29O8Þýr„úèììâäåm¯^j*‡ÉXÈtÄûx�ÃÝ{ïnñüä Ž·?Žž>=?9ºûð¶W/5•Ãd,ä :â3¼Æx~òòáùË#¼=:»íÕK�C�Cå0 y‚þW/Ãk¤Åxv}ûóØ«—‡‡Êaª¦Úuc³„�Grëó>.i¤‡‡c!OÐ1ß;ÿy†ãÝ/G8�<ìÕK�C�Cå0 y‚Žè’Œ!âk•yé•ÃT;bNë _«ÌK¯^j*‡ÉXÈtÄC¼ÆÃ "ú¦zå0ÕŽˆO🠢oªW/5•Ãd,ä :â^ãá"ú¦zå0ÕŽˆð ¢oªW/5•Ãd,ä :â}¼ÆÃŸß oªWSíˆø¯ñÅçûè›êÕK�Cå0 y‚Žø ¯ñjƒˆ¾©^9Lµ#â ¼ÆÃ ¢oªW/55•Ãd,ä ú_½ü ¯QŽÎÞ;Á³»øîüâß�<ìÕK�C�Cå0USí¿º±>‰ŒäÖbžÀÇ%�TãPãPã`,ä ÷¿uDôwïÝ;ºýz÷äËÑÉ�#ï~9Âñèäa¯^jj*‡ÉXÈtÄC¼ÆÃ "ú¦zõRãP9LÆBž #^á5^}~‚¾©^½Ô8T“±�'èˆ÷ñÛ½»_ïÞ;»¸{rþõ×ó'/1¹^½Ô8T“±�'èˆÏðÃó»(/ßžáöáíÙÅÏO˜\¯^j*‡ÉXÈtÄ'x�ááÙ]”‹—oÏpûðöìâç'LÃЫ—‡Êa2òñ^cxxvýÑÉÙѽ‹“—˜\¯^j*‡ÉXÈtÄ7x�úè —Qõê¥Æ¡Æ¡r˜Œ…^#½ûúöüöâ“ëÕK�Cå0 y‚Žø ¯‘Þ}}{~{q‹izõRãP9LÆBž #>ÁkÌ·çyz„-4L+£þxqöãm¯^j*‡ÉXÈtÄx�trþ—§GØB#Á´2ê�g?Þöê¥Æ¡r˜Œ….i¤‡‡‡Êa2òñ¯Q�a<úy†ãù½—'¸9ý?䣟矞áæ÷^½Ô8T“±�'èˆWx�úè åâåÛ3Ïï½¼8Áùèçùçgxø`ó{¯^jj*‡ÉXÈô¿zù^£�=¼w‚gwq¸{ïÝ-¾;:yØ«—‡‡ÊaªýW7vH2Fr;DÌø¸¤‘jjjjŒ…<y„úè Ç£“‡½z©q¨q¨&c!OÐñד‹³£/xsqòòËÝw½z©q¨&c!OЯðWzõRãP9LÆBž #ÞÇktwï}Ákœ�î½;?éÕK�Cå0 y‚Žø¯q¸wtòãm¯^j*‡ÉXÈtÄ7x�úëùÉÅíÛ^½Ô8Ô8T“±�'èõò7¼F9:{xïÏîâ»ó‹|wtò°×þ«÷wŒ-Æ•öcp”V�Ú ‘C͢ܬ�-Æ–Óýc'Š�'ؼXjÇ^7/–ºy³Ôþ«”)øÝ‚' .£(7ãD1¢±äøqˆ;Ìx©q¨q¨�NÎŽîáßÏŸ>9–�-È y! ­Ij*0¡^'I++GÆcËéþޱš"ywÆ‚1"(×V(31ú%HðL‚ƒ¤}r:E2|SÐ7 (�Šñ˜$}7â�‚¥ ib€¢Ô©âLŒBš5‹r3†œ…´6¶ÇÐ4‹r3@Ñä2*6|Sà  Ûc Åe»Ž 9!(ÆäЋ±à›‚~Øб°=†,a`€²]džœ0KGr+jò¬’3|SЯ:@1¶Çà“@Ù®cCNè“é–\&ç Gr+jò¬’3|SÐïw€b,l�aTÚ”í:6ä„£Òžb ŽÒªq$· ¾)èÏ:@1¶Çƒ›ÊvrÂܼ†™P“g•œ±àCŒÀLšŠ_Èßà�›(Ç$Ȥ…^­¤ÙXð!F˜(F€¢)’g•ºÄ¨ŽäV9–ÑØ‚J#Kpz ÊÈ é@1ªÿÅ£Ò8¤Õec‹±åtÇXåÚÊ;ca|¬ÀWŸœrÆ‚1"L9ic!8o† hÕð/8)6|Sà9zca{ t ØXbcËéþޱŨ‚š\F͢܌œ°‰rLbl1¶œîïÛ4‹róÎXÓcu(31œÞ3á iD^5‹r³±�$@(š‡f]‘I3Ið˜$áôžÉXØÃü @™‰ÑÑkÒ-9M¨”Sz¡l,´U/°†œ…´6ÆÇ |�J3@iB-!'Ôä2Nï™�FÍ;caL��j(31Nï™P9$š•fcÁ‡aÊI”&Ê1*þwc¡¥ @bQô˜0ä,¤5¦§÷LÆ‚r°å¼ÐHŽ1ä,¤µ±°4ꢆ PrBÅæ œ±åtÇØblÁ,a`S&Ôë$ieåÈØbl9Ýß16Kxg,Ĺf �äV(31†œ…´Æ4`–00ŽäVcÁ‡!kåf€¢ÉeÔ,ÊÍÈ }r:E2â�‚¥jŠä9C™‰1ä,¤5¦…tKNjò¬’3ô3LÁß\ÍIã�c`\5 ñ@ÁR³„�Ç” ÊLŒ!g!­1 ˜% ŒcÊ„š^­ä< Û±AÓ,ÊÍÆjŠä9ïŒbåÚÊe&F¿ žIp�4¢ON§HÆ‚o úa(J£b<ün,ÄKÍãá „œ…´Æ4 K2†ˆ¯Uæú¦Œ…í14ꢆ Pæ„M”cTl,ø¦ _uc!(Xj¯Êáú¦Œ…í14Í¢Ül,ø¦ ßïÆBxP|~ƒ¾)ca{ M³(7 ¾)èϺ±,5�W€rµAß”±°=†¦Y”›�ßô'ÝXˆ –šÇü @yñù>ú¦Œ…í14Í¢Ül,ø¦ ¿èÆBÄÅPD¹y!œ(F‰�nÉeržððêóôM¡fQn6¶ÇÐ4‹r³±à›‚~¿ ñ@ÁR›¤–”&©%a•\ˆ¨[ðÊͨY”›�…í14Í¢Ül,ø¦ ?ëÆB‰ z‰¦ào.�…x `©Ë¨Œ…íØ iåf€¢Ée\F…š^­ä<[N÷wŒ-Æ•öcp”V�>9–5êu’´²rdl1¶œîï;*íwä:$Gr+”™CÎBZcpH2jÉ­Æ‚1BÖ,ÊÍE“˨9¡ON§HÆBÄʵ•ÊLŒÁ%^HŒßx(ƒrJ/”ñ=ñwca{ Ñ­1nÊ{ÒxŠM”cŒ40ŽAfåP³(7 mÕ €âž¢æ$„~ <“ 1ˆãå}€b,hÇË+€\Æ1=&ä× ³škc!æq¼|PŒÍâxy  -5EˆEÑcB¿ žIŒÍâxù  hNB¨ØØrºÿ§±¥‰rŒ‘Æ1ȬjåfcËéþŸÆF·Æ¸Ù ñ@A®S î&*GPfb 9 i�iÀ)w•#cÁ‡!kåf€¢ÉeTl,ÄKƒÌe&Æ�³�Ö˜ƒÌÊ¡¦HžUrÆ‚^b†)ø›ËC€¢9 ¡b’` L‚B¼Š3â�‚¥Æ ÌÄrÒÓ€‘Æ1Ȭjåfca;6hšE¹ 4QŽQ±±åtÇØblA5/Œc�Y9ÔĬÜll1¶œîï+c�yñ@A®äøqˆPfb 9 i�iÀ&ilŒšE¹ÙXð!FÈšE¹ hr#'ôÉéÉXð!FP®­ PfbôK�à™ÄXðM�ca{ âÖ7Æ‚æ2¹|`,Œ�„z³”™�I*‡=tš•fcAsƒ\Þ(š“*Få°‰rL‚šE¹ÙXÐ@Æ —ÏÊ�EÍ ãdVÎXð!FP®­ PfbttÀè— Á3‰±à›/ePNé…òwca{ âÖ7å=i<Å9aå5‹r³±ÐV½@(.á)jNBè— Á3 &‡šƒ¿1b c�Ë'%¸ŒczLè— Á3 *‡Ë¨.Ÿ šÈäò@á„˨.Ÿ -5EˆEÑcB¿ žIp�4¢æàoŒÍd rù hNB¨.£º|b,ø#(×V(31::`ôK�à™ÄXðM�€2(§ôBù»±°=qkŒ€òž4žbå5‹r³±ÐV½@(.á)jNBè— Á3‰±sƒ\>(ÁeÓcBcAsƒ\Þ(˜x!ÑÆBÌd rù  m,h c�Ëg'’�±ÐRƒP„X=&ôK�à™I#jþÆXÐ@Æ —OŠæ$„�qÕåcËéþŸÆ–&Ê1ŠšÆ1ȬjåfcËéþŸÆŠ[cÜ쌅x  ×)w•#(31†œ…´Æ4àƒ»‰Ê‘±àCŒ�5‹r3@Ñä2*6â�‚¥ŽAf€2cÈYHkLŽAfåPS$Ï*9cA/1ÃüÍå!@Ñœ„P1I0&A!^Å ñ@ÁRe Pfb 9 i�i@QóÂ8™•CÍ¢Ül,lÇM³(7”&Ê1*6¶œîï[Œ-¨‰qH2b$7óbl1¶œîï;*í_ì (ÈuH2FrP†cz�1ÍÊc0ÒÀ8™•3|ˆ²fQn(š%­¬!'\]&Ñ\F^”6|ˆ”k+½N’VVŽŒßx1¶Ç0¸5Æ�± 9À�d¼¼o,Œ�„z³ š IÆË+cÁ‡A¹¶²±à›/ÆÂö·Æ¸1ÚªÆB̆$ãå}cAs€!Éxye,´Ô  š IÆËûÆn�q³3â�‚¥ŽJ{€2cÈYHkLŽAfåPS$Ï*9cA/1ÃüÍå!@Ñœ„P1I0&A!^Å ñ@ÁR‡$#@™‰1ä,¤5¦‡$#Fr3/¨Y”›�…íØ iåf€ÒD9FÅÆ–Óýc‹±ýÜLƒ›×0jbml1¶œîwÆBÄY³(7M.£bä„>9�" ñ@ÁRÇ @Ñœ„0ä,¤5¦Ç ŽäV4ô3LÁß\ÍIã�c`c5EòwÆ‚1‚rme€2£_‚Ï$8HÑ'§S$cÁ7^Ê œÒ åïÆÂöÆ @yOOq þ9á”ÑÜj,ø¦ v€b,ÄK]o‚öJAY�bÊx£ÜœÓˆ~ <“ &6¶ÇÐ4‹r3@Ñä2*FNØD9&1|SЯº±,uÕA{¥ ¬N1eÔ˜4ú%HðL‚šØXØCÓ,ÊÍÆ‚o úýn,ÄKuIrpP\’×4«àNspJ/è— Á3 jbca{ M³(7 ¾)èϺ±,U¿¦A9(ú5e¥—ÓA9§ô‚~ <“ &6¶ÇÐ4‹r³±à›‚þ¤ ñ@ÁRg’18(3Éú%HðL‚šØXØCÓ,ÊÍÆ‚o úƒn,ÄK„œ_  BÎ/è— Á3 jbca{ M³(7 ¾)èoº±,U·à”^ èœÒ ú%HðL‚šØXØCÓ,ÊÍÆ‚13i6|ˆ&Š ¸Ä8¤ÕeÄY³(7M.£bä„>9�" ñ@ÁRÇ @Ñœ„0ä,¤5¦Ç ŽäV4ô3LÁß\ÍIã�c`c5EòwÆ‚1‚rme€2£_‚Ï$8HÑ'§S$cÁ7^Ê œÒ åïÆÂöÆ @yOOq þ9á”ÑÜj,ø¦ v€b,ÄK]o‚öJAY�bÊx£ÜœÓˆ~ <“ &6¶ÇÐ4‹r3@Ñä2*FNØD9&1|SЯº±,uÕA{¥ ¬N1eÔ˜4ú%HðL‚šØXØCÓ,ÊÍÆ‚o úýn,ÄKuIrpP\’×4«àNspJ/è— Á3 jbca{ M³(7 ¾)èϺ±,U¿¦A9(ú5e¥—ÓA9§ô‚~ <“ &6¶ÇÐ4‹r³±à›‚þ¤ ñ@ÁRg’18(3Éú%HðL‚šØXØCÓ,ÊÍÆ‚o úƒn,ÄK„œ_  BÎ/è— Á3 jbca{ M³(7 ¾)èoº±,U·à”^ èœÒ ú%HðL‚šØXØCÓ,ÊÍÆ‚13i6|ˆ&Š ¸Ä8¤Õe prompt. Screen 1 appears: "Select source for configuration" Select: From Drive B Screen 2: "Select the items you want to change" Select: Key definitions (CR) Move curser to "Arrow Settings", then (CR) Screen 3: "Select standard arrow key definition" Move curser to "Wordstar Standard", then (CR) Press (ESC) key to return to Screen 2. Press (ESC) key again. Screen 2. Move curser to "Printer Port", then (CR) Configuration is: Baud rate = 1200 Protocol = no protocol Device Selection = Other (AUXIN:/AUXOUT:) Initialization String = none Move curser to "Parallel Port", then (CR) Configuration is: Protocol = Centronics Device Selection = Printer (LST:) Initialization String = 1 (Note: press Escape key, release it, press 1 key, release it, then press (CTRL)(CR) Move curser to: "Exit to Save Menu", then (CR) Save Setup to: Drive B Important note: All of the above SETUP configurations should be saved on your CP/M and SuperCalc disks, EXCEPT, under Parallel Port, the Initialization String = none. The 1 string instructs the printer to print in correspondence mode. A menu-driven program named INSTALL, included on the Wordstar package, is the second program to run. This program allows you to tell Wordstar what kind of printer you are using and how it operates. (References: vol. 2, pp. 176-189 Executive Guide, and Nov. 1983 FOGHORN, p. 32). Wordstar operates many of the same functions as the Microline Printer, including boldface, double strike, underscoring, and other word processing features. Insert Wordstar INSTALL in Drive A. Insert Wordstar disk in Drive B. Boot the system. Answer the questions upon prompt. You will then get to the Installation Menu. Select "C" Menu of Printers Select either "standard printer" or "Okidata ML84A" (if you have this model). Communications Protocol = "A" none Driver = "A" operating system primary list device. Select "D" Custom Installation of Printer A menu will appear. Select "F" Boldfacing (^PB) The patches are as follows: 80 82A/83A 84/92/93 -- ------- -------- 03 no patch 03 Select "I" Ribbon Selection (^PY) The patches are entered as hexadecimal. Precede each number with a comma. Press (CR) after each number. Eg. ,03 (CR) "Alternate Ribbon Selection - first ^PY" This patch toggles between underlining and not underlining. 80 82A/83A 84/92/93 -- ------- -------- no patch no patch 02 1B 43 (CR) "Stardard Ribbon Selection - second ^PY" 80 82A/83A 84/92/93 -- ------ -------- no patch no patch 02 1B 44 (CR) Select "J" Vertical Motion (^PT and ^PV) "Start Vertical Motion - ^PT" (superscript) 80 82A/83A 84/92/93 -- ------ -------- no patch no patch 02 1B 4A (CR) "Stop Vertical Motion - ^PV" (subscript) 80 82A/83A 84/92/93 -- ------ -------- no patch no patch 02 1B 4C (CR) VMI minimum value = -1 VMI range value = -2 Line Feed Function Code = (empty) Reverse Line Feed Function Code = (empty) Select "O" User Defined Function "User function #1" (^PQ) 80 82A/83A 84/92/93 Mode -- ------ -------- ---- 01 01 01 80 = 16.5 cpi 1D 1D 1C 82A/83A = 16.5 cpi (CR) (CR) (CR) 84/92/93 = 12 cpi (CR) (CR) (CR) "User function #2" (^PW) 01 01 01 % 80 = 5 cpi 1F 1F 1F 82A/83A = 5 cpi (CR) (CR) (CR) 84/92/93 = 5 cpi (CR) (CR) (CR) "User function #3" (^PE) 01 02 01 80 = 10 cpi 1E 1D 1D 82A/83A = 8.3 cpi (CR) 1F (CR) 84/92/93 = 17 cpi (CR) (CR) (CR) "User function #4" (^PR) 01 01 01 80 = 10 cpi 1E 1E 1E 82A/83A = 10 cpi 0 0 0 84/92/93 = 10 cpi (CR) (CR) (CR) Select "Q" Character Pitch "Select alternate pitch" (^PA) 80 82A/83A 84/92/93 -- ------ ------- 02 02 02 80 = 8 lpi 1B  1B 1B 82A/83A = 8 lpi 38 38 31 84/92/93 = corresp. (CR) (CR) (CR) "Select standard pitch" (^PN) 02 02 02 80 = 6 lpi 1B 1B 1B 82A/83A = 6 lpi 36 36 30 84/92/93 = data (CR) (CR) (CR) Notes: 1. If you ML-84 printer is not a Step 2 printer, then the codes for 12 cpi and 17 cpi will be switched. 2. Correspondence mode is not supported in 17 cpi on the ML-92 and ML-93. ------------------------ Wordstar (R) is a registered trademark of MicroPro International Corporation. Select "Q" Character Pitch "Select alternate pitch" (^PA) 80 82A/83A 84/92/93 -- ------ ------- 02 02 02 80 = 8 lpi 1B  This is the release date of the disk. ERGO1 ASM €€ ML92SET COM €NECSET ASM € NECSET2 COM € NECSET2 ASM € €OKI-TST BAS €€OKI-TST DOC €€OKI92 COM €#OKI92 DOC €OKI92 PAS €€OKITALICCOM €!OKITALICDOC €# OKITALICASM €&PRINTER BAS €,€7OKI92 .DOC E3 C3 512 4 OKI92 .PAS F9 EF 1664 13 OKITALIC.COM 6A C8 1536 12 OKITALIC.DOC DF 35 2816 22 OKITALIC.ASM 9F 8A 5632 44 PRINTER .BAS 00 78 14208 111 PRINTER .DSC BE DF 512 4 PRISM132.TXT 68 46 21888 171 PRO .BAS C5 3D 14720 115 PRO-BAS .DOC CF 34 10240 80 PRO-ADDR.BAS 14 A2 4224 33 PRO-ADDR.DOC 56 F1 1024 8 PROPSPAC Fog Library Disk FOG-CPM.102 Copyright (1986) by Fog International Computer Users Group to the extent not copyrighted by the original author for the exclusive use and enjoyment of its members. Any reproduction or distribution for profit or personal gain is strictly forbidden. For information, contact FOG, P. O. Box 3474, Daly City, CA. 94015-0474. as part of the description of a file indicates that the program is distributed on a "try first, pay if you like it" basis. If you find the program(s) meet your need, please refer to the author's documentation for information on becoming a registered user. Only by registering and paying for the programs you like and use will the authors of such programs continue development. Often, more complete documentation, additional modules, and new releases are available only to registered users. Printer Setting Programs. Filename Description -07-00 .86 This is the release date of the disk. -CPM102 .DOC This is the description of the disk contents. ERGO1 .COM 5B41 1K [ERGO1 1 of 2] Sets the Ergo Hush-80 printer modes from a menu. ASseMbler source is included. ERGO1 .ASM 73D5 4K [ERGO O1 2 of 2] ML92SET .COM FBCA 1K Sets Okidata ML92 print modes from a menu. NECSET2 .COM 3C8C 1K ver. 2 [NEC SET 2 of 3] Set print modes for the NEC 8023A-C and C.Itoh Prowriter printers. Two versions of the ASseMbler source included. NECSET .ASM 5765 3K [NEC SET 1 of 3] NECSET2 .ASM A264 2K ver. 2 [NEC SET 3 of 3] OKI-TST .BAS 70B9 5K [Okidata test 1 of 2] Microline 92 and 93 printers test demo program. Needs MBasic. OKI-TST .DOC FBD7 1K [Oki-test 2 of 2] OKI92 .COM 9CF6 9K [Okidata 92 1 of 3] Menu-driven program to set print modes on Microline 92. OKI92 .DOC E3C3 1K [OKI 92 2 of 3] OKI92 .PAS F9EF & 2K [OKI 92 3 of 3] OKITALIC.COM 6AC8 2K [OKITALIC 1 of 3] Downloads an italic character set to the Microline 92 or 93 printers which can be accessed from your software. ASseMbler source code also included. OKITALIC.DOC DF35 3K [OKITALIC 2 of 3] OKITALIC.ASM 9F8A 6K [OKITALIC 3 of 3] PRINTER .BAS 0078 14K [Prism 132 1 of 3] Sends print control codes to an ADS Prism 132. Basic source code is included. PRINTER .DSC BEDF 1K [Prism 132 2 of 3] PRISM132.TXT 6846 22K [Prism 132 3 of 3] PRO .BAS C53D 15K [PRO 1 of 2] Prints WordStar file with proportional spacing on an NEC8023A Requires MBasic. PRO-BAS .DOC CF34 10K [PRO 2 of 2] PRO-ADDR.BAS 14A2 5K [PRO-ADDR 1 of 2] Prints envelopes and address labels in proportional font on NEC 8023A or C.Itoh Prowriter. Requires MBasic. PRO-ADDR.DOC 56F1 1K [PRO-ADDR 2 of 2] PROPSPAC.DIA 0853 11K Notes on getting proportional spacing on the Diablo 630 printer. PROWPINS. 7792 4K How to interface the Prowriter to the Osborne 1. PSETUP .PAS 9462 3K Panasonic KX-P1092 setup that is Menu Driven. PTR8023 .COM 72A3 1K [PTR 8023 1 of 2] Menu-driven setup for NEC 8023A-C printer. ASseMbler source code is included. PTR8023 .ASM 0807 7K [PTR 8023 2 of 2] SETOK .COM D929 1K [SETOK 1 of 3] Set the Okidata printer codes from a menu. Documentation and Assembler code is included. SETOK .DOC 9A1C 2K [SETOK 2 of 3] SETOK .ASM D6B1 6K [SETOK 3 of 3] TALLY .COM 1328 3K [TALLY 1 of 2] Sets Mannesman Tally MT160L printer codes from a menu. Squeezed ASseMbler source code is included. TALLY .AQM 8078  11K [TALLY 2 of 2] TYPE .BAS 2520 2K [TYPE 1 of 2] MBasic program for setting Okidata print codes from a menu. TYPE .DOC B39E 1K [TYPE 2 of 2] WSOKI .DOC 219D 8K Tips for setting Okidata Printers up with WS 3.0 LIC.DOC DF35 3K [OKITALIC 2 of 3] OKITALIC.ASM 9F8A 6K [OKITALIC 3 of 3] PRINTER .BAS 0078 14K [Prism 132 1 of 3] Sends print control codes to an ADS Prism 132. Basic såååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå'ååååå