Даже Яндекс по подстроке "16-ти битный адаптер для Willem" ведёт на наш форум
Вид для печати
Даже Яндекс по подстроке "16-ти битный адаптер для Willem" ведёт на наш форум
Перенос/не-заём
Начинал асмить с 6502. Два десятка лет назад немного асмил для 8086 (не помню, чтобы работал с переносом и заёмом). Довольно много асмил для PIC18/24/dsPIC30/33, в них такая же кухня с переносом/не-заёмом, поэтому до нынешнего времени и считал, что это общепринятая "аксиома"...
Посмотрел в Z80 и 8086: заём в прямой логике... Прям как откровение... ;)
[свернуть]
Ну, собственно, тот откуда цитата. :) На 85-ом который.
Я правда раскопал TinyBASIC, вроде как оригинальный, версий 1 и 2.
Оказалось не так и просто найти...
То дисковый под CP/M попадается, то под 51-й, AVR и прочие ардуины.
Но Вашу реализацию интересно было бы глянуть, для общего развития, так сказать :)
Хочу его на плату от принтера СМ6337 поселить, забавная штука. Имеет 2шт. ВИ53, ВВ51, ВН59 и ни одного ВВ55, все на триггерах и регистрах :)
Пилят, я таки помню все свои цитаты, время их произнесения и приложенные интонации! :)
Nascom BASIC 32k for 8085, там слегка перепахано под мою платку с экзотическим дисплеем, вроде как. Деталей не помню, давно это было.
- - - Добавлено - - -
ТиниВАСИК тоже прекрасен, но сильно прост интегерами. Но как музейный экспонат - тоже ценю :)
Допилил звук. Однобитный баззер. Угадайте, куда он прицеплен, если все порты заняты, а новый не воткнуть? :)
Правильный ответ на схеме.
Пак файлов по микрокомпу.
TTX:
Процессор - WDC65C02 на 3,686МГц.
Последовательный интерфейс - MC68B50, на 1,228МГц клока. (B000..B001h)
Память - 32кб ОЗУ (0..7FFFh), 16кб ПЗУ (C000..FFFFh).
Матричная клавиатура, 5х4, порт A000h.
Флеш-память - 24С16(512).
Размеры компа - 7х5х3 см :)
Софт - Enhanced BASIC v2.22, OSI Microsoft BASIC v1.1.
Звук - однобитный.
Видео - терминал 40х25 PAL ТВ, ч/б.
https://d.radikal.ru/d27/1802/5d/ca1ad404cb0c.jpg
Девятый комп в принципе готов.
Можно начинать Конец Света :)
А работа над компом продолжается. Сделан только запланированный минимум.
Ожидается.... вакуумно-люминесцентный дисплей и часы реального времени!
UPD. ВЛИ с часами сделаны дополнительным этажем.
65C02, якобы, один из самых быстрых микропроцессоров из 40-ка ногих DIP. Имея работающее изделие с быстрым ОЗУ/ПЗУ и неперегруженной шиной, можно попробовать такт повыше, удвоив частоту кварца, затем утроив и так до 25 МГЦ. А ещё можно просто заменить 65C02 на 65C802 и получить тем самым в этом же изделии кроме 8-ми разрядного и 16-ти разрядный процессор и разобраться и с его программированием (но купить 65C802 сложно).
А почему все разработчики CPU обязательно выпускали их не по одному, а целым семейством? Например, и в семействе 6800 и 6500 есть БИС для параллельного интерфейса и точно известно, что в 6500 можно использовать периферию от 6800 и наоборот. В каждом семействе - БИС одного и того же назначения. Т.е, если уже есть аналогичный и совместимый кристалл у конкурентов, то выпуск своего аналога - это лишний расход потенциала разработчиков. Непонятно почему необходимо использовать периферию именно из данного семейства? Почему в системе 6502 не используют ВВ55, ВВ51 или 4-х канальный Z80CTC. Есть для этого какие-то технические препятствия? Или это просто не принято из политических соображений? Изделий, где бы было смешение БИС из разных серий не наблюдается. Почему? Например, если 6502 применить в РК86, то не вижу препятствий для использования имеющегося ВВ55 для опроса клавиатуры.
Для простой гуделки порт вывода необязателен, достаточно чип-селекта (+ диод и ёмкость) и даже необязательно именно на запись. Такой трюк позволяет с'экономить порт в простейшем контроллере, хотя в реальном контроллере ВВ55 обычно имеется.
Объективный факт!
Например, АГАТ:
Ячейка последовательного и параллельного интерфейса. ФГ3.089.106 Э3. ВВ55А + ВВ51.
Ячейка контроллера НГМД. ЯБ3.089.023 Э3. 2хВВ55А.
Ячейка звукосинтеза 5/2, ячейка аналогового ввода и адаптер MIDI. 2хВИ53, ВВ55А + ВИ53 + ВВ51.
Ячейки сетевых карт. ВВ51, ВИ53 + ВВ51.
Мультикарта. ВИ53 + ВВ51.
Я полагаю barsik подразумевает буржуинских разработчиков.
Наши советские сумрачные гении могли и ежа с ужом скрестить. По большому счету из-за того, что кроме ужей и ежей под рукой другого не было.
А у буржуев всякие "корпоративные правила" ничуть не хуже "плановой экономики" могут фортели выкидывать, выглядящие со стороны форменным идиотизмом.
Точно. Просто забыл, что в СССР тоже был компьютер на 6502. У отечественных разработчиков не было выбора, т.к не только периферийных БИС семейства 6500 или 6800 не производилось, но и самого CPU также не производилось. Странно, что АГАТ вообще разрешили к производству.Цитата:
Сообщение от TomaTLAB
Не зная о конструкциях, где 6502/6802 работает на периферию КР580, я опасался, что есть какие-то нюансы, о которых мне не известно, что мешают этому. А искать 6522, а также периферию для 6802, не хотелось.
Получается, что слово "ячейка" это как бы синоним иностранному слову "card" обозначающему внешнюю плату с врубным разъёмом втыкаемую в слот. Похоже это слово не прижилось. Обычно говорят "периферийная плата".
БИС с Intel-интерфейсом прекрасно сопрягаются с ЦП с Motorola-интерфейсом. БИС с Motorola-интерфейсом также прекрасно сопрягаются с ЦП с Intel-интерфейсом. No problems.
Касаемо промышленных, то да, о таких мало известно. Но проблем по сращиванию 6502 с периферией 580 нет. А вот наоборот, прилепить периферию 65хх/68хх к 8080/Z80, мне точно нигде не попадалось. LeoN65816 , поделитесь плз ссылочками, можно в личку, чтоб тут не оффтопить.
Тоже не проблема. И я лепил тоже в обе стороны. И Grant Searle :)
оу..., не досмотрел чота... Ну теперь есть повод использовать 6522 на всю катушку вместо ВВ55.
50 оттенков серого... карбона :)
http://savepic.net/9723341.jpg
Небольшое отвлечение на микрокомп с МС6800Р на борту.
http://savepic.net/9753855.jpg
Давно собирался допилить Бейсик для этого компа.
Еще не доделал правильный скроллинг для микродисплея, но это дело времени.
И сам дисплей надо заменить на монохром белый. Желтые две строчки Бейсик не красят.
Эти OLED'ы хороши тем, что в них можно сначала загрузить данные, а потом обновить разом изображение, "фликера" нет.
Синий цвет мне у них понравился, такого, "вакуумного" оттенка :) Фото плохо передает, живьем гораздо красивше.
Евгений, не помните навскидку, тини-васик где проверяет диапазон значений когда получает непосредственный аргумент?
В TSTNUM или уже в калькуляторе? Никак не допетрю почему нельзя -32768 ввести, а -32767-1 можно :)
Вроде как-то должно быть связано с тем, что он отрицательные числа скармливает калькулятору как "ноль минус число"...
Туда я не лазил, поскольку для портирования это не требуется. Ковырял только процедуры непосредственно ввода/вывода, формирования вывода, заполнение буфера строки, парсинг строки. Это нужно было для привинчивания своей клавиатуры и формирования вывода так, как мне нужно. В NascomBASIC лазил посерьезней, привинчивал свои процедуры, но он уже совсем другой.
- - - Добавлено - - -
Я пока не успел как следует раскурить тему, но увидел видео, где сделан вертикальный скроллинг. Сие меня удивило, ибо в свое время я не нашел такой аппаратной возможности.
Каждый раз кидать в память дисплея содержимое всего экрана минус первая строка - очевидное решение скроллинга, но - медленно.
У тебя нет полезной информации по этому вопросу?
Может там можно тупо переназначать начальный адрес вывода, закольцевав его?
Я покопаю еще вечером либы для "дуньки", может найду чего, откомментированное.
А так вот для раскуривания: https://cdn-shop.adafruit.com/datasheets/SSD1306.pdf
Бегло глянул - скролл точно есть. Причем, судя по всему, весьма продвинутый.
Я помню, что скроллы там есть аппаратные по горизонтали и по диагонали. Но при этом сделать перемещение только по вертикали было низзя....
Спасибо, раскурю тему еще раз.
Навскидку это вот здесь:
Судя по таблице ниже, вроде бы то, что нужно.Цитата:
10.1.15 Set Display Offset (D3h)
This is a double byte command. The second command specifies the mapping of the display start line to one of
COM0~COM63 (assuming that COM0 is the display start line then the display start line register is equal to 0).
For example, to move the COM16 towards the COM0 direction by 16 lines the 6-bit data in the second byte
should be given as 010000b. To move in the opposite direction by 16 lines the 6-bit data should be given by
64 – 16, so the second byte would be 100000b. The following two tables (Table 10-1, Table 10-2) show the
example of setting the command C0h/C8h and D3h.
Да, навскидку похоже на оно. Отступ в адресации строк. Можно плавно, можно сразу текстовыми строками. Попробую, как снова до платы доберусь.
Попробовал.
Скролл работает.
Пришлось остатки мозгов изрядно погонять по черепушке, чтобы совместить позиции текущего вывода и переключения строк скроллинга. Не сразу улеглось.
Теперь осталось сделать обработку символа 'back space' для драйвера дисплейчика, и сохранение/чтение программы на бейсике в EPROM.
Апдейт микрокомпа на 6502.
Привинчена флешка 24С512, сделаны 4 слота для сохранения/загрузки.
И почти собрана платка "третьего этажа" с ВЛИ. Будут часики. Думаю, что работать будут на прерываниях, параллельно с Бейсиком.
А пока вот так :)
https://youtu.be/q84xEtDPuLU
А я тут поселил на свой "принтер" (плата от МС6337) Nascom BASIC и целый вечер голову ломал, почему команда LIST не работает:v2_dizzy_stupid:
Все вроде работает, а лист - никак.
А там оказалось, что для декремента HL использовали, зачем то ADC HL, DE (DE=-1), которой у 8080 естественно нет, а на перенос там вроде бы накласть.
Заменил на ADD HL, DE (которыя DAD D в нотации 8080) - заработало :)
А траблу с прошивкой GAL'ок больше 16V8 еще не забодали? А то я тут сунул 22v10, а хрен там...
А какая версия софта и фирмвари? А трабла в том, что прошиваются только 32бита, потом пропуск забитый единицами, потом опять 32 бита прошиты, пропуск и т.д.
Буржуи писали, в старых версиях вроде как обходили многократной прошивкой без стирания и верификации, а в новых окончательно доломали и никак не шьется. Я еще сдуру обновился до последней.
Не понятно, правда, это проблема клонов или оригинал такой же...
А там все просто. Изначально у него 3 панельки под РФ6 и 3шт. РУ10, т.е.48кБ24кБ ПЗУ конечно же и 6кБ ОЗУ.
С ВВ51 выкинул RX/TX в ТТЛ на USB переходник.
Сначала в одну панельку просто воткнул W27C512 и завел там тини васик.
Потом немного поэМГТФил и в одной сделал выборку младшими 32кБ, а в другой (третьей, так удобнее оказалось) старшими, на нее /memWR завел и туда 62256 воткнул.
Туда теперь наском поселяю.
На борту два ВИ53, ВВ51, ВН59. Два порта: на ввод и на вывод на ИР82-х и кучка диких триггеров :)
Не взлетело. :v2_confu: Понижал даже до 10, стало шиться со сбоями, но только те же 32-х битные участки. Т.е. явно какой то софтовый глюк.
Наверное, первые в мире часы на 6502 под управлением интерпретатора Бейсика :)
Микросхема часов - DS3231, по I2C передает данные на микрокомп, а так же секундные импульсы с нее вызывают прерывание NMI процессора, он обновляет данные в ячейках ОЗУ компа, откуда уже Барсик забирает данные, форматирует и по циферке выплевывает в ВЛИ, обеспечивая ДИНАМИЧЕСКУЮ индикацию.
Во, блин, как... Сам офигел, когда заработало :)
http://savepic.net/9811483m.jpg
Как водится, на фотке индикатор смотрится никак, "засвечен". В реале лучше.
Больше оверинжиниринга, MOAR !
Скрытый текст
Дык, темное зеленое стеклышко требуется же. А лучше - фиолетовобордовое, тогда индикатор становится песочным.
http://photos.streamphoto.ru/d/5/8/a...563e30585d.jpg
Добавлю, что уже по традиции у 6502 снова находятся вещи "не как у всех". У него даже включение/выключение прерываний сделано наоборот. Сбрасываем флаг (CLI) - включается. Устанавливаем флаг (SEI) - выключается. Млин...
- - - Добавлено - - -
Дык, адрес почтовый мой дать могу, для стеклышка красивого! (С)Йода
Как решение "из желудей и пластилина" можно откромсать от пластиковой бутылки из-под пива или спрайта какого.
Тонировочная пленка для авто, если где-то еще остались обрезки.
Или, как вариант, есть полупрозрачный оракал (пленка-самоклейка для рекламщиков). Правда, он мутноватый на просвет.
Еще у тех же рекламщиков есть темный прозрачный акрил, они его называют "дымчатый".
Очередное из серии "когда коту делать нечего" :)
http://savepic.net/9806409m.jpg
http://savepic.net/9828937m.jpg
http://savepic.net/9793097m.jpg