-
- ? gid
- 14.02.2018 16:54
Соединять всё как обычно.
Все общие сигналы параллельно.
IAKO IAKI - в цепочку, соответственно своей схемы.
Там автоматически процессор с адресом PA0, PA1 == {0, 0} становится ведущим, а остальные - ведомыми (аппаратно), поэтому никаких конфликтов на шине не будет.
Производительность вообще не вырастет, может даже и упадёт.
подробнее узнать можно где-то в недрах этой темы http://zx-pk.ru/threads/23978-tsifrovaya-arkheologiya-1801-i-vse-vse-vse.html
Там тоже этим вопросом народ озадачен был.
- ? gid
- 06.02.2018 09:43
Очень странно, что при этом БК комплектовались блоками питания на 1.5А (МС9011.01 кирпич).
И только позже стали комплектоваться БП на 2.2А по 5В и 0.5А по 12В (МС9016 педаль), что категорически не хватало моему дисководу МС5311 и этот БП через некоторое время начинал очень сильно греться и трещать трансформатором. А одновременно дисковод и БК это блок не тянул вообще. Только БК без ничего - свободно, как и кирпич, кстати. Правда турбо режим 6 МГц с этими БП работал очень недолго, а с БП АТХ - неограниченное время, при нормальном охлаждении.
- ? gid
- 05.02.2018 18:59
Всё она понимает, просто надо у компа с линейного выхода сигнал брать, уровень сигнала не должен быть слишком низким или слишком высоким. Подбирается экспериментально. При условии, что с линейного выхода не прёт цифровой шум от блока питания. Некоторые умники на материнках объединяют цифровую и аналоговую землю. Такие материнки для воспроизведения непригодны. На них нужно использовать дискретную звуковуху.
У мп3 плеера тоже надо уровень громкости правильный подобрать.
Причём звук должен быть в wav или любом лосслес формате. мп3 и прочие лосси не подходят.
- ? gid
- 05.02.2018 18:53
андос написан для БК10, так что естественно, что и монитор БК10 он с собой таскает, и на БК11(М) подгружает для собственной работы.
- ? gid
- 05.02.2018 15:30
[это бк11]
Да нет же, это БК11М http://gid.pdp-11.ru/books/00015-01.32.01.html
А БК11 - это вот http://gid.pdp-11.ru/books/00008-01.32.01.html
Разница колоссальная.
Вообще, все, кто писал свои проги под БК10, с выходом БК11М предали анафеме и прокляли тех кто написал БОС БК11М, потому что там вообще всё не так и ничего не работает, всё переписывать заново надо, или загружать режим БК10. Что все и делают, и забили на нативный БОС БК11М.
- ? gid
- 05.02.2018 14:30
Конечно может быть. И именно так и есть. У БК10, БК11 и БК11М разные адреса прерывания по вектору 30 (ЕМТ), потому что разные Монитор БК10 и БОС БК11 и БОС БК11М.
Вот только У БК10 и БК11 номера ЕМТ с 4 по 36 совпадают, вы что-то путаете.
А кардинально различаются номера ЕМТ у БК10 и БК11М.
Не следует ставить знак равенства для БК11 и БК11М, особенно в программной части. Они аппаратно почти похожи, там буквально в трёх проводочках разница, а вот программно - это абсолютно разные компьютеры.
- ? gid
- 05.02.2018 12:44
Жаль, нету исходников, но очень похоже на классическую ошибку, когда забывают про нулевой байт - ограничитель строки. Т.е. строка длиной 14 символов, в памяти занимает 15 символов (последний - это 0).
В отладочной сборке используемая память обнуляется, поэтому прога работает. А в релизной, тем более с оптимизациями память никто не чистит, поэтому там может быть всякое постороннее, вылезающее на экран.
- ? gid
- 05.02.2018 10:17
Блок питания или выкинуть, или отреставрировать, там скорее всего электролиты повысыхали, хорошо хоть что не коротят. Поэтому, чтобы он вошёл в рабочий режим, его надо сперва включить без нагрузки.
¤
Если не нужно +12В, используйте любой современный импульсный блок питания на +5В 2А (это крайний минимум, а лучше 4А и больше). Или обычный АТХ блок питания, если нужно +5 и +12 В. Достаточно спаять переходник DIN-5 - Molex и включать БП замыканием зелёного провода и любого чёрного на 20(24) контактном разъёме.
- ? gid
- 05.02.2018 10:02
Вывод строк в текстовом режиме на процах с разной частотой никогда не получается и не получался одинаковым. Если бы вы программировали на 286, 386, 486 и пентиумах последовательно по их появлении, таких вопросов бы и не возникало.
¤
Чем быстрее проц, тем быстрее выводится текст. Убедиться в этом просто, достаточно выдать на экран достаточно большой текст, чтобы он скроллился. На 286 проце вы в процессе скролла даже успеете выхватить и прочесть целые строки текста. На пентиуме скролл делается настолько быстро, что текст прочесть невозможно, можно изредка выхватить только отдельные слова.
¤
А если прокрутка текста вперёд назад делается клавиатурой, построчно или поэкранно, то быстродействие уже зависит от контроллера клавиатуры. Опрос клавиш на всех компьютерах, с разными процами делается с одинаковой частотой (традиционно, частота опроса клавиатуры задаётся одинаковой, или почти одинаковой, если пользователь не задаст свою частоту), поэтому скроллирование при нажатой клавише, например стрелка вниз, делается почти с одинаковой скоростью хоть на 386, хоть на пентиуме (на 286 прямо видно как медленно формируются новые строки). Хотя и видно, что у медленных процов отзывчивость меньше.
¤
А вот прям-прям одинаковую скорость вывода на экран не зависимо от частоты проца можно получить, если использовать терминал, подключенный через COM порт. Там скорость вывода как раз зависит от скорости обмена, а не от процессора.
- ? gid
- 02.02.2018 10:31
s0: BIT #100,@#177716 ;если клавиша нажата, ждём, пока отпустят
BEQ s0
s1: BIT #100,@#177716 ;всё, отпустили, теперь ждём, пока нажмут
BNE s1
¤
Это именно то чего вы хотели? В случае нажатия с ожиданием я обычно условия местами меняю, сперва ждём нажатия клавиши, а потом ждём отпускания, чтобы выполнить соответствующие действия.
¤
Ещё можно так делать, но это обычно в обработчике прерывания делают:
tstb @#177662 ;читаем код клавиши, чтобы флаг нового кода сбросить
...
1$: tstb @#177660 ;ждём нажатия клавиши
bpl 1$
tstb @#177662 ; сбрасываем флаг, а то больше никогда не сработает предыдущее условие
movb @#177662,R0 ; или так сбрасываем флаг, если нам ещё нужен скан код.
- ? gid
- 31.01.2018 11:56
Если узнавать текущее состояние с помощью EMT 10, то и подключать страницы придётся с помощью EMT 12.
Если будете вмешиваться в работу БОС, подключая страницы сами, записывая данные в 177716, очень быстро придёте к тому, что получать по EMT 10 будете неверную информацию, т.к. не знаете как и откуда берёт БОС свои данные и как и куда сохраняет. (подсказка: ячейки 114 и 116, но даже и они не панацея. т.к. временные копии содержимого этих ячеек ещё и в 7й странице сохраняются чтобы БОС с ними работала.)
В общем там не всё просто. Чтобы смешивать свои методы работы с регистрами и вызовы EMT, надо очень хорошо знать как работает БОС. А исходников БОС БК11М нету.
¤
[Если использовать для вывода графики два видео буфера то всю графику придется хранить в 0й странице?]
Почему? чем остальные страницы: 1,2,3,4 не устраивают?
Всё равно нельзя одновременно отображать оба видеобуфера, поэтому вносить туда данные можно по очереди, подключая их в одно окно, а в другое - любую другую страницу. Пока на экране отображается один видеобуфер, можно работать с другим.
- ? gid
- 31.01.2018 09:52
Что значит XORом? Какую маску? Вы нормальным ассемблером скажите. Только учтите, что в регистр памяти 177716 можно только записать, ничего прочитать из него нельзя, соответственно никакие арифметическо-логические операции к регистру неприменимы. Т.е. применимы, но результат будет совсем не тот, который ожидается.
- ? gid
- 30.01.2018 20:29
[зачем константы писать в таком виде]
Это классический MACRO-11. Так все на нём писали, т.е. только так и можно на нём написать что-то посложнее хелловорлда. Смотрите исходники RT-11 и удивляйтесь.
¤
[если сделаю mov #14000,#177716]
ничего не произойдёт. нужно mov #14000,@#177716 для 5 стр. в 40000
а для подключения 6стр. в 100000 нужно mov #7400,@#177716
причём нельзя по отдельности в окна страницу подключить. меняются обе страницы в обоих окнах одновременно.
команда mov #14000,@#177716 подключает стр.5 в окно 0 и стр.1 в окно 1
команда mov #7400,@#177716 подключает стр.1 в окно 0 и стр.6 в окно 1
¤
Чтобы подключать отдельную страницу в отдельное окно, нужно или использовать емты БОС, или писать свой менеджер работы с окнами. иметь копию регистра в памяти, очищать там нужные биты, заносить биты кода страницы, которую хочется подключить в конкретное окно и записывать эту копию в 177716.
¤
[что при этом происходит с видео буфером?]
Ничего не происходит. Видеобуфер остаётся видеобуфером, и из него по-прежнему отображается на экран содержимое.
Просто страница видеобуфера становится не подключенной в окно, но никуда не исчезает, так и остаётся в виде микросхем памяти на плате.
- ? gid
- 27.01.2018 19:53
Вон там http://pdp-11.ru/mybk/IMG/ все образы перепробовали? Все не удовлетворяют? Других просто нету.
¤
[документация в формате *.doc исполняемый фаил ... чем его перенести в обычный текст с последующей распечаткой?]
Я делаю вручную.
1. Определяю, запаковано ли BKPack'ом, если да - распаковываю.
2. Определяю тип читалки, и возможно ли выдрать текст простым отрезанием читалки. Попадаются хитрые читалки, где текст в кодах со смещением, или ещё как нибудь закодирован.
3. Выдираю текст, если нужно и возможно и затраченные усилия того стоят - перекодирую в просто текст (разными способами, подходящими под конкретный случай) конвертирую его в utf-8 своей утилитой ITCPC и спокойно читаю на РС.
¤
Если кто-то захочет написать какую-нибудь универсальную прогу, которая будет всё сама делать, буду только рад. Исходники кросс-BKPack/BKUnpack есть в исходниках кросс-Турбо8
- ? gid
- 26.01.2018 10:31
А ещё лучше сделать автоопределение:
если второе слово равно (длина файла - 4) или (длина файла - 22), то это файл с заголовком бин, а не просто так расширение.
Так можно отлавливать бин файлы даже без расширения бин.
Соответственно, дальше обрабатывать нужным образом.
- ? gid
- 25.01.2018 09:53
[программа при добавление поставила адрес 1000]
Значит она не нашла заголовка .bin, поэтому подставляется адрес по умолчанию.
¤
[у меня линукс и усб флопик]
Вот с этого и нужно было начинать.
А как в линуксе делается работа с форматом 10 секторов на дорожке?
В винде без fdrawcmd вообще бесполезно трепыхаться, а под линукс его нету. К тому же fdrawcmd не совместим с USB дисководами и там в принципе невозможно задать формат, отличный от того, который жёстко прописан в контроллере usb дисковода, а там только стандартные типа 720К, 1.44М и т.п.
- ? gid
- 25.01.2018 09:46
Вся необходимая информация по некоторым файловым системам БК в исходниках BKDE в соответствующих .h файлах, в конце.
- ? gid
- 24.01.2018 20:44
Вот конкретно этот диггер имеет адрес загрузки 0760, и имеет автозапуск, так что после M digger уже никак не может быть S игра сама запускается.
Чтобы закинуть файл в образ, его не надо модифицировать, если отрезать у него заголовок, как BKDE узнает, какой у него адрес запуска?
- ? gid
- 24.01.2018 20:39
Да. причём псевдографика у БК10 отличается от псевдографики БК11, и обе они отличаются от стандартного набора псевдографики писишного КОИ-8Р
- ? gid
- 24.01.2018 19:48
там скачай архив с исходниками http://gid.pdp-11.ru
и смотри в исходниках BKDE. конкретно в файле ImgUtil.h таблицы, в ImgUtil.cpp - алгоритмы
или в исходниках ITCPC, там можно вообще всё смотреть. Это конвертер форматов РС <-> БК
- ? gid
- 24.01.2018 12:42
[ну а можно их переконвертировать в обычные бк файлы, чтобы они запускались в Андосе выбрал и ЕНТЕР нажал.]
Я кажись понял. Вы их на реальную дискету пофайлово на РС записываете, чтобы потом эту дискету на БК прочитать?
Тогда способ такой.
1. Берём hex редактор.
2. открываем там бин файл.
3. определяем тип заголовка (короткий/длинный).
4. смотрим первые два байта, чтобы узнать адрес загрузки, записываем его на бумажку.
5. отрезаем заголовок нафиг, и сохраняем файл без расширения бин (чтобы путаницы не было).
6. записываем файл без расширения на дискету.
7. загружаемся в андосе, в оболочке наводим курсор на файл, записанный на РС.
8. пишем в командной строке ADR.M (или A:ADR.M если находимся на диске B:, а системный A:) и жмём ввод
9. меняем адрес загрузки на тот, что записали на бумажку ранее.
10. профит!
¤
Но всё-таки быстрее и гораздо проще кинуть этот файл в образ, а потом его на дискету записать, и пользоваться.
- ? gid
- 24.01.2018 09:44
Форматов .bin два. Есть короткий - заголовок 4 байта: первые 2 - адрес загрузки, вторые 2 - размер файла без заголовка.
И длинный - заголовок 22 байта: 0..1 - адрес загрузки, 2..3 - размер файла без заголовка. 4..19 - 16 байт оригинальное БКшное имя файла, 20..21 - контрольная сумма файла (это почти аналог заголовка с кассеты, только КС перед файлом а не в конце)
¤
Различить эти форматы можно, если посмотреть бин файл в hex-редакторе. Если в начале файла есть имя - значит длинный, если нету - значит короткий. Мой эмулятор принимает оба формата. Но сохраняет только в коротком, как и все остальные мои проги.
¤
Длинный формат бин можно встретить в кучах .bin файлов которые лежат россыпью на разных сайтах с БКшными играми и т.п.
¤
Перенести на реальный БК бин можно двумя способами:
1. тупо закинуть в образ прогой BKDE, потом записать образ на дискету и проситать дискету на реальной БК с реальным дисководом.
2. Сконвертировать в .WAV и через магнитофонный вход передать, используя в качестве магнитофона РС. Для этого нужен переходник DIN-5 - mini Jack 3.5 или сразу соответствующий кабель.
Для БК10 есть третий способ
3. Использовать ТЛГ канал, но для этого нужно иметь COM порт на PC и соответствующий софт и распаяный кабель и возможно, модифицировать БК до первоначального состояния (в более поздних моделях ТЛГ канал отключен разомкнутием перемычек)
- ? gid
- 21.01.2018 17:40
Если КНГДМ стандартный заводской, то это делается так:
Выпаивается родной синий разъём, и на его место впаивается обычный 34-х контактный угловой разъём флоповода. Вот так:
https://yadi.sk/i/JxXVoeL03ReNSm
https://yadi.sk/i/8oOkP-6p3ReNuS
Просто занимаем первые 34 контакта. И теперь можно использовать стандартные шлейфы для дисководов:
https://yadi.sk/i/TuyFgHUP3ReNyh
¤
Если родной разъём не выпаивать, придётся допиливать руками разъёмы от шлейфов, это менее удобно.
- ? gid
- 19.01.2018 09:31
[Оба теста без особенностей, вылетает сразу какое-то число и всё, висяков нет:]
Эти тесты зациклены, они бибикать должны пока работают (mov #7,R0 emt 63). Прервать тест - нажать СТОП. Если число вылетает, значит произошло прерывание по вектору 4. И это число - адрес, где трапнулось, возможно, это адрес команды, которая после mov @#177130,#0 или mov #0,@#177130.
- ? gid
- 18.01.2018 14:49
Зальцмана удобней читать в журнале ПК БК, или там http://gid.pdp-11.ru/books/Zaltsman.html
На http://bk0010.moy.su немного устаревший вариант, к тому же нормальное чтение немного затруднено, оно требует блока МСТД, чтобы запускался бинарник.
- ? gid
- 18.01.2018 11:25
А как же исследовательский дух? Как же набраться опыта, если все элементарные вещи не сами узнавать будете, а у людей выспрашивать?
адрес знакогенератора на БК11М в странице ПЗУ (10)8. по адресу 0133436
Рабочая копия знакогенератора - в странице 7 по адресу 050000 (если страница в окне 0) или 0110000 (если страница в окне 1)
Именно эта копия используется при выводе символов на экран. Свободно заменяется на свой знакогенератор.
- ? gid
- 18.01.2018 09:43
[постоянное стирание загрузчика дисководом при передергивании питания]
Это кстати фирменная фича заводского КНГМД. И её надо всегда иметь в виду. Говорили, что в контролерах АльтПро это пофиксили, но я всегда на всякий случай открывал замок у 5.25' и вынимал дискету из 3.5" дисководов, перед включением и выключением БП даже при пользовании их контроллерами.
¤
Если выход в Бейсик получается так же быстро, как будто бы не было КНГМД - то да, надо проверить ПЗУ, просто попробовать посчитать её КС.
Если перед выходом в Бейсик есть задержка, как будто идёт попытка чтения с дисковода - надо смотреть остальные микросхемы.
¤
Используйте наконец любой АТХ блок питания, и тогда никакой нехватки не будет. Одного 300 Вт АТХ БП хватает на десяток БКшек и дисководов одновременно.
Хотя, не любой БП, откровенный шлак - фальшивые китайские БП с жутким перекосом питания при недостаточной нагрузке на 12В -
использовать не надо.
- ? gid
- 16.01.2018 21:55
А там http://bk0010.org/forum/?id=25404 написано, что оплатил S_V_B уже.
Такая цена обычно выходит когда у кибер сквоттеров доменнное имя перекупаешь, которые его под себя резервируют, но не используют, а не у регистратора.
- ? gid
- 16.01.2018 14:38
START_ = 0001000 В исходнике - да, в принципе, дефайн, хотя это арифметическое выражение по терминологии ассемблеров.
А в сообщении от ? gid - 15.01.2018 16:26 приведён листинг исковерканный данным форумом, полученный в результате компиляции программы, там в конце листинга выводится таблица глобальных меток. Если вас смущает знак "равно" в таблице, я могу заменить его на "двоеточие" или вообще на любой другой знак, при этом станет непривычен вид таблицы меток для всех традиционных БКшников.
- ? 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
- ? 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$
- ? gid
- 15.01.2018 15:36
Если у вас долго ничего не получается, прочтите наконец документацию. Там дана расшифровка кодов ошибок:
113 - Ошибка в имени регистра.
102 - Ошибка длины или направления перехода в команде SOB.
¤
А ещё там описан синтаксис команды SOB, из чего можно понять, что она не умеет обращаться напрямую к памяти. переход делается только по метке, только назад, и только на 126. байтов.
¤
Правда дока до сих пор в стадии черновика, и там не всё само с собой согласовано, но в принципе понятно.
- ? gid
- 15.01.2018 14:29
[ведь на эмуляторе это делать невозможно!]
Возможно. Просто, гораздо менее удобно, чем в редакторе на РС.
Однако, правка листинга бессмысленна. Править нужно исходный текст.
¤
[сколько раз можно употреблять SOB в одной программе]
Теоретический предел - 10901 раз, потом память БК закончится, Но с учётом, что ещё нужно под стек что-то оставить, то ещё гораздо меньше.
¤
[У меня идет ошибка 113 в строке SOB 2020,S1]
RTFM! Ознакомьтесь с синтаксисом команды в документации. Регистра 2020 не бывает.
- ? gid
- 15.01.2018 13:31
[Как правильно перенести листинг прооги на образ что бы русские слова не искажались?]
Зачем листинг проги на образ? чтобы его на БК рассматривать?
Туда исходники нужно переносить, но перед этим конвертировать в КОИ-8. А если используется псевдографика, то ещё и не в простой КОИ-8, а в БКшный. Можно сделать консольной утилитой ITCPC, которая входит в состав эмулятора. А можно любым доучим текстовым конвертером.
- ? gid
- 15.01.2018 13:26
[что надежнее забивать вручную с первого четного адреса!]
Точняк! и не доверять ассемблеру, а писать прямо в кодах - так надёжнее, а то мало ли там, чего ассемблер наасемблирует.
¤
[Они и вмещают больше]
В натуре! В слове целых два байта. А то, что два последовательно идущих друг за другом байта составляют слово - это просто совпадение.
¤
[И с байтами возиться смысла нет]
потому что вы пока не пробовали работать с текстовыми данными (не UTF-16, а с простыми, которые в байт помещаются).
- ? 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 знаковое значение байта меньше нуля.
- ? gid
- 15.01.2018 10:05
[В литературе приводится такой пример][НО при работе в турбо 8 используется следующая команда]
Это просто разные диалекты ассемблеров. Не обращайте внимания, просто имейте в виду, учитывая документацию.
¤
[наконец тут говорили, что можно использовать просто метку, размещенную в конце программы]
можно. если вы точно знаете, что после программы ничего другого полезного нету, резервировать память нет необходимости.
¤
[Обращение к ОЗУ (т.е. запись числа или пересылка регистра) возможны только по четным адресам]
Неверно. По нечётным тоже можно.
¤
[При попытке записать что-либо в нечетный адрес заполняются сразу оба слова...]
При попытке записать СЛОВО по нечётному адресу, оно записывается по (адресу & 0177776) из-за упрощённой архитектуры БК.
При попытке записать БАЙТ по нечётному адресу, происходит запись БАЙТА по НЕЧЁТНОМУ адресу. Всё как у взрослых компьютеров.
¤
[И как узнать в случае обращения к метке в четный адрес мы попадем или нет?]
Не надо ничего узнавать. Программу пишет программист, и он и только он решает, обращаться к памяти пословно или побайтно.
И только программист решает, нужно ли использовать трюк с чтением/записью слова по нечётному адресу. Тем более, что это работает только на БК, на других компьютерах обычно возникает "ошибка обращения по нечётному адресу".
- ? gid
- 09.01.2018 10:56
[Наткнулся на использование системных регистров 177700-177704. Есть инициализация начальных значений, но нет использования.]
Для этих регистров эмулируется только их наличие. Поведение не эмулируется в связи со сложностями и ненужностью в повседневной жизни.
[Для чего эти регистры?]
Максимально достоверное описание можно найти в этом файле http://u.zeptobars.ru/yuot/MISC/1801vm1-10.pdf (стр.25)
Время от времени ревизия файла меняется, так что если ссылка сдохнет, надо зайти в директорию и выбрать файл вручную.
- ? gid
- 31.12.2017 09:21
>>? Terra - 30.12.2017 23:36
[прошивка есть даже в исходниках]
Прошивки ПЗУ D4 573РФ5, отвечающей за логику работы по IDE Самарского контроллера нет. Хотя, в принципе, её возможно восстановить аналитическим методом. Эта ПЗУ подобна ПЗУ 556РТ5 в СМК.
- ? gid
- 30.12.2017 20:40
Как это схем нет? Они есть. Даже на этом форуме неоднократно ссылки были, только фот поиск отвалился и теперь фиг чо найдёшь.
И уже давным-давно все заинтересованные лица все нужные схемы заимели у себя локально, чтобы не шерстить интернет.
Схема смк-64 тут (а так же любого СМК-ххх, А-ХХХ, т.к. они отличаются лишь прошивкой, а А-ХХХ - просто без модуля IDE):
http://forum.pk-fpga.ru/viewtopic.php?f=15&t=14 (в спойлере "Материалы для изготовления и закупки компонентов" в самом низу)
там же дофига всякой побочной информации.
Вот тут вся необходимая информация о СМК-ХХХ, в том числе ТО:
http://forum.pk-fpga.ru/viewforum.php?f=39
Полазийте там, может ещё чего интересного найдёте: http://forum.pk-fpga.ru/viewforum.php?f=15 (но не факт)
¤
Схема самарского контроллера тоже доступна там: http://www.bk001x.ru/forum/133-98-1
Только без прошивки ПЗУ она бесполезна, а её нету.
Там же, на том форуме ещё схемы много чего есть.
¤
P.S. у меня новый год и я не собирался ничего постить пока он не закончится, но вот это вот просто вынудило. Есть схемы всего. И есть документация на всё. Просто это нужно суметь найти в интернете.
- ? gid
- 29.12.2017 15:48
Без комментариев.
Я не понимаю как работает приём/передача данных по ТЛГ каналу.
PCTTLG: EMT 44 ; УСТАНОВКА СВЯЗИ
EMT 42
Тут делается именно это: "Но перед тем, как БК начнет что-то принимать произойдет инициализация ТЛГ канала, которая сведится к предаче произвольного байта в линию и приема оного обратно в БК (Руководство системного программиста стр.23)"
Как и почему это должно работать, я не знаю. Но скорее всего БК<->БК так вот между собой общаться смогут, ибо между собой то договорятся. И даже скорее всего на самых первых вариантах БК, на Фокале когда-то это делалось.
- ? gid
- 29.12.2017 13:43
[Но перед тем, как БК начнет что-то принимать...]
Охотно верю, т.к. самому проверять никогда в голову не приходило. Не нужно мне было это ТЛГ, ни тогда, когда у меня была БК10 и магнитофон, ни потом, когда была БК11 и дисковод, ни тем более сейчас, когда БК лежит на полке в виде ностальгического раритета.
¤
[Кажется я допер...]
Всё так. Но это вроде бы прямым текстом написано в том же Руководстве системного программиста, кроме выводов микросхем.
¤
[ввод команды "L" из монитора ]
да нет вот. Вот оно что делается по команде Л (см. файл D1.mac):
¤
; TLG-КАНАЛ
; ---------
¤
INDTLG = 40 ;- ИНИЦИАЛИЗАЦИЯ ДРАЙВЕРА ТЛГ-КАНАЛА
; ВХОД: R0 - НОМЕР СКОРОСТИ
¤
PDBYT = 42 ;- ПЕРЕДАЧА БАЙТА
; ВХОД: R0 - МЛ.Б. НА ПЕРЕДАЧУ
¤
PRBYT = 44 ;- ПРИЕМ БАЙТА
; ВЫХОД: R0 - МЛ.Б. ПРИНЯТ
¤
PDMAS = 46 ;- ПЕРЕДАЧА МАССИВА
; ВХОД: R1 - АДРЕС МАССИВА
; R2 - ДЛИНА МАССИВА
¤
PRMAS = 50 ;- ПРИЕМ МАССИВА
; ВХОД: R1 - АДРЕС БУФЕРА МАССИВА
; R2 - ДЛИНА МАССИВА
¤
; -----------------------------
; ** 1. ЧТЕНИЕ ФАЙЛА С ЛИНИИ **
; -----------------------------
¤
PCTTLG: EMT PRBYT ; УСТАНОВКА СВЯЗИ
EMT PDBYT
¤
MOV #BUFSTA,R1 ; ПРИЕМ АДРЕСА И ДЛИНЫ
MOV #4,R2
EMT PRMAS
TST R5
BEQ 1$
MOV R5,BUFSTA
¤
1$: MOV BUFSTA,R1 ; ПРИЕМ МАССИВА
MOV BUFDL,R2
EMT PRMAS
JSR R5,PPCT ;- ПЕЧАТЬ СООБЩЕНИЯ
.WORD TFZ
¤
RTS PC
¤
А EMT 40 выполняется при инициализации монитора в п.п. EMT 14. При этом устанавливается максимальная скорость обмена 9600 бод. И нигде больше не меняется.
- ? gid
- 29.12.2017 11:51
Командой L можно только принять данные. Вообще монитор БК предназначен для загрузки данных с мЛ или ТЛГ и запуска прочитанной программы, больше там ничего нету.
Прежде чем садиться куда-то осциллографом, надо написать простенькую программу для передачи хотя бы байта.
Однако, работа с ТЛГ каналом нигде в общедоступной документации БК подробно не описана. Примеров нет. И если кто-то когда-то где-то этим и занимался, то результаты он оставил при себе.
Поэтому, заинтересованным лицам придётся заниматься этим самостоятельно. Освоить ассемблер, программирование на нём, изучить исходники драйвера ТЛГ канала, в том числе, что делается по команде Л, и написать свою программу, которая будет что-то передавать, и смотреть результаты на осциллографе.
- ? gid
- 29.12.2017 10:02
Потому что готовность/неготовность определяется пользователем БКшки.
потому что ТЛГ - это совсем не то же самое, что ИРПС/UART. Это такой эрзац последовательная передача данных для нищебродов. Реализуется сугубо программным способом + ручной труд по запуску этих программ.
Ибо блоки ИРПС/КЛС и т.п. с 1801ВП1-035/1801ВП1-065 на борту могли иметь только жители З., П-П. и может быть М., в остальном СССР их могли иметь не только лишь все, мало у кого их было.
¤
А вообще, линия готовности по планам была, но выродилась в 0, бит готовности приёмника передачи с БК просто завели на землю (нога 12 микросхемы D12 КР531Ап2), и теперь приёмник всегда готов. И если он не готов, то БК передаёт данные в никуда.
Готовность передающей стороны определяется по сигналам на линии приёма данных (см исходники).
¤
[И еще каким образом кодируются биты информации?]
См. исходники монитора БК10, EMT 40 - EMT 50. (В исходниках драйверного модуля файл D6.mac) В инете есть ещё файл 100000z5x.lst - дизассемблированный листинг ПЗУ монитора, с комментариями.
Постить сюда портянку смысла нет.
- ? gid
- 28.12.2017 13:45
Пойдут:
ANDOS всех версий
MKDOS всех версий
NORD 2.x
Всякая труднонаходимая экзотика типа Norton
¤
Не пойдут:
RT-11 любых видов
CSI-DOS всех версий
AO-DOS всех версий, казалось бы, что версия 1.х должна идти на БК10, но первый попавшийся образ этой версии не пошёл.
NORD 3.x
HC-DOS любых видов
¤
Брать там http://pdp-11.ru/mybk/IMG/OS/
выбирайте любой образ на свой вкус и цвет из тех, что подходят под условия "Пойдут".
- ? gid
- 26.12.2017 15:40
Нет, имелся в виду сигнал ВУ Н (BS7), нога А19.
¤
У меня кстати есть относительно заводской КНГМД. Достался случайно. Там как-то всё сильно перехреначено. Некоторые дорожки перерезаны, проводочками что-то переделано, Насчёт номиналов резисторов вообще не в курсе, те ли что по схеме стоят. Но он полностью рабочий. Я его использую как раритетный артефакт - храню и любуюсь, но стараюсь не пользоваться, при наличии А16М и СМК-512.
- ? gid
- 26.12.2017 10:27
[доработать БК]
там от модели БК зависит. Надо посмотреть схему БК (есть в интернете), посмотреть на плату БК. И либо замкнуть перемычки S2, S3, либо пробросить проводочки если таких перемычек вовсе нету, соответственно схеме.
[Не очень понятно что именно нужно сделать]
Можно написать свою программу, которая будет использовать указанные EMT. Можно в мониторе БК вместо команды M использовать команду L для загрузки файлов с ТЛГ линии вместо магнитофона.
[(если это конечно возможно)]
Абсолютно невозможно. На стоковой БК в принципе не предусмотрены никакие автозагрузки с чего-либо. Всё нужно делать самому с нуля. Начиная с аппаратных средств, заканчивая софтом к своему железу. Не каждый может довести это дело хотя бы до половины дела. Именно поэтому БК-сообщество и загнулось.
- ? gid
- 26.12.2017 10:11
[Достал с полки когда-то собранный вручную заводской КНГМД]
А раньше-то он работал нормально? Если да, то с чего вдруг такой феномен образовался?
Может не в КНГМД и дискетах дело? А то мне что-то страшно стало, вдруг и мои контроллеры, лёжа на полке, протухли.
- ? gid
- 22.12.2017 16:02
Если ассемблируете кроссассемблером турбо, то он умеет создавать raw файл, без бин заголовка, чтобы не отрезать его вручную, когда он не нужен.
[насколько коррекно они будут отрабатываться]
Это зависит от программиста. Если хотите, можно писать позиционно независимый код, работающий в любом месте. Если хотите - можно транслировать прогу с определённого адреса, допустим 120000. И работать она будет только, если будет размещена по этим адресам.
Всё отличие программ для ПЗУ в том, что все переменные и буферы хранятся не в программе, а в заданном месте ОЗУ. Ну и нельзя самомодифицирующийся код применять.
- ? gid
- 22.12.2017 14:44
Выравнивать данные по границам сегмента, оставляя неиспользуемые куски памяти в конце сегмента.
Линейно читать/писать можно, но в пределах сегмента или группы сегментов. Можно даже выполнять подпрограммы непосредственно из памяти СМК.
-
«
1 | ... | 11 | 12 | 13 | 14 | 15 | »
?