- Правильный универсальный блок ИРПС-ТТЛ для БК
-
? MM - 25.02.2017 18:42
Э3 универсального блока ИРПС с ТТЛ сигналами для БК :
https://itmages.ru/image/view/5501217/adc730be
При использовании с БК11/М 1533ЛЛ1 не устанавливать, брать сигнал BS7 с разъема МПИ.
При использовании кварца 7500 кгц и установке скорости "19200" итоговая скорость будет 31.25 Кбод - МИДИ.
( Т.е. можно подключить 26-пин аддон от звуковой карты ИБМ ЭВМ ) или использовать БК как МИДИ-клаву к ИБМ-ЭВМ.)
-
? BD - 25.02.2017 19:48
А поделитесь сокровенными знаниями: если на этой плате http://savepic.net/9008421.jpg ВДМ1-8 и НР1-4-9 запаять, как ставить переключалки на 19200, например (4800, 2400)? Так и не нашел...
-
? BD - 25.02.2017 20:26
В принципе вот http://bk0010.org/forum/?id=4464&old
в моем блоке просто FR0 и FR2 дорожками на землю заведены...
-
? MM - 25.02.2017 21:30
О, спасибо!
А то МПСС не всегда под руками...
https://rutracker.cr/forum/viewtopic.php?t=4440223
( примерно 1 км )
*
Единственное, что запомнилось - "на 9600 - в шахматном порядке"
*
На работе только ТО от МС1201, где скорости свыше 9600 вообще не обозначены по идеологическм причинам.
-
? BD - 25.02.2017 23:12
035 на 19200 не тянет. Ошибок столько, что получается медленнее 9600. Надо еще кварц попробовать на 9216 кгц ))
Ну, когда внедрите в производство ИРПС на 065, я бы купил, да и не только я, думаю. Вон TheGWBV уже сколько лет мучается ))
-
? MM - 25.02.2017 23:34
Насчет 035 - она отлично тянет на 57600, но смаааленьким замечанием - "Без совковых, самых медленных в мире, оптопар " - т.е. с ТТЛ-уровнями.
Насчет 2х кварца - господин Anonymous как-то разочек пробовал - вроде как идет, правда 065.
Я бы предположил, что на тираже девайсов уже 7500 кгц потянет со скрипом...
*
Блок ИРПС по Э3 выше пока как раз не планируется тиражировать. Просто для себя опубликовал - иногда приходится собирать его на проволочках.
Но если будет разовая потребность хотя бы 20 шт.ДПП по ~400 руб - закажу разработку трекинга и тираж. В т.ч.с возможностью нацеплять поверх КНГМД + 2 шт.проволочки VIRQ и IAKO (от ВП1-014).
В дополнение даже еще какую-то хрень можно развести - типа МАХ232 и классический высоковольтный разъем.
И даже еще чего-нибуть. Ну например преобразователь для выработки плюс минус 12 вольт 20 ма стабильных - для 26-пин МИДИ-модуля нужно.
Или типо как СОЗУ для БК0010/11М развести - чтобы страждущие могли на нём "Бейсик" реализовать. Родной от БК11М.
( Для СОЗУ понадобится и WTBT выводить на гребенку ).
-
? BD - 26.02.2017 00:59
мда... ну, будут выходные, и если асилю до митино скататься - попробую на монтажной плате спаять ИРПС и разъем для контроллера сразу. правда двойник МПИ в моем исполнении получился круче жесткого порно, но работает )) http://savepic.net/9009324.jpg
-
? BD - 04.03.2017 20:07
Схему немного подрисовал http://savepic.net/9029478.jpg
Спаял макет http://savepic.net/9034598.jpg
Кварц поставил 9.216МГц + делитель на ТМ2, чтобы не лишаться скорости 57600. Скажем так, на 115200 в текстовом терминале все работает, ВП'шка не греется, но... все БК'шные терминалки писаны под ВП 035 и не выставляют сигнал готовности. Естественно, при передаче файлов на большой скорости пока идет какой-либо вывод или запись на диск буфер (обычно 512 байт) быстро кончается-ошибка-повторная передача куска. CPS>3000 не достигается ну никак. Надо все заново переписывать. А так, хочешь USB, хочешь Wi-Fi адаптер от ардуино втыкай...
Кстати, может получится на старости лет освоить PCAD, поделился бы кто проверенными .pcb-шками (pcad 200Х желательно) где есть дырки под 1801ВП1 / СНП58-64 угловой, может даже уже с разводкой под системную магистраль?
-
? MM - 04.03.2017 20:30
Вслав г. Киев предлагает свои наработки, в т.ч. ВП1-065, ВМки и даже 155 ИС :
http://zx-pk.ru/threads/24193-priglashaetsya-entuziast-bkshnik-dlya-proektirovaniya-pechatnykh-plat-v-p-cad2006.html?p=750155&viewfull=1#post750155
Для P-CAD2006, архивчик. На фото выше как раз его ВП1-065. Трекинг не смотрел.
*
На подборке библиотек из торрента есть некотрые вопросы по нумерации выводов для мелкоты 1533 серии, типа ИД7, ИД4 и т.п.
*
Для ВП1-065 есть метод изменения вектора путем добавления бит - как в телеграфном блоке от БК11/М.
*
В ВП1-065 сигнал готовности аппаратный и никак не управляемый с ЦП ЭВМ, в отличии от програмного на ИБМ ЭВМ.
-
? BD - 11.03.2017 08:30
Кое-как плату нарисовал, связи вписывал руками, глядя на схему на бумаге, небось ошибок дохрена.
http://savepic.net/9064959.jpg
http://savepic.net/9065983.jpg
http://savepic.net/9054719.jpg
Чего еще впихнуть? Места много, если под стандартный корпус, а то доставка DHL из китая стоит дороже самих плат ))
-
? MM - 11.03.2017 13:54
Можно установить:
1. Парочка дополнительных кварцев, выбираемых перемычками. Возможные частоты - 4608, 7500, ....
2. Боковой разъем для навешивания платы КНГМД 7.102.122. По бокам линейки по 2 шт. резерных позиции -на случай навешивания ТЛГ на КНГМД - к ним пойдут сигналы VIRQ, IAKO 014, DCLO A1, WTBT
3. Колодку под ПЗУ, 23 выв. через резистор 2.2 ком на общий, и одновременно на выборку 4-й страницы ПЗУ на разъеме МПИ.
4. Дополнительную секцию выключателя под выв адреса ВП1 - появится еще 1 шт. адрес.
-
? MM - 11.03.2017 14:08
Как максимум - 26-пин разъем для МИДИ-синтезатора, с подводкой высоковольтных плюс и минус с МАХ232
И еще позицию под 10-пин гребенку ОНП-КГ-56-10 , неразведенную.
Можно так же предусмотреть позиции под резисторы-подтяжки ко входам ЛП5 - на случай использования оптронов.
Ну и несколько неподключенных монтажных отверстий - может, кто оптроны навесит, и т.п. компоненты.
*
Улучшать можно бесконечно - но обычно пользу приносят первые пара вариантов...
-
? BD - 14.03.2017 12:01
Чтобы не мучаться, все ужал и впихнул СНП58-64 с дубляжем всех 64 контактов МПИ, если надо в него и контроллер, и плату с ПЗУшками можно воткнуть ))
http://savepic.net/9057456.jpg
Думаю сколько в Гонконге плат заказать, просто когда народ прозреет, что с БКхи можно по wi-fi в интернете шариться и управлять всякими новомодными датчиками ардуино - как всегда мало будет. Правда софт пару месяцев делать еще.
-
? Shoсk aka April22 - 14.03.2017 16:16
Я бы взял одну . а то может и две платки :-) оживить пару "Досок"
одну свою , вторую от PAW
-
? photon1984@ - 14.03.2017 21:28
И я бы взял
-
? Terra - 14.03.2017 22:53
Была мысля тоже esp 8266 подрубить или ethernet шилд от ардуино. Вот если бы ещё загрузку файлов как QBUS/MPI Blaster.
-
? MM - 14.03.2017 23:17
По поводу трекинга.
Если сигналы между разъемами СНП58-64 идут с 1-й стороны ДПП, то 2-ю сторону целесообразно залить 100% общим, и сделать ширину треков порядка 0.5 миллиметра - что бы образовавшаяся конструктивная емкость ( с общим проводом ) снижала звон на МПИ.
И по-возможности сделать расстояние между СНП минимальным.
-
? BD - 15.03.2017 02:09
Ну окончательный вариант пусть будет так: http://savepic.net/9082087.jpg
Сама схема 0.5мм уже не разводится, только 0.3мм, а уменьшать расстояние между дорожками менее 0.254мм наверняка не стоит.
Кстати, понижалка уровня ТТЛ для ESP8266 сделана на 3х последовательно соединенных диодах, прекрасно работает. Честно пытался паять транзистор BSS138 https://lib.chipdip.ru/221/DOC000221964.jpg чуть глаза не вывалились )) Ну АТ-командами можно к роутеру подцепиться и даже загрузить HTML этой страницы. Только на БК нет ни одной терминалки понимающей UTF-8 и что-либо прочесть не получится пока ))
-
? BD - 15.03.2017 02:15
Через 2-3 дня привезут тестовый заказик с платками простого двойника МПИ, посмотрим на качество, если ОК, закажу 30 шт. А ВП-шки и логику закупим у svinka (мне до него на машине 20 мин. ехать).
-
? MM - 15.03.2017 04:47
В топологии есть ошибка - зеркалирование 2-го разъема СНП.
Примерьте расположение контактов на натуральных разъемах.
-
? BD - 15.03.2017 11:57
Вот что значит наметанный глаз... Правда я первый раз плату рисую ))
http://savepic.net/9084146.jpg
Файл PcbDoc выложил тут (Altrium designer 17)
https://yadi.sk/d/WcaEeOWu3Frbzd
-
? MM - 15.03.2017 13:01
Неплохо бы на исправленном варианте все-таки залить общим др. сторону относительно треков между СНП - это существенно улучшит параметры БКшки в части разгона, особенно для БК0010-01 под клаву МС7008.
*
Может все-таки где-нибуть, с краюшку, поместится гребенка на 10 пин шаг 2.50 без трекинга ?
*
Посадка под кварец маловата. Совок может и не уместится...
*
Разъём RS-232 можно выдвинуть к краю, т.к. он зазря расходует место.
* * *
Рисую топологию года так с 1982, на коммерческой основе - с 1986. В коммунистические времена по большей части на миллиметровке карандашиками - красным и зеленым. САПР к ДВК-4 раздобыть так и не удалось, т.к. срок поставки был намечен на 2-е полугодие 1992 г. когда наш отдел уже стал серьезно курочить комнаты конструкторов с Квантами-4 ( МС1201.04 + КЦГД + КЖД + КМД + полуплата КТЛК или ЛС , сервер - 386-ДХ33 ), которые так надеялись загрузить работами с САПР... Машинки были 1990-1991 г.в.
Крайнее десятилетие процесс рисования кистью по мольберу разонравился - стараюсь поручить художественные работы более свободным художникам.
*
Как я писал ранее, в начале 1992 г. коллективом конструкторов реформы были восприняты с необыкновенно большим энтузиазмом - ведь закрыли главк НЦ, который буквально насиловал всех и каждого ( в ОКБ Э.) по нескольку раз в месяц. Но уже в мае 1992 г.руководство провело собрание с коллективом, и все вышли из зала, как будто с отрубленными руками - "денех нет, заказов нет. Можно приходить не строго к 8.00, а являться до 10.00, сбегать с 15.00 вместо строжайших 17 час 12 минут ". Позднее, осенью 1992 г. провели чрезвычайное собрание коллектива ОКБ, где сообщили о мерах поддержки остающихся конструкторов - РМ уволившихся конструкторов будут делиться на части в подарок коллегам, т.к.в фонде оплаты труда появилась бреш - мало того, что он сократился по покупательной способности на порядок, так он еще и совсем опустел...
Уже в 1993 г.крушили не глядя комнатами - если кто в данный момет не работает за компом/ЧПУ - на драги, т.к. зарплату формально платили, но не увеличили с конца 1991 г. - т.е. всей выплаты вполне хватало только на 1 шт. поход за продуктами со средней сумочкой, без икры. Конечно, оставались по 2-3 экз.каждого ЧПУ/САПР - так, на всякий случай... ( из ~ 150 РМ САПР и ~ 200 РМ ЧПУ ).
К 1995 г.из 1200 чел в ОКБ Э.осталось менее 100 чел, а к 1997 - порядка 70 + договорники типа меня, порядка 10 чел.
По размеру оффисных площадей в 1991 г. ОКБ было примерно как 4 средние 2-х этажные школы + участки по цехам. ( в 1992 г. бывшая 4-я школа вроде как сгорела уже, но почему-то ДВК-2 валялись не особо сожженые... )
-
? MM - 15.03.2017 13:34
Еще малость оффтопа.
В 1993-1994 г.бывший НЦ "бросил собаке кость", хотя уже ФГУПы никак не были связаны - это, говорят, Лужок выбил у Алкаша немного бабок, мотивируя тем, что Зеленоград на грани голодного бунта и ПОЛНОЙ остановки всех предприятий бывшего МЭП. Ну и с перепугу, по старой памяти в ОКБ Э. разместили заказ на разработку ... КР564 ИС...
Я, конечно, потешался над ОКРом, но делал умный и деловой вид, когда оставшиеся работники 14-го отдела ОКБ перетирали бритовкой "К561" на "КР564", на ксероксах с калек 561-й серии. Да, еще, по-моему, шаг выводов меняли с 2.50 на 2.54 - тоже бритовкой. Рамочки, кстати, так и не сделали на 2.54 - т.к. цеховые уже разбежались, по крайней мере чел, понимающий в изготовлении штампов - на вокзале П-Посада он работал круглосуточным продавцом консервов и Водки в палаточке, брал до 100% всех смен, только в 8-9 час утра ходил домой постирать и принять душ.
-
? BD - 15.03.2017 14:40
Впихнул http://savepic.net/9053195.jpg
Точно 2.50, а не 2.54? Разведется легко, если окресности MAX232 и много дорог до МПИ тянуть не надо. Куда-что?
-
? BD - 15.03.2017 14:42
А DB-9 специально по центру, чтоб влазил в корпус старого ИРПС без лишних пропилов.
-
? BD - 17.03.2017 09:00
Короче так http://savepic.net/9051256.jpg
Гербер https://yadi.sk/d/lGcqz0993G4J46
Попробую податься в Резонит. В Гонконге тестовый заказ DHL принял доставку на домашний адрес физ.лица, на нашей таможне отправили обратно ))
Так что быстро и дешево (вышло бы 230 рэ за плату) не получилось, а связываться с обычной китайской и нашей почтой эпопея на пару месяцев. До сих пор не могу получить посылку из Москвы в область отправленную еще 25.02.2017 ))
-
? CD-Inc - 18.03.2017 01:54
Я переходник для Амиги заказывал здесь: http://www.radiokot.ru/forum/viewtopic.php?p=2853342#p2853342
4 дня делали плюс пересыл с Казани. Для платы на тесты цены гуманные.
Посылаешь исходник, говорят цену.
А так да, для партии Китай вне конкуренции, хоть и Монгол-Шуудан-Аир-Пост.
-
? BD - 18.03.2017 05:23
Все в работе уже, в Резоните. В среду будет готово. Они тоже молодцы, что изначально все расчеты без НДС - ты узнаешь только получив счет )) Итого со срочностью получается 570 рэ за плату при тираже 20 шт.
-
? BD - 07.04.2017 23:07
Дошли руки до тестирования, про 115200 можно забыть, как страшный сон, только 57600 ))
БК11М на 4мгц не может обработать без пропусков некоторых байт на скорости 115200 по прерыванию такое:
MOV #75400, 177716
MOVB @IN,177560
INC IN
МОV #16000, 177716
RTI
без смены страниц - пожалуйста, запишется в буфер, который при большом файле даже обнулить не успеешь. 57600 наша скорость, даже на БК10 работает.
Это еше не все. Тестировал изначально на Voland'овской БК - все было хорошо. Воткнул в БК10 - нет готовности приемника и все! Ради чего боролись? (RR на ВП1-065). Померял напряжение - 1.18v. Вот как так? Воткнул БК11м оригинальную - тот же результат. Причем на всех экземплярах. Замкнул резистор R6 - все заработало из этой схемы http://savepic.net/9029478.jpg
вот так http://savepic.net/9165479.jpg
Теперь все работает. Платки ИРПС на ВП1-065 в сборе раздаются бесплатно людям пообещавщим хотя б терминалку с UTF-8 и вырезанием тегов HТМL.
Или барыжу по 1800 рэ.
-
? MM - 08.04.2017 00:23
Цитата :
" MOVB @IN,177560
INC IN "
Что записывается в 177560 ?
-
? BD - 08.04.2017 02:29
тестировалось вот такой тупой прогой https://yadi.sk/i/o_9IwL3d3GmHiw под 10чный монитор. каменты в кои-8, если надо.
думаю, еще тупее на коленке придумать сложно ))
-
? BD - 08.04.2017 02:51
хуже того, еще корпус оригинального ИРПС надо подпиливать на 1..2 мм. под этот DB9-F
http://savepic.net/9131696.jpg
а еще в чипдипе меня ждут кварцевые резонаторы на 18.000 МГц и 15.000 МГц. для опытов... )) а вдруг?
-
? SKcorp. - 08.04.2017 20:11
Всегда считал, что COM-порт на компе должен быть "папа", а на кабеле "мама".
-
? photon1984@ - 09.04.2017 18:15
"Или барыжу по 1800 рэ."
Купил бы. Не подскажите Вашу почту?
-
? BD - 09.04.2017 20:10
Да пожалуйста, только это не имеет смысла, т.к. надо минимум софта еще делать, подождите недельку-две. bdv01[собака]bk.ru
Изначально расчитано вот на такой простой модуль wi-fi https://www.chipdip.ru/product/esp8266-wi-fi-module (уже пришли из китая 5 штук по 150 рэ и модули для подключения к USB на CP2102 тоже)
И, по-хорошему, под ESP8266 надо прошивку писать + драйвера для БК'шных операционок. Со штатной можно только только текстом "общаться".
-
? BD - 20.04.2017 08:08
А кто-нибудь подобие броузера для БК пытался делать? С HTTP/GET и двухбайтным UTF-8 проблем нет.
https://youtu.be/hRVxBWQuykk
Вот как грузить по HTTP большие файлы (.bkd/.img, чтоб PC вообще не использовать, монтировать как логический диск и все)? На ум ничего не приходит, как заполнять буфер, сохранять кусок, начинать загрузку с нуля пропуская уже загруженное и т.д. Трафик ого-го. Ну еще не все web-сервера Content-Lenght возвращают...
Сами самоделки, в принципе, готовы http://zx-pk.com/forum/viewtopic.php?f=7&t=7136
-
? BD - 25.01.2018 15:02
таки пришел esp8266 development kit
http://storage3.static.itmages.ru/i/18/0125/h_1516880749_6333260_387544b170.jpg
о чем думать в первую очередь? по wifi делать доступ к виртуальному com-порту РС?
главное же чтоб на ESP8266-01 прям БК прошивку обновляла...
у меня меньше месяца это не займет... если кто для андурино кодил... ))
-
? BD - 25.01.2018 15:48
не мог подумать раньше о прошивальщике для БК, т.к. не было чем прошивку считать по usb.. а у БК с ирпс все для этого есть ))
-
? TheGWBV - 25.01.2018 16:10
>> по wifi делать доступ к виртуальному com-порту РС?
Да :)
-
? BD - 25.01.2018 16:16
ждать месяц. ну максимум ))
-
? BD - 25.01.2018 17:15
я еще дошел пока до ESP.getFlashChipSize()
http://blog.rchip.ru/obzor-modulya-esp-01-na-chipe-esp8266/
-
? BD - 28.01.2018 09:53
докладываю: прошивальщик на БК для esp-01 не имеет смысла, т.к. чтоб ввести в режим программирования требуются манипуляции при подаче питания. ну я всем прикладывал модуль на usb cp2102, не выкидывайте ))
-
? BD - 20.02.2018 20:43
Уважаемый S_V_B, не долго думая, раскопал прошивку для ESP8266-01, называется "ESP-LINK".
http://samopal.pro/arduino-esp8266/
для перепрошивки на РС по UART надо только "тумблер" http://remotexy.com/img/help/help-esp8266-firmware-update-usbuart.png
при подключении модуля USB-UART, надо иметь ввиду, что напряжение питания не на всех переключается.
VCC, например, не значит 3.3v, надо искать. http://bestpics.ru/full/cp2102.jpg
хотя, если честно, первый раз подал 5V.. нагрелся, но без последствий ))
¤
TheGWBV может теперь виртуальный СОМ-порт иметь на 57600,
на 115200 не работает. вся затея ставить 1801ВП1-065 с кварцем на 9126КГц вместо ВП1-035 терпит крах, ввиду быстродействия БК, т.к. сигналы готовности ардуиновские ESP8266 вообще не используют, а при подключении через USB-UART - проблема с буферами FIFO, т.е. вообще 9600 ))
-
? BD - 21.02.2018 18:05
Чуть подробнее тут:
http://forum.pk-fpga.ru/viewtopic.php?f=15&t=5606&p=6297#p6297
-
? S_V_B - 21.02.2018 18:06
Загружать файлы в память БК с PC достаточно просто, интересней идея прицепиться к диску Е:
и чтобы MC отображал некую папку на PC.
Серверную часть я готов написать.
Есть у кого-нибудь мысли как это реализовать с стороны БК?
-
? BD - 21.02.2018 18:29
EMT 36 для загрузки .bin я сделаю для мкдос/андос. не все сразу.
Для "диска E:" надо стандарт блочного протокола... причем чтоб реализация на БК10 занимала не более 1000(8) байт.
-
? TheGWBV@ - 22.02.2018 02:18
S_V_B, если на стороне РС такой папке установить квоту в чуть меньше 32МБ, то можно на стороне РС отслеживать изменения и появление/удаление в ней файлов, и динамически формировать образ блочного устройства размером 32МБ в формате МК-ДОС.
А протокол обмена блоками в 512 байт позаимствовать у драйвера HX.SYS см. http://zx-pk.ru/threads/20683-protokol-hx-imitatsiya-blochnogo-ustrojstva-s-posledovatelnym-interfejsom.html?p=569574&viewfull=1#post569574
Также, желательно иметь возможность вместо папки на РС подключать к такому БК-серверу образ FDD или раздел образа HDD эмулятора ув. тов. GID-а :)
-
? TheGWBV@ - 22.02.2018 02:34
Но можно пойти другим путем. Сервером будет БК-ашка, а РС будет запрашивать и читать/писать блоки данных на блочном устройстве, подключенном к БК (дискета, HDD, электронный диск).
-
? S_V_B - 22.02.2018 06:11
Если мы создадим блочное устройство то вернемся к тому от чего пытаемся уйти - к образам дисков.
Сервером БК делать однозначно не нужно.
Наверняка есть возможность перехватить на более высоком уровне.
Например для выполнения команды "DIR" МК-ДОС читает блоки, парсит и заполняет область памяти уже списком файлов и каталогов в определенном формате.
Почему нельзя при работе с диском Е по запросу сразу выполнить конечное действие-переслать по нужному адресу список файлов и каталогов и.т.д
И какая разница в каком виде это хранится на PC.
-
? S_V_B - 22.02.2018 06:49
Как была реализована работа с "электронным" диском?
-
? S_V_B - 22.02.2018 07:45
/* позаимствовать у драйвера HX.SYS */
можно конечно сделать и блоками, но мы опять загоним себя в ограничения по размеру диска и количеству файлов.
в отличии от HX.SYS протокол должен быть максимально простой, только то что требует дос.
Не нужно сжатий, эхо, спец команд.. и прочего, там больше заточено под терминал и RT-11.
4 байта команды EHLO,READ(№,cnt), WRIT(№,cnt),_ERR,OKEY,.END
Давайте попробуем, начнем с самого простого (даже CRC16 можно не считать), а там "война план покажет"
-
? S_V_B - 22.02.2018 15:25
"Мега-загружальшик" файлов:
¤
https://yadi.sk/d/4G-DaSEO3SgMRN
-
? BD - 22.02.2018 18:57
Ты хоть "бинарники" свои пробовал грузить без подсчета к\с на 57600, хотя бы 16Кб? ))
игрушки не запускаются даже...
¤
.LINK 137000
PORT=177560
ADR=264
LEN=266
¤
¤
MTPS #0
¤
MOV @#4,@#400 ; сохраняем СТОП
MOV #HLT,@#4
MOV #IRQ360,@#360
TST PORT+2 ; может там мусор есть
MOV #ADR,R0
BIS #100,PORT
¤
1: CMP R0,#267 ; залоняем адрес и длину .bin файла
BLOS 1
MOV ADR,R0
MOV LEN,R1
ADD R0,R1
3: CMP R0,R1
BLO 3
CLR PORT
MOV @#400,@#4 ; запускем
CMP ADR,#1000
BHIS 2
JMP @776
2: JMP @264
HLT: CLR PORT
MOV @#400,@#4
HALT
IRQ360: MOVB PORT+2,(R0)+
RTI
.END
-
? S_V_B - 22.02.2018 19:17
Все запускается, снижай скорость если пропускает...
Хотя мне кажется что там не 57600, а гораздо меньше..
Вообще наверно нужно как разработчики планировали 9600 ставить
-
? BD - 22.02.2018 19:32
Хотя вру. из MIRAGE запускаются CPUTEST.BIN и даже MELMAN.BIN
BOLDER.BIN выводит только заставку.
-
? S_V_B - 22.02.2018 19:33
Для начала можно и не заморочиваться, и сохранять файл на текущий диск. Уже большая экономия времени будет.
передавать: ASCIZ 14 байт имя файла, адрес, длинна, данные, CRC16.
-
? BD - 22.02.2018 20:51
Нет уж. За BD на БК закрепилась кличка "говнокодер", хотя ничего для БК10, кроме С.Камнева, не смогли "изобрести" с 1995 года, кроме демок ))
По этому, бремя изобретения блочного протокола для БК лежит на "новом поколении".
А я постараюсь в МС впихнуть копирование каталогов, что очень сложно в 8Кб..
-
? BD - 22.02.2018 22:44
... еще ждать минимум месяц, пока 12 БКшников, которые осчастливились, обновят-таки ESP ))
-
? S_V_B - 23.02.2018 07:43
что там месяц делать-то? делов на пару часов.
-
? BD - 23.02.2018 11:06
это для copy-paste. не обязательно, кстати, запускать с 137000, можно с 400.
¤
.LINK 137000
PORT=177560
ADR=264
LEN=266
MTPS #0
MOV @#4,@#400 ; сохраняем СТОП
MOV #HLT,@#4
MOV #IRQ360,@#360
TST PORT+2 ; может там мусор есть
MOV #ADR,R0
BIS #100,PORT
1: CMP R0,#LEN+1 ; заполняем адрес и длину .bin файла
BLOS 1
MOV ADR,R0
MOV LEN,R1
ADD R0,R1
3: CMP R0,R1
BLO 3
CLR PORT
MOV @#400,@#4 ; запускем
CMP ADR,#1000
BHIS 2
JMP @776
2: JMP @264
HLT: CLR PORT
MOV @#400,@#4
HALT
IRQ360: MOVB PORT+2,(R0)+
RTI
.END
-
? S_V_B - 23.02.2018 15:54
бинарники с "автозапуском" не запускаются, стэк нужно убирать с 1000 перед загрузкой
-
? S_V_B - 23.02.2018 16:31
точно проверил, теперь работает.
кстати загружальщик обновил, после передачи адреса и длины паузу сделал на всякий случай
-
? Alexander Tishin@ - 23.02.2018 18:04
BD, а фигли читать через прерывания? По опросу быстрее да и проще.
-
? BD - 23.02.2018 19:54
увы, это на 9600 проще. на 57600 БК еле справляется ((
РС не ждет никого, пихает без готовности.
-
? Alexander Tishin@ - 23.02.2018 20:24
Вот потому и еле справляется, что через прерывания. По опросу БК должна уверенно тянуть 115200.
-
? Дмитрий - 23.02.2018 22:37
Позвольте осведомиться, что за прерывание по 360 вектору?
-
? TheGWBV@ - 23.02.2018 23:59
BD - гениально! :) S_V_B - хорошо! :)
S_V_B, а что если сделать возможность при выборе файла также задать нужный адрес загрузки и флажок "Добавить BIN-заголовок"?
Тогда можно будет абсолютно любой файл разумной длины разом загрузить в нужный адрес, и манипулируя такими процедурами,
можно удаленно работать с любой информацией в ОЗУ и на HDD/FDD БКашки, удаленно с РС! =)
Всех с праздником!!!
-
? S_V_B - 24.02.2018 09:14
/*а что если сделать возможность при выборе файла также задать нужный адрес*/
¤
Конечно можно, я так в своем "редакторе" картинки просматриваю на БК, только нужно программу на БК подправить чтобы она не пыталась запустить данные. Тут мы опять возвращаемся к протоколу о котором я говорил выше, потому что хотелок будет больше:
загрузить, запустить, изменить страницу, палитру, сохранить на диск и.т.д. либо для каждой хотелки писать программу для БК.
Придумывать протокол, а тем более раскапывать МС и МК-Дос для подключения диска всем лениво.. скорее всего дело кончится написание кучи программок на все случаи жизни.
¤
/*Вот потому и еле справляется, что через прерывания.*/
Забавно наблюдать передачу данных на PC, какой бы буфер ни делал хоть байт хоть килобайт.. весь файл проглатывается.. "передача окончена", а БКшка в это время захлебывается откуда-то из буфера виндов или ESP еще долгое время:)
В данном применении прерывание выглядит более элегантно, когда будем делать протокол можно будет без прерывания. Там уже обратная связь будет.. попросил 2 байта.. получил.. подтвердил.
-
? TheGWBV@ - 25.02.2018 00:12
>> ...скорее всего дело кончится написание кучи программок на все случаи жизни.
S_V_B, просьба опубликовать версию с возможностью формирования BIN-файла "на лету", с возможностью предварительного указания адреса загрузки!
BK-IRPS-SERVER готов в двух вариантах - https://yadi.sk/d/XMg2ewtU3SjpgX - просьба проверить работоспособность :)
1. Код в обоих вариантах полностью перемещаемый
2. в IRPS-SRV2... Если адрес загрузки находится в диапазоне 760-776 - считается, что грузится главная программа с автозапуском
(адрес для перехода по JPM берётся из ячейки 776)
3. в IRPS-SRV2... Если адрес загрузки в другом диапазоне - считается, что грузится подпрограмма с RTS PC в точке выхода,
которая затем и запускается с адреса загрузки...
4. в минималистичном IRPS-SRV... Сервер ожидает только загрузки подпрограммы с RTS PC в точке выхода.
В обоих вариантах сервера - после завершения работы П/П происходит возврат к ожиданию загрузки очередной подпрограммы.
Код минималистичного варианта...
; IRPS-SRV Версия от 24-02-2018 г.
.LINK 400
; Адрес может быть другим, например, 137000
;
PORT=177560
LEN=266 ; Системная ячейка Монитора БК0010 "длина файла"
ADR=264 ; Сист. ячейка "адрес загрузки файла"
;
SERVER: NOP ; Если будем использовать в ОЗУ SMK
MTPS #0
MOV PC,R1 ; сохраняем СТОП в "теле" кода
SAVHLT: MOV @#4,HLT+6-SAVHLT(R1) ; по адресу HLT+6
ADD #HLT-SAVHLT,R1 ; и вычисляем
MOV R1,@#4 ; новый СТОП
ADD #IRQ360-HLT,R1 ;
MOV R1,@#360
TST @#PORT+2 ; может в рег-ре данных мусор есть?
MOV #ADR,R0 ; сначала заполняем системные ячеки
MOV #4,R1 ; это всего 4 байта, начиная с ADR
BIS #100,@#PORT ; (сигнал готовности приема для РС)
1: WAIT ; адреса и длины *.bin файла
SOB R1,1
MOV @#ADR,R0
MOV @#LEN,R1
2: WAIT ; цикл приема тела файла побайтно
SOB R1,2 ; по прерыванию от блока ИРПС
CLR @#PORT ; сигнал для РС - "прием окончен"
RUN: CALL @264 ; и запускаем загруженный код
; по адресу загр. файла, как П/П
MOV HLT+6-RUN-10(PC),@#4 ; на всякий случай
BR SERVER
;
; Обработчик прерывания по СТОП
HLT: CLR @#PORT ; сигнал для РС - "прием окончен"
MOV #HLT,@#4 ; восстановить старый СТОП из HLT+6
HALT ; прервать работу и выйти в МОНИТОР
; или ДОС
; Обработчик прерывания от блока ИРПС
IRQ360: MOVB @#PORT+2,(R0)+
RTI
TASK: NOP ; С этого адреса можно грузить-запускать ПП
.END
¤
На какой скорости теперь грузится без ошибок?! ;)
-
? S_V_B - 25.02.2018 07:16
У меня на 57600 пока ни одной ошибки не было.
Сделал сохранение на диск, после адреса и длины передается имя файла 14 байт.
-
? S_V_B - 25.02.2018 08:47
https://yadi.sk/d/ZqZESLpj3SjzMh
¤
1. Если "нет заголовка" (Адрес из едитбокса, длина=длина файла)
2. Если чекбокс "Адрес" - длина берется из заголовка.
3. "Передать имя файла" - предается адрес, длина, 14 байт+0 имя файла (для ЕМТ36) :)
-
? BD - 25.02.2018 11:16
TheGWBV, удалось таки ESP прошить? Flash Download Toll, если соединение установлено, сам определит объем памяти в ESP. Если зрение хорошее (при помощи лупы) можно прочитать маркировку. PN25F08 - 1Mb (8Mbit), иначе - 512Кb. Это надо для задания адреса, там всплывающая подсказка есть.
-
? BD - 25.02.2018 11:18
Пока прошивка с АТ-командами, можно по AT+RST узнать.
-
? BD - 25.02.2018 18:57
S_V_B, для ЕМТ36 надо еще контрольную сумму передавать, чтоб вообще без вопросов обрабатывать ошибки.
в мониторе БК10 эта п/п находится по адресу 116622(8)
CLR R0
75$: CLR R2
BISB (R5)+,R2
ADD R2,R0
ADC R0
SOB R4,75$
RTS PC
В 16-ти битном регистре R5 - адрес, в R4 - длина, в R0 - "сумма".
Это придумано в 1982 году, но с магнитофоном спасало ))
-
? S_V_B - 25.02.2018 19:12
По хорошему надо, но пока ошибок не было..
Есть одна проблема, после ЕМТ 36 не возвращается.. файл записывает, стоп нажимаешь.. выходит, файл на месте..
а то что после ЕМТ 36 не выполняет.
Что не так?
-
? S_V_B - 25.02.2018 19:17
.LA 137000
PORT=177560
MOV #137000,SP
MTPS #0
MOV @#4,@#400 ; сохраняем СТОП
MOV #HLT,@#4
MOV #IRQ360,@#360
TST PORT+2 ; может там мусор есть
MOV #ADR,R0
BIS #100,PORT
1: CMP R0,#Z
BLOS 1
MOV @#ADR,R0
MOV @#LEN,R1
ADD R0,R1
3: CMP R0,R1
BLO 3
CLR PORT
¤
MOV #NAME,R1
CLR R2
EMT 20
¤
MOV #BLOCKP,R1
EMT 36
¤
......
;тут уже не выполняет
......
......
¤
;MOV #OK,R1
;CLR R2
;EMT 20
;MOV #1000,SP
;HALT
¤
HLT: CLR PORT
MOV @#400,@#4
HALT
IRQ360: MOVB PORT+2,(R0)+
RTI
OK: .ASCIZ "OK"<0>
¤
BLOCKP: .WORD 2
ADR: .WORD 1000
LEN: .WORD 0
NAME: .BYTE 0,0,0,0,0,0,0,0,0,0,0,0,0,0
Z: .BYTE 0
.END
-
? BD - 25.02.2018 19:21
Погоди, EMT36 для ИРПС еще никто не делал... Это был тупой загрузчик. В течении 3х дней, наверное, выдам.
-
? S_V_B - 25.02.2018 19:35
Досовский ЕМТ куда-то не туда возвращает.. когда записываешь программу с автозапуском даже что-то выполнить пытается, но по стопу выходит без проблем. Файл получается вполне себе рабочий..
Значит даже если мы стек убрали он думает что адрес возврата где угодно только не в нашем стеке.
-
? BD - 25.02.2018 19:47
Раз взялся, выдай к/с. ADC - это прибавить бит с переносом.
-
? S_V_B - 25.02.2018 19:58
При передаче с PC могу опционально КС добавить.
А с тебя тогда ЕМТ 36.
А с TheGWBV запихать это в СМК, желательно в загрузчик :)
-
? SKcorp. - 26.02.2018 02:07
>Погоди, EMT36 для ИРПС еще никто не делал...
¤
Делал. Заменой на EMT254.
-
? BD - 27.02.2018 16:44
S_V_B, MOV #137000,SP зачем?
До 137000 у мкдос каталог грузится, т.е. при выполнении EMT36 стек портится нафиг ))
-
? S_V_B - 27.02.2018 17:16
Если стек с 1000 не уберешь не запустишь (не сохранишь) программу с автозапуском.. тоже портится.
Поэтому в твоей версии запускалки не стартовали такие программы.
-
? S_V_B - 27.02.2018 17:17
нужно значит куда-нибудь еще стек запихать чтоб не мешался
-
? BD - 27.02.2018 17:23
SKcorp., в Бейсике-Вильнюс, ради экономии памяти в ПЗУ, прием-передача байта сделана так:
IVT: TSTB @#IRPSRG
BPL IVT
MOVB @#IRPSRG+2,R0
RET
ISVT: TSTB @#IRPSRG+4
BPL ISVT
MOVB R0,@#IRPSRG+6
RET
т.е. от ИРПС прерывания вообще не используются. Это только на 9600 проходит ((
-
? BD - 27.02.2018 17:25
S_V_B, ну тогда MOV #140000,SP
и все ))
-
? S_V_B - 27.02.2018 17:42
лучше в СМК все загрузить.
-
? BD - 27.02.2018 17:51
Нет уж. В МС запуск игрушек сделан довольно сложно, типа каталог грузится с 27000, находится имя файла, адрес, номер блока с которого читать и сколько блоков, потом опять на 126000 возвращается, чтоб подгрузки по emt36 работали.
-
? S_V_B - 27.02.2018 17:55
BD ведь давно придумал ИРПС+ESP? Странно почему у народа интереса нет, штука-то ведь очень полезная, и простор для творчества огромный.
Я блин вздохнул свободно, а то постоянные ковыряния в образах доканали уже. Теперь свои программки можно запускать для проверки хоть каждые 5 сек.. красота. Думаю что по популярности должна быть в одном ряду с СМК.. тогда появится смысл и дос раскапывать :)
-
? BD - 27.02.2018 18:35
ты второй, кто осознал ))
пока минимум 10 не найдутся, плату переделывать не имеет смысла. еще надо изучить LUA и прочие SDK, чтоб прошивку для ESP под потребности БК сделать.
-
? S_V_B - 27.02.2018 18:53
LUA в печку.. тормоза. На LUA только скрипты для квестов писать. С++ форева.
-
? BD - 27.02.2018 20:17
тебе такого таракана отправить? быстрее, чем из китая. бесплатно.
http://bestpics.ru/full/esp-dev8266.jpg
один хрен не использую уже полгодика ))
-
? BD - 27.02.2018 22:57
там есть файловая система, и для скомпиленных "прог" тоже место есть. из примеров типа "моргания светодиом" не дошел ))
-
? S_V_B - 28.02.2018 05:39
Да я уже заказал всяких разных на Али, скоро уже придут :)
-
? TheGWBV@ - 28.02.2018 11:37
Ну, всё, пора мне уже дописать FAT16 для карты SD Бустера и СМК :)
-
? BD - 28.02.2018 16:25
S_V_B, все долго и нудно было. я попытался ИРПС заставить работать более чем на 9600 ))
http://bestpics.ru/full/prototipirps0.jpg
Уважаемый ММ, сжалившись, нарисовал схему, по которой был сделан макет
http://bestpics.ru/full/prototipirps1.jpg
http://bestpics.ru/full/prototipirps.jpg
(слабонервным не смотреть). и всё! ))
-
? BD - 28.02.2018 16:46
т.е. использование ESP8266-01 уже заранее было в "конструкции". нагородил там всего... первый раз все-таки ДПП заказывал ))
-
? S_V_B - 28.02.2018 17:25
По приколу можно КЦГД подключить, тогда можно наверное нормальную RT11 запустить.
И будет у нас "микро ДВК" :)
-
? a214 - 28.02.2018 23:56
... микро-ДВК будет если отключить ВП1-037, откл. РЕ2-017 и на разъём МПИ поставить доп-ОЗУ 32К (30К + загрузчик) ...
-
? Alexander "Sandro" Tishin@ - 01.03.2018 20:41
11М и так вполне тянет нормальную RT11-SJ. Кривость ОС БК связана банально с тем, что автора порта RT-11 на БК кинули на деньги, ну и получили вот это вот.
¤
А КЦГД для этого вовсе не нужен.
-
? BD@ - 13.03.2018 22:17
S_V_B, диск предлагаю назвать $:, с ИРПС который. а не E:. имена !: и @: уже заняты ))
только контрольную сумму (к\с) шли в первых 2 байтах (слово), тогда получится ЕМТ36 полноценный.
-
? svinka@ - 14.03.2018 22:10
Какой начальный адрес в пространстве ввода вывода считается стандартным для модуля ИРПС БК? При том что надо попасть выше 177600(8)?
или не надо? как тогда быть с пересекающейся в адресном пространстве памятью?
-
? BD@ - 15.03.2018 01:17
У тебя же данная поделка есть.
http://forum.pk-fpga.ru/download/file.php?id=419&mode=view/9029478.jpg
ВП1-035 (-065) имеют 2 режима: ADR=1777560 IRQ=60 и ADR=1776560 IRQ=360 (в КУВТ используется, в ПЗУ Бейсика просто нули). Чтобы не пересекалось с ДОЗУ СМК пришлось просто доработку сделать для ADR=1777560 IRQ=360. На плате переключалки называются ADR и IRQ360, что позволяет получить любой конфиг.
-
? BD@ - 15.03.2018 01:27
ADR=177560 IRQ=60 и ADR=176560 IRQ=360 конечно же
-
? svinka@ - 15.03.2018 13:07
А СМК использует irq60?
¤
177560 с никакими другими озу/пзу не пересекается?
¤
То что оно не пересекается логически (содержит там там нули - на шине выдает единички), но выбирается и шина при чтении переходит из третьего состояния в состояния логического нуля работает, пока у Вас микросхемы по технологии н-МОП. Быстродействующий КМОП перегреется и сгорит {наверное}
¤
У фабричного ИРПС на -035 БК0010 какие адреса по умолчанию? в БК11М он рекомендуется?
-
? BD@ - 15.03.2018 17:52
У фабричного ИРПС на -035 перемычка стоит на 176560, прерывания драйверами Бейсика не используются.
ПЗУ -084 с Фокалом использует IRQ 360.
Для БК11(М) в комплекте КУВТ шел блок КМК11, тоже на -035. Есть у Voland в количестве, можно попросить сфотать. На БК11М поддерживается Бейсиком, на БК11 надо дополнительно ПЗУ -254.
У СМК 170000-177000 ОЗУ, поэтому регистр можно использовать только 177560, но тогда ВП1-065(-035) будет генерить прерывание по 60 вектору, который у БК отдан под клавиатуру. Чтобы избежать конфликта, надо генерить прерывание по 360, что обеспечивается манипуляциями с сигналом ACL0 (см. схему выше).
-
? S_V_B - 15.03.2018 17:55
BD можешь посчитать для проверки контрольную сумму для этого файла:
¤
https://yadi.sk/d/671U-As83TQVMK
¤
у меня получилось 35073
-
? BD@ - 15.03.2018 18:23
Не сходится. Добавь в загрузчик строчки
OCTOUT=120056 ;MK-DOS: вывод 8 числа из R2
DECOUT=120060 ;10 числа из R0
....после MOV @#400,@#4 .....
MOV ADR.R5
MOV LEN,R4
CALL @#116622
MOV R0,-(SP)
CALL @DECOUT
MOV (SP)+,R2
CALL @OCTOUT
WAIT
-
? S_V_B - 15.03.2018 18:26
число скажи какое получилось
-
? S_V_B - 15.03.2018 18:28
на x86 ADC сразу суммирует с переносом
-
? S_V_B - 15.03.2018 18:31
35073(8)
17907(10)
-
? BD@ - 15.03.2018 18:39
3523. 006703(8)
-
? BD@ - 15.03.2018 19:04
Ты не забыл, что в .BIN первые два слова адрес/длина и их надо пропускать?
-
? S_V_B - 15.03.2018 19:10
забыл флаг переноса очистить (CLC)
¤
все равно получается 3695. 7157(8)
-
? gid - 15.03.2018 19:25
Если использовать подпрограмму 116622, то получается 006703(8)
clr r0
1$: clr r2
bisb (r5)+,r2
add r2,r0
adc r0
sob r4,1$
¤
Если использовать любой другой алгоритм, то получится любая другая КС.
Традиционно на БК10 КС загруженных файлов считается подпрограммой 116622.
-
? S_V_B - 15.03.2018 19:26
/*Ты не забыл, что в .BIN первые два слова адрес/длина*/
Забыл
-
? S_V_B - 15.03.2018 19:32
TFileStream *CF=new TFileStream(OpenDialog1->FileName, fmOpenRead);
unsigned __int16 R0,R1;
CF->Seek(4,soFromBeginning);
R0=0;
R1=0;
while(CF->Position<CF->Size)
{
CF->Read(&R1,1);
__asm
{
CLC
mov AX,R0;
ADC AX,R1;
mov R0,AX;
}
}
delete CF;
-
? S_V_B - 15.03.2018 19:36
так получается 3510. 6666(8)
-
? BD - 15.03.2018 19:51
Нет уж. Для .bin надо брать длину из заголовка .bin в байтах, а не ждать конец файла, для начала. Чтобы мусор не считать до конца последнего кластера.
-
? S_V_B - 15.03.2018 19:55
Это для PC, TFileStream - это и есть файл. не кластер
-
? BD@ - 15.03.2018 19:56
Последний раз Visual studio запускал пару лет назад. Может gid поможет ))
-
? BD@ - 15.03.2018 20:04
Тогда попробуй не .bin грузить, задавая адрес и длину принудительно. И считая к/с из полей ввода irps_loader.
-
? S_V_B - 15.03.2018 20:08
я пока еще ничего не гружу. просто хочу посчитать кс файла на винте, перед тем как отправлять.
-
? BD@ - 15.03.2018 20:14
Как ты можешь посчитать к/с для БК не зная длину файла в байтах?
-
? S_V_B - 15.03.2018 20:22
я его собираюсь отправить на бк, а не получить (почему я не должен знать его длину?)
-
? BD@ - 15.03.2018 20:35
Тогда вся разница в ADC. gid, надеюсь, поможет..
-
? BD@ - 15.03.2018 20:41
Просто пиши на БК п/п подсчёта к/с, чтоб совпадало )) на 112266 все не заканчивается
-
? gid - 15.03.2018 20:53
Что это за чудо код такой в посте ? S_V_B - 15.03.2018 19:32
Тыж бит С не сохраняешь между сложениями прочтённых байтов из файла
надо так делать, если уж на асме хочется.
mov AX,R0; //аккумулятор
ADD AX,R1; //прибавляем прочитанный байт
ADC AX,0; //и бит С переноса
mov R0,AX; //сохраняем аккумулятор на место
-
? gid - 15.03.2018 21:03
И я не совсем уверен, а CF->Read(&R1,1); точно ли читает 1 байт? может оно автоматом читает слово, потому что R1 - слово?
Я в сибилдерном си не очень ориентируюсь.
¤
вот способ чисто на Си
¤
unsigned __int32 R0=0;
unsigned __int8 b=0;
CF->Seek(4,soFromBeginning);
while(CF->Position < CF->Size)
{
CF->Read(&b,1); //читаем байт. точно байт.
R0 += b; //прибавляем его к аккумулятору
if (R0 & 0xffff0000) //перенос случился?
{
R0 &= 0xffff;
R0++; //прибавим бит переноса
}
}
delete CF;
-
? BD@ - 15.03.2018 21:14
2S_V_B, дай исходки gid. А то ещё будем месяц корячится с emt36 ))
-
? gid - 15.03.2018 21:30
Не надо мне исходников, у меня своих выше крыши, никак не разгрести.
Я заинтересован в том, чтобы было больше людей, умеющих программировать и не боящихся выкласть на публику свои исходники, даже если они не верх изящества.
-
? BD@ - 15.03.2018 22:54
..после инсульта я принимаю колеса, которые напрочь память отбивают и мелкую моторику. БК помогает, если что ))
Последовательный порт с esp8266-01 нужен для того, чтоб броузер сделать на БК. Утром опять не буду ничего помнить ))
-
? S_V_B - 16.03.2018 05:38
Я понял в чем косяк только вчера уже поздно было, вечером сделаю.
-
? S_V_B - 16.03.2018 07:14
ADD AX,R1; //прибавляем прочитанный байт
ADC AX,0; //и бит С переноса
¤
спс.
-
? S_V_B - 16.03.2018 17:39
Добавил CRC. Теперь действительно универсальный загрузчик для любых экспериментов.
¤
1. Добавление заголовка для дампа.
2. Изменение адреса загрузки.
3. Передача имени файла (для записи)
4. CRC (116622)
¤
Если установить все опции будет передавать: 2 байта CRC, 2 байта адрес, 2 байта длина, 14 байт имя файла... далее данные.
¤
ссылка на новую версию:
https://yadi.sk/d/7JJ3IKTM3TSddP
-
? Alexander Tishin@ - 16.03.2018 19:39
Я не пойму, а зачем страдать со встроенным ассемблером? Кроме x86 других процессоров нет, что ли? Да и на C пишется проще:
¤
uint16_t bk_tape_checksum(uint8_t *data, int length) {
uint32_t sum = 0;
while (length-- > 0) {
sum += *data++;
}
return (uint16_t)(sum + (sum >> 16));
}
¤
Семь строк на C'99, работает на любом процессоре вообще.
¤
PS: А алгоритм -- дерьмо. Сумму надо было инициализировать ненулевым значением. Иначе при сбое синхронизации до первого ненулевого бита просто будет прочитан файл из всех нулей, а сумма совпадёт. Я попадал на этом.
-
? S_V_B - 17.03.2018 12:30
/*(sum + (sum >> 16));*/
Не сработает.. проверьте.
¤
/*зачем страдать со встроенным ассемблером*/
проще и код очевиднее
¤
/*Кроме x86 других процессоров нет*/
Задача была сделать быстро удобный инструмент с интерфейсом.. а не убогую консольную кроссплатформенность.
¤
/*А алгоритм -- дерьмо*/
зато на бк уже готовая реализация.. 112266
хотя при работе с ИРПС у меня ошибок еще не разу не было мы же не с магнитофона читаем. (CRC - чтобы было)
-
? BD@ - 19.03.2018 14:22
>> хотя при работе с ИРПС у меня ошибок еще не разу не было
Дело в том, что на "оригинальных" блоках ирпс на ВП1-035 были установлены оптроны "для развязки с сетью". Мало того, к ним еще и модем подключали. А без подсчета к/с там никуда, хоть по протоколу x-modem, хоть z-modem.
Уважаемый S_V_B, ни разу не пробовал проводами соединить БК с РС, только по wifi с ардуиновским модулем ))
ЕМТ36 на чтение уже скоро будет готово...
-
? S_V_B - 19.03.2018 15:54
/* ЕМТ36 на чтение уже скоро будет готово... */
Ждем. Если можно описание, к чему готовиться.. как будем использовать.
-
? Лёха Башой - 25.03.2018 21:48
А какой то FIFO есть в блоке ИРПС БКшечном?
-
? Лёха Башой - 25.03.2018 21:50
Помнится я для MSX-Link делал передачу, блочную. Из расчета того чтобы PC-не забивал весь буфер. Весь прикол заключался в том что на PC следующая операция записи могла похерить предыдущий недопереданный блок.
Решил путём подтверждения блока. Скорость выжималась максимальная.
-
? BD - 27.03.2018 16:40
2S_V_B, выложи исходки irps_loader. если это "гамнокод" - не стесняйся, все такие. у меня есть VS2013.
хрен тебя поймешь, даже EMT 36 не работает ((
-
? S_V_B - 27.03.2018 17:05
Исходник (громко сказано) на Borland C++ Builder.. (меня MFC бесит)
¤
собственно практически весь исходник:
if(OpenDialog1->Execute())
{
HANDLE port;
¤
DCB PBlock;
FillMemory (&PBlock,sizeof(PBlock),0);
PBlock.DCBlength = sizeof(PBlock);
PBlock.BaudRate=ComboBox2->Text.ToInt(); //57600;
PBlock.StopBits=1;
PBlock.fBinary=1;
//PBlock.fParity=2;
PBlock.fDtrControl=0;
PBlock.fDsrSensitivity=0;
PBlock.ByteSize=8;
¤
port=CreateFile(ComboBox1->Text.c_str(),GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
if(port==NULL)
{
MessageBox(Handle,"Íåâîçìîæíî îòêðûòü ïîðò","Îøèáêà",MB_OK);
return;
}
SetCommState(port,&PBlock);
PurgeComm(port,PURGE_TXCLEAR|PURGE_RXCLEAR);
SetupComm(port,512,512);
¤
unsigned __int8 ee[2]={0,0};
char buffer[512];
memset(buffer,0,sizeof(buffer));
unsigned __int16 crc=CRC();
¤
¤
TFileStream *Out=new TFileStream(OpenDialog1->FileName, fmOpenRead);
unsigned __int16 address=strtol(Edit1->Text.c_str(),0,8);
¤
double flen=Out->Size;
unsigned __int16 bkflen=flen;
DWORD cnt=0;
bool a;
int lll=512;
¤
if(CheckBox4->Checked)
{
a=WriteFile(port,&crc,2,&cnt,NULL);
}
¤
if(CheckBox2->Checked)
{
a=WriteFile(port,&address,2,&cnt,NULL);
a=WriteFile(port,&bkflen,2,&cnt,NULL);
}
else
{
Out->Read(&buffer,4);
flen-=4;
if(CheckBox3->Checked)
{
a=WriteFile(port,&address,2,&cnt,NULL);
a=WriteFile(port,buffer+2,2,&cnt,NULL);
¤
}
else
{
a=WriteFile(port,buffer,4,&cnt,NULL);
}
}
if(CheckBox1->Checked)
{
char name[14];
memset(&name[0],0x20,14);
if(OpenDialog1->FileName.Pos("."))
{
strcpy(&name[0],ExtractFileName(OpenDialog1->FileName).SubString(1,ExtractFileName(OpenDialog1->FileName).Length()-4).Trim().c_str());
strcpy(&name[10],ExtractFileName(OpenDialog1->FileName).SubString(ExtractFileName(OpenDialog1->FileName).Length()-3,4).c_str());
}
else
strcpy(&name[0],ExtractFileName(OpenDialog1->FileName).Trim().c_str());
¤
a=WriteFile(port,&name[0],14,&cnt,NULL);
a=WriteFile(port,&ee[0],1,&cnt,NULL);
//PurgeComm(port,PURGE_TXCLEAR);
}
¤
prbr->Max=flen;
prbr->Min=0;
¤
Sleep(500);
while(flen>=0)
{
if(flen<512)
lll=flen;
Out->Read(&buffer,lll);
a=WriteFile(port,buffer,lll,&cnt,NULL);
flen-=512;
prbr->Position+=lll;
}
¤
MessageBox(Handle,"Ïåðåäà÷à çàâåðøåíà","Âíèìàíèå",MB_OK);
prbr->Position=0;
¤
if(port!=NULL)
CloseHandle(port);
delete Out;
}
-
? S_V_B - 27.03.2018 17:08
Ссылка на исходник:
¤
https://yadi.sk/d/kjgmaf1H3TowAB
-
? BD - 27.03.2018 17:31
да ты, батенька, старовер )) совсем не приучили каментить и к "объектно ориентированному"..
все ОК, не пройдет и 2 недели.. ЕМТ 36 будет...
-
? S_V_B - 27.03.2018 17:35
Здесь классы нафиг не нужны.. все просто и прозрачно.. классы уже Borland написал нам-то зачем выпендриваться
-
? BD - 27.03.2018 17:40
тогда GCC будем вместе изучать ))
-
? BD - 27.03.2018 18:05
у нас есть "великая цель", чтоб в БК0010(-01) можно было по ИРПС все запихать, даже без КНГМД/НЖМД и (прости господи) допОЗУ.
-
? S_V_B - 27.03.2018 18:29
/* даже EMT 36 не работает */
не работает в каком плане?
На диск сохраняет.. смотри чтобы стек не затирался
-
? S_V_B - 27.03.2018 18:35
запусти на БК
https://yadi.sk/d/lNGSlcXR3Tp8FC
(не помню какая версия.. по моему сохранить можно один раз потом МКДосовский каталог затирает прогу, нужно откомпилить с другого адреса)
¤
¤
а на PC - запусти IRPS_Loader
¤
установи чекбокс "передавать имя файла" и отправляй бинарник...
¤
на БК сохранится под тем де именем..
-
? S_V_B - 27.03.2018 18:44
/* у нас есть "великая цель", чтоб в БК0010(-01) можно было по ИРПС все запихать */
Для этого в ESP нужно загрузку по сети прописать.. и тогда КУВТ получится :)
-
? BD - 27.03.2018 18:57
загрука с посчетом к/с. дома буду - все сделаю.
-
? gid - 27.03.2018 21:13
Там, в исходниках IRPS на билдере которые, файл на БК передаётся не совсем в понятной форме.
Особенно, я не понял смысла CheckBox2 и CheckBox3. Заголовок бин передавать на БК не нужно ни в каком случае, он там не нужен.
¤
Лучше делать передачу в точности как в EMT 36:
Заголовок файла : 20. байтов {
адрес загрузки файла : 2 байта,
размер файла в байтах: 2 байта, // реальный размер, может быть нечётным
имя файла : 16 байтов
};
массив файла : размер файла в байтах;
КС : 2 байта;
¤
Перед передачей нужно проанализировать файл, если у него есть заголовок бин, и он корректен, то адрес и размер брать оттуда, если нет - адрес спросить у пользователя, размером считать длину файла.
контрольную сумму можно считать на лету, по мере передачи файла, но это не сильно существенно, можно оставить и как есть.
Если длина файла больше 32767., то такой файл нельзя загрузить в память, его надо сохранять на диск на БК.
Если длина файла больше 65535., то нужно придумывать вообще новый алгоритм передачи, т.е. предусмотреть какой нибудь расширенный заголовок, т.к. длина не влезает в 16 бит.
¤
размер под имя файла лучше оставить 16 байтов, а не уменьшать под мкдосовский формат 14 байтов, неиспользуемые байты заполнять нулями.
Из эстетических соображений можно ещё считать КС заголовка и передавать её перед массивом файла, но это уже несовместимо с EMT 36 и надобность этого решайте сами.
-
? S_V_B - 28.03.2018 05:47
/* Заголовок файла : 20. байтов */
так и передается, только имя файла 14 байтов.
¤
все чекбоксы сделаны для универсальности и добавлялись по ходу.
¤
сначала мы хотели просто запускать программы, например если запускаем бинарник игрушки то адрес и длина берется из заголовка в файле, если заголовка нет то можем указать адрес загрузки вручную.
¤
потом захотелось сохранять файлы для этого появился чекбокс "передавать имя файла".
далее по просьбе BD появилась CRC.
¤
т.е. комбинируя чекбоксы можно сформировать любой заголовок для передачи.
¤
например в граф. редакторе на PC подобным образом сделал просмотр картинок на БК с переключением палитр (об этом где-то говорили) к картинке добавляем код переключения палитры -
грузим с адреса 37764 (не помню) - любуемся результатом :)
-
? S_V_B - 28.03.2018 06:23
Пока неизвестно что будет на стороне БК, поэтому формат передачи еще не сложился - вот BD переписывает ЕМТ36, а там видно будет.
Сейчас у меня две программки на БК одна запускает, другая сохраняет, для этого и чекбоксы.
Скомпилировал программу на PC сразу запустил, если нужно - сохранил. И никакой возни с образами, даже сейчас уже очень удобно.
Сверх идея - работать с файлами на PC, поживем -увидим.
-
? gid - 28.03.2018 09:49
Заставлять BD переписывать ЕМТ36 под неопределённый, несложившийся формат - жестоко. Проще взять уже готовый сложившийся формат передачи в ЕМТ36 и по мере надобности расширять его под свои нужды.
¤
BD или S_V_B, а напишите лучше руководство для идиотов, можно даже с картинками, про этот блок ИРПС.
Какой-нибудь талмуд в виде солидного документа, где будет описан внешний вид блока, что там за разъёмы, с описаниями каждой дырки разъёма.
Как им пользоваться, для чего нужны эти маленькие штучки с микросхемками в комплекте, куда их втыкать можно, куда не нужно, а куда категорически нельзя.
Как и с помощью чего можно сделать обмен данными по Wi-Fi с ПиСи компьютером.
Например: берём хреновину Х, втыкаем её в блок ИРПС, сам блок втыкаем в БК, включаем, загружаемся, набираем таинственные заклинания (нужно привести пример чё как куда вводить) и происходит чудо.
Приводить ссылки на документы (напр. больше заклинаний - таинственных и сложных в см. документе 4A-ESP8266 AT Instruction Set_v0.22.pdf) и сопутствующий софт.
¤
Например, я как-то упустил момент, каким образом передаётся файл с ПиСи по Wi-Fi через COM порт?
¤
Написать такой документ, прочитав который каждый будет понимать как пользоваться этими железками, как бы не посложнее будет, чем программы писать. Там ведь нужно описать тривиальные вещи с точки зрения разработчика, которые кажутся ему само собой разумеющимися, но не всегда очевидными человеку со стороны.
-
? BD - 28.03.2018 10:23
Не, проблема имеет гораздо бОльшие масштабы. Даже если имя, адрес, длину задавать руками... для БК надо время, например, чтоб имя файла сравнить. Sleep(500); тут не обойдешься ))
Если РС используется как файл-сервер, надо процесс, с БК передавать блок параметров EMT 36 (который в R1) и в зависимости от "команды" слать/читать.
Формат .BIN (который полный) сойдет для начала, РС будет только как "диск", но только по EMT 36.
А вообще надо блочный протокол и 160004 эмулировать к .IMG ))
¤
¤
ФОРМАТ БЛОКА ПАРАМЕТРОВ
------------------------------------------------------------
НОМЕР БАЙТА ! СОДЕРЖАНИЕ БАЙТА
------------------------------------------------------------
0 ! КОМАНДА
1 ! ОТВЕТ
2,3 ! АДРЕС МАССИВА НА ЗАПИСЬ ИЛИ ЧТЕНИЕ
4,5 ! ДЛИНА МАССИВА НА ЗАПИСЬ
6-21 ! ИМЯ МАССИВА НА ЗАПИСЬ ИЛИ ЧТЕНИЕ
22,23 ! АДРЕС ТЕКУЩЕГО МАССИВА
24,25 ! ДЛИНА ТЕКУЩЕГО МАССИВА
26-41 ! ИМЯ ТЕКУЩЕГО МАССИВА
------------------------------------------------------------
К/С еще надо
-
? TheGWBV@ - 28.03.2018 10:28
Надо БК как сервер использовать ;-)
-
? S_V_B - 28.03.2018 11:17
/* я как-то упустил момент, каким образом передаётся файл с ПиСи по Wi-Fi через COM порт */
¤
для этого как раз и нужны "маленькие штучки" называются ESP8266 (Народный WiFi модуль- вариантов использования очень много, например кто-то Радио-86РК на нем сэмулировал...)
подробно как используется с виртуальным СОМ портом написано здесь:
¤
http://samopal.pro/arduino-esp8266/
-
? BD - 28.03.2018 11:24
Все "руководство для идиотов" пока такое.
http://forum.pk-fpga.ru/viewtopic.php?f=15&t=5606
После перепрошивки ESP8266-01 делается виртуальный COM-порт на 57600 по WiFi, и можно чхать на буфер FIFO. ESP все делает за Вас ))
На самом деле, можно какую-нибудь нибудь платку мелкую для ESP8266-01 и стандартных блоков ИРПС нарисовать, их у народа в количестве. Там надо только стабилизатор на 3.3v, разъем, и как-то согласовывать уровни TTL 3.3v с оптронами. Пусть на 9600, но все будет работать.
http://bestpics.ru/full/irps_mini.jpg
-
? S_V_B - 28.03.2018 11:28
По поводу мануала - кое что BD уже написал здесь:
http://forum.pk-fpga.ru/viewtopic.php?f=15&t=5606&p=6297#p6297
¤
Оформить в файл конечно нужно, но когда будет готова более-менее приемлемая версия софта.
Да и со временем катастрофа. Я еще прикупил УКНЦ..потихоньку осознаю всю глубину глубин.. как на БК все просто.
-
? BD - 28.03.2018 12:04
Пока помню. Для преобразователя уровней на BSS138 использовался "конструктор", мелкота, но как-то я слепой смог его спаять ))
http://bestpics.ru/full/I2C_sh.jpg
сейчас уже не найду
готовый вот
https://www.chipdip.ru/product0/9000248336
-
? BD - 28.03.2018 12:09
Вот https://www.chipdip.ru/product/rdc2-0015
-
? BD - 03.04.2018 19:51
2S_V_B, никого не слушай. емт36 скоро будет. но под консоль.
- << Форум