Прехвърляч-8М
Система за еднопосочно предаване на данни между Правец-82/8М и IBM-PC

      "Прехвърляч-8М" е любителска система за еднопосочно предаване на данни от Правец-82/8М (Apple-2) към IBM-PC. Разработена е през май-юни 2001 г. от Тодор Илиев Арнаудов (Тош) с цел да "спаси" неговите собствени програми, писани на Правец-8М (Емчо). Използва изхода за запис на касетофон на "осмака" и входа за микрофон на "Мацето".
      Съществуват много по-съвършени, двупосочни системи за обмен на данни между Apple-2 и IBM-PC. Някои си служат с последователния интерфейс RS-232, но за да се използва такова средство, при '8М е нужна разширителна платка, с която авторът не разполага; други системи обменят данни през няколкото цифрови входове и изходи на Правеца и паралелния вход-изход на IBM-PC. Такава, по-производителна система е била проектирана от Ивайло Белчев през 1994 (той е създател на играта "Космически боец", на красивият графичен редактор "Graphic Master", среда за програмиране на "Forth" - всичките достъпни от Мрежата като информ. образи на дискети), но през годините е загубена.
      Най-лесният начин за прехвърляне на дискетите ("гъвчетата"), според наличните технически възможности, достъпната техническа документация и първото хрумване на автора, беше чрез звук, затова именно той бе осъществен.
      Алгоритмите за Правец са на BASIC и машинен език. Тези за IBM-PC са разработени първоначално на Borland PASCAL за среда MS-DOS, а по-късно на "C" с графичен потребителски интерфейс в среда "Windows-32", под която работи първата версия, предназначена за потребители - 1.0. Тя е обявена близо 18 месеца след първото успешно прехвърляне на дискета - през декември 2002 г.
      Приложението е предназначено да помогне за спасяването на информация, български програми и игри, останали от незабравимите "осмачета".
      "Прехвърляч-8М", съдържащ упътване за работа и играта "Нашествие", може да се намери в сп. "Свещеният сметач" - http://eim.hit.bg/preh8m и в електронната библиотека "Българските сметачи" - http://tosh.data.bg.

Забележка: Apple-2, Apple-II, Apple//, Ябълката са равностойни по значение и се използват за разнообразие.
Кбит - 1024 бита, КБ - 1024 байта
Някои думи от сметачобългарското ("юнашко") наречие, използвани в това описание:
Осмак, осмаче - Правец-82/8М/8А/8Е/8С или съвместим.
Сметач - компютър, сметаче - микрокомпютър, вършаче - микропроцесор, вседържец - операц.система
Маце - сметач, съвместим с IBM-PC.
Вижте сп. "Свещеният сметач" за програмата Езикотворец - речник по сметачобългарски, статии, стихове и разкази, писани на юнашки.
 

Технически особености на версия 1.0

Основни черти

      В същността си системата представлява модем, работещ със закъснение, който използва за работата си апаратни и програмни средства на два различни, несъвместими компютъра. Връзката се осъществява чрез два проводника, включени от едната страна към аналогов изход (модулатор, Правец-8М), "боднати" направо в накрайника по DIN, а от другата към аналогов вход (демодулатор, Маце), чрез приспособител - стандартен накрайник за звук (audiojack). Не е известно максималното допустимо разстояние. "Прехвърляч" се използва успешно от създателя си с проводник с дължина 2-3 м.
Не се извършва никакво компресиране на информацията и изпращаните пакети са "голи" - не съдържат в себе си заглавна част и за правилната последователност при възстановяването на предадената информация се грижи човек. Ако се издава следваща версия, може да се помисли за просто компресиране - ако по-бавните знаци (при тази система са единиците) са повече, се разменят с по-бързите преди да се предадат, а след приемането се обръщат, за да се върне първоначалният им вид - така се осигурява скорост, винаги по-висока или равна на статистически очакваната средна (1500 бит/с). Вторият лесно осъществим метод е кодиране на последователности от еднакви знаци (най-удобно 8-битови, за да работим направо с регистрите на 6502) със специален знак и брой повторения, което води до огромно спестяване на време, при предаване на области с повтарящи се байтове. И в двата случая ще е необходимо съставянето на прост протокол, защото дължината на пакета ще стане променлива, и той ще трябва да съдържа в себе си служебни данни - за своя размер и вида на използваната компресия.
      Скоростта при предаване на данните се колебае между 1000 и 2000 бит/с, в зависимост от съотношението на нули и единици в данните. Средно 1.5 Кбит/с.
      Към времето на ефективно предаване обаче се добавят още:

  • Декодиране, което има най-малък дял: само няколко десетки секунди дори на iP54C/90 (Pentium-90)
  • Синхронизация: 90 секунди
  • Четене от дискетата: 110-120 секунди
