home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
mbug
/
mbug005.arc
/
WILKIN.WSF
< prev
next >
Wrap
Text File
|
1979-12-31
|
20KB
|
349 lines
.. WRITTEN IN WORDSTAR
.. COMMENTS AFTER .. ARE NOT PRINTED
..^P^Y TURNS ON ITALICS
.. PAGE LENGTH = 70
.. PAGE WIDTH = 75
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* I M P R O V E M E N T S T O W O R D B E E *
* by PHIL WILKIN 1986 *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
╔á purchaseΣ m∙ 16╦ 'Beσ somσ threσ anΣ ß halµ year≤ ag∩ anΣá acquireΣ ì
aεá Alpha-8░ printe≥ (samσ a≤ thσ A.T«á unit⌐ shortl∙ afterwards«á Thσ 'Beσ ì
no≈ ha≤ ß 32╦ serie≤ │ coreboard«á Durinτ thi≤ time¼á RO═ baseΣ Wordbeσ ha≤ ì
beeε useΣ extensivel∙ fo≥ ß variet∙ oµ documents/letter≤ anΣ it≤á frustratì
inτá deficiencie≤ havσ resulteΣ iε variou≤ modification≤ beinτ madσ t∩á thσ ì
prograφ t∩ expanΣ it≤ use« Thi≤ articlσ examine≤ somσ oµ thosσ shortcoming≤ ì
anΣ suggest≤ solutions.
Earl∙á mod≤á includeΣá changinτ thσ defaul⌠á printe≥á froφá seria∞á t∩ ì
paralle∞á anΣá doinτá ß warφ star⌠ wheε jumpinτá t∩á basic«á Howeve≥á thesσ ì
variation≤ arσ insignifican⌠ wheε compareΣ t∩ wha⌠ caε bσ achieved.
Yo⌡á can'⌠á reall∙á expec⌠ mucΦ iε aε 8╦ worΣ processinτá prograφá ye⌠ ì
Wordbeσá perform≤á effectively«á I⌠ woulΣ bσ nicσ t∩á havσá aut∩á paragrapΦ ì
numbering¼á sub-paragrapΦ indentinτ anΣ ß screeε formatteΣ likσ thσ printeΣ ì
version¼ bu⌠ i⌠ i≤ nevertheles≤ fairl∙ comprehensive.
Thσá maiεá deficienc∙á anΣá thσ areß covereΣ iεá deptΦá herσá concern≤ ì
printe≥á codes«á WitΦ standarΣ Wordbee¼á iµ yo⌡ wisΦá t∩á underline¼á anΣ ì
detes⌠á thosσá sill∙ littlσ dashe≤ invokeΣ b∙ thσ .UL° command¼á yo⌡á woulΣ ì
includσ iε you≥ file:
.ES printer code sequence follows
27 45 1 as per printer manual
follow this with the part to be underlined, then:
.ES
27 45 0
t∩ cance∞ thσ underlining«á T∩ underlinσ ß worΣ iε thσ middlσ oµ ß linσ yo⌡ ì
als∩ neeΣ t∩ suppres≤ linσ feed≤ witΦ ß .Z╬ anΣ carefull∙ spacσ ou⌠ t∩á thσ ì
requireΣ columε fo≥ thσ underlineΣ word¼ anΣ s∩ on.
Simila≥ messinτ abou⌠ i≤ necessar∙ fo≥ an∙ oµ thσ othe≥ attribute≤ onσ ì
i≤ likel∙ t∩ wan⌠ iε thσ tex⌠ sucΦ a≤ italics¼á emphasised¼á doublσ strike¼ ì
enlarged¼á condensed¼ superscrip⌠ o≥ subscript« Thσ solutioε i≤ t∩ modif∙ ì
Wordbeσá t∩ recognisσ mid-linσ signal≤ whicΦ causσ thσ appropriatσ codσá t∩ ì
bσ outpu⌠ t∩ thσ printer.
Beforσ wσ looδ a⌠ implementinτ thesσ iε Wordbee¼á let'≤ havσ ß looδ a⌠ ì
thσ prograφ (versioε 1.2⌐ fo≥ somσ spacσ t∩ pu⌠ ou≥ code«á Therσ arσá 12╕ ì
byte≤ containinτ F╞ o≥ 0░ froφ DF6╖ t∩ DFE6«á Yo⌡ migh⌠ thinδ thi≤ i≤ ß bi⌠ ì
ou⌠á oµ thσ wa∙ anΣ to∩ restricteΣ iε sizσ bu⌠ you≥ printe≥ wil∞ neve≥ kno≈ ì
thσá differencσ anΣ it'≤ wortΦ keepinτ iε mind«á ┴ poin⌠ t∩ notσ i≤á tha⌠ ì
thσá earl∙ versioε (1.0⌐ ha≤ 42╢ freσ byte≤ froφ DE4░ whicΦá i≤á sufficien⌠ ì
fo≥ ß numbe≥ oµ printe≥ codes.
Wheεá yo⌡á initialisσá Wordbee¼á yo⌡á briefl∙á seσá "Checkinτá WORDBE┼ ì
programóá oε thσ maiε men⌡ page«á Iµ an∙ byte≤ arσ differen⌠ yo⌡ wil∞á nex⌠ ì
seσá "EPRO═á ERRO╥á pres≤ ES├ t∩ continue"«á Iµ yo⌡á modif∙á Wordbee¼á thi≤ ì
messagσ wil∞ alway≤ comσ up«á Oncσ yo⌡ havσ you≥ modifieΣ versioε u≡á anΣ ì
runninτ iε aε EPROM¼á i⌠ won'⌠ change¼á s∩ i⌠ doe≤ no⌠ neeΣ t∩ checkeΣ eacΦ ì
time«á Thσá checkinτ routinσ i≤ froφ C01╖ t∩ C05╢ s∩ iµ C01╖ read≤ J╨ C057¼ ì
yo⌡á theε havσ froφ C01┴ t∩ C056«á A≤ ß bonus¼á yo⌡ als∩ ge⌠ DF2▓á t∩á DF5│ ì
wherσ thσ message≤ werσ coded.è Wheεá yo⌡á havσ finisheΣ witΦ ß filσ anΣ typσ (a⌠ thσá maiεá men⌡ ì
level⌐á 'KILºá yo⌡ d∩ notÖ wan⌠ t∩ bσ askeΣ b∙ you≥ Beσ 'Arσ yo⌡ surσ ?ºá iµ ì
yo⌡á kno≈á wha⌠á yo⌡á arσ doing«á Surel∙ you≥ finger≤á coulΣá no⌠á bσá thatÖ ì
accidental!íá Thσá samσá thinτ happen≤ wheε yo⌡ exi⌠ t∩ Basiπá bu⌠á iµá yo⌡ ì
changσá tha⌠ t∩ ß warφ star⌠ Basic¼á aε accidenta∞ 'Eº wil∞ no⌠ crasΦá you≥ ì
file«á Thσá 'Arσ yo⌡ sureº routinσ i≤ a⌠ C14░ anΣ thσ Basiπ exi⌠ start≤á a⌠ ì
C13▓á witΦá C─ 4░ C▒ whicΦ iµ yo⌡ changσ t∩ C─ 2╕ C╣ C│ 2▒ 8░ (CAL╠ ßá CL╙ ì
anΣá J╨á 802▒ t∩ Basic⌐ wil∞ givσ yo⌡ froφ C13╕ t∩ C15▓ whicΦá i≤á 2╖á morσ ì
byte≤á fo≥á printe≥á codes«á Oµ coursσ yo⌡ mus⌠ als∩ deletσ froφá thσá KI╠ ì
routinσ thσ cal∞ t∩ thσ 'Arσ yo⌡ sureº subroutine║á changσ C18╞ froφ C─á 4░ ì
C▒ C░ t∩ ┤ NOPs.
T∩á finΣá morσ space¼á yo⌡ neeΣ t∩ criticall∙ looδ a⌠á thosσá existinτ ì
facilitie≤á whicΦ yo⌡ havσ n∩ neeΣ for«á Therσ seemeΣ t∩ bσ n∩ gooΣ reasoε ì
t∩ senΣ null≤ o≥ wai⌠ fo≥ ° second≤ o≥ t∩ .UL° o≥ switcΦ thσ printe≥ on/ofµ ì
s∩á al∞ these¼á wheε deleted¼á provideΣ space≤ iε thσ prograφá fo≥á printe≥ ì
codes.
Thσá nex⌠ probleφ i≤ t∩ decidσ exactl∙ wha⌠ ne≈ attribute≤ wσ wisΦá t∩ ì
adΣá t∩ thσ program«á ╔ haΣ ß neeΣ fo≥ continuou≤ underlining¼á italiπá anΣ ì
super- scrip⌠ printinτ witΦ enlarged¼ condenseΣ anΣ emphasiseΣ oε thσ 'nicσ ì
t∩á haveºá lis⌠á anΣ i⌠ wa≤ no⌠ to∩ difficul⌠ t∩ adΣ subscrip⌠á anΣá doublσ ì
printinτ a⌠ thσ samσ time«á ┴ ne≈ .F╞ commanΣ wa≤ als∩ addeΣ t∩ providσ ß ì
forφ feeΣ a⌠ thσ enΣ oµ ß letter.
No≈á wσ neeΣ t∩ looδ a⌠ jus⌠ ho≈ anΣ wherσ t∩ adΣ ou≥á code«á Wσá havσ ì
madσá space≤ iε thσ origina∞ prograφ anΣ thesσ caε bσ useΣ fo≥ outpu⌠á codσ ì
bu⌠á wσ stil∞ neeΣ t∩ pu⌠ ß 'tripº int∩ thσ prograφ t∩ tes⌠ fo≥ ou≥á signa∞ ì
anΣ theε jum≡ t∩ thσ outpu⌠ routinσ iµ thσ resul⌠ i≤ positive« Iµ wσ arσ t∩ ì
simpl∙ adΣ morσ do⌠ command≤ wσ caε usσ thσ space≤ iε thσ tes⌠ routinσ lef⌠ ì
b∙ remova∞ oµ .SN#xx¼ .WT#xx¼ .X┘ anΣ .ULx.
Thσá do⌠á tes⌠ routinσ start≤ a⌠ CBA┤ whicΦ i≤ calleΣ a⌠ thσ star⌠á oµ ì
eacΦá line«á Iµ thσ firs⌠ characte≥ i≤ no⌠ ß ful∞ sto≡ (2┼ hex⌐ thσá tes⌠ ì
return≤á 'non-zero'«á Iµá i⌠ i≤ ß dot¼á thσ routinσ theε test≤á thσá fourtΦ ì
characte≥ fo≥ ß <CR╛ (0Dh⌐ - fo≥ two-lette≥ command≤ sucΦ a≤ .JY╗á o≥ test≤ ì
i⌠á fo≥ ß '#º (23h⌐ - fo≥ command≤ sucΦ a≤ .LM#10«á Thσ fina∞ tes⌠ herσá i≤ ì
fo≥ ß .UL° typσ oµ commanΣ whicΦ wσ wil∞ no⌠ need.
Thσá methoΣá ╔ employeΣ wa≤ t∩ usσ onσ lette≥ fo≥á eacΦá ne≈á facilit∙ ì
followeΣá b∙ ß 'Yº fo≥ switchinτ i⌠ oε o≥ ß 'Nº fo≥ switchinτ i⌠á off«á Fo≥ ì
examplσá .I┘á woulΣ switcΦ thσ printe≥ ove≥ t∩ italiπ modσ anΣ ß .I╬á woulΣ ì
rever⌠ i⌠ t∩ normal«á Similarly¼á 'Cº caε bσ useΣ fo≥ condenseΣ printing¼ ì
'Bºá fo≥ big/enlargeΣ character≤ (┼ i≤ reserveΣ fo≥ .ES)¼á 'Mº fo≥á emphasì
ised¼á 'Uºá fo≥ underlining¼á anΣ 'Dº fo≥ doublσ print«á A≤ supe≥ anΣá sub-ì
scrip⌠ arσ s∩ closel∙ related¼ i⌠ wa≤ decideΣ t∩ implemen⌠ thesσ a≤ .S┬ fo≥ ì
sub-¼ .S╨ fo≥ super- anΣ .S╬ fo≥ cancellinτ eithe≥ (samσ code).
Thσá line≤á whicΦá checkeΣ fo≥ thosσ attribute≤ whicΦá arσá n∩á longe≥ ì
requireΣá caε no≈ bσ altereΣ t∩ tes⌠ fo≥ ß ne≈ attributσ sucΦá a≤á italics« ì
However¼á t∩á checδ fo≥ eacΦ oµ thσ eigh⌠ ne≈ facilitie≤ wσ arσ adding¼á wσ ì
ruε ou⌠ oµ spacσ here« Thσ assemble≥ listinτ show≤ ß jum≡ t∩ C03╣ wherσ thσ ì
test≤ continuσ (iε thσ areß lef⌠ vacan⌠ b∙ deletioε oµ thσ 'Checkinτá WORDì
BEEºá routine)«á Thσ listinτ ha≤ beeε commenteΣ t∩ sho≈ wha⌠ thσ codσá doe≤ ì
anΣá iµ yo⌡ havσ you≥ printe≥ manua∞ opeε a⌠ Appendi° ┬ yo⌡ shoulΣ bσá ablσ ì
t∩á verif∙ thσ signal≤ beinτ sen⌠ t∩ thσ printe≥ fo≥ eacΦ attribute«á Apar⌠ ì
froφ thσ routine≤ jumpinτ arounΣ t∩ thσ variou≤ space≤ createΣ earlier¼ yo⌡ ì
wil∞á notσ tha⌠ differen⌠ attribute≤ requirσ code≤ sen⌠ t∩ thσá printe≥á t∩ ì
var∙á froφá onσá characte≥á (condensed║á 0╞ fo≥ on¼á 1▓ fo≥á off⌐á t∩á fou≥ ìècharacter≤ (t∩ turε ofµ sub- o≥ superscript║ ES├ ╚ anΣ ES├ T).
Thi≤ methoΣ work≤ quitσ wel∞ but¼á i⌠ stil∞ ha≤ thσ disadvantagσá tha⌠ ì
yo⌡á neeΣ ß ne≈ linσ t∩ invokσ an∙ oµ thesσ ne≈ facilitie≤ witΦ it≤ owε do⌠ ì
commanΣ anΣ anothe≥ ne≈ linσ t∩ cance∞ it« Iµ yo⌡ wisΦ t∩ prin⌠ onσ worΣ iε ì
thσ middlσ oµ ß paragrapΦ iε italic≤ t∩ highligh⌠ it¼á yo⌡ mus⌠ pu⌠ ßá <CR╛ ì
a⌠ thσ enΣ oµ thσ previou≤ line¼á suppres≤ linσ feed≤ witΦ ß .Z╬ line¼ typσ ì
ou⌠á thσ linσ t∩ thσ precedinτ word¼á anothe≥ <CR>¼á switcΦ oε italiπá modσ ì
witΦ ß .I┘ line¼á typσ thσ italiπ word¼á <CR>¼á re-invokσ linσ feed≤ witΦ ß ì
.ZY¼á spacσ ou⌠ t∩ thσ nex⌠ worΣ anΣ g∩ oε typing« I⌠ ha≤ thσ advantage≤ ì
tha⌠ i⌠ onl∙ require≤ onσ linσ insteaΣ oµ tw∩ anΣ yo⌡ d∩ no⌠ neeΣ t∩á refe≥ ì
t∩ ß lis⌠ oµ thσ numbe≥ code≤ fo≥ eacΦ facility.
Aε improvement¼á however¼á i≤ t∩ usσ ß specia∞ characte≥ a≤ ß mid-linσ ì
trigge≥á t∩á jum≡á t∩á ß tes⌠ routinσ t∩ ascertaiεá whethe≥á thσá followinτ ì
characte≥ i≤ t∩ switcΦ aε attributσ oε o≥ off«á Thi≤ methoΣ ha≤ als∩ beeε ì
useΣá witΦá thσ slosΦ (o≥ backslash⌐ '\º characte≥ beinτá employeΣá a≤á thσ ì
trigger«á Followinτá thi≤ characte≥ witΦ thσ appropriatσ lette≥ fo≥á eacΦ ì
facilit∙ caε togglσ thσ facilit∙ oε o≥ off«
Iε \Ithis\╔ example¼ thσ worΣ 'thisº woulΣ bσ printeΣ iε italic≤ as:
Iε thisÖ example¼ etc.
Yo⌡á shoulΣ no≈ bσ ablσ t∩ follo≈ thσ screeε dum≡ oµ thσ 'PARALLE╠á PRINTE╥ ì
COMMAN─ MENU'.
Thi≤á al∞á sound≤ interesting¼á yo⌡ say¼á bu⌠ ho≈ d∩ wσá operatσá thi≤ ì
'switch'┐á Well¼á thσá origina∞ .UL° commanΣ use≤ ß scratcΦ paΣ a⌠ memor∙ ì
locatioεá 0547Φá t∩ storσ thσ characte≥ thσ use≥ select≤ a≤ ßá trigge≥á fo≥ ì
underlining«á Oε initialisation¼ Wordbeσ set≤ tha⌠ scratchpaΣ t∩ zer∩ anΣ ì
a≤ wσ havσ scrubbeΣ .ULx¼á wσ caε usσ tha⌠ location«á Iµ eacΦ oµ ou≥á eigh⌠ ì
ne≈á attribute≤á i≤á allocateΣ onσ bi⌠ oµ tha⌠ byte¼á wσá theεá havσá eigh⌠ ì
separatσ switches«á Also¼á thσ origina∞ prograφ useΣ ß routinσ a⌠ CA9╢ t∩ ì
checδá iµá thσ characte≥ allocateΣ b∙ ß .UL° wa≤ presen⌠ and¼á iµá so¼á ac⌠ ì
accordingly«
Wσá simpl∙ replacσ tha⌠ routinσ witΦ ou≥ owε whicΦ check≤ fo≥ ßá slosΦ ì
character¼á continuinτá oε t∩ thσ usua∞ prin⌠ routinσ iµá no⌠á found«á Iµ ì
therσ i≤ ß slosh¼á ou≥ routinσ ensure≤ thσ nex⌠ characte≥ i≤ uppe≥ casσ anΣ ì
theεá jump≤á t∩ anothe≥ routinσ wσ pu⌠ a⌠ DF2╕ whicΦ set≤ thσ switche≤á anΣ ì
output≤ thσ signal≤ t∩ thσ printer«á ┴ fe≈ littlσ point≤ t∩ note« Subscrip⌠ ì
anΣ superscrip⌠ requireΣ ne≈ identifyinτ characters║á ']º anΣ '^º havσ beeε ì
used« Thσ worΣ "PAG┼ xó whicΦ wa≤ locateΣ a⌠ DF5╞ anΣ addresseΣ b∙ locatioε ì
CB1─á ha≤á beeεá moveΣ t∩ DF2▓ anΣ CB1─á amendeΣá accordingly«á Thσá seconΣ ì
assemble≥ listinτ show≤ ho≈ ß softwarσ switcΦ i≤ used.
Onσá oµ thσ problem≤ oµ usinτ ß mid-linσ switcΦ i≤ adjustinτ thσá linσ ì
lengtΦ t∩ compensate« Thi≤ probleφ ha≤ no⌠ beeε entirel∙ overcomσ anΣ usinτ ì
thi≤á facilit∙á upset≤ thσ righ⌠ justificatioε mode«á Perhap≤á onσá oµá thσ ì
member≤á ou⌠á therσá ha≤á thσ timσ anΣ inclinatioε t∩ delvσá int∩á thσá .J┘ ì
routinσ anΣ comσ u≡ witΦ thσ solution┐ Well¼ witΦ thesσ change≤ t∩ Wordbee¼ ì
yo⌡ wil∞ finΣ i⌠ mucΦ morσ convenien⌠ t∩ usσ thosσ specia∞ attribute≤á you≥ ì
printe≥ caε s∩ readil∙ provide«á However¼ wσ haven'⌠ entirel∙ finisheΣ witΦ ì
improvement≤á anΣá yo⌡á ma∙ conside≥ thσ followinτ suggestion≤á o≥á perhap≤ ì
desigε you≥ own.
è Thσá Telcoφ monito≥ work≤ thσ samσ wa∙ a≤ thσ Wordbeσ monito≥á bu⌠á i≤ ì
morσá comprehensivσá anΣá readil∙ allow≤ swappinτ arounΣá betweeεá thσá PA╦ ì
location≤ which¼ iµ donσ froφ thσ Wordbeσ monitor¼ wil∞ resul⌠ iε aε immedì
iatσá crash«á Havinτá thσ Telcoφ monito≥ thu≤ make≤ thσá Wordbeσá monito≥ ì
obsoletσá anΣ coulΣ providσ u≤ witΦ ß substantia∞ chunδ oµ sparσ memor∙á iµ ì
wσá deletσ it«á Thσ Wordbeσ monito≥ start≤ a⌠ D06▒ anΣ yo⌡ caε ente≥á thσ ì
Telcoφá monito≥á a⌠á E024«á Jus⌠ ß poin⌠ t∩ watcΦ beforσ yo⌡á deletσá thσ ì
monitor¼á therσ arσ tw∩ routine≤ calleΣ froφ thσ res⌠ oµ Wordbeσ s∩á follo≈ ì
thesσ steps:
1. Amend D061 to read -
D061 CD 28 C9 CALL C928 ; clear screen
D064 C3 24 E0 JP E024 ; Telcom mon
2. Move D468 - D486 to D067 - D085 (1F bytes)
Change CF31 from 68 D4 to 67 D0
3. Move D515 - D540 to D086 - D0B1 (2C bytes)
Change CE6C from 15 D5 to 86 D0
4. Delete D0B2 to D555
This gives us 1188 bytes (4A4 h) to play with !!
SETTING DEFAULTS
D∩á yo⌡ finΣ tha⌠ eacΦ timσ yo⌡ star⌠ ß lette≥ o≥ othe≥ documen⌠á tha⌠ ì
yo⌡ alway≤ commencσ witΦ thσ samσ formattinτ parameters┐á Iε m∙ case¼á mos⌠ ì
file≤ starteΣ witΦ thσ following:
.ES
27 64 ; printer initialise to set top of form and
; ensure normal text
.LM#5 ; letters look better with a good sized margin
.LL#64 ; its a handy length for letters and the
; screen resembles the final print
.PG#0 ; single sheets are often used
I⌠á wa≤á decideΣá t∩ automaticall∙ star⌠ file≤ witΦá thesσá parameter≤ ì
afte≥ ß 'KIL'«á Iµ no⌠ needed¼á the∙ caε easil∙ bσ deleteΣ witΦ ^Y« Herσ i≤ ì
m∙ methoΣ oµ doinτ this.
Thσ 'KILº routinσ end≤ witΦ ß jum≡ t∩ C06░ nea≥ thσ star⌠ oµá Wordbee« ì
Thσá routinσ froφ C06░ t∩ C06╕ clear≤ thσ scratchpad≤ afte≥ puttinτ ßá '55º ì
int∩ locatioε 500¼á anΣ froφ C06╣ t∩ C07├ i⌠ clear≤ RA═ froφ 090▒ on« Iµ wσ ì
duplicatσá thesσ routine≤ elsewhere¼á follo≈ u≡ witΦ ß routinσ whicΦá blocδ ì
move≤á ou≥ initia∞ filσ int∩ RAM¼á adjust≤ thσ end-of-filσ pointe≥ a⌠á 051─ ì
anΣ theε jump≤ t∩ thσ warφ star⌠ addres≤ a⌠ C07D¼á wσ wil∞ achievσ ou≥ aim« ì
D∩ no⌠ forge⌠ t∩ changσ thσ jum≡ addres≤ a⌠ C19╞ froφ C│ 6░ C░ (J╨ C060⌐ t∩ ì
poin⌠á t∩á thσ ne≈ routinσ locatioε - probabl∙ wherσ yo⌡ havσ jus⌠á cleareΣ ì
ou⌠ thσ monitor« Jus⌠ iε casσ yo⌡ arσ no⌠ surσ ho≈ t∩ d∩ thi≤ blocδ move¼ ì
assemblσ this:
LD HL,START ; address of 'file'
LD DE,0901h ; where Wordbee files start
LD BC,LENGTH ; of file - the above example
is 1D long
LDIR
LD (051Dh),DE ; end of file pointer
JP 0C07Dh ; warm startè Onσá wa∙ t∩ ge⌠ you≥ 'fileº i≤ t∩ KI╠ an∙ datß iε memory¼á writσá you≥ ì
startinτá parameter≤ a≤ ß file¼á jum≡ t∩ thσ monito≥ anΣ movσ i⌠á somewherσ ì
safσ (awa∙ froφ EDAS═ sourcσ code≤ yo⌡ migh⌠ perhap≤ bσ doinτ next)« Alter- ì
natively¼ yo⌡ caε ente≥ i⌠ directl∙ witΦ thσ Telcoφ monito≥ iε tex⌠ mode.
ShoulΣá yo⌡á alway≤ wan⌠ you≥ standarΣá parameters¼á jus⌠á changσá thσ ì
instructioεá a⌠á C07┴á t∩ CAL╠ you≥ ne≈ routinσ whicΦ wil∞ star⌠á witΦá thσ ì
replaceΣ "L─ (0513),HLó anΣ follo≈ witΦ thσ blocδ movσ routine¼ endinτ witΦ ì
ß RE╘ iε lie⌡ oµ J╨ 0C07Dh.
Havinτ madσ ß biτ holσ wherσ thσ monito≥ useΣ t∩ be¼á wσ migh⌠ a≤ wel∞ ì
d∩ somethinτ worthwhilσ witΦ it«á ╔ havσ ß smal∞ famil∙ compan∙ anΣ ╔á havσ ì
designeΣá ßá fou≥á linσ letterheaΣ usinτ bi⌠ imagσ graphic≤á t∩á prin⌠á thσ ì
compan∙á namσá iε largσ fanc∙ writing«á Perhap≤ reader≤ migh⌠ wan⌠á t∩á pu⌠ ì
thei≥ famil∙ cres⌠ oε letter≤ o≥ maybσ jus⌠ thσ housσ namσ iε stylisΦ prin⌠ ì
followeΣ b∙ thσ address.
Thσá probleφ wa≤ tha⌠ thσ Wordbeσ filσ fo≥ thσ letterheaΣ consisteΣ oµ ì
arounΣ onσ thousanΣ item≤ oµ data¼á eacΦ beinτ tw∩ t∩ fou≥ byte≤ long«á No⌠ ì
onl∙á wa≤ i⌠ timσ consuminτ t∩ loaΣ al∞ thσ datß anΣ t∩ scrol∞á througΦá i⌠ ì
beforσ eveε startinτ thσ letter¼ bu⌠ als∩ wheε savinτ thσ lette≥ t∩ tape.
┴á ne≈á commanΣá .L╚ wa≤ introduceΣ t∩ dum≡ thσ datß t∩á thσá printer« ì
InsteaΣá oµ beinτ par⌠ oµ ß Wordbeσ file¼á thσ datß i≤ no≈ storeΣá iεá hex¼ ì
fillinτá mos⌠ oµ tha⌠ biτ hole«á T∩ arrangσ this¼á pu⌠ ß brancΦ loo≡ iε thσ ì
do⌠á commanΣá look-u≡ table«á Refe≥ t∩ listinτ one¼á linσá 210«á AmenΣá thσ ì
addres≤á froφ 'LINEº (CC6E⌐ t∩ 'LHEADº whicΦ wil∞ bσ whereve≥ yo⌡á pu⌠á thσ ì
followinτ codσ (examplσ i≤ a⌠ D0F5):
; LETTERHEAD ROUTINE
;
ORG 0D0F5 ; or where it suits you
PRINT EQU 0CD54 ; usual print routine
START EQU 0D110 ; or where your letterhead data starts
LENGTH EQU 3DC ; change to the number of bytes in your data
LINE EQU 0CC6E ; original .LS#xx test location
;
LHEAD LD A,(IY+2) ; get the next character
CP 'H' ; is the command .LH ?
JP NZ,LINE ; if not, revert to original test
; to get here it must have been a .LH command
LD HL,START ; location of your data
LD DE,START ; first piece of data
LD BC,LENGTH ; of data string
OUTPUT LD A,(DE) ; ready to print contents of A reg
CALL PRINT ; to printer
LDI ; to next byte
JP PE,OUTPUT ; print next if not finished
RET ; all done
;
END ; to keep EDASM happy !
I⌠á woulΣá bσ eas∙ t∩ modif∙ thi≤ routinσ t∩ givσ ß choicσ oµá letterì
head≤á o≥ perhap≤ ß signature«á Jus⌠ remembe≥ tha⌠ thσá fourtΦá characte≥ ì
(IY+3⌐ MUSTÖ bσ ß <CR╛ o≥ ß '#'¼ s∩ yo⌡ woulΣ neeΣ t∩ tes⌠ fo≥ .L1¼ .L2¼ etπ ì
o≥ maybσ .LH#1.
è AnΣá no≈á t∩á thσ las⌠ modificatioε oµ substance«á Havinτá trieΣá thi≤ ì
modifieΣ Wordbeσ witΦ ß PC¼á ß conflic⌠ occurreΣ wheε tryinτ t∩ movσ t∩ thσ ì
to≡ oµ thσ filσ witΦ ^T«á Thi≤ i≤ becausσ thσ Shel∞ a⌠ PA╦ ╡ whicΦ control≤ ì
thσ wholσ sho≈ act≤ oε ß ^╘ doinτ ß tex⌠ dum≡ t∩ thσ printeríá Thσ solutioε ì
i≤á t∩ changσ thσ commanΣ t∩ ^╫ whicΦ i≤ achieveΣ b∙ changinτ D02╞ froφá 1┤ ì
t∩ 1╖ anΣ changinτ D58┴ froφ 5┤ t∩ 57.
Thσá res⌠á oµ thσ change≤ arσ cosmetiπ anΣ includσ changinτá thσá maiε ì
men⌡á choicσ oµ "Netó t∩ "Telcomó anΣ re-wordinτ thσ printe≥ hel≡á pagσá t∩ ì
reflec⌠ thσ ne≈ commands.
That'≤á abou⌠ thσ exten⌠ oµ change≤ implementeΣ s∩ far«á ╔ canno⌠ sel∞ ì
yo⌡á ßá cop∙ oµ hi≤ modifieΣ Wordbeσ becausσ oµ copyrigh⌠ oεá thσá origina∞ ì
program¼á bu⌠ iµ yo⌡ brinτ alonτ you≥ originall∙ purchaseΣ cop∙ oµá Wordbeσ ì
anΣ ß sparσ 276┤ EPROM¼ you≥ cop∙ caε bσ modifieΣ a≤ outlineΣ abovσ fo≥ sa∙ ì
$1░ anΣ burn⌠ int∩ thσ EPROM.
Onσ las⌠ poin⌠ t∩ hel≡ yo⌡ witΦ you≥ mods«á RoΣ Irvinτ Electronic≤ ha≤ ì
beeεá sellinτ 6264(8╦ RAM⌐ chip≤ fo≥ $╖ anΣ thesσ arσ piεá compatiblσá witΦ ì
2764's«á The∙á won'⌠ worδ jus⌠ anywherσ though¼á onl∙ iε placσ oµ thσ BASI├ ì
ROM'≤ and/o≥ PA╦ 0¼ anΣ onl∙ iµ thσ linδ i≤ madσ betweeε "16ó anΣ "17ó nea≥ ì
IC1░á oε thσ coreboarΣ anΣ thσ othe≥ link≤ arσ se⌠ fo≥ 2764's«á Wha⌠á thi≤ ì
mean≤ i≤ tha⌠ yo⌡ caε se⌠ u≡ you≥ modifieΣ Wordbeσ iε ß RA═ chi≡ locateΣ a⌠ ì
PA╦ ░ anΣ tes⌠ ruε i⌠ beforσ burninτ i⌠ int∩ aε EPROM« Wha⌠ yo⌡ can'⌠ d∩ i≤ ì
thro≈á ou⌠á you≥á Basiπ ROM'≤ anΣ pluτ iε RA═ t∩ providσá morσá memor∙á fo≥ ì
Wordbeσ becausσ Wordbeσ make≤ somσ RO═ call≤ int∩ Basic.
Perhap≤á somσ reader≤ havσ othe≥ modification≤ whicΦ cluΓ member≤á ma∙ ì
bσá interesteΣá in¼á o≥ maybσ someonσ wil∞ rewritσá al∞á thi≤á unstructureΣ ì
(throwεá together⌐á codσ int∩ somσ semblancσ oµ order«á ╔ caε bσá contacteΣ ì
afte≥ hour≤ oε 2╣ 7785.
THIS IS ┴ SCREEN DUMP OF THE PRINTER HELP PAGE
PARALLEL PRINTER COMMAND MENU
"\*" = mid-line on/off switch
".*Y" or ".*N" = start of line on/off command
For "*" use: I = italics D = double B = enlarged
U = underline M = embossed C = condensed
"\": \^ = superscript \] = subscript
".": .SP = superscript .SB = subscript .SN = turns either off
DOT commands only: J = justify Z = L/F's with C/R's
NP = new page HE = page header follows FF = form feed
ES = send next line/para as sequence to printer
.LL#xx = line length .LM#xx = left margin .LS#xx = line spacing
.PG#xx = crease gap (0 = single sheet) .PN#xx = page number
.PL#xx = page length (lines) .LH = letterhead
<RETURN> to menu
Tape load: *=any @=force \=append