PDA

Просмотр полной версии : Debugger УКНЦ



S_V_B
04.05.2018, 18:08
Подскажите есть ли удобный дебаггер для УКНЦ кроме DBG-11, с экранным редактором, типа Paradise (Par11D) для БК.

MM
04.05.2018, 18:35
удобный дебаггер для УКНЦ
Если для среды RT-11 - только DESS.SAV и "контрольные точки останова" в софте.

S_V_B
04.05.2018, 18:56
Изучение и так идет со скрипом хотелось как-то облегчить себе жизнь. Что бы на ходу можно было писать-проверять.. "тру олдскул" это хорошо но не до такой же степени. Так я с видео два года разбираться буду.

Oleg N. Cher
04.05.2018, 20:40
Дык в эмуле UKNC-BTL есть удобный, пошаговый. Им Никита Зимин отлаживал свои порты игр.
Или принципиально именно на самом УКНЦ? :-)

MacBuster
04.05.2018, 21:07
Удаление в знак протеста против действий MM

Hunta
04.05.2018, 21:12
С вменяемыми отладчиками под УКНЦ беда, ничего стоящего нет.
Настоящая отладка - это внимательно-критическое рассмотрение наваянного :) Примерно так я и отлаживал драйвер WQ под RSX :)

xolod
04.05.2018, 21:42
http://retrocmp.com/tools/pdp11gui

shattered
04.05.2018, 21:49
Занятно, это при том, что в ней есть hardware breakpoint...

nzeemin
04.05.2018, 22:05
https://nzeemin.gitbooks.io/ukncbtl/content/ch2-4-debugger.html

https://raw.githubusercontent.com/nzeemin/ukncbtl-doc/master/screenshot/UKNCBTL-Debugger-small.png

S_V_B
05.05.2018, 05:58
Настоящая отладка - это внимательно-критическое рассмотрение наваянного
Отлаживать в уме можно когда предмет известен, а когда изучаешь "черный ящик" по мне так удобней метод научного тыка, а там по нарастающей..
Когда сразу видишь реакцию системы и делаешь выводы.. в документации довольно мутно и аппаратная организация довольно специфичная, так что метод "тыка" я считаю самый действенный.

- - - Добавлено - - -

В эмуляторном дебаггере же только дизассемблер?
Дописывать код нет возможности?

Hunta
05.05.2018, 09:41
когда изучаешь "черный ящик"
Код в КЦГД, код в ПП (и много чего ещё) изучался именно так (естественно, дизассемблированный, плюс ещё курение документации) :)

MM
05.05.2018, 09:42
... когда изучаешь "черный ящик"...
Следует прочесть документы :
1. ТО МС1201.02 ДВК. Там кратко описано то, от чего плясали при разработке УКНЦ.
2. ТО ИС 1801ВМ2
3. Русский инструктаж к RT-11 ( к сожалению, доступны не все книги по математическому обеспечению ДВК - на Емуверсе ).
( Для начала - раздел "форматы файлов" ).
http://emuverse.ru/wiki/%D0%94%D0%92%D0%9A
Если надо для профессионального написания текста программ под RT-11 - запросите для покупки комплект доков по RT-11 , который шел к БК-11 без "М" - толстенная папка брошур, довольно точный перевод доков DEC по ОС RT-11 SJ.
Книги по софту ДВК представляют из себя краткий компресс книг от БК11 ( а точнее, от ДВК МС502 выпуска 1982-1985 г.).

Hunta
05.05.2018, 09:47
толстенная папка брошур, довольно точный перевод доков
Хорошо читать в оригинале :)

MM
05.05.2018, 09:50
Если необходимо немедленно приступить к написанию небольших программ без RT-11 - изучите машкоды 1801ВМ2, а ассемблер - это для больших программ, где-то от полкилобайта :smile:

Например, если набрать в пульте УКНЦ текст и запустить его :
адрес 001000 :
012737 000101 177566 000000
На экране напечатается "А".

