Просмотр полной версии : Поломал себе мозг- про порт 3F
Касаемо наших клонов, если у меня железка висит на 3Fh , я пишу в него сразу после RESET, что "поломается" из многообразия наших железок?
Мне нужно перекинуть внутренние порты z180, в другую область его I/O -3Fh -это как раз порт для этого. Пытаюсь сохранить частичную совместимость по портам.
еще такой нюанс, пишется в порт командой z180 IN0, при этом все старшие адреса А8-А15, лягут в 0.
null_device
28.02.2016, 09:20
Totem, единственный порт, который приходит в голову - BDI, т.е., порт вашей "примочки", должен отключаться при входе в tr-dos.
http://sblive.narod.ru/ZX-Spectrum/ZXPORTsLIST/ZXPORTsLIST.htm
И, если верить информации из другого источника (http://speccy.info/%D0%9A%D0%B0%D1%80%D1%82%D0%B0_%D0%BF%D0%BE%D1%80% D1%82%D0%BE%D0%B2_ZX_Spectrum): #3F - один из двух каналов Profi Covox (второй - #5F).
iorq для внешних железок можно аппаратно запретить после сброса, а разрешать только после того, как порты z180 перекинуты.
И, если верить информации из другого источника: #3F - один из двух каналов Profi Covox (второй - #5F).
Так и есть, порты 1F, 3F и 5F на Profi на отвечают за управление портом 580ВВ55
Так и есть, но я пока не могу придумать как это сделать оптимально , держать IORGE на время выполнения команд? из какой страницы стартовать ? меню лежит в станице с BASIC 128?
- - - Добавлено - - -
Пока задумка такая, при старте IORG посадить на счетчик тактов, стартовать скажем из 0 страницы, перекинуть код в озу, прыгнуть туда, переместить IO, счетчик отпустит IORG, включить нужну страницу пзу и туда прыгнуть в 0000.
пойдет?
Вместо счётчика можно использовать старший бит адреса. Перекидывай код в адреса 7Fxx-80xx, так, чтобы момент включения IO приходился на адрес 8000. Еденица в старшем бите адреса должна включать IO.
Вместо счётчика можно использовать старший бит адреса. Перекидывай код в адреса 7Fxx-80xx, так, чтобы момент включения IO приходился на адрес 8000. Еденица в старшем бите адреса должна включать IO.
Спасибо, довольно изящно, но тоже триггер, иначе любой код там будет дергать IORQG.
Там засада еще в том,что при переброске IO в 80-BF, часть железок пресекается все равно, я пока не делал выборку какие именно внутренние
порты могут гадить (запись в MMU например приведет к пичальке) , пока "втихоряскамунизжу" один малоизвестный порт :) для принудительного включения IORGQ.
Так как это подобие "карманного компа", zx ради спортивного интереса, то для простоты возьму пока просто 48 спек. Там видно будет.
тем более я пока не особо придумал как совместить менеджер памяти 128 и MMU 180, теоретически битом D5 7fffd можно отключать.
будет 1M c MMU 180, он гораздо гибче чем менеджер по 16K в CPU 3.
Еще есть засада команды DAA,RRD,RLD работают не так, насколько это критично? много кто их использует?
ram_scan
29.02.2016, 14:04
Еще есть засада команды DAA,RRD,RLD работают не так, насколько это критично? много кто их использует?
Они чуть иначе работают с флагами. Что касается DAA после INC/DEC то по корану так нельзя было делать, потому-что INC/DEC если я верно помню не влияли на флаг переноса, и по идее все должно было работать как в Z180 с самого начала. Но DAA на Z80 пользовалась внутренним флагом переноса который не всегда попадал в аккумулятор, и это работало, и программ таких достаточно много.
На грабли с отличиями во флагах после RLD/RRD можно наверное натолкнуться только в ксорках/крипторах, потому-как сложно придумать практическое использование флагов после такого "вертежа".
- - - Updated - - -
Касаемо наших клонов, если у меня железка висит на 3Fh , я пишу в него сразу после RESET, что "поломается" из многообразия наших железок?
Мне нужно перекинуть внутренние порты z180, в другую область его I/O -3Fh -это как раз порт для этого. Пытаюсь сохранить частичную совместимость по портам.
еще такой нюанс, пишется в порт командой z180 IN0, при этом все старшие адреса А8-А15, лягут в 0.
Раз оно пишется отдельным опкодом проще по /M1 выцеплять дешифратором этот опкод и на время его выполнения отрубать /IORQ на запись от всей забортной периферии. А чтение все равно из внутренней защелки пойдет.
Еще вопрос кто то мучал BBC BASIC
https://sourceforge.net/p/sebasic/discussion/1747195/thread/55441f69/
или что то подобное под свои нужды?
Еще вопрос кто то мучал BBC BASIC ... или что то подобное под свои нужды?
BBC BASIC - язык программирования для компьютера BBC Micro компании Acorn, со спектрумом не совместим.
SE Basic - это исправленное ПЗУ спектрума, с устранением ошибок, добавлением новых команд и поддержкой AY и ULAplus. (последнюю версию 4 (http://cheveron.github.io/sebasic4/) допиливал Andrew Owen и вроде довёл его до свободно-распространяемого статуса).
OpenSE BASIC - примерно то же (https://sourceforge.net/projects/sebasic/), но разработан с нуля без использования кода из ПЗУ спектрума и поэтому легально свободно распространяемый. Написан Andrew Owen после того, как армстрадовцы послали его нахер с просьбой открыть для свободного распространения ПЗУ спектрума..
_ В SE Basic и OpenSE BASIC дополнительные команды и поддержка AY, ULAplus реализованы по-разному. Что лучше, не знаю...
BBC BASIC - язык программирования для компьютера BBC Micro компании Acorn, со спектрумом не совместим.
SE Basic - это исправленное ПЗУ спектрума, с устранением ошибок, добавлением новых команд и поддержкой AY и ULAplus. (последнюю версию 4 (http://cheveron.github.io/sebasic4/) допиливал Andrew Owen и вроде довёл его до свободно-распространяемого статуса).
OpenSE BASIC - примерно то же (https://sourceforge.net/projects/sebasic/), но разработан с нуля без использования кода из ПЗУ спектрума и поэтому легально свободно распространяемый. Написан Andrew Owen после того, как армстрадовцы послали его нахер с просьбой открыть для свободного распространения ПЗУ спектрума..
_ В SE Basic и OpenSE BASIC дополнительные команды и поддержка AY, ULAplus реализованы по-разному. Что лучше, не знаю...
Я вообще то в курсе, что такое bbc basic и спектрум тут причем, вообще имелось ввиду кто то, имел опыт доделки переделки. он работает успешно на многих самоделках Z80.
https://www.youtube.com/watch?v=PcFZUJwmnQ4
ну и вообще вот так
http://mdfs.net/Software/Spectrum/BBCBasic/
http://mdfs.net/Software/BBCBasic/
ну и вообще вот так
http://mdfs.net/Software/Spectrum/BBCBasic/ Спасибо! Интересно! Надо пробовать. Бегло почитал - на спектруме можно использовать 3-мя способами: просто загрузить с ленты побаловаться, прошить вместо спектрум-бейсика (тогда это уже будет не спектрум), прошить вместо бейсика-128 (тогда надо решить какие-то заморочки с портом FD)...
Сам этот BBCbasic хвалят, говорят он с ассемблером хорошо сочетается...
Есть рекомендации по его запуску в эмуляторах...
А вообще под это надо другой топик создавать, а то здесь эту интересность никто не найдёт...
P.S. автор пишет, что при обычном ресете попадаем в BBC BASIC, а если при ресете удерживать кнопку Z, попадаем в ZX BASIC...
...и я так понял, скрещивать с TR-DOS его ещё пока никто не пробовал...
Спасибо! Интересно! Надо пробовать. Бегло почитал - на спектруме можно использовать 3-мя способами: просто загрузить с ленты побаловаться, прошить вместо спектрум-бейсика (тогда это уже будет не спектрум), прошить вместо бейсика-128 (тогда надо решить какие-то заморочки с портом FD)...
Сам этот BBCbasic хвалят, говорят он с ассемблером хорошо сочетается...
Есть рекомендации по его запуску в эмуляторах...
А вообще под это надо другой топик создавать, а то здесь эту интересность никто не найдёт...
P.S. автор пишет, что при обычном ресете попадаем в BBC BASIC, а если при ресете удерживать кнопку Z, попадаем в ZX BASIC...
...и я так понял, скрещивать с TR-DOS его ещё пока никто не пробовал...
Тут интересные прошивки http://zx-pk.ru/showthread.php?t=12905&p=805413&viewfull=1#post805413
Они только наверно под +3 :(
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot