Пардон! Не пишут, а написали и зарелизили! Смотри новости сайта http://atmturbo.narod.ru от 22 июля.Сообщение от acidrain
Пардон! Не пишут, а написали и зарелизили! Смотри новости сайта http://atmturbo.narod.ru от 22 июля.Сообщение от acidrain
Максагор, NedoPC group
ПК ATM-turbo 2+ 1024Kb RAM, 1,7Gb HDD, CD-ROM, Turbo FM, GS-512
[ZX rulezzz 4reva!!!]
http://atmturbo.nedopc.com
http://vk.com/atmturbo
http://maksagor.livejournal.com
http://moskprf.ru
[СССР][Коммунизм][КПРФ] ну [ZX], естественно...
Ну, прямо скажу - не в темуСообщение от Максагор
))) Хотя штука супер - ОГРОМНЫЙ шаг вперед рухляди под названием спектрум
))
Последний раз редактировалось acidrain; 05.08.2005 в 23:29.
слишком много заморочек и мало полезного результатаСообщение от acidrain
ха-ха. нужно переключать не банки, а диспетчер, а у него не 1 байт, а 3 байта отвечают за стартовый адрес, то есть в 3 раза больше аутовСообщение от acidrain
ну тут есть и свои плюсы. несколько программ, лежащих в осовном памяти или в одной банке, и уже настроенных на адрес, могут запросто вызывать друг друга. вызов другой банки - 1 out. а тут всегда, независимо от расположения, нужно перепрограммировать диспетчер (3 out'a?)Сообщение от acidrain
который переключает банки. я понимаю, можно сделать бит конфигурации, который включает или старую страничную организацию, или новый MMU. но делать одновременно - по одним портам MMU, по другим страницы - застрелишьсяСообщение от acidrain
там процессор может напрямую адресовать 4gСообщение от acidrain
тоже сравнил. виртуальный ВГ эмулирует чтение сектора. операция стандартная, выполняется за 1 раз (то есть можно полностью заменить своей, оптимизированной) и нечасто. один тормоз раз в сектор вполне уместен. а с памятью можно работать бесчисленным множеством способов и потери скорости недопустимы, и так z80 медленныйСообщение от acidrain
Мне кажется это пустое
Пересылка байта займёт 16 тактов, при частоте 4МГц - 250000 байт
в секунду, а соответственно 1Мб - около 4-х секунд
Соответственно реальное использование памяти более 1Мб крайне
сомнительно.
мысль пришедшая в голову сходу:
расширить и кол-во команд и даже ввести новые регистры за счет недокументированых команд.
А именно, берем блок #C0-#FF с префиксом #ED. Если в памяти находится след. последовательность байтов: #ED,#C0,#AA,#BB пусть это будет загрузка номера сегмента, внешняя логика декодирует #ED,#C0 и след. два байта попадают не к Z80, а во внешние регистры, а Z80 в то время выполняет две команды NOP. Для косвеной адресации подобным образом (подменой) можно использовать команды LD (nn),HL и LD HL,(nn) или LD HL,nn.
Остальное додумайте сами!
jtn: это хорошая штука, если соединить с диспетчером памяти. можно сделать как в 8086. там ведь регистры 16-разрядные, но адресуется гораздо больше через префикс сегмента. лучше даже не пропускать 2 байта после #EDC0, а обойтись без них. просто использовать префиксы #EDCn для того, чтобы сказать диспетчеру, что следующая команды будет работать не с абсолютным адресом, а прибавит к нему смещение или неявно задаст выборку из другой банки. если использовать #EDC0-#EDFF, то диспетчер может хранить до 64 "закладок" на области в верхней памяти. эти закладки, будут похожи на сегментные регистры x86, только храниться вне процессора, инициализироваться через порты. ну или половину диапазона отвести на постоянное программирование смещения, а вторую половину - только на время выполнения следующей команды. плохо только, что прибавится 8 тактов на каждое обращение к верхней памяти
ADST: лишней памяти всегда можно найти применение. может, эмулятор дискеты будет с двумя дискетаи сразу работать... или видео/звук можно из памяти играть
По поводу расширения команд - лет ... я начинал мастерить такое,
потом осознал свои заблуждения и бросил
"лишней памяти всегда можно найти применение" - если
проц будет на 20Мгц, тогда возможно, но не надо забывать -
в память ещё загрузить надо что-то, проще прикрутить винт.
Помилуй, в худшем случае 1 аут - номер "банки" на 65к; в лучшем, как jtn предложил - дополнительные команды для адресов => 65К. Последний вариант предпочтительней.Сообщение от ASDT
Поймите, программист не должен знать, что у него 2 метра памяти (он конечно можен на них расчитывать), он просто действует в пределах 65к, плюс не хитрым переключением (худший вариант) остальная память или при помощи команд, например
всего лишь включит девятый банк и запишет в HL адрес $77fe. Дальше работай, как душе угодно. =)Код:LEA xhl, $977fe LD a,(hl) ...
Проще цф карточку прикрутитьСообщение от ASDT
. Вот и грузи сразу с винта 1 мег и работай. Причем можно задействовать мму для целей загрузки одним куском =)
Да карточку будет правильнее. Ну какое слово подвернулось,
то и написал![]()
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)