Затова времето за прехвърляне на една дискета от 140 КБ (1120 Кбит), запълнена със случайна информация (нито само нули, нито само единици), е около 15 минути или повече, като средната скорост пада до около 1.2 - 1.3 Кбит/с или по-малко.

Правецът ("Осмачето") е източник на информацията и модулатор, а Мацето играе ролята на демодулатор и потребител на данните.

1. Описание на частта за Правец-82
1.1. Програмна част

      Програмата за 8-битовия сметач се състои от управляващ алгоритъм на BASIC и няколко подпрограми на машинен език, които работят с апаратурата на ниско равнище. Те се използват за четене на сектор от дискетата и запис на област от паметта на магнитна лента.
      Управляващата програма взаимодейства с потребителя, ръководи последователното прочитане на дискетата, сектор по сектор, и изпращането на поредния къс данни към Мацето.
      "Прехвърляч" е предназначен за операционната система APPLESOFT DOS 3.3. Форматираните с нея дискети са разделени логически на 35 пътечки по 16 сектора, всеки съдържащ 256 байта - общо 143360 байта (140 КБ).
      Системата разделя логически дискетата на 9 части: 8 с размер 16 КБ и един - 12 КБ. Всеки 16 КБ-ов блок се състои от 4 цели пътечки, а последният - от 3. Обемът на паметта на Правец-82 (около 36 КБ след зареждане на DOS) позволява да се предават наведнъж и по-големи части, напр. 24 КБ - тогава делението ще е на 6: 5 части по 6 пътечки и една с 5. Във версия 1.0 тази възможност не е изпълнена програмно и за целта е необходимо потребителят да промени управляващата програма. По-големият размер обаче води до загуба на повече време, ако се наложи повторно предаване на блок с данни, защото системата може да разбере за наличието на грешка чак след приемане и декодиране на цял блок. Да се работи с твърде малки размери на пакета също е необосновано, тъй като всяко предаване включва 10-секунден синхронизиращ сигнал, а за толкова време могат да се предадат около 15 Кбит.

1.2. Модулатор

        Единствената апаратна част от него представлява D-тригер, който сменя състоянието си при обръщение към адрес $C020.
