Чего то я не врублюсь, а как откусить немножко памяти у интерпритатора бейсика, чтобы он резидента не затер?
Ясно. Значит будем пробовать.
Вид для печати
Кстати, я тут повспоминал, что к чему. Максимальное количество блоков - 65536, т.е. максимальный размер карты свободных блоков 8Кб. Вот только, если какая-то прога затрёт эту область памяти, а потом будет писать на винт, то всё к чёрту полетит. Было бы неплохо разместить на контроллере винта своё ОЗУ, доступ к которому открывать через порты. А если ещё и саму CP/M разместить в ПЗУ на контроллере, то вообще идеально.
---------- Post added at 16:37 ---------- Previous post was at 16:34 ----------
У меня в эмуляторе есть конфиг PK8000 KDOS, можешь посмотреть в отладчике, как там всё внутри сделано. Собственно, это можно взять за основу.
С резидентом из под васика появилась идейка, сегодня попробую. С резидентом под CP/M все еще непонятки. Под этой осью вообще есть документированные способы создания резидентов?
Чтобы ковырять ОС, нужно хотя бы приблизительно знать ее структуру. Для меня CP/M темный лес.
ПЗУ должно быть по определению, как минимум для загрузчика. В принципе, не трудно туда и что-то посерьезнее запихать. С ОЗУ сложнее, так как возникает проблема записи. Придется отображать это доп. ОЗУ только на свободный участок памяти, чтобы не попортить данных системы/программ. Это нереально. Если же делать доступ исключительно через порты, то будет слишком медленно.
В общем, пока непонятки. А может хранить образы дискет и просто эмулировать флоппи?
я тут начал лабать BeerIDE на ВВ55 под ПК8000. вместо винта - CFкарта на 32мб.
предлагаю сделать два раздела, на 8 и 24мб. или на 16 и 16мб.
один раздел юзает СРМ, второй - MS-DOS. через раздел MS-DOS можно переносить софт с ББ без лишних телодвижений, если написать соответствующую прогу для работы с FAT на ПК8000.
ОСь будет в ПЗУ, как в KDOS.sys.
вопрос - на какие порты лучше вешать интерфейс? щас у меня 50h, но можно выбрать любые другие.
и на порту С ВВ55 три бита незадействованы - мона сварганить CS для внешнего ОЗУ, или маппер какой-нить.
hantarex, кинь плиз схемку, по которой делаешь, я тогда тоже по такой же соберу. Порты бери какие удобно, по праву "первооткрывателя" :) А там и мы поможем чем сможем. И наверное пора открывать отдельную тему.
ivagor, можно попробовать с инкрементом. Вечерком посмотрю, что можно сделать.
PS: часики почти готовы. И какие порты зафиксить за RTC? 20h-21h подойдет?
схема там простейшая два дешифратора ИД7, один для ПЗУ, второй - для ВВ55, сама ВВ55 и флешка на 16кб(ПЗУ). подключение со стороны IDE как у автора. эта приблуда для Ямахи сделана, а раз у нас почти "точная копия" - то почему бы не адаптировать ее для ПК8000?:)
p.s. во вложении оригинальная схема.
p.p.s. может попробовать MSX-DOS адаптировать?
А на какие порты?
ВВ55 - на 50h-53h, ПЗУ - как обычно, на 4000h.
Проблема в том, что запись будет не только во внешний слот, но и в основное ОЗУ. DemonID7 установил это на своем реале, можно почитать начиная отсюда, со слов "Неудачу E1RT64 можно очень просто объяснить."
Я так понял, это сделано для оптимизации скорости доступа к видеопамяти. В интерпритаторе видеопамять располагается "под" rom-bios. Я еще когда дизассемблировал биос удивился, почему VPOKE не мэппирует видеопамять, а пишет прямо в rom-bios. Эксперименты с доп. памятью в общем помогли понять эту странность VPOKE.
PS: Что-то непонятное с часиками. Работают, благополучно переживают перезагрузку. Загрузка с мафона происходит некорректно. Пишет ошибку на какую-нибудь строку, в тоже время в листинге строки с таким номером нет, а выводится вообще какая то чепуха. Наверное придется сделать попроще.
Собрал на макетке контроллер. Схему чуть-чуть изменил. Убрал управление CS по линии A2, сделав "стандартно" через дешифратор. Так надежнее.
На днях попробую с винтом "пообщаться". Нужно еще Кулакова полистать, а то забыл уже как винты прогаются :)
у меня тоже самое, только без ЛА3. а про RESET я забыл:(
горожу сразу под CF-карту через переходник, питание на 20 ногу IDE-разъема заведено, внешний БП не нужен будет.
вот такой - http://sun-store.ru/product_271.html
p.s.может стоит создать под это дело отдельную тему?
Давно пора:)
есть мысль нарастить память до 128к. маппер можно использовать готовый, сигнал SLOT2, на Весте он не распаян. или D32(?), ВВ55 на порт принтера, у нее младшая тетрада порта А не используется. да и на порте С есть свободные ноги. единственная проблема - параллельная запись в основную память, надо делать блокировку записи в ОЗУ. у кого какие мысли по этому поводу?
Если делать блокировку, то придется править биос ПК, так как подпрограммы вывода на экран не используют мэппер, а пишут прямо в ПЗУ (расчитывая конечно, что автоматом запишется в видеопамять, "под ПЗУ"). Придется править и прошивку контроллера НГМД, так как и там есть кусок с использованием особенности записи. Оно того стоит?
Уж если так необходимо, то лучше реализовать что-то наподобе раннего протокола EMS для PC, выделив для обмена небольшое окошко в памяти. Понадобится и механизм мэппирования на это окошко блоков доп. ОЗУ. По скорости самый быстрый вариант, да и удобный в использовании.
Есть и другой. Запись через порты. Понадобится две OUT для записи байта (при обмере словами, для скорости). Для дисковых буферов или электронных дисков не так уж и плохо. Чтение - обычное отображение на память, или так же через порты. Тут тоже понадобится простой механизм мэпипрования.
Как то так. А для чего 128 Кб, если не секрет?
Раз уж дорвался до компа, то выложу окончательную версию RTC. Если кто решит собрать, то нужно помнить об одной вещи - схема составлена для подзаряжаемых аккумуляторов, какие раньше стояли на старых компах. Если подзарядка не требуется (например для "таблеток" из мат. плат), то нужно исключить из схемы D2 и R2.
Поглядел на схему и увидел, что ты отказался от стандартной схемы включения ВИ1 только с одним кварцем и пару резисторами на 470к и 22М.
Вопрос, ты использовал как бы генератор из-за резистора 22М?
Тут попробовал поискать его и что то не нашел в продаже - не слишком распространненый номинал, хотя он существует в серии С2-33.
---------- Post added at 17:07 ---------- Previous post was at 16:27 ----------
Просто как вариант можно у китайцев взять генератор целиковый по типу SG3030 http://www.digikey.com/Web%20Export/..._SG_3040LC.pdf
Почему как-бы? Это и есть генератор. Стабильный и экономный, на начало 90-х.
Я руководствовался этим:
http://www.imageup.ru/img279/thumb/012180617.jpghttp://www.imageup.ru/img279/thumb/022180619.jpghttp://www.imageup.ru/img279/thumb/032180620.jpghttp://www.imageup.ru/img279/thumb/042180621.jpg
Все просто: если инженера IBM решили отказаться от "стандартной" схемы, то видимо у них на это были веские причины. Сомневаться в их компетентности не приходится.
Если уж переходить на современное, то лучше сразу взять уже готовые часики, не требующие никакой обвязки и очень экономные. Вроде у Dallas есть неплохие экземпляры. Я же делал исключительно ради повторения старых технологий. Так сказать - духу времени :)
Вопрос то я не про компетентность инженеров IBM задавал, а по причину по которой ты выбрал эту схему. Как вариант, я предположил чтобы не заморачиваться с поиском резистора на 22Мом.
К тому же скажем ты взяв схему из AT компа как бы использовал аккумулятор. А как например поведет себя эта схема если допустим от таблетки будет работать, как к этому отнесется MC14069 (КР561ЛН2 по нашему), вернее на сколько ее хватит.
Про современный генератор я написал как вариант, он вполне может вписаться в диповость, хоть он и как бы SMD (просто ноги можно отогнуть и запаять их как выводные). Я же не предлагал чистый SMD, а уж тем более какие то готовые модули. Кроме того можно найти вообще по духу времени кварцевый генератор в корпусе DIL-4 (это такие железные ящички с 4 ногами), такие в той же IBMке стояли правда на более высокие частоты.
И про генератор я говорил не зря, у меня так и не завелись ибо не нашел я резистор на 22 МОм :( А потом забросил это хозяйство.
Кстати тогда попутный вопрос все же по теме таблетки и 512ВИ1, реально насколько таблетки хватает?
У меня давно на 286-х и 386-х платах аккумы заменены на таблетки, с диодом шотки. Не могу точно сказать сколько держат, но в 286-м выдранные из пентиумных плат старенькие таблетки работали пол года, а может и больше - я просто не проверял.
Что касается 561-й серии. Они гарантированно работают от 3 вольт. Потребляют порядка 20 микроампер. Так что одной таблеткой не обойтись. На вскидку. У CR2032 емкость 210 мА/ч, две = 420 мА/ч. Этого хватит на 21000 часов = 800 суток. То есть с учетом саморазряда (2%) и падения напряжения лишь до 3 вольт должно хватить почти на год. Кажется так как то.
---------- Post added at 23:51 ---------- Previous post was at 23:47 ----------
А вообще я на днях выкрою время и посмотрю живы ли на 286-й таблетки. Им уже далеко за год.
Вскрыл двушку. Генератор на M4069 (наша 1561ЛН4?), питается от одной таблетки. На таблетке осталось 1.5 вольта. Генерация идет, правда частота снизилась до 28 КГц. Проработала не менее года.
А если взять 1564ЛН1, то одной таблетки хватит наверное на пару лет. По моему неплохо.
Вот здесь рассказывается об микросхемах часов и схемах их подключения, в частности говорится об интересном экземпляре DS12885 (доступен в Китае и в DIP24 и в SOP24). В отличии от остальных мс от DS, эта DS12885 без недолгоживущей встроенной батарейки, но вся обвязка внутри, итого подключаем кварц и батарейку к ногам этой мс и часы работают.
perestoronin, спасибо.
По ссылке есть ответ, почему никто не использовал встроенный резонатор ВИ1. Во первых, он оказывается нестабильный. А во вторых, в документации к ВИ1 указано, что встроенный генератор может работать только на частотах от 1МГц, кушая от 1,5 мА, против 0,1 мА на частоте в 32 КГц. Собственно в доке прямо сказано, что для частоты 32КГц необходимо применять внешний генератор.
Осталось уточнить пару вопросов:
1. Действительно ли MC14069 потребляет в десятки раз меньше своих аналогов?
2. Насколько корректна моя схема управления /CE? Как то не нашел, что будет с микрухой при обесточивании DD6.
Поищу микроамперметр. Если дома не осталось, то на той неделе одолжу у метрологов.
Замерил.
На макетке:
- ноги 1,3,5 в воздухе. ЛН2 дала 60 мкА, в течении нескольких секунд упавших до 30.
- ноги 1,3,5 на землю. 1 мА!
- ноги 1,3,5 через резюк 330К на питание. 100-110 мкА.
Вынутая с материнки 80486 TC4069 выдавала на пару процентов побольше.
Подал на /CE ВИ1 напругу. Потребление подскочило до 4 мА.
На плате.
Выдало 130 мкА. Без ВИ1 показывает 30-35 мкА.
ВИ1 и по документации на 3В потребляет от 100 мкА. Тут все штатно, хотя я ожидал на порядок меньше. С ЛН2 не понятно, почему на макетке при заземления выводов 1,3,5 резко выросло потребление, хотя на плате, при таком же подключении ест по минимому. Есть идеи? Что вообще делать с неиспользуемыми входами?
PS: MC14069 не нашёл. Есть на 386 материке, но курочить её жалко.