Из газеты Optron #7, Львов, 14.02.98 +====---- | | About Miko-Best | | ----====+ (C) Walker/IF Здравствуйте, уважаемые пользователи на- шего всеми любимого SPECCY. В этой статье я, Walker, расскажу вам о еще одной разно- видность Спектрума - MIKO BEST. Компьютер этот, как вы уже наверное до- гадались, выпускается фирмой MIKO, главная контора которой находится в Тернополе, а у нас во Львове функционирует филиал по распространению компьютеров этой фирмы. Комп во всех отношениях хорош, кроме нескольких нюансов. Во первых, ни одна из утилит не определяла наличие 256 килобайт оперативной памяти, во вторых, из-за порта для переключения со 128 на 256 память не- которые проги, в том числе RAMDOCTOR v2.1 Тятина Сергея вообще отказываются рабо- тать. Поэтому, чтобы внести ясность в вопрос о правильном переключении страниц памяти я опишу, как корректно это сделать: Переключение памяти разработчики MIKO- BEST'а "повесили" на порт 220 (#DC). Переключить страницы памяти с 128 на 256'ю можно следующим образом: LD BC, #XXDC ;ВМЕСТО XX МОЖЕТ БЫТЬ ЛЮБОЕ ;ЧИСЛО, например, #01DC LD A, #72 OUT (C), A Обратное переключение можно выполнить так: LD BC, #01DC LD A, #62 OUT (C), A Из этого следует то, что за банки памяти отвечает 4-й бит. Ну, с этими двумя фрагментами, я наде- юсь, проблем нет, хочу только упомянуть об одной каверзе - порт #DC конфликтует с портом #FD и поэтому, если вы, скажем, оттрассировали какой либо из этих фрагмен- тов на проверку их работоспособности, в STS'е вы не переключите банки памяти. Уч- тите это в своих разработках. Ну а если еще что-либо непонятно, то звоните мне: (0322) 64-57-58. Еще хочу упомянуть об одной особенности MIKO-BEST'а. В компьютере присутствует та- кая микросхема, как ULA, которая формирует сигнал INT, от которого в нынешнее время зависит скорость работы некоторых прог- рамм, в основном демок. И в MIKO-BEST'е, к сожалению, INT далеко не BEST (его частота меньше фирменного, не говоря уже про пен- тагоновский). Скажу вам честно, я пытался его изменить тремя способами, но ни один не дал результатов-компьютер попросту не запускается. Может у кого-нибудь подобные эксперименты дали результат и компьютер работает нормально хотя-бы с фирменным INT'ом, свяжитесь со мной, я буду благода- рен за любую информацию. Стоит заметить, что ULA не фирменная, а отечественная, сделанная в Ивано-Фран- ковске. А посему и INT не фирменный, и да- же не пентагоновский, а "свой", со всеми вытекающими отсюда последствиями. Кроме того, в компе присутствует микрос- хема ВВ55, которая работает не с внешними устройствами, а управляет памятью (?!!). Общую картину дополняют интерфейс прин- тера, сделанный на AY и нечитабельная принципиальная схема. Хочу также упомянуть один хороший момент в разработке BEST'а - это малые габариты компьютера. Ну и напоследок хочу вам рассказать о еще одном "скрытом" тесте. Он довольно примечателен и очень удобен, если конечно вы им умеете пользоваться. Ну а пользо- ваться им очень просто: Нажимаете кнопку "RESET", удерживая клавишу "R" (подразуме- вается видимо Ram test) и после того, как компьютер протестирует ОЗУ (вам придется подождать минут пять-десять), на экран бу- дет выдана такая картинка: +-----------++--++--++--++--++--++--++--+ |)процессор || ||| ||| ||| ||| ||| ||| || +-----------+| || || || || || || | |D0||D1||D2||D3||D4||D5||D6| +--++--++--++--++--++--++--+ На самом деле вы увидите только условное обозначение микросхем (D0-D7), а процессор я нарисовал для того, чтобы было легче объяснить суть. Если взять плату компьютера так, чтобы процессор был в левом нижнем углу и его ключ находился так, как показано на рисун- ке, а микросхемы КР565РУ7Д (могут быть и другие, только обязательно РУ7) расположе- ны "ключами" вверх, то нумерация микросхем ОЗУ будет слева направо, то есть в левом нижнем углу будет D0, а в правом нижнем D7. Eсли тест прошел нормально и поврежден- ных микрух у вас нет, то на экране все бу- дет черным по белому и тут все просто и ясно: можете отметить такое радостное со- бытие чаркой хорошего... сока, ну а если все-ж таки есть поврежденные, то они будут выделены красным цветом и будут мигать. Правильно "вычислив" нужную микросхему, вы при помощи паяльника, зубила, молотка и какой-то матери (шутка, обычно пользуются только паяльником) микруху меняете и имее- те опять на все сто работающий комп, при- чем заметьте, не нужно платить 10-15(!) гривен за эту работу. Ежели вам что-нибудь непонятно, смело звоните, чем смогу, помогу. Кстати, для счастливых обладателей MI- KO-BEST'а Бугай Иван переделал такие сис- темные программы, как: NEXT COPY, LUXECOPY, PERFECT COMMANDER v1.5. Все они теперь работают с 256 памятью BEST'a, за что ему огромное спасибо. Ну и напоследок хочу обратиться к разра- ботчикам MIKO-BEST'а: неужели нельзя было сделать компьютер не по каким-то своим, а по нашим, отечественным, стандартам. Сде- лать переключение банков памяти через пор- ты Скорпиона или, скажем, Пентагона. Это было-бы намного проще и в программах ниче- го не пришлось бы переделывать! К тому же хотелось бы знать, неужели из-за ULA'шки нельзя никаким образом изменить частоту сигнала INT? Ну вот, пожалуй, пока-что все. Если у кого-нибудь есть еще какая-либо информация по MIKO-BEST'у, то звоните, буду очень благодарен, в разумных пределах. ;) С уважением, WALKER, Казаков Михаил Из газеты Optron #21, Львов, 28.11.98 Miko-Best: с STS'ом в руках Иван Бугай, 1998 В этой статье мы с вами, дорогие читате- ли "Оптрона", вдохновясь примером Жанны Скальпив, попробуем подробнее разобраться с патогенным феноменом, известным под наз- ванием "Miko-Best 256kB". (Сразу же заме- чу, что "-Best" - это, скорее всего, тер- минологическая ошибка. Правильнее было бы "Miko-Suxx". Иначе как объяснить отношение производителей к своему детищу: ни инфор- мационной поддержки, ни программ.) Хотя сей феномен уже освещался (см. номера 7 и 8 "Оптрона"), вопрос требует дополнительного изучения. Для начала - небольшое уточнение У меня имеется Miko-Best 256kB v1.5 с двумя доработками: - OUT (#FD),A - работает нормально (ле- чится перешиванием ПЗУ, выполненного на РТ4, сие делали на фирме Мiko); - рубильник Miko-Pentagon (сие делал Рашпиль, премного ему блaгoдарен). А теперь - малость демагогии (или мои предположения) ROM 64Kb, в нём: 1 Мanager 2 TR-DOS 5.03 3 Basic 128 4 Basic 48 При начальном запуске или при сбросе уп- равление передаётся Manager, блокируется Magic, опрашиваются клавиши "R" и "T". "R" - запуск полного теста памяти. "Т" - телетест: тестируется содержимое #DB00 в банке #0D. Если оно не равно #АА55, то идет тест AY, Printer, Memory, и при его удачном завершении происходит вы- ход в меню. В противном случае проверяется, нажат ли пробел. Если да, то Miko Basic (и 48-й, и 128-й) работает из ПЗУ. Если не нажат, то Miko Basic перегружается в ОЗУ - банк #0C для 128-го и #0E для 48-го. В эти банки запрещается запись, и они проецируются с адреса #0000. Перейдем ближе к делу Управление ресурсами компьютера осу- ществляется через порт #DC: - BIT 0-3 - номер проецируемой страницы с адреса #8000; - BIT 4 - номер "линейки" из восьми бан- ков, проецируемых с адреса #C000; - BIT 5 - если "0", то вместо ПЗУ прое- цируется ОЗУ - банк #0C или #0Е, в зависи- мости от состояния четвёртого разряда пор- та #FD ("1" - #0E, "0" - #0C); - BIT 6 - если "0", то запись в сег- мент 0 разрешена (при условии, что сброшен BIT 5); - BIT 7 - eсли "1", то, начиная с адреса #4000, проецируется банк #0D, экран 0, а с адреса #C000 - экран 1, банк #0F. Порт #FD (есть мнение, что сего порта нет в помине, его отслеживание делается аппаратно и он эмулируется портoм #FC) - как в стандартном SPECCY 128. Порт #FC - эмулирует #FD с той разницей, что BIT 5 (защелка 48K) может переключать режимы 48/128. Все три названных порта доступны как на запись, так и на чтение. Практическое применение Вот небольшой отрывок из Miko comander: LD BC,#FFFC ;порт-аналог #FD IN H,(C) ;сохранили текущее LD A,#55 ;значение OUT (C),A IN L,(C) ;проверка, доступна CP L ;ли запись? JR NZ,NO_MIKO OUT (C),H ;восстановили LD DE,768 ;доступно памяти IN A,(#DC) ;вместо ПЗУ ОЗУ? BIT 5,A JR NZ,STANDART LD DE,704 ;если да, то LD A,#FF ;исключить из списка LD (TBANK+13),A ;доступных банков #0D BIT 5,H ;включен Basic 128? JR NZ,MODE_128 LD DE,640 ;если да - выкинуть LD A,#FF ;банк #0C LD (TBANK+12),A Так выглядит тест доступной памяти, а управление банками происходит так: LD HL,TBANK LD E,A ;в А виртуальный LD D,0 ;номер страницы ADD HL,DE LD A,(HL) CP #FF ;если не доступна - RET Z ;выход LD L,A AND #08 ;выделили третий бит RLCA ;и преобразовали его в LD H,A ;номер "линейки", IN A,(#DC) ;который отправляется AND %11101111 ;в четвёртый разряд OR H ;порта #DC OUT (#DC),A LD A,L AND #07 LD L,A IN A,(#FC) AND %11111000 ;три младших разряда в OR L ;номере банка - в OUT (#FC),A ;порт #FC (#FD) SCF RET ... TBANK DB 0,1,3,4,6,7,8,9 DB #0A,#0B,#0F,#0C,#0E,#FF Банк #0D не используется, поскольку там Manager хранит 4 байта идентификатора за- пуска, из-за чего теряется 16K (по-моему, это делать нецелесообразно). "И что же со всем этим делать?" - спро- сите вы. Ну, если вы хотите адаптиравать програм- му под Miko, то всё просто (к примеру, HC_3.08 - лучший командер на Speccy, даже на сегодняшний день): ORG #6F0F PUSH BC LD B,A LD A,(#5B75) EX AF,AF' LD A,(#5B90) ADD A,A JR C,PENT LD A,B AND #08 RLCA OR #62 OUT (#DC),A PENT LD A,B LD (#5B75),A AND #08 RRCA RRCA RRCA LD C,A LD A,B AND #07 ADD A,C OR #10 LD BC,#7FFD OUT (C),A EX AF,AF' POP BC RET В Option надо задать User page, а Autoload Оverlays - убрать (для 256K). Те- перь вы имеете 160кБ без RAM-Disk. На не- которое несоответствие информации относи- тельно Memory (программа сделана для, как минимум, 512K) не обращайте внимания. Если же программа сделана под порты Scorpion'а, то это сделать ещё проще. А что делать с четырьмя экранами? Можно, например, смотреть триколорные картинки: ORG #7800 LCODE "PICT" ORG #6000 BEGIN DI LD A,#17 LD HL,#7800 LD BC,#7FFD LD DE,#C000 OUT (C),A PUSH DE,BC LD BC,6144 LDIR PUSH HL LD HL,#D800 INC DE LD BC,767 LD A,(COLOR2) LD (HL),A LDIR POP HL POP BC,DE PUSH DE,BC LD A,#15 OUT (C),A LD BC,6144 LDIR PUSH HL LD HL,#D800 INC DE LD BC,767 LD A,(COLOR4) LD (HL),A LDIR POP HL POP BC,DE LD A,#72 OUT (#DC),A LD A,#17 OUT (C),A LD BC,6144 LDIR LD HL,#D800 INC DE LD BC,767 LD A,(COLOR1) LD (HL),A LDIR LD A,#62 OUT (C),A LD HL,#BE00 LD DE,#BE01 LD A,H LD (HL),#BF LD I,A LD BC,257 LDIR LD A,#C3 LD (#BFBF),A LD HL,#8000 LD (#BFC0),HL EX DE,HL LD HL,INT LD BC,COLOR1-INT LDIR IM 2 EI LD A,#15 OUT (#FD),A MAIN HALT CALL 8020 JR C,MAIN EXIT DI LD A,#62 OUT (#DC),A LD BC,#7FFD LD A,60 LD I,A IM 1 LD A,#10 OUT (C),A EI RET INT DI PUSH AF,BC,DE,HL,IX,IY EXX EX AF,AF' PUSH AF,BC,DE,HL LD BC,#7FFD LD HL,#151D LD A,#62 OUT (#DC),A LD A,0 WHO EQU #8000+$-1-INT OR A JR NZ,SK0 INC A SK0 DEC A JR NZ,SK7 OUT (C),H INC A JR QEX SK7 DEC A JR NZ,SK5F OUT (C),L INC A INC A JR QEX SK5F LD A,#E2 OUT (#DC),A LD A,#11 P1 DJNZ $ DEC A JR NZ,P1 XOR A DEC A QEX INC A LD (WHO),A LD A,#62 OUT (#DC),A POP HL,DE,BC,AF EX AF,AF' EXX POP IY,IX,HL,DE,BC,AF EI RET COLOR2 DEFB #42 COLOR4 DEFB #44 COLOR1 DEFB #41 Здесь и считать не надо: почти всё время компьютера - в вашeй власти. Сей отрывок взят из программы 3C-studio, которую я на- писал ещё год назад (полноэкранный редак- тор триколорных картинок). В принципе, в ней уже можно раскрашивать любые картинки. Если кто-то изъявит желание, то я её допи- шу. Кстати, такой редактор можно написать и для Speccy 128 (использовав одну треть эк- рана для редактирования), проблем здесь нет. Перспектива Неплохо было бы сделать перехват Magic'а или Reset'а: это вполне реально. При по- ступлении сигнала NMI вместо ПЗУ ТR-DOS подставляем страничку ОЗУ, а там выбираем Magic, Debuger и т.п. Ещё хорошо бы в ПЗУ вместо Manager'а за- шить свою программу. В общем, нужен программатор. А там - попробуем, что получится. --==========-- --== P.S. от Рашпиля ==-- Конечно, заменить малополезный Manager чем-то "более другим" заманчиво, но не спешите, уважаемые пользователи Miko: "Не зная броду, не суйся в воду". Просто так взять и зашить что-то в ПЗУ, предназначен- ное для работы в Miko Best, не выйдет! Оказывается, разработчики этого компью- тера додумались перепутать шину данных ПЗУ и процессора! Вот табличка, из которой яс- но, что к чему: ROM CPU D0 (11) D2 (12) D1 (12) D7 (13) D2 (13) D0 (14) D3 (15) D1 (15) D4 (16) D5 (9) D5 (17) D3 (8) D6 (18) D4 (7) D7 (19) D6 (10) В скобках я указал номера выводов соот- ветствующих микросхем. Как видно из таблички, просматривается некая закономерность именно такого распо- ложения шин. До такого, скорее всего, до- думался какой-нибудь нерадивый разработ- чик, решивший сэкономить пару переходных отверстий, пустив все дорожки паралельно. Или, может быть, это так "шифруют" инфор- мацию? А в качестве замены Manager'а я бы посо- ветовал попробовать прошивку Gluk Reset Service; ее можно заказать на Tree of Life BBS. Если же у Вас нет программатора, то для прошивки ПЗУ можете обращаться к С.Филимо- нову. Его координаты, равно как и коорди- наты автора этой статьи вы найдёте на страничке About.