1. Óïpaâëeíèe paáoòoé ïpèíòepa.
MS DOS ìoæeò paáoòaòü c òpeìÿ ïapaëëeëüíûìè ócòpoécòâaìè (LPT1 -
LPT3). Ïocëeäoâaòeëüíûe ïpèíòepû óïpaâëÿþòcÿ â òo÷íocòè òaê æe, êaê è
ïapaëëeëüíûe, ça ècêëþ÷eíèeì cïocoáa, êoòopûì äaííûe ïocûëaþòcÿ ía
ïpèíòep. Kaæäoe ïapaëëeëüíoe ócòpoécòâo èìeeò câoé aäaïòep. Aäaïòep
óïpaâëÿeòcÿ òpeìÿ peãècòpaìè ââoäa/âûâoäa è aäpeca ïopòoâ ýòèx
peãècòpoâ paçëè÷íû äëÿ êaæäoão aäaïòepa. Oáëacòü äaííûx BIOS coäepæèò
áaçoâûe aäpeca äëÿ êaæäoão aäaïòepa. Áaçoâûé aäpec cooòâeòcòâóeò
ìëaäøeìó aäpecó ãpóïïû èç òpex aäpecoâ ïopòoâ. Áaçoâûé aäpec äëÿ LPT1 -
0040:0008, äëÿ LPT2 - 0040:000A è ò.ä. Kaêoé aäaïòep íaçía÷eí êaêoìó
íoìepó LPT - íe oïpeäeëeío , êaê âèäío èç íèæeïpèâeäeííoé òaáëèöû. Ïo
ýòoé ïpè÷èíe ïpoãpaììa, êoòpaÿ ïpÿìo aäpecóeòcÿ â ïapaëëeëüíûé ïopò,
äoëæía âûècêèâaòü aäpeca, êoòopûe oí ècïo
2. Ócòaíoâêa cïeöèôèêaöèé ïe÷aòè.
Äëÿ ócòaíoâêè paçëè÷íûx cïeöèôèêaöèé, oòíocÿùèxcÿ ê ôopìaòó còpaíè-
öû, còèëþ øpèôòa è ò.ï., ía ïpèíòep ïocûëaþòcÿ cïeöèaëüíûe óïpaâëÿþùèe
êoäû. Ýòè êoäû ïocûëaþòcÿ ía ïpèíòep êaê è ëþáûe äpóãèe äaííûe. Ýòè
óïpaâëÿþùèe êoäû èíèöèèpóþò òaêèe ïpocòûe äeécòâèÿ ïpèíòepa, êaê
ïepeâoä còpoêè èëè ïepeâoä ôopìaòa (ïpoãoí còpaíèöû). Oäíaêo áoëü-
øèícòâo cïeöèôèêaöèé ïe÷aòè ócòaíaâëèâaeòcÿ ïocûëêoé Esc-ïoc-
ëeäoâaòeëüíocòeé, â êoòopûx oäèí èëè áoëee êoäoâûx áaéòoâ cëeäóþò ça
cèìâoëoì Esc, êoä êoòopoão ASCII 27. Ha÷aëüíûé êoä Esc èíôop- ìèpóeò
ïpèíòep, ÷òo cèìâoë(û) êoòopûé cëeäóeò ça íèì cëeäóeò èíòepïpeòèpoâaòü
êaê êoìaíäó, a íe êaê äaííûe. Taêèe Esc-ïocëeäo- âaòeëüíocòè oáû÷ío íe
èìeþò cèìâoëa-oãpaíè÷èòeëÿ, ïocêoëüêó ïpèíòep "çíaeò" äëèíó êaæäoé
ïocëeäoâaòeëüíocòè. Toëüêo â íeêoòopûx cëó÷aÿx, êoãäa
ïocëeäoâaòeëüíocòü ìoæeò èìeòü paçíóþ äëèíó, òpe- áóeòcÿ oãpaíè÷èâaþùèé
cèìâoë, â êa÷ecòâe êoòopoão âceãäa ècïoëüçóeòcÿ êoä ASCII 0.
Ïo÷òè âo âcex cëó÷aÿx cïeöèôèêaöèè ócòaíoâëeííûe ýòèìè êoäaìè
äeécòâóþò äo òex ïop, ïoêa oíè íe áóäóò ÿâío oòìeíeíû. Kaê òoëüêo áóäeò
ïoëó÷eí êoä, íaïpèìep, ïoä÷epêèâaíèÿ, òo oío áóäeò ocóùecòâëÿòücÿ äo
òex ïop, ïoêa íe áóäeò ïocëaí êoä oòìeíû ïoä÷epêèâaíèÿ. Áóôep ïpèíòepa
ìoæeò áûòü o÷èùeí áeç oòìeíû ócòaíoâëeííûx cïeöèôèêaöèé. Ho ecëè
ïpoèçoøëa oøèáêa ía ïpèíòepe è ïpèíòep áûë âûêëþ÷eí è âêëþ÷eí, òo
íeoáxoäèìo cíoâa ócòaíaâëèâaòü âce cïeöèôèêaöèè.
Áoëüøèícòâo êoäoâ ócòaíaâëèâaþùèx cïeöèôèêaöèè ïpèíòepa ïepe- ìeøaíû
c äaííûìè, ía êoòopûe oíè äeécòâóþò. Haïpèìep, äaííûe äëÿ cëoâa,
êoòopoe äoëæío áûòü âûäeëeío æèpíûì øpèôòoì, äoëæíû ïpeäâapÿòücÿ
Esc-ïocëeäoâaòeëüíocòüþ, âêëþ÷aþùeé æèpíûé øpèôò, è çaâepøaòücÿ
Esc-ïocëeäoâaòeëüíocòüþ, âûêëþ÷aþùeé eão. Ïocêoëüêó óíèâepcaëüíûé
còaíäapò ía ýòè êoäû oòcóòcòâóeò, òo ïe÷aòü c èc- ïoëüçoâaíèeì ìoùíûx
âoçìoæíocòeé òpeáóeò, ÷òoáû äëÿ êaæäoão ïoääepæèâaeìoão ïpèíòepa áûëè
íaïècaíû äpaéâepû. Kaæäûé äpaéâep ïpeoápaçóeò èícòpóêöèè, ãeíepèpóeèûe
ïpoöeäópoé ïe÷aòè, â ïpoòo- êoë, ècïoëüçóeìûé äaííûì ïpèíòepoì.
B acceìáëepe ïocûëêa êoäoâ ocóùecòâëÿeòcÿ caìûì oáû÷íûì oápa- çoì. B
ïpoòèâíoì cëó÷ae oïepaòopû áóäóò aâòoìaòè÷ecêè äoáaâëÿòü ê ïocûëaeìûì
êoäaì ïapó âoçâpaò êapeòêè/ïepeâoä còpoêè.
3. Ócòaíoâêa òeêcòoâoão è ãpaôè÷ecêoão peæèìoâ.
Ïpèíòep âceãäa íaxoäèòcÿ â òeêcòoâoì peæèìe, äo òex ïop ïoêa oí
cïeöèaëüío íe ïepeâeäeí â ãpaôè÷ecêèé peæèì. Koìaíäa, ócòaíaâëèâaþùaÿ
ãpaôè÷ecêèé peæèì, äoëæía cooáùaòü êaêoe ÷ècëo áaéòoâ ãpaôè÷ecêèx
- 2 -
äaííûx áóäeò ïepeäaío (ío íe áoëüøe oäíoé còpoêè) è ïocëe òoão, êaê ýòo
÷ècëo áaéòoâ áóäeò èíòepïpeòèpoâaío êaê ãpa- ôè÷ecêoe èçoápaæeíèe,
ïpèíòep âepíeòcÿ â òeêcòoâûé peæèì. Ïo ýòoé ïpè÷èíe íeò êoìaíäû,
êoòopaÿ ïepeâoäèò ïpèíòep â òeêcòoâûé peæèì.
×ècëo ãpaôè÷ecêèx peæèìoâ ó paçíûx ïpèíòepoâ paçíoe. Bo âcex
cëó÷aÿx, ça êoäoì ócòaíaâëèâaþùèì ãpaôè÷ecêèé peæèì cëeäóþò 2 áaéòa,
óêaçûâaþùèe êaêoe ÷ècëo ãpaôè÷ecêèx áaéòoâ áóäeò ïepeäaío (cía÷aëa
ìëaäøèé áaéò). ×òoáû âû÷ècëèòü çía÷eíèe ýòèx äâóx áaéòoâ, paçäeëèòe
÷ècëo áaéòoâ äaííûx ía 256 è ïoìecòèòe peçóëüòaò âo âòopoé áaéò, a
ocòaòoê - â ïepâûé áaéò. Ça ýòèìè äâóìÿ áaéòaìè äoëæíû cpaçó cëeäoâaòü
áaéòû äaííûx.
Kaæäûé áaéò oïpeäeëÿeò öeïo÷êó áèòoâ, cooòâeòcòâóþùèx âocüìè
âepòèêaëüíûì òo÷êaì oäíoé ïoçèöèè â còpoêe. Mëaäøèé áèò (1)
cooòâeòcòâóeò íèçó êoëoíêè, a còapøèé áèò (128) - âepxó. Haïpèìep,
÷òoáû íaïe÷aòaòü ïèpaìèäó, ïoøëèòe cía÷aëa áaéò, ó êoòopoão ócòa-
íoâëeí òoëüêo íèæíèé áèò, çaòeì áaéò ó êoòopoão ócòaíoâëeíû 2 íèæíèx
áèòa è ò.ä. Ïocëe âocüìoão áaéòa pacïoëoæèòe òe æe áaéòû â oápaòíoì
ïopÿäêe. Çía÷eíèe ïepâoão áaéòa áóäeò 1, âòopoão - 3 (1+2), çaòeì 7
(1+2+4), çaòeì 15 (1+2+4+8) è ò.ä.
Ãpaôè÷ecêèé ïpèíòep IBM èìeeò ÷eòûpeê ãpaôè÷ecêèx peæèìa, êoòopûe
áoëee èëè ìeíee "còaíäapòíû". Oíè òaêèe:
27,75 480 òo÷eê â còpoêe.
Hopìaëüíûé peæèì. Maêcèìóì 480 áaéòoâ äaííûx ía oïepaòop.
27,76 960 òo÷eê â còpoêe. Óäâoeííoe ãopèçoíòaëüíoe paçpeøeíèe,
ío ïe÷aòü âäâoe ìeäëeííee (äâoéíaÿ ïëoòíocòü). Maêcèìóì
960 áaéòoâ äaííûx ía oïepaòop.
27,89 960 òo÷eê â còpoêe, ïe÷aòü c íopìaëüíoé cêopocòüþ (äâoé-
íaÿ ïëoòíocòü c âûcoêoé cêopocòüþ). Äâe òo÷êè, ïpèëeãaþ-
ùèe ïo ãopèçoíòaëè, íe ìoãóò áûòü íaïe÷aòaíû, ïocêoëüêó
íe áóäóò ócïeâaòü èãoëêè ïe÷aòaþùeé ãoëoâêè. Ecëè äeëaeòcÿ
ïoïûòêa èx íaïe÷aòaòü, òo âòopaÿ òo÷êa áóäeò èãíopèpoâaòü-
cÿ. Maêcèìóì 960 áaéòoâ äaííûx ía oïepaòop.
27,90 1920 òo÷eê â còpoêe, ïe÷aòü âäâoe ìeäëeííee (÷eòâepíaÿ
ïëoòíocòü). Coceäíèe òo÷êè ïo ãopèçoíòaëè äoëæíû oòcòoÿòü
ïo êpaéíeé ìepe ía 3 òo÷êè (ò.e. 1 ïe÷aòaeì, 2 ïpoïócêa-
eì). Maêcèìóì 1920 áaéòoâ äaííûx ía oïepaòop.
B áoëee ïëoòíûx peæèìax äâe ïpèëeãaþùèe ïo ãopèçoíòaëè òo÷êè íe
ìoãóò áûòü íaïe÷aòaíû. ×òoáû çaïoëíèòü ïpoïócêè ìeæäó òo÷êaìè, âepíèòe
êapeòêó ê ëeâoìó ïoëþ, íeìíoão cäâèíüòe ïe÷aòaþùóþ ãoëoâêó âïpaâo è
cäeëaéòe âòopoé ïpoxoä, ècïoëüçóÿ òe æe äaííûe. Boò cpaâíeíèe
ïëoòíocòeé ïe÷aòè âûçûâaeìûx oäíèìè è òeìè æe óïpaâëÿþùèìè êoäaìè ía
paçíûx ïpèíòepax:
Koäû Ãpaôè÷ecêèé Öâeòíoé Koìïaêòíûé Ïpoïpèíòep
27,75 480 òo÷eê 1108 560 480
27,76 960 òo÷eê 2216 - 960
27,89 960 òo÷eê 2216 - 960
27,90 1920 òo÷eê 4432 - 1920
Öâeòíoé ïpèíòep óíèêaëeí èç ïpèíòepoâ IBM òeì, ÷òo oí ìoæeò
ócòaíaâëèâaòü ìacøòaáíûé êoýôôèöèeíò (aspect ratio) äëÿ ãpaôè÷ec- êèx
èçoápaæeíèé. Ýòoò êoýôôèöèeíò oòpaæaeò paçíèöó ãopèçoíòaëüíûx è
âepòèêaëüíûx paccòoÿíèé ìeæäó òo÷êaìè. Oáû÷ío æeëaòeëeí êoýôôèöèeíò
1:1, ïocêoëüêó â ïpoòèâíoì cëó÷ae òpóäío ïpoâoäèòü ãpaôè÷ecêèe âû-
÷ècëeíèÿ. Ho ïpè êoïèpoâaíèè ãpaôè÷ecêoão ýêpaía íaäo ÷òoáû ìacøòaáíûé
êoýôôèöèeíò áûë òaêèì æe, êaê ó äècïëeÿ. B ýêpaííoì peæèìe óìepeííoão
paçpeøeíèÿ 5 òo÷eê ïo âepòèêaëè çaíèìaþò òoò æe paçìep, ÷òo 6 òo÷eê ïo
- 3 -
ãopèçoíòaëè. Ýòo cooòâeòcòâóeò ìacøòaáíoìó êoýôôèöèeíòó 5:6 è èìeíío
ýòo çía÷eíèe ècïoëüçóeòcÿ ïo óìoë÷aíèþ öâeòíûì ïpèíòepoì. Äoïócêaþòcÿ
òoëüêo êoýôôèöèeíòû 1:1 è 5:6.
4. Óïpaâëeíèe paccòoÿíèeì ìeæäó còpoêaìè.
Ecëè íe ïpèíèìaòü âo âíèìaíèe ïpèíòepû, èìeþùèe cïeöèaëüíûe
âoçìoæíocòè ãpaôoïocòpoèòeëÿ, òo âcÿ ïe÷aòü ocóùecòâëÿeòcÿ còpo- êaìè.
Äaæe ãpaôè÷ecêèe èçoápaæeíèÿ pècóþòcÿ ïocòpo÷ío, xoòÿ â ýòoì cëó÷ae íeò
ïócòûx ìecò ìeæäó còpoêaìè. Koä ASCII 10 - còaíäapòíûé óïpaâëÿþùèé êoä
ïepeâoäa còpoêè. Ïocûëêa eão ía ïpèíòep (áeç ïpeäøecòâóþùeão êoäa Esc)
ïpèâoäèò ê òoìó, ÷òo áóìaãa áóäeò ïpoäâèíóòa âïepeä ía óêaçaííûé
èíòepâaë. Oáû÷ío, ecëè ïepeâoä còpoêè íe ïocûëaeòcÿ ça êoäoì âoçâpaòa
êapeòêè, òo ïe÷aòaþùaÿ ãoëoâêa âoçâpaùaeòcÿ ê ëeâoìó êpaþ áóìaãè è
ìoæío cíoâa ïe÷aòaòü ía òoé æe còpoêe. Oäíaêo ìoæío cäeëaòü òaê, ÷òoáû
ïepeâoä còpoêè äeëaëcÿ aâòoìaòè÷ecêè ïpè êaæäoì âoçâpaòe êapeòêè. Ýòèì
óïpaâëÿþò ïepeêëþ÷aòeëè ía ïpèíòepe. Ýòo æe ìoæío cäeëaòü ócòaíoâèâ áèò
1 peãècòpa óïpaâëeíèÿ âûâoäoì. Míoãèe ïpèíòepû ìoãóò âêëþ÷aòü è âûê-
ëþ÷aòü aâòoìaòè÷ecêèé ïepeâoä còpoêè c ïoìoùüþ óïpaâëÿþùèx êoäoâ 27,53,
a íeêoòopûe ìoãóò äeëaòü oápaòíûé ïepe- âoä còpoêè c ïìoùüþ êoäoâ
27,93.
Ïo óìoë÷aíèþ ãpaôè÷ecêèé ïpèíòep ècïoëüçóeò èíòepâaë ïe÷aòè paâíûé
1/6 äþéìa (ò.e. âûâoäÿò 6 còpoê ía äþéì) è ê ýòoìó peæèìó âceãäa ìoæío
âepíóòücÿ, ïocûëaÿ óïpaâëÿþùèe êoäû 27,50 (ýòè êoäû ècïoëüçóþòcÿ òaêæe
â co÷eòaíèè c êoäû èçìeíeíèÿ èíòepâaëa ìeæäó còpoêaìè, oácóæäaeìûìè
íèæe). Äëÿ ýòoão ïpèíòepa èìeþòcÿ eùe äâa ïpeäoïpeäeëeííûx ìeæcòpo÷íûx
èíòepâaëa, 1/8 äþéìa è 7/72 äþéìa. Cooòâeòcòâóþùèe èì óïpaâëÿþùèe êoäû
27,48 è 27,49.
Boçìoæía è áoëee òoíêaÿ ãpaäaöèÿ ìeæcòpo÷íûx èíòepâaëoâ. Ãpa-
ôè÷ecêèé ïpèíòep ècïoëüçóeò òpè êoäa, ïoçâoëÿþùèe èçìeíèòü èíòep- âaë
ía o÷eíü ìaëóþ âeëè÷èíó. Bce òpè óïpaâëÿþùèx êoäa ècïoëüçóþò 2-xáaéòíóþ
Esc-ïocëeäoâaòeëüíocòü, ça êoòopoé cëeäóeò ÷ècëo 72-x èëè 216-x äoëeé
äþéìa, oïpeäeëÿþùèx ìeæcòpo÷íûé èíòepâaë. Bepòèêaëüíoe paccòoÿíèe ìeæäó
öeíòpaìè äâóx òo÷eê paâío 1/72 äþéìa. Èíòepâaë 8/72 äþéìa íe ocòaâëÿeò
ïpoìeæóòêa ìeæäó còpoêaìè (9 còpoê ía äþéì). Còaíäapòíûé èíòepâaë 6
còpoê ía äþéì çaäaeòcÿ ÷ècëoì 12/72 äþéìa. Haêoíeö, 1/216 paâía 1/3 oò
1/72. Èçìeíeíèe ía òaêóþ âeëè÷èíó ïoçâoëÿeò ïe÷aòaþùeé ãoëoâêe cëeãêa
cäâèíóòücÿ oò öeíòpa còpoêè, c òeì ÷òoáû òo÷êè ïpè âòopoì ïpoxoäe
çaïoëíèëè ïpoìeæóòêè, oáecïe÷èâaÿ ïe÷aòü áoëee âûcoêoão êa÷ecòâa. Boò
ýòè Esc-ïocëeäoâaòeëüíocòè:
Èçìeíeíèe Esc-ïocëeäoâaòeëüíocòü
72-e äþéìa 27,65,n (ãäe n oò 1 äo 85)
216-e äþéìa 27,51,n (ãäe n oò 1 äo 255)
216-e äþéìa 27,74,n (ãäe n oò 1 äo 255)
Koìaíäû äëÿ èçìeíeíèÿ èíòepâaëa â 72-x äþéìa íe còaíóò aêòèâíûìè äo
òex ïop, ïoêa íe âcòpeòèòcÿ âòopoé óïpaâëÿþùèé êoä: 27,50. Ýòoò êoä
ìoæeò òaêæe ècïoëüçoâaòücÿ oòäeëüío äëÿ âoccòaíoâëeíèÿ còaíäapòíoão
èíòepâaëa â 1/6 äþéìa. Ecëè paíee áûëa ècïoëüçoâaía êoìaíäa 27,65,n, òo
äëÿ âoccòaíoâëeíèÿ èíòepâa- ëa â 1/6 äþéìa íaäo ïocëaòü êoìaíäó
27,65,12,27,50. Äâa óïpaâëÿþùèx êoäa äëÿ èíòepâaëoâ â 1/216 äþéìa íe
èäeíòè÷íû. Ïepâûé êoä ócòaíaâëèâaeò, ÷òo âce ïocëeäóþùèe ïepeâoäû
còpoêè áóäóò âûïoëíÿòücÿ c óêaçaííûì èíòepâaëoì; âòopoé æe äeécòâóeò
òoëüêo ía oäèí ïepeâoä còpoêè, a çaòeì âoçâpaùaeò èíòepâaë, êoòopûé
äeécòâoâaë äo ýòoão.
5. Óïpaâëeíèe äâèæeíèeì áóìaãè.
- 4 -
Áóìaãa ía ïpèíòepe ïepeäâèãaeòcÿ êoìaíäaìè ïepeâoäa còpoêè,
âepòèêaëüíoé òaáóëÿöèè è ïepeâoäa ôopìaòa. Ócòaíoâêoé ïepeêëþ÷a- òeëeé
ía ïpèíòepe oïpeäeëÿeòcÿ áóäeò ëè ïpèíòep aâòoìaòè÷ecêè ïepexoäèòü ía
íoâóþ còpaíèöó ïpè oáíapóæeíèè ïepôopaöèè ìeæäó còpaíèöaìè. Ecëè
ïepôopaöèÿ íe áóäeò ïpoïócêaòücÿ, òo ïe÷aòü ìoæeò çaâepøèòücÿ ïpÿìo ía
âepíeì êpaþ o÷epeäíoé còpaíèöû. Ïpo- ïócê ïepôopaöèè ocòaâëÿeò ïo òpè
ïócòûx còpoêè câepxó è cíèçó êaæäoé còpaíèöû. Ha caìoì äeëe ïpèíòep íe
pacïoçíaeò ïepôopaöèþ, âìecòo ýòoão oí c÷èòaeò, ÷òo â ía÷aëüíûé ìoìeíò
áóìaãa âûpaâíeía ía ía÷aëo còpaíèöû è c÷èòaeò ÷ècëo ïepeâoäoâ còpoêè.
Moæío ïpoãpaììío ïepeoïpeäeëèòü ócòaíoâêó ïepeêëþ÷aòeëeé, ïocûëaÿ ía
ïpèíòep óïpaâëÿþùèe êoäû 27,56, ÷òoáû ïpèíòep íe äeëaë ïpoïócêa ïep-
ôopaöèè è 27,57, ÷òoáû äeëaë ïpoïócê ïepôopaöèè.
Ãpaôè÷ecêèé ïpèíòep ècïoëüçóeò êoä, êoòopûé oïpeäeëÿþò ÷ècëo còpoê,
ïpoïócêaeìûx ìeæäó còpaíèöaìè. Ýòoò êoä 27,78,n, ãäe n - ÷ècëo còpoê oò
1 äo 127. Haïpèìep, êoä 27,78,10 ïpèâeäeò ê òoìó, ÷òo ïpèíòep áóäeò
ïpoïócêaòü ïo 10 còpoê. Ecëè ìeæcòpo÷íûé èíòep- âaë paâeí 1/6 äþéìa, òo
11-òèäþéìoâaÿ còpaíèöa áóäeò coäepæaòü 66 còpoê è ïocëe ïe÷aòè êaæäûx
56-òè còpoê ïpèíòep áóäeò äeëaòü ïpoïócê 10-òè còpoê. Ïpoãpaììa äoëæía
ïoçaáoòèòücÿ, ÷òoáû â caìoì ía÷aëe ïpoãíaòü áóìaãó ía 5 còpoê, c òeì
÷òoáû 55 còpoê òeêcòa áûëè öeíòpèpoâaíû ía êaæäoé còpaíèöe.
Ecëè ècïoëüçóeòcÿ áóìaãa, paçìep êoòopoé oòëè÷aeòcÿ oò còaíäapòíoão
11-òèäþéìoâoão, òo ìoæío èçìeíèòü äëèíó còpaíèöû, c òeì ÷òoáû ïpoïócêè
ïepôopaöèè ïpoècxoäèëè â íóæíoì ìecòe è ÷òoáû ïepeâoä ôopìaòa
ócòaíaâëèâaë áóìaãó â ïpaâèëüíóþ ïoçèöèþ. Paçìep còpaíèöû ìoæeò
ócòaíaâëèâaòücÿ ëèáo ÷ècëoì còpoê ía còpaíèöe, ëèáo paçìepoì â äþéìax.
×òoáû ócòaíoâèòü ÷ècëo còpoê ía còpaíèöe, ïoøëèòe êoä 27,67,n, ãäe n -
÷ècëo còpoê. Ta æe ïocëeäoâaòeëüíocòü ècïoëüçóeòcÿ è äëÿ ócòaíoâêè äëè-
íû còpaíèöû â äþéìax, ça ècêëþ÷eíèeì òoão, ÷òo äëèía còpaíèöû
çaïècûâaeòcÿ â ôopìe 0,n, ãäe n ìoæeò áûòü oò 1 äo 22 äþéìoâ. Äëÿ
còaíäapòíoé còpaíèöû íaäo ïocëaòü êoìaíäó 27,67,0,11.
6. Óïpaâëeíèe ïoëoæeíèeì ïe÷aòaþùeé ãoëoâêè.
Ïe÷aòaeìûé òeêcò pacïpeäeëÿeòcÿ ïo còpaíèöe ÷acòè÷ío ça c÷eò
äâèæeíèÿ áóìaãè, a ÷acòè÷ío ça c÷eò äâèæeíèÿ ïe÷aòaþùeé ãoëoâêè.
Ãoëoâêa ìoæeò áûòü ïoçèöèoíèpoâaía â ëþáoe ìecòo, ío íe ïóòeì çaäaíèÿ
ee êoopäèíaò. Bìecòo ýòoão óêaçûâaeòcÿ ee cìeùeíèe, oòíocèòeëüío caìoé
ëeâoé ïoçèöèè, êoòopóþ oía ìoæeò äocòèãaòü. Ó ïpèíòepa íeò äaò÷èêoâ,
cooáùaþùèx òeêóùee ïoëoæeíèe ãoëoâêè. Baøa ïpoãpaììa äoëæía oòcëeæèâaòü
ïoëoæeíèe ãoëoâêè, ecëè oío äoëæío áûòü èçâecòíûì. Ïpè ýòoì xopoøeé
ïpaêòèêoêé ÿâëÿeòcÿ ía÷èíaòü ïe÷aòü c ïoäa÷è óïpaâëÿþùeão êoäa 27,60,
êoòopûé cäâèãaeò ãoëoâêó â caìóþ ëeâóþ ïoçèöèþ, íe äeëaÿ ïepeâoäa
còpoêè (òo æe caìoe äeëaeò è êoä âoçâpaòa êapeòêè).
Ïpè ïe÷aòè òeêcòa èìeeòcÿ íecêoëüêo cïocoáoâ ïepeäâèíóòü ão- ëoâêó â
íóæíoe ïoëoæeíèe. Oía ìoæeò cäâèãaòücÿ âïpaâo ïoäa÷eé oäíoão èëè
íecêoëüêèx cèìâoëâo ïpoáeëa èëè òaáóëÿöèè è âëeâo ïoäa÷eé oäíoão èëè
íecêoëüêèx cèìâoëoâ "âoçâpaò ía øaã" èëè cèìâoëa âoçâpaòa êapeòêè.
Äâèæeíèÿ ocóùecòâëÿþòcÿ íeïpepûâío - íe âocïpèíèìaéòe èx êaê
cooòâeòcòâóþùèe ïocëeäoâaòeëüíocòè ía oáû÷íoé ïèøóùeé ìaøèíêe. Äo òex
ïop, ïoêa Baøa ïpoãpaììa çíaeò ía- ÷aëüíoe ïoëoæeíèe ïe÷aòaþùeé ãoëoâêè
oía ìoæeò êoìáèíaöèeé ïepe- âoäoâ còpoêè, ïpoáeëoâ, òaáóëÿöèé è
âoçâpaòoâ ía øaã ôopìaòèpo- âaòü Baø âûâoä â cooòâeòcòâèè c Baøèìè
ïoæeëaíèÿìè. Ïpèíòepû, êoòopûe óìeþò âûïoëíÿòü oápaòíûé ïeepâoä còpoêè
ìoãóò ècïoëüço- âaòücÿ è êaê ãpaôoïocòpoèòeëè.
B ãpaôè÷ecêèx peæèìax âoçìoæío ïepeìeùeíèe ãoëoâêè ía ìaëûe äoëè
äþéìa. Ïpè ïe÷aòè òeêcòa Bû ìoæeòe âoéòè â ãpaôè÷ecêèé pe- æèì, ÷òoáû
äoáèòücÿ paçíûx ïpoìeæóòêoâ ìeæäó cëoâaìè.
Èìeeòcÿ cïeöèaëüíûé êoä, êoòopûé çacòaâëÿeò ãoëoâêó âceãäa
- 5 -
âoçâpaùaòücÿ â êpaéíþþ ëeâóþ ïoçèöèþ ïepeä ïe÷aòüþ o÷epeäíoé còpoêè,
oòìeíÿÿ äâóíaïpaâëeííóþ ïe÷aòü. Xoòÿ ýòo çía÷èòeëüío çaìeäëÿeò ïe÷aòü,
oäíaêo ïpè ýòoì äocòèãaeòcÿ áoëee òo÷íoe ïoçèöèoíèpoâaíèe ãoëoâêè. Ýòo
ocoáeíío ïoëeçío ïpè paáoòe â ãpaôè÷ec- êoì peæèìe. ×òoáû âêëþ÷èòü
oäíoíaïpaâëeííóþ ïe÷aòü íaäo ïocëaòü êoä 27,85,1, a ÷òoáû âepíóòücÿ ê
äâóíaïpaâëeííoé ïe÷aòè - êoä 27,85,0.
7. Èçìeíeíèe øpèôòa ïe÷aòè.
Øèpèía còpaíèöû 8 1/2 äþéìa ïoçâoëÿeò íaïe÷aòaòü â còpoêe äo 80-òè
oáû÷íûx cèìâoëoâ, ecëè âce oíè èìeþò oäèíaêoâóþ øèpèíó.
Ïpoïopöèoíaëüíaÿ ïe÷aòü ïoçâoëÿeò ïoìecòèòü â còpoêe eùe íecêoëüêo
cèìâoëoâ. C äpóãoé còopoíû, ïëoòíaÿ ïe÷aòü ïoçâoëÿeò âûâecòè â còpoêe
132 cèìâoëa, ïe÷aòü c äâoéíoé øèpèíoé - 40 cèìâoëoâ, a ïëoòíaÿ ïe÷aòü c
äâoéíoé øèpèíoé - 64 cèìâoëa. Èìeéòe ââèäó, ÷òo ècïoëüçoâaíèe ïe÷aòè c
paçíoé øèpèíoé â oäíoé còpoêe ïpèâeäeò ê òpóäíocòÿì c ôopìaòèpoâaíèeì.
Áoëüøèícòâo ìaòpè÷íûx ïpèíòepoâ ïpeäocòaâëÿþò íaáop peæèìoâ ïe÷aòè
cïeöèaëüíûìè øpèôòaìè. Boò ïepe÷eíü còaíäapòíûx âoçìoæíoc- òeé
ïpeäocòaâëÿeìûx ãpaôè÷ecêèì ïpèíòepoì IBM:
Ïëoòíaÿ ïe÷aòü:
Äëÿ âêëþ÷eíèÿ peæèìa ïëoòíoé ïe÷aòè íaäo ïocëaòü oäíoáaéòíûé
óïpaâëÿþùèé êoä 15. Äëÿ âûêëþ÷eíèÿ ýòoão peæèìa - êoä 18. Còaíäapòíaÿ
còpaíèöa øèpèíoé 8 1/2 äþéìa ïoçâoëÿeò íaïe÷aòaòü 132 cèìâoëa â còpoêe
â ýòoì peæèìe.
Ïe÷aòü c äâoéíoé øèpèíoé:
Äëÿ òoão, ÷òoáû ïpèíòep ía÷aë ïe÷aòaòü c äâoéíoé øèpèíoé íaäo
ïocëaòü ía íeão óïpaâëÿþùèé êoä 14. Peæèì ïe÷aòè c äâoéíoé øèpèíoé
íeoáû÷eí òeì, ÷òo ïpèíòep aâòoìaòè÷ecêè âûêëþ÷aeò ýòoò peæèì, êoãäa
âcòpe÷aeò cèìâoë âoçâpaòa êapeòêè èëè ïepeâoäa còpoêè. Ïocêoëüêó òaêoé
âèä ïe÷aòè oáû÷ío ècïoëüçóeòcÿ äëÿ oäíocòpo÷íûx çaãoëoâêoâ, òo ýòo
câoécòâo óäoáío. ×òoáû âûêëþ÷èòü ýòoò peæèì â cepeäèíe còpoêè ïoøëèòe
êoä 20.
Bûäeëeííaÿ ïe÷aòü:
Ïpè âûäeëeííoé ïe÷aòè êaæäûé cèìâoë ïe÷aòaeòcÿ äâa paça â oäíoé è
òoé æe ïoçèöèè. Ýòo äeëaeò òo÷êè òeìíee, ÷òo coçäaeò ýôôeêò âûäeëeíèÿ.
Cêopocòü ïe÷aòè ïpè ýòoì óìeíüøaeòcÿ âäâoe. Äëÿ âêëþ÷eíèÿ ýòoão peæèìa
ïoøëèòe êoä 27,69. Äëÿ âûêëþ÷eíèÿ - 27,70.
Ïe÷aòü ça äâa ïpoxoäa:
B peæèìe ïe÷aòè ça äâa ïpoxoäa áóìaãa cäâèãaeòcÿ ía 1/216 äþéìa
ïepeä âòopûì ïpoxoäoì ïe÷aòaþùeé ãoëoâêè. Ïpè ýòoì ïoëó÷aþòcÿ áoëee
çaïoëíeííûe áóêâû, êoòopûe ê òoìó æe âûãëÿäÿò ÿp÷e. Cêopocòü ïe÷aòè
óìeíüøaeòcÿ âäâoe. Ýòoò peæèì âêëþ÷aeòcÿ óïpaâëÿþùèì êoäoì 27,71, a
âûêëþ÷aeòcÿ êoäoì 27,72.
Ïe÷aòü c ïoä÷epêèâaíèeì:
Ïe÷aòü c ïoä÷epêèâaíèeì ìoæeò âûïoëíÿòücÿ äâóìÿ cïocoáaìè.
Ãpaôè÷ecêèé ïpèíòep èìeeò peæèì ïoä÷epêèâaíèÿ, â êoòopoì ïoä÷epê
ïe÷aòaeòcÿ ïoä êaæäûì cèìâoëoì, âêëþ÷aÿ ïpoáeëû. Äëÿ ãpaôè÷ecêoão
ïpèíòepa IBM ýòoò peæèì âêëþ÷aeòcÿ êoäoì 27,45,1, a âûêëþ÷aeòcÿ êoäoì
27,45,0. Ïpèíòepû, íe èìeþùèe peæèìa ïoä÷epêèâaíèÿ ìoãóò cäeëaòü
ïoä÷epêè ïpè âòopoì ïpoxoäe ïo òoé æe còpoêe, ïe÷aòaÿ cèìâoëû
ïoä÷epêèâaíèÿ (ASCII 95) â òex ìecòax, ãäe oío íóæío è ïpoáeëû (ASCII
32) âo âcex ocòaëüíûx ïoçöèöèÿx. Bòopoé ïpoxoä äocòèãaeòcÿ òeì, ÷òo
ïocëe ïepâoão ïpoxoäa ïoäaeòcÿ êoä âoçâpaòa êapeòêè áeç êoäa ïepeâoäa
còpoêè. Bòopoé ïpoxoä íe ìeøaeò ïpèíòe- pó ïpaâèëüío ïoäc÷èòûâaòü
- 6 -
còpoêè ïpè âû÷ècëeíèè paçìepa còpaíèöû.
Ïe÷aòü c âepxíèìè è íèæíèìè èíäeêcaìè:
Ha ãpaôè÷ecêèx ïpèíòepax òeêcò c âepxíèìè è íèæíèìè èíäeêcaìè
cæèìaeòcÿ âepòèêaëüío. Äëÿ ïe÷aòè âepxíeão èíäeêca ïoøëèòe óïpaâëÿþùèé
êoä 27,83,0, a äëÿ ïe÷aòè íèæíeão - 27,83,1. Moæío ïpÿìo ïepexoäèòü oò
oäíèx èíäeêcoâ ê äpóãèì. Äëÿ âûêëþ÷eíèÿ ïe÷aòè èíäeêcoâ, c òeì, ÷òoáû
ïpèíòep oêaçaëcÿ ía òeêóùeé còpoêe ïoøëèòe óïpaâëÿþùèé êoä 27,84.
Heêoòopûe peæèìû íe ìoãóò ècïoëüçoâaòücÿ â êoìáèíaöèè c äpóãèìè.
Ecëè Bû xoòèòe ècïoëüçoâaòü 4 peæèìa oäíoâpeìeíío, òo ïpoêoícóëü-
òèpóéòecü co cëeäóþùeé òaáëèöeé. B êaæäoì èç øecòè còoëáöoâ ïpèâeäeía
äoïócòèìaÿ êoìáèíaöèÿ.
Koìáèíaöèÿ 1 2 3 4 5 6
íopìaëüíûé X X
cæaòûé X X
âûäeëeííûé X X
ça äâa ïpoxoäa X X X
c èíäeêcaìè X X X
äâoéíoé øèpèíû X X X X X X
c ïoä÷epêèâaíèeì X X X X X X
8. Ïocûëêa äaííûx ía ïpèíòep.
Ïocûëêa äaííûx ía ïpèíòep òpèâèaëüía â ÿçûêax âûcoêoão ópoâíÿ, a äëÿ
ïpoãpaììècòa ía ÿçûêe acceìáëepa èìeeòcÿ pÿä ôóíêöèé oïepa- öèoííoé
cècòeìû, êoòopûe äeëaþò çaäa÷ó òaêæe äocòaòo÷ío ïpocòoé.
Ïpoãpaììèpoâaíèe ía íèçêoì ópoâíe òpeáóeò áoëüøe paáoòû, ío çaòo
ïpeäocòaâëÿeò áoëüøe âoçìoæíocòeé. Kaê ïpaâèëo, ïpoöeäópû ïe÷aòè
íèçêoão ópoâíÿ ïocûëaþò cèìâoë ía ïpèíòep, a çaòeì ïocòoÿíío ïpoâepÿeò
peãècòp còaòóca ââoäa ïopòa, ê êoòopoìó ïpècoeäèíeí ïpèíòep. Cëeäóþùèé
cèìâoë ïocûëaeòcÿ òoëüêo òoãäa, êoãäa ïpèíòep cèãíaëèçèpóeò, ÷òo oí
ãoòoâ (ïpèíòep ìoæeò íe ïe÷aòaòü cèìâoë cpaçó, a çaïacaòü eão â câoeì
áóôepe, äo òex ïop ïoêa íe áóäeò ïoëó÷eía öeëaÿ còpoêa cèìâoëoâ äëÿ
ïe÷aòè).
Kpoìe òoão, ïpoöeäópû íèçêoão ópoâíÿ ìoãóò ècïoëüçoâaòü ïpepûâaíèe
ïpèíòepa èëè ìoãóò èìèòèpoâaòü äeécòâèe ýòoão ïpepûâaíèÿ. C ïoìoùüþ
cïeöèaëüíoão ïpoãpaììèpoâaíèÿ ìoæío cäeëaòü òaê, ÷òo ïpèíòep áóäeò
äeëaòü ïpepûâaíèe ïpoöeíccopa, êoãäa oí ãoòoâ ê ïpèeìó cëeäóþùeão
cèìâoëa. Ïpoöeäópa oápaáoòêè ïpepûâaíèÿ ïocûëaeò cëeäóþùèé cèìâoë,
ïocëe ÷eão ïpoöeccop ìoæeò ïpoäoëæaòü çaíèìaòücÿ câoèìè äeëaìè. Ýòoò
ìeòoä ècïoëüçóeòcÿ äëÿ ôoíoâoé ïe÷aòè (êoòopóþ íaçûâaþò òaêæe cïó-
ëèíãoì). Ïocêoëüêó ôèçè÷ecêèe ïepeìeùeíèÿ äeòaëeé ïpèíòepa íaìíoão
ìeäëeííee, ÷eì cêopocòü ýëeêòpoíèêè êoìïüþòepa, òo âûâoä cèìâoëoâ ía
ïpèíòep çaíèìaeò ëèøü ìaëóþ äoëþ ïpoöeccopíoão âpeìeíè. Ècïoëüçoâaíèe
ïpepûâaíèÿ ïoçâoëÿeò ècïoëüçoâaòü ýòo âpeìÿ ýôôeêòèâío.
Ïpè ïocûëêe äaííûx ía ïpèíòep òpeáóeòcÿ cpaâíèòeëüío íeáoëüøèe
ócèëèÿ, ÷òoáû äoáèòücÿ óæacío cëoæíoão âûâoäa. Bce cëoæíûe êap- òèíêè,
êoòopûe ìoæeò âûâoäèòü ïpèíòep, äocòèãaþòcÿ ça c÷eò êoìáèíèpoâaíèÿ
òeêcòoâûx è ãpaôè÷ecêèx äaííûx, a òaêæe ìíoão÷ècëeííûx êoäoâ óïpaâëeíèÿ
ïpèíòepoì, oácóæäaâøèxcÿ paíee â ýòoé ãëaâe. Koìáèíèpóÿ â oäíoé còpoêe
òeêcòoâûé è ãpaôè÷ecêèé peæèìû, ìoæío äoáèòücÿ âûpaâíèâaíèÿ ïpaâoão
ïoëÿ è ïpoïopöèoíaëüíoé ïe÷aòè. Kpoìe òoão ëþáoé ãpaôè÷ecêèé ïpèíòep
ìoæeò coçäaâaòü cïeöèaëüíûe cèìâoëû ïpoèçâoëüíoão âèäa, a ça c÷eò
aêêópaòíoão ìaíèïóëèpoâaíèÿ íaäïe÷aòêè è ìeæcòpo÷íoão èíòepâaëa ìoãóò
âûâoäèòücÿ ëþáûe cèìâo- ëû ïceâäoãpaôèêè.
- 7 -
9. Bûâoä òeêcòoâûx èëè ãpaôè÷ecêèx äaííûx ía ïpèíòep.
Ïpoöeccop ìoæeò çaíèìaòücÿ òoëüêo ïocûëêoé äaííûx ía ïpèíòep èëè oí
ìoæeò ïe÷aòaòü â ôoíoâoì peæèìe, ça c÷eò ècïoëüçoâaíèÿ ïpepûâaíèÿ
ïpèíòepa. Boçìoæía è òpeòüÿ aëüòepíaòèâa, êoãäa ïpoãpaììa ïocûëaeò
cèìâoëû ía ïpèíòep ÷epeç oïpeäeëeííûe èíòepâaëû, ÷òo ìoæío
paccìaòpèâaòü êaê "ïceâäoïpepûâaíèe". Ýòoò ìeòoä íe òaê òecío êoopäè-
íèpóeòcÿ c paáoòoé ïpèíòepa, êaê íacòoÿùee ïpepûâa- íèe, ío âo âcÿêoì
cëó÷ae paáoòa ïpèíòepa íe êpèòè÷ía êo âpeìeíè.
Heçaâècèìo oò òoão êaê âûâoäÿòcÿ äaííûe, êaæäûé paç ía ïpèíòep
ïocûëaeòcÿ òoëüêo 1 áaéò äaííûx. ßçûêè âûcoêoão ópoâíÿ ïpeäocòaâëÿþò
ôóíêöèè, êoòopûe âpoäe áû âûâoäÿò cpaçó öeëûe còpoêè, oäíaêo ía caìoì
äeëe ýòè ôóíêöèè paçáèâaþò còpoêè ía oòäeëüíûe cèìâoëû. Oáû÷ío ÿçûêè
âûcoêoão ópoâíÿ ïocûëaþò ía ïpèíòep ïapó âoçâpaò êapeòêè/ïepeâoä còpoêè
â êoíöe êaæäoé còpoêè. C äpóãoé còopoíû, ïpoãpaììû ía acceìáëepe äoëæíû
caìè äoáaâëÿòü ýòó ïapó êoäoâ. Èç-ça ýòoão ïpèxoäèòcÿ íeìíoão áoëüøe
ïpoãpaììèpoâaòü, ío âçaìeí Bû ïoëó÷aeòe íaìíoão áoëüøóþ ãèáêocòü,
ocoáeíío â oòíoøeíèè ïpo- âepêè oøèáoê.
Cpeäíèé ópoâeíü.
Ôóíêöèÿ 0 ïpepûâaíèÿ 17H ïocûëaeò oäèí cèìâoë ía ïpèíòep. Ïoìecòèòe
cèìâoë â AL, a íoìep ïpèíòepa â DX. Ïpè âoçâpaòe AH áóäeò coäepæaòü
peãècòp còaòóca, êoòopûé íaäo ïocòoÿíío ïpoâepÿòü äëÿ oáíapóæeíèÿ
oøèáoê. B [6.1.3] oáúÿcíÿeòcÿ êaê ýòo äeëaòü. Äëÿ âûâoäa ïoòoêa äaííûx
ócòaíoâèòe óêaçaòeëü ía áóôep, coäepæaùèé äaííûe, è íaïèøèòe ïpoöeäópó
òèïa cëeäóþùeé:
;---âûâoä äaííûx ía LPT1
MOV CX,NUMBER_CHARS ;CX coäepæèò ÷ècëo áaéò äëÿ âûâoäa
MOV DX,0 ;âûáèpaeì LPT1
NEXT_CHAR: MOV AH,0 ;ôóíêöèÿ ïocûëêè cèìâoëa ía ïpèíòep
MOV AL,[BX] ;BX óêaçûâaeò ía áóôep äaííûx
INT 17H ;ïocûëaeì cèìâoë
TEST AH,8 ;ïpoâepÿeì áèò oøèáêè
JNZ PRNTR_ERROR ;ía oápaáoòêó oøèáêè
INC BX ;óâeëè÷èâaeì óêaçaòeëü
LOOP NEXT_CHAR ;âûâoäèì cëeäóþùèé cèìâoë
Còaíäapòíoe ïpepûâaíèe MS DOS äëÿ âûâoäa ía ïpèíòep ýòo ôóíêöèÿ 5
ïpepûâaíèÿ 21H. Ïpocòo ïoìecòèòe cèìâoë â DL è âûïoëíèòe ïpepûâaíèe.
Ýòa ôóíêöèÿ âceãäa âûâoäèò ía LPT1 è ó íee íeò âoçâpaùaeìûx peãècòpoâ.
;---âûâoä äaííûx ía LPT1
MOV AH,5 ;íoìep ôóíêöèè
MOV DL,CHAR ;ãoòoâèì ïe÷aòaeìûé cèìâoë
INT 21H ;ïocûëaeì eão ía ïpèíòep
Äpóãoé cïocoá âûâoäa äaííûx ía ïpèíòep ýòo ôóíêöèÿ 40H ïpepûâaíèÿ
21H. Ýòo ôóíêöèÿ còaíäapòíoão âûâoäa, c ècïoëüçoâaíèeì ìeòoäa
äecêpèïòopa ôaéëoâ äëÿ äocòóïa ê ôaéëó èëè ócòpoécòâó [5.3.0]. B äaííoì
cëó÷ae ýòa ôóíêöèÿ ècïoëüçóeò cïeöèaëüíûé ïpe- äoïpeäeëeííûé íoìep
ôaéëa äëÿ ïpèíòepa. Ýòoò íoìep #4 è eão íaäo ïoìecòèòü â BX. Ôóíêöèÿ
èìeeò äocòóï òoëüêo ê LPT1, ïoýòoìó äëÿ âûâoäa ía äpóãoé ïpèíòep Baì
íaäo ïoìeíÿòü áaçoâûe aäpeca [6.1.4]. DS:DX äoëæíû óêaçûâaòü ía âûâoäè-
ìûe äaííûe, a CX coäep- æaòü ÷ècëo ïocûëaeìûx áaéòoâ. Haïpèìep:
- 8 -
;---âûâoä 120 áaéòoâ äaííûx ía LPT1
MOV AH,40H ;íoìep ôóíêöèè
MOV BX,4 ;íoìep ôaéëa äëÿ ïpèíòepa
MOV CX,120 ;÷ècëo ïocûëaeìûx áaéòoâ
LEA DX,PRTR_DATA ;DS:DX óêaçûâaþò ía äaííûe
INT 21H ;ïocûëaeì äaííûe
JC PRTR_ERROR ;ía oápaáoòêó oøèáêè
Ïpè âoçâpaòe ócòaíoâëeííûé ôëaã ïepeíoca èíäèöèpóeò oøèáêó, ïpè
ýòoì AX áóäeò coäepæaòü 5, ecëè ïpèíòep íe câÿçaí c ìaøèíoé è 6 - ecëè
óêaçaí íeâepíûé íoìep ôaéëa. Oòìeòèì, ÷òo ïpè ècïoëüçoâaíèè
ïpeäoïpeäeëeííoão íoìepa ôaéëa íeíóæío oòêpûâaòü ócòpoécòâo.
Hèçêèé ópoâeíü.
Áaéò äaííûx ïocûëaeòcÿ ía ïpèíòep, ïóòeì ïocûëêè eão â peãècòp
âûâoäèìûx äaííûx, aäpec ïopòa êoòopoão coâïaäaeò c áaçoâûì aäpe- coì
ïpèíòepa. Ïoìíèòe, ÷òo áaçoâûe aäpeca äëÿ LPT1-3 xpaíÿòcÿ co cìeùeíèÿìè
8, 10 è 12 â oáëacòè äaííûx BIOS (ía÷èíaþùeécÿ c 0040:0000). Ïocëe òoão
êaê äaííûe ïocëaíû â peãècòp ía êopoòêoe âpeìÿ âêëþ÷aeòcÿ áèò còpoáa
peãècòpa óïpaâëeíèÿ âûâoäoì, aäpec ïopòa êoòopoão ía 2 áoëüøe, ÷eì äëÿ
peãècòpa äaííûx. Hoìep áèòa còpoáa paâeí 0 è oí äoëæeí áûòü ócòaíoâëeí
òoëüêo ía o÷eíü êopoòêoe âpeìÿ, ÷òoáû èíèöèèpoâaòü ïepeäa÷ó äaííûx,
íaxoäÿùèxcÿ â peãècòpe äaííûx. Ïpoöeäópa ïe÷aòè ìoæeò íeìeäëeíío
cápocèòü áèò còpoáa oápaòío â 0.
Ïocëe òoão êaê áaéò äaííûx ïocëaí, ïpoãpaììa äoëæía oæèäaòü, ïoêa
ïpèíòep íe cooáùèò, ÷òo oí ãoòoâ ê ïpèeìó cëeäóþùeão. Ýòo äeëaeòcÿ äâó-
ìÿ cïocoáaìè. Ïpè ãoòoâíocòè ïpèíòep äaeò èìïóëüc â áèò ïoäòâepæäeíèÿ
peãècòpa còaòóca ââoäa, aäpec ïopòa êoòopoão ía 1 áoëüøe áaçoâoão
aäpeca ïpèíòepa. Hoìep áèòa ïoäòâepæäeíèÿ paâeí 6 è oáû÷ío oí
ócòaíoâëeí â 1. Èìïóëüc ïoäòâepæäeíèÿ cápacûâaeò ýòoò áèò â 0 ía
äocòaòo÷ío äoëãoe âpeìÿ, ÷òoáû ïpoãpaììa ía ÿçûêe acceìáëepa ìoãëa
óâèäeòü ýòo, ecëè oía ïocòoÿíío cëeäèò ça pe- ãècòpoì.
Äpóãoé cïocoá óçíaòü, ÷òo ïpèíòep ãoòoâ ê ïpèeìó cëeäóþùeão áaéòa
äaííûx cocòoèò â íeïpepûâíoé ïpoâepêe áèòa 7 peãècòpa còa- òóca,
êoòopûé cápacûâaeòcÿ â 0, êoãäa ïpèíòep çaíÿò è ócòaíaâëèâaeòcÿ â 1,
êoãäa oí ãoòoâ ïpèíÿòü äaííûe. Ecëè Bû ïèøèòe ïpoöe- äópó ïe÷aòè
íèçêoão ópoâíÿ, êoòopaÿ äoëæía paáoòaòü â èíòepïpeòèpóeìoì Áeécèêe èëè
äpóãoì o÷eíü ìeäëeííoì ÿçûêe, òo íaäo ècïoëüçoâaòü ýòoò ìeòoä.
Cëeäóþùèé ïpèìep ïoëó÷aeò áaçoâûé aäpec LPT1 èç oáëacòè äaííûx BIOS
è çaòeì âûâoäèò äaííûe èç áóôepa, ía êoòopûé óêaçûâaeò pe- ãècòp BX.
Ïpoãpaììa ïocòoÿíío ïpoâepÿeò peãècòp còaòóca ía çaíÿòocòü è
oäíoâpeìeíío ïpoâepÿeò áèò 3, ÷òoáû ïpoâepèòü íaëè÷èe oøèáêè ía
ïpèíòepe.
;---ïoäãoòoâêa
MOV AX,40H ;ES óêaçûâaeò ía oáëacòü äaííûx BIOS
MOV ES,AX ;
MOV DX,ES:[8] ;áaçoâûé aäpec LPT1 â DX
MOV BX,DATA_START ;BX óêaçûâaeò ía áóôep äaííûx
;---ïocûëaeì cèìâoë
NEXTCHAR: MOV AL,[BX] ;ïoìeùaeì cèìâoë â AL
OUT DX,AL ;ïocûëaeì cèìâoë
INC DX ;DX áóäeò óêaçûâaòü ía peãècòp
INC DX ;óïpaâëeíèÿ âûâoäoì
MOV AL,13 ;öeïo÷êa áèòoâ äëÿ èìïóëüca còpoáa
OUT DX,AL ;ïocûëaeì cèãíaë còpoáa
DEC AL ;íopìaëüíoe ccoòoÿíèe peãècòpa
OUT DX,AL ;ïocûëaeì eão
- 9 -
;---ïpoâepêa ía oøèáêó è oæèäaíèe ãoòoâíocòè ïpèíòepa
DEC DX ;DX óêaçûâaeò ía peãècòp còaòóca
NOT_YET: IN AL,DX ;ïoëó÷aeì áaéò còaòóca
TEST AL,8 ;oøèáêa?
JNZ PRTR_ERROR ;ïepexoä ía oápaáoòêó oøèáêè
TEST AL,80H ;ïpèíòep çaíÿò?
JZ NOT_YET ;ecëè çaíÿò, òo íaçaä
INC BX ;óâeëè÷èâaeì óêaçaòeëü â áóôepe äaííûx
DEC DX ;DX óêaçûâaeò ía peãècòp äaííûx
JMP NEXTCHAR ;èäeì ía ïe÷aòü cëeäóþùeão cèìâoëa
Koãäa ócòaíoâëeí áèò 4 óïpaâëÿþùeão peãècòpa ïpèíòepa, òo paçpeøeío
ïpepûâaíèe ïpèíòepa. Koãäa ècïoëüçóeòcÿ ïpepûâaíèe, òo ïpoãpaììa íe
äoëæía oæèäaòü cèãíaëa ãoòoâíocòè oò ïpèíòepa, íeïpepûâío oïpaøèâaÿ
peãècòp còaòóca ïpèíòepa. Bìecòo ýòoão, ïpoãpaììa ìoæeò ïocëaòü cèìâoë
è çaíèìaòücÿ äpóãèìè äeëaìè; êoãäa ïpèíòep áóäeò ãoòoâ äëÿ ïpèeìa
cëeäóþùeão cèìâoëa, òo oí ïoøëeò cèãíaë ïoäòâepæäeíèÿ (áèò 6 peãècòpa
còaòóca ía êopoòêoe âpeìÿ áóäeò ócòaíoâëeí â 1) è aâòoìaòè÷ecêè áóäeò
âûçâaío ïpepûâaíèe ïpèíòepa. Ïpoöeäópa oápaáoòêè ïpepûâaíèÿ ïoøëeò ía
ïpèíòep cëe- äóþùèé cèìâoë è âepíeò óïpaâëeíèe â ïpoãpaììó, ÷òoáû oía
ìoãëa ïpoäoëæaòü câoþ paáoòó, äo òex ïop ïoêa íe ïpoèçoéäeò cëeäóþùeão
ïpepûâaíèÿ. Koãäa âce äaííûe áóäóò âûâeäeíû, òo ïpepûâaíèe äoëæío
oòêëþ÷èòü ceáÿ.
10. Koïèpoâaíèe ýêpaía ía ïpèíòep (äaìï ýêpaía).
Äaìï òeêcòoâoão ýêpaía cäeëaòü äocòaòo÷ío ïpocòo, ecëè âce ècïoëü-
çóeìûe cèìâoëû coäepæaòcÿ â ÏÇÓ ïpèíòepa è íè oäèí èç íèx íe âûâoäèòcÿ
co cïeöèaëüíûìè aòpèáóòaìè, òaêèìè êaê ïoä÷epêèâaíèe èëè íeãaòèâíoe
èçoápaæeíèe. B ýòoì ïpocòeéøeì cëó÷ae ïpoãpaììe íóæío ëèøü ócòaíoâèòü
øèpèíó ïpèíòepa paâíoé 80 cèìâoëaì, a çaòeì c÷èòûâaòü cèìâoëû
ïoo÷epeäío èç âèäeoáóôepa, ïocûëaÿ èx êaê íeïpepûâíûé ïoòoê äaííûx ía
ïpèíòep. Ecëè â ÏÇÓ ïpèíòepa oòcóòcòâóþò cïeöèaëüíûe cèìâoëû, òaêèe êaê
cèìâoëû ïceâäoãpaôèêè, òo ïpoãpaììa äoëæía ïoäãoòoâèòü câoþ òaáëèöó
äaííûx äëÿ ýòèx cèìâoëoâ è âûâoäèòü èx ía ïpèíòep â ãpaôè÷ecêoì peæèìe.
Ïocêoëüêó ýòè cèìâo- ëû ìoãóò çaxoäèòü â ìeæcòpo÷íûe èíòepâaëû, òo
ìoæeò ïoòpeáoâaòücÿ cïeöèaëüíoe ïpoãpaììèpoâaíèe.
Kaæäûé èç cïeöèaëüíûx aòpèáóòoâ cèìâoëoâ coçäaeò câoè ïpoáëe- ìû.
Ïpoâepÿéòe aòpèáóò êaæäoão cèìâoëa ïpè c÷èòûâaíèè eão èç âèäeoáóôepa.
Koãäa cèìâoë âûäeëeí c ïoìoùüþ ïoä÷ep- êèâaíèÿ èëè ïoâûøeííoé
èíòeícèâíocòè, òo íaäo âêëþ÷aòü ïoä÷epêèâaíèe èëè ïe÷aòü æèpíûì øpèôòoì
ía ïpèíòepe. Oäíaêo ecëè cèìâoë âûâoäèòcÿ â íeãaòèâíoì èçoápaæeíèè, òo
âoçíèêaþò òe æe ïpoáëeìû, ÷òo è c íeêoòopûìè ãpaôè÷ecêèìè cèìâoëaìè:
oáëacòü íeãaòèâíoão èçoápaæeíèÿ äoëæía ïpocòèpaòücÿ äo âepxíeão êpaÿ
cëeäóþùeé còpo- êè. B ýòoì cëó÷ae íaäo çaïoëíèòü ÷epíûì âcþ oáëacòü ïpè
âòopoì ïpoxoäe. B çaâècèìocòè oò ïpèíòepa, Baì ìoæeò ïoíaäoáèòücÿ
coçäaòü cïeöèaëüíóþ òaáëèöó äaííûx äëÿ âûâoäa cèìâoëoâ â íeãaòèâe,
ïocêoëüêó êoãäa oíè áóäóò ïe÷aòaòücÿ, òo oêpóæaþùèe òo÷êè ìoãóò
íaxoäèòücÿ cëèøêoì áëèçêo oäía ê äpóãoé, çaòeìíÿÿ èçoápaæaeìûé cèìâoë.
B ýòoì cëó÷ae íe ìoæeò áûòü è pe÷è o ïe÷aòè â äâa ïpoxoäa. Ïpocòûì
peøeíèeì ïpoáëeìû c íeãaòèâíûì èçoápaæeíèeì ÿâëÿeòcÿ ècïoëüçoâaíèe
ãpaôè÷ecêoão peæèìa ýêpaía äëÿ âûâoäa òeêcòa, a çaòeì cäeëaòü äaìï
ãpaôè÷ecêoão ýêpaía.
Ãpaôè÷ecêèe äaìïû coçäaþò câoè ïpoáëeìû. Áaéò äaííûx ïpèíòepa
cooòâeòcòâóeò âocüìè âepòèêaëüíûì òo÷êaì, â òo âpeìÿ êaê ía ýêpa- íe
áaéò ïpeäcòaâëÿeò 8 ãopèçoíòaëüíûx òo÷eê. Ïoýòoìó òpeáóeòcÿ ïpoöeäópa
ïpeoápaçoâaíèÿ, ïoêaçaííaÿ ía pèc. 6-4. Haäo cpaçó ïoëó÷aòü ïo 8 áaéòoâ
ïaìÿòè ýêpaía, âûáèpaÿ òaêèe, êoòopûe cooòâeòcòâóþò oáëacòè òo÷eê 8*8.
Çaòeì íaäo ècïoëüçoâaòü ëoãè÷ecêèe oïepaöèè äëÿ ïepecòaíoâêè áèòoâ, êaê
- 10 -
ïoêaçaío â ïpèìepax.
Áoëüøèícòâo ìaòpè÷íûx ïpèíòepoâ ècêaæaþò ýêpaííoe èçoápaæeíèe. Ýòo
ïpoècxoäèò ïoòoìó, ÷òo oíè ècïoëüçóþò ìacøòaáíûé êoýôôèöèeíò 1:1, â òo
âpeìÿ êaê ýêpaí ècïoëüçóeò êoýôôèöèeíò 5:6 (ìacøòaáíûé êoýôôèöèeíò
cpaâíèâaeò ÷ècëo ãopèçoíòaëüíûx òo÷eê ía äþéì c ÷ècëoì âepòèêaëüíûx
òo÷eê ía äþéì). To÷íee ãoâopÿ, ècêaæeíèe èçoápaæeíèÿ ía caìoì äeëe
âoçíèêaeò èç-ça ìacøòaáíoão êoýôôèöèeíòa ýêpaía, ïocêoëüêó ïpoãpaììû
äoëæíû cïeöèaëüío ìeíÿòü äaííûe äëÿ èçoápaæeíèÿ, ÷òoáû oío âûãëÿäeëo
òaê, êaê íaì xo÷eòcÿ (íaïpèìep, èçoápaæeíèe oêpóæíocòè ía ýêpaíe
coçäaeòcÿ âûâoäoì ía íeão ýëëèïca). Koãäa äaííûe c ýêpaía âûâoäÿòcÿ ía
ïpèíòep, òo ýòè ècêaæeíèe äoëæíû oápaùaòücÿ. Heêoòopûe ãpaôè÷ec- êèe
ïpèíòepû èìeþò cïeöèaëüíûe peæèìû, â êoòopûx ìoæío âûâoäèòü êoïèþ
ýêpaía áeç ècêaæeíèÿ, a öâeòíoé ïpèíòep IBM ìoæeò ìeíÿòü ìacøòaáíûé
êoýôôèöèeíò â ëþáoì èç câoèx ãpaôè÷ecêèx peæèìoâ.
Hèçêèé ópoâeíü.
ßçûê acceìáëepa äeëaeò áèòoâûe ïpeoápaçoâaíèÿ íaìíoão áûcòpee. Boò
ïpoöeäópa, êoòopaÿ äeëaeò ýòè ïpeoápaçoâaíèÿ óæacío áûcòpo, ïocêoëüêó
oía äepæèò âce â ìèêpoïpoöeccope (oía íeìíoão âeëèêoâa- òa, ío Bû
ìoæeòe ècïoëüçoâaòü âçaìeí aëãopèòì, ïoêaçaííûé â Áeécèêe). Ïpoöeäópa
paáoòaeò, xpaíÿ 8 peçóëüòèpóþùèx áaéòoâ â pe- ãècòpax CX, DX, BP è DI.
Áaéò ýêpaííûx äaííûx ïoìeùaeòcÿ â AL, a çaòeì â AH ïepeäâèãaþòcÿ
ïocëeäoâaòeëüío CL, CH, DL è DH. Kaæäûé paç èç AL â AH cäâèãaeòcÿ oäèí
áèò è êoãäa cäeëaíû 4 cäâèãa, òo CX è DX oáìeíèâaþòcÿ c DX è BP, ïocëe
÷eão âce ýòo ïoâòopÿeòcÿ cíoâa. Ýòoò ïpoöecc ïoâòopÿeòcÿ äëÿ êaæäoão èç
8-ìè ýêpaííûx áaéòoâ è êoãäa oí çaâepøeí, òo ïpeoápaçoâaííoe
èçoápaæeíèe xpa- íèòcÿ â peãècòpax ìèêpoïpoöeccopa, ïpè÷eì caìûé ëeâûé
áaéò äaííûx äëÿ ïe÷aòè â CL. Coäepæèìoe peãècòpoâ âûâoäèòcÿ ía ïpèíòep
è oáíóëÿeòcÿ, ïocëe ÷eão ïpoöecc ïoâòopÿeòcÿ äëÿ cëeäóþùèx âocüìè
áaéòoâ ýêpaía. Cía÷aëa ïoëó÷èòe 8 áaéòoâ èç âèäeoáóôepa è ïoìec- òèòe
èx â áóôep c èìeíeì BUFFER. Ïoìecòèòe 0 â AX, CX, DX, BP è DI. Çaòeì:
LEA BX,BUFFER ;óêaçûâaeì ía áóôep âèäeoäaííûx
MOV SI,0 ;cìeùeíèe â ýòoì áóôepe
GET_BYTE: MOV AL,[BX][SI] ;áepeì áaéò
DO_HALF: XCNG AH,CL ;ïoëó÷aeì CL, CH, DL è DH
SHL AX,1 ;cäâèãaÿ áèò èç AL
XCNG AH,CL ;
XCNG AH,CH ;
SHL AX,1 ;
XCNG AH,CH ;
XCNG AH,DL ;
SHL AX,1 ;
XCNG AH,DL ;
XCNG AH,DH ;
SHL AX,1 ;
XCNG AH,DH ;
;---ía÷èíaeì âòopóþ ïoëoâèíó ïepeìeùeíèÿ áèòoâ
XCNG CX,BP ;oáìeíèâaeì coäepæèìoe CX è DX
XCNG DX,DI ;
CMP SI,7 ;ecëè âce áaéòû ïpeoápaçoâaíû, òo ïe÷aòaeì
JE PRINT_BYTES ;
INC SI ;èía÷e ïepexoäèì ê cëeäóþùeìó áaéòó
JMP SHORT GET_BYTE ;
;---ïe÷aòaeì áaéòû
PRINT_BYTES: PUSH DX ;coxpoaíÿeì DX
MOV AH,5 ;ôóíêöèÿ âûâoäa ía ïpèíòep
- 11 -
MOV DL,27 ;êoä Esc
INT 21H ;ïocûëaeì eão
MOV DL,75 ;êoä ãpaôè÷ecêoão peæèìa
INT 21H ;ïocûëaeì eão
MOV DL,6 ;áóäeò ïocëaío 6 áaéòoâ
INT 21H ;
MOV DL,0 ;
INT 21H ;
CALL PRINT_2_BYTES ;ïocûëaeì coäepæèìoe CX
POP CX ;
CALL PRINT_2_BYTES ;ïocûëaeì coäepæèìoe DX
MOV CX,BP ;
CALL PRINT_2_BYTES ;ïocûëaeì coäepæèìoe BP
MOV DX,DI ;
CALL PRINT_2_BYTES ;ïocûëaeì coäepæèìoe DI
.
(èäeì ê cëeäóþùeé ãpóïïe èç âocüìè áaéòoâ)
.
PRINT_2_BYTES: PROC NEAR
MOV AH,5 ;ôóíêöèÿ ïe÷aòè
MOV DL,CL ;cía÷aëa CL
INT 21H ;ïe÷aòaeì
MOV DL,CH ;çaòeì CH
INT 21H ;ïe÷aòaeì
RET
PRINT_2_BYTES ENDP
|