Имеем:
PC/XT-совместимая машинка с 256! KB памяти на борту и шиной ISA-8bit.
Похожа на клон вроде вот этой: http://www.computermuseum.li/Testpage/Motherboard-IBM5150-PC-1982.jpg
Иллюстрация к распределению памяти:
00000-0FFFF - 64 K
10000-1FFFF - 64 K
20000-2FFFF - 64 K
30000-3FFFF - 64 K
40000-9FFFF - пусто *
A0000-BFFFF - VIDEO RAM (Graph+Text)
C0000-CFFFF - Video BIOS
D0000-EFFFF - пусто *
F0000-FFFFF - ROM BIOS
------------------------
Итого: 256КB распаяно на плате DIP-микросхемами (8+1)* 4 банка.
* хочется добавить памяти в эти регионы адресов.
Блок 40000-9FFFF дополнит память до 640 KB, а регион D0000-EFFFF можно использовать как UMB (c помощью HIRAM.EXE, например)
Ну а теперь вопрос:
Реально ли спаять такую внешнюю плату расширения памяти в домашних условияx под ISA 8 BIT из современных комплектующих деталей?
Кстати, НАШЕЛ такую плату расширения в интернете :
*****************************
IBM - 256k to 640k expansion card
Rare IBM 384k memory expansion card for PC-XT to bring the 256k motherboard up to 640k ram.
Only $85.00 :( :( :( :( :(
*****************************
В каталоге: http://www.abcresellers.bigstep.com/item.jhtml?UCIDs=1068993%7C1152382&PRID=1133244
Картинка отдельно: http://www.abcresellers.bigstep.com/Images/xt-384mem.jpg
Проблема не с мультиплексированием линии адресов, проблема с тем, что память динамическая - в основе ячейки не триггер, как в статической, а конденсатор, то есть, ей нужно делать регенерацию данных в ячейках... для этого и пользуются мудреные контроллеры памяти. либо - как в спектрумах, программная регенерация ;)
[offtop]
Вот память на ферритовых сердечниках была действительно памятью!
Как сейчас помню историю двадцатипятилетней давности, когда у нас сдохла СM-4 и меня попросили написать для нее тест. Тест был просто примитивный и в кодах PDP-11 занял меньше двух экранов монитора (т.е не более 40 16 битных слов).
Только вот вводить их пришлось используя инженерный пульт CM-4 где каждый БИТ вводился отдельным переключателем.
Написал и отладил я этот тест на Электронике 60 в пультовом режиме с вводом команд в восьмиричном виде буквально за десять минут, а потом еще полтора-два часа вводил его с пульта, пока не сделал все праввильн. В общем утром начал, к обеду закончил и ребята при помощи осцилографа, тестера и какой-то матери приступили к поиску неисправности...
На следующий день, предвкушая повторение этого извращенного секса приехал на работу, и обнаружил, что ребята уже не только продолжают тестирование, но и уже "вычислили" сдохший тригер и сейчас проверяют, как работает машина после его замены. Память на ферритах сохранила этот тест и после выключения на ночь и после отключения питания для того, чтобы вытащить плату и перепаять сдохший элемент.
[/offtop]
Это я к тому, что ключевое отличие статической памяти кэша и динамической оперативной - аж никак не в мультиплексировании линий адреса ;)
[offtop]При помощи нескольких м/сх можно повешать динамическую память на процессорную шину - писать/читать можно будет, но регенерировать прийдется программно. А вот сделать полноценный контроллер динамической памяти на рассыпухе - довольно сложная задача. С PLM - не легче, но компактнее :) но, когда еще есть SRAM с 486-х, заниматься таким для единичного устройства может разве что извращенец от электроники
Насчет ферритов - они и 10 лет будут инфу держать ;)[/offtop]
[offtop]У меня касательно ферритовой памяти воспоминания другие, хотя именно на СМ-4 я впервые поставил собственную производственную (а не учебную) программу - матрос с ветошью... :D
Поясняю: первое соединение, на котором я служил, было бригадой КИК (командно-измерительных комплексов) - этакими плавучими кусками Байконура в океане, а вычислительные центры каждого корабля были построены на МИРах (если помнишь такое чудо), память в которых, само собой, тоже была построена на ферритах; боевые работы проходили в основном ближе к экватору, где, скажем прямо, жарковато, а корабельное кондиционирование работало еле-еле; таки вот, во время боевой работы к МИРам выставлялся боевой пост в виде специального бойца (из свободных), задачей которого было по определенному графику протирать ветошью конденсат, коего больше всего скапливалось именно на ферритах... :D [/offtop]
1. http://search.ebay.com/Vintage-IBM-XT-5160-256K-to-640K-Memory-Upgrade-Kit
И еще детальное описание платы аналогичной моей
1. http://www.sothius.com/hypertxt/ibmpc.html
2. http://www.sothius.com/hypertxt/additional/ibmpcaddition.html
Старое сообщение, но не мог не заметить - не было в спектрумах прамной регенирации! (программа могла запросто выполнить команду Halt, которая запрещала ВСЕ прерывания и спокойно работать дальше)
Вы сами то поняли что написали? Укажите мне источник информации, который кроме Вас утверждает, что команда HALT на процессоре Z80 запрещает ВСЕ прерывания! Команда HALT в переводе значит - "СТОЙ". После команды HALT процессор останавливается и ждет прихода прерывания. И если до команды HALT прерывания были запрещены командой DI (Disable Interrupt), то Z80 так и останется "стоять" до тех пор, пока не прийдет NMI (кнопка MAGIC), либо процессор не сбросят по RESET. Если же до команды HALT прерывания были включены (другими словами разрешены) командой EI (Enable Interrupt), то после команды HALT, опять же применительно к Спектруму, процессор дождется прихода прерывания по линии INT (а прерывания на Speccy следуют с частотой 50 раз в секунду) и продолжит выполнение программы...
Но общий смысл в том, что мы могли запретить все прерывания и продолжать работать. А если бы на прерывания была повешена программа регенерации памяти, то после такой операции оперативка бы быстренько обнулались.
Ну подзабыл я за 10лет ассемблер спектрума, ну с кем не бывает :)
А кто Вам мешает сделать команду DI и продолжить работу далее?... Это и есть общий смысл?... :mrgreen: На любом компьютере, базирующемся на Z80 это можно сделать. :) Про программку, повешенную на прерывания, которая ЗАЧЕМ-ТО должна регенерировать память, я вообще не понял... Регенерация памяти сделана на аппаратном уровне. Зачем её регенерить в прерываниях? :shock: