 |
nedoPC.orgElectronics hobbyists community established in 2002 |
 |
Author |
Message |
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Да, это ввод-вывод с магнитофона. Вот ссылочка ранее была: http://www.nedopc.org/forum/viewtopic.php?f=104&t=10219#p138032И даже схема на отечественных элементах в топиках была:
_________________ iLavr
|
04 Feb 2021 16:38 |
|
 |
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|

Но вдруг неожиданно меня шальная мысль посетила:" А не сделать ли клавиатуру для Dendy-Computer-а из вот этой игрушки? Зря что ли я на неё деньги тратил?"  Но при ближайшем рассмотрении выяснилось, что кнопок у неё маловато, и кнопки тактильно не очень удобные... И я решил глянуть, как в NES программно работают со своей FC_Keyboard, и был ли смысл в их схемотехнике тогда как любую из современных клавиатур, что XT, что PS/2 NES в принципе может прочитать и вовсе без аппаратных примочек. NES свои джойстики читает в последовательном коде практически как байт по интерфейсу клавиатуры... Чтобы было понятнее разбираться с кодом, отрисовал я схему FC_Keyboard целиком: И очень полезно посматривать при разборе кода на схему NES, чтобы было видно, как порты её работают: NES схема электрическая принципиальнаяКод обслуживания клавиатуры оказался следующий: Код обслуживания клавиатурыОсобых изысков в нём нет, если в коде 6502 вообще возможны изыски... Для понимания работы аппаратной части весьма полезно прочитать Family BASIC Keyboard Nesdev wiki. Чтобы не заморачивать себе постоянно голову переводом, я сделал себе компактный дайджест на русском: В итоге мнение у меня сложилось следующее: аппаратная часть Family BASIC Keyboard не сильно упрощает программно-аппаратный опрос клавиатуры. И посмотрел я на свои Дендики - а у меня, похоже, и нет этого широкого коннектора под Family BASIC Keyboard... Сейчас намерен я с реализацией интерфейса RS-232 в NES разобраться. Возможно, имеет смысл через него прицепить и стандартную клавиатуру и ввод/вывод программ...
_________________ iLavr
|
06 Feb 2021 07:52 |
|
 |
Konstantin18
Maniac
Joined: 15 Jan 2019 15:48 Posts: 325 Location: Украина, Луганская обл.
|
По вашей ссылке можно увидеть плату весьма похожую на эту: которая собрана на микросхеме UM6551, у вас на какой-то из плат она тоже есть. Вот срисованная схема такой платы: схема такой платы на микросхеме UM6551Один из разъемов джойстиков, а именно JOYB содержит все необходимые сигналы. Также их можно увидеть прямо на ногах 6551.
Last edited by Konstantin18 on 06 Feb 2021 12:15, edited 6 times in total.
|
06 Feb 2021 11:45 |
|
 |
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
И, похоже, вот тут один чувачок под ником Skidlz эту мысль успешно реализовал! NES-OS: A PS/2 keyboard interface, command line and assorted programs for the Nintendo Entertainment SystemНу что тут скажешь... " всё уже украдено до нас!"... 
_________________ iLavr
|
06 Feb 2021 12:41 |
|
 |
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|