Скоростта на предаване може да се подобри, като се напише нов модулатор, който да работи с по-високи честоти (Apple// е проектиран през 70-те години за достоверен запис на касети с тогавашното качество) и да предава по-кратък синхронизиращ сигнал, но в тази версия е използван готовият честотен модулатор за запис на данни на касетофон.

Използват се 3 честоти:

  1. Синхронизираща (тон-сигнал) - 770 Hz
  2. Лог. единица - 1000 Hz
  3. Лог. нула - 2000 Hz
Предаването на област от паметат започва с 10-секунден "тон сигнал" с период на импулсите 1.3 ms. Знакът, указващ началото на данните (пусков бит), е "0" - правоъгълен импулс с период 0.5 ms. След него данните се изпращат "голи", без никаква служебна информация. Предаването завършва с 8-битова контролна сума, която може да се използва за проверка на верността на данните. Демодулаторът на Мацето обаче не я взима предвид, а само следи размера на декодирания блок - ако е различен от 16384 или 12288, на потребителя се съобщава, че съответното "парче" (от 1 до 9) е повредено и той трябва да го изпрати отново, чрез програмата за Правец.

2. Страната на Мацето
2.1. Апаратна и програмна част

        Изходният сигнал, получен от Правеца, се подава на входа за микрофон на звуковата карта, която се използва като аналогово-цифров преобразувател. Средствата за звукозапис не са вградени в приложението за Маце, използва се каква да е програма за запис на звук, чрез която звуковият образ на предадените блокове с данни се пренася на твърдия диск във формат с импулсно-кодова модулация при честота на дискретизация 8 кХц и точност 8 бита - това са най-ниските параметри на сигнала, които са по силите на звуковата платка, с която е разработена системата - ISA Opti-931. Някои зв. карти имат възможност да работят и с честота 4 кХц, която също е достатъчно висока, защото предаваният аналогов сигнал е в обхвата на 2 кХц. Oбемът на двоичния звуков образ на един 16 КБ-ов блок при скорост на записа 8 КБ/сек, която се използва сега, е 600-700 КБ, той би се смалил два пъти, ако се използва 4 кХц-ово дискретизиране. Така обаче ще се понижи шумоустойчивостта, която при 8 кХц има запас и дава възможност на системата да работи правилно дори само с един свързващ проводник, без маса, въпреки че тогава нивото на брума става осезателно.
        Демодулаторът не е универсален - специализиран е за точно 8000/8 и параметрите на описания по-горе сигнал, което му позволява да се вмести в по-малко от 300 реда на "C", включващи и функциите за четене от диска и запис на него и усилване на записания сигнал, ако е необходимо.
      Чрез облика (интерфейса) на програмата, потребителят съобщава къде се намират звукозаписите с приетата информация, или "донася" с мишката желания запис в прозореца на приложението. След като получи информацията за местоположението на звукозаписите, програмата използва демодулатора си и декодира записите. Извеждат се съответни файлове ("свитъци", според терминологията на "Прехвърляч") - 1,2,3,...9, които съдържат информацията, предадена от Правеца.
След като се приемат и преобразуват деветте части, те се "сглобяват" в 140 КБ-ов информационен образ на дискетата. С него могат да работят подражателите на Apple-II, за които този "свитък" представлява дискета. (Системата открива само несъответствие в дължината на блоковете - наличието на "объркани" знаци излиза наяве едва след сглобяване, при работа с дискетата).

Подражателите (наричани и с лат. термин "emulator") са програми, които "подражават" на поведението на машина, апаратно или програмно несъвместима с тази, за която са написани. Съставянето им е интересна работа, изискваща цялостно и пълно познаване на програмния модел на целевата машина - чудесно насърчение за изучаване на подробностите в работата на сметачите.
Ябълката (Apple][, Apple//e, Apple//e+, Apple//c, Apple//c+...) е легендарно сметаче с легендарно вършаче (6502). С разрешение и без разрешение от създателите й ("законно" и "незаконно") са правени много подобия, повечето от тях - почти пълни схемни копия ("клонинги"). Доста сполучливи машини са, например, Правец-82/8М/8А/8Е/8С. В някои от тях се използват нови схемни решения - напр. в '8М допълнителното вършаче Z80, използвано за работа с вседържец CP/M, е вградено направо в дъното, вместо да се добавя с разшир. платка.
Устройството на машините от серията Apple// е описвано в книги навсякъде по света, и то е добре известно на техните почитатели, които водени от желанието да използват Ябълката и на Мацето си, са сътворили много подражатели. Значителен дял имат българските. За два от тях, най-старите, авторът само е чел: "CRoss Debugger" от Николай Николов и "Apl" от Тодор Тодоров (смята се, че той, наричан и "Commander Tosh", е Dark Avenger - Мрачният отмъстител, който се "развилня" в края на 80-те години със своите разрушителни вируси).

Два други емулатора се намират лесно в Мрежата:
  • Appler, създаден от Емил Дочевски и Александър Паталенски, е един от най-бързите подражатели на Apple// - Писан е изцяло на асемблер за i386-SX (само целочислени действия) и ОС MS-DOS, цялостният му изходен код е предоставен на потребителя; осигурява пълноскоростно подражание на Apple-2 дори на i386-SX/16.
  • Apple Oasis работи под MS-Windows и е широко разпространен. Авторът му - Теодор Ангелов продължава да издава нови версии.

© Тодор Илиев Арнаудов (Тош, TodProg). Пловдив, 12 II 2003
Пиши на Тош: dzbe@mail.bg, todprog@yahoo.com
Чети списание Свещеният сметач: http://eim.hit.bg
Дай мнението си за "Прехвърляч-8М": http://bgit.net