S_V_B
05.05.2018, 11:06
К сожалению я программист второго поколения и перфоленты влет читать не приучен.. изнежен так сказать (хотя бы зачатками) интерфейса :)
Хардкорный путь конечно самый правильный, но этот путь нужно было выбирать лет 20 назад. Borland со своим С++ увел с пути истинного и поэтому думаешь больше алгоритмами, а не инструкциями.

- - - Добавлено - - -

Вот к примеру нашел параграф про "аппаратные спрайты"- терзают смутные сомнения в их эффективности. По сути тот же регистровый доступ с парой плюшек, да и 8 точек трудно назвать "аппаратным спрайтом". Так бы пока читал уже попробовал в дебаггере, а так... :((

Hunta
05.05.2018, 11:17
Хардкорный путь конечно самый правильный

поэтому думаешь больше алгоритмами
Не знаю, как другие, но лично я думаю в голове алгоритмом, который ложится потом на команды - такие или другие.
Основная проблема, как мне кажется, в случае PDP-11 - все операционные системы работают из командной строки - соответственно - по контексту (как в случае с оконным интерфейсом) не сориентируешься :) С чем то, напоминающим оконный интерфейс (есть ещё FMS-11, но он немного на другое нацелен), мне известна только одна система - МикроМир, но увы, во-первых, полноценная реализация есть только под RSX, во вторых - идеи работы в ней такие же, которые были заложены (и кстати, года на полтора-два позже! ;) ) в Norton Commander - то есть команды типа - откомпилировать-собрать-запустить она облегчает, но это НЕ система разработки как таковая. Видео примера работы в ней я как то выкладывал - http://www.KpXX.Ru/KBAHT4C/Софт/MIM (осторожно, 413 мб :) )

- - - Добавлено - - -


нашел параграф про "аппаратные спрайты"

Так бы пока читал уже попробовал в дебаггере
Отлаживать (или даже смотреть) графическое с одним монитором? :)

S_V_B
05.05.2018, 11:24
/* Отлаживать (или даже смотреть) графическое с одним монитором? */
У УКНЦ я так понимаю есть экран куда дебаггер спрятать. :)

Hunta
05.05.2018, 11:26
я так понимаю есть экран куда дебаггер спрятать
Это куда?

S_V_B
05.05.2018, 11:29
Интересно насколько сложно будет портировать PAR11D с БКшки на УКНЦ так чтобы он экран пользователя не трогал?

- - - Добавлено - - -

ну например сделать 40+40 символов в строке

- - - Добавлено - - -

или еще как-нибудь знатокам виднее :)

Hunta
05.05.2018, 11:30
ну например сделать 40+40 символов в строке
Попахивает извращением :) Более правильный вариант - задействовать порт С2 :) Что бы отладчик через него получал команды и выводил результат :)

S_V_B
05.05.2018, 11:35
Попахивает извращением :) Более правильный вариант - задействовать порт С2 :) Что бы отладчик через него получал команды и выводил результат :)

C2 не у всех есть.. :(

- - - Добавлено - - -

Есть мысль прикрутить ESP(wi-fi) виртуальный COM к сетевой.. я ее пока думаю, поскольку больше "писатель" чем "паятель"..
сетевые же у всех есть.

Hunta
05.05.2018, 11:37
C2 не у всех есть
Это понятно. Просто мысли вслух, что может облегчить.
И кстати, из отсутствия С2 есть два пути :)

- - - Добавлено - - -

Вру :) Три :)

S_V_B
05.05.2018, 11:51
Не знаю, как другие, но лично я думаю в голове алгоритмом, который ложится потом на команды - такие или другие.
Ну у меня тоже мысли в голове периодически появляются :) и тоже могу переложить на что угодно... но это "неистребимое желание" сразу попробовать, чтобы подтвердить свою правоту.
Это как светодиодами "поморгать " вроде бы и так все понятно, зато приятно:)

