***************** RX (V00.01) - programma dlq kcgd dwk-4 ****************** * * * awtor dannoj programmy a.belic nikomu ne sowetuet kopirowatx dannu` * * wersi` programmy dlq {irokogo rasprostraneniq t.k. dannaq wersiq qwlq- * * etsq otlado~noj i ne imeet dostato~nogo koli~estwa funkcij, ~toby ne * * diskreditirowatx swoi posledu`}ie wersii w glazah {irokoj programmist- * * skoj ob}estwenosti. posledu`}ie wersii budut bolee raboto- i konkuren- * * tosposobnymi, i a.belic ni~ego ne budet imetx protiw ih kopirowaniq. * * pri wsem |tom a.belic prosit uwavatx ego awtorskoe prawo kak na posle- * * du`}ie, tak i na |tu wersi`, hotq by iz |ti~eskih soobravenij. * * * ****************************************************************************** programma RX prednazna~ena dlq raboty w kontrollere cwetnogo grafi~eskogo displeq dwk-4 (dalee - kcgd) w ka~estwe ego osnownoj uprawlq`}ej programmy i imeet: 1) poddervku raboty klawiatury ,my{i i interfejsa swqzi s ma{inoj (processorom) w ka~estwe wne{nih ustrojstw dlq ~asti~noj |mulqcii klawiatury frqzinskogo displeq; 2) poddervku raboty interfejsa swqzi s ma{inoj (processorom) i grafdispleq dlq ~asti~noj |mulqcii frqzinskogo displeq, t.e poddervku raboty s tekstom w ko- dah VT52 (dobawlena wozmovnostx raboty w ~istom koi-8 ); 3) poddervku dopolnitelxnyh tekstowyh, grafi~eskih i pro~ih komand. 4) krome togo, awtor (wse tot ve a.belic) imeet velanie dopisatx programmu do wida operacionnoj sistemy dlq kcgd dwk-4, ~asti~no sowmestimoj s RT11, ~to dast wozmovnostx pisatx na si programmy, zapuskaemye w kcgd pod RXom aki w centralxnom processore pod RT11. 5) awtor predpoagaet, ~to ma{ina, izwestnaq emu kak dwk-5, smovet rabotatx s dannoj programmoj i ee posledu`}imi wersiqmi. programma RX napisana a.belicem na makroassemblere RT11 (DEC), spressowana programmoj PRESS (DEMISOFT) i otlavena na rabota`}em kcgd dwk-4 (zawod "kwant"). programma oformlena w wide zagruvaemogo modulq RX.SAV ,pri zapuske kotorogo iz nego ~astx (sobstwenno programma) perepisywaetsq w kcgd sredstwami programmy w pzu kcgd, kotoraq dalee peredaet uprawlenie perepisaw{ejsq ~asti i nikak sebq ne proqwlqet do navatiq knopki "ust" ili sboq RXa. kratkie swedeniq o kcgd:  ^^^^^^^^^^^^^^^^^^^^^^^^  kcgd qwlqetsq polnoj ma{inoj, po sisteme komand sowmestimoj s PDP-11 (processor 1801wm2). processor soedinen s magistralx` centralxnogo processora s pomo}x` posledowatelxnogo interfejsa s obeih storon. ob'em ozu 32 kbajt, pzu- ot 8 do 24 kbajt, |lektronnogo diska- 96 kbajt. sostoqnie izobraveniq opredelqetsq sodervaniem "nepereme}aemyh" oblastej ozu (tablic strok) i registrow dostupa k tablice cwetow. sodervanie izobraveniq opredelqetsq sodervaniem |lektronnogo diska i nedostupnoj pamqti, opredelq`}ej razre{enie (4 ili 2 to~ki) dlq kavdogo slowa |krana. razre{enie zawisit ot sostoqniq sootwetstwu`}ego bita registra uprawleniq w moment zapisi dannogo slowa. klawiatura i my{x qwlq`tsq wne{nimi ustrojstwami dlq processora kcgd. ozu, |lektronnyj disk, wne{nie ustrojstwa i registry uprawleniq kcgd nedostupny centralxnomu processoru dwk, swqzx tolxko ~erez interfejs. programma RX, zapustiw{isx w kcgd, podderviwaet ego rabotu i pozwolqet s pomo}x` kodow, peredawaemyh po interfejsu, wypolnqtx razli~nye komandy. parametry kcgd, podderviwaemye RXom: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ format |krana dlq grafiki: 400 * 240 to~ek 16 cwetow iz palitry w 64 cweta. na ~/b monitore tolxko 3 urownq qrkosti. koli~estwo odnowremenno dostupnyh cwetow: 16 dlq slow s nizkim razre{eniem, 4 iz nih dlq slow s wysokim razre{eniem. kavdyj cwet wybiraetsq iz 64 wozmovnyh (4 urownq krasnogo,zelenogo i sinego). w revime wysokogo razre{eniq dostupny tolxko cweta 0,5,10(A) i 16(F),esli rqd cwetow dlq nizkogo razre{eniq s~itatx polnym. pri pereda~e drugih nomerow N nomer cweta wy~islqetsq kak 20 * [ N/4 ]. sistema kodow RXa: odnobajtowye (koi8s) : 377 zaboj \ 376 ~ (^) | 375 } (]) | bolx{ie russkie 374 | (\) | 373 { ([) | (malye latinskie) ! | 341 a (A) | 340 ` (,) / 337  (_) \ 336 ~ (^) | 335 } (]) | malye russkie 334 | (\) | 333 { ([) | (bolx{ie latinskie) ! | 301 a (A) | 300 ` (@) / 277 \ ! > psewdografika 200 / 177 zaboj \ 176 ^ (~) | 175 ] (}) | malye latinskie 174 ! (|) | 173 [ ({) | (bolx{ie russkie) ! | 141 A (a) | 140 , (`) / 137 _ () \ 136 ^ (~) | 135 ] (}) | bolx{ie latinskie 134 \ (|) | 133 [ ({) | (malye russkie) ! | 101 A (a) | 100 @ (`) / 77 \ ! ! 71 9 ! ! ! ! cifry ! znaki 60 0 / ! ! ! 40 probel / 37 \ ! ! 33 ESC ! uprawlq`}ie ! ! 27 wydelenie podskazki ! kody ! ! 17 russkij registr ! 16 latinskij registr ! ! ! 00 / *** w skobkah ukazano izobravenie na russkom registre. mnogobajtowye : -wse komandy VT52 (s poprawkoj na dlinu stroki 100 ili 50 simwolow). -dobawo~nye ESC-kody: <ESC> # perejti w revim 50 simwolow w stroke. <ESC> ! perejti w revim 100 simwolow w stroke. -ESC-] kody:  ]  dopolnitelxnaq komanda. uslownye obozna~eniq w tablice: " " - bajt-znak. (B) - bajt. (W) - slowo (sna~ala mlad{ij bajt,potom star{ij ). * - komanda wypolnena pri zagruzke RXa. +========+===========================+=======================================+ ! bukwa ! argumenty ! komanda ! +========+===========================+=======================================+ ! "@" ! "0" ! wkl 0 stranicu * ! ! +---------------------------+---------------------------------------+ ! ! "1" ! wkl 1 stranicu ! +--------+---------------------------+---------------------------------------+ ! "C" ! "<" [nomer_cweta(B)]  !ustanowka cweta (nomer_cweta-"0".."F"),! ! ! [krasnyj(B)][zelenyj(B)] !krasnyj,zelenyj i sinij- "0".."3" ! ! ! [sinij(B)] ! ! ! +---------------------------+---------------------------------------+ ! ! ">" [nomer_cweta(B)] !zapros cweta (format otweta programmy: ! ! ! ![krasnyj(B)][zelenyj(B)][sinij(B)], ! ! ! !diapazon zna~enij tot ve. ! ! +---------------------------+---------------------------------------+ ! ! "+" ! wkl cwetnyh simwolow ! ! +---------------------------+---------------------------------------+ ! ! "-" ! wykl cwetnyh simwolow * ! ! +---------------------------+---------------------------------------+ ! ! "#" [nomer_cweta(B)] ! ustanowka cweta cwetnyh simwolow ! +--------+---------------------------+---------------------------------------+ ! "D" ! "+" ! wkl poto~e~no risuemyh bukw ! ! +---------------------------+---------------------------------------+ ! ! "-" ! wykl poto~e~no risuemyh bukw * ! ! +---------------------------+---------------------------------------+ ! ! "X" [sme}enie(B)] ! ustanowka sme}eniq poto~e~no risuemyh ! ! ! ! bukw otnositelxno kursora po X ! ! +---------------------------+---------------------------------------+ ! ! "Y" [sme}enie(B)] ! ustanowka sme}eniq poto~e~no risuemyh ! ! ! ! bukw otnositelxno kursora po Y ! +--------+---------------------------+---------------------------------------+ +========+===========================+=======================================+ ! bukwa ! argumenty ! komanda ! +========+===========================+=======================================+ ! "E" ! "/" ! wkl kursora * ! ! +---------------------------+---------------------------------------+ ! ! "!" ! wykl kursora ! ! +---------------------------+---------------------------------------+ ! ! "+" ! wkl wspyhiwaniq kursora * ! ! +---------------------------+---------------------------------------+ ! ! "-" ! wykl wspyhiwaniq kursora ! ! +---------------------------+---------------------------------------+ ! ! "<" ! wkl wspyhiwaniq kursora po CTRL-kodam ! ! +---------------------------+---------------------------------------+ ! ! ">" ! wykl wspyhiwaniq kursora po CTRL-kodam! +------m+---------------------------+---------------------------------------+ ! "I" ! "+" ! wkl inwersii, wykl dop.cweta ! ! ! ! (simwoly cweta "0" na "5" fone) ! ! +---------------------------+---------------------------------------+ ! ! "-" ! wykl inwersii, wykl dop.cweta * ! ! ! ! (simwoly cweta "5" na "0" fone) ! ! +---------------------------+---------------------------------------+ ! ! "<" ! wkl dop.cweta (simwoly cweta "5" na ! ! ! ! "0" fone, zaboj cweta "F" pri wykl ! ! ! ! inwersii, simwoly cweta "A" na "F" ! ! ! ! fone,zaboj cweta "0" pri wkl inwersii)! ! +---------------------------+---------------------------------------+ ! ! ">" ! wykl dop.cweta ! +--------+---------------------------+---------------------------------------+ ! "L" ! "<" [nomer_cweta(B)]  ! liniq (X- 0..399.,Y- 0..220.) ! ! ! [X_na~ala(W)][Y_na~ala(W)]! ! ! ! [X_konca(W)][Y_konca(W)] ! ! +--------+---------------------------+---------------------------------------+ ! "M" ! [naprawlenie(B)][kody(B)] ! ustanowka otweta ot my{i pri ee ! ! ! !_______/ ! pereme}enii w ukazanom naprawlenii ! ! ! V ! (naprawleniq: "A"-wwerh,"B"-wniz, ! ! ! do 12 bajtow ! "C"-wprawo, "D"- wlewo) ! ! +---------------------------+---------------------------------------+ ! ! "+" ! wkl my{i * ! ! +---------------------------+---------------------------------------+ ! ! "-" ! wykl my{i ! +--------+---------------------------+---------------------------------------+ ! "P" ! "<" [nomer_cweta(B)] ! to~ka (X- 0..399.,Y- 0..220.) ! ! ! [X(W)][Y(W)] ! ! +--------+---------------------------+---------------------------------------+ ! "T" ! "!" [X_ishodnyj(W)] ! pereme}enie prqmougolxnogo u~astka ! ! ! [Y_ishodnyj(W)] ! |krana, gorizontalxnoe razre{enie ! ! !  [X_kone~nyj(W)] ! maksimalxnoe (800 to~ek). ! ! ! [X_kone~nyj(W)] ! kordinata X - w slowah (8 to~ek), ! ! ! [razmer_po_X_wprawo(W)] ! koordinata Y - estestwenaq. ! ! ! [razmer_po_Y_wwerh(W)] ! ! ! +---------------------------+---------------------------------------+ ! ! "!" [X_ishodnyj(W)] ! pereme}enie prqmougolxnogo u~astka ! ! ! [Y_ishodnyj(W)] ! |krana, gorizontalxnoe razre{enie ! ! ! [X_kone~nyj(W)] ! minimalxnoe (400 to~ek). ! ! ! [X_kone~nyj(W)] ! kordinata X - w slowah (4 to~ki), ! ! ! [razmer_po_X_wprawo(W)] ! koordinata Y - estestwenaq. ! ! ! [razmer_po_Y_wwerh(W)] ! ! +========+===========================+=======================================+