home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
simtel
/
sigm
/
vols000
/
vol043
/
descrip.doc
< prev
next >
Wrap
Text File
|
1985-02-09
|
15KB
|
235 lines
8080/Z80/8085 PIDGIN UNDER CP/M
By Andrew L. Bender, M. D.
PIDGI╬ wa≤ describeΣ b∙ it≤ inventor¼á Bil∞ Gale¼á a≤ ß "Lo≈ ì
Leve∞ Programminτ Language"«á ╔ supposσ tha⌠ it≤ maiε attractioε ì
t∩ mσ wheε ╔ firs⌠ reaΣ abou⌠ i⌠ wa≤ it≤ structured¼ "Có languagσ ì
appearancσ anΣ it≤ simplicity« I⌠ haΣ onl∙ onσ drawbacδ anΣ tha⌠ ì
wa≤á thσ lacδ oµ ß suitablσ 808░ compiler«á Bil∞ haΣ presenteΣ ß ì
compile≥á fo≥á thσ 650▓ whicΦ wa≤ detaileΣ enougΦá t∩á star⌠á thσ ì
projec⌠á goinτ oε thi≤ compute≥ bu⌠ wa≤ no⌠ reall∙ enougΦ t∩á ge⌠ ì
thσ projec⌠ goinτ oε othe≥ computers« M∙ interes⌠ wa≤ stirreΣ b∙ ì
thσ promisσ oµ ß compiler-compile≥ iε ß futurσ issuσ oµ Dr« Dobb≤ ì
writteεá iεá PIDGIN«á ╔á wa≤á interesteΣá iεá compilinτá ßá datß ì
definitioεá languagσá fo≥á anothe≥á projec⌠ anΣá thσá though⌠á oµ ì
constructinτá ß compile≥ witΦ thσ rathe≥ primativσ tool≤ ╔ haΣ a⌠ ì
m∙á disposa∞á wa≤ disturbing«á ╔ realizeΣ tha⌠ iµá therσá wa≤á ß ì
compile≥á compile≥á availablσá ╔ woulΣ a⌠ leas⌠ bσá ablσá t∩á ge⌠ ì
starteΣ sincσ thσ fron⌠ enΣ oµ thσ compile≥ woulΣ bσ completeΣ a⌠ ì
thσ timσ thσ languagσ wa≤ defined.
Thσá tasδ oµ constructinτ ß PIDGI╬ compile≥ seemeΣ t∩á breaδ ì
dowε int∩ threσ distinc⌠ tasks« First¼ onσ woulΣ havσ t∩ writσ ß ì
TINCM╨á compile≥ t∩ proces≤ PIDGI╬ language«á Second¼á onσ woulΣ ì
havσá t∩á writσ al∞ oµ thσ suppor⌠ routine≤ sucΦ a≤ thσá I/╧á anΣ ì
matΦá functions«á Last¼á thσá PIDGI╬ prograφ woulΣá havσá t∩á bσ ì
adapteΣ t∩ interfacσ witΦ thσ CP/═ environment«á Oncσ TINCM╨ wa≤ ì
u≡á anΣá running¼á i⌠ coulΣ bσ useΣ t∩ compilσ itselµá anΣá othe≥ ì
program≤á a≤ needed«á Al∞ threσ task≤ haΣ t∩ bσ completeΣá firs⌠ ì
before TINCMP could be made to work.
A⌠á firs⌠á i⌠á seemeΣ tha⌠ codinτ TINCM╨ woulΣ bσá thσá mos⌠ ì
difficul⌠á tasδá oµá thσ threσ anΣ i⌠ reall∙á proveΣá t∩á bσá thσ ì
simples⌠á task«á Codinτá thσ I/╧ routine≤ tooδ abou⌠ 60Ñ oµá thσ ì
developmen⌠á timσ becausσ thσ thirΣ task¼á thσ CP/M filσá contro∞ ì
interfacσ tooδ ß lonτ timσ t∩ desigε anΣ test«á Aε overal∞á plaε ì
wa≤á madσ baseΣ oε thσ I/╧ structurσ oµ thσ compile≥ a≤ presenteΣ ì
b∙ Bil∞ Gale« ╔ spokσ witΦ Bil∞ abou⌠ thσ I/╧ structurσ anΣ somσ ì
change≤ whicΦ ╔ haΣ proposeΣ bu⌠ botΦ oµ u≤ agreeΣ tha⌠ i⌠á woulΣ ì
havσá changeΣá thσ overal∞ desigε oµ thσ languagσ whicΦ haΣá beeε ì
alread∙á published«á ╔ decideΣ t∩ kee≡ thσá structurσá unchangeΣ ì
eveε thougΦ thσ usσ oµ buffe≥ areß t∩ filσ association≤ seemeΣ t∩ ì
be rather unusual constructions.
Considerinτá thσá availablσá tool≤ fo≥ thσá constructioεá oµ ì
TINCMP'≤á firs⌠á 808░ realizatioε ╔ discardeΣá BASI├á becausσá i⌠ ì
woulΣ havσ beeε ß difficul⌠ languagσ t∩ ge⌠ thing≤ goinτ in«á I⌠ ì
diΣá offe≥ easσ oµ debugginτ bu⌠ waitinτ fo≥ i⌠ t∩ chuτ througΦ ß ì
fe≈ line≤ oµ PIDGI╬ seemeΣ t∩ bσ ß biτ drawback«á Afte≥ al∞ herσ ì
wa≤á aεá interprete≥á (BASIC⌐á interpretinτá anothe≥á interprete≥ ì
(TINCMP)«á Thσ nex⌠ languagσ whicΦ wa≤ seriousl∙ considereΣá wa≤ ì
FORTRAN« ╔ didn'⌠ looδ int∩ thi≤ carefull∙ becausσ ╔ fel⌠ tha⌠ ╔ ì
wouldn'⌠á learεá mucΦ doinτ i⌠ iε FORTRA╬ anΣ thσ lacδ oµá strinτ ì
manipulatioεáá anΣá automatiπá typσá conversion≤á seemeΣá t∩áá bσ ì
undesired«á ╔ wa≤ theε thinkinτ of ß highe≥ languagσ - d∩ i⌠á iε ì
PL/I-8░á ╔ thought«á ╔ discardeΣ thi≤ ideß becusσ ╔ reall∙á fel⌠ ì
tha⌠á ╔ kne≈ s∩ littlσ abou⌠ PL/╔ tha⌠ ╔ woulΣ bσ spendinτ al∞ oµ ì
m∙á timσ educatinτ myselµ anΣ woulΣ neve≥ ge⌠ thσá joΓá done«á ╔ ìètheεá saiΣá t∩á myself║á "Self¼á yo⌡ havσ beeεá writinτá assembl∙ ì
languagσá fo≥á thσá pas⌠ 2▒ years¼á wh∙ no⌠á d∩á i⌠á iεá assembl∙ ì
language?óá Sincσ n∩ answe≥ wa≤ forthcominτ ╔ almos⌠ begaε t∩ d∩ ì
i⌠á iε MACRO-8░ wheε ╔ wen⌠ t∩ ß loca∞ compute≥ cluΓ meetinτá anΣ ì
wa≤á fortunatσá enougΦ t∩ obtaiε ß cop∙ oµ thσá CP/═á Use≥á Grou≡ ì
Librar∙ Volumσ 51« ╔ wa≤ woolgatherinτ onσ afternooε rearranginτ ì
al∞á oµ m∙ librar∙ disk≤ wheε ╔ camσ acros≤ thi≤ disδ anΣ noticeΣ ì
tha⌠á i⌠ containeΣ ß "powerfu∞ macr∩ processor"«á ┴ smal∞á ligh⌠ ì
wen⌠ oε anΣ ╔ printeΣ ou⌠ al∞ oµ thσ documentation« I⌠ wa≤ clea≥ ì
tha⌠á thi≤á macr∩á processo≥á wa≤ no⌠á onl∙á powerfu∞á enougΦá t∩ ì
directl∙ proces≤ PIDGIN¼ i⌠ wa≤ ß membe≥ oµ thσ famil∙ froφ whicΦ ì
TINCM╨á wa≤á derived«á STAGE▓á wa≤á theεá thσá answer«á STAGE2¼ ì
implementeΣá b∙ RicharΣ Curtis≤ anΣ deriveΣ froφ SIMCM╨á wa≤á thσ ì
featurσá prograφá oεá CP/MU╟ volumσ 51«á ╔ studieΣá M≥á Curtissº ì
documentatioεá fo≥ severa∞ day≤ theε ╔ raε ou⌠á t∩á Prentice-Hal∞ ì
anΣá bough⌠á Wm«á Waite'≤á Booδ "Implementinτ Softwarσá fo≥á Non-ì
Numeric Applications".
Afte≥á ßá weeδ o≥ so¼á ╔ haΣ ß se⌠ oµ workinτá macro≤á whicΦ ì
permitteΣ mσ t∩ pu⌠ iε PIDGI╬ languagσ anΣ ge⌠ ou⌠ code«á ╔á haΣ ì
TINCM╨á u≡á iε assembl∙ codσ iε exactl∙ ninσ days«á Gettinτá thσ ì
macro≤ writteε wa≤ slow«á ╔ figurσ tha⌠ ╔ spen⌠ abou⌠ 30Ñ oµ thσ ì
overal∞á timσ witΦ thσ STAGE▓ anΣ TINCM╨á macros«á Thσá remaininτ ì
timσá wa≤á spen⌠á witΦá sundr∙ item≤ likσ fixinτá thσá linσá feeΣ ì
probleφ iε TINCMP« TINCM╨ assume≤ tha⌠ ß ne≈ linσ caε bσ defineΣ ì
b∙ ß singlσ characte≥ whilσ CP/═ need≤ ß tw∩ characte≥á sequence║ ì
Carriagσá return¼á linσá feed«á
B∙á usinτ Dicδ Curtissº intege≥ arithmetiπ packagσ ╔á didn'⌠ ì
neeΣ t∩ d∩ tha⌠ worδ ove≥ again«á ╔ jus⌠ addeΣ thσ prope≥á entr∙ ì
point≤á anΣ assembleΣ it«á Unlikσ mos⌠ freσ librar∙ program≤á i⌠ ì
workeΣá a⌠ once«á Whilσ ╔ didn'⌠ neeΣ al∞ oµ thσ subroutine≤á iε ì
thσá package¼á ╔ lef⌠ theφ iε therσ iε casσ anyonσ wanteΣ t∩á usσ ì
them for other purposes.
╔ trieΣ t∩ ge⌠ TINCM╨ u≡ anΣ finally¼ afte≥ ß serie≤ oµ ver∙ ì
strangσá bugs¼á introduceΣ b∙ m∙ poo≥ macr∩ code¼á ╔ actuall∙ go⌠ ì
thσá damεá compile≥ t∩ turε ou⌠ ß fe≈ line≤ oµá code«á Tw∩á morσ ì
macr∩á error≤á fixeΣ anΣ TINCM╨ writteε iε STAGE▓á coulΣá compilσ ì
itselµá iε PIDGIN«á I⌠ wa≤ quitσ thrillinτ t∩ seσá thσá compile≥ ì
actually work as Bill Gale promised in his July 1981 article.
╔á wa≤ theε read∙ fo≥ thσ biτ problem║á ShoulΣ ╔ handlσ codσ ì
generatioεá a≤á Bil∞ diΣ o≥ shoulΣ ╔ turε ou⌠á assembl∙á languagσ ì
codσá again┐á ╔ reall∙ gavσ thi≤ questioε somσ seriou≤á thought« ì
Iµá ╔á diΣ turε ou⌠ assembl∙ languagσ codσ i⌠ woulΣá havσá t∩á bσ ì
assembleΣá b∙á aε assemble≥ anΣ ╔ woulΣ havσ t∩ assumσ ß morσá o≥ ì
les≤ "standardó assemble≥ whicΦ everyonσ woulΣ havσ or¼á a⌠ leas⌠ ì
mos⌠ peoplσ woulΣ have«á ╔ though⌠ oµ turninτ ou⌠ AS═ code« AS═ ì
i≤áá thσáá Digita∞á ResearcΦá assemble≥áá supplieΣáá witΦáá CP/M« ì
Unfortunatly¼á AS═ doe≤ no⌠ makσ relocatablσ codσ anΣá generatioε ì
oµ absolutσ codσ didn'⌠ seeφ worthwhilσ sincσ ╔ wanteΣ t∩ bσ ablσ ì
t∩á usσ librar∙ routine≤ whicΦ coulΣ bσ loadeΣ anyplacσ iε memor∙ ì
t∩ makσ u≡ fo≥ thosσ CP/═ system≤ whicΦ diΣ no⌠ havσ zer∩ origin≤ ì
o≥á thei≥á TP┴ beginninτ a⌠ 100H«á Iµ ╔ wanteΣ t∩á approacΦá thσ ì
probleφá a≤ Bil∞ Galσ diΣ therσ werσ othe≥á problems«á Thσá 808░ ì
hardwarσ ha≤ n∩ relativσ addressinτ a≤ doe≤ thσ 650▓ o≥ 6800«á ╔ ì
decideΣá tha⌠á thσá lacδá oµ thi≤ hardwarσá facilit∙á madσá codσ ì
generatioεá witΦ TINCM╨ difficult«á Microsoft'≤á M-8░á assemble≥ ìèseemeΣá fairl∙ ubiquitou≤ anΣ tha⌠ i⌠ was¼á iε al∞ truσ respects¼ ì
compatiblσáá witΦá thσá RMA├á assemble≥á oµáá Digita∞áá Research« ì
Generatinτá assemble≥ codσ haΣ severa∞ othe≥ problem≤á associateΣ ì
with it.
Lookinτá a⌠ thσ TINCM╨ compiler¼á onσ notice≤ tha⌠ therσ arσ ì
man∙ possibilitie≤ fo≥ generatinτ label≤ whicΦ looδ likσ o≡ code≤ ì
o≥á pseudo-operation≤ iε thσ assembler«á 808░ assembler≤á alway≤ ì
seeφ t∩ definσ thσ register≤ a≤ symbol≤ s∩ tha⌠ iµ yo⌡ definσá S╨ ì
a≤á ßá bytσ iε ß PIDGI╬ prograφ therσ i≤ ever∙ reasoεá t∩á firml∙ ì
beleivσá tha⌠á i⌠ wil∞ blo≈ thσ assignmen⌠ oµ thσá stacδá pointe≥ ì
symbo∞á "SP"«á Al∞ oµ thesσ problem≤ caε bσ avoideΣ b∙ prefixinτ ì
eacΦá symbo∞á iεá thσá outpu⌠ oµ thσá codσá generato≥á witΦá somσ ì
characte≥á whicΦ doesn'⌠ looδ likσ anythinτ thσá assemble≥á woulΣ ì
expec⌠á iεá aε interna∞ symbo∞ o≥ op-code«á ╔ choosσ ßá do⌠á fo≥ ì
this«á B∙ prefixinτ almos⌠ everythinτ witΦ ß dot¼á conflict≤ arσ ì
avoideΣ anΣ thσ symbol≤ arσ alway≤ unique«á Subroutinσ name≤ arσ ì
prefixeΣ witΦ tw∩ dot≤ t∩ kee≡ theφ differen⌠ froφ variablσ name≤ ì
iεáá casσá therσá arσá intersection≤á betweeεá thσá two«áá Thesσ ì
intersection≤ arσ no⌠ specificall∙ prohibiteΣ b∙ PIDGIN«á Systeφ ì
symbol≤á anΣá jum≡ target≤ arσ labelleΣ witΦ ßá leadinτá questioε ì
mark«áá
Becausσ TINCM╨ canno⌠ tes⌠ o≥ branch¼á certaiε construction≤ ì
arσ peculiar«á Takσ fo≥ examplσ thσ CHOOS┼ ON/CAS┼ construction« ì
eacΦá timσ ß CAS┼ i≤ encountereΣ iε thσ inpu⌠ filσ PIDGI╬á shoulΣ ì
generatσá ßá jum≡ t∩ thσ ENDCHOOS┼ labe∞ bu⌠ no⌠ thσá firs⌠á timσ ì
tha⌠ CAS┼ i≤ encountereΣ afte≥ thσ CHOOS┼ ON« Sincσ therσ arσ n∩ ì
tes⌠ facilities¼ thσ jum≡ i≤ generateΣ oε ever∙ occurencσ oµ CAS┼ ì
bu⌠ oε thσ firs⌠ occurance¼á aε OR╟ $-│ obliterate≤ thσ generateΣ ì
JM╨á ENDCHOOS┼ instruction«á Thi≤ i≤ donσ b∙ pushinτ ß │ oεá thσ ì
stacδ a⌠ CHOOS┼ O╬ bu⌠ zer∩ thereafte≥ eacΦ timσ ß CAS┼ statemen⌠ ì
i≤á noted«á Thi≤ valuσ i≤ poppeΣ ofµ thσ stacδ anΣ useΣá a≤á thσ ì
valuσá iεá thσá OR╟á statemen⌠ resultinτ iε aεá OR╟á $-░á oεá al∞ ì
subsequen⌠ call≤ fo≥ CASE«á Therσ arσ als∩ n∩ rea∞ possibilitie≤ ì
fo≥á codσá optimization«áá Perhap≤á someonσá caεá writσá ßá pos⌠ ì
compilatioε optimize≥ fo≥ TINCMP - naturally in PIDGIN.
A≤ aε aiΣ t∩ program≤ operatinτ unde≥ differen⌠ environment≤ ì
thσá CP/═ implementatioε oµ PIDGI╬ call≤ ß librar∙ subroutinσá a⌠ ì
thσá beginninτ oµ PIDGI╬ prograφ executioε anΣ a⌠ thσ terminatioε ì
oµ PIDGI╬ prograφ execution«á Thσ beginninτ subroutinσ i≤ calleΣ ì
?INI╘ anΣ thσ concludinτ subroutinσ i≤ calleΣ ?ENDING«á BotΦá oµ ì
thesσá routine≤ arσ iε thσ IOCMPL╪ subroutine«á ?INI╘á transfer≤ ì
filσá name≤á froφá thσá contro∞ statemen⌠ t∩ ß se⌠á oµá FCB'≤á iε ì
IOCMPL╪ anΣ store≤ thσ numbe≥ oµ thesσ filσ name≤ iε AC« ?ENDIN╟ ì
close≤ an∙ opeε file≤ anΣ return≤ contro∞ t∩ thσ use≥ program« ┴ ì
jum≡ t∩ ?BOO╘ alway≤ follow≤ thσ CAL╠ ?ENDIN╟ statemen⌠ wheεá thσ ì
PIDGI╬ statemen⌠ ENDMAI╬ i≤ encountered«á Iµ you≥ hear⌠ desires¼ ì
yo⌡á caε changσ thesσ routine≤ t∩ d∩ anythinτ yo⌡ fee∞á necessar∙ ì
in your particular system.
Variable≤á declareΣá iεá BYT┼ o≥ IN╘ statement≤á arσá alway≤ ì
placeΣ iε blanδ commoε storage«á Thi≤ facilitate≤ thei≥ usσ witΦ ì
aεá undocumenteΣá featurσ and¼á beinτá honest¼á totall∙á untesteΣ ì
feature¼áá whicΦáá allow≤á independen⌠á compilatioεá oµáá prograφ ì
subroutines«á ╔á expec⌠ thi≤ featurσ t∩ bσ read∙ iε abou⌠á threσ ì
month≤ time« I⌠ wil∞ no⌠ makσ previou≤ PIDGI╬ program≤ unusable« ì
┴ furthe≥ extensioε t∩ bσ useΣ iε maiε program≤ o≥ subroutine≤ i≤ ìèthσá LOCA╠á VARIABLE╙á statemen⌠á anΣá ENDLOCA╠á statement«á An∙ ì
variable≤ declareΣ b∙ eithe≥ BYT┼ o≥ IN╘ statement≤ betweeε thesσ ì
tw∩ statement≤ arσ no⌠ pu⌠ iε commoε anΣ arσ LOCA╠ t∩ thσ curren⌠ ì
compilation. All other variables are global.
Afte≥á ßá fe≈á discussion≤ witΦá Bil∞á Gale¼á thσá PARAMETE╥ ì
statemen⌠ wa≤ born« Thσ PARAMETE╥ statemen⌠ allow≤ yo⌡ t∩ definσ ì
iε ß singlσ locatioε al∞ oµ thσ systeφ dependen⌠ variable≤ fo≥á ß ì
program«áá Thσá paramete≥á statemen⌠á ha≤á thσá followinτá form║ ì
PARAMETE╥ K$$=$$$╗á K$ñ i≤ thσ symboliπ paramete≥ terφ anΣ $$ñ i≤ ì
thσ numerica∞ equivalent« T∩ usσ thσ parametriπ variablσ K$ñ yo⌡ ì
neeΣ thσ $$=+K$ñ statemen⌠ o≥ thσ I$$=+K$ñ statement« Aε examplσ ì
oµá thσá usσá oµá thi≤ statemen⌠ i≤ iε TINCM╨á itselµá wherσá thσ ì
variable≤á L╞ (linσ feed)¼á N╠ (carriagσ return⌐ anΣ E╞á arσá al∞ ì
defined by means of parameter statements.
Gettinτá CP/═á linkeΣ u≡ witΦ thσ internal≤ oµ PIDGI╬ wa≤á ß ì
rathe≥ difficul⌠ task«á ╔ diΣ no⌠ wisΦ t∩ makσ havoπ ou⌠ oµá thσ ì
filσá systeφá useΣ b∙ PIDGI╬ ye⌠ CP/═ needeΣ ß filσ namσá rathe≥ ì
thaεá ßá blocδá locatioεá t∩ locatσ thσ tex⌠á oµá ßá filσá o≥á t∩ ì
determinσá wherσá tex⌠ wa≤ t∩ bσ written«á Iε orde≥ t∩á linδá u≡ ì
blocδá number≤ witΦ filσ name≤ ╔ decideΣ tha⌠ ß fictitiou≤á blocδ ì
numbe≥á wa≤ goinτ t∩ bσ useΣ a≤ ß filσ identifie≥ insidσá PIDGIN« ì
Thi≤á identifie≥á woulΣá bσá associateΣ witΦ ß filσá namσá b∙á aε ì
associatσ statemen⌠ whicΦ needeΣ t∩ bσ designed«á Thσá associatσ ì
statemen⌠á wa≤ borε afte≥ considerablσ though⌠ bu⌠ i⌠ i≤á obviou≤ ì
tha⌠á i⌠á i≤á ver∙á limitinτá iε scopσá anΣá probabl∙á shoulΣá bσ ì
redesigneΣá t∩á bσá morσ general«á Thσá forφá oµá thσá associatσ ì
statemen⌠á i≤á ASSOCIAT┼ FC┬ ñ WIT╚ I$$«á Thi≤ allow≤ thσá firs⌠ ì
paramete≥á whicΦá i≤ thσ filσ mentioneΣ iε tha⌠ locatioεá oµá thσ ì
contro∞ statemen⌠ t∩ bσ associateΣ witΦ blocδ numbe≥ I$$« ╔ onl∙ ì
useΣ thσ lowe≥ seveε bit≤ oµ I$ñ a≤ ß blocδ number/filσ numbe≥ s∩ ì
onl∙á thesσ bit≤ neeΣ bσ uniquσ fo≥ eacΦ file«á Thσá eigtΦá bit¼ ì
whilσá transcribeΣá int∩ thσ I/╧ subroutine≤ shoulΣ bσá zer∩á fo≥ ì
furthe≥ expansion« If you had a control statement:
AAB.AAA,BBB.CCC,DDD.EEE
anΣá you≥ paramete≥ ñ iε thσ associatσ statemen⌠ wa≤ ▓ thi≤ woulΣ ì
resul⌠á iεá thσá associatioεá oµ BBB.CC├á witΦá thσá filσá numbe≥ ì
containeΣ iε thσ lo≈ orde≥ seveε bit≤ oµ I$$«á Thi≤á associatioε ì
reques⌠á mark≤ thσ filσ a≤ "preparedó iε aε interna∞ tablσ iε thσ ì
I/╧ complex«á Anothe≥ forφ oµ thσ associatσ statement¼á no⌠á ye⌠ ì
implementeΣ iε thσ I/╧ comple° subroutine≤ i≤ thσ form║ ASSOCIAT┼ ì
FIL┼á $ñá WIT╚ I$$«á Thσ firs⌠ paramete≥ i≤ supposeΣ t∩á bσá thσ ì
star⌠á oµá 1▓ byte≤ defininτ thσ drivσ anΣ theε thσá eleveεá bytσ ì
filσ namσ anΣ extensioε fo≥ ß particula≥ file«á UnuseΣ byte≤ arσ ì
t∩á bσá se⌠ t∩ blanks«á Thi≤ routinσ wil∞ als∩ marδ thσ filσá a≤ ì
prepared«á Fo≥á furthe≥ detail≤ yo⌡ shoulΣ refe≥ t∩ thσá IOCMPL╪ ì
assembly listing.
Specificall∙ no⌠ implementeΣ arσ thσ statement≤ READBU╞á anΣ ì
WRITEBUF«á AlthougΦá therσá i≤á nothinτá difficul⌠á abou⌠á thesσ ì
statement≤á the∙á werσá no⌠ necessar∙ fo≥ thσá implementatioεá oµ ì
TINCM╨ anΣ s∩ ╔ didn'⌠ codσ them«á Thσ statement≤á LOMEM¼á HIME═ ì
anΣ REGISTE╥ arσ no⌠ implemented« Thesσ statement≤ havσ n∩ placσ ì
iε ß relocatablσ prograφ whicΦ doesn'⌠ havσ ß zer∩ page«á Iµ yo⌡ ì
wan⌠á yo⌡á caεá pu⌠á thesσ statement≤ int∩á thσá macr∩á template≤ ì
without any action occuring when they are recognized.
Iε programminτ TINCM╨ ╔ firs⌠ wanteΣ t∩ ge⌠ i⌠ u≡ oε aε 808░ ìèbecausσ tha⌠ processo≥ i≤ ß subse⌠ oµ thσ 808╡ anΣ Z-80« Iµ use≥ ì
codσá wil∞á ruεá oε thσ 808░ i⌠ wil∞ probabl∙ ruεá oεá thσá othe≥ ì
processors«á MucΦ codσ caε bσ optimizeΣ iµ TINCM╨ i≤ writteε fo≥ ì
ßá Z-80«á Thσ I/╧ comple° especiall∙ wil∞ bσ cleane≥ oεá ßá Z-8░ ì
than it is on the 8080.
808░ TINCM╨ anΣ al∞ oµ thσ associateΣ routine≤ arσ availablσ ì
througΦá thσ SIG/═ librar∙ o≥ b∙ direc⌠ mai∞ froφ thσ author«á ╔ ì
wil∞á preparσ ß singlσ density¼á eigh⌠ incΦ CP/═ forma⌠ disδá anΣ ì
mai∞á thσá samσ oε receip⌠ oµ ß mone∙ order¼á checδá o≥á 2░á cen⌠ ì
stamp≤á fo≥ $25«á U╙ Funds«á Iµ yo⌡ seσ thi≤ afte≥ 1982¼á bette≥ ì
writσ firs⌠ a≤ Bil∞ Galσ says«á Iµ yo⌡ decidσ t∩ implemen⌠á thi≤ ì
processo≥á fo≥á othe≥á machine≤á anΣ fee∞á ╔á coulΣá help¼á don'⌠ ì
hesitatσ t∩ write«á STAGE▓ i≤ distributeΣ witΦ TINCM╨ b∙ specia∞ ì
arrangemen⌠á witΦá RicharΣá Curtiss«á Thσá distributioεá oµá an∙ ì
material≤ oε thi≤ disδ d∩ no⌠ alte≥ thσ curren⌠ copyrigh⌠á statu≤ ì
oµá an∙ oµ thσ material«á Permissioε i≤ granteΣ t∩ distributσ o≥ ì
makσá a≤á man∙ copie≤ a≤ desireΣá fo≥á non-commercia∞á use«á Thσ ì
remaining rights are retained by the individual authors.