В общем - поразбирался, в целом - не остался в восторге... Я так предварительно представлял себе следующий вариант, если карта памяти NES вот такая: То если есть идея использовать NES как небольшой компьютер, во всю доступную область следует включить одну микросхему ОЗУ, а ПЗУ сделать теневым, всплывающим по RESET. При старте NES ПЗУ переписывает из себя загрузчик по адресам $0000-$00FF и уходит в тень. Загрузчик по RS-232 грузит всё что хочешь по адресам $5000-$FFFF и отдаёт туда управление. Ну можно еще адаптированный Woz Monitor развернуть из ПЗУ - он маленький... 254 байта. И мне казалось, что в этой серии басен идея похожая на мою: NES boot-loader specification; NES boot-loader usageНо они очень перемудрили, на мой взгляд... Маленький хитрозадуманный бутлоадер должен загрузить более мощный бутлоадер... Хотя по месту $0000-$00FF можно загрузить весь Woz Monitor! Ну да ладно... примеры кода есть, хотя на мой взгляд для NES загрузчик по RS-232 надо бы сделать частично аппаратный. По крайней мере - регистр сдвига. В общем, кому интересно, здесь перевод этой многословной болтовни: И я прихватил немного материала по ссылкам: http://forums.nesdev.com/viewtopic.php?f=9&t=6720http://forums.nesdev.com/viewtopic.php?f=9&t=6720&start=15http://forums.nesdev.com/viewtopic.php?f=9&t=6720&start=30 Но переводить я это уже не стал - там обсуждали скорости софтового RS-232...
_________________ iLavr
|
09 Feb 2021 17:19 |
|
 |
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Но когда Деньди притворяется компьютером - это даже очень прикольно! Что-то меня проплющило попрограммировать на Васике... тем более, что, оказывается, не один я такой... народ вон даже видео учебные выкладывает! Family Basic Tutorial Part_1, Family Basic Tutorial Part_2А поскольку я на этом Family Basic могу без описания напрограммировать только то, что на картинке, то я подумал, что надо бы найти мануал на этот программный продукт, и, немного поискав, я его таки нашел, хотя это оказалось не столь просто... Но попался мне сайт хороший https://famicomworld.com, где люди увлечены этой своей приставкой ничуть не меньше, чем мы тут своими затеями! Вот у них я и нашел Family Basic Manual V2, а еще немного полистав их форум, и книжку обнаружил Let`s Play with Family BasicОщущаю некий ностальгический камерный кайфец от программирования на Basic-е в маленьком окошечке... 
_________________ iLavr
|
11 Feb 2021 19:42 |
|
 |
