/Pravetz8M_Prehvurlyach

Transfer diskettes from Apple][ and its clones like Pravetz-8M and 82 through the audio cassette port. Written in C for Win32 and BASIC for the Apple][. Прехвърляне на дискети от Правец-8М/82 към PC. Код на C, BASIC с обяснения на български език. Документация на български.

Primary LanguageC

Pravetz8M_Prehvurlyach

ПРЕХВЪРЛЯЧ-8М. ВЕРСИЯ 1.1

image

Transfer diskettes from Apple][ and its clones like Pravetz-8M and 82 through the audio cassette port. Code in C and BASIC. Documentation in HTML.

ПРЕХВЪРЛЯЧ-8М. ВЕРСИЯ 1.1

Автор: Тодор Илиев Арнаудов - Тош/TodProg

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

Първа версия: 6.2001; Pascal (MS DOS) и BASIC (Apple DOS 3.3) + RWTS (четене на сектор)

Първа публикувана за други потребители ("официална"): 1.0, 12.2002 (C, MS Windows-32, BASIC, RWTS)

Поправка: 1.1, 1.2004

Развитие на Windows версията

9.8.2002 - приемане на провлачени записи.

22.12.2002 - много работа наведнъж, за да се събере приложение

Засега всичко накуп. Може би ще се раздели на съставки.

26.12.2002 - първа достъпна за потребители версия

10.1.2004 - версия 1.1; поправена грешка при декодиране при първи знак; разкрити глаголи (open source)

  • Статии от сп. "Свещеният сметач"

Свещеният сметач - списанието и на осмачетата...

БРОЙ - 19 (декември 2002) Брой 19 Свещеният сметач https://eim.twenkid.com/old/eim19/8m.htm

Българските сметачи

Прехвърляч-8М - спасява гъвчета за осмачета от забрава

Чети повече за ПРЕХВЪРЛЯЧ-8М

  • Изтегли ПРЕХВЪРЛЯЧ-8М - 203 КБ. Zip-архив, включващ необходимите програми за Правец и PC, инструкции за работа с тях и за свързването на проводниците между изхода за касетофон на Правеца и входа за микрофон на PC-то, примерни звукозаписи, дискета с играта "Нашествие".

  • "Прехвърляч-8М" е система за еднопосочно предаване на данни от Правец-82/8М (Apple//) към PC. Разработена е през май-юни 2001 г. от Тодор Арнаудов (Тош, TodProg), но работи "под земята". Сега (декември 2002 г.) "надзърта" от дупката, за да види дали да си остане там...

  • "Прехвърляч-8М" - наборът мекици за Осмак и Маце действа от около година и половина, а изобщо не съм пипал глаголищата от месеци, но е "новина", защото досега само няколко души знаеха за него, а аз бях (може и да си остана)единственият му потребител.

  • Друга новина е, че едно гъвче с играта "Нашествие", пренесено с "Прехвърляч-8M", може да се свали от тук - все още скрито кътче на Българските сметачи. Там могат да се видят и входните платна на "Строител" и "Ловна стрелба" (без техните гъвчета). Връзки към подражатели за Apple// има навсякъде, например в Свещеният_сметач/игри

Прехвърляч-8М

  • Средства за еднопосочно предаване на данни от сметаче, съвместимо с Apple//, към PC.
  • Кръстено е на името на личния ми Емчо (пореден номер 84011/1986), за когото бе създаден. Първите редове на частите и за Ябълка, и за Маце са въведени на 22 май 2001 г. и, тъй като работата, която "Прехвърляч" върши не е особено сложна, след няколко дни имаше работещо ядро. Появяваше се обаче странна грешка в преобразователя за Мацето, която довеждаше до "израждания" в сглобяваните гъвчета. Докато открия причината за нея, стана 22 юни, когато бе разчетена първата дискета, в която всичко беше наред - "Черна-1"...
  • Ябълката трябва да има изход за звуков запис на данни - от oсмиците на това условие отговарят, мисля, само Правец-8М и Правец-82, както и първообразите на '82 - "ИМКО" и "ИМКО-2", които обаче не са произвеждани в промишлени количества. В следващите разновидности този изход е сметнат за излишен.
  • Приложението не е напълно обезчовечено (автоматизирано), нуждае се и от "ръчна работа". Не е и практично, защото със сигурност много по-изпипано би било да се използват сметачните (цифрови) вход-изходи на Осмицата с TTL-равнища и цифровите входове на Мацето.
  • Има системи, които използват разширителни платки RS-232 за Apple// (или вградени в дъното), за да предават данни към други сметачи през кабел за модем, при което работата е по-лесна, по-сигурна, по-бърза... Някои вълшебници може би дори използват 5.25" гъвчари на мацета, които с подходящо предписание разчитат и гъвчета за Ябълка?
  • Нямах нито съобщителна платка за RS-232, нито 5" гъвчарче, както и необходимите знания и умения, за да използвам портовете на Мацето и да направя нещо подобно на системата на Ивайло Белчев, с когото се опитах да обменя опит преди около година и половина, малко преди да се захвана с "Прехвърляч". Опитах се да открия някой, който да ми е свършил работата - Иво спомена, че през '94 г. е прехвърлил своите гъвчета през паралелния вход-изход за печатач на Мацето и сметачните вход-изходи на осмака, но предписанията били загубени... Той бе надеждата ми за лесен изход и като не го открих, ми оставаше да направя "Прехвърляч" както си знам.
  • Частта върху Емчото (Правец-8М) е на BASIC, като използва и стихчето "RWTS" за работа с гъвчаря на ниско равнище.
  • Използват се вградените в постоянната памет стихчета за запис на двоични данни върху привличаща ивица. (От "Monitor" се извиква с реда: *xxxx.yyyyW, където "xxxx" и "yyyy" са началният и крайният адрес от паметта).
  • Скоростта на предаване е 1000-2000 бита/сек, зависима от данните. "Ябълката" започва предаването с 10-секунден "водещ тон" - правоъгълни импулси с честота 770 Хц ("Прехвърляч"-ът има нужда от него, но и секунда стига). Пусковият бит е "0" - честотата му е 2 kHz ("1" се превежда с 1 kHz). Следват "чистите данни" - без никакви служебни знаци, а след тях - байт с "контролна сума" за проверка на верността на информацията. Засега глаголището не я взима предвид - проверката се извършва "на око" - по размера на изходния свитък, който трябва да бъде 16384 или 12288 байта, или пък ако размерът е точен - по нетръгването на някоя мекичка от гъвчето.
  • Тъй като връзката е еднопосочна, при грешка е необходимо наново да се предаде целият повреден къс данни.
  • Глаголището за Осмицата чете гъвчето на части по 16 КБ (с изключение на последната, която е 12: 8 * 16 + 12 = 140) и изпраща всяка част "по жицата" - достатъчна е една, без замасяване, която стига до звуковата платка на Мацето - необходимо е подходящо пъхало, като това за слушалки (не знам как се води стандарта), към което да се свърже проводникът, който излиза от Осмицата; едно предаване трае минута-две. При съвършено развитие, без повторни предавания, са необходими по-малко от 15 минути за страна на гъвче.
  • Засега не се извършва никакво предварително, макар и най-просто свиване на данните - те се предават "сурови". Сещам се за два лесно осъществими начини за ускоряване на предаването - двоично "обръщане" на данните, ако по-бързопредаваните битове - "0", са по-малко на брой в първоначалния им вид; и търсене на дълги поредици с еднакви знаци (байтове, съобразявайки се с 8-битовата дума на 6502), които да се съкращават до няколко байта: брой различни байта, следват различните байтове; брой на повтарящите се байтове - съответната стойност.
  • За да има свиване обаче ще трябва да се измисли и някакъв прост протокол, защото дължината на късовете ще стане променлива и ще се пращат служебни данни. Печалбата ще си струва най-вече при изпращане на празни дялове от гъвчета, а при запълнени с произволни данни, най-малко, винаги ще се постига скорост от поне 1500 бита/сек. Не знам обаче дали ползата ще си струва работата.
  • Звукът се записва от човека с външна мекица във въоблик 8 kHz/8-bit, импулсно-кодова модулация (PCM). Началото на свитъка, следователно и заглавната част, се прескача от "Прехвърляч" в сегашната разновидност, така че може да се използва и "суров звук" (RAW).
  • Свитъците със звука се подават на глаголището за Мацето, което от звукозаписите извежда нов свитък с данните. Има разновидности за DOS на "Pascal" и за Windows на "C".
  • След като се получат и преведат, парчетата от гъвчето трябва да се слеят - правя го със свитък с казби за вседържеца, защото не съм го вградил глаголно:

copy /b 1.d+2.d+ ...+9.d /b nomer10.dsk

  • И така, ако информацията е пренесена без грешки, подражателят за Apple// кара мекичките от старите гъвчета да оживеят отново!

  • Ако има хора, които пазят милото си осмаче и се чудят как да запазят данните си на по-сигурен носител от гъвчета, или имат на гъвчетата си някоя [българска] игра, която липсва на ftp.apple.asimov.net или където и да било, ще се стегна да събера мекичките в приложение, което може да се използва от потребители.

Прехвърляч-8М

https://www.oocities.org/todprog/preh8m/8m-tech.htm

Система за еднопосочно предаване на данни между Правец-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<style>