Hunta
05.05.2018, 12:06
Вспомнил. Есть (назовём это так - полноэкранный) отладчик BUG, но (тадададам) он тоже под RSX (хотя, учитывая наличие исходников - может и можно переделать под RT). В отличии от других отладчиков - его не надо было прилинковывать (прикомпоновывать, при-таск-буилдить) к программе - он встраивал свой модуль на лету, так сказать, и можно было работать в варианте двух терминалов - отлаживаемая программа на одном, отладчик на другом - что достаточно просто, опять же, в случае RSX

- - - Добавлено - - -


сразу попробовать, чтобы подтвердить свою правоту
Я последнее время (на работе) программу (любую, не конкретную) часто пишу прямо в отладчике VS - можно сразу посмотреть - чего там тебе вернулось в объекте через API - и прототип пишется влёт :)

В дистрибутиве RSX нашёлся файл (DSMAC.MAC) - добавление структурных операторов (типа if, while и т.п.) через макросы и если раньше (в те, далёкие, сейчас почти былинные, времена) я часто писал программы - логика на ФОРТРАНе, действия - на MACRO-11, то после этого перешёл на чистый макросассемблер. Основная проблема языков ассемблера - куча меток и (разного варианта) GOTO - что затрудняет процесс написания и последующего понимания программ (особенно чужой) - очень хорошо решалась этим пакетом. В своих извращениях (плюс макросы соответствующие) дошёл до того, что программы писались (большая часть) универсальными - после перетрансляции и компоновки они были работоспособны как на RSX, так и на RT :)

S_V_B
05.05.2018, 12:13
К сожалению на данный момент это мало поможет. Я скорее по характеру такой, мне проще машину подвесить и перезапустить чтобы убедится, что был не прав, чем часами пыхтеть над тетрадкой и думать.. а может прав .. а может не прав.. и еще один ньюанс на который натыкался не раз.. баги могли сделать и до тебя, а ты о них не сном не духом.. тем более при такой скудной документации решить все на бумаге не получится. порой строчки равнозначные местами поменял в исходнике и все работает.. потом выясняется что баг компиллера, выравнивание и тд и тп. так что дебаггер наше всё :)

Hunta
05.05.2018, 12:22
К сожалению ... (далее по тексту)
Да это всё понятно. Но, к сожалению, отладчиком не всегда можно или сложно дотянуться. Конкретный пример (в случае УКНЦ) - модули, выполняющиеся на ПП. Тут только курение исходников и постановка экспериментов - анализ результатов.

Мой текущий пример - написание драйвера для WQ - всё, что на входе - драйвер RT (без исходников), программы работы с RTC на этой плате (без исходников) и невнятная дока по IDE (на английском). И это ещё не самый экстремальный пример - потому как в состав RSX входит отладчик ядра :) Но каждый раз - гадание -
а может прав .. а может не прав

Или мои копания с PDP-11 на FPGA - вот где этой мистики
порой строчки равнозначные местами поменял в исходнике и все работает или не работает :)

S_V_B
05.05.2018, 13:20
Все равно из stanalone debugger проще экспериментировать с ПП - не нужно комилять линковать. А если дебаггер в памяти ПП он же всю память видеть будет?

Hunta
05.05.2018, 14:22
stanalone debugger
Чистый стэндэлон не получится - он всё равно будет выполняться или в памяти ЦП или в памяти ПП :) Хотя в памяти ПП будет близок такому.

дебаггер в памяти ПП он же всю память видеть будет
И да и нет, насколько я помню - вроде как для доступа к памяти ЦП от процессора ПП используются регистры - в одном задали адрес, через другой прочитали или записали ячейку. Но тут надо спросить более опытных комрадов - слишком давно я последний раз имел дело с УК-НЦ на таком низком железном уровне :) У меня больше знаний о семействе PDP-11 совместимых процессоров в принципе, а не конкретика об организации железа и устройств :)

S_V_B
05.05.2018, 14:44
Ситуация понятна, будем писать в тетрадке.
Еще просьба, если не трудно ткните носом или дайте имидж RT-11 для УКНЦ с дисководом но без HDD и всяких RAMдисков желательно с файловым менеджером и полезностями для разработки на ASM и что бы не ругалась при загрузке :) Просто сколько пробовал, то ошибки то одного нет то другого...

