-
Сегодня удалось запустить и SBC-11/21-Plus (ака Falcon+). К сожалению, купленная плата имела свой вариант PLM-ки (которая определяет то, как распределяется адресное пространство). И она отличалась от стандартной. Но если поменять её на PLM-ку от Falcon-а - похоже, получаем такое же, как на нём распределение - и соотвественно - ПЗУ запустилось, а система через HX загрузилась. Значит, плата рабочая и можно будет сделать кастомную прошивку для определения того, как на неродной PLM-ке распределяется адресное пространство. И, возможно, получится использовать её PLM. Ибо и найти такую PLM сейчас тяжеловато (насколько я помню, на eBay были, но теперь этот источник недоступен, а на Ali не помню - искал или нет..) и как прошивать - не понятно...
P.S. от 12.10.2022 - на самом деле - не понятно, что там тогда произшло - ибо я пробовал повторить фокус позже - и не получилось.. Возможно, нужные правильные установки перемычек, кто его знат... Так же возможно, что попробую когда-нибуть всё таки добить вопрос - можно ли на Falcon+ использовать PLM от Falcon
-
Очередная порция переделки кода под DSMAC. Осталось примерно 300 строк (включая комментарии :) )
Смог слегка уменьшить размер кода от DEC, теперь лишних 54(8) байта или 22(10) слова. На самом деле размер кода для поддержки HX будет ещё меняться (и скорее всего, в сторону увеличения), так как пока не выверялась вся работа с ним и уже были замечены не до конца изменённый код для работы с ним.
- - - Добавлено - - -
Первичная прическа - Ёк.
Теперь буду пилить функционал и уменьшать размер кода.
С учётом того, что лентопротяг DD работает через серийник (читай - некоторые процедуры будут общие) - надеюсь сохранить ВСЕ уже имеющиеся загрузчики и поддержать при загрузке через HX возможность загрузки с носителей не только операционок, но и (при правильном оформлении нулевого блока) загрузки выбранного файла с носителя с файловой системой RT-11 :)
-
Ещё поправил свой код. Лишних 36(8) байт или 15 слов. Сильно достают аппаратные точки входа, расположенные в середине ПЗУ - 172000 и 173000. Приходится выплясывать (собстенно, такое и в исходном ПЗУ) обходы вокруг них :)
-
Добрался до точки, когда уже надо проверят в реале :) Шаг 1 - перепаять перемычки на использование 28-ми ножных ЭСППЗУ, шаг номер два - (закомментив часть кода загрузчика DX-DY), проверить, чего я там наваял :)
-
Из плохих новостей - две 28-ми ножечных микросхемы (по крайне мере те, которые у меня есть) рядом не встают - панельки вплотную, микросхемы широковаты.
Из хороших новостей - при режиме отображения памяти 0 оба сокета (А и В) отображаются одинаково, так что одну микросхему можно вставить в один сокет (скажем А - младший байт), а вторую микросхему во второй сокет (В - старший байт).
Их плохих новостей - что то где то с перемычками не так сделал (хотя посмотрел со всех боков) и с 28-ми ножечной микрухой - не стартует..
Бум дальше смотреть и думать
-
Уф... Всё, заработало. Теперь, после всего, могу сказать, что для этой микрухи главное - подать +5В на 23 (WE) ногу (см по описанию - какие перемечки сделать). Больше ничего не надо делать :) Но без завода этой ноги на 5В - она начинает периодически писать и портить содержимое :)
Ну и была ещё одна ошибка - размер ПЗУ - два кб, а размер этой микрухи - 8 кб, так что надо прописать содержимое (для простоты) - четыре раза одно и тоже. Лопухнулся - записал только два раза одно и тоже, а из-за разводки по умолчанию - оно лезет куда то в верхнуюю половину.
Теперь можно экспериментировать со своей версией :)
-
1. Запустить Falcon в принципе - сделано
2. Причесать код ПЗУ под DSMAC - сделано
3. Выставить перемычки, что бы можно было втыкать 28-ми ножные ЭСППЗУ - сделано
4. Нарисовать загрузчик с HX в принципе - сделано
Код:
@HX0
HX 2.2 RT-11 Cold boot..
HX DSK/TTY multiplexer v3.3 2016
RT-11SB (S) V05.07
.R MSCPCK
.SHO CONF
RT-11SB (S) V05.07
Booted from HX0:RT11SB
USR is set SWAP
EXIT is set SWAP
KMON is set NOIND
MODE is set NOSJ
TT is set NOQUIET
ERROR is set ERROR
SL is set OFF
EDIT is set KED
FORTRAN is set FORTRA
KMON nesting depth is 3
Global .SCCA flag is disabled
CLI is set DCL, CCL, UCL, NO UCF
SBC 11/21 (T11) Processor
56KB of memory
50 Hertz System Clock
Memory parity support
SB timer support
Global .SCCA support
FPU support
Extended unit support
.
5. Проверить загрузку standalone программ через HX - в работе.
6. Попробовать оптимизировать код ПЗУ, что бы остались штатные загрузчики (DD, DX, DY) - в ожидании
7. Проверить работоспособность штатных загрузчиков - в ожидании
-
Из-за всё возрастающего усложнения кода всё таки решил отказаться от единого файла с возможностью через условную компиляцию получить как исходный вариант, так и с поддержкой HX. Возможно, после получения окончательного результата в поддержке HX попробую опять объединить варианта, но... загадывать не буду. Так что пока поддержка HX - в альтернативном файле...
-
Вчера распилил исходник и проверил, что всё собирается, старый вариант даёт идентичный bin файл, а новый по прежнему работает :) Смотреть на код стало легче, буду двигаться дальше..
- - - Добавлено - - -
Проверка загрузки standalone программ. Первый подход к снаряду - где то циклит и постоянно читает первый сегмента каталога...
-
Код:
@HX2
Тест быстродействия (кэш, если он есть, выключен)
BR .+2 269 316 оп./сек
R1+R0 classic 269 333 оп./сек
R0(23456.)+R0(12345.) empty 81 884 оп./сек
R1(23456.)+R0(12345.) 62 551 оп./сек -> 264 931 оп./сек
R1+@R0 classic 162 776 оп./сек
R1(23456.)+@R0(M-12345.) empty 81 883 оп./сек
R1(23456.)+@R0(M-12345.) 54 251 оп./сек -> 160 764 оп./сек
...
Есть какая то странная ошибка - не всегда правильно отрабатывается тайм-аут. Для непосвящённых - T11 не имеет аппаратной поддержки таймаута шины, снаружи работает для этого дела таймер, а вот обработка сигнала с него процессором сделана... Видимо, дурь у того человека была зело крепкая, других предположений нету :) Кстати, необходимость команды NOP после команды, которая принципально может вызвать таймаут - из этой же серии :)
Воюю..