? ЛёхаБашой @ - 17.08.2009 14:55 хочу CompactFlash прицепить к БКшке.. познания в железе номинальные, попрограммировать могу (и хочу). обсудим?
? ЛёхаБашой @ - 17.08.2009 14:57 Сорри за множественные топики. IE проглючил. Я тоже.
? kisser - 17.08.2009 21:21 Схема тут пробегала (автор - anonymous) http://img11.imageshack.us/img11/9440/bkide.jpg распаивается на разъем IDE, а в него переходником можно вставить CF. Описание программирования есть например тут http://bk0010.narod.ru/docs/IDE.zip Да, и опять же, anonymous предупреждал, что не все карты будут стабильно работать с БК напрямую - не хватает выходной нагрузки. Видимо чем старее (по году выпуска) будет карта тем лучше будет работать с БК.
? anonymous - 18.08.2009 16:05 В моем собственном адаптере, построенном по той же идеологии, но без рассыпухи (все функции сделаны на PLD), стоят просто еще два усилителя шины, направление передачи которых определяется сигналом DIN, а разрешение работы вырабатывается одновременно с CS0 и CS1 накопителя. Прожиг PLD, если кому интересно, простейший: ;BS, A1..A12 - latched signals! ;hard drive select /cs1= /BS*/A12*/A11*/A10*/A9*A8*A7*/A6*A5*/A4*/A3*/A2*/SYNC /cs0= /BS*/A12*/A11*/A10*/A9*A8*A7*/A6*/A5*A4*/SYNC ;i8287/74f642 drivers output enable /doe= /BS*/A12*/A11*/A10*/A9*A8*A7*/A6*A5*/A4*/A3*/A2*/SYNC + /BS*/A12*/A11*/A10*/A9*A8*A7*/A6*/A5*A4*/SYNC ;last part of the function disabled for 573rf3 rom that generates ;reply signal itself, enable it for standard intel rom /rply= /DOUT*/BS*/A12*/A11*/A10*/A9*A8*A7*/A6*A5*/A4*/A3*/A2*/SYNC + /DIN*/BS*/A12*/A11*/A10*/A9*A8*A7*/A6*A5*/A4*/A3*/A2*/SYNC + /DOUT*/BS*/A12*/A11*/A10*/A9*A8*A7*/A6*/A5*A4*/SYNC + /DIN*/BS*/A12*/A11*/A10*/A9*A8*A7*/A6*/A5*A4*/SYNC ; + ; /DIN*/BS*/A12*/A11*/A10*/A9*A8*A7*A6*/SYNC + ; /DIN*/BS*/A12*/A11*/A10*/A9*A8*/A7*A6*A5*/A4*/SYNC + ; /DIN*/BS*/A12*/A11*/A10*/A9*A8*/A7*A6*/A5*A4*/SYNC ;hard drive address lines ha0= /A1 ha1= /A2 ha2= /A3 ;rom output enable /roe= /DIN*/BS*/A12*/A11*/A10*/A9*A8*A7*A6*/SYNC + /DIN*/BS*/A12*/A11*/A10*/A9*A8*/A7*A6*A5*/A4*/SYNC + /DIN*/BS*/A12*/A11*/A10*/A9*A8*/A7*A6*/A5*A4*/SYNC
? Terra - 19.08.2009 22:44 Не совсем всё понял из предыдущего поста. но я тут вспомнил, что у 1 товарища лежит самарская машина с винтом там контроллер тоже простейший и прошивка для работы с винтом/дисководом есть (все дисковые системы с ним нормално работают). Можно попытаться содрать схему и прошивку.
? anonymous - 19.08.2009 23:28 Terra, тащите прошивку! :) Предыдущий пост был ответом на 「? kisser - 17.08.2009 21:21 <cut>Да, и опять же, anonymous предупреждал, что не все карты будут стабильно работать с БК напрямую - не хватает выходной нагрузки.<cut>」
? anonymous - 19.08.2009 23:31 P.S. это исходник прошивки для FPLA/PLD/PAL на palasm от AMD.
? Terra - 20.08.2009 17:40 как-нибудь постараюсь, но не всё в моей власти...
? x - 25 января 16:34 Здорово! А как на самарском проверить? Можно ли создать образ CF который загрузится на самарском контроллере?
? Terra - 25 января 18:45 к сожалению у меня нет документации на формат диска, но если есть реальная потребность, то можно поковыряться в исходниках.
? anonymous - 26 января 03:08 Под схему, что тут пробегала ранее, надо IF0..IF7 и ZF6-ZF7 скорректировать под АльтПрошные адреса, где дешифрация намного проще и не требует РФ5 целой.
? Terra - 26 января 17:12 А это мысль! Переписать самарскую прошивку под альтпрошные адреса, как-то оно раньше в голову не приходило :). Может кто займётся железной частью? Только тут появляется несколько вопросов: в каком виде это сделать - как в Самаре (расширение стандартного КНГМД) или отдельный контроллер HDD без поддержки дисковода, или всё-таки повторить альтпровский вариант совместного контроллера НГМД-HDD. Самарский вариант не поддерживает БК0010, для работы контроллера на десятке нужно ОЗУ по адресам 120000-140000.
? Kisser - 1 февраля 21:42 А правильно ли я понял, что можно запустить БК без дисковода? Т.е. сделать ХДД контр. на 2 присоединения, взять bkd2img.zip, на одну карту загнать любой образ с ДОС какойнибуть, вторую карту отформатировать на несколько дисков, на вторую же поставить эту же ОС и работать с ней как с несъемным винтом, а первую использовать для переноса файлов на РС и обратно в качестве флешки? Так все просто или имеются подводные камни?
? Terra - 1 февраля 23:05 Создаётся образ винта из файлов c.bkd.... и пока не кончатся файлы данного типа (но лучше за z не заваливать) и на свободном месте cf создаются пустые логические диски максимально возможного объёма до конца диска. Можно в принципе использовать 2 цфки, но ндо драйвер ставить 2HDD (я не пробовал).
? Kisser - 2 февраля 09:46 Т.е. дисковод нахненужен? При записи с.bkd (взять луюбой БКшный образ с загрузочным диском), вставляешь в контроллер его, и БК запускается? Для меня оно принципиально, т.к. контроллера FDD нет, и паять не вижу смысла. А контроллер HDD - достаточно прост в изготовлении и более технологичен чтоли (ВП1 нету, надежность, скорость обмена, и габариты...). Тогда еще вопрос - какой максимальный объем лог.диска для БК и винта в целом? 1Гб Вы говорите работает, а он весь Гб видит? И с образами дискет понятно, а если переносить разрозненные БКшные файлы? Если на БК поставить АНДОС например, и считывать файлы со второй флешки, отформатированной в FAT?
? Terra - 2 февраля 11:43 Дисковод не нужен. Но программа заточена на создание образа винта под контроллер Альтпро. Максимльный объём логического диска 32Мб, винта до 2Гб. Врорде все системы кроме ANDOS работают с дискамитакого обёма (andos не болле 800к). Вот на последние 2 вопроса хотелось бы каких-то более изящных решений - типа bk disk explorer или плагина к far (total commander), но у них много ограничений...
? anonymous - 2 февраля 11:44 Драйвер, который в ПЗУ, использует CHS адресацию и утрамбовывает ее в формат переменных драйвера дисковода (где битов хватает только для 4096 цилиндров, 16 головок и 63 секторов), из-за чего ему доступно только 2Гб на диске, а загружаемый драйвер использует LBA32 (28 бит на адрес блока), с ним ограничивается доступный объем 128Гб.
? Kisser - 2 февраля 12:39 Смысла ставить АНДОС нет, понятно. Хорошо, как сваяю контроллер, так еще поспрашиваю. Да, и контроллер сразу с ОЗУ на 170000 нужно делать, так? А Самарский кроме другой адресации чем отличался? Судя по фоткам, особо ничем.
? anonymous - 2 февраля 12:51 Самарский предназначен для работы под RT11, где таблица разделов и параметры диска считываются во внутренний буфер драйвера, который вместе с ядром ОС остается резидентным на протяжении всей работы, для десяточных ОС самарский контроллер супермедленный, т.к. они пользуются только ПЗУшечным драйвером, который перечитывает и пересчитывает разделы при каждом обращении заново ввиду отсутствия буферного озу.
? Terra - 2 февраля 17:06 У меня и не только было так: несколько дисков по 1600 блоков (800к) mkdos (c), 2 диска rt11 (d,e), csidos тоже 2 шт. (f,g), andos (h,i), ну а дальше пошли диски в mkdos по 32 метра с образами дисков. Если делать, то надо видимо с озу на 120000-170000 (что бы на 10ке работало). Если делать самомму, то как тут предлагали - перенести самарскую схему на альтпрошные адреса, и претранслировать прошивку. Самарская схема работает с любой системой, только при каждом обращении к диску, приходиться перечитывать таблицу разделов, которая имеет немного отличный формат от Альтпро. Ну здесь не так и сильно важно быстродействие - 1 раз пред чтением файла прочитать 1 сектор. PS. Я связался с разработчиками Альтпровского контроллера! Обещали через недельку поискать, может что осталось из документации.
? Kisser - 2 февраля 22:10 Т.е. нужно сделать нечто среднее между самарой и альтпро, взяв "лучшее от природы". Только и схема и прошивка будут отличаться от исходных. с оЗУ проблем нет - можно сделать универсальную схему, поставить перемычку, и выбирать или 120-170 или 170-176.
? Terra - 3 февраля 11:09 да можно наверное так сделаь, но если ставить ОЗУ под таблицу разделов, тогда придётся самарскую прошивку более координально править (с альтпровской неколько сложней - исходники не полные, только драйвер винта). Может проще вообще без ОЗУ?
? Kisser - 3 февраля 15:02 тут надо программистам решать, коим не являясь, не могу ничего добавить. Однако, учитывая, что "бездисководный" контроллер должен содержать ПЗУ, а значит, защелки адреса, добавить 2 м/с ОЗУ проблем не составит. Вообще ОЗУ может пригодиться, не для винта так еще для чего-нибудь. А если сделать прошивку только для винта (владельцы дисководов возмутятся наверное, но и их тут не особо много)? Связь с внешним миром можно и через CF поддерживать, оно и удобней и надежней. Я просто к тому что если есть альтпровский драйвер, чтобы меньше мучиться.
? anonymous - 3 февраля 15:20 Озу лучше сделать вообще на всю свободную память, а для винта использовать только загрузчик минимального размера, который бы загружал в ОЗУ собственно драйвер, по-моему это наиболее рациональный вариант, если договориться не можете. В любом случае, от ОЗУ на 0170000..0176777 никому хуже не станет, в 11й там всегда пустое пространство, в 10ке при работе с дисководом - тоже. Сам драйвер винчестера - простейшая программа, его написать с нуля ничего не стоит, вот драйвер под мой контроллер, который описан в самом начале этого треда, например: http://qbus.narod.ru/wq_DVK_BK11.zip , где wq.mac - собственно драйвер под RT11, wqrom.mac - минимальный загрузчик, всего 48 ячеек, 1801re2-134.patch.mac - патч для ПЗУ ДВК МС1201.03, чтоб она грузилась с IDE и SCSI моего изготовления.
? Kisser - 3 февраля 16:21 Да я только за, тем более монитор заменить - милое дело. Даже в Журнале БК описывался альтернативный, но листингов не было. А для почти любой современной м/с ОЗУ что 3,5 кб что 16 - без разницы, количество корпусов будет таким же. И ПЗУ кстати тоже. ПЗУ можно подключать при первом запуске на 140000 (11я) или 100000 (10я), а после отработки программы этот участок будет уже ОЗУшным.
? Terra - 3 февраля 17:03 С нуля сейчас писать навряд ли кто-будет. Исходники и прошивки от "самары" и альтпро я уже выкладывал.
? anonymous - 3 февраля 18:25 При грамотно сформированном ТЗ на драйвер, это дело, условно говоря, минутное, как видите по wq.mac (в котором 1/7 команд стоит убрать при оптимизации - там от процесса отладки осталось полно не оптимальных мест и лишних инструкций), сам драйвер маленький, если использовать lba32, а не пакетный atapi/lba48, но диск больше 128гб на БК вешать вряд ли имеет смысл при его быстродействии и объеме ОЗУ - уйдут дни, чтоб такой диск БК перелопатил, потому lba32. Подключение стартового ПЗУ делается, как и пультового, триггером, устанавливаемым в режим ПЗУ по сигналу DCLO, т.е. по сбросу процессора, а в режим ОЗУ, например, по сигналу записи режима USER в SEL1 - программа инициализации перепишет код монитора в ОЗУ и передаст на него управление, отключив себя. Вообще, если ставить и другой тип процессора, то операции переключения через SEL1 останутся, как через обычный регистр, даже если новый процессор будет иметь принципиально иной алгоритм пульта или вообще не будет его иметь, как 1807ВМ1, к примеру.
? Kisser - 13 февраля 21:37 Прикинул, вся обвязка контроллера влезает в EPM7032, еще место для поддержки RTC может остаться (не пробывал еще). Возможности вот такие у меня получились: выбор режима - БК10/БК11, типовой режим/режим с переключением ПЗУ/ОЗУ на место монитора. При типовом режиме - 160000-167777 - ПЗУ контроллера ХДД, 170000-176777 - ОЗУ. При режиме ПЗУ/ОЗУ на место монитора: для БК10 - Пуск - подключение ПЗУ на 100000-176777, 170000-176777 - ОЗУ. После записи 100000 в 177770 (т.к. там RTC сидело у меня, то адрес решил тот же оставить, все равно пока прикидки) на все пространство 100000-176777 подключается ОЗУ. Пзу назад подключится только при DCLO или сбросе питания. Для БК11 - Пуск - ПЗУ на 140000-176777, 170000-176777 - ОЗУ. После записи 100000 в 177770 - ОЗУ на 140000-176777. Получается универсальный контроллер, и это все в одной м/с, выборы режимов - двумя перемычками. Будем делатЬ? Все равно хотел заказывать плату для контроллера ВГА (т.к. полная БК не получилась пока, попробую частями), можно заказать платы и для ХДД. Если кто возьмется за нормальный драйвер, готов спаять и предоставить на обкатку.
? anonymous - 14 февраля 03:09 А если бейсик или монитор отладочный кто захочет? Надо еще режим, в котором ОЗУ до 0177577, чтоб 108ю и 019ю прошивки можно было грузить.
? Аноним - 14 февраля 15:05 Т.е. вместо 176777 сделать 177577? Или чтобы именно можно было выбирать между ними?
? anonymous - 14 февраля 15:51 Естественно выбирать, иначе ни одного устройства не воткнуть более. Еще изначально на 0177560..0177567 желательно предусмотреть стандартный ком-порт DL11, т.е. озу, подключаемое туда, в случае активации, должно либо по этим адресам не выдавать ничего, как сделано в ПЗУ БК - по адресам 0176560..0176567 в бейсике стоят пустые ячейки, а в 019й по 0177560..0177567, либо блокировать DIN на дисковод и COM-порт, как это в алтпро сделано.
? Kisser - 14 февраля 21:43 Можно просто блокировать СЕ по этим адресам. ну и вывести СЕ компорта, раз уж оно используется. Влезет ли оно в 7032? Надо попробывать. Подытожу: нужен переключатель верхнего адреса ОЗУ 176777/177577. требуется блокировка ОЗУ по 176560-176567, и 177560-177567. Вывести СЕ для 177560-177567. Еще есть какието доработки?
? anonymous - 14 февраля 22:53 Кстати, сам ком-порт не плохо было бы внутри плиски чипсета выполнить. И не блокировку ОЗУ делать, а блокировку сигналов на устройства, т.е. если вы свое устройство прицепите, его можно по СЕ отключать, а если воткнете стандартный блок ИРПС или КРМП? У них нет входа СЕ, зато есть выход блокировки ПЗУ/ОЗУ, который вырабатывается на 8 выводе 1801ВП1-065, изначально он сделан для управления опциональными регистрами, как то регистр для программного управления форматом и скоростью посылки и буферами для дополнительных сигналов CD/DTR/DSR/RI, и выдается во всем диапазоне адресов выбранного кристалла ВП1.
? Kisser - 14 февраля 23:32 Ком-порт точно не поместится в 7032, а хочется чегото простого, и повторябельно-дешевого. Тогда сделать вход блокировки без выборов адреса - не у всех есть куча перефирии (да и кто будет повторять то? энтузиазма особо не наблюдается), если у кого есть что-то перекрывающее адреса ОЗУ, вот пусть оно и его отключает. А вход для выбора конца ОЗУ вставить думаю, получится.
? anonymous - 15 февраля 15:26 На счет БК/ДВК - PDP11-совместимого COM-порта - аналогов DL11 в россии 3, 581ВА1 (требует -12в для работы), 1818ВА1 (редкая) и ВП1-065.
? Kisser - 15 февраля 20:23 -12в не проблема, куча преобразователей есть (в конце концов -12в можно взять напрямую от РСшного БП). Можно на плате оставить место для ком-порта, но нужна схема, распиновки я не нашел. Но главная проблема все же, драйвер, на мой взгляд. Хотя со встроенным ком-портом необходимость в сменных носителях для обмена данными уже не такая острая. А чтото совсем дешевое и распространенное типа 8051 не пойдет?
? Anonymous - 15 февраля 21:48 datasheet на 581ВА1 http://ae6pm.com/Semidata_sheets/TR1602B.pdf драйвер вклюхает в себя 3 команды на прием и 3 на передачу XD send: tstb @#177564 bpl send movb r0,@#177566 return receive: tstb @#177560 bpl receive mov @#177562,r0 return
? ЛёхаБашой @ - 27 февраля 06:06 2Kisser: Делать будем. Готов покодить.
? Kisser - 27 февраля 13:47 ОК. Схему сделал. Реализации ком-порта не вышло, на зато переключение конечного адреса озу, и внешняя блокировка присутствует. Осталось плату развести и заказать. Ну и отладить )))
? CodeMaster - 15 июня 15:10 >> Осталось плату развести и заказать. Ну и отладить ))) Дело не сдвинулось?