|
nedoPC.orgElectronics hobbyists community established in 2002 |
|
Author |
Message |
alexcp
Senior
Joined: 11 Jun 2012 07:30 Posts: 128
|
Вроде бы проблема в коде монитора NoICE. Как выше пишет автор, NoICE использует инструкцию RST 1 (код CF) в качестве breakpoint. RST 1 эквивалентен CALL 0008 (сохраняет PC в стеке, затем пишет 0008 в PC). Подпрограмма по адресу 0008 копируется в ОЗУ из ПЗУ при запуске монитора NoICE: и далее (после перехода на INT_ENTRY) То есть PC будет правильным, только если A=1, но в A записывается 2. Замена MVI A,2 на MVI A,1 (байт в ОЗУ по адресу 000A заменить с 02 на 01) решает проблему. Если автор подтвердит, что такая правка ничего не сломает, я скомпилирую монитор заново и выложу исходник и BIN ПЗУ здесь и на http://radio86rk.pbworks.com. Забавно, что раньше никто - в том числе я сам - не заметил ошибки. Видимо, у всех по адресу 0000 располагается ПЗУ (в этом случае все должно работать правильно).
|
16 Dec 2022 07:57 |
|
|
Pyk
Maniac
Joined: 21 Jan 2003 04:08 Posts: 224
|
Только сейчас добрался проверить. Да, похоже, что автор действительно забыл изменить значение, указанное для примера в копируемых DUMMY_INTS. Заменил 2 на 1, перекомпилировал - на первый взгляд работает нормально У меня не самая свежая версия NoICE 9.4, но в присланном мониторе для 8080 из 9.8 в этом плане то же самое.
_________________Эмулятор Emu80
|
16 Dec 2022 22:58 |
|
|
alexcp
Senior
Joined: 11 Jun 2012 07:30 Posts: 128
|
Он не забыл - он не ожидал, что по адресу 0000 будет ОЗУ, а его монитор будет в другом месте. Он решал проблему, которая в РК86 отсутствует, но не предусмотрел организацию памяти, примененную в РК86: | | | | Quote: The march of technology: back in the mid 1990s when NoICE was born, address 0 on an 8080, 8085, or Z80 was almost always EPROM, so that there was code to run at address 0 after reset. The NoICE monitor's assumption is that the monitor lives at 0: That lets "RST 0" start the monitor and "RST 1" be used for breakpoint. But EPROM at 0 is a problem if your program uses interrupts, or uses the other RST instructions as on-byte calls, since the EPROM won't contain the code being debugged. The NoICE help at https://www.noicedebugger.com/help/work ... sicMonitor describes NoICE's solution/work-around: The code at DUMMY_INTS is a little obscure: when the monitor starts, it copies this code to USER_CODE (presumed to be RAM). If the code being debugged overwrites USER_CODE during loading, then the RSTs will jump to your code. But if the code being debugged DOESN'T overwrite USER_CODE, and an (unexpected) interrupt or RST occurs, the DUMMY_INT code will stop your program and return a unique numeric state for each RST. NoICE will show this as a string in the title bar as the reason that the target stopped. For 8080, this would be something like "RST 2" etc. For HC11 with build in I/O, it might be "Timer Capture 1" This is actually much more useful on a processor like the 6809 or HC11, with interrupt vectors at the top of memory (assumed by NoICE to be in EPROM), where an uninitialized vector is more likely. It sounds as if your hardware isn't putting the monitor at location 0, at least not after initial startup, and you are remapping your code RAM to 0. In that case, you just need to ensure that RST 1 (or whatever you use for breakpoint) gets to the code that does: | | | | |
Когда я модифицировал его монитор (ровно четыре года назад), я в этом всем не разобрался. Хорошо, что разобрались сейчас. Как обещал, я соберу монитор NoICE из последнего варианта Mon8080 (NoICE 9.8 ) и моего кода для FT245RL и выложу чуть позже.
|
17 Dec 2022 05:55 |
|
|
alexcp
Senior
Joined: 11 Jun 2012 07:30 Posts: 128
|
Исправил, обновленный вариант выложил в этой теме (в моем посте от 16 декабря 2018 года), а также на radio86rk.pbworks.com.
Last edited by alexcp on 10 Jan 2023 10:49, edited 2 times in total.
|
09 Jan 2023 09:50 |
|
|
otrazhenie
Fanat
Joined: 23 Feb 2021 23:45 Posts: 64 Location: Россия Климовск
|
Доброго дня. Спрошу тут, т.к. у меня тоже РК86 на SRAM 32к, только проект другой. проект отсюда: https://github.com/skiselev/radio-86rk. Все запускается, директивы работают, но программы не грузятся с ленты. до 13 выв ВВ55 сигнал доходит. Немного напрягает отрицательная составляющая после компаратора...но не знаю критично ли это. Так вот, после набора директивы I и загрузки программы с mp3 плеера выходит стрелка с ожиданием директивы....Ввожу G, экран моргает и вываливается в начальное состояние с веселой надписью РАДИО-86РК осциллографом пролазил...все сигналы вроде на месте....в общем прошу направления куда копать.
|
02 Feb 2023 05:59 |
|
|
alexcp
Senior
Joined: 11 Jun 2012 07:30 Posts: 128
|
С самим РК все в порядке, проблема в загружаемой программе. Попробуйте загрузить что-нибудь другое.
|
02 Feb 2023 06:37 |
|
|
b2m
Devil
Joined: 26 May 2003 06:57 Posts: 870
|
Учтите также, что чаще всего G соответствует G0000, а программа может загружаться по другому адресу.
_________________Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
|
02 Feb 2023 06:57 |
|
|
otrazhenie
Fanat
Joined: 23 Feb 2021 23:45 Posts: 64 Location: Россия Климовск
|
нууу.....это первое что я сделал. И не на одном файле. Результат всегда один. Поэтому и прошу тут помощи.
|
02 Feb 2023 21:17 |
|
|
alexcp
Senior
Joined: 11 Jun 2012 07:30 Posts: 128
|
Если Монитор загрузил данные с ленты, и контрольная сумма совпала, то претензий к оборудованию быть не должно. Давайте разбираться. После окончания ввода с ленты Монитор должен выдать на экран три числа - начальный и конечный адреса загрузки и контрольную сумму. Если контрольная сумма не совпадает с той, что записана на ленте, то выдается четвертое число (контрольная сумма с ленты) и вопросительный знак. Наблюдаете ли Вы что-то подобное?
|
02 Feb 2023 21:59 |
|
|
otrazhenie
Fanat
Joined: 23 Feb 2021 23:45 Posts: 64 Location: Россия Климовск
|
разобрался! был мал уровень сигнала с проигрывателя
|
02 Feb 2023 22:42 |
|
|
backa
Junior
Joined: 21 Mar 2017 16:39 Posts: 6
|
повторю тут мой вопрос... Хотелось бы спросить КАК и ЧЕМ Вы растрассировали плату такой плотности - я тоже хочу свою сделать именно как Вы - все DIP40 плотно друг к другу. Но я хочу всю мелкую логику заменить на CPLD - так же разместить ее с обратной стороны - или в 144 или 128 выводов корпус задействовать CPLD. Я понимаю что можно вручную в Altuim-e но на это уйдет огромный кусок времени - каким автотрассировщиком Вам удалось добиться такой плотности и как Вы расставляли в начале корпуса(чем при этом руководствовались)?
|
26 Nov 2023 19:01 |
|
|
alexcp
Senior
Joined: 11 Jun 2012 07:30 Posts: 128
|
Eagle 7, автотрассировщик FreeRouting.net - на сегодняшний день больше недоступный, к сожалению - затем ручное допиливание. Корпуса расставлял на глаз, с учетом опыта разводки моих предыдущих плат РК86. Большинство корпусов там подключено к одним и тем же сигналам, так что взаимное расположение не особенно важно, важнее близость к соответствующим разъемам. В варианте 2018 года (маленькая плата, где сверху ДИПы вплотную друг у другу, а снизу все остальное в SMT) заменил три широких ДИПа (155ИР13, 589ИР12 и ОЗУ) на эквиваленты в СОИК. Плата четырехслойная, в двух слоях не развелось. Зато в четырех слоях там все не так уж плохо, несмотря на компактность. Идея спрятать мелкую логику в PALку мне в голову приходила, но от неё отказался ради повторяемости. PALки и 5-вольтовые CPLD быстро вымирают вместе с софтом для разработки и программаторами, а мелкая логика живет. К слову, примерно в то же время я написал на CUPL SPI интерфейс для 8080, который помещается в ATF2500. Код есть, CPLD есть, прошить нечем - мой ChipProg вроде должен уметь, но ругается на перегрузку по току. Что касается автотрассировщика - автор его убрал из сети потому, что кто-то обвинил автора в нарушении чужих авторских прав и заимствовании чьего-то кода. Но я успел сохранить копию Написано на Java, запускается из-под NetBeans, требует файл в формате DSN (для Eagle есть ULP, который такие файлы создает). Не самый лучший, медленный и не особенно удобный, но полезный. Выкладывать не буду, а то набегут защитники авторских прав, но если кому надо, могу поделиться.
|
08 Jan 2024 04:46 |
|
|
backa
Junior
Joined: 21 Mar 2017 16:39 Posts: 6
|
Спасибо за ответ! Я делал очень плотный монтаж раньше но корпуса всегда были на расстоянии и было поле для маневра ручной разводки шин и одиночных сигналов. А вот когда все корпуса плотно друг к другу - такое видел только в древних платах и вот у Вас увидел. Захотелось повторить чисто ради интереса и красоты)) Никакого практического значения такая плотность не имеет в моем случае - только эстетика. По большому счету все эти ретрокомпики делаюсь ради самого процесса "делания" а не для пользования))) И вряд-ли кто-то будет затевать их производство в количестве более 5 штук (минмимальный заказ плат у китайцев). А поставить конфигурируемую CPLD 5-вольтовую (типпа XILINX XC95216 или ALTERA EPM7128S где стандартный JTAG - а уж его можно "шить" хоть ногодрыгом через LPT) - упрощает поле для будущих экспериментов с портами и цветами и др. ... Это все равно хобби и не более того. С вашей подачи подключил свой LCD 24 бита напрямую к RGB Spectrum-a. ну с такими "характеристиками" и Altium наверное посоревнуется ))) Верно - тут с этим строго. Из бесплатного KiCad вроде "что-то" может в этом плане но он расчитан на очень большого "любителя"))) Да и с помощью этого можно посмотреть но самого трассировщика там уже нет - его сам автор убрал до того как его сохранили в архив((( к сожалению очень понравилась идея с подключением I2C "железного" контролера к PK86 - ну хоть что-то можно сделать полезное на BASIC в нем "для дома - для семьи" - датчики климатконтроля и др. с I2C шиной. Кстати I2C контролер вполне неплохо "реализуем" в железе на HDL языке - на хабре недавно был цикл статей
|
14 Jan 2024 16:14 |
|
|
vital72
Senior
Joined: 17 Jun 2014 04:29 Posts: 138 Location: 93.80.157.217
|
ты в каком городе? есть Xeltek 3000U -- могу прошить. и где ты берешь ATF2500? я тоже хочу
_________________https://radio-86rk.ruкто я такой, чтобы спорить с самим собой
|
27 Jan 2024 05:35 |
|
|
alexcp
Senior
Joined: 11 Jun 2012 07:30 Posts: 128
|
ATF2500C пока еще производится и много где продается, например в Microchip Direct, Arrow, Newark. За предложение прошить спасибо, см. личку.
|
27 Jan 2024 07:09 |
|
|
Who is online |
Users browsing this forum: No registered users and 6 guests |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum
|
|