Skip to content

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 с обяснения на български език. Документация на български.

Twenkid/Pravetz8M_Prehvurlyach

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 

Pravetz8M_Prehvurlyach

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>

About

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 с обяснения на български език. Документация на български.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published