Hunta
05.05.2018, 15:09
будем писать в тетрадке
Знакомо, знакомо :) Только начиная с момента появления Квант-а и переноса туда RSX всё велось там в текстовых файлах :)


ткните носом или дайте имидж RT-11 для УКНЦ
У меня готового нет
Возможно, что то найдётся у Хобота, но его хламник - такоооой хлаааамник...
Теоретически я могу собрать Вам образ, но на это понадобится некоторое время. Кроме того, УК-НЦ-ихи у меня есть, но вот нармальной работы у них с флопами пока нет, так что для хотя какой то гарантии надо будет под эмулятором - а значит, будет некоторая неуверенность в драйвере DZ и его работе.

Кроме того

желательно с файловым менеджером
вот тут я точно пасс - во времена оные их не было, а появившиеся позднее - не шупппал


полезностями для разработки на ASM
Правильней говорит - на MACRO-11 - язык ассемблера с поддержкой макросов. Есть ещё ыкзотика - PAL-11 - язык ассемблера без поддержки макросов - но его компилятор можно найти только в очень древних операционках и очень старых версиях RT-11

Основное есть в (дистрибутиве) RT-11 - macro.sav (компилятор с MACRO-11), link.sav (компоновщик), sysmac.sml (библиотека системных и не только макросов) и syslib.obj (некоторое количество полезных подпрограмм для макро-систов и куча достаточно полезных процедур для фортран-истов и почти бесполезных для макро-систов). Это то, что есть (по крайне мере, на английском) более менее подробное описание. И для начального изучения языка MACRO-11 (а так же базовых знаний архитектуры PDP-11) этого более менее хватает.

У Вас к УК-НЦ подключено два флопа?

S_V_B
05.05.2018, 15:12
/* У Вас к УК-НЦ подключено два флопа? */
Да два.
Два Gotek'a

/*Правильней говорить - на MACRO-11*/
Как бы макросы пока не особо интересны, больше интересует конкретно железо УКНЦ, а не совместимость со всеми RT-11.
А MACRO-11 без использования макросов..
Эти макросы были полезны инженеру в 70х чтобы посчитать интеграл не вдаваясь в подробности архитектуры..

Hunta
05.05.2018, 15:27
О, то, эксперименты с чем я не довёл до конца :) Какая модель?

- - - Добавлено - - -

Может, в этим выходные получится подключить :):)

- - - Добавлено - - -


А MACRO-11 без использования макросов
Всё равно остаётся MACRO-11 :)

- - - Добавлено - - -

Пойду-ка я достану свои Готеки :)

nzeemin
05.05.2018, 15:37
Я уже как-то писал как я разрабатываю.

Используется Эмулятор RT11 для консоли Windows от Patron: http://zx-pk.ru/threads/24755-emulyator-rt-11.html
Пример командного файла: https://github.com/nzeemin/uknc-highwayencounter/blob/master/!compilelink.bat
То есть прямо под виндой всё пишем в любимом редакторе, там же запуском командника компилируем, исправляем ошибки, работаем с git итд.
В результате компиляции и линковки получаем готовый .SAV файл, плюс .LST файл с актуальными адресами.
Дальше, если RT-11 не нужна и .SAV не слишком большой, то используем утилиту Sav2Cart чтобы сделать картридж, это тоже одна строчка в команднике.
Если нужна RT-11 или файл слишком большой, то используем утилиту rt11dsk для помещения файла на образ диска, опять же это автоматизируется.
И ещё один командник для запуска эмулятора UKNCBTL, его кстати можно запустить с ключом /boot для загрузки с диска без выбора пункта меню.

Дальше в эмуляторе если что-то нужно отладить, в консоли отладчика команда gNNNNNN -- дойти до адреса NNNNNN, там кнопками ходим по шагам. Поглядываем в .LST файл чтобы видеть реальные адреса.

Так чтобы самому конвертировать в машинный код -- да, можно, но это для программ из десяти строчек разве что.