Fishbone
Junior
Joined: 03 Jul 2021 03:48 Posts: 2
|
Подскажите как ром Keyboard Transformer открыть эмулятором? Написал на реале игрушку, хочу сохранить как nes файл, но family basic не 3 не 2.1 не запускают игру, а ром Keyboard Transformer не открывается, на мапер жалуется(((
|
03 Jul 2021 03:54 |
|
 |
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Смотря каким эмулятором - их очень много этих эмуляторов! Я пользуюсь FCE-Ultra и FCEUX-2.1.5, с точки зрения интерфейса - это одно и то же. Там ром Keyboard Transformer открывается из меню. Но если у вас более новый эмулятор - может не открыться. Тут кто-то писал, что формат изменили, но я этого не проверял.
_________________ iLavr
|
03 Jul 2021 04:18 |
|
 |
Fishbone
Junior
Joined: 03 Jul 2021 03:48 Posts: 2
|
Благодарю за ответ. Этими не открылся, скачал fceux-2-2-3, на нем запустился. Но он не поддерживает Tape recorder. Nestopia поддерживает, но почему-то не запускает Keyboard Transformer
|
03 Jul 2021 05:35 |
|
 |
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|

В общем я давно уже решил не ждать пока этот некий " некто" напишет, наконец, для NES программу- Монитор... Тщательно всё обдумав, чего я лично от такой программы хочу, я пришел к выводу, что меня устроит небольшая программка, занимающая не более 2048 байт, т.е. 1 ПЗУ типа РФ5, у которой есть минимальный функционал, и возможность загрузки программ через внешний интерфейс. Желательно также, чтобы эта ПЗУ "всплывала" при сбросе, как в "Специалист-МХ", и могла выключаться в тень, оставив всё доступное пространство памяти как ОЗУ, в которое с её помощью загружена какая-то программа. Самым лучшим кандидатом на роль такого Монитора мне представляется Woz Monitor с его 256 байтами объёма, тем более, что я работал с его аналогом под эмуляцией ПК "Агат" и признал его довольно удобным... В первом грубом приближении мне это сделать вроде как удалось: Монитор Woz работает в функционале, близком к оригиналу, и с минимальными патчами кода, хотя для платформы NES-Денди это оказалось не так-то и просто. Выкладываю NES-Woz_Monitor в архиве вместе со своим стареньким руссифицированным FCE-Ultra сугубо потому что в программе задействована Family BASIC Keyboard и настроена она у меня там точно под клавиатуру IBM PC, поэтому ни в какие шпаргалки-раскладки смотреть не надо. Сам файл monitor.nes работает под любыми FCE-Ultra, но настройки клавиатуры я отдельно выложить не могу. Знакогенератор я специально расточил под кодовую таблицу Windows-1251, чтобы в дальнейшем никакими кодировками не заморачиваться. Графика расположена пока произвольным образом, как было удобно рисовать. Возможно, она и не вся нужна, но что-то для создания простеньких игр я оставил... Отличия NES-Woz_Monitor от оригинала:  |  |  |  | Code: 1. Я привык, что промпт указывает на командную строку - он теперь и указывает! ;-))) 2. Нет скроллинга экрана. Аппаратный скроллинг в NES-Денди сделать очень просто, но для моих целей он не нужен. Отсюда следствие: с самой нижней строки вывод переходит в самую верхнюю строку. Если это некрасиво, работает клавиша [Home] - курсор в верхний угол экрана, а Shift+[Home] также стирает экран. 3. Русские символы включаются через [PgDown], но Woz_Monitor-у они безразличны... 4. Клавиша [Esc] прерывает текущие режимы на экране и выводит промпт, но чуть иначе, чем в оригинале Woz_Monitor. Ошибочный длинный вывод на экран [Esc] НЕ прерывает, только сброс как в оригинале Woz_Monitor. 5. Карта памяти в нижних адресах такая же, как у обычной NES-Денди. По адресу $300...37F - командная строка Woz_Monitor-а. По адресу $00FD - JMP на адрес NMI, его можно перехватить. По адресам $6000...7FFF - ОЗУ - в нём можно что-то запрограммировать в кодах. По адресам $C000...FFFF - ПЗУ, оно же зеркалируется на $8000...BFFF. 6. Клавиши [<-] и [Bksp] работают одинаково, и, в отличие от оригинального Woz_Monitor, позволяют визуальную правку. |  |  |  |  |
Никаких аппаратных средств загрузки у Монитора пока нет, но режим " Отладчик" FCE-Ultra позволяет занести файл в ОЗУ. Описание The Woz Monitor на русском языке есть у нас здесь: http://www.nedopc.org/forum/viewtopic.php?p=145947#p145947Вот и всё пока, пожалуй...  Будем работать дальше... P.S. В архиве есть также два варианта Family BASIC-а, у которых я подсматривал работу клавиатуры и знакогенератор. Если загрузить Family BASIC (J) (V2.0a), то зайти в сам BASIC можно загрузив 20A.fc из папки sav. Как входить в Family BASIC обычным путём написано в файле Family BASIC.txt .P.P.S. Напомню также, что клавиатура в FCE-Ultra включается клавишей "Scroll Lock"! 
_________________ iLavr
|
19 Jun 2022 17:51 |
|
 |
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|

