home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
cpm
/
programs
/
list
/
prtcol10.lbr
/
PRTCOL.DZC
/
PRTCOL.DOC
Wrap
Text File
|
1987-09-10
|
18KB
|
408 lines
.he DOC: PRTCOL Multicolumn text-file formatter --CHR$(13)08JUL86 -#-
WHAT IT IS:
Thi≤á i≤á PRTCO╠á v1.0¼áá inspireΣá b∙á Rober⌠á S«áá Stein'≤ ì
PRT2COL.BAS¼á baseΣ iε turε oε RalpΦ Landry'≤ WSTWOCOL.BAS«á
PRTCO╠ i≤ writteε iε Zilog-dialec⌠ assembly« I⌠ use≤ thσ Z8░ ì
extension≤á anΣ thu≤ require≤ ß Z80¼á aε NSC80░ o≥ aε HD6418░á t∩ ì
run«á Sourcσ i≤ includeΣ iε thi≤ library¼ fo≥ thosσ witΦ thσ urgσ ì
eithe≥áá t∩á tinke≥á witΦá i⌠á o≥á t∩á adap⌠á i⌠á t∩áá 8080-bounΣ ì
microprocessor≤á (o≥ t∩ hacδ ou⌠ an∙ buτ tha⌠ ma∙ havσ escapeΣ m∙ ì
testing).
PRTCO╠á reformat≤á full-widtΦ tex⌠ file≤ int∩á tw∩á o≥á morσ ì
paralle∞á columns«á Thσ program'≤ outpu⌠ caε bσ sen⌠ t∩ CON:¼á t∩ ì
LST║ anΣ t∩ disk.
Unlikσ it≤ MBASI├ predecessors¼á PRTCO╠ doe≤ it≤ owεá columε ì
formatting«á Thσá program'≤á formattinτá i≤á ragged-righ⌠á unles≤ ì
certaiεáá procedure≤á arσá followeΣá (seσá below¼áá "WS-formatteΣ ì
columns")¼á bu⌠á i⌠á doe≤á pacδ word≤ froφ an∙á forma⌠á int∩á it≤ ì
columns, even from Apple-style "stream of words" files«
PRTCO╠ activel∙ throw≤ awa∙ WordSta≥ soft-formatting¼ s∩ al∞ ì
thosσá extrß spaces¼á sof⌠ hyphen≤ anΣ "sof⌠á carriagσá returnsó ì
don'⌠ sho≈ u≡ iε thσ columnizeΣ text.
FORMAT:
A≤ released¼á PRTCO╠ format≤ it≤ outpu⌠ a≤ two-columε pages« ì
EacΦ 55-linσ columε contain≤ u≡ t∩ 3╡ characters« Thσ tw∩ column≤ ì
arσ separateΣ b∙ ß five-spacσ "gutter"«á Tw∩ line≤ abovσ thσ tex⌠ ì
column≤ i≤ ß header╗á fou≥ line≤ belo≈ thσ tex⌠ i≤ ß footing« Al∞ ì
tex⌠á i≤ offse⌠ froφ thσ printer'≤ lef⌠ margiε b∙á eigh⌠á spaces« ì
Afte≥ eacΦ pagσ come≤ ß FormFeeΣ code« Thi≤ forma⌠ i≤ idea∞ fo≥ ß ì
printe≥á se⌠á t∩ 12-pitcΦ (1▓ character≤ pe≥ inch)¼á ╢ line≤á pe≥ ì
inch«
Thσá pagσá parameter≤ arσ storeΣ variables¼á s∩ the∙ caεá bσ ì
dynamicall∙á altered«á "Dynamicallyóá mean≤ jus⌠á that║á yo⌡á caε ì
changσ thσ pagσ parameter≤ fo≥ onσ file¼á o≥ makσ you≥ change≤á ß ì
permanen⌠áá par⌠á oµá thσá COMfile¼áá al∞á withiεá thσá program'≤ ì
operation¼á prio≥á t∩á runninτ ß tex⌠ filσ througΦá thσá process¼ ì
without resorting to the use of a debugger or disk editor.
WHAT IT ISN'T:
╔ wrotσ PRTCO╠ t∩ bσ ß quicδ tool¼á rathe≥ thaε aε extensivσ ì
one¼á s∩á there'≤á ßá lo⌠ tha⌠ i⌠ doesn'⌠ have«á (Iεá thσá hacke≥ ì
spirit¼ I should add, in some cases, "yet".)
1«á PRTCO╠á v1.░á ha≤ ßá somewha⌠á cryptic¼á somewha⌠á unfriendl∙ ì
parameter-changσá interface«á I⌠ briefl∙ explain≤ thσ terms¼á bu⌠ ì
thσá user-entr∙á mechanisφá leave≤á mσá profoundl∙á dissatisfied« ì
V2.0'≤ change-interfacσ wil∞ bσ mucΦ morσ cooperative¼ ╔ promise« ì
I'φ releasinτ v1.░ no≈ becausσ somσ oµ yo⌡ migh⌠ neeΣ thσ prograφ ìèlikσ ╔ do..« here'≤ ß whee∞ yo⌡ migh⌠ no⌠ havσ t∩ invent.
2«á PRTCO╠ doe≤ n∩ right-justification«á ╔ wrotσ i⌠ t∩ prin⌠á ou⌠ ì
sourcσ file≤ fo≥ ß proprietar∙ AL╒ wσ usσ wherσ ╔ work¼ wherσ thσ ì
sourcσá line≤ seldoφ exceeΣ teε characters«á Whilσ ╔ wa≤ a⌠ i⌠á ╔ ì
pu⌠ thσ WordStar-compatibilit∙ stufµ in¼á sincσ ╔ wa≤ usinτ ß WS-ì
doπá tex⌠ filσ a≤ ß tethereΣ goa⌠ whilσ ╔ debuggeΣá thσá program« ì
Perhap≤ ß late≥ versioε wil∞ perforφ WordStar-stylσ line-padding.
3«á I'φá no⌠á happ∙á witΦ thσ "over-lonτá wordóá mechanism«á I'l∞ ì
probabl∙á enΣ u≡ puttinτ iε severa∞ way≤ t∩ handlσá thσá problem¼ ì
and a switch-variable for selecting one of them. Suggestions?
4«á Morσá oµá thσá formattinτá shoulΣ bσá controlleΣá b∙á dynamiπ ì
variables. Within limits, I'll get to it.
5«áá I'vσá go⌠á workinτá wildcard-expande≥á anΣá SUBfile-followe≥ ì
routine≤á (iε MORSETXT)╗á eventuall∙ ╔ wan⌠ t∩ pu⌠ thosσ iεá too¼ ì
particularl∙á thσ wildcarΣ expander«á Sincσ al∞ thσá virtual-pagσ ì
anΣ output-buffe≥ structure≤ arσ buil⌠ witΦ calculateΣ variables¼ ì
the∙ caε bσ buil⌠ jus⌠ abovσ ß list-expansioε buffe≥ oµ uncertaiε ì
length.
I'vσá maximizeΣá speeΣá b∙ restraininτ thσ usσá oµá relativσ ì
jump≤á anΣá worΣá fetche≤ anΣ b∙ maximizinτ thσ usσá oµá registe≥ ì
variables«á Eveεá witΦá that¼á thσ timσ i⌠ take≤ thσá prograφá t∩ ì
forma⌠ ß virtua∞ pagσ i≤ quitσ noticeable« An∙ additiona∞ option≤ ì
caεá onl∙ adΣ t∩ tha⌠ timσ overhead«á WitΦ ROF╞ ou⌠ therσ iεá thσ ì
publiπ domain¼á ╔ seσ n∩ reasoε t∩ pu⌠ morσ thaε thσá comfortablσ ì
minimuφ oµ proces≤ flexibilit∙ int∩ PRTCOL«á Iµ yo⌡ disagree¼ le⌠ ì
mσá kno≈á wha⌠ yo⌡ conside≥ essentia∞ here..«á ╔ migh⌠á no⌠á havσ ì
considereΣ it.
HOW TO USE IT:
PRTCOL'≤á defaul⌠ operatioε i≤ t∩ senΣ thσ outpu⌠ streaφá t∩ ì
botΦá LST║á anΣ CON:«á Thσ strinτ SETUPñ i≤ sen⌠ t∩á LST║á beforσ ì
processinτ begins╗á thσ strinτ PDONEñ i≤ sen⌠ t∩ LST║á afte≥ it'≤ ì
done«
Iε m∙ application¼á SETUPñ set≤ thσ printe≥ t∩ 17cpi¼ PDONEñ ì
set≤á i⌠á bacδ t∩ 12cpi«á Iε thσ releasσá image¼á eacΦá oµá thesσ ì
string≤ contain≤ onl∙ ß carriage-return« Wheε yo⌡ changσ thesσ t∩ ì
sui⌠á you≥á application¼á don'⌠ typσ thσ bytecount¼á d∩ typσá thσ ì
string≤ exactl∙ a≤ the∙ wil∞ bσ sent¼á hittinτ thσ ESCAP┼ ke∙á t∩ ì
inser⌠á <escape╛á (1Bh⌐á iε thσ string«á
Iµ you≥ strinτ ha≤ t∩ contaiε ß nul∞ (00h¼á ^@)¼ ß backspacσ ì
(08h¼á ^H)¼á ß CA╬ (18h¼á ^X)¼ ß NA╦ (15h¼ ^U)¼ ß carriagσ returε ì
(0Dh¼á ^M⌐á o≥á ß linefeeΣ (0Ah¼á ^J)¼á you'l∞ havσ t∩ tweaδá thσ ì
strinτá witΦ ß debugge≥ o≥ ß disδ edito≥ (SUPERZA╨ i≤ superΓá fo≥ ì
this)¼á becausσá thesσá arσ command≤ t∩ thσá BDOS-likσá line-edi⌠ ì
routinσá tha⌠á accept≤ thσ ne≈ strinτ froφá thσá console...sorry« ì
Don'⌠á forge⌠á t∩ changσ thσ bytecount¼á thσ firs⌠á bytσá iεá thσ ì
string¼ t∩ sho≈ thσ numbe≥ oµ byte≤ tha⌠ follow« è Iµá yo⌡ se⌠ ß string'≤ bytecoun⌠ t∩ zero¼á n∩ byte≤ wil∞á bσ ì
sent« Again¼ you'l∞ havσ t∩ worδ oε thσ prograφ froφ outside╗ thσ ì
parameter-changσá routinσ leave≤ thσ strinτ unchangeΣ iµ i⌠á get≤ ì
an empty line.
Command-Line Syntax:
A0>prtcol [du:]infile[ du:][outfile][ v][ q][ ?]
The " V" switch suppresses LST: output.
The " Q" switch suppresses CON: output.
Thσá ó ?ó switcΦ get≤ yo⌡ int∩ thσ parameter-changσ routine≤ ì
afte≥á thσ prograφ sign≤ oε anΣ beforσ i⌠ start≤ t∩ reaΣá iεá it≤ ì
file.
OUTFIL┼á mus⌠ bσ specified«á That'≤ thσ onl∙ wa∙ PRTCO╠á caε ì
tel∞á tha⌠á yo⌡ wan⌠ filσ output«á Yo⌡ caεá wildcarΣá thσá outpu⌠ ì
filespec¼ though« Fo≥ example,--
In Out Result
tethered.got mauled.* output->MAULED.GOT
tethered.got b3:*.* output->B3:TETHERED.GOT
tethered.got *.* input is renamed TETHERED.BAK,
output->TETHERED.GOT
[TETHERED.$$$ until done]
WitΦá onl∙ onσ oµ thesσ universa∞ "kerchunksó fo≥ ßá command-linσ ì
argument--
A0>prtcol
A0>prtcol ?
A0>prtcol //
PRTCOL shows a help screen and then goes home.
Parameter-Change Interface:
Thσ v1.░ parameter-changσ interface¼á a≤ mentioneΣ above¼ i≤ ì
ßá fe≈ gooΣ idea≤ tackeΣ ont∩ ß slightl∙ unpleasan⌠ driver«á
Wheεá yo⌡ i⌠ ask≤ yo⌡ fo≥ ß label¼á typσ exactl∙á that¼á thσ ì
labe∞ oµ thσ variablσ whosσ valuσ yo⌡ wisΦ t∩ change« Eithe≥ casσ ì
wil∞ d∩ anΣ n∩ coloε i≤ desireΣ o≥ needed.
Iµá i⌠á ask≤á fo≥ ß hexadecima∞ value¼á i⌠ want≤á tw∩á ASCI╔ ì
digits. For example, to specify <linefeed> (^J, 0Ah), type "0a".
Iµ i⌠ ask≤ fo≥ ß string¼ typσ thσ strinτ exactl∙ a≤ yo⌡ wan⌠ ì
i⌠ stored«á Example║á t∩ se⌠ u≡ ß GeminΘ 15╪ fo≥ 17cpi¼á yo⌡ senΣ ì
thσ string║á ESCapσ ┬ 3«á Here¼á that'≤ typeΣ iε a≤ <esc>,'B',^C« ì
Don't type in a bytecount; the program does that part by itself.
Thesσ arσ thσ variables«á Onl∙ thosσ witΦ an∙ meaninτ iε v1.░ arσ ì
displayed for check and change...è
; -----MAGIC BYTES------
;
TABSPC: db 8 ;column count for tab expansion
LOFSET: db 8 ;left margin from print-head start
COLPRT: db 2 ;copy is split into this many columns
GUTBYT: db 5 ;inter-copy midpage margin (gutter)
COLBYT: db 35 ;width of each text column in characters
;
;The following variable is meaningless in v1.0:
;
PAGLEN: db 65 ;lines that will fit on a page
;
LINES: db 55 ;lines of copy per page
HEDRUM: db 2 ;header-to-copy margin in lines
FUTRUM: db 4 ;copy-to-footing margin in lines
;
LFEED: db 0FFh ;0 = no perfskip.
;0FFh = use ^L for TOF.
;Else, = PERFSKIP in linefeeds
BSCHAR: db 8
FFDMAP: db LF ;^L is mapped to this char for CON:.
;
SETUP$: db 1,CR ;byct, then chars
;
org SETUP$+16
;
PDONE$: db 1,CR
;
org PDONE$+16
;
FLOPPY: db 0FFh ;true if floppy-based
HOMDSK: db 'B'-'A'
HOMUSR: db 0
HOMNAM: db 'PRTCOL COM'
;
;These two aren't operative in v1.0:
;
BUFENA: db 0FFh ;true if dot-buffers are enabled
DOTENA: db 0FFh ;true if dot-commands are enabled
;
;Down here where they're patchable (if there's room)...
;ECHOSW may be patched to 'call' opcode for print-echo.
;
CONOUT: ld e,a
ld c,2
ECHOSW: jp BDOS
;
pop af
push af
LSTOUT: ld e,a
ld c,5
jp BDOS
;èHOW IT WORKS:
Thσá inpu⌠ streaφ i≤ reaΣ int∩ thσ defaul⌠ recorΣ buffe≥á a⌠ ì
80Φ anΣ fetcheΣ b∙ ß GETBYT┼ routine«á PRTCO╠ doe≤ it≤ formattinτ ì
iε ß virtua∞ pagσ buffe≥ iε memory¼á jus⌠ abovσ it≤ owε codσá anΣ ì
operatinτ variable≤ anΣ thσ heade≥ anΣ footinτ buffers« I⌠ use≤ ß ì
pushbacδá stacδá (locateΣá jus⌠ unde≥ CCP⌐ t∩á holΣá thσá fetcheΣ ì
beginninτá oµá an∙ worΣ tha⌠ won'⌠ entirel∙ fi⌠ int∩ thσá curren⌠ ì
columεá line«á Al∞á memor∙ iε betweeε thosσ tw∩ arσá useΣá a≤á aε ì
outpu⌠ buffe≥ wheε thσ outpu⌠ i≤ to be sen⌠ t∩ disk.
Iµá you'vσ invokeΣ thσ parameter-changσ routine¼á tha⌠á get≤ ì
ruε first«á Iµ yo⌡ changσ an∙ oµ thσ variables¼á PRTCO╠ wil∞á asδ ì
whether you want those changes made permanent.
Iµ yo⌡ sa∙ yes¼ PRTCO╠ look≤ fo≥ thσ filσ nameΣ a⌠ HOMNA═ iε ì
HOMUSR user area of HOMDSK drive.
Oncσ i⌠ find≤ sucΦ ß file¼á i⌠ read≤ iε thσ seconΣ recorΣ oµ ì
tha⌠ filσ anΣ compare≤ i⌠ witΦ it≤ owε memor∙ areß 180h-1FFh«á Iµ ì
thσá tw∩ record≤ arσ identical¼á i⌠ write≤ ou⌠ byte≤ 100h-17FΦ t∩ ì
thσá firs⌠ filσ recorΣ anΣ put≤ thσ changeΣ filσá away«
Theεá i⌠ calculate≤ addresse≤ fo≥ thσ virtua∞á pagσá buffer¼ ì
baseΣá oε thσ paramete≥ variables«á Thσ columnateΣ tex⌠ goe≤ int∩ ì
tha⌠ virtua∞ page╗á thσ heade≥ anΣ footinτ arσ reaΣ straigh⌠á ou⌠ ì
oµ thei≥ owε buffers« There'≤ ß header-sidinτ buffe≥ too¼ useΣ t∩ ì
hold a header found mid-page until the current page is sent out.
PRTCOL'≤á heade≥á handlinτ currentl∙ differ≤á slightl∙á froφ ì
tha⌠ oµ WordStar«á Iε WordStar¼ iµ ß .H┼ linσ occur≤ jus⌠ afte≥ ß ì
pagσ break¼ i⌠ wil∞ bσ printeΣ a⌠ thσ to≡ oµ tha⌠ page« Iµ PRTCO╠ ì
v1.░á find≤á sucΦá ß line¼á though¼á i⌠ put≤ i⌠ int∩á thσá heade≥ ì
siding¼á wherσá i⌠ sit≤ unti∞ thσ curren⌠ pagσ i≤á completeΣá anΣ ì
sen⌠á out«á Onl∙á theε i≤ thσ ne≈ heade≥ copieΣ int∩á thσá heade≥ ì
buffer« Thi≤ wil∞ probabl∙ bσ changeΣ iε ß subsequen⌠ version¼ t∩ ì
follo≈á thσá WordSta≥á style¼á eveεá thougΦá it'≤á unlikel∙á tha⌠ ì
PRTCOL'≤ pagσ breaδ wil∞ occu≥ a⌠ thσ samσ placσ a≤ WordStar's.
Startinτá witΦá thσ firs⌠ locatioε iε thσá leftmos⌠á column¼ ì
PRTCO╠á write≤ thσ inpu⌠ streaφ character≤ int∩ eacΦ linσ iεá thσ ì
firs⌠ column¼á afte≥ writinτ thσ Left-OFfSE╘ byte≤ int∩ place« Iµ ì
ß partially-fetcheΣ worΣ won'⌠ fi⌠ int∩ thσ column¼á thσá prograφ ì
move≤á backwards¼á shovinτ thσ character≤ ont∩ thσ pushbacδ stacδ ì
anΣ replacinτ theφ witΦ spaces¼á unti∞ i⌠ find≤ ß space« Wheε thσ ì
pushbacδ stacδ i≤ checkeΣ a⌠ thσ beginninτ oµ thσ nex⌠ line¼ tha⌠ ì
partia∞á worΣ wil∞ bσ pulleΣ bacδ ofµ anΣ pluggeΣá in¼á theεá thσ ì
prograφá wil∞á completσá thσá worΣ b∙ fetchinτ thσá res⌠á oµá thσ ì
character≤ oε thσ inpu⌠ stream«
Wheεá thσ leftmos⌠ columε i≤ filleΣ in¼á thσ prograφá start≤ ì
fillinτá iε thσ nex⌠ one«á EacΦ linσ oµ al∞ succeedinτ column≤ i≤ ì
preceded by a GUTter BYTecount of spaces.
An∙ <tab╛ character≤ (^I¼á 09h⌐ encountereΣ wil∞ bσ expandeΣ ì
int∩á spaces«á Thσá release-versioεá imagσá ha≤á thσá controllinτ ì
variablσ se⌠ t∩ columns-of-eigh⌠ (samσ a≤ BDO╙ doe≤ wheε i⌠ send≤ ìètex⌠á t∩ CON:)«á Tab-expansioε doe≤ no⌠ extenΣ beyonΣ thσ enΣá oµ ì
the column line.
Thσ las⌠ columε oµ eacΦ linσ i≤ filleΣ iε witΦ null≤á rathe≥ ì
thaε spaces«á Thi≤ matter≤ becausσ null≤ aren'⌠ sen⌠ out¼á s∩ thσ ì
las⌠ printablσ characte≥ oµ eacΦ multicolumε linσ oµ eacΦ pagσ i≤ ì
followeΣ b∙ ß <crlf>¼á no⌠ ß streaφ oµ spaces¼á unles≤ thσ space≤ ì
or a <tab> are there in the input stream«
Oncσá thσá enΣá oµá thσ inpu⌠ filσá i≤á reacheΣá (eithe≥á b∙ ì
fetchinτá aεá EOF¼á ß ^Z¼á o≥ b∙ ßá sequential-reaΣá error)¼á thσ ì
remainde≥ oµ thσ las⌠ virtua∞ pagσ i≤ filleΣ iε witΦ nulls¼á witΦ ì
thσ samσ resul⌠ a⌠ send-time.
Thσá las⌠á pagσ oµ ß PRTCO╠ outpu⌠ imagσ wil∞ havσ ßá singlσ ì
columεá closσ t∩ thσ lef⌠ margin¼á rathe≥ thaε (a≤ iε somσá othe≥ ì
simila≥á programs⌐á tw∩ o≥ morσ shor⌠ column≤ a⌠ thσ to≡á oµá thσ ì
page«á Choosσá anΣá usσ thσ too∞ tha⌠ fit≤ you≥á need≤á anΣá you≥ ì
tastes; this method meets mine.
Iεá thσá interes⌠ oµ universality¼á an∙ onσ oµ thesσ iεá thσ ì
inpu⌠ streaφ i≤ considereΣ ß valiΣ End-Of-Line:
<null>
<cr> (found in Commodore listings)
<lf> (found in UNIX/C listings)
<crlf> (CP/M standard)
...the pushback stack makes this flexibility possible.
WordStar Documents and PRTCOL:
1« Sof⌠ spaces¼ inserteΣ b∙ WordSta≥ fo≥ right-justification¼ arσ ì
discarded. (Soft space = A0h = ' '+80h.)
2«áá Sof⌠á EOLs¼á inserteΣá b∙á WordSta≥á iεá word-wrapping¼á arσ ì
discarded«á (Sof⌠ End-Of-Linσ ╜ 8Dh,0Ah╗á <cr>+80h¼ plu≤ ß norma∞ ì
<lf>. Together, a "soft carriage-return".)
3«á Sof⌠á hyphen≤ arσ discarded«á (1EΦ o≥ 1Fh╗á WordSta≥ display≤ ì
botΦá a≤á half-intensit∙á hyphens.⌐á Thi≤ happen≤á iεá thσá inpu⌠ ì
stream¼á s∩á thσ word≤ the∙ hyphenateΣ arσ slammeΣ bacδá togethe≥ ì
and considered whole words.
4. All print control codes (^B, etc) are discarded.
5. PRTCO╠á recognize≤ thσ .H┼ anΣ .F╧ dot-commands¼á respondinτ ì
t∩á theφá almos⌠á a≤ doe≤ WordSta≥ b∙ puttinτá thei≥á line≤á int∩ ì
heade≥ anΣ footinτ buffers« Thσ defaul⌠ heade≥ look≤ likσ tha⌠ oµ ì
DISK7╗á thσá defaul⌠á footinτá i≤á WordStar'≤á linσá number«á An∙ ì
encountereΣ heade≥ anΣ footinτ wil∞ displacσ them.
PRTCO╠á recognize≤á WordStar'≤á '#º symbo∞ iεá ßá heade≥á o≥ ì
footing and replaces it with the current page number.
PRTCOL does NOT recognize WordStar's ^K code.è An∙á othe≥á do⌠ command≤ encountereΣ arσá treateΣá likσá an∙ ì
other text.
Antidisestablishmentarianisms and other freight trains
PRTCO╠á use≤ ß pushbacδ stack¼á witΦ I╪ a≤ it≤á pointer¼á t∩ ì
holΣá an∙ portioε oµ ß worΣ tha⌠ won'⌠ fi⌠ iε ß columεá line«á I⌠ ì
pull≤á tha⌠ word-beginninτ bacδ ofµ thσ stacδ t∩ begiεá thσá nex⌠ ì
columεá line«á
Iεá thi≤á program¼á ß worΣ i≤ ß characte≥ strinτ boundeΣá b∙ ì
spaces¼á tabs¼ EOL≤ (<cr>¼ <lf>¼ <crlf╛ o≥ <null>⌐ o≥ EOF« PRTCO╠ ì
doe≤á no⌠á havσ WordStar'≤ programmeΣ abilit∙ t∩ breaδá u≡á word≤ ì
int∩ syllables¼ no≥ doe≤ i⌠ distinguisΦ betweeε alphanumeric≤ anΣ ì
punctuation«á Tha⌠á mean≤ tha⌠ thσ followinτ file-sourcσá string¼ ì
familia≥á t∩ anybod∙ who'≤ haΣ t∩ suffe≥ througΦ m∙ files¼á i≤á ß ì
single very long word:
BLADES/Ampro[lies.961]--CHR$(13)16FEB86
Thσá firs⌠á versioε oµ PRTCO╠ shoveΣ mos⌠ oµ thi≤á ont∩á thσ ì
pushbacδá stack¼á theε filleΣ pagσ afte≥ pagσ witΦá blanδá lines¼ ì
vainl∙á lookinτ fo≥ ß linσ lonτ enougΦ t∩ holΣ it¼á neve≥á seeinτ ì
thσ EO╞ (^Z⌐ tha⌠ wa≤ next in the input stream«
M∙á wa∙ ou⌠ oµ thi≤ i≤ ß kluge║á iµ PRTCO╠ v1.░ find≤ sucΦ ß ì
lonτ word¼á i⌠ shove≤ i⌠ int∩ thσ footinτ buffer¼á plant≤ ß page-ì
numbe≥á symbo∞á behinΣá it¼á theε continue≤á a≤á iµá nothinτá haΣ ì
happened«á Iµ i⌠ find≤ anothe≥ one¼ i⌠ doe≤ i⌠ again¼ eveε iµ thσ ì
firs⌠ onσ hasn'⌠ beeε printeΣ yet«
Iεá m∙á case¼á that'≤á thσ las⌠ thinτ ╔ pu⌠ iεá ßá file¼á t∩ ì
reassurσ mσ tha⌠ I'vσ go⌠ thσ las⌠ pagσ printeΣ ou⌠ anΣ t∩ reminΣ ì
mσ oµ wha⌠ disδ oε wha⌠ machinσ ha≤ thσ filσ (anΣ wheε ╔á starteΣ ì
thσá file)«á Iµá you'rσá fonΣ oµ lonτá words¼á though¼á o≥á ASCI╔ ì
graphics¼á you'rσ eithe≥ goinτ t∩ makσ you≥ columε line≤ a⌠ leas⌠ ì
as long as such or you're going to have a problem.
WS-FORMATTED COLUMNS:
To preserve WordStar right-justification, follow these steps:
1«á Reforma⌠ you≥ tex⌠ t∩ thσ exac⌠ columε widtΦ yo⌡ want¼á usinτ ì
WordStar«
[^OR <right-margin column> <cr> ^QR ^QQB ]
Pu⌠á paragrapΦá break≤ anywherσ yo⌡ wan⌠á them«á Thσá resul⌠ ì
shoulΣ bσ ß single¼ ver∙ lonτ column«
2«á Typσá iεá full-lengtΦá (80Φ max⌐ .H┼ anΣ .F╧á line≤á anywherσ ì
they'rσá wanteΣ (keepinτ iε minΣ thσ differencσ iε thσá treatmen⌠ ì
oµ .H┼ line≤ betweeε W╙ anΣ PRTCO╠ v1.0)« Thσ dot-command≤ d∩ NO╘ ì
have to be capitalized to be recognized.
3. Savσ thσ result«
è4« Hardeε thσ formattinτ witΦ WSDOCON¼ TOPSTRIP¼ PIP¼ o≥ anythinτ ì
elsσ tha⌠ reset≤ bi⌠ d╖ oµ ever∙ byte«á TOPSTRI╨ ha≤ thσá dubiou≤ ì
advantage of not generating yet another *.BAK file.
5«á Ruεá thσá filσ througΦ PRTCOL¼á settinτ COLBY╘ t∩á thσá exac⌠ ì
column width.
PRTCO╠ wil∞ reaΣ iε thσ columε lines¼ plugginτ theφ int∩ placσ iε ì
it≤á virtua∞á pagσá anΣ findinτ tha⌠ (surprise!⌐á ever∙á linσá i≤ ì
cleanl∙ done«á It'l∞ handlσ heade≥ anΣ footinτ line≤ a≤ describeΣ ì
above.
Onσá improvemen⌠á ╔ havσ iε minΣ i≤ ß switcΦ t∩ causσá PRTCO╠á t∩ ì
stri≡ ofµ thσ to≡ bit≤ oµ sof⌠ space≤ anΣ theε usσá them¼á rathe≥ ì
thaε jus⌠ throwinτ sof⌠ space≤ anΣ <cr>≤ away«á Fo≥ now¼á though¼ ì
you'l∞ havσ t∩ flatteε thosσ bit≤ t∩ ge⌠ thσ W╙ formatting.
Hope this helps.
73 & GH --CHR$(13)WB1HKU/6
eof PRTCOL.DOC/Ampro[istuff.984]--CHR$(13)30JUN86