- - - Updated - - -


Эти макросы были полезны инженеру в 70х чтобы посчитать интеграл не вдаваясь в подробности архитектуры..
Да ладно. Бывают простые и полезные макросы, например:


.MACRO PUSH RR
MOV RR,-(SP)
.ENDM
.MACRO POP RR
MOV (SP)+,RR
.ENDM

S_V_B
05.05.2018, 15:51
Просто в процессе изучения возникло непреодолимое желание (без всяких компиляций, линковок, эмуляций и прочих танцев) потыкать живую машинку.. в удобной конечно для меня форме :) дебаггером.. не машкодами в мониторе :)

- - - Добавлено - - -

SFR1M44-U100K .. хотя они по моему все одинаковые ..готеки эти.. прошивки разные.
Я свои завел еще на БКшке по этой теме:
https://github.com/keirf/FlashFloppy/wiki/Firmware-Programming

MM
05.05.2018, 16:09
дебаггером.. не машкодами в мониторе
Поищите Грот от ДВК - длина - 10000, перемещаем в адресах, работает напрямую с портом 177560, не знаком с RT-11.

Hunta
05.05.2018, 16:41
например
лучше сделать так


.MACRO PUSH A
.IRP ...1,<A>
.IF NB ...1
MOV ...1, -(SP)
.IFF
CLR -(SP)
.ENDC
.ENDR
.ENDM


- - - Добавлено - - -


SFR1M44-U100K
Класс! Щас бум разбираться :):):) У меня точно такие же :))

- - - Добавлено - - -


Я свои завел еще на БКшке
Как у Вас стоят перемычки, как сделан кабель, в каком виде лежат образы на флешке?

- - - Добавлено - - -

Пичалька, вторая МС1201.04 признаков жизни не подаёт. Но проц на ней рабочий. ААААА, хочу осциллоскопус :)

S_V_B
05.05.2018, 16:52
Поищите Грот от ДВК - длина - 10000, перемещаем в адресах, работает напрямую с портом 177560, не знаком с RT-11.

А Грот под какой ОС работал?

MM
05.05.2018, 16:57
хочу осциллоскопус
Вроде как господин из Москвы раздумывает о продаже двухлучевика 10 мгц С1-77 за 3 т.р. :
http://www.phantom.sannata.ru/forum/index.php?t=29549
По крайней мере металла в ослике на 1500 руб точно наберется...

- - - Добавлено - - -


А Грот под какой ОС работал?
Без ОС, напрямую с портом терминала 177560.( Т.е. отладчик не показывает макросы RT-11, просто пишет ЕМТ № )
Единственная моя копия на 573РФ3 с адресом 140000 оказалась посыпавшейся, и отправилась к господам, желающим много металла.

S_V_B
05.05.2018, 16:58
/* Как у Вас стоят перемычки, как сделан кабель, в каком виде лежат образы на флешке? */
Кабель перевернут 10-13, перемычки потом сфотаю исли нужно будет.
Образы в HFE так что диски для любой техники можно делать.
Программа для конвертации:
https://yadi.sk/d/LOTrVXBF3VP3Yg

Raw imge->UKNC MFM->10 sectors per track

фотки:
https://yadi.sk/i/LGucrhKl3VP5Ls
https://yadi.sk/i/gMyrpVd53VP5Sd
(мод с OLED)

xolod
05.05.2018, 18:56
Можно попробовать написать Keir Fraser (разаботчику FlashFloppy) с просьбой добавить формат DSK rt, но ему надо будет дать подробную информацию по формату образов.

Hunta
05.05.2018, 19:24
Что то мне пока не везет с Готеком. Правда, сегодня я продвинулся вперёд - увидел (первый и пока последний раз) сообщение BOOT-U-I/O Error :)


Можно попробовать написать Keir Fraser (разаботчику FlashFloppy) с просьбой добавить формат DSK rt
Как такового, там формата то и нет - просто 512 сектора друг за дружкой. Но в контроллер надо генерировать всякие служебные байты

Есть у меня предположение, что в HFE и MFM при генерации как раз надо задать их правильное количество :)

S_V_B, что Вы выставляете в программе при конвертации из DSK в HFE?

- - - Добавлено - - -

?BOOT-W-Error reading handler
?BOOT-W-Error reading handler
?BOOT-W-Error reading handler
?BOOT-W-Error reading handler
?BOOT-W-Error reading handler

ФОДОС Ф/О В03.00
?KMON-U-Overlay read error

.

xolod
05.05.2018, 19:36
Вот комиты которые добавили поддержку UKNC ;-) в HXC конвертор.
https://sourceforge.net/p/hxcfloppyemu/code/1123/
https://sourceforge.net/p/hxcfloppyemu/code/1124/
https://sourceforge.net/p/hxcfloppyemu/code/1125/
https://sourceforge.net/p/hxcfloppyemu/code/1126/

Hunta
05.05.2018, 19:42
В общем, играясь параметром GAP3, я получил сконвертированный файл, который без ошибок (и даже dir прошел) загрузился на ДВК :) Такого успеха с Готеками ещё на было :)

- - - Добавлено - - -

https://sourceforge.net/p/hxcfloppyemu

503 No Backend Servers Available
No backend servers were available to answer your request. Please notify the site admins.

- - - Добавлено - - -


поддержку UKNC ;-) в HXC конвертор.
Это, конечно, хорошо, но лучше был бы вариант (в том числе) нативной работы с .dsk файлами :) С автогенерацией при чтении и забивании при записи на всяку слежебную инфу :)

- - - Добавлено - - -

Хрена себе - даже прошло форматирование и функциональный тест :)

- - - Добавлено - - -

Надо второй перепрошивать :)

xolod
05.05.2018, 19:43
В общем, играясь параметром GAP3, я получил сконвертированный файл, который без ошибок (и даже dir прошел) загрузился на ДВК :) Такого успеха с Готеками ещё на было :)

- - - Добавлено - - -

https://sourceforge.net/p/hxcfloppyemu

503 No Backend Servers Available
No backend servers were available to answer your request. Please notify the site admins.

- - - Добавлено - - -


Это, конечно, хорошо, но лучше был бы вариант (в том числе) нативной работы с .dsk файлами :) С автогенерацией при чтении и забивании при записи на всяку слежебную инфу :)

- - - Добавлено - - -

Хрена себе - даже прошло форматирование и функциональный тест :)
SourceForge лагает

Hunta
05.05.2018, 19:47
SourceForge лагает
Через Ж, но добрался до него :) Щас гляну

xolod
05.05.2018, 19:52
1124 особо интересный

Hunta
05.05.2018, 19:53
1124 особо интересный
Я последний билд скачал, не знаю, какой там коммит. А что в 1124 интересного?

xolod
05.05.2018, 19:56
В последнем билде трудно разбиратся, эти коммиты какраз добовляют нужную функциональность. В 1124 там как раз raw формат диска.

Hunta
05.05.2018, 19:57
Да, в последнем билде конвертера при выборе UKNC MFM 800Kb Disk Layout на выходе получаем вполне рабочий вариант.
И да, для тех, кто ещё не сообразил - всё это время я экспериментировал на Квант-е :)

xolod
05.05.2018, 20:06
Квант с КМД?
Написал в поддержку SF.

Hunta
05.05.2018, 20:36
Квант с КМД
Квант с MY :)
По формату записи (но не работе с контроллером) MY и MZ идентичные

- - - Добавлено - - -

S_V_B, xolod, большое спасибо за подсказки и наводки :) Пусть и не совсем тот формат, но - по крайне мере есть уверенность, что оно РАБОТАЕТ :) А там или разработчик добавит или меня достанет и я добавлю :)

xolod
05.05.2018, 20:43
Давайте сделаем отдельную тему и там соберем все по Gotek + ДВК УКНЦ

Hunta
05.05.2018, 20:52
Давайте сделаем отдельную тему
Сделал