Причесал я программу, подправил все неточности ( явных ошибок не нашел), выкинул все вспомогательные отладочные подпрограммы, но в заданный объём 0F800H...0FFFFH всё же не уместился...  Хотя в объёме 0F000H...0FFFFH остаётся примерно 1.7 КБайт свободного места... И самый большую часть программы занимает всё же драйвер Family BASIC Keyboard. У него одни таблицы только...  |  |  |  | Code: ;;--------- Таблица заглавные LAT. без модификаторов MTAB1: ;;---------------------- |------------------------- KANA? .db $03, $5C, $00, $FF, $5D, $5B, $0D, $F7; ST_\__Sh_KA_]__[__En_F8 .db $3D, $2D, $2F, $00, $3B, $27, $60, $F6; =__-__/__.__;__'__`__F7 .db $30, $50, $2C, $2E, $4B, $4C, $4F, $F5; 0__P__,__.__K__L__O__F6 .db $38, $39, $4E, $4D, $4A, $55, $49, $F4; 8__9__N__M__J__U__I__F5 .db $36, $37, $56, $42, $48, $47, $59, $F3; 6__7__V__B__H__G__Y__F4 .db $34, $35, $43, $46, $44, $52, $54, $F2; 4__5__C__F__D__R__T__F3 .db $33, $45, $5A, $58, $41, $53, $57, $F1; 3__E__Z__X__A__S__W__F2 .db $32, $31, $00, $00, $00, $51, $1B, $F0; 2__1__.__.__.__Q__Es_F1 .db $12, $08, $20, $1F, $1D, $1C, $1E, $0B;Ins_DL_Sp_Dn_Lf_Rt_Up_CLR
;;--------- Таблица строчные LAT. с модификатором Shift MTAB2: .db $03, $00, $00, $00, $7D, $7B, $0D, $18; ST_.__.__.__.__.__En_ .db $2B, $5F, $3F, $00, $3A, $22, $7E, $17; +_'_'_?__.__:__"__~__ .db $29, $70, $3C, $3E, $6B, $6C, $6F, $11; )__p__<__>__k__l__o__ .db $2A, $28, $6E, $6D, $6A, $75, $69, $10; *__(__n__m__j__u__i__ .db $5E, $5E, $76, $62, $68, $67, $79, $0F; ^__&__v__b__h__g__y__ .db $24, $25, $63, $66, $64, $72, $74, $0E; $__%__c__f__d__r__t__ .db $23, $65, $7A, $78, $61, $73, $77, $06; #__e__z__x__a__s__w__ .db $40, $21, $00, $00, $00, $71, $1B, $02; @ _!__.__.__.__q__Es_ .db $12, $08, $20, $1F, $1D, $1C, $1E, $0C;Ins_DL_Sp_Dn_Lf_Rt_Up_HOME
;;--------- Таблица заглавные KANA(RUS.) без модификаторов MTAB3: ;;---------------------- |------------------------- KANA? .db $03, $5C, $00, $FF, $DA, $D5, $0D, $F7; ST_\__Sh_KA_Ъ__X__En_F8 .db $3D, $2D, $2E, $00, $C6, $DD, $A8, $F6; =__-__.__ __Ж__Э__Ё__F7 .db $30, $C7, $C1, $DE, $CB, $C4, $D9, $F5; 0__З__Б__Ю__Л__Д__Щ__F6 .db $38, $39, $D2, $DC, $CE, $C3, $D8, $F4; 8__9__Т__Ь__О__Г__Ш__F5 .db $36, $37, $CC, $C8, $D0, $CF, $CD, $F3; 6__7__М__И__Р__П__Н__F4 .db $34, $35, $D1, $C0, $C2, $CA, $C5, $F2; 4__5__С__А__В__К__Е__F3 .db $33, $D3, $DF, $D7, $D4, $DB, $D6, $F1; 3__У__Я__Ч__Ф__Ы__Ц__F2 .db $32, $31, $00, $00, $00, $C9, $1B, $F0; 2__1__.__.__.__Й__Es_F1 .db $12, $08, $20, $1F, $1D, $1C, $1E, $0B;Ins_DL_Sp_Dn_Lf_Rt_Up_CLR
;;--------- Таблица строчные KANA(RUS.) с модификатором Shift MTAB4: ;;---------------------- |------------------------- KANA? .db $03, $5C, $00, $FF, $FA, $F5, $0D, $F7; ST_\__Sh_KA_ъ__х__En_F8 .db $2B, $5F, $2C, $00, $E6, $FD, $B8, $F6; +_'_'_,__ __ж__э__ё__F7 .db $29, $E7, $E1, $FE, $EB, $E4, $F9, $F5; )__з__б__ю__л__д__щ__F6 .db $2A, $28, $F2, $FC, $EE, $E3, $F8, $F4; *__(__т__ь__о__г__ш__F5 .db $5E, $5E, $EC, $E8, $F0, $EF, $ED, $F3; ^__&__м__и__р__п__н__F4 .db $24, $25, $F1, $E0, $E2, $EA, $E5, $F2; $__%__с__а__в__к__е__F3 .db $23, $F3, $DF, $F7, $F4, $FB, $F6, $F1; #__у__я__ч__ф__ы__ц__F2 я - тоже KANA -> .db $40, $21, $00, $00, $00, $E9, $1B, $F0; @ _!__.__.__.__й__Es_F1 исправлено кодом .db $12, $08, $20, $1F, $1D, $1C, $1E, $0C;Ins_DL_Sp_Dn_Lf_Rt_Up_HOME
;;--------- Таблица графические SYMB. без модификаторов, KANA OFF MTAB5: .db $03, $FE, $00, $00, $00, $00, $0D, $F7; ST_\__Sh_KA_]__[__En_F8 .db $FD, $F2, $00, $00, $00, $00, $00, $F6; =__-__/__.__;__'__`__F7 .db $F1, $AA, $00, $00, $00, $00, $A9, $F5; 0__P__,__.__K__L__O__F6 .db $EF, $F0, $00, $00, $00, $A7, $A8, $F4; 8__9__N__M__J__U__I__F5 .db $ED, $EE, $A4, $A5, $00, $A0, $A6, $F3; 6__7__V__B__H__G__Y__F4 .db $EB, $EC, $A3, $9F, $9E, $9A, $9B, $F2; 4__5__C__F__D__R__T__F3 .db $EA, $99, $A1, $A2, $9C, $9D, $98, $F1; 3__E__Z__X__A__S__W__F2 .db $E9, $E8, $00, $00, $00, $97, $1B, $F0; 2__1__.__.__.__Q__Es_F1 .db $12, $08, $20, $1F, $1D, $1C, $1E, $0B;Ins_DL_Sp_Dn_Lf_Rt_Up_CLR |  |  |  |  |
Оргвывод такой, что следует всё же в картридже оставить 9-разрядный сдвиговый регистр. Это облегчит реализацию протоколов типа RS-232 и SPI, а также позволит не занимать порты джойстиков NES-Денди. Аппаратная поддержка позволит упростить и программную часть. Подумаю над этим железом...
_________________ iLavr
|
22 Jun 2022 05:13 |
|
 |
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Была ( и до сих пор есть, ибо проверил) вот такая страница на просторах Интернета: PC Keyboard FAQ V1.00Кроме всего прочего там приводится код взаимодействия 6502-совместимого микропроцессора с клавиатурой PS/2: код взаимодействия 6502 с клавиатурой PS/2В оригинале побитно используются 2 линии порта 6522 в качестве последовательного интерфейса, но то же самое NES может сделать через порт геймпада, у NES в принципе - последовательные интерфейсы... Но код всё равно объёмный...  Поэтому я и думаю, что часть задачи необходимо всё же решать аппаратно при помощи регистра сдвига.
_________________ iLavr
|
26 Jun 2022 07:58 |
|
 |
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|

Сдвиговый регистр пришлось поставить даже 10-разрядный,  и вот что в итоге получилось: Это 2 штуки К155ИР1, обрамлённые D-триггерами К155ТМ2, реализуют аппаратно протокол 8-N-1, программно остаётся лишь отслеживать интервалы времени и сдвигать этот длинный регистр. Регистры К155ИР1 я выбрал поскольку у них раздельные входы стробов для сдвига и параллельной записи. С шиной микропроцессора регистры согласуют на чтение и запись 2 шинных формирователя типа 589АП16. Выбрал я их потому как есть у них раздельные вход и выход. Хотя, честно говоря, это не принципиально, можно взять и К555ИР16 (или аналог) и подобрать другие шинные формирователи, схему лишь придётся допилить... Ниже - как это всё работает в схеме с моделью 6502 и с Монитором Woz-a подпиленным совсем чутка для работы с Shift-регистром вместо UART. А далее - архив с проектом, и внутри Вордовский файл - как всё это работает... Написал для себя, поскольку я в отпуске, проектом занимался эпизодически, и всякий раз забывал всякие нюансы работы этой схемы на мелкой логике... Для конкретного воплощения в Дендике этот проект работоспособен, но сыроват по двум причинам. 1. Используемая здесь модель 6502, хотя и выполняет безошибочно систему команд, по врем янкам ему не соответствует. 2. Я не знаю, как себя ведёт микропроцессор Денди при нажатии кнопки RESET, а это важно в процедуре начальной загрузки - придётся всё пощупать осциллографом в реальном Дендике... Ну и последнее, что у меня не вызывает восторг, хотя я сам это и сделал: начальная загрузка осуществляется не по протоколу RS-232, а по протоколу SPI, то есть синхронно, хотя и через СОМ-порт компьютера, но побитным управлением СОМ-портом. Это вполне реализуемо, как я сам недавно с некоторым удивлением узнал, и это очень упрощает аппаратную часть в Дендике, хотя она всё равно не слишком простая получилась. Вот только это потребует написания собственной специальной программы-загрузчика. Просто терминальной программой обойтись не получится... 
_________________ iLavr
|
25 Jul 2022 20:10 |
|
 |
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Не вызывает восторг и вот ещё какой факт: блоки питания приставок Dendy довольно нЕмощные. Насколько я знаю, для старых моделей приставки ток БП был порядка 0.5 А, сейчас же, когда и микропроцессор и картриджи - капельки на платах, блок питания и вовсе 300 мА ограничен... А тут 2 шт К155ИР1 и две штуки 589АП16 уже серьёзный ток потребляют!... Короче говоря, пришла мне в голову мысль совсем неспортивная, но на мой взгляд верная! А что если бОльшую часть этого проекта взвалить на Ардуину ? Я хоть и не поклонник Ардуин, но купил их некоторое время назад аж 4 штуки по 250 Р. По одной лишь простой причине: все интерфейсы теперь свелись к USB, и если хочешь чем-то поуправлять, Ардуина тут незаменима. Обдумываю эту идею: "Информация к размышлению. Борман." (с) В общем, неспортивно тут, что сама Ардуина по мощности и возможностям превосходит, пожалуй, Dendy но можно ведь смотреть на неё, как на очень популярную схемную деталь... Собственно, для этого ведь придумали микроконтроллеры! 
_________________ iLavr
|
27 Jul 2022 05:26 |
|
 |
axechita
Junior
Joined: 14 Aug 2022 10:20 Posts: 5
|
На Хабре была опубликована статья (перевод) в которой рассказывалось о "BBGDOS — аналог MS-DOS для NES" https://habr.com/ru/post/680196/отрывок из статьи  |  |  |  | Quote: "BBGDOS была разработана китайской компанией BBG (также известной как BBK или BuBuGao) примерно в 1997 году.
BBGDOS — это 8-битная ОС для процессора 6502. Например, UM6561. BBGDOS очень похожа на MSDOS 3.1 или 3.2. В ней есть команды dir, cd, format, diskcopy, ver, type, copy, del, md, rd, exit, date, time, cls, rem и другие. BBGDOS работает с файлами на дискетах. Папки и файлы могут быть переданы ПК. BBGDOS загружается с дискет из сектора 0, а format /s можно использовать для создания системной дискеты. Есть два фамиклона от BBG, которые поддерживают флоппи-диски. Первый — BBG Floopy 1, второй — BBG 98." |  |  |  |  |

|
14 Aug 2022 10:38 |
|
|
Who is online |
Users browsing this forum: No registered users and 5 guests |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum
|
|