- Опрос: кто умеет программировать на ассемблере БК?
-
? maxstudios@ - 16.12.2015 21:02
Пишите сюда все, кто умеет программировать на ассемблере БК.
-
? Вячеслав@ - 16.12.2015 22:20
Вопрос требует уточнения - кто практикует программирование на Macro 11.
¤
Кто допиливал gcc для кросс-компиляции под PDP11.
¤
И кто в школе кодил под СМки? А БК они по ценам были недосягаемые в 80-90е.
-
? maxstudios@ - 16.12.2015 22:54
Уточню - интересует владение программированием в машинных кодах под БК.
Через какую программу-редактор человек будет кодить - неважно, хоть Macro-11, хоть Mirage, хоть вообще МОНИТОР БК-11М, или даже из-под Бейсика массивом через POKE загонять в память и передавать туда управление.
:)
-
? Волька - 17.12.2015 06:10
Сам ассемблер не проблема, можно и подучить, а вот начать писать код, да ещё и на самом БК, это начиная с программ для разработки, устройств хранения информации, раскладка клавиатуры JCUKEN (хе-хе, я как раз именно на такой работаю, могу вслепую работать на БК), да и привыкли все к хорошим клавиатурам, а там постоянный дребезг да заедания. Я планирую на БК делать Forth-подробный компилятор (мультиплатформенный), и писать код уже на нём, для начала простые стерео игры, но это не скоро ещё будет, есть дела и поважнее.
¤
Кстати, в кодах вот интересно было бы изучить, там же не сложно, восьмиричный код удобно читать и создавать, не удобно только высчитывать смещения и переделывать адреса меток.
-
? maxstudios@ - 17.12.2015 11:59
Тут тема опроса - кто и что может.
Рассуждения - в теме "Философские рассуждения...". Я туда отвечу.
:)
-
? Дмитрий - 17.12.2015 13:19
Я программировал. Только непонятно в чем вопрос - просто так узнать для статистики или есть какая-то задумка?
¤
>> Кто допиливал gcc для кросс-компиляции под PDP11.
Поддержка выпилена давным-давно за ненадобностью. Для возврата надо искать последнюю версию с поддержкой ПДП-11
-
? Аноним - 17.12.2015 14:28
Зачем опрашивать? Соберите весь свежий софт под PDP-11, что тут пробегал в разных темах, даже самый мелкий, и смотрите авторов.
-
? maxstudios@ - 17.12.2015 16:08
С вопросами и рассуждениями прошу писать в ветку "Философские рассуждения..".
В этой ветке прошу просто ответить на указанный вопрос, не засоряйте эфир.
:)
¤
-
? maxstudios@ - 17.12.2015 16:11
Вот пример ответа, от меня:
Начинал освоение программирования в кодах с помощью Mirage, но потом забросил в связи с массовым нашествием РС.
:)
-
? Вячеслав@ - 17.12.2015 16:22
СМ4 - КР580 - Z80 - дальше как у всех.
-
? TheGWBV@ - 17.12.2015 19:06
В универе без особых проблем сделала курсовую на КР580. Точно не помню, что делало устройство, но результат выводился на секционный АЦД. Шрифт хранился не в ПЗУ-дешифраторе (что удивило куратора), а брался как у БК0010 из нужного места ПЗУ и через микросхему регистра параллельного порта передавался на контакты управления знакоместом. Сколько было знакомест уже не помню.
В общем, общение с БК: от Бейсика с РОКЕ до Миража и Турбо -- не раз помогали решать "головоломки" :)
Главное с этим не переборщить было, чтобы из универа не вылететь ))
-
? maxstudios@ - 17.12.2015 19:46
Благодарю за ответы, ждем дальше. :)
-
? grf - 18.12.2015 17:30
На ассемблере пишу без проблем. В кодах - не пишу )
-
? maxstudios@ - 19.12.2015 01:03
Ну вот, ещё пополнение. :)
Благодарю за активность, ждём дальше.
:)
-
? Макс Багаев@ - 20.12.2015 10:24
я последний раз писал в 2009ом
http://forum.maxiol.com/index.php?showtopic=3810
ps: начинал в 90м или 89ом
-
? maxstudios@ - 20.12.2015 10:42
Благодарю за ответы, опрос продолжается. :)
-
? Макс Багаев@ - 20.12.2015 11:16
цель опроса ? cобрать народ на проект ?
тогда надо спрашивать другое - есть ли свободное время?
-
? Вячеслав@ - 20.12.2015 11:22
Если бы. Думаю все банально просто - себя показать, на других посмотреть.
-
? Вячеслав@ - 20.12.2015 11:26
Размяться на расчете 100 знаков числа Пи не желаете? Реализации использующие на 100% возможнсти ВМ1, ВМ1Г, ВМ2 и ВМ3.
-
? maxstudios@ - 20.12.2015 19:06
Всё ещё гораздо проще:
Цель опроса - узнать, есть ли вообще живые программисты для БК тут на форуме, или одни анонимы-пустословы.
А тем, кто заинтересован будет в реальных программистах под БК, всегда смогут зайти в опрос и с кем-нибудь договориться о конкретных задачах.
К примеру, Voland-у может потребоваться писать драйвера под Бустер или БК-12, кому-то из начинающих может потребоваться консультация по программированию, да мало ли что ещё.
Вот для этого и создан опрос, а не для разборок - для чего и почему...
:)
-
? Вячеслав@ - 20.12.2015 19:17
Если про Voland-а, то у него есть форум, который гуглится в топах по всем тематическим тегам. Хотите чужими лапками проекты делать и не хотите их озвучить - не взлетят! А для начинающих -расчет 100 цифр чиста Пи самое оно!
-
? maxstudios@ - 20.12.2015 19:23
Ну вот, уже необоснованные обвинения пошли и пустая болтовня.
Эта тема - добровольный опрос. Не нравится - нечего и следить тут.
Для болтовни, размышлений и фантастических обвинений есть другая тема - "Философские рассуждения...", туда и пишите.
-
? severyanin - 21.12.2015 01:53
Меня можете записать со знаком минус. Я не причастен :)
-
? grf - 21.12.2015 17:11
Есть еще один мощный программер на ассемблере БК - Женя Пашигоров, он же PEG. Но, видать, не читает форум.
-
? peg - 23.12.2015 21:21
Ну да, умеем помаленьку (в портфеле имеются и законченные проекты).
Ассемблер. Бейсик ;) .
Пробовал С под RT-11 (БКашную).
-
? peg - 23.12.2015 21:33
Честно, не вижу места БКашке в сегодняшнем компьютерном мире.
Когда ностальгия одолевает, запущу эмулятор, повтыкаю в программки...Смахну скупую слезу... Эх, молодость! Хорошо было!
А сегодня-то зачем? Под старую БКашку писать уже не нужно. А новая... Ее нет. А если и будет, это уже будет современный комп, ничем не отличающийся от прочих.
Писать на БКашном ассемблере? Смысл, когда уже под 8-битные контроллеры я пишу на С? Что гораздо удобнее, проще и быстрее. А мир уже завален дешевыми 32-битными контроллерами. И какой там ассемблер, меня совершенно не колышет. Есть переносимый ассемблер высокого уровня - это С.
БК уже не возродить. Даже если сделать БК с гигантской памятью, гигагерцовым процессором, юсб-портами и вай-фаем. Разве это будет БК? Идея-фикс.
¤
-
? peg - 23.12.2015 21:35
не туда, в философские вопросы хотел...
-
? Аноним - 23.12.2015 21:46
Так давайте писать под БК на С! Только что писать?
-
? Вячеслав@ - 23.12.2015 22:03
Если Вас устраивает тормозливость современных гаджетов и прожорливость новых версий стандартного набора ОСей, да Вам путь даже не в Си, а в Си++, или вовсе в Жабу с #. А другие попробуют вдохнуть новую жизнь в 'списанные" на свалку истории технологического "прогресса" железки, возможности которых и по сей день не раскрыты и на 1%. И вина в том на лени изучать и использовать столь ненавистные ассемблеры :)
-
? peg - 24.12.2015 00:49
А вы сам-то программируете на ассемблере и Си?
Известно, что программист пишет одинаковое количество строк программы в единицу времени, неважно, на ассемблере, Си или Хаскеле.
Но одна строчкаА вы сам-то программируете на ассемблере и Си?
Известно, что программист пишет одинаковое количество строк программы в единицу времени, неважно, на ассемблере, Си или Хаскеле.
Но одна строчка на Си разворачивается в 5-20 строк ассемблера.
На языке высокого уровня и писать, и отлаживать намного проще и быстрее.
Для ответственных участков есть возможность делать ассемблерные вставки.
¤
Часто вспоминаю. Мы с Пашкой 4 года писали "Принца Персии" для БКашки.
Только ассемблер, только хардкор!
Где-то в конце этого периода я приобрел себе компьютер "Союз-Неон" (94-95 годы, это как раз было продолжение и развитие БКашки). На нем крутилась РТ-11, и работал ее штатный компилятор Си. Я успел немножко на нем попрограммировать. Боже! Какое это было наслаждение после ассемблера!
¤
А тормоза современных компьютеров - это ошибка в ДНК современных программистов.
На БКашке и на "Неоне" у нас ничего не тормозило.
¤
-
? Где-то в 90-х - 24.12.2015 00:59
А давайте вдохнем новую жизнь в МК-61, потому что не устраивает тормознутость БК и прожорливость АнДОС и RT11. А возможности ПМК не раскрыты и на 0.5%. И вина в этом оболванивающего ассемблера PDP-11, и лень изучать и использовать ненавистные калькуляторные машкоды.
-
? Вячеслав@ - 24.12.2015 08:47
Ценителям тонн кода не осилившим логарифмическую линейку и таблицы Брадиса. Вы же и "совоеменные" средства не в состоянии грамотно применять - простые програмки после супероптимизирующих компиляторов из года в год растут в размерах на порядки!
-
? Аноним - 24.12.2015 11:45
Компиляторы то супероптимизируют, а библиотеки и рантаймы то пухнут.
-
? Вячеслав@ - 24.12.2015 12:17
Хороши технологии, цеплющие к простым програмкам тонны мусора. Но мне подумалось что вместо оптимизации подсунут перенос тонн кода современных технологий в отдельные кучи мусорв, гордо именуемые почему-то мегабиблиотеками, чего только не продают софтверные маркетологи без совести завернутое в яркую обертку :)
-
? Волька - 24.12.2015 14:05
В МК-61 жизнь уже вдохнули, сделали МК-152 и МК-161 на современном МК. Теперь на нём можно писать даже графические приложения, работать с внешними устройствами через COM/LPT. Так что система команд МК-52/61 не выкинута на свалку истории, а продолжает использоваться.
¤
Логарифмическая линейка тоже не раскрыта, выставив на ней коэффициент, можно сразу считывать весь диапазон значений, это же прообраз графического калькулятора. Да и выпускать можно какие угодно шкалы, чтобы работать с ними там, где нет электричества.
-
? dima83 - 06.12.2017 07:57
Несколько раз попадались посты, о написании прог в мониторе. Можно по подробнее узнать о таком программировании? В руководстве по мониторной системе БК даны только комманды и ни каких примеров!
-
? gid - 06.12.2017 09:48
В руководстве по мониторной системе для БК-0010-01 даны так же и примеры, они в 4-м столбце таблицы.
В руководствах по мониторной системе для БК-0011(М) примеров нет, т.к. система команд слизана с ДВК и все примеры остались в документации по ДВК, см там http://forum.maxiol.com/lofiversion/index.php/t5004.html книгу "ПО ДВК [TIFF] Книга 3 - Ассемблер Паскаль Бейсик", а в ней раздел "ОТЛАДЧИК И ВИРТУАЛЬНЫЙ ОТЛАДЧИК. РУКОВОДСТВО ОПЕРАТОРА"
Если этих примеров недостаточно, следует отказаться от затеи прогать прямо в кодах.
Если лень искать и читать множество разрозненной и зачастую не связанной с БК документации, следует отказаться от затеи вообще как-то связываться с БК.
-
? dima83 - 06.12.2017 10:43
Понимаете в чем дело. Бк досталась мне совершенно случайно с битой памятью. Я ее восстановил. Решил использовать для сканирования nec протокола с пультов ИК ДУ. Подключил ик-детектор к портуЮ написал программу в бейсике, но временные задержки на выполнение настолько большие, что она не ловит тайминги сигналов с порта. Вот и решил попробовать на ассемблере. Сам то я пишу под пики.В принципе что то общее есть.
-
? dima83 - 06.12.2017 10:46
Если не в тему то прошу прощения. Сейчас пытался перегнать бинарник Mirage в wav файл для загрузки на бкшке. Файл вроде сконвертировался, но не хочет запускаться в эмуляторе. В чем дело?
-
? gid - 06.12.2017 11:49
Порог вхождения в программирование на БК гораздо выше, чем на ZX. Бейсик БК для хоть чего либо, требующего более-менее какого-то быстродействия, совершенно не годится. Писать напрямую в кодах программу, длиньше чем пара десятков байтов, - сложно и гораздо дольше, чем написать её же на ассемблере и скомпилировать. одни смещения переходов задолбаешься считать, а потом пересчитывать, если надо будет вставить код куда-нибудь в середину.
Тоже сейчас взял бинарник Mirage, который грузится по адресу 66000, сконвертировал его в .wav в менеджере лент в эмуляторе.
Загрузил для начала бинарник в эмуляторе, в конфигурации БК10.
Затем выключил опцию "Эмулировать загрузку ленты" и загрузил Mirage в формате .wav. Звук пищалки должен быть включен, иначе .wav не грузится. Загрузилось. (подразумевается, что пользователь знаком с командами монитора и знает что, когда и почему надо набирать на клавиатуре)
-
? a214 - 06.12.2017 12:49
(подразумевается, что пользователь знаком с командами монитора и знает что, когда и почему надо набирать на /клавиатуре)
- :) а для Zx-a ассемблера это не нужно знать - неужели на ZX простейшую команду можно сказать человечьим языком ...
Был вариант Mirage как-бы перемещаемый (со 120000 или со 140000 в доп.ОЗУ)
- у меня вопрос к ув. gid - когда-то давно на вашем сайте (в закоулках) была программа на Бейсике (вывод файла из Писи на звуковой выход) - можно её в закоулки вернуть?
-
? dima83 - 06.12.2017 12:58
Пардон, был косяк - набрал "MIRAGE", а нужно было "Mirage". Но потом возник другой косяк - попытался загрузить ассемблированный фай (уже в мираж) тот же в wav формате и тут эмулятор завис наглухо.
-
? dima83 - 06.12.2017 13:01
кстати сохраненный в мираже файл можно можно запускать в мониторе) а если его загрузить из под бейсика как оно будет работать?
-
? dima83 - 06.12.2017 13:35
a214
Я нашел эту программу, но она не работает. По крайней мере у меня. После запуска указания имен входного и выходного файлов программа преравается выходом в бейсик с сообщением об ошибке.
-
? dima83 - 06.12.2017 13:44
Если вы не против я формализую задачу, которую хочу осуществить на БК (для этого собственно я ее и реанимировал). Необходимо подключить к одному из разрядов порта ввода ик-приемник и подавать на него команды с пульта дистанционного управления. Задача БК принять каждый байт согласно протоколу NEC и вывести результат на дисплей. Примерно в таком формате:
"ПЕРВЫЙ БАЙТ - 0"
"ВТОРОЙ БАЙТ - 255"
...
"ЧЕТВЕРТЫЙ БАЙТ - 100"
¤
байты можно выводить в десятичном виде
-
? gid - 06.12.2017 13:54
>>? a214
Что за такая программа на Бейсике? Вообще не помню такого. Как хоть называется?
¤
[тот же в wav формате и тут эмулятор завис наглухо]
Использовать wav файлы в эмуляторе - плохая идея. В этом нет смысла, а wav проще сконвертировать в bin в том же менеджере лент. Работа с бинами быстрее в разы и удобнее (меньше действий надо делать).
wav нужен только для того, чтобы загрузить файл на реальную БК через магнитофонный вход.
¤
[а если его загрузить из под бейсика как оно будет работать?]
никак не будет. Бейсик использует ОЗУ БК под свои нужды, и если запортачить ему его рабочую область посторонними данными, произойдёт всё что угодно, и в конце-концов зависание.
-
? gid - 06.12.2017 14:07
[согласно протоколу NEC]
а как вы собираетесь измерять длительность интервала между импульсами, чтобы отличить 0 от 1?
или это ИК приёмник делает, и передаёт уже байты посылками со старт/стоп битами и битом чётности?
-
? a214 - 06.12.2017 14:20
В БК-шном Бейсике есть три расширения файлов после точки: BAS (наваяеная с номерами строк но не ТХТ), COD (что-то промежуточное между интерпретатором и компилятом), BIN (программа в кодах НО и ещё раз НО ... в БК как и влюбом другом языке область загрузки в кодах нужно защитить от обычных 2+2 ВЫСШЕГО языка ...
-
? a214 - 06.12.2017 14:29
gid - Что за такая программа на Бейсике? Вообще не помню такого. Как хоть называется?
(Вроде младше меня :) и не помните ... (ну на вашем личном сайте были схемы БК и бумсь куда-то на что-то почти личное - прогамма на ПИСЬ-БЕйсике которая выводила БК-bin файлы на выход звуковой карты письки ...
-
? dima83 - 06.12.2017 14:35
Измерять длинну инмпульсов я планирую таймером, а именно по изменению логики на порту запускать таймер, далее по изменению логики копировать содержимое таймера в регистр и вычислять разность... Так например в бейсике при длительности запускающего импульса 9мс таймер отработал 209 (наименьшее значение рабочего периода). А вот импульсы 560 мкс эта прога уже не поймает.
-
? dima83 - 06.12.2017 14:36
a214
http://bk-mg.narod.ru/
-
? dima83 - 06.12.2017 14:42
подобную прогу я написал для pic, она сканирует коды пульта и записывает из во влеш-память. Но, согласитесь, видеть эти коды на экране монитора нимного нагляднее, чем читать их из памяти)
-
? MM - 06.12.2017 14:55
Если речь идет о ИК ДУ, совместимом с "5" протоколом ( советские телики с ДУ на ХЛ1, ХЛ2 ), то быстродействия БК0011М нехватит для приемлемого дампа посылки, даже после оптимизации текста программы .
Могу порекомендовать использовать СОЗУ 0 тактов, подключенное в одно из окон вместо страницы ПЗУ, например в адреса 120000-137777.
Минимальный размер СОЗУ - в районе 2 кбайт ( 1809РУ1 ). Использовать 537РУ11 - маловат размер, если только не 4 шт. одновременно ( там есть хитрость с изменением назначения выводов младшего байта МПИ - для изменения адреса регистра конфы СОЗУ 177760 ).
И быстродействие БК11М желательно поднять хотя бы до 5 мгц.
Почему использовать внешнее СОЗУ - т.к. быстродействие БК11М составляет примерно 262 т.рег-рег, при быстродействии ВП1-037 порядка 3 мкс.
А если использовать СОЗУ 0 тактов, то быстродействие БК на частоте 5 мгц практически удвоится.
-
? a214 - 06.12.2017 14:55
http://bk-mg.narod.ru/
спасибо за ссылку, НО прогресс идёт такими шагами что для загрузки из мобильника в БК нужно wav а не Mpeg mp3/mp4 (про это уже все забыли, по умолчанию в настройках мп3-4)
-
? dima83 - 06.12.2017 15:09
Ну хорошо. Давайте такой пример: запущена программа на ассемблере. На порту лог.0. Возникает имульс из лог.0 в лог.1 длительностью 560 мкс, потом снова уходит в лог.0. На мониторе указывается разность таймера. ПРИМЕРНО ЧЕМУ ОНА БУДЕТ РОВНА при самом простом построении алгоритма?
-
? a214 - 06.12.2017 15:26
dima83 - и это ко мне? - хорошо отвечу: в БК нет ровняния на 560, выравнивание на 100 (или 500 или 600) никаких 560 не мжет быть в принципе ...
-
? dima83 - 06.12.2017 15:31
a214
560 мкс это так для примера (именно стколько времени идет вспышка кодирующие импульсы).
-
? dima83 - 06.12.2017 15:31
т.е. обрамляющие их вспышки
-
? MM - 06.12.2017 15:33
Если процесс пользователя медленнее ~100 мкс на 1 шт. событие, то можно использовать прерывание IRQ3 - 270-й вектор, активный перепад - с +5в. до 0в.
-
? dima83 - 06.12.2017 15:34
И вообще тут кто нибудь может написать фрагмент проги постоянно опрашивающей порт, запускающей таймер по изменению логики на порту, ждущей вновь изменения логики, подсчитывающей разность таймера и выводящей эту разность на экран?)
-
? dima83 - 06.12.2017 15:35
MM
На БК-0010-01 от порта прерывания вроде по irq2?, но как его использовать...(
-
? MM - 06.12.2017 15:42
Использвание 270 вектора на БК11М ( прямо из пульта ):
1000 : 012737 001100 000270 012737 000340 000272 012706 001000
1020 : 106427 000000 000001 000776
1100 : 012700 000007 104063 000002
При подаче сигнала на прерывание по 270-му вектору будет воспроизводится код дисплея "звонок" ( число "7" ). Для БК0010/11 ( без "М" ) вместо числа 104063 ( ЕМТ 63 ) использовать число 104016 ( ЕМТ 16 ).
-
? MM - 06.12.2017 15:48
Для использования 100-го вектора число "270" меняем на "100", и число "272" на "102". Но для совместимости с БК11М целесообразно вывести сигнал процессора IRQ3 ( выв. 33 1801ВМ1 ) на выв. Б2 разъема УП, и приделать резистор ~2 ком от него напитание +5в.
Отмечу, что 100-й вектор активно используется в БК11М для ОС RT-11 и его применение пользователем не желательно.
-
? dima83 - 06.12.2017 15:48
MM у меня нету бк11м! у меня бк0010-10
-
? dima83 - 06.12.2017 15:49
т.е. 01
-
? dima83 - 06.12.2017 16:08
? MM если нет возможности использовать аппаратные прерывания порта, то пусть опрашивает его программно в цикле
-
? BD - 06.12.2017 16:10
Грузишь MIRAGE
S1000
и вводишь коды
-
? BD - 06.12.2017 16:23
Если в Бейсике, оператором POKE с адреса &O400 только, потом DEF USR/USR запускаешь
-
? gid - 06.12.2017 16:37
[И вообще тут кто нибудь может написать фрагмент проги постоянно опрашивающей порт, запускающей таймер по изменению логики на порту]
Ну, вот частично пример проги.
MOV #177714,R5 ;порт УП
MOV #177712,R4 ;управление таймером
MOV #177710,R3 ;счётчик таймера
MOV #77777,#177706 ;начальное значение таймера
CLR R0 ;аккумулятор
MOV #buffer,R1 ;буфер, куда сохраняем данные
3$: MOV #8.,R2 ;счётчик битов
;допустим подключили ИК датчик к биту 7, чтобы проще было
2$: MOV #34,(R4) ;запускаем счётчик в режиме одновибратора
1$: TSTB (R4) ;таймер досчитал до конца?
BMI timeout$ ;да - никаких импульсов не пришло
TSTB (R5) ;опрашиваем ИК датчик
BMI 1$ ;пока не придёт 1 (у порта УП входы выходы инверсные)
CMP (R3),#NNN ;сравниваем значение таймера с контрольным значением
ROL R0 ; после сравнения бит С будет 1, если blos - т.е.
; значение таймера меньше равно контрольного, т.е.
; длинный импульс, т.е. единица. И 0, если bhi - т.е.
; значение таймера больше контрольного, т.е. короткий
; импульс, т.е. нуль.
SOB R2,2$ ; и так все 8 битов байта
MOVB R0,(R1)+ ;сохраняем байт в буфер
BR 3$ ;и идём получать следующий байтtimeout$:
; отсутствие импульсов считаем концом передачи
; и делаем что хотим, например выводим на экран.
mov R1,R2
sub #buffer,R2 ;узнаем, сколько байтов прочитали
Beq 4$ ;нисколько
;тут п/п вывода байта в 8чном или 10чном виде. лень набирать.
4$: halt ;всё конец работы. что делать дальше сами придумайте.buffer: .BLKB 100
.END
[подсчитывающей разность таймера и выводящей эту разность на экран?]
вот тут можно переделать код - там где сравнение с контрольным значением - запись его в буфер.
когда буфер переполнится - остановиться и вывести содержимое буфера на экран, так можно будет подобрать контрольное значение.
-
? gid - 06.12.2017 16:41
что-то переводы строк сожрались, и метки timeout$: и buffer: с предыдущей строкой склеились.
-
? Dima83 - 09.12.2017 07:12
Вот спасибо! Буду разбираться. Единственно, что хотел уточнить в MIRAGE вроде метки ставить нельзя т.е. нужно напрямую обращаться к адресам комманд?
-
? dima83 - 09.12.2017 07:14
Еще небольшая поправка. На самом деле "конца импульсов" не будет, т.к. после передачи всех 4х байт следуют специальные импульсы означающие повтор команды.
-
? dima83 - 09.12.2017 10:50
скажите пожалуйста где можно найти Micro+ v2.00 для бк0010-01?
-
? BD - 10.12.2017 01:31
для твоих потребностей прекрасно подойдет TURBO6M, запусти gid'овский эмулятор, найдешь на системных дискетах андос/мкдос.
-
? dima83 - 10.12.2017 09:19
Чет не плучается найти. Дайте ссылку!
-
? dima83 - 10.12.2017 11:15
Вроде рзобрался и с турбо 2 и с турбо 8. И возник еще один вопрос возможно ли каким нибудь образом через эмулятор загонять готовые листинги (что бы их не набивать) в асемблеровский редактор?
-
? BD - 10.12.2017 11:42
ST записываешь, LO читаешь, SC редактор и т.д.
-
? dima83 - 10.12.2017 12:22
не получается - Disk Error 16
-
? dima83 - 10.12.2017 12:22
т.е. Disk Error #6
-
? dima83 - 10.12.2017 12:31
ерунда получается: если у меня эмулятор запущен в системе дос, то обратиться к образу, в который записывается файл я уже не могу. не удобно(
-
? BD - 10.12.2017 12:39
так подключи. там сверху иконки ABCD. хоть документицию изучи. из турбо записывать/читать просто в имени провод указывать, типа B:file.asm
-
? dima83 - 10.12.2017 12:44
я в том плане, что если образ занят я с него файл взять не смогу и записать тоже
-
? dima83 - 10.12.2017 14:21
Это ужас какой то! Ни кому в голову не приходило написать нормальный отладчик в полноценном windows-окне с возможностью использования буфера обмена и т.д. Как, например, в ассемблере Microchip/
-
? BD - 10.12.2017 15:35
у тебя пока бардак в голове )) отладчик тебе нужен только на реальной БК. как на РС порт-то и ик-датчиком смотреть будешь?
-
? dima83 - 10.12.2017 16:05
я не говрю о симуляторе. просто писать не удобно!
-
? BD - 10.12.2017 18:13
так на БК, даже с дубовой клавиатурой, удобство почти 100% )) только научись MP3 записывать на телефон, для сохранения труда.
¤
¤
>> BD@ - 06.12.2017 15:25
>> Ну запиши на mp3-плеер/телефон свои файлы магнитофонным копировщиком (типа CF50) хоть на 4800 бод и все.
Имеется ввиду "4я скорость". Просто не понял, наверное, что такое магнитофонные времена )) TURBO и отладчик типа MIRAGE и TRACER. Грузиться будут за 5 сек.
-
? dima83 - 13.12.2017 08:13
тему записи и считывания файлов я поднимал в другой ветеке
скажите почему при зацикливании проги в турбо 8 и остановке ее клавишей стоп прога вылетает в монитор?
-
? gid - 13.12.2017 10:01
[если у меня эмулятор запущен в системе дос, то обратиться к образу, в который записывается файл я уже не могу. не удобно]
Это сделано умышленно. потому что БКшный софт подразумевает монопольное использование дискеты. И что-то писать туда со стороны недопустимо. Просто оказалось, что в микрософтовском классе CFile нельзя запретить доступ по записи, оставив доступ по чтению, поэтому доступ блокируется полностью атрибутом CFile::shareDenyWrite, который как казалось бы должен блокировать только запись. Если что-то нужно прочитать/записать - отмонтируйте дискету, прочитайте/запишите, что нужно, и примонтируйте обратно.
А если выключить эмуляцию ввода-вывода дисковода, чтобы включилась эмуляция вращения дискеты, то там будет вообще полная несовместимость с совместным доступом к ресурсам.
¤
[Ни кому в голову не приходило написать нормальный отладчик в полноценном windows-окне с возможностью использования буфера обмена и т.д.]
Нормальный блин отладчик ему. Тут нормальный эмулятор-то написать не получается. Кто хочет - не умеет, умеет только хотеть. Кто может - тому нафиг не нужно БК какое-то.
Я делаю так:
1. пишу прогу в обычном Notepad++ с удобствами и подсветкой синтаксиса.
2. компилирую в кроссассемблере турбо.
3. записываю полученный бинарник в рабочий образ
4. монтирую образ в эмуляторе и смотрю как работает и отлаживаю места, которые работают не так, как я ожидал. Попутно правлю в нотепааде исходник.
5. если необходимо, гото 1
если нужно опробовать прогу на реальной БК, то записываю рабочий образ на дискету прогой ukdsk c драйвером fdrawcmd
и использую дискету на реальной БК.
¤
[скажите почему при зацикливании проги в турбо 8 и остановке ее клавишей стоп прога вылетает в монитор?]
А куда ей вылетать? Перенаправьте вектор 4 туда, куда хотели бы.
Если запускали прогу из-под самого турбо8 и получили вылет в монитор, то значит каким-то образом турбо 8 повредилось или был переинициализирован вектор 4.
Если запускали прогу из-под оболочки какой-либо ОС и получили вылет в монитор, то значит каким-то образом оболочка повредилась.
-
? dima83 - 13.12.2017 10:45
хорошо буду разбираться
сейчас пытаюсь очистить ячейки памяти под массив данных (нужно 4 байта) не получается. Т.е. очищаю в цикле командой CLR, потом пытаюсь считать ячейку а там совсем не то, что надо.
-
? dima83 - 13.12.2017 10:51
вот пример:
mov #1.,2000 ; записываем число 1 в ячейку 2000
mov 2000,R0 ; пересылаем в R0
call OU1 ; на пп. вывода десятичного числа
¤
выдает 1024
-
? dima83 - 13.12.2017 11:03
т.е. отдельно работает, но в цикле не получается очистить последовательно ячейки друг за другом
-
? grf@ - 13.12.2017 12:55
Не вижу цикла очистки
-
? dima83 - 13.12.2017 13:15
MOV #20.,R2
MOV #2000,R1
Q: CLR (R1)
INC R1
SOB R2,Q
¤
предполагается очистить 20 ячеек начиная с адреса 2000
-
? BD - 13.12.2017 13:32
Да все должно работать, см. п\п вывода, может не в R0 надо класть?
MOV #20.,R2
MOV #2000,R1
CLR (R1)+
SOB R2,.-2
MOV @#2000,R0
CALL OU1
¤
Все-таки хотя бы Зальцмана почитай.
Зальцман Ю.А. Архитектура и программирование на языке ассемблера БК-0010. Информатика и образование, 1990, N 4-6; 1991, N 1-5.
http://bk0010.moy.su/load/ правда там .bin для эмулятора, может в удобоваримом формате найдешь, сканы журнала только в DJVU и то не все, см. ФАЙЛЫ на этом сайте.
-
? dima83 - 13.12.2017 13:34
да я вот и читаю...все номера скачал
-
? dima83 - 13.12.2017 13:48
ну хорошо, а если далее будет идти такой вот блок:
¤
MOV #20.,R2
MOV #2000,R1
MOV (R1)+,R0 CALL AU1
SOB R2,.-2
¤
почему выкидывает в монитор не отработав данный фрагмент?
-
? BD - 13.12.2017 14:08
CALL AU1 занимает 2 слова, т.е. 4 байта, MOV (R1)+,R0 - одно слово, т.е. 2 байта.
SOB R2,.-6 должно быть. проще не париться, не считать смещение, а ставить локальную метку. это паранойя, ибо когда исходник занимает >40Кб, да еще из 3х частей... работа с таблицей меток занимает дохрена времени... ))
¤
MOV #20.,R2
MOV #2000,R1
1$: MOV (R1)+,R0
CALL AU1
SOB R2,1$
-
? dima83 - 13.12.2017 14:25
я тоже ставил метку и все равно не пашет!
¤
MOV #20.,R2
MOV #2000,R1
Z: MOV (R1)+,R0
CALL AU1
SOB R2,Z
¤
или дело в знаке доллара? на бк его вроде нет?
-
? BD - 13.12.2017 14:35
дай текст п\п вывода. наверняка она R1\R2 портит.
PS вместо $ на БК "черепашка", см. на кнопку "4" ))
-
? grf@ - 13.12.2017 14:37
да, регистры при вызове подпрограммы БК за тебя сохранять не будет ))
-
? BD - 13.12.2017 16:02
Домашнее задание: разобраться, камменты построчно. И что будет, если в строке OUT: MOV #10.,R4 написать, например, 8. или 2 ))
¤
MOV #2000,R5
MOV R5,R3
MOV #20.,R2
CLR R1
1$: MOV R1,(R5)+
INC R1
SOB R2,1$
MOV #20.,R2
2$: MOV (R3)+,R0
MOV R2,-(SP)
CALL OUT
MOV (SP)+,R2
SOB R2,2$
MTPS #0
WAIT
HALT
OUT: MOV #10.,R4
CLR R2
3$: CLR R1
2$: SUB R4,R0
BCS 1$
INC R1
BR 2$
1$: ADD R4,R0
ADD #60,R0
INC R2
MOVB R0,-(SP)
MOV R1,R0
BNE 3$
INC R2
MOVB #40,-(SP)
4$: MOVB (SP)+,R0
EMT 16
SOB R2,4$
RET
.END
-
? dima83 - 13.12.2017 16:03
вот:
¤
EMT 14
¤
MOV #20.,R2 MOV #2000,R1
¤
Z$: MOV (R1)+,RO
CALL OU1 SOB R2,Z$ RTS PC
¤
¤
OU1: MOV R0,-(SP) ;
DEC R1 ;
CLR R0 ;
1A: INC R0 ;
SUB #12,@SP ;
BGE 1A ;
ADD #12,@SP ;
DEC R0 ;
BEQ 2A ;
JSR PC,OU1 ;
;
;
2A: MOV (SP)+,R0 ; ADD #60,R0 ;
EMT 16 ;
RTS PC
.END
-
? dima83 - 13.12.2017 16:10
вот ошибка:
Z$: MOV (R1)+,RO (вместо 0 написал О)
-
? dima83 - 13.12.2017 16:21
и еще был косяк - не надо было трогать R1 числа отображались неверно
-
? BD - 13.12.2017 22:23
переход с бейсика, мучителен, но возможен ))
-
? a214 - 13.12.2017 23:59
Ассемблер БК (PDP-11) из-за команды SOB (цикл) это почти Бейсик (SOB это NEXT), попробуйте абстрагироваться от Ассемблера и пишите на мини-Бейсике в коммандах Ассемблера (есть 5 свободных польовательсеих регистра 16х - 5 идентификаторов-переменнывх A, B, C, D, E = !!! равнопрвных, в цикле SOB R4 но тогда R5-полусвободен )
-
? dima83 - 14.12.2017 07:18
На бейсике я написал прогу для сканирования пульта за пару часов (с учетом своих давно забытых школьных знаний). Она работала, но тайминги опроса порта были слишком долгими. Сам то я до этого изучал программирование на пик-контроллерах, там все намного проще: сколько тебе нужно регистров - столько объявляй и используй. 8ми битное слово. удобное средство отладки (симулятор). возможности полноценного редактирования. Сейчас у меня столько вопросов: с какого адреса можно объявлять массивы данных, что они не перекрывали программу (ведь в бк прога распологается в озу, а в пике в памяти программ)? каким образом можно реализовать побитную запись в регистры массива (в пике это делала команда bcf (установить бит в 0) или bsf (установить бит в 1). Можно ли исмпользовать другие оперативные регистры вместо R1, R2, ... ну, например, для организации влооженных циклов что бы не запутаться...
-
? a214 - 14.12.2017 08:09
В реале много циклов в цикле не бывает, цикл задержки (внутри основного цикла) точечный, отработал и регистры свободны.
В БК "псевдо-регистрами" можете использовать почти любую ячейку памяти по прямой и косвенной адресации (их 16384, разве в PIC-е есть столько регистров :)
-
? dima83 - 14.12.2017 08:17
В пике нет ЕМТ драйверов, к которым нужно обращаться только через определенные регистры. Если ты вместо R0 написал R1 то все, кранты!
-
? a214 - 14.12.2017 08:38
ЕМТ это служебные подпрограммы-драйверы в ПЗУ, передача параметров естественно через фиксированные регистры которые там задействованы - а как иначе?
И разве я здесь писал что ЕМТ это хорошо для всего? Это 10-кратные супер-тормоза ... в динамических играх в кодах их никто и не использовал.
-
? grf@ - 14.12.2017 09:10
> с какого адреса можно объявлять массивы данных, что они не перекрывали программу
После программы и размещать. ОЗУ все равноправное ) В конце проги ставишь метку массива, в самой программе обращаешься по этой метке к своим данным.
¤
>каким образом можно реализовать побитную запись в регистры массива
¤
BIS/BIC
-
? dima83 - 14.12.2017 09:24
вот примерный алгоритм моей программы:
НАЧАЛО
ждать перехода порта из лог 0 в лог 1 (т.е. пошел сигнал от пульта)
запустить таймер и ждать окончания сигнала
дождаться окончания сигнала и вычислить разность таймера (запускающий импульс 9 миллисекунд прошел)
если полученная разность таймера находится в предалах 50% - 150% от номинала, то считать импульс достоверным
запустить таймер и ждать окончания паузы (4.5 миллисекунд) - иначе перейти в НАЧАЛО
если полученная разность таймера находится в предалах 50% - 150% от номинала, то считать импульс достоверным - иначе перейти в НАЧАЛО
¤
открыть цикл M=4
открыть цикл N=8
¤
МЕТКА: запустить таймер и ждать прохождения обрамляющего импульса (лог 1 - лог 0) длительностью 560 мкс
ждать прохождения паузы (это и есть младший бит первого байта) и считать его длинну (1 мс либо 2 мс)
во время прохождения очередного обрамляющего импульса вычитанием среднего значения из полученной разности таймера определить значение принятого бита)
¤
записать полученный бит в свободный регистр ОЗУ (выборка регистра в циклу M) в разряд (7)
сдвинуть все разряды регистра вправо
ждать окончания обрамляющего исмпульса: МЕТКА
¤
закрыть цикл N
закрыть цикл M
¤
это фрагмент заполняющий 4 регистра 4мя байтами информации
-
? dima83 - 14.12.2017 10:08
кто то скажет, что можно обойтись 2мя ячейками т.к. они 16ти разрядные и в них можно загнать сразу по 2 байта информации... да можно, но как потом их вывести на экран через рекурсивную подпрограмму? это нужно будет брать старший байт потом младшиий...по маске...геморой
-
? dima83 - 14.12.2017 10:13
а как вы думаете, навскидку, какую разность покажет таймер при прохождении импульса 9 миллисекунд (при самом минимальном рабочем периоде)?
-
? grf@ - 14.12.2017 11:34
> это нужно будет брать старший байт потом младшиий...по маске...геморой
¤
есть же побайтовые операции MOVB
-
? dima83 - 15.01.2018 08:27
С прошедшими праздниками!
Медленно, но верно продвигается процесс написания проги сканирования NEC кода пульта ДУ.
И вот возник вопрос в плане обращения к ОЗУ БК. А именно как разместить массив в конце проги и заполнить его.
В литературе приводится такой пример реализации массива:
¤
Адрес Команда Текст на ассемблере
1000: 012700 MOV #6,R0
1002: 000006
1004: 005060 A: CLRB TAB-1(R0)
1006: 001777
1010: 077003 SOB R0,A
. . .
2000: TAB: .+6
¤
НО при работе в турбо 8 используется следующая команда:
¤
Адрес Команда Текст на ассемблере
1000: 012700 MOV #6,R0
1002: 000006
1004: 005060 A: CLRB TAB-1(R0)
1006: 001777
1010: 077003 SOB R0,A
. . .
2000: TAB: .BLKB+6 ;БАЙТНЫЙ МАССИВ
¤
либо
¤
Адрес Команда Текст на ассемблере
1000: 012700 MOV #6,R0
1002: 000006
1004: 005060 A: CLRB TAB-1(R0)
1006: 001777
1010: 077003 SOB R0,A
. . .
2000: TAB: .BLKW+6 ;сЛОВНЫЙ МАССИВ
¤
наконец тут говорили, что можно использовать просто метку, размещенную в конце программы
¤
Но вопрос в другом. Обращение к ОЗУ (т.е. запись числа или пересылка регистра) возможны только по четным адресам, например 2000, 2002, 2004. При попытке записать что-либо в нечетный адрес заполняются сразу оба слова... И как узнать в случае обращения к метке в четный адрес мы попадем или нет?
-
? gid - 15.01.2018 10:05
[В литературе приводится такой пример][НО при работе в турбо 8 используется следующая команда]
Это просто разные диалекты ассемблеров. Не обращайте внимания, просто имейте в виду, учитывая документацию.
¤
[наконец тут говорили, что можно использовать просто метку, размещенную в конце программы]
можно. если вы точно знаете, что после программы ничего другого полезного нету, резервировать память нет необходимости.
¤
[Обращение к ОЗУ (т.е. запись числа или пересылка регистра) возможны только по четным адресам]
Неверно. По нечётным тоже можно.
¤
[При попытке записать что-либо в нечетный адрес заполняются сразу оба слова...]
При попытке записать СЛОВО по нечётному адресу, оно записывается по (адресу & 0177776) из-за упрощённой архитектуры БК.
При попытке записать БАЙТ по нечётному адресу, происходит запись БАЙТА по НЕЧЁТНОМУ адресу. Всё как у взрослых компьютеров.
¤
[И как узнать в случае обращения к метке в четный адрес мы попадем или нет?]
Не надо ничего узнавать. Программу пишет программист, и он и только он решает, обращаться к памяти пословно или побайтно.
И только программист решает, нужно ли использовать трюк с чтением/записью слова по нечётному адресу. Тем более, что это работает только на БК, на других компьютерах обычно возникает "ошибка обращения по нечётному адресу".
-
? dima83 - 15.01.2018 10:21
Хорошо. Давайте вот такой пример. Я записал число 255(д) командой movb по адресу 2001, т.е. MOVB #255.,2001
потом я его пересылаю в R0 (MOVB 2001,R0) для дальнейшей распечатки в рекурсивной подпрограмме... Так что будет содержаться в R0 число 255 или 65535 ?
-
? dima83 - 15.01.2018 10:47
Словами оперировать несомненно проще. Но лепить начальные адреса массивов наобум тоже не есть хорошо. Вот если бы можно было расчитать метку (или сместить ее) так, что бы она начиналась с четного адреса!
-
? BD - 15.01.2018 11:04
.EVEN ставь перед меткой и все.
-
? Дмитрий - 15.01.2018 11:05
>> Так что будет содержаться в R0 число 255 или 65535
65535 из-за 7 бита (знакового) байта. Поэтому если далее надо выполнять какие-то действия над байтом, то дописывают сброс старшего байта командой BIC #177400,R0.
-
? BD - 15.01.2018 11:13
MOVB 2001,R0 и так старший байт очистит ))
-
? gid - 15.01.2018 11:46
[MOVB]
RTFM! байтовая команда movb расширяет байт до слова знаковым битом байта. Это сделано чтобы оперировать знаковыми числами. происходит обычное расширение char -> short.
Просто надо это учитывать при программировании.
¤
[Но лепить начальные адреса массивов наобум тоже не есть хорошо.]
А делать их фиксированными тоже не самое умное решение. Вот вы зададите адрес массива TAB=2000 и забудете про это, а потом ваша программа разрастётся настолько, что попадёт в эти адреса, а вы потом будете гадать, почему ничего не работает.
¤
[то дописывают сброс старшего байта командой BIC #177400,R0.]
обычно делают проще:
clr r0
bisb 2001,r0
так на слово короче получается.
и это аналогия расширения unsigned char -> unsigned short
¤
[MOVB 2001,R0 и так старший байт очистит ))]
или не очистит. если в 2001 знаковое значение байта меньше нуля.
-
? BD - 15.01.2018 12:10
gid прав, если 15й бит установлен - не очистит.
-
? dima83 - 15.01.2018 12:59
Ну вот сколько споров!
Я имел в виду объявление метки в конце программы, т.е. запись массива сразу после самой программы.
Но сейчас понял, что надежнее забивать вручную с первого четного адреса!
-
? dima83 - 15.01.2018 13:01
И с байтами возиться смысла нет, лучше сразу со словами. Они и вмещают больше и не нужно возиться со всякими MOVB...
-
? dima83 - 15.01.2018 13:24
Да, вопрос по поводу симулятора. Как правильно перенести листинг прооги на образ что бы русские слова не искажались?
-
? gid - 15.01.2018 13:26
[что надежнее забивать вручную с первого четного адреса!]
Точняк! и не доверять ассемблеру, а писать прямо в кодах - так надёжнее, а то мало ли там, чего ассемблер наасемблирует.
¤
[Они и вмещают больше]
В натуре! В слове целых два байта. А то, что два последовательно идущих друг за другом байта составляют слово - это просто совпадение.
¤
[И с байтами возиться смысла нет]
потому что вы пока не пробовали работать с текстовыми данными (не UTF-16, а с простыми, которые в байт помещаются).
-
? gid - 15.01.2018 13:31
[Как правильно перенести листинг прооги на образ что бы русские слова не искажались?]
Зачем листинг проги на образ? чтобы его на БК рассматривать?
Туда исходники нужно переносить, но перед этим конвертировать в КОИ-8. А если используется псевдографика, то ещё и не в простой КОИ-8, а в БКшный. Можно сделать консольной утилитой ITCPC, которая входит в состав эмулятора. А можно любым доучим текстовым конвертером.
-
? dima83 - 15.01.2018 13:46
нет, что бы его править! ведь на эмуляторе это делать невозможно!
-
? dima83 - 15.01.2018 14:15
еще вопрос: сколько раз можно употреблять SOB в одной программе? У меня идет ошибка 113 в строке SOB 2020,S1
-
? gid - 15.01.2018 14:29
[ведь на эмуляторе это делать невозможно!]
Возможно. Просто, гораздо менее удобно, чем в редакторе на РС.
Однако, правка листинга бессмысленна. Править нужно исходный текст.
¤
[сколько раз можно употреблять SOB в одной программе]
Теоретический предел - 10901 раз, потом память БК закончится, Но с учётом, что ещё нужно под стек что-то оставить, то ещё гораздо меньше.
¤
[У меня идет ошибка 113 в строке SOB 2020,S1]
RTFM! Ознакомьтесь с синтаксисом команды в документации. Регистра 2020 не бывает.
-
? dima83 - 15.01.2018 14:41
ну хорошо пусть R1, но возникает 102 ошибка
-
? BD - 15.01.2018 14:44
>> SOB 2020,R1
2020 - это имя локальной МЕТКИ в исходнике, а не адрес.
2020: у тебя есть?
-
? dima83 - 15.01.2018 15:18
такой метки у меня нет, я решил обратиться напрямую к памяти
-
? dima83 - 15.01.2018 15:30
сдается мне, что нельзя использовать SOB если он "тянется" выше другого SOBа
-
? dima83 - 15.01.2018 15:32
т.е.
¤
МЕТ1
MET2
sob MET2
sob MET1
¤
(нижний соб даст ошибку!)
-
? S_V_B@ - 15.01.2018 15:33
как тогда делают вложенные циклы?
-
? dima83 - 15.01.2018 15:35
ну значит дело в метках....
-
? gid - 15.01.2018 15:36
Если у вас долго ничего не получается, прочтите наконец документацию. Там дана расшифровка кодов ошибок:
113 - Ошибка в имени регистра.
102 - Ошибка длины или направления перехода в команде SOB.
¤
А ещё там описан синтаксис команды SOB, из чего можно понять, что она не умеет обращаться напрямую к памяти. переход делается только по метке, только назад, и только на 126. байтов.
¤
Правда дока до сих пор в стадии черновика, и там не всё само с собой согласовано, но в принципе понятно.
-
? BD - 15.01.2018 15:43
да просто пишется
SOB R1, MET1
а не
SOB 2020,R1
))
-
? dima83 - 15.01.2018 15:44
? BD@ - 15.01.2018 15:43
да просто пишется
SOB R1, MET1
а не
SOB 2020,R1
))
¤
Да я уже исправил, не хочет переходить по метке!
слишком много меток!
-
? gid - 15.01.2018 15:45
Вложенные циклы:
mov #1000,R5
6$: mov #1000,R4
5$: mov #1000,R3
4$: mov #1000,R2
3$: mov #1000,R1
2$: mov #1000,R0
1$: nop
sob r0,1$
sob R1,2$
sob R2,3$
sob R3,4$
sob R4,5$
sob R5,6$
¤
или с использованием только одного регистра:
mov #1000,R1
5$: mov R1,-(SP)
mov #1000,R1
4$: mov R1,-(SP)
mov #1000,R1
3$: mov R1,-(SP)
mov #1000,R1
2$: mov R1,-(SP)
mov #1000,R1
1$: nop
sob R1,1$
mov (SP)+,R1
sob R1,2$
mov (SP)+,R1
sob R1,3$
mov (SP)+,R1
sob R1,4$
mov (SP)+,R1
sob R1,5$
-
? dima83 - 15.01.2018 15:47
метки бывают локальные и глобальные их нужно правильно распределять
видимо я тут намудрил!
-
? dima83 - 15.01.2018 15:49
почему ошибка 107 в строчке:
¤
START_: MOV #32767.,177706 MOV #0.,177712 ; ТАЙМЕР
-
? S_V_B@ - 15.01.2018 15:50
Что такое глобальные метки на бкшке? У вас несколько модулей?
-
? dima83 - 15.01.2018 16:06
да нет. модуль один, но очень много меток
-
? S_V_B@ - 15.01.2018 16:10
С терминологией определитесь (глобальные метки и области видимости это несколько из другой оперы).
Попробуйте писать процедурно, а не линейно. Повторяющийся код выносите в подпрограммы. Будет и понятнее читать и меток будет меньше.
-
? dima83 - 15.01.2018 16:12
102 и 110 ошибки...
-
? S_V_B@ - 15.01.2018 16:20
/* 102 и 110 ошибки... */
¤
Вам же написали :
"102 - Ошибка длины или направления перехода в команде SOB." значит переход по sob > 126 байт.
"Если у вас долго ничего не получается, прочтите наконец документацию. Там дана расшифровка кодов ошибок:"
-
? dima83 - 15.01.2018 16:22
ну теперь понятно - слишком длинный переход! спасибо
-
? S_V_B@ - 15.01.2018 16:24
если очень нужно перейти >126 байт
¤
je m1234
jmp FARFAR
¤
m1234:
-
? gid - 15.01.2018 16:26
[почему ошибка 107 в строчке]
Не знаю, почему. У меня всё замечательно скомпилировалось
1 0001000: 0012767 0077777 0176700 START_: MOV #32767.,177706 MOV #0.,177712 ; ТАЙМЕР
0001006: 0012767 0000000 0176676
2
3 0001014: .end
¤
Глобальные метки
¤
START_ = 0001000
-
? S_V_B@ - 15.01.2018 16:32
/* Глобальные метки START_ = 0001000 */
Это больше на #define похоже, в чем её глобальность?
-
? Дмитрий - 15.01.2018 21:55
>> в чем её глобальность?
Глобальная метка "действует" во всем исходнике. Локальная метка действует и существует до глобальной. Т.е.
¤
ABC: ...
...
0: ...
...
BR 0 <- правильно
XYZ: ...
...
BR 0 <- ошибка, локальная метка "0" уже не существует
-
? BD - 16.01.2018 11:53
а на БК в MACRO или TURBO (MICRO.WS) можно и так:
BR 15$
M1: NOP
15$: NOP
"вниз" можно же...
dima83 и S_V_B даже Зальцмана не читали ))
-
? S_V_B@ - 16.01.2018 14:02
/* на БК в MACRO или TURBO (MICRO.WS) */
Вот именно в одном диалекте можно в низ в другом нельзя.. сам факт термина "глобальняа метка" ;) должен подразумевать области видимости которые должны быть не вниз не вбок...
Зальцмана читал, пишет доходчиво но я не упираюсь в какой-то из конкретных диалектов (компиляторов) ассемблера по которым даже у Вас гуру выходят споры.
и то что START_ = 0001000 - это банальный #define который будет тупо заменять текст на конкретный адрес... велика глобальность.
-
? BD - 16.01.2018 14:07
см. почту на мэйл.ру
-
? BD - 16.01.2018 14:33
и dima83, но прям в почтовое отделение. "мелкий пакет" не может месяц идти, причем авиа..
-
? gid - 16.01.2018 14:38
START_ = 0001000 В исходнике - да, в принципе, дефайн, хотя это арифметическое выражение по терминологии ассемблеров.
А в сообщении от ? gid - 15.01.2018 16:26 приведён листинг исковерканный данным форумом, полученный в результате компиляции программы, там в конце листинга выводится таблица глобальных меток. Если вас смущает знак "равно" в таблице, я могу заменить его на "двоеточие" или вообще на любой другой знак, при этом станет непривычен вид таблицы меток для всех традиционных БКшников.
-
? BD - 16.01.2018 14:43
pk-fpga.ru
Истёк срок регистрации домена
-
? BD - 16.01.2018 16:47
pk-fpga.ru оплатил S_V_B уже. ждем-с пока провайдер обработает заявку. dns, вроде, те же ))
-
? BD - 16.01.2018 17:27
http://forum.pk-fpga.ru/
все уже работает. желаю Voland'у больше не проё**ывать домены, да еще с хорошей индексацией в гугле/яндексе ))
-
? Voland@ - 16.01.2018 22:03
А разве можно чужой домен оплатить? Я вообще не знал, как оплатить, пока не восстановил пароль от долбаного 2domains.ru.
На текущий момент ещё ничего не работает, и в личном кабинете 2domains.ru домен полчаса назад значился как требующий продления.
Спасибо S_V_B конечно, но надо ж было предупредить - теперь кому-то придется писать заявление на возврат средств, поскольку более чем на год нельзя продлять.
-
? BD - 17.01.2018 16:16
исключительно для S_V_B
PORT = 177560
IRQ = 360
FONT = 112276
это "мега-глобальные" метки для БК (начальные присвоения), можно использовать в любой части проги пряи по имени.
-
? S_V_B - 17.01.2018 16:29
/* FONT = 112276 */
¤
112276 - адрес знакогенератора БК-10?
¤
Кстати для БК11м по какому адресу знакогенератор, сейчас как раз хотел выдернуть.
Перекодировку хочу сделать win-dos-koi
-
? BD - 17.01.2018 19:49
для "перекодировки" адрес шрифта не очень важен. см. в примере на http://forum.pk-fpga.ru/viewtopic.php?f=15&t=5606 там еще и UTF-8 ))
-
? S_V_B - 18.01.2018 05:44
/* для "перекодировки" адрес шрифта не очень важен */
я не для перекодировки. хочу его сразу 2х битным сделать, может подправить, функцию вывода переделать не по ASCIZ, а по длине строки.
Чтобы выводить по 80 символов в строке и сдвигать экран вправо. Можно сделать еще строку атрибутов символов для строки, чтобы на лету XORом красить хоть каждый символ.
как-то так.
а перекодировку это не сложно - табличную, это я так к слову написал.
-
? S_V_B - 18.01.2018 05:44
/* для "перекодировки" адрес шрифта не очень важен */
я не для перекодировки. хочу его сразу 2х битным сделать, может подправить, функцию вывода переделать не по ASCIZ, а по длине строки.
Чтобы выводить по 80 символов в строке и сдвигать экран вправо. Можно сделать еще строку атрибутов символов для строки, чтобы на лету XORом красить хоть каждый символ.
как-то так.
а перекодировку это не сложно - табличную, это я так к слову написал.
-
? Дмитрий - 18.01.2018 09:34
>> хочу его сразу 2х битным сделать
А для чего? Он отлично на лету преобразуется.
¤
>> функцию вывода переделать не по ASCIZ, а по длине строки.
На 10-ке EMT 20 умеет выводить строку указанной длины и до символа-ограничителя. На 11 умеет только до 0 или 200(8).
-
? S_V_B - 18.01.2018 11:05
/* хочу его сразу 2х битным сделать */
все равно так быстрее будет, с учетом того что хочу экран двигать влево-вправо лишним не будет.
¤
/* На 10-ке EMT 20 умеет выводить строку указанной длины и до символа-ограничителя */
чтобы экран сдвигать как раз хочу с любого места любой длинны без всяких символов.
¤
да и просто опыта набираюсь.
¤
Кто-нибудь скажет адрес знакогенератора на 11м?
-
? gid - 18.01.2018 11:25
А как же исследовательский дух? Как же набраться опыта, если все элементарные вещи не сами узнавать будете, а у людей выспрашивать?
адрес знакогенератора на БК11М в странице ПЗУ (10)8. по адресу 0133436
Рабочая копия знакогенератора - в странице 7 по адресу 050000 (если страница в окне 0) или 0110000 (если страница в окне 1)
Именно эта копия используется при выводе символов на экран. Свободно заменяется на свой знакогенератор.
-
? S_V_B - 18.01.2018 11:48
/*А как же исследовательский дух? Как же набраться опыта, если все элементарные вещи не сами узнавать будете, а у людей выспрашивать?*/
Какое там исследование.. я как то в детстве программку писал для поиска спрайтов, сейчас просто не охота этим заниматься и так каждый раз
как блоха по ... начинаешь одну тему перескакиваешь на другую.
Я думал что для этого и существуют подобные форумы, что бы знающие люди могли подсказать справочную информацию.
Я же не прошу у вас расписать мне весь алгоритм и не доканываю тупыми вопросами... просто адрес спросил :(
¤
Спасибо за информацию.
-
? dima83 - 18.01.2018 11:55
А я еще думал какая разница между BR и JMP. Все работает!
-
? BD - 18.01.2018 12:22
------
чтобы экран сдвигать как раз хочу с любого места любой длинны без всяких символов.
------
у БК только вертикальный скроллинг аппаратно. да и то для ускорения надо шрифт перелопачивать чтоб избежать умножения при выводе. см. читалку RTV21 by RDC.
для горизонтального надо решить много проблем, в т.ч. с памятью, чтоб весь экран не перепечатывать каждый раз, а выводить "длинные" строки из буфера сдвигая экран MOVами прям в экранном ОЗУ.
-
? S_V_B - 18.01.2018 12:27
/*для горизонтального надо решить много проблем*/
Чем и занимаюсь.. с вашей помощью. Только сначала придется я так понял.."все элементарные вещи узнать самому".. а потом уже задавать глупые вопросы.
-
? S_V_B - 18.01.2018 12:30
Давно бы уже какой-нибудь ISAшный Trident 9000 прикрутили к БКшке и было бы счастье.
-
? S_V_B - 18.01.2018 12:39
Как-то давно на x86 я текст PUSHем выводил почти мгновенно.
¤
/* шрифт перелопачивать чтоб избежать умножения при выводе */ - в чем суть?
-
? dima83 - 18.01.2018 12:42
Меня тоже интересует возможность пямой записи в видеопамять, минуя всякие там EMT16. ЭТо ведь практические что то на подобие осциллографа можно придумать!
-
? S_V_B - 18.01.2018 12:45
/* Меня тоже интересует возможность пямой записи в видеопамять */
Кто мешает пиши с 40000 что хочешь
-
? BD - 18.01.2018 12:47
см. подпрограмму EMT16/TTOUT http://forum.pk-fpga.ru/viewtopic.php?f=15&t=5606 быстрее можно только если экран не сдвигается.
-
? dima83 - 18.01.2018 12:47
S_V_B
А что писать то? Если от драйвера отказываешься то, нужно знать что и куда писать!
Разве что точки какие....
-
? S_V_B - 18.01.2018 12:51
У БК нет текстового режима, так что спрайты буковок из знакогенератора нужно будет самому выводить.
40000 - начало видеопамяти. далее зависит от текущего режима либо 1 бит на точку либо 2.
-
? dima83 - 18.01.2018 12:53
Значит если заполню всю память единицами - будет белый экран?)
-
? S_V_B - 18.01.2018 13:00
нет. если в 512x255 заполнишь 1777777 то да (все биты в слове =1 а не слово =1)
в цветном немного по другому
-
? dima83 - 18.01.2018 13:05
значит этим же способом удаляется служебная строка ----------------лат?
-
? S_V_B - 18.01.2018 13:11
Там ее просто нет - строку выводит ПП из ПЗУ.
-
? dima83 - 18.01.2018 13:18
сайчас попробовал - действительно закрашивается белым! но обращаться только к четным адресам экранного озу
и все же как можно изменить служебную стору или удалить ее вовсе?
-
? S_V_B - 18.01.2018 13:22
/*можно изменить служебную стору или удалить ее вовсе?*/
Очисти экран(заполни нулями) и можешь нарисовать хоть две свои строки, а можно и три.
-
? S_V_B - 18.01.2018 13:23
/*можно изменить служебную стору или удалить ее вовсе?*/
или ты хочешь чтобы при включении БК вместо служебной строки было "Здесь был Вася"?
-
? dima83 - 18.01.2018 13:24
да, верно, без EMT 14 заполнение происходит не сначала, т.е. EMT использовать по любому придется!
-
? dima83 - 18.01.2018 13:25
ну и васю тоже можно)
-
? S_V_B - 18.01.2018 13:29
/*EMT использовать по любому придется!*/
С какой радости? Выводи текст своей программой хоть вверх ногами и справа налево кто мешает.
Или по твоему 40000 это не левый верхний угол экрана?
-
? S_V_B - 18.01.2018 13:30
/* ну и васю тоже можно) */
Васю нельзя, пока пзу не поправишь.
-
? dima83 - 18.01.2018 13:32
Ну попробуй запусти:
¤
;EMT 14
MOV #10000,R1
MOV #40000,R0
1: MOV #177777,(R0)
INC R0 INC R0
SOB R1,1
.END
¤
а потом включи емт
-
? dima83 - 18.01.2018 13:33
А EMT 22 - запись символа в служебную строку это что?
-
? S_V_B - 18.01.2018 13:39
Тебя не смущают ответы ув. ГУРУ типа:
"А как же исследовательский дух? Как же набраться опыта, если все элементарные вещи не сами узнавать будете, а у людей выспрашивать?"
¤
Я-то так мимо проходил, одну цифру хотел узнать.
-
? S_V_B - 18.01.2018 13:44
/* а потом включи емт */
что такое "а потом включи емт".
Это когда твоя программа отработает и ты в монитор выпадешь? Естественно экран обновится.
Ты 10 бесполезных постов назад спрашивал как работать с видеопамятью напрямую, причем тут ЕМТы?
-
? dima83 - 18.01.2018 13:44
меня больше смущают другие ответы типа "Иди почитай книжку..."
-
? dima83 - 18.01.2018 13:46
так в том то и дело, что прогу ты будешь грузить не с пустого экрана, а со знака вопроса - значит уже сдвиг на одну строку и заполнение пойдет ниже...
-
? dima83 - 18.01.2018 13:48
перед обращением к видеопамяти нужно полностью очистить экран!
-
? S_V_B - 18.01.2018 13:50
Что за гон? Твоя программа по правилам хорошего тона сначала очистит экран. (Весь).
И коли ты смог вывести точку без участия ЕМТ, ты можешь хоть китайские иероглифы рисовать, в анимации и под музыку.
-
? dima83 - 18.01.2018 13:51
А на счет бесполезных постов - ну это ты зря. Я за это время написал прогу для бк сканер NEC протокола ПДУ и собрал на пик-контроллере загрузчик этой проги в бк (безо всяких дисководов и магнитафонов)
-
? BD - 18.01.2018 13:52
прочитайте Зальцмана наконец, руководство СИСТЕМА. на svb.pdp-11.ru точное есть, или так
все вопросы отпадут
http://bk0010.moy.su/load/2
уж доходчивей ничего нет
-
? S_V_B - 18.01.2018 13:54
Вот из-за тебя dima83 мне никто так и не ответил на вопрос:
/* шрифт перелопачивать чтоб избежать умножения при выводе */ - в чем суть?
-
? dima83 - 18.01.2018 13:54
Ты сам пять минут назад писаль что обращение по адресу 40000 по любому укажет на верхнюю левую точку
-
? S_V_B - 18.01.2018 13:55
И?
-
? dima83 - 18.01.2018 13:55
я же добавил, что нужно учитывать начальное смещение курсора
-
? dima83 - 18.01.2018 13:59
вот только что проверил - не очищается экран без участия EMT
-
? BD - 18.01.2018 13:59
MOV #10000,R1
MOV #40000,R0
1: MOV #177777,(R0)
INC R0
INC R0
SOB R1,1
тебе не понятна ошибка?
MOV #20000,R1
MOV #40000,R0
1: MOV #177777,(R0)+
SOB R1,1
-
? BD - 18.01.2018 14:02
--------
обращение по адресу 40000 по любому укажет на верхнюю левую точку
--------
нихрена, если был скроллинг.
-
? dima83 - 18.01.2018 14:05
Поясните
-
? S_V_B - 18.01.2018 14:05
Дык верни на место
-
? dima83 - 18.01.2018 14:08
Ну и даже так то не получается!
¤
MOV #40000,R0
MOV #177777,(R0)
-
? dima83 - 18.01.2018 14:09
черточка ниже рисуется
-
? S_V_B - 18.01.2018 14:09
РЕГИСТР СМЕЩЕНИЯ 177664 - РАЗРЯДЫ 0-7 ПРЕДНАЗНАЧЕНЫ ДЛЯ ЗАДАНИЯ АДРЕСА ЭКРАННОГО ОЗУ. ИЗМЕНЕНИЮ МЛАДШЕГО РАЗРЯДА РЕГИСТРА НА 1 СООТВЕТСТВУЕТ ИЗМЕНЕНИЕ АДРЕСА ЭКРАННОГО ОЗУ НА 100 БАЙТ, ЧТО СООТВЕТСТВУЕТ ДЛИНЕ ИНФОРМАЦИОННОГО ПОЛЯ, ПОМЕЩАЕМОГО В ОДНОЙ ТЕЛЕВИЗИОННОЙ СТРОКЕ НА ЭКРАНЕ. ТАКИМ ОБРАЗОМ, ИЗМЕНЯЯ НА 1 СОДЕРЖИМОЕ РЕГИСТРА РУЛОНА МОЖНО СМЕСТИТЬ ИЗОБРАЖЕНИЕ НА ЭКРАНЕ НА 1 ТЕЛЕВИЗИОННУЮ СТРОКУ ВВЕРХ ИЛИ ВНИЗ. ЧИСЛО КОМБИНАЦИЙ, КОТОРОЕ МОЖНО ПОМЕСТИТЬ В 8-МИ РАЗРЯДАХ РАВНО 256Д, ЧТО СООТВЕТСТВУЕТ 256Д-ТИ ТЕЛЕВИЗИОННЫМ СТРОКАМ, ОТОБРАЖАЕМЫМ НА ЭКРАНЕ. ДЛЯ ПРИВЕДЕНИЯ ЭКРАНА В ИСХОДНОЕ СОСТОЯНИЕ В РЕГИСТР СМЕЩЕНИЯ НЕОБХОДИМО ЗАПИСАТЬ КОНСТАНТУ 330. В ЭТОМ СЛУЧАЕ В ВЕРХНЕЙ ТВ-СТРОКЕ ЭКРАНА БУДЕТ ОТОБРАЖЕНА ИНФОРМАЦИЯ, СОДЕРЖАЩАЯСЯ В НАЧАЛЕ ЭКРАННОГО ОЗУ, Т.Е. С АДРЕСА 40000.
РАЗРЯД 9 ИСПОЛЬЗУЕТСЯ ДЛЯ УПРАВЛЕНИЯ РЕЖИМОМ РАСШИРЕННОЙ ПАМЯТИ. "1" В РАЗРЯДЕ ЗАДАЕТ РЕЖИМ ОТОБРАЖЕНИЯ НА ЭКРАНЕ 1/4 ЧАСТИ ЭКРАННОГО ОЗУ С АДРЕСАМИ 70000 - 77777 ( РЕЖИМ РАСШИРЕННОЙ РАБОЧЕЙ ОБЛАСТИ ОЗУ ).
РАЗРЯДЫ 8, 10-15 НЕ ИСПОЛЬЗУЮТСЯ.
РЕГИСТР ДОСТУПЕН ПО ЗАПИСИ И ЧТЕНИЮ.
¤
Гугл -две минуты
-
? BD - 18.01.2018 14:10
прочитайте Зальцмана наконец, руководство СИСТЕМА. на svb.pdp-11.ru точное есть, или так
все вопросы отпадут
http://bk0010.moy.su/load/2
уж доходчивей ничего нет
-
? BD - 18.01.2018 14:17
офф. а вы знаете почему Зальцман печатал только заглавными буквами?)) он подключил в качестве "печатающего устройства" КОНСУЛ ))
-
? S_V_B - 18.01.2018 14:20
Ув. BD@ откройте мне наконец тайну "перелопачивания шрифтов - во избежании умножения".
-
? S_V_B - 18.01.2018 14:26
если я буду их выводить в цвете заранее сделав сделав фонт двухбитным, что там умножать?
-
? BD - 18.01.2018 14:27
найди читалку RTV21, есть на дисках мкдос/андос, потом расскажешь как такой быстрый скролл возможен ))
-
? dima83 - 18.01.2018 14:30
да, мне еще рано работать с графикой....
-
? dima83 - 18.01.2018 14:31
? BD@ не открывай тайну, пусть помучается как я)
-
? dima83 - 18.01.2018 14:42
попробовал записать 330 по адресу 177664 - экран сжался в 4раза вверх
-
? gid - 18.01.2018 14:49
Зальцмана удобней читать в журнале ПК БК, или там http://gid.pdp-11.ru/books/Zaltsman.html
На http://bk0010.moy.su немного устаревший вариант, к тому же нормальное чтение немного затруднено, оно требует блока МСТД, чтобы запускался бинарник.
-
? dima83 - 18.01.2018 14:51
? gid да я скачал все эти журналы, просто вопросы возникают так быстро, что искать на них ответы только на форумах можно
-
? S_V_B - 18.01.2018 15:02
/* BD@ не открывай тайну, пусть помучается как я) */
Да я не шибко мучаюсь - мне бы твои мучения.
Ты даже не дочитал то что я тебе скопипаситл.. там уже есть ответ на твой вопрос по поводу размера экрана.
-
? BD - 18.01.2018 15:03
вот за это гранд мерси ))
http://gid.pdp-11.ru/books/Zaltsman.html
а переключение в режим РП..
mov #214, R0
emt 16
просто охреневаю, чем вы на работе занимаетесь ))
-
? S_V_B - 18.01.2018 15:04
я уже дома.. GVT+6 однако
-
? dima83 - 18.01.2018 15:12
330(8)=11011000(2) я давятый разряд не трогаю!
-
? S_V_B - 18.01.2018 15:19
EMT 14
и не парься
-
? dima83 - 18.01.2018 15:23
? S_V_B - 18.01.2018 15:19
EMT 14
¤
об этом я тебе в самом начале и говорил!
и 9й разряд должен быть не в "1", а в "0" для режима расширенной памяти!
это не первая ошибка в руководстве системного программиста, первая ошибка была в описании ТЛГ протокола!
-
? dima83 - 18.01.2018 15:25
вот что должно быть 1330!!!!!
-
? S_V_B - 18.01.2018 15:25
/*это не первая ошибка в руководстве системного программиста*/
Сжечь к чертям..
¤
ЕМт 14 помогло?
-
? dima83 - 18.01.2018 15:27
так я ею изначально пользовался, просто тут говорят что эти EMT много времени отнимают у программ
-
? S_V_B - 18.01.2018 16:02
/* EMT много времени отнимают у программ */
ЕМТ 14 каким боком отнимает? (первичная инициализация)
-
? S_V_B - 18.01.2018 16:02
/* вот что должно быть 1330!!!!! */
730 наверное
-
? BD - 18.01.2018 16:18
вы жжоте. у dima83 БК0010-01 помучанная. исходки ПЗУ есть. кто мешает MIRAGEом забраться в пошагом режиме T100000 и посмотреть.. чего там делается ))
-
? dima83 - 18.01.2018 16:35
? S_V_B - 18.01.2018 16:02
/* вот что должно быть 1330!!!!! */
730 наверное
¤
нет! именно 1330!
выполни:
¤
EMT 14
mov 177664,r0
и распечатай r0
-
? dima83 - 18.01.2018 16:36
да хотя бы таким боком, что это подпрограмма)
-
? dima83 - 18.01.2018 16:55
Но я другое хочу спросить. Вы помните первые определители номера (АОН)? Ведь они были построены на ВМ1. Интересно а для БК такая прога существует?
-
? S_V_B - 18.01.2018 17:00
/* да хотя бы таким боком, что это подпрограмма) */
А ты ЕМТ 14 в цикле решил использовать?
Она один раз выполнилась и все.
-
? S_V_B - 18.01.2018 17:04
/* определители номера (АОН) */
Сейчас уже АТС другие и АОН как услугу у оператора заказывать нужно.
-
? S_V_B - 18.01.2018 17:13
Пока тут фигней страдал весь винт от Volanda перекопал, а читалку RTV21 так и не нашел.
Есть ссылка на bk001x.ru но сайт почему-то помер, жалко хороший был.
Киньте кто-нибудь ссылкой пожалуйста.
-
? Дмитрий - 18.01.2018 17:14
>> Интересно а для БК такая прога существует?
А какой смысл в ней без начинки АОНа и подключения к телефонной сети?
-
? BD - 18.01.2018 18:37
----------
читалку RTV21 так и не нашел
----------
тут точно есть, правда без доков ))
https://yadi.sk/d/9TgvjriE3KdmTJ
если у тебя образ от Voland, обязательно обнови edit.mc и menu.mc.
для тех, кто в танке, и считает зазорным АР2/1 (Help) нажать, даже в MC есть фильтр. просто кнопку ПОВТ надо жать.
-
? S_V_B - 18.01.2018 19:23
/* тайна "перелопачивания шрифтов - во избежании умножения" */
Вы имели в виду перелопачивания шрифта чтобы не умножать код символа на 10 при определении адреса?
Зачем такие сложности, на 10 умножить можно быстро: 3 сдвига влево + 2 сдвига влево - вот и умножили на 10.
-
? S_V_B - 18.01.2018 19:25
вру 3+1
-
? S_V_B - 18.01.2018 19:27
плохо что сразу на три бита сдвинуть нельзя
-
? BD - 18.01.2018 19:28
а сколько это времени занимает? попробуй в RTV21 нажимать кнопки право/лево ))
-
? S_V_B - 18.01.2018 19:32
Да тоже.. не впечатляет.
БКшка блин вообще неспешная..оформлю как терминал из игрушки FallOut с озвучкой каждого символа :))
-
? BD - 18.01.2018 19:47
так и до изобретения "говоруна" Зальцманского докатишься ))
-
? S_V_B - 18.01.2018 19:57
Нет. Хочу trident 9000 isa с нормальным текстовым режимом и vga.
Вы же мегаэлектронщики. Пожените их на благо людям. И не нужно никакого бустера.
Их хоть и мало осталось (в гаражах и чуланах) но наверняка больше Бкшек. А тем более Бустеров.
-
? S_V_B - 18.01.2018 20:14
Только не говорите что это не возможно. Я помню в юности мы какую-то хрень буржуйскую через три конвертора протоколов последовательно подключали и нечего -работала. Сейчас нормальный комп за 25 баксов размером с флэшку. воткните между ними какой-нибудь STM32, он два раза покурить сходит пока БКшка с Трайдентом очухаются.
-
? Дмитрий - 18.01.2018 21:49
>> Пожените их на благо людям
Это никому не надо, ибо уже давно бы сделали. Да и писать под этот тандем также некому.
-
? BD - 18.01.2018 21:58
офф. кстати, ПЗУ АОНов, вплоть до русь-17, успешно прошивались на БК программатором подключаемому к УП (схему сами ищите). MKT был на одной ноге с Пашей на Тушенском рынке (автором), ему давали без "защиты" на тесты. а "зашита" была аццкая... последние N байт прошивались с пониженным напряжением. при включении контрольная сумма считалась, если с N попыток не совпадало - отказ в обслуживании ))
-
? Terra - 18.01.2018 22:07
Есть у меня одна прощивочка 1801рр1 телефонная для БК + простенькая схема мне кажется я что то где-то
выкладывал по этому поводу. Какая-то фирменная
-
? BD - 18.01.2018 22:26
2Terra, у MKT был программатор прошивающей все, без дополнительных источников питания (+18 вольт) и т.п. просто блок для УП с 4мя панельками. для тех времен это было круто ))
-
? Terra - 18.01.2018 23:23
Это и сейчас круто. Но сейчас его 100 пудов нету. Можно было ты считать на самой БК0010, там софт походу дела под неё. Но с контроллерами что она не работает. А моя основная 11м не запустилась.
-
? MM - 18.01.2018 23:43
Насчет Триадента 9000 на МПИ - готов провести ОКР.
Вопрос только в накладных расходах - мелкоте ИС , макетках, протопитах 4СПП и т.п. мелочах.
И без всяких неспортивных ПЗУ, ПЛМ, ПЛИС и ОЭВМ.
Дрова для RT-11 - сами напишите, по ТО моей приставки.
Возможны варианты - "просто", "оптимально", "подойдет к изрядному к-ву ISA плат". Вариант "Универсальный" - это отдельная корзинка с кучей ИС, не интересно и Дорого
-
? BD - 18.01.2018 23:50
кури РУ5 )) на али отличные цифровые
осцыллогрфы за копейки, особенно в виде "конструктора". вся мелкота уже впаяна ))
-
? BD - 18.01.2018 23:52
это Terra было )(
-
? S_V_B - 19.01.2018 05:34
/* а сколько это времени занимает? попробуй в RTV21 нажимать кнопки право/лево )) */
¤
Можно вообще без арифметики обойтись да еще с перекодировкой совместить.
Для каждой кодировки DOS, KOI ... сделать таблицу адресов (или смещений) символов и сразу выводить.
Один сдвиг кода влево. Для смещений ещё базу прибавить.
-
? dima83 - 19.01.2018 07:38
? Дмитрий - 18.01.2018 17:14
>> Интересно а для БК такая прога существует?
А какой смысл в ней без начинки АОНа и подключения к телефонной сети?
¤
А чем Вам не начинка та, что в самой БКшке? Портов там навалом - цепляй что хочешь, хоть индикаторы, хоть компараторы. Меня БКшка интересует чисто для инструментальных целей.
-
? Дмитрий - 19.01.2018 09:18
>> А чем Вам не начинка та, что в самой БКшке?
А где там начинка АОНа? Одной программы недостаточно. А делать начинку никто не будет - неактуально.
-
? dima83 - 19.01.2018 09:36
? Дмитрий
я на Вас удивляюсь, Дмитрий! Процессор, оперативная память, пзу и прочее - это разве не начинка???
-
? dima83 - 19.01.2018 09:37
Тогдашний АОН это наоборот урезанный БК. Я процентов на 99 уверен, что первая прога АОНа писалась именно под БК.
-
? MM - 19.01.2018 10:18
Был вариант АОНа на 1801ВМ1А, 573РФ3 ( тогда еще 1801РР1 небыло - 1986 г), 2 шт. КР537РУ8 ( не требуют защелкивания адреса внешним регистром ), КР580ВВ55А.
Потом его пропатчили на 4 шт. 556РТ7 + 555ТМ9 ( плата стала занимать весь корпус Рижского телефона )
Но как только стали послабления на таможне - 1988 г, вперед пошел вариант на Z80, переделанный с КР580ВМ80А ( вариант прибора 1982 г. для АТС )
-
? Дмитрий - 19.01.2018 10:25
АОНы были и на Z80. И даже какие-то стационарные телефоны были на Z80 или подобных. Софт под них писался исключительно под Спектрум? То, что проц в компе и АОНе один и тот же совершенно не значит, что софт для АОНа писали под комп. То, что напихано в АОН формально отсутствует в компе. Порты есть, но в компе они никуда не подключены, а в АОНе используются в своих целях. Скорее всего была тестовая приставка-прототип АОНа к компу, софт писали на компе под эту тестовую приставку, с использованием специфичных портов, которые приставка использовала. Затем залили ее в АОН и понеслась. Так вот этот софт без приставки на компе работать не будет - не с чем. А приставки нет - ее надо делать. Причем не факт, что имеющаяся в свободном доступе схема приставки-АОНа для компа будет совместима с тем самым софтом. Так что Ваши 99% - это догадки, основанные на незнании.
-
? dima83 - 19.01.2018 10:42
? Дмитрий - 19.01.2018 10:25
Прочитайте предыдущие посты, где я писал, что к портам БК можно подключить "хоть индикаторы, хоть компараторы".
-
? dima83 - 19.01.2018 10:46
Естетсвенно, что была подключена какая то приставка (тот же компаратор, датчик вызова на линии и прочее). Возможно даже подключался семисегментный светодиодный индикатор, дабы иметь возможность не использовать монитор. Может быть прога зашивалась в отдельный блок и подключалась в разъем для МСТД. Ну чем вам не прототип первого АОНа? Ну а если ничего другого кроме БКшек под рукой не было? Тот даже знаеия не нужны что бы с высокой долей вероятности предположить что именно на БК все это собиралось.
-
? dima83 - 19.01.2018 10:48
То, что было ботом - оно было потом. В данном случае я говорю именно про первые АОНы на ВМ1. Вы думаете это случайность?
-
? dima83 - 19.01.2018 10:49
Коль уж Вы меня обвиняете в незнании, я вас обвиню в недальновидности и нелогичности)
-
? BD - 19.01.2018 11:09
Вообще-то через блочек ИРПС к БК модем подключался. Как только "железный занавес" пал и было по карману купить US Robotics sportster а то и courier (стоил дороже БК) с флеш памятью - прошивки с АОНом для них уже почему-то уже были ))
-
? S_V_B - 19.01.2018 11:33
Я не могу понять о чем вы тут так горячо спорите?
Разве АОН 90х годов который использовал сервисные функции древних АТС будет работать с чистой цифрой? Протоколы сигнализаций совсем другие.
Сервисы прописываются вплоть до будильника.. порты и др.Куда вы его втыкать то будете в свитч что ли.
-
? BD - 19.01.2018 11:49
Мы не спорим )) Благодаря тов. Карцеву сохранились даже некоторые наработки типа BBS для БК, UUE для чтения почты и проч. Желаюищие могут даже поковыряться https://yadi.sk/d/UNZkkDNa3RbDKi
-
? S_V_B - 19.01.2018 11:57
Ув. BD@ смотри что я придумал:
¤
/* а сколько это времени занимает? попробуй в RTV21 нажимать кнопки право/лево )) */
¤
Можно вообще без арифметики обойтись да еще с перекодировкой совместить.
Для каждой кодировки DOS, KOI ... сделать таблицу адресов (или смещений) символов и сразу выводить.
Один сдвиг кода влево. Для смещений ещё базу прибавить.
¤
Намного быстрее будет, чем с переделанным фонтом и размер шрифта можно любой делать, один раз пересчитать таблицу.
-
? dima83 - 19.01.2018 12:00
А я сейчас нарисовал красивые узоры, загоняя таймер в видеопамять в бесконечном цикле....
-
? S_V_B - 19.01.2018 12:02
афигеть :)
-
? dima83 - 19.01.2018 12:04
вот как из бк-шки сделать осциллограф с функциями записи и анализа
вот это будет реально офигеть!
-
? S_V_B - 19.01.2018 12:05
dima83 - не флудь пожалуйста, а то мое сообщение уже второй раз за горизонт уедет
-
? dima83 - 19.01.2018 12:08
? S_V_B - 19.01.2018 12:05
ты бы хотя б сказал для чего тебе это, может тебе тогда и помогли бы
-
? dima83 - 19.01.2018 12:17
? BD@ - 19.01.2018 11:49
Сейчас скачал тот образ, где модем. Скажи пожалуйста в какой проге все это писалось?
-
? BD - 19.01.2018 12:24
--------
Можно вообще без арифметики обойтись да еще с перекодировкой совместить.
--------
Научи! )) Вот это проклятое вычисление адреса в знакогенераторе. А таблицы перекодировки - вообще мелочь, один MOV.
¤
MOV #40000, R2
BIC #177400, R0
TSTB R0
BPL 10
SUB #40, R0
10: ASL R0
MOV R0, R3
ASL R0
ASL R0
ADD R3, R0
ADD #FONT-500,R0
MOV 160, R3
MOV #100, R1
MOVB (R0)+, @R3
....
-
? S_V_B - 19.01.2018 12:24
/* ты бы хотя б сказал для чего тебе это */
Я же вроде написал "для вывода 80 символов в сторке со сдвигом экрана вправо"
чтобы закончить "ИС искусственный разум" и убить всех человеков.
-
? S_V_B - 19.01.2018 12:28
/*Вот это проклятое вычисление адреса в знакогенераторе.*/
Смысл не считать адрес на лету, а сделать таблицу заранее вычисленных адресов.
¤
Код символа сдвигаем влево *2 потому что в словах. получаем смещение в таблице адресов.
Помнится так раньше таблицы синусов для 3d делали.
-
? BD - 19.01.2018 12:38
-------
для вывода 80 символов в сторке со сдвигом экрана вправо
-------
Зачем? На БК11М emt 115 и так умеет 80 печатать в одной строке. Редактор M82 вообще 82 )) Даже вьювер в MKDOS умеет (кнопочка [8]).
-
? Дмитрий - 19.01.2018 12:39
>> нелогичности
Нелогичность в Вашем рассуждении считать, что софт на БК загрузил и поехала БК АОНом работать. А то, что самого АОНа нет - это мелочи, главное программа есть...
¤
>> сделать таблицу заранее вычисленных адресов
Таблица будет занимать гораздо больше, чем код вычисления - на каждый байт экономили из-за нехватки памяти.
-
? S_V_B - 19.01.2018 12:44
/*БК11М emt 115 и так умеет 80 печатать*/
С возрастом зрение падает-эти каракули даже с очками не разобрать.
Может если что-то читабельное получится возьмусь @BD браузер текстовый писать.
-
? S_V_B - 19.01.2018 12:47
/* Таблица будет занимать гораздо больше, чем код вычисления */
А вам куда память экономить, для других процессов?
Главное чтобы для твоей задачи хватило.
А так конечно это перефразированное "Золотое правило механики" - "Выигрываешь в скорости - теряешь в памяти"
-
? BD - 19.01.2018 13:00
2dima83 ИИ следит за нами )) стоило только бланк розыска распечатать с сайта почты - сразу все нашлось.
¤
Выпущено таможней
19 января 2018, 11:54 102972, Шарапово
Прием на таможню
19 января 2018, 11:53 102972, Шарапово
Прибыло на границу России
30 декабря 2017, 21:42 102972, Шарапово
-
? Дмитрий - 19.01.2018 13:02
>> А вам куда память экономить, для других процессов?
Попробуйте напишите что-нибудь объемное, а не "hello world" - быстро столкнетесь с нехваткой памяти. И расточительство в виде раздутого знакогенератора и таблицы адресов символов (которые внезапно!! занимают память, которую можно было использовать в других целях) покажется грубой ошибкой. Древнюю версию unix'а тоже переписали на БК - едва влезла в память, запускать в ней нечего - нет памяти для процессов.
¤
>> "Выигрываешь в скорости - теряешь в памяти"
К сожалению неприменимо для БК - мало и памяти, и скорости.
-
? dima83 - 19.01.2018 13:08
Дмитрий - 19.01.2018 12:39
>> нелогичности
Нелогичность в Вашем рассуждении считать, что софт на БК загрузил и поехала БК АОНом работать. А то, что самого АОНа нет - это мелочи, главное программа есть...
Ну тогда будте так любезны, расскажите нам что такое АОН и чем он радикально отличается от БК.
-
? S_V_B - 19.01.2018 13:12
/* К сожалению неприменимо для БК - мало и памяти, и скорости. */
Ну во первых 11м не 10ка, есть еще SMK512 - в угоду скорости будем тратить память, а там видно будет.
-
? dima83 - 19.01.2018 13:15
Мне так думается: купил как то (или принял в дар) тов. Суходольский по случаю БК и стал думать как бы ее использовать т.с. в практических целях. Думал он думал ...да и прикрутил пару деталек к порту, подключил к телеыонной и линии и в конце концов написал прогу, определющую номера входящих звонков в формате безинтервального пакета. А потом решил это дело поставить на поток - выкинул из схемы все ненужное и оставил проц, озу, пзу и пару регистров (ну и аналоговую обвязку для согласования с тел. линией).
-
? dima83 - 19.01.2018 13:18
? BD@ - 19.01.2018 13:00
они видимо думали, что на твоей 4х гиговой флешки стратегические и оборонительные координаты записаны)))
-
? S_V_B - 19.01.2018 13:19
/*подключил к телефонной и линии */
ключевое слово-где вы сейчас такую линию найдете и такие АТС. Старые АОНы насколько я помню использовали трюк (не совсем корректный)-с помощью этих сигналов АТСки между собой инфу об абоненте передавали.
-
? dima83 - 19.01.2018 13:21
? S_V_B - 19.01.2018 13:19
только на междугороднюю АТС для автоматической тарификации междугородних звонков!
-
? dima83 - 19.01.2018 13:22
нам это нужно чисто в плане общего развития
кроме того FSK и DTMF стандарты тоже можно реализовать на БК
-
? dima83 - 19.01.2018 13:25
ведь бывают случаи когда нужно организовать управление каким либо удаленным устройством по телефонной линии... вот вам и БК в помощь
-
? dima83 - 19.01.2018 13:25
ведь бываю случаи когда нужно организовать управление каким либо удаленным устройством по телефонной линии... вот вам и БК в помощь
-
? Дмитрий - 19.01.2018 13:26
>> расскажите нам что такое АОН и чем он радикально отличается от БК
Раз вы просите: сам БК не умеет работать с телефонной линией и АТС на ее конце без дополнительного железа, АОН - умеет.
-
? dima83 - 19.01.2018 13:28
? Дмитрий - 19.01.2018 13:26
зато БК умеет считать) в частности перемножать квдратурные каналы и определять максимально вероятную частоту)
даже не знаю какую вам книжку посоветовать для прочтения....
-
? S_V_B - 19.01.2018 13:28
При большом желании и хорошем слухе наверное можно и без АОНа команду АТС в трубку насвистеть ;)))
-
? dima83 - 19.01.2018 13:30
А блю бокс помните?)
-
? S_V_B - 19.01.2018 13:30
/* не знаю какую вам книжку посоветовать для прочтения...*/
книжка небось 75года выпуска.
-
? dima83 - 19.01.2018 13:32
? S_V_B - 19.01.2018 13:30
/* не знаю какую вам книжку посоветовать для прочтения...*/
книжка небось 75года выпуска.
87го)
-
? S_V_B - 19.01.2018 13:32
/*А блю бокс помните?)*/
Этож буржуйская тема была для обмана биллинга? Но с приходом цифры она сразу сошла на нет.
-
? dima83 - 19.01.2018 13:35
? Дмитрий - 19.01.2018 13:26
>> расскажите нам что такое АОН и чем он радикально отличается от БК
Раз вы просите: сам БК не умеет работать с телефонной линией и АТС на ее конце без дополнительного железа, АОН - умеет.
Ну скажите мне плизз что такое это "дополнительное железо"?
А теперь скажите мне что такое микропроцессорное ядро, разрядность системной шины, адресное пространство и системма команда МП?
Ведь основа любого цифрового устройства это именно процессор! А пара стабилитронов, емкостей и транзисторов это так...мелочи
-
? Дмитрий - 19.01.2018 13:36
>> зато БК умеет считать) в частности перемножать квдратурные каналы и определять максимально вероятную частоту)
>> даже не знаю какую вам книжку посоветовать для прочтения....
БК много чего умеет, но не умеет работать с линией без доп. оборудования. Без этого доп. оборудования даже комп, с которого вы пишете ерунду, не умеет работать с линией/АТС. Я даже не знаю что вам советовать почитать - начните с азов: что такое процессор, что такое модем, материнка и прочее.
-
? Дмитрий - 19.01.2018 13:37
>> А теперь скажите мне что такое микропроцессорное ядро, разрядность системной шины, адресное пространство и системма команда МП?
А теперь просьба связать это все с работой с телефонной линией. А то по вашим рассуждениям получается "в огороде - бузина, а в Киеве - дядька".
-
? dima83 - 19.01.2018 13:40
>> А теперь скажите мне что такое микропроцессорное ядро, разрядность системной шины, адресное пространство и системма команда МП?
Да тут особо связывть и нечего - оцифровать сигнал через компаратор (СА3 например), ну и если нужно что то в линию выдавать то поставить транзистор через небольшое соспротивление в линию. Да и линию предварительно завести на диодный мост).
-
? dima83 - 19.01.2018 13:41
да, забыл, нагрузочный транзистор еще для автоподнятия)
-
? dima83 - 19.01.2018 13:42
Подключаете все это к портам БК, загружаете прогу - вот вам и аон)
-
? Дмитрий - 19.01.2018 13:43
>> Подключаете все это к портам БК, загружаете прогу - вот вам и аон)
Замечательно. А теперь найдите все перечисленные детали на плате БК, без которых ваша софтина бесполезна от слова "совсем".
-
? dima83 - 19.01.2018 13:46
На плате БК этих деталей нет.
Но зато в первых АОНах стояло то, что было на платах БК.
Из этого делаем вывод, что сначала была КУРИЦА (КБ), а потом ЯЙЦО (АОН)
-
? S_V_B - 19.01.2018 13:47
/* в частности перемножать квдратурные каналы и определять максимально вероятную частоту */
мне особенно слово перемножать нравится, последнее время оно что-то бесить меня начинает
-
? dima83 - 19.01.2018 13:50
Ну не было в 80е годы ничего кроме БК, вот человек и взял БК: написал программу, поставил компараторы там всякие на порт и получился АОН. А потом решил заработать - отсек всё лишнее (урезал) и стал делать уже готовые АОНЫ на базе БКшного МИКРОПРОЦЕССОРНОГО КОМПЛЕКТА
-
? S_V_B - 19.01.2018 13:53
Да пусть подключает, может мы действительно что-то не догнали. А оно как заработает. Будет чем похвастаться.
-
? S_V_B - 19.01.2018 13:54
Интересно сколько минут БПФ на бкашке считаться будет?
-
? Дмитрий - 19.01.2018 13:57
>> На плате БК этих деталей нет.
Воот! Мы пришли к тому, что для работы БК с линией нужен некий адаптер, который принимает сигналы с линии, оцифровывает и передает на выход, в свою очередь принимает сигналы от устройства управления (БК) и преобразует их в понятные АТС.
¤
>> Но зато в первых АОНах стояло то, что было на платах БК.
АОНа у вас нет, есть БК. А теперь внимание вопрос - что вам потребуется для работы с телефонной линией?
¤
Продолжим про перечисленные вами детали. Чтобы ваше устройства было подключено к, как вы выразились, "к портам", а внешних портов у БК ровно один - 177714 (УП). Можно подключить к нему, но нужен некий "контроллер", который преобразует сигналы в понятный программисту байт. Возможно вы намерены сделать контроллер, который "сядет" на шину БК (будет подключаться к МПИ), займет свободный адрес в диапазоне 177700-177777, будет принимать сигналы из вашей программы и перенаправлять их собранному вами преобразователю для работы с телефонной линией. А также возможно понадобится адрес "порта" для выдачи преобразованных сигналов от вашего преобразователя. Из этого делаем вывод, что вы понятия не имеете об устройстве БК.
-
? dima83 - 19.01.2018 14:00
Какая ЧУШЬ (о Господи)!
-
? dima83 - 19.01.2018 14:01
У БК 2 порта - один порт ввода, другой порт вывода. И на первом и на втором по 16 разрядов, т.е. по 16 проводов!
-
? Дмитрий - 19.01.2018 14:02
Чушь написана вами от незнания. Вы мне напоминаете Незнайку - че там учиться? дергай ручки, крути руль.
-
? dima83 - 19.01.2018 14:03
Какой еще "преобразователь"! Я же написал - один компаратор и два транзистора! Компаратор подключается любому разряду входного порта, транзисторы - к любым двум разрядам выходного порта!
-
? S_V_B - 19.01.2018 14:04
/* Какая ЧУШЬ (о Господи)! */
Но хотя бы АЦП где вы возьмете? Однобитный в МГ? Или сразу в порт?
-
? dima83 - 19.01.2018 14:05
Обращение к портам происходит через регистр 177714 командами ассемблера.
-
? S_V_B - 19.01.2018 14:06
/*один компаратор и два транзистора*/
Всякие придурки DSP зачем-то придумывают, а тут все просто.
-
? dima83 - 19.01.2018 14:06
Зачем нам АЦП?? Обычный компаратор (даже прстой инвертор иногда ставили)
-
? Дмитрий - 19.01.2018 14:07
>> Какой еще "преобразователь"!
60В с линии вы будете прямо на порт совать? Ну удачи чо... Прочитайте на досуге про преобразователи сигналов.
-
? dima83 - 19.01.2018 14:07
Хотя я по началу тут тоже чушь писал, грех на других жаловаться)
-
? dima83 - 19.01.2018 14:09
? Дмитрий - 19.01.2018 14:07
НУ наконец возьмите любую схему АОНа (не важно на каком процессоре)
60В с линии вы будете прямо на порт совать?
Есть такой прибор - стабилитрон называется)
-
? S_V_B - 19.01.2018 14:09
Да что болтать - делайте. Вы уже ИК приемник прикрутили? Пульт работает?
-
? dima83 - 19.01.2018 14:10
Так я то сделал (и безо всяких АЦП)))))
-
? dima83 - 19.01.2018 14:12
Я как то FSK аон на пик контроллере писал, исходник правда Бачул дал, ну побаловался, увидел, что он в память правильный номер пишет и раборал...
-
? dima83 - 19.01.2018 14:12
...разобрал...
-
? dima83 - 19.01.2018 14:14
щас реально хчу типа осциллографа что нибудь сделать, что посоветуете?
-
? dima83 - 19.01.2018 14:15
сейчас даже вопрос не в амлитуде сигнала, просто сигнал достаточный для работы входного порта. Хочу что бы на экране рисовалась осциллограмма причем в реальном времени
-
? Дмитрий - 19.01.2018 14:15
>> Хотя я по началу тут тоже чушь писал
К сожалению вы ее продолжаете писать.
-
? S_V_B - 19.01.2018 14:16
Планов громадьё...
-
? dima83 - 19.01.2018 14:18
Дело в том, что раньше для исследования сигнало (а именно их записи) я использовал звуковой редактор компьютера, там можно было растянуть сигнал посчитать его длительность
А чем БК плох для этой цели?
-
? Дмитрий - 19.01.2018 14:19
Ждем вопросов типа "как считать последовательность с порта" и "как рисовать осциллограмму в реальном времени"
-
? dima83 - 19.01.2018 14:19
? Дмитрий - 19.01.2018 14:15
Дим, создайте отдельную тему. Мы вам поможем, обещаем!
-
? Дмитрий - 19.01.2018 14:19
>> А чем БК плох для этой цели?
Недостаточное быстродействие.
-
? dima83 - 19.01.2018 14:20
Причем не просто последовательность, а знести данные в видеопамять по ходу считывания да еще и так что бы получлась осциллограмма!
-
? dima83 - 19.01.2018 14:21
? Дмитрий - 19.01.2018 14:19
>> А чем БК плох для этой цели?
Недостаточное быстродействие.
Мне тоже самое говорили, когда я сканер пульта писал. Однако же написал и работает!
-
? Дмитрий - 19.01.2018 14:25
Ну пишите тогда. Вас же никто не связывает по рукам и ногам и не твердит "ни в коем случае не пиши! ни в коем случае!"
-
? dima83 - 19.01.2018 14:28
ну мало ли, может кто то что то подскажет умное
опять же экономия времени и нервов
¤
Кстати, а вы что нибудь подобное писали?
-
? dima83 - 19.01.2018 14:30
Да и все таки объясните мне для чего нужна дополнительная дешифрация портов? Ведь обратиться к каждому их разряду легко и просто. И их количества нам вполне достаточно.
-
? Дмитрий - 19.01.2018 14:37
Нет. Меня в свое время интересовал асм. Все ассемблеры были неудобные, мало памяти под текст, часто несовместимы по псевдокомандам. Из серьезного я писал транслятор, без редактора, который бы понимал тексты редактора Vortex. Была мысль оформить транслятор как модуль к Vortex. Работа до конца не была завершена - спалил БК и винт. Потом забросил, появился РС и стал программировать на нем. Потом узнал про этот сайт, ув. Воланд анонсировал новую БК (БК12), но работы заглохли на стадии бустера для 11(М). Сейчас разбираюсь с эмулятором ув. gid и хочу написать симулятор БК12 такой, какой я ее вижу. Мб когда-нибудь потом кто-нибудь возьмется реализовать ее в железе. Система команд уже готова, полностью совместима с БК, добавлены префиксы, 32-разрядные регистры.
-
? dima83 - 19.01.2018 14:39
Ну тогда почему же вы в такой простой и ерундовой вещи как АОН "плаваете"?
-
? dima83 - 19.01.2018 14:39
Я сейчас даже не говорю о программном оформлении
-
? dima83 - 19.01.2018 14:43
Ведь заставить БКшку выдавать в телефонную линию сигнал 500 гц (запрос аон) или принимать сигнал с компаратора и писать его напрямую в память это же не сложно!
-
? Дмитрий - 19.01.2018 14:44
>> Ну тогда почему же вы в такой простой и ерундовой вещи как АОН "плаваете"?
Вот вы опять чушь пишите. Плаваете вы не зная как согласовать уровни ТТЛ (если не ошибаюсь) порта БК и сигналы с телефонной линии.
-
? dima83 - 19.01.2018 14:53
Да что тут согласовывать! Земля у вас общая. Стасите емкость + резистор после "+" диодного моста далее пристегиваете стабилитрон и на вход компаратора. Питание +5 в (можно от самой БКшки)
-
? dima83 - 19.01.2018 14:54
На выходе компаратора при превышении порогового сигнала будет тоже +5 в, если ниже порогового то 0 В. Какие еще преобразователи уровней!
-
? dima83 - 19.01.2018 14:55
Я на коленках собирал эту ерунду)
-
? dima83 - 19.01.2018 14:56
Можно делитель напряжения на входе поставить: например 100 ком с диодного моста и 20 ком на землю
-
? dima83 - 21.04.2018 17:11
Добрый день. У меня возникла идея выводить информацию с БК на семисегментные светодиодные индикаторы с выходного порта БК. Таким образом можно отказаться от монитора. В моем случае загрузка программы не требует его наличия. Вот думаю как бы реализовать данную задачу. Имею в наличии большое количество индикаторов, которые нужно оформить аппаратно. Но самое трудное это программное оформление. Как пример нужно вывести на индикаторы четыре десятичных числа, разделенных пробелами... Кто что подскажет по данному вопросу?
-
? TheGWBV@ - 21.04.2018 19:22
Всё как в Мониторе БК надо делать :)
Таблицу "шрифтов". Мне за такое в Универе по курсовой по цифровой электронике пять баллов поставили ))
-
? dima83 - 24.04.2018 15:29
А можно как то в БК реализовать подпрограмму табличной конвертации по аналогии с пик-контроллером? Т.е. преобразование позиционного кода в какой либо мнемокод?
-
? BD - 24.04.2018 16:08
у тебя на УП 16 бит, чего же боле? гугли "дешифратор для светодиодного индикатора", их мульен.
-
? BD - 24.04.2018 16:10
вообще есть конструкторы индикаторов, где все уже есть.
-
? dima83 - 24.04.2018 16:11
Жирно будет все 16 бит использовать. Как бы съэкономить...
-
? dima83 - 24.04.2018 16:12
Была у меня мысля использовать регистры сдвига и для управления сегментами и для управления разрядами. Т.е. 2-3 разряда задействовать всего.
-
? dima83 - 24.04.2018 16:13
2-3 разряда БКшечного порта
-
? BD - 24.04.2018 16:21
ну, и получается 3. 1й - выбор сегмента, 2-3 сигнал.
-
? dima83 - 24.04.2018 16:25
Вообще можно только 2мя обойтись - Data и Strob. Т.е. если нужно управлять 20ю индикаторами, то один из регистров (восьмиразрядный регистр сдвига) будет управлять сегментами, а остальные три регистра - разрядами.
-
? dima83 - 24.04.2018 16:26
Но вот что интересно. Если загонять всю эту "колбасу" в наши четыре регистра, а потом обновлять информацию (не менее чем через 100 миллисекунд), то как это отразиться на индикаторах?
-
? BD - 24.04.2018 16:29
вообще 2 бита, если дешифратор двоичного кода. скорость индикации ведь пофиг.
-
? dima83 - 24.04.2018 16:37
ну хорошо. а потокам выдержат?
-
? BD - 24.04.2018 16:45
ЖК - выдержат. только раглядеть ничего не получится, если тупо обновлять все 4 сегмента, а не выбирать нужный в зависимости от предыдущего значения ))
-
? BD - 24.04.2018 16:49
на светодиодных будет всегда 8888 ))
-
? dima83 - 24.04.2018 16:53
Речь то идет о динамической индикации. Каждый разряд будем держать 100 миллисекунд. "Колбаса" по идее должна загружаться быстро... Почему думаешь, что будет 8888?
-
? dima83 - 24.04.2018 16:56
Ну а если между регистрами и портом БК поставить пик качестве управляющего элемента, то БК можно освободить от постоянного обслуживания индакаторов...
-
? BD - 24.04.2018 17:05
100мс ни один индикатор не осилит. хотяб 500мс.
-
? dima83 - 24.04.2018 17:07
т.е. полный цикл обслуживания 20 индикаторов будет равен 10 секундам! Это же такое мерцание будет!
-
? BD - 24.04.2018 17:19
у ЖК 100мс, вот и думай. речь про правильный софт на БК, чтоб лишний раз светодиодный не обновлять.
-
? BD - 24.04.2018 17:31
-----
цикл обслуживания
-----
нет, сегменты надо только нужные менять не чаще 0.5 секунды. а на первичное обновление - пофиг.
-
? kt315b@ - 25.04.2018 08:55
А что если поставить сдвиговый регистр и обновлять индикаторы по последовательному протоколу (правда, усложнится ПО). А можно и ТЛГ задействовать, но тогда нужен внешний пик.
-
? BD - 25.04.2018 10:07
тлг у него уже занят, а ирпс нет ))
-
? kt315b@ - 25.04.2018 10:24
Программный UART на порту УП ))
-
? dima83 - 25.04.2018 15:29
Возникает резонный вопрос сколько всего светодиодных индикаторов может работать в режиме динамической индикации (с общими анодами сегментов и раздельными катодами разрыдов)?
-
? dima83 - 25.04.2018 15:37
Уважаемый транзистор (315) про пик я уже писал выше. На счет последовательного протокола - он может быть любым... его можно оформить программно. ТЛГ действительно занят - он у меня работает как загрузчик ПО. Я не думаю, что использование ТЛГ чем то выгоднее, чем использование выходного порта.
-
? BD - 26.04.2018 20:57
интересно, как ты хочешь отказаться от монитора ))
вслепую набирать MO и L ?
или все-таки ПЗУ/ЭОЗУ будет по 120000 адресу? РРки нынче дОроги ))
-
? Alexander "Sandro" Tishin@ - 27.04.2018 23:46
Такими темпами вы скоро додумаетесь до интерфейса SPI, и типовых решений для него :)
¤
Три выхода -- SS, SCLK, MOSI; весь, с позволения сказать, "протокол" реализуется программой из 20 команд. Вообще, давно уже пора стандартизовать подключение SPI к БК. Там просто необъятное море всяких вкусностей. В принципе, SPI+I2C закрывают практически всю мелочь, какая нужна.
¤
PS: Для чтения данных, разумеется, SPI нужен ещё один вход -- MISO.
-
? dima83 - 28.04.2018 07:15
? BD - 26.04.2018 20:57
интересно, как ты хочешь отказаться от монитора ))
вслепую набирать MO и L ?
¤
Именно так! Вслепую! Для одной проги, зашитой в пик самое то